This commit was manufactured by cvs2svn to create branch 'R3_0_1_patches'.
diff --git a/bundles/org.eclipse.jst.jsp.core/.classpath b/bundles/org.eclipse.jst.jsp.core/.classpath
index cb01053..ca82c98 100644
--- a/bundles/org.eclipse.jst.jsp.core/.classpath
+++ b/bundles/org.eclipse.jst.jsp.core/.classpath
@@ -1,7 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/sse/**"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/sse/core/**"/>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/xml/core/**"/>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/css/core/**"/>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/html/core/**"/>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/validation/**"/>
+		</accessrules>
+	</classpathentry>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/bundles/org.eclipse.jst.jsp.core/.options b/bundles/org.eclipse.jst.jsp.core/.options
index dd48016..89a2c96 100644
--- a/bundles/org.eclipse.jst.jsp.core/.options
+++ b/bundles/org.eclipse.jst.jsp.core/.options
@@ -28,8 +28,8 @@
 org.eclipse.jst.jsp.core/taglib/resolve=false
 
 org.eclipse.jst.jsp.core/debug/jspjavamapping=false
+
 org.eclipse.jst.jsp.core/debug/jspvalidator=false
 org.eclipse.jst.jsp.core/debug/taglibvars=false
 
-org.eclipse.jst.jsp.core/debug/taglibclassloader=false
-org.eclipse.jst.jsp.core/debug/fragments/cache=false
+org.eclipse.jst.jsp.core/debug/taglibclassloader
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.core.prefs
index 782e417..66ddc69 100644
--- a/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.jst.jsp.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Sun Apr 16 17:23:39 EDT 2006

+#Wed Mar 28 02:56:12 EDT 2007

 eclipse.preferences.version=1

 org.eclipse.jdt.core.builder.cleanOutputFolder=clean

 org.eclipse.jdt.core.builder.duplicateResourceTask=warning

@@ -22,7 +22,7 @@
 org.eclipse.jdt.core.compiler.problem.deprecation=ignore

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

 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore

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

 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

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

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

@@ -47,16 +47,16 @@
 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled

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

 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore

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

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

 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error

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

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

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

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

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

 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled

 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error

 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning

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

 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore

 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

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

@@ -64,7 +64,6 @@
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore

 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error

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

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

 org.eclipse.jdt.core.compiler.problem.unusedImport=error

diff --git a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/JSPedCSSTokenizer.flex b/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/JSPedCSSTokenizer.flex
index a48194e..6daf75a 100644
--- a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/JSPedCSSTokenizer.flex
+++ b/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/JSPedCSSTokenizer.flex
@@ -1,5 +1,5 @@
 /*******************************************************************************

- * Copyright (c) 2006 IBM Corporation and others.

+ * Copyright (c) 2006, 2008 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

@@ -94,7 +94,9 @@
 						break;

 					}

 				}

-				if (context == CSS_JSP_SCRIPTLET){

+				// [236008] - Should not try and consider the token a

+				// comment unless  a comment was started

+				if (context == CSS_JSP_SCRIPTLET && nextTokenType == CSS_JSP_COMMENT){

 					while (nextTokenType != CSS_JSP_COMMENT_END) {

 //						text.append(yytext());

 						textLength += yylength();

diff --git a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex b/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex
index 492680e..9cfce86 100644
--- a/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex
+++ b/bundles/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex
@@ -12,14 +12,11 @@
 package org.eclipse.jst.jsp.core.internal.contenttype;

 import java.io.IOException;

 import java.io.Reader;

+import java.util.Arrays;

 

 import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;

 import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;

 

-

-

-

-

 %%

 

 %{

@@ -53,13 +50,13 @@
 

                 /* this buffer contains the current text to be matched and is

                  the source of the yytext() string */

-                java.util.Arrays.fill(zzBuffer, (char)0);

+                Arrays.fill(zzBuffer, (char)0);

 

                 /* the textposition at the last accepting state */

                 zzMarkedPos = 0;

 

                 /* the textposition at the last state to be included in yytext */

-                zzPushbackPos = 0;

+                //zzPushbackPos = 0;

 

                 /* the current text position in the buffer */

                 zzCurrentPos = 0;

@@ -108,7 +105,7 @@
         }

 

 

-        public final HeadParserToken getNextToken() throws IOException {

+        public final HeadParserToken getNextToken() throws IOException, Exception {

                 String context = null;

                 context = primGetNextToken();

                 HeadParserToken result = null;

@@ -159,6 +156,7 @@
 //%debug

 %switch

 %buffer 8192

+%scanerror java.lang.Exception

 

 

 UTF16BE = \xFE\xFF

@@ -171,11 +169,15 @@
 // [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+

 S = [\x20\x09\x0D\x0A]

 

-BeginAttributeeValue = {S}* \= {S}*

+//BeginAttributeeValue = {S}* \= {S}*

 

 LineTerminator = \r|\n

 

 

+Z = (\x00)?

+S_UTF = {Z}{S}{Z}

+BeginAttributeValueUTF = {S_UTF}* \= {S_UTF}*

+

 %state ST_XMLDecl

 %state ST_PAGE_DIRECTIVE

 %state QuotedAttributeValue

@@ -194,72 +196,69 @@
         ^ {UTF83ByteBOM}       {if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}}

         

         // force to be started on first line, but we do allow preceeding spaces

-        ^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}

+		^ {S_UTF}* ({Z}<{Z}\?{Z}x{Z}m{Z}l{Z}){S_UTF}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}

 

 

         // following are some simply rules to identify JSP content as "XHTML"

         // see http://www.rfc-editor.org/rfc/rfc3236.txt

-        "<!DOCTYPE" {S}* "html" {S}* "PUBLIC" .* "//DTD XHTML"                {isXHTML = true;}

-        "<html" {S}* "xmlns" {S}* "=" {S}* (\" | \') "http://www.w3.org/1999/xhtml"     {isXHTML = true;}

+		{Z}<{Z}\!{Z}D{Z}O{Z}C{Z}T{Z}Y{Z}P{Z}E{Z} {S_UTF}* {Z}h{Z}t{Z}m{Z}l{Z} {S_UTF}* {Z}P{Z}U{Z}B{Z}L{Z}I{Z}C{Z} .* {Z}\/{Z}\/{Z}D{Z}T{Z}D{Z}{S_UTF}{Z}X{Z}H{Z}T{Z}M{Z}L{Z}                {isXHTML = true;}

+		{Z}<{Z}h{Z}t{Z}m{Z}l{Z} {S_UTF}* {Z}x{Z}m{Z}l{Z}n{Z}s{Z} {S_UTF}* {Z}\={Z} {S_UTF}* (({Z}\"{Z}) | ({Z}\'{Z})) {Z}h{Z}t{Z}t{Z}p{Z}:{Z}\/{Z}\/{Z}w{Z}w{Z}w{Z}\.{Z}w{Z}3{Z}\.{Z}o{Z}r{Z}g{Z}\/{Z}1{Z}9{Z}9{Z}9{Z}\/{Z}x{Z}h{Z}t{Z}m{Z}l{Z}     {isXHTML = true;}

          // another case that's part of the "HTML family" is WML 1.0 (WML 2.0 is part of XHTML)

-         "<!DOCTYPE" {S}* "wml" {S}* "PUBLIC" .* "//DTD WML"                   {isWML = true;}

+		{Z}<{Z}\!{Z}D{Z}O{Z}C{Z}T{Z}Y{Z}P{Z}E{Z} {S_UTF}* {Z}w{Z}m{Z}l{Z} {S_UTF}* {Z}P{Z}U{Z}B{Z}L{Z}I{Z}C{Z} .* {Z}\/{Z}\/{Z}D{Z}T{Z}D {S}{Z}W{Z}M{Z}L{Z}                   {isWML = true;}

 

-        "<%" {S}* "@" {S}* ("page"|"tag") {S}+   {yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart;}

-        ("<jsp:directive.page"|"<jsp:directive.tag") {S}+           {yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart;}

-

+		{Z}<{Z}%{Z} {S_UTF}* {Z}@{Z} {S_UTF}* (({Z}p{Z}a{Z}g{Z}e{Z})|({Z}t{Z}a{Z}g{Z})) {S_UTF}+   {yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart;}

+		(({Z}<{Z}j{Z}s{Z}p{Z}:{Z}d{Z}i{Z}r{Z}e{Z}c{Z}t{Z}i{Z}v{Z}e{Z}\.{Z}p{Z}a{Z}g{Z}e{Z})|({Z}<{Z}j{Z}s{Z}p{Z}:{Z}d{Z}i{Z}r{Z}e{Z}c{Z}t{Z}i{Z}v{Z}e{Z}\.{Z}t{Z}a{Z}g{Z})) {S_UTF}+           {yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart;}

 

 }

 

 <ST_XMLDecl>

 {

-        "version" {BeginAttributeeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}

-        "encoding" {BeginAttributeeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}

+        ({Z}v{Z}e{Z}r{Z}s{Z}i{Z}o{Z}n{Z}) {BeginAttributeValueUTF} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}

+        ({Z}e{Z}n{Z}c{Z}o{Z}d{Z}i{Z}n{Z}g{Z}) {BeginAttributeValueUTF} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}

         // note the "forced end" (via 'hasMore=false') once the end of XML Declaration found

         // This is since non-ascii chars may follow and may cause IOExceptions which would not occur once stream is

         // read with incorrect encoding (such as if platform encoding is in effect until true encoding detected).

         // BUT, the hasMore=false was removed for this JSP case (probably still ok for pure XML) because

         // in a JSP, we must parse past xmlDecl to get at JSP page directive.

         // We'll assume all chars in this area are "readable" as is.

-        {S}* "\?>"    {yybegin(YYINITIAL); return XMLHeadTokenizerConstants.XMLDeclEnd;}

+		{S_UTF}* {Z}\?{Z}>{Z}    {yybegin(YYINITIAL); return XMLHeadTokenizerConstants.XMLDeclEnd;}

 }

 

 <ST_PAGE_DIRECTIVE>

 {

 //  removed 'language' since it really can be handled seperately from encoding, but may add it back later for simple re-use.

-        "language"     {BeginAttributeeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageLanguage;}

-        "contentType" {BeginAttributeeValue}  {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageContentType;}

-        "pageEncoding" {BeginAttributeeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageEncoding;}

+		{Z}l{Z}a{Z}n{Z}g{Z}u{Z}a{Z}g{Z}e{Z}     {BeginAttributeValueUTF} {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageLanguage;}

+        {Z}c{Z}o{Z}n{Z}t{Z}e{Z}n{Z}t{Z}T{Z}y{Z}p{Z}e{Z} {BeginAttributeValueUTF}  {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageContentType;}

+        {Z}p{Z}a{Z}g{Z}e{Z}E{Z}n{Z}c{Z}o{Z}d{Z}i{Z}n{Z}g{Z} {BeginAttributeValueUTF} {pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageEncoding;}

         // note the "forced end" (via 'hasMore=false') once the end of XML Declaration found

         // This is since non-ascii chars may follow and may cause IOExceptions which would not occur once stream is

         // read in correct encoding.

 

         // https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=4205 demonstrates how we need to keep parsing,

         // even if come to end of one page directive, so hasMore=false was removed from these rules.

-        "%>"    { yybegin(YYINITIAL);  return JSPHeadTokenizerConstants.PageDirectiveEnd;}

-        "\/>"    { yybegin(YYINITIAL); return JSPHeadTokenizerConstants.PageDirectiveEnd;}

+		{Z}%{Z}>{Z}    { yybegin(YYINITIAL);  return JSPHeadTokenizerConstants.PageDirectiveEnd;}

+        {Z}\/{Z}>{Z}    { yybegin(YYINITIAL); return JSPHeadTokenizerConstants.PageDirectiveEnd;}

 }

 

 

 <QuotedAttributeValue>

 {

-        \"                      { yybegin(DQ_STRING); string.setLength(0); }

-        \'                      { yybegin(SQ_STRING); string.setLength(0); }

+        {Z}\"{Z}                      { yybegin(DQ_STRING); string.setLength(0); }

+        {Z}\'{Z}                      { yybegin(SQ_STRING); string.setLength(0); }

         // in this state, anything other than a space character can start an undelimited string

-        {S}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}

-

+		{S_UTF}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}

 }

 

 

 <DQ_STRING>

 {

 

-        \"                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }

-        {LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

-        "\?>"                   { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

-        '<'                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

-        .                       { string.append( yytext() ); }

-

-        "%>"                    { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {Z}\"{Z}			{ popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }

+        {Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {Z}\?{Z}>{Z}	{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {Z}<{Z}				{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+		[^\x00]			{ string.append( yytext() ); }

+        {Z}%{Z}>{Z}		{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

 

 

 }

@@ -267,12 +266,13 @@
 <SQ_STRING>

 {

 

-        \'                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}

-        {LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

-        "%>"                    { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

-        '<'                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

-        .                       { string.append( yytext() ); }

-        "%>"                    { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {Z}\'{Z}                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}

+		{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {Z}%{Z}>{Z}               { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {Z}<{Z}                     { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+		// Skip over the single-byte 0s

+		[^\x00]			{ string.append( yytext() ); }

+        {Z}%{Z}>{Z}                    { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

 

 

 }

@@ -281,27 +281,24 @@
 {

 

 

-        {S}                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }

-        {LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

-        "\?>"                   { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

-        '<'                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {S_UTF}                     { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }

+        {Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {Z}\?{Z}>{Z}                   { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+        {Z}<{Z}                     { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

         // these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote

-        \'                      { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

-        \"                      { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

+        {Z}\'{Z}                      { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

+        {Z}\"{Z}                      { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}        

 

-        .                       { string.append( yytext() ); }

-        "%>"                    { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+		[^\x00]			{ string.append( yytext() ); }

+        {Z}%{Z}>{Z}                    { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

 

 }

 

 // The "match anything" rule should always be in effect except for when looking for end of string

 // (That is, remember to update state list if/when new states added)

-<YYINITIAL, ST_XMLDecl, QuotedAttributeValue, ST_PAGE_DIRECTIVE>

-{

-// this is the fallback (match "anything") rule  (for this scanner, input is ignored, and position advanced, if not recognized)

-.|\n              {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}

-}

+.|\n	{if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}

 

 // this rule always in effect

 <<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}

 

+

diff --git a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
index 17e19f5..2d66309 100644
--- a/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.jst.jsp.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.jst.jsp.core; singleton:=true
-Bundle-Version: 1.1.107.v200805300730
+Bundle-Version: 1.2.101.qualifier
 Bundle-Activator: org.eclipse.jst.jsp.core.internal.JSPCorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -35,21 +35,26 @@
  org.eclipse.jst.jsp.core.jspel,
  org.eclipse.jst.jsp.core.taglib,
  org.eclipse.jst.jsp.core.text,
+ org.eclipse.jst.jsp.css.core.internal.contentmodel;x-internal:=true,
+ org.eclipse.jst.jsp.css.core.internal.contenttype;x-internal:=true,
  org.eclipse.jst.jsp.css.core.internal.document;x-internal:=true,
- org.eclipse.jst.jsp.css.core.internal.modelhandler;x-internal:=true,
+ org.eclipse.jst.jsp.css.core.internal.encoding;x-internal:=true,
+ org.eclipse.jst.jsp.css.core.internal.modelhandler;x-friends:="org.eclipse.jst.jsp.ui",
+ org.eclipse.jst.jsp.css.core.internal.parser;x-internal:=true,
  org.eclipse.jst.jsp.css.core.internal.parserz;x-internal:=true
-Require-Bundle: com.ibm.icu;bundle-version="[3.4.4,3.5.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.filebuffers;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.text;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jdt.core;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.css.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.html.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.sse.ui;bundle-version="[1.0.101,1.1.0)",
- org.eclipse.equinox.servlet.api;bundle-version="[1.0.0,1.1.0)"
-Eclipse-LazyStart: true; exceptions="org.eclipse.jst.jsp.core.internal.contenttype"
+Require-Bundle: com.ibm.icu;bundle-version="[3.8.1,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.filebuffers;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.jdt.core;bundle-version="[3.4.0,3.5.0)",
+ org.eclipse.wst.common.uriresolver;bundle-version="[1.1.301,1.2.0)",
+ org.eclipse.wst.sse.core;bundle-version="[1.1.300,1.2.0)",
+ org.eclipse.wst.xml.core;bundle-version="[1.1.300,1.2.0)",
+ org.eclipse.wst.css.core;bundle-version="[1.1.200,1.2.0)",
+ org.eclipse.wst.html.core;bundle-version="[1.1.200,1.2.0)",
+ org.eclipse.wst.validation;bundle-version="[1.2.0,1.3.0)",
+ javax.servlet.jsp;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)";resolution:=optional,
+ org.eclipse.wst.common.modulecore;bundle-version="[1.1.200,2.0.0)";resolution:=optional
+Bundle-ActivationPolicy: lazy; exclude:="org.eclipse.jst.jsp.core.internal.contenttype"
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.jst.jsp.core/about.html b/bundles/org.eclipse.jst.jsp.core/about.html
index 4ec5989..2199df3 100644
--- a/bundles/org.eclipse.jst.jsp.core/about.html
+++ b/bundles/org.eclipse.jst.jsp.core/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>May 2, 2006</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/bundles/org.eclipse.jst.jsp.core/build.properties b/bundles/org.eclipse.jst.jsp.core/build.properties
index ae187ae..92ef44d 100644
--- a/bundles/org.eclipse.jst.jsp.core/build.properties
+++ b/bundles/org.eclipse.jst.jsp.core/build.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
+# Copyright (c) 2004, 2006 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
 # http://www.eclipse.org/legal/epl-v10.html
-# 
+#
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
diff --git a/bundles/org.eclipse.jst.jsp.core/component.xml b/bundles/org.eclipse.jst.jsp.core/component.xml
index eacf9aa..ab88fac 100644
--- a/bundles/org.eclipse.jst.jsp.core/component.xml
+++ b/bundles/org.eclipse.jst.jsp.core/component.xml
@@ -4,13 +4,16 @@
 	<plugin id="org.eclipse.jst.jsp.core" fragment="false" />
 	<package name="org.eclipse.jst.jsp.core.taglib" api="false">
 		<type name="IJarRecord" implement="false" />
-		<!-- <type name="ITagDirRecord" implement="false" /> -->
-		<!-- <type name="ITaglibIndexListener" implement="true" /> -->
+		<type name="ITagDirRecord" implement="false" />
+		<type name="ITaglibIndexDelta" implement="false" />
+		<type name="ITaglibIndexListener" implement="true" />
+		<type name="ITaglibDescriptor" implement="false" />
 		<type name="ITaglibRecord" implement="false" />
 		<!-- <type name="ITaglibRecordEvent" implement="false" /> -->
 		<type name="ITLDRecord" implement="false" />
 		<type name="IURLRecord" implement="false" />
 		<type name="TaglibIndex" subclass="false" instantiate="false" />
+		<type name="TaglibIndexDelta" subclass="false" instantiate="false" />
 	</package>
 	<plugin id="org.eclipse.jst.jsp.ui" fragment="false" />
 	<package name="org.eclipse.jst.jsp.ui" api="false">
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.properties b/bundles/org.eclipse.jst.jsp.core/plugin.properties
index 556dff5..f6fdf1e 100644
--- a/bundles/org.eclipse.jst.jsp.core/plugin.properties
+++ b/bundles/org.eclipse.jst.jsp.core/plugin.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
+# Copyright (c) 2004, 2008 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
 ###############################################################################
@@ -13,14 +13,18 @@
 Structured_JSP_Document_Factory_Extension.name=Structured JSP Document Factory Extension
 JSP_Content_Type_Extension_Element.name=JSP
 JSP_Tag_Content_Type_Extension_Element.name=JSP Tag Definition
-JSP_TLD_Content_Type_Extension_Element.name=Tag Library Definition
+JSP_TagX_Content_Type_Extension_Element.name=JSP Tag Definition (XML)
+JSP_TLD_Content_Type_Extension_Element.name=Tag Library Descriptor
 JSP_Fragment_Content_Type_Extension_Element.name=JSP Fragment
 JSP_Syntax_Validator.name=JSP Syntax Validator
 JSP_Directive_Validator.name=JSP Directive Validator
 EL_Syntax_Validator.name=EL Syntax Validator
+JSP_Content_Validator.name=JSP Content Validator
 Structured_JSP_Document_Setup_participant.name=Structured JSP Document Setup Participant
+_validationMarker.name=JSP Problem
+_taskMarker.name=JSP Task
 
-extension-point.name.0 = org.eclipse.jst.jsp.core.eltranslator
+extension-point.name.0 = JSP EL Translator
 
 contentTypeCSSJSPName=CSS JSP
 contentTypeCSSJSPFName=CSS JSP Fragment
diff --git a/bundles/org.eclipse.jst.jsp.core/plugin.xml b/bundles/org.eclipse.jst.jsp.core/plugin.xml
index 980ff56..ad6153c 100644
--- a/bundles/org.eclipse.jst.jsp.core/plugin.xml
+++ b/bundles/org.eclipse.jst.jsp.core/plugin.xml
@@ -14,6 +14,11 @@
 			associatedContentTypeId="org.eclipse.jst.jsp.core.jspfragmentsource"
 			id="org.eclipse.jst.jsp.core.internal.modelhandler">
 		</modelHandler>
+		<modelHandler
+			class="org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForTag"
+			associatedContentTypeId="org.eclipse.jst.jsp.core.tagsource"
+			id="org.eclipse.jst.jsp.core.internal.modelhandler.tag">
+		</modelHandler>
 	</extension>
 
 	<extension point="org.eclipse.wst.xml.core.documentFactories">
@@ -26,9 +31,23 @@
 	<extension point="org.eclipse.wst.sse.core.taskscanner">
 		<scanner
 			id="org.eclipse.jst.jsp.core.internal.tasks.JSPFileTaskScanner"
-			class="org.eclipse.jst.jsp.core.internal.tasks.JSPFileTaskScanner"
+			class="org.eclipse.jst.jsp.core.internal.tasks.JSPFileTaskScanner:org.eclipse.jst.jsp.core.taskMarker"
 			contentTypeIds="org.eclipse.jst.jsp.core.jspsource" />
 	</extension>
+	<extension
+		id="taskMarker"
+		name="%_taskMarker.name"
+		point="org.eclipse.core.resources.markers">
+      <super type="org.eclipse.core.resources.taskmarker"/>
+		<persistent value="true"/>
+	</extension>
+ <extension
+         id="validationMarker"
+         name="%_validationMarker.name"
+         point="org.eclipse.core.resources.markers">
+      <super type="org.eclipse.wst.validation.problemmarker"/>
+      <persistent value="true"/>
+ </extension>
 
 	<extension
 		point="org.eclipse.core.filebuffers.documentCreation"
@@ -119,7 +138,7 @@
 			name="%JSP_Tag_Content_Type_Extension_Element.name"
 			id="tagsource"
 			base-type="org.eclipse.jst.jsp.core.jspsource"
-			default-charset="UTF-8"/>
+			default-charset="ISO-8859-1"/>
 		<!-- create content type for .tld files -->
 		<content-type
 			file-extensions="tld"
@@ -128,115 +147,10 @@
 			id="tldsource"
 			base-type="org.eclipse.core.runtime.xml"
 			default-charset="UTF-8"/>
-	</extension>
 
-	<!-- initialize jsp core preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceInitializer" />
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- JSP (unified) batch validation                                       				  -->
-	<!--======================================================================================-->
-	<extension
-		id="JSPBatchValidator"
-		name="%JSP_Syntax_Validator.name"
-		point="org.eclipse.wst.validation.validator">
-		<validator>
-			<projectNature id="org.eclipse.jdt.core.javanature" />
-
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jsp">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jspf">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jsf">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jsv">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jtpl">
-			</filter>
-			<helper
-				class="org.eclipse.wst.validation.internal.operations.WorkbenchContext">
-			</helper>
-			<run
-				enabled="true"
-				class="org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator">
-			</run>
-		</validator>
-	</extension>
-	
-	<!--======================================================================================-->
-	<!-- individual source (as you type) validation for JSP	Java				   				  -->
-	<!--======================================================================================-->
-	<extension point="org.eclipse.wst.sse.ui.sourcevalidation">
-		<validator
-			scope="total"
-			class="org.eclipse.jst.jsp.core.internal.validation.JSPJavaValidator"
-			id="org.eclipse.jst.jsp.jspjavavalidator">
-			<contentTypeIdentifier
-				id="org.eclipse.jst.jsp.core.jspsource">
-				<partitionType id="org.eclipse.jst.jsp.DEFAULT_JSP">
-				</partitionType>
-				<partitionType id="org.eclipse.jst.jsp.SCRIPT.JAVA">
-				</partitionType>
-				<partitionType id="org.eclipse.jst.jsp.JSP_DIRECTIVE">
-				</partitionType>
-			</contentTypeIdentifier>
-		</validator>
-	<!--======================================================================================-->
-	<!-- individual source (as you type) validation for JSP EL				   				  -->
-	<!--======================================================================================-->
-		<validator
-			scope="total"
-			class="org.eclipse.jst.jsp.core.internal.validation.JSPELValidator"
-			id="org.eclipse.jst.jsp.jspelvalidator">
-			<contentTypeIdentifier
-				id="org.eclipse.jst.jsp.core.jspsource">
-				<partitionType id="org.eclipse.jst.jsp.SCRIPT.JSP_EL">
-				</partitionType>
-			</contentTypeIdentifier>
-		</validator>
-	<!--====================================================================================-->
-	<!-- individual source (as you type) validation for JSP directives		  				-->
-	<!--====================================================================================-->
-		<validator
-			scope="partial"
-			class="org.eclipse.jst.jsp.core.internal.validation.JSPDirectiveValidator"
-			id="org.eclipse.jst.jsp.tldsourcevalidator">
-			<contentTypeIdentifier
-				id="org.eclipse.jst.jsp.core.jspsource">
-				<partitionType id="org.eclipse.jst.jsp.DEFAULT_JSP">
-				</partitionType>
-				<partitionType id="org.eclipse.jst.jsp.JSP_DIRECTIVE">
-				</partitionType>
-			</contentTypeIdentifier>
-		</validator>
-	</extension>
-	
-    <extension
-       point="org.eclipse.jst.jsp.core.elTranslator">
-       <elTranslator
-          class="org.eclipse.jst.jsp.core.internal.java.jspel.JSPELTranslator"
-          name="Default JSP 2.0 EL Translator"
-          id="org.eclipse.jst.jsp.defaultJSP20"/>
-    </extension>
-    
   	<!--======================================================================================-->
 	<!-- minimal content-type css jsp support                                                 -->
 	<!--======================================================================================-->
-    <extension
-         point="org.eclipse.core.runtime.contentTypes">
         <content-type
 			file-extensions="jsp"
 			priority="high"
@@ -257,6 +171,121 @@
 		</content-type>
 	</extension>
 
+	<!-- initialize jsp core preferences -->
+	<extension point="org.eclipse.core.runtime.preferences">
+		<initializer
+			class="org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceInitializer" />
+	</extension>
+
+	<!--======================================================================================-->
+	<!-- JSP batch validation                                       						  -->
+	<!--======================================================================================-->
+   <extension id="JSPBatchValidator" name="%JSP_Syntax_Validator.name" point="org.eclipse.wst.validation.validatorV2">
+      <validator
+            build="true"
+            class="org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator"
+            manual="true"
+            version="1"
+            markerId="org.eclipse.jst.jsp.core.validationMarker">
+         <include>
+            <rules>
+	           <projectNature id="org.eclipse.jdt.core.javanature"/>
+            </rules>
+         </include>
+         <include>
+            <rules>
+				<contentType id="org.eclipse.jst.jsp.core.jspsource"/>
+				<!-- needed until bug 181443 is implemented -->
+				<contentType id="org.eclipse.jst.jsp.core.jspfragmentsource"/>
+				<contentType id="org.eclipse.jst.jsp.core.tagsource"/>
+               <fileext
+                     caseSensitive="false"
+                     ext="jsp">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="jspf">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="jsf">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="tag">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="tagf">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="jsv">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="jtpl">
+               </fileext>
+            </rules>
+         </include>
+         <group id="org.eclipse.wst.sse.core.structuredModelGroup"/>
+      </validator>
+   </extension>
+	
+   <extension id="JSPContentValidator" name="%JSP_Content_Validator.name" point="org.eclipse.wst.validation.validatorV2">
+      <validator
+            build="true"
+            class="org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator"
+            manual="true"
+            version="1"
+            markerId="org.eclipse.jst.jsp.core.validationMarker">
+         <include>
+            <rules>
+				<contentType id="org.eclipse.jst.jsp.core.jspsource"/>
+				<!-- needed until bug 181443 is implemented -->
+				<contentType id="org.eclipse.jst.jsp.core.jspfragmentsource"/>
+               <fileext
+                     caseSensitive="false"
+                     ext="jsp">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="jspf">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="jsf">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="tag">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="tagf">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="jsv">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="jtpl">
+               </fileext>
+            </rules>
+         </include>
+         <group id="org.eclipse.wst.sse.core.structuredModelGroup"/>
+      </validator>
+   </extension>
+		
+    <extension
+       point="org.eclipse.jst.jsp.core.elTranslator">
+       <elTranslator
+          class="org.eclipse.jst.jsp.core.internal.java.jspel.JSPELTranslator"
+          name="Default JSP 2.0 EL Translator"
+          id="org.eclipse.jst.jsp.defaultJSP20"/>
+    </extension>
+    
 	<extension point="org.eclipse.wst.sse.core.modelHandler">
 		<modelHandler
 			class="org.eclipse.jst.jsp.css.core.internal.modelhandler.ModelHandlerForJSPedCSS"
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Assert.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Assert.java
index 96c0c9d..a5d8e17 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Assert.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Assert.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCoreMessages.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCoreMessages.java
index 4c35f25..e6a72fc 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCoreMessages.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCoreMessages.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 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
  *******************************************************************************/
@@ -21,8 +21,15 @@
 	private static final String BUNDLE_NAME = "org.eclipse.jst.jsp.core.internal.JSPCorePluginResources"; //$NON-NLS-1$
 
 	public static String JSPDirectiveValidator_0;
+	public static String JSPDirectiveValidator_1;
 	public static String JSPDirectiveValidator_2;
-	public static String MESSAGE_JSP_VALIDATING_MESSAGE_UI_;
+	public static String JSPDirectiveValidator_3;
+	public static String JSPDirectiveValidator_4;
+	public static String JSPDirectiveValidator_5;
+	public static String JSPDirectiveValidator_6;
+	public static String JSPDirectiveValidator_7;
+	public static String JSPDirectiveValidator_8;
+	public static String JSPActionValidator_0;
 	public static String JSPIndexManager_0;
 	public static String JSPIndexManager_2;
 	public static String JSP_Search;
@@ -31,6 +38,20 @@
 	public static String JSPDocumentLoader_1;
 	public static String JSPFContentPropertiesManager_Updating;
 	public static String JSPFContentPropertiesManager_Problems_Updating;
+	public static String JSPBatchValidator_0;
+	public static String TaglibHelper_0;
+	public static String TaglibHelper_1;
+	public static String TaglibHelper_2;
+	public static String TaglibHelper_3;
+	public static String JSPTranslator_0;
+	public static String JSPTranslator_1;
+	public static String JSPTranslator_2;
+	public static String JSPTranslator_3;
+	
+	/**
+	 * @deprecated
+	 */
+	public static String MESSAGE_JSP_VALIDATING_MESSAGE_UI_;
 	
 	private JSPCoreMessages() {
 	}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
index 3956bb3..cda29d7 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -14,6 +14,7 @@
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
 import org.eclipse.jst.jsp.core.internal.contentproperties.JSPFContentPropertiesManager;
+import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache;
 import org.eclipse.jst.jsp.core.internal.java.search.JSPIndexManager;
 import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager;
 import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
@@ -52,9 +53,11 @@
 	public void start(BundleContext context) throws Exception {
 		super.start(context);
 
+		/*
+		 * JSPIndexManager depends on TaglibController, so TaglibController
+		 * should be started first
+		 */
 		TaglibIndex.startup();
-		// JSPIndexManager depends on TaglibController, so TaglibController
-		// should be started first
 		TaglibController.startup();
 
 		// listen for classpath changes
@@ -66,6 +69,7 @@
 		// listen for resource changes to update content properties keys
 		JSPFContentPropertiesManager.startup();
 
+		DeploymentDescriptorPropertyCache.start();
 	}
 
 	/*
@@ -74,8 +78,12 @@
 	 * @see org.eclipse.core.runtime.Plugin#stop(org.osgi.framework.BundleContext)
 	 */
 	public void stop(BundleContext context) throws Exception {
-		// stop listenning for resource changes to update content properties
-		// keys
+		DeploymentDescriptorPropertyCache.stop();
+
+		/*
+		 * stop listening for resource changes to update content properties
+		 * keys
+		 */
 		JSPFContentPropertiesManager.shutdown();
 
 		// stop any indexing
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePluginResources.properties b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePluginResources.properties
index 970a9e9..2ff51e7 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePluginResources.properties
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePluginResources.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
+# Copyright (c) 2004, 2008 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
 ###############################################################################
@@ -13,9 +13,26 @@
 JSP_Search=JSP Search - 
 JSPDocumentLoader_1=Program Error: structured model had no structuredDocument
 JSPEL_Syntax=EL Syntax Error 
-JSPEL_Token=Unable to analyse EL expression due to lexical analysis error
+JSPEL_Token=Unable to analyze EL expression due to lexical analysis error
 MESSAGE_JSP_VALIDATING_MESSAGE_UI_=JSP Validator validating {0}
 JSPFContentPropertiesManager_Updating=Updating JSP Fragment Content Settings
 JSPFContentPropertiesManager_Problems_Updating=Problem saving JSP Fragment Content Settings for {0}
-JSPDirectiveValidator_0=Reserved prefix  '
-JSPDirectiveValidator_2=Duplicate prefix  '
+JSPDirectiveValidator_0={0} is a reserved prefix.  Try another
+JSPDirectiveValidator_1=Cannot find the tag library descriptor for "{0}"
+JSPDirectiveValidator_2=The prefix "{0} "is used more than once
+JSPDirectiveValidator_3=A {0} value is required in this directive
+JSPDirectiveValidator_4=Fragment "{0}" was not be found at expected path {1}
+JSPDirectiveValidator_5=Missing required attribute "{0}"
+JSPDirectiveValidator_6=Undefined attribute name "{0}"
+JSPDirectiveValidator_7=A {0} or {1} value is required in this directive
+JSPDirectiveValidator_8=The superclass "{0}" was not found on the build path
+JSPActionValidator_0=Tag ({0}) must be empty
+JSPBatchValidator_0=Gathering files in {0}
+TaglibHelper_0=The TagExtraInfo class for {0} ({1}) was not found on the build path
+TaglibHelper_1=The TagExtraInfo class for {0} ({1}) could not be instantiated
+TaglibHelper_2=A problem was encountered using TagExtraInfo class {1} for {0} 
+TaglibHelper_3=The tag handler class for {0} ({1}) was not found on the build path
+JSPTranslator_0=Invalid identifier: "{0}"
+JSPTranslator_1=Undefined type: {0}
+JSPTranslator_2=Cannot declare both "class" and "beanName" attributes
+JSPTranslator_3=Unknown type for identifier "{0}"
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Logger.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Logger.java
index d67a9a4..02d02ae 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Logger.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/Logger.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMContentWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMContentWrapperImpl.java
index ed39833..11707b7 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMContentWrapperImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMContentWrapperImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,4 +53,4 @@
 	public CMNode getOriginNode() {
 		return fCMContent;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMDocumentWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMDocumentWrapperImpl.java
index 1ab27a7..b330f92 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMDocumentWrapperImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMDocumentWrapperImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -213,4 +213,4 @@
 	public boolean supports(String propertyName) {
 		return getDocument().supports(propertyName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMElementDeclarationWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMElementDeclarationWrapperImpl.java
index 86368f0..69eeca3 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMElementDeclarationWrapperImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMElementDeclarationWrapperImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -125,4 +125,4 @@
 	public CMNode getOriginNode() {
 		return fElementDecl;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMGroupWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMGroupWrapperImpl.java
index 714c547..ee8619e 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMGroupWrapperImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMGroupWrapperImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -109,4 +109,4 @@
 	public CMNode getOriginNode() {
 		return fGroup;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMNodeWrapperImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMNodeWrapperImpl.java
index 0f117ff..a8b7d21 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMNodeWrapperImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/CMNodeWrapperImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -76,4 +76,4 @@
 	public boolean supports(String propertyName) {
 		return fNode.supports(propertyName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JSPCMDocumentFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JSPCMDocumentFactory.java
index a75e1ce..59b2b3e 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JSPCMDocumentFactory.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/JSPCMDocumentFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -12,61 +12,40 @@
 
 import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace;
 import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
 
 /**
- * CMDocument factory for JSP documents.
+ * CMDocument factory for JSP documents (which for now live in the HTML Core
+ * plugin).
  */
 public final class JSPCMDocumentFactory {
 
-	static class CMDocImpl implements CMDocument {
-		public CMDocImpl() {
-			super();
-		}
-
-		private static CMDocument jcm = HTMLCMDocumentFactory.getCMDocument(CMDocType.JSP11_DOC_TYPE);
-
-		public String getNodeName() {
-			return jcm.getNodeName();
-		}
-
-		public int getNodeType() {
-			return jcm.getNodeType();
-		}
-
-		public CMNamedNodeMap getElements() {
-			return jcm.getElements();
-		}
-
-		public CMNamedNodeMap getEntities() {
-			return jcm.getEntities();
-		}
-
-		public CMNamespace getNamespace() {
-			return jcm.getNamespace();
-		}
-
-		public Object getProperty(String propertyName) {
-			return null;
-		}
-
-		public boolean supports(String propertyName) {
-			return false;
-		}
-	}
-
-	private static CMDocument mycm;
-
 	private JSPCMDocumentFactory() {
 		super();
 	}
 
 	public static CMDocument getCMDocument() {
-		if (mycm == null) {
-			mycm = new CMDocImpl();
-		}
-		return mycm;
+		return getCMDocument(CMDocType.JSP20_DOC_TYPE);
 	}
-}
\ No newline at end of file
+
+	/**
+	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
+	 * @param cmtype
+	 *            java.lang.String
+	 */
+	public static CMDocument getCMDocument(String cmtype) {
+		if (cmtype == null)
+			return getCMDocument();
+		return HTMLCMDocumentFactory.getCMDocument(cmtype);
+	}
+
+	public static CMDocument getCMDocument(float jspVersion) {
+		if (jspVersion >= 2)
+			return getCMDocument(CMDocType.JSP20_DOC_TYPE);
+		if (jspVersion >= 1.2)
+			return getCMDocument(CMDocType.JSP12_DOC_TYPE);
+		if (jspVersion >= 1)
+			return getCMDocument(CMDocType.JSP11_DOC_TYPE);
+		return getCMDocument();
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibController.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibController.java
index 48e22bb..e4454cc 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibController.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/TaglibController.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -19,16 +19,18 @@
 
 import org.eclipse.core.filebuffers.FileBuffers;
 import org.eclipse.core.filebuffers.IDocumentSetupParticipant;
+import org.eclipse.core.filebuffers.IDocumentSetupParticipantExtension;
 import org.eclipse.core.filebuffers.IFileBuffer;
 import org.eclipse.core.filebuffers.IFileBufferListener;
 import org.eclipse.core.filebuffers.ITextFileBuffer;
+import org.eclipse.core.filebuffers.LocationKind;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
 import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
+import org.eclipse.jst.jsp.core.taglib.ITaglibIndexDelta;
 import org.eclipse.jst.jsp.core.taglib.ITaglibIndexListener;
-import org.eclipse.jst.jsp.core.taglib.ITaglibRecordEvent;
 import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
@@ -47,22 +49,31 @@
  * 
  * TODO: Remove the reparse penalty.
  */
-public class TaglibController implements IDocumentSetupParticipant {
+public class TaglibController implements IDocumentSetupParticipant, IDocumentSetupParticipantExtension {
 
 	class DocumentInfo implements ITaglibIndexListener {
 		IStructuredDocument document;
 		ITextFileBuffer textFileBuffer;
+		IPath location;
+		LocationKind locationKind;
 		TLDCMDocumentManager tldDocumentManager;
 
-		public void indexChanged(ITaglibRecordEvent event) {
-			int type = event.getType();
-			if (type == ITaglibRecordEvent.CHANGED || type == ITaglibRecordEvent.REMOVED) {
-				Object key = TLDCMDocumentManager.getUniqueIdentifier(event.getTaglibRecord());
-				if (tldDocumentManager.getDocuments().containsKey(key)) {
+		public void indexChanged(ITaglibIndexDelta delta) {
+			int type = delta.getKind();
+			if (type == ITaglibIndexDelta.CHANGED || type == ITaglibIndexDelta.REMOVED) {
+				ITaglibIndexDelta[] deltas = delta.getAffectedChildren();
+				boolean affected = false;
+				for (int i = 0; i < deltas.length; i++) {
+					Object key = TLDCMDocumentManager.getUniqueIdentifier(deltas[i].getTaglibRecord());
+					if (tldDocumentManager.getDocuments().containsKey(key)) {
+						affected = true;
+					}
+				}
+				if (affected) {
 					if (_debugCache) {
 						System.out.println("TLDCMDocumentManager cleared its private CMDocument cache"); //$NON-NLS-1$
 					}
-					tldDocumentManager.getDocuments().remove(key);
+					tldDocumentManager.getDocuments().clear();
 					tldDocumentManager.getSourceParser().resetHandlers();
 
 					if (document instanceof BasicStructuredDocument) {
@@ -70,7 +81,7 @@
 					}
 				}
 			}
-			tldDocumentManager.indexChanged(event);
+			tldDocumentManager.indexChanged(delta);
 		}
 	}
 
@@ -108,17 +119,30 @@
 						return;
 				}
 				Assert.isTrue(document instanceof IStructuredDocument, getClass().getName() + " SetupParticipant was called for non-IStructuredDocument"); //$NON-NLS-1$
-				DocumentInfo info = new DocumentInfo();
-				info.document = (IStructuredDocument) document;
-				info.textFileBuffer = (ITextFileBuffer) buffer;
-				info.tldDocumentManager = new TLDCMDocumentManager();
-				info.tldDocumentManager.setSourceParser((JSPSourceParser) info.document.getParser());
+
+				DocumentInfo info = null;
 				synchronized (_instance.fDocumentMap) {
-					_instance.fDocumentMap.put(document, info);
+					info = (DocumentInfo) _instance.fDocumentMap.get(document);
 				}
-				TaglibIndex.addTaglibIndexListener(info);
-				if (document instanceof BasicStructuredDocument) {
-					((BasicStructuredDocument) document).reparse(this);
+				if (info != null) {
+					// remember the buffer now
+					info.textFileBuffer = (ITextFileBuffer) buffer;
+				}
+				else {
+					info = new DocumentInfo();
+					info.document = (IStructuredDocument) document;
+					info.textFileBuffer = (ITextFileBuffer) buffer;
+					info.location = buffer.getLocation();
+					info.locationKind = LocationKind.NORMALIZE;
+					info.tldDocumentManager = new TLDCMDocumentManager();
+					info.tldDocumentManager.setSourceParser((JSPSourceParser) info.document.getParser());
+					synchronized (_instance.fDocumentMap) {
+						_instance.fDocumentMap.put(document, info);
+					}
+					TaglibIndex.addTaglibIndexListener(info);
+					if (document instanceof BasicStructuredDocument && document.getLength() > 0) {
+						((BasicStructuredDocument) document).reparse(this);
+					}
 				}
 			}
 		}
@@ -138,11 +162,17 @@
 			}
 			DocumentInfo info = null;
 			synchronized (fDocumentMap) {
-				Object[] keys = fDocumentMap.keySet().toArray();
-				for (int i = 0; i < keys.length; i++) {
-					info = (DocumentInfo) fDocumentMap.get(keys[i]);
-					if (info != null && info.textFileBuffer.equals(buffer)) {
-						fDocumentMap.remove(keys[i]);
+				Map.Entry[] entries = (Map.Entry[]) fDocumentMap.entrySet().toArray(new Map.Entry[fDocumentMap.size()]);
+				for (int i = 0; i < entries.length; i++) {
+					info = (DocumentInfo) entries[i].getValue();
+					/**
+					 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=222137
+					 * 
+					 * Might be null if setup() has been called but
+					 * bufferCreated() has not, yet.
+					 */
+					if (info != null && info.textFileBuffer != null && info.textFileBuffer.equals(buffer)) {
+						fDocumentMap.remove(entries[i].getKey());
 						break;
 					}
 				}
@@ -210,11 +240,11 @@
 	static TaglibController _instance = null;
 	static private boolean fIsShutdown = false;
 
-	public static ITextFileBuffer getFileBuffer(IDocument document) {
+	public static IPath getLocation(IDocument document) {
 		synchronized (_instance.fDocumentMap) {
 			DocumentInfo info = (DocumentInfo) _instance.fDocumentMap.get(document);
 			if (info != null)
-				return info.textFileBuffer;
+				return info.location;
 			return null;
 		}
 	}
@@ -223,25 +253,25 @@
 	 * @param manager
 	 * @return
 	 */
-	public static ITextFileBuffer getFileBuffer(TLDCMDocumentManager manager) {
+	public static IPath getLocation(TLDCMDocumentManager manager) {
 		// if _instance is null, we are already shutting donw
 		if (_instance == null)
 			return null;
 
-		ITextFileBuffer buffer = null;
+		IPath location = null;
 		synchronized (_instance.fDocumentMap) {
 			Iterator docInfos = _instance.fDocumentMap.values().iterator();
-			while (docInfos.hasNext() && buffer == null) {
+			while (docInfos.hasNext() && location == null) {
 				DocumentInfo info = (DocumentInfo) docInfos.next();
 				if (info.tldDocumentManager.equals(manager))
-					buffer = info.textFileBuffer;
+					location = info.location;
 			}
 		}
-		return buffer;
+		return location;
 	}
 
 	public static TLDCMDocumentManager getTLDCMDocumentManager(IDocument document) {
-		// if _instance is null, we are already shutting donw
+		// if _instance is null, we are already shutting down
 		if (_instance == null)
 			return null;
 		synchronized (_instance.fDocumentMap) {
@@ -308,4 +338,36 @@
 			_instance.fJSPdocuments.add(document);
 		}
 	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.filebuffers.IDocumentSetupParticipantExtension#setup(org.eclipse.jface.text.IDocument,
+	 *      org.eclipse.core.runtime.IPath,
+	 *      org.eclipse.core.filebuffers.LocationKind)
+	 */
+	public void setup(IDocument document, IPath location, LocationKind locationKind) {
+		// if we've already shutdown, just ignore
+		if (isShutdown())
+			return;
+		// reference the shared instance's documents directly
+		synchronized (_instance.fJSPdocuments) {
+			_instance.fJSPdocuments.add(document);
+		}
+
+		DocumentInfo info = new DocumentInfo();
+		info.document = (IStructuredDocument) document;
+		info.textFileBuffer = null; // will be supplied later
+		info.location = location;
+		info.locationKind = locationKind;
+		info.tldDocumentManager = new TLDCMDocumentManager();
+		synchronized (_instance.fDocumentMap) {
+			_instance.fDocumentMap.put(document, info);
+		}
+		info.tldDocumentManager.setSourceParser((JSPSourceParser) info.document.getParser());
+		if (document instanceof BasicStructuredDocument && document.getLength() > 0) {
+			((BasicStructuredDocument) document).reparse(this);
+		}
+		TaglibIndex.addTaglibIndexListener(info);
+	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMAttributeDeclarationImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMAttributeDeclarationImpl.java
index ea5999e..41d7ed9 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMAttributeDeclarationImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMAttributeDeclarationImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -26,7 +26,7 @@
 
 	private CMDataType attrType = new CMDataTypeImpl(CMDataType.CDATA);
 	private String fDescription;
-	
+
 	//
 	private boolean fIsFragment = false;
 
@@ -38,8 +38,9 @@
 	private String name = null;
 	// optional "required" element present, defaults to not present
 	private boolean required = false;
-	
-	// optional run-time (scriplet derived) value of attributes, defaults to none/false
+
+	// optional run-time (scriplet derived) value of attributes, defaults to
+	// none/false
 	private String rtexprvalue = null;
 
 	private String type = null;
@@ -54,6 +55,7 @@
 
 	/**
 	 * getAttrName method
+	 * 
 	 * @return java.lang.String
 	 */
 	public String getAttrName() {
@@ -62,6 +64,7 @@
 
 	/**
 	 * getAttrType method
+	 * 
 	 * @return CMDataType
 	 */
 	public CMDataType getAttrType() {
@@ -74,6 +77,7 @@
 	public String getDefaultValue() {
 		return ""; //$NON-NLS-1$
 	}
+
 	/**
 	 * @return Returns the description.
 	 */
@@ -98,6 +102,7 @@
 
 	/**
 	 * getNodeName method
+	 * 
 	 * @return java.lang.String
 	 */
 	public String getNodeName() {
@@ -106,16 +111,19 @@
 
 	/**
 	 * getNodeType method
+	 * 
 	 * @return int
-	 *
+	 * 
 	 * Returns one of :
-	 *
+	 * 
 	 */
 	public int getNodeType() {
 		return CMNode.ATTRIBUTE_DECLARATION;
 	}
 
-	/* (non-Javadoc)
+	/*
+	 * (non-Javadoc)
+	 * 
 	 * @see org.eclipse.jst.jsp.core.contentmodel.tld.TLDAttributeDeclaration#getOwnerDocument()
 	 */
 	public CMDocument getOwnerDocument() {
@@ -124,10 +132,11 @@
 
 	/**
 	 * getProperty method
+	 * 
 	 * @return java.lang.Object
-	 *
+	 * 
 	 * Returns the object property desciped by the propertyName
-	 *
+	 * 
 	 */
 	public Object getProperty(String propertyName) {
 		if (propertyName != null && propertyName.equals(JSP12TLDNames.DESCRIPTION)) {
@@ -156,12 +165,13 @@
 
 	/**
 	 * getUsage method
-	 * @return int
-	 * OPTIONAL|REQUIRED
+	 * 
+	 * @return int OPTIONAL|REQUIRED
 	 */
 	public int getUsage() {
 		return required ? REQUIRED : OPTIONAL;
 	}
+
 	/**
 	 * @return Returns the isFragment.
 	 */
@@ -176,14 +186,18 @@
 	public boolean isRequired() {
 		return required;
 	}
+
 	/**
-	 * @param description The description to set.
+	 * @param description
+	 *            The description to set.
 	 */
 	public void setDescription(String description) {
 		fDescription = description;
 	}
+
 	/**
-	 * @param isFragment The isFragment to set.
+	 * @param isFragment
+	 *            The isFragment to set.
 	 */
 	public void setFragment(boolean isFragment) {
 		fIsFragment = isFragment;
@@ -191,7 +205,8 @@
 
 	/**
 	 * 
-	 * @param newId java.lang.String
+	 * @param newId
+	 *            java.lang.String
 	 */
 	public void setId(String newId) {
 		id = newId;
@@ -203,7 +218,8 @@
 
 	/**
 	 * 
-	 * @param newRequired boolean
+	 * @param newRequired
+	 *            boolean
 	 */
 	public void setRequired(boolean newRequired) {
 		required = newRequired;
@@ -211,18 +227,22 @@
 
 	/**
 	 * 
-	 * @param newRequired boolean
+	 * @param newRequired
+	 *            boolean
 	 */
 	public void setRequiredString(String newRequired) {
-		if (newRequired.equalsIgnoreCase("true") || newRequired.equalsIgnoreCase("yes")) //$NON-NLS-2$//$NON-NLS-1$
-			setRequired(true);
-		else if (newRequired.equalsIgnoreCase("false") || newRequired.equalsIgnoreCase("no")) //$NON-NLS-2$//$NON-NLS-1$
-			setRequired(false);
+		if (newRequired != null) {
+			if (newRequired.equalsIgnoreCase(JSP12TLDNames.TRUE) || newRequired.equalsIgnoreCase(JSP12TLDNames.YES))
+				setRequired(true);
+			else if (newRequired.equalsIgnoreCase(JSP12TLDNames.FALSE) || newRequired.equalsIgnoreCase(JSP12TLDNames.NO))
+				setRequired(false);
+		}
 	}
 
 	/**
 	 * 
-	 * @param newRtexprvalue java.lang.String
+	 * @param newRtexprvalue
+	 *            java.lang.String
 	 */
 	public void setRtexprvalue(String newRtexprvalue) {
 		rtexprvalue = newRtexprvalue;
@@ -249,11 +269,12 @@
 		buffer.append("\n\t " + super.toString()); //$NON-NLS-1$
 		buffer.append("\n\t name:" + StringUtils.escape(getNodeName())); //$NON-NLS-1$
 		// Boolean.toString(boolean) is introduced in 1.4
-		//buffer.append("\n\t required:" + StringUtils.escape(Boolean.toString(isRequired())));
+		// buffer.append("\n\t required:" +
+		// StringUtils.escape(Boolean.toString(isRequired())));
 		buffer.append("\n\t required:" + StringUtils.toString(isRequired())); //$NON-NLS-1$
 		buffer.append("\n\t rtexpr:" + StringUtils.escape(getRtexprvalue())); //$NON-NLS-1$
 		if (getId() != null)
 			buffer.append("\n\t id:" + StringUtils.escape(getId())); //$NON-NLS-1$
 		return buffer.toString();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDataTypeImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDataTypeImpl.java
index 06e0817..1c325a3 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDataTypeImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDataTypeImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -97,4 +97,4 @@
 	public boolean supports(String propertyName) {
 		return false;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentFactoryTLD.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentFactoryTLD.java
index 12a38ac..2b5acef 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentFactoryTLD.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentFactoryTLD.java
@@ -1,15 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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.contentmodel.tld;
 
+import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -17,33 +18,60 @@
 import java.net.URL;
 import java.net.URLConnection;
 
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
 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.Path;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP11TLDNames;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP20TLDNames;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDFunction;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDInitParam;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDListener;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDValidator;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDVariable;
+import org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP;
+import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
+import org.eclipse.jst.jsp.core.internal.provisional.JSP20Namespace;
+import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.jst.jsp.core.internal.util.DocumentProvider;
+import org.eclipse.jst.jsp.core.internal.util.FacetModuleCoreSupport;
 import org.eclipse.jst.jsp.core.taglib.IJarRecord;
 import org.eclipse.jst.jsp.core.taglib.ITLDRecord;
+import org.eclipse.jst.jsp.core.taglib.ITagDirRecord;
 import org.eclipse.jst.jsp.core.taglib.ITaglibRecord;
 import org.eclipse.jst.jsp.core.taglib.IURLRecord;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
 import org.eclipse.wst.sse.core.internal.util.JarUtilities;
+import org.eclipse.wst.sse.core.utils.StringUtils;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.factory.CMDocumentFactory;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 import org.w3c.dom.Element;
 import org.w3c.dom.EntityReference;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
 
 /**
  * CMDocumentBuilder for Taglib Descriptors
@@ -85,11 +113,36 @@
 	 * @param fileName
 	 * @return
 	 */
-	private CMDocument buildCMDocumentFromDirectory(File directory) {
+	private CMDocumentImpl buildCMDocumentFromFolder(IPath path) {
 		if (_debug) {
-			System.out.println("not implemented: tagdir loading for " + directory.getAbsolutePath()); //$NON-NLS-1$
+			System.out.println("tagdir loading for " + path); //$NON-NLS-1$
 		}
-		return null;
+		// EBNF is listed at 1.3.10
+		CMDocumentImpl document = new CMDocumentImpl();
+		document.setBaseLocation(path.toString());
+		document.setTlibversion("1.0"); //$NON-NLS-1$
+		IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(path);
+		IResource[] tagfiles;
+		try {
+			tagfiles = folder.members();
+			for (int i = 0; i < tagfiles.length; i++) {
+				if (tagfiles[i].getType() == IResource.FILE) {
+					if (tagfiles[i].getType() != IResource.FILE)
+						continue;
+					String extension = tagfiles[i].getFileExtension();
+					if (extension != null && (extension.equals("tag") || extension.equals("tagx"))) {
+						CMElementDeclaration ed = createElementDeclaration(document, (IFile) tagfiles[i]);
+						if (ed != null) {
+							document.fElements.setNamedItem(ed.getNodeName(), ed);
+						}
+					}
+				}
+			}
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
+		return document;
 	}
 
 	/**
@@ -210,29 +263,59 @@
 	 */
 	private CMDocument createCMDocumentFromFile(String fileName) {
 		CMDocument result = null;
-		File file = new File(fileName);
-		try {
-			if (file.isDirectory()) {
-				result = buildCMDocumentFromDirectory(file);
-			}
+		if (fileName.endsWith(".jar")) { //$NON-NLS-1$
+			result = buildCMDocumentFromJar(fileName);
 		}
-		catch (SecurityException e) {
-			result = null;
-		}
-		if (result == null) {
-			if (fileName.endsWith(".jar")) { //$NON-NLS-1$
-				result = buildCMDocumentFromJar(fileName);
+		else {
+			File file = new File(fileName);
+			try {
+				if (file.isDirectory()) {
+					result = buildCMDocumentFromDirectory(file);
+				}
+				else {
+					result = buildCMDocumentFromFile(fileName);
+				}
 			}
-			else {
-				result = buildCMDocumentFromFile(fileName);
+			catch (SecurityException e) {
+				result = null;
 			}
 		}
 		return result;
 	}
 
-	protected CMElementDeclaration createElementDeclaration(CMDocument cmdocument, Element tagFileNode, String path) {
-		CMElementDeclarationImpl ed = new CMElementDeclarationImpl(cmdocument);
-		boolean hasName = false;
+	private CMDocument buildCMDocumentFromDirectory(File file) {
+		IFile[] foundFilesForLocation = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(file.getPath()));
+		for (int i = 0; i < foundFilesForLocation.length; i++) {
+			if (foundFilesForLocation[i].isAccessible() && foundFilesForLocation[i].getType() == IResource.FOLDER) {
+				return buildCMDocumentFromFolder(foundFilesForLocation[i].getFullPath());
+			}
+		}
+		return null;
+	}
+
+	protected CMElementDeclaration createElementDeclaration(CMDocumentImpl document, Element tagFileNode, String path) {
+		CMElementDeclarationImpl ed = new CMElementDeclarationImpl(document);
+		/*
+		 * Preload with information from the tag file--it can be overwritten
+		 * by the values from the TLD
+		 */
+		IPath tagPath = FacetModuleCoreSupport.resolve(new Path(document.getBaseLocation()), path);
+		if (tagPath.segmentCount() > 1) {
+			IFile tagFile = ResourcesPlugin.getWorkspace().getRoot().getFile(tagPath);
+			if (tagFile.isAccessible()) {
+				ed.setPath(tagFile.getFullPath().toString());
+				if (tagPath.getFileExtension().equals("tag")) {
+					loadTagFile(ed, tagFile, true);
+				}
+				else if (tagPath.getFileExtension().equals("tagx")) {
+					loadTagXFile(ed, tagFile, true);
+				}
+
+				if (tagFile.getLocation() != null && ed.getSmallIcon() != null) {
+					ed.setSmallIconURL(URIHelper.normalize(ed.getSmallIcon(), "file:" + tagFile.getLocation().toString(), tagFile.getLocation().removeLastSegments(1).toString()));
+				}
+			}
+		}
 
 		// load information declared within the .tld
 		Node child = tagFileNode.getFirstChild();
@@ -253,7 +336,6 @@
 				}
 				else if (nodeName.equals(JSP12TLDNames.NAME) && child.hasChildNodes()) {
 					ed.setNodeName(getContainedText(child));
-					hasName = ed.getNodeName().trim().length() > 0;
 				}
 				else if (nodeName.equals(JSP20TLDNames.PATH) && child.hasChildNodes()) {
 					ed.setPath(getContainedText(child));
@@ -264,12 +346,8 @@
 			}
 			child = child.getNextSibling();
 		}
-		if (hasName) {
-			// load information declared within the .tag(x) file
-			// JSP2_TODO: implement for JSP 2.0
-			return ed;
-		}
-		return null;
+		
+		return ed;
 	}
 
 	protected CMElementDeclaration createElementDeclaration(CMDocument document, Node tagNode) {
@@ -330,6 +408,30 @@
 		return ed;
 	}
 
+	private CMElementDeclaration createElementDeclaration(CMDocument document, IFile tagFile) {
+		CMElementDeclarationImpl ed = new CMElementDeclarationImpl(document);
+		// in tag files, the default body content is scriptless instead of JSP
+		ed.setBodycontent(JSP20TLDNames.CONTENT_SCRIPTLESS);
+		String shortFilename = tagFile.getName();
+		String fileExtension = tagFile.getFileExtension();
+		if (fileExtension != null && fileExtension.length() > 0) {
+			shortFilename = shortFilename.substring(0, shortFilename.length() - fileExtension.length() - 1);
+		}
+		ed.setNodeName(shortFilename);
+		ed.setPath(tagFile.getFullPath().toString());
+		if (fileExtension.equals("tag")) {
+			loadTagFile(ed, tagFile, true);
+		}
+		else if (fileExtension.equals("tagx")) {
+			loadTagXFile(ed, tagFile, true);
+		}
+
+		if (tagFile.getLocation() != null && ed.getSmallIcon() != null) {
+			ed.setSmallIconURL(URIHelper.normalize(ed.getSmallIcon(), "file:" + tagFile.getLocation().toString(), tagFile.getLocation().removeLastSegments(1).toString()));
+		}
+		return ed;
+	}
+
 	protected TLDFunction createFunction(CMDocument document, Node functionNode) {
 		TLDFunctionImpl function = new TLDFunctionImpl(document);
 		boolean hasName = false;
@@ -509,6 +611,9 @@
 				continue;
 			}
 			String nodeName = child.getNodeName();
+			if(nodeName.indexOf(':') > 0) {
+				nodeName = nodeName.substring(nodeName.indexOf(':'));
+			}
 			// tag
 			if (nodeName.equals(JSP11TLDNames.TAG)) {
 				CMElementDeclaration ed = createElementDeclaration(document, child);
@@ -519,11 +624,18 @@
 			// tag-file
 			else if (nodeName.equals(JSP20TLDNames.TAG_FILE) && child.getNodeType() == Node.ELEMENT_NODE && child.hasChildNodes()) {
 				Element tagFileElement = (Element) child;
-				String path = tagFileElement.getAttribute(JSP20TLDNames.PATH);
-
-				CMElementDeclarationImpl ed = (CMElementDeclarationImpl) createElementDeclaration(document, tagFileElement, path);
-				if (ed != null) {
-					document.fElements.setNamedItem(ed.getNodeName(), ed);
+				Node path = tagFileElement.getFirstChild();
+				while (path != null) {
+					if (path.getNodeType() == Node.ELEMENT_NODE && (JSP20TLDNames.PATH.equals(path.getNodeName()) || JSP20TLDNames.PATH.equals(path.getLocalName()))) {
+						String pathValue = getContainedText(path);
+						if (pathValue != null && pathValue.length() > 0) {
+							CMElementDeclarationImpl ed = (CMElementDeclarationImpl) createElementDeclaration(document, tagFileElement, pathValue);
+							if (ed != null) {
+								document.fElements.setNamedItem(ed.getNodeName(), ed);
+							}
+						}
+					}
+					path = path.getNextSibling();
 				}
 			}
 			// other one-of-a-kind children
@@ -587,6 +699,288 @@
 		return document;
 	}
 
+	private void loadTagXFile(final CMElementDeclarationImpl ed, IFile tagxFile, boolean allowIncludes) {
+		ed.setPath(tagxFile.getFullPath().toString());
+		ed.setTagSource(TLDElementDeclaration.SOURCE_TAG_FILE);
+		try {
+			SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
+			InputSource inputSource = new InputSource(tagxFile.getFullPath().toString());
+			InputStream input = tagxFile.getContents(false);
+			inputSource.setByteStream(input);
+			parser.parse(inputSource, new DefaultHandler() {
+				public InputSource resolveEntity(String publicId, String systemId) throws SAXException {
+					InputSource inputSource2 = new InputSource(systemId);
+					inputSource2.setByteStream(new ByteArrayInputStream(new byte[0]));
+					return inputSource2;
+				}
+
+				public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+					super.startElement(uri, localName, qName, attributes);
+					if (qName.equals(JSP20Namespace.ElementName.DIRECTIVE_TAG)) {
+						if (attributes.getIndex(JSP12TLDNames.DISPLAY_NAME) >= 0)
+							ed.setDisplayName(attributes.getValue(JSP12TLDNames.DISPLAY_NAME));
+						if (attributes.getIndex(JSP12TLDNames.BODY_CONTENT) >= 0)
+							ed.setBodycontent(attributes.getValue(JSP12TLDNames.BODY_CONTENT));
+						if (attributes.getIndex(JSP20TLDNames.DYNAMIC_ATTRIBUTES) >= 0)
+							ed.setDynamicAttributes(attributes.getValue(JSP20TLDNames.DYNAMIC_ATTRIBUTES));
+						if (attributes.getIndex(JSP12TLDNames.SMALL_ICON) >= 0)
+							ed.setSmallIcon(attributes.getValue(JSP12TLDNames.SMALL_ICON));
+						if (attributes.getIndex(JSP12TLDNames.LARGE_ICON) >= 0)
+							ed.setLargeIcon(attributes.getValue(JSP12TLDNames.LARGE_ICON));
+						if (attributes.getIndex(JSP12TLDNames.DESCRIPTION) >= 0)
+							ed.setDescription(attributes.getValue(JSP12TLDNames.DESCRIPTION));
+						if (attributes.getIndex(JSP20TLDNames.EXAMPLE) >= 0)
+							ed.setExample(attributes.getValue(JSP20TLDNames.EXAMPLE));
+						if (attributes.getIndex(JSP20TLDNames.SCRIPTING_LANGUAGE) >= 0)
+							ed.setScriptingLanguage(attributes.getValue(JSP20TLDNames.SCRIPTING_LANGUAGE));
+						if (attributes.getIndex(JSP20TLDNames.IMPORT) >= 0)
+							ed.setImport(attributes.getValue(JSP20TLDNames.IMPORT));
+						if (attributes.getIndex(JSP20TLDNames.PAGE_ENCODING) >= 0)
+							ed.setPageEncoding(attributes.getValue(JSP20TLDNames.PAGE_ENCODING));
+						if (attributes.getIndex(JSP20TLDNames.IS_EL_IGNORED) >= 0)
+							ed.setIsELIgnored(attributes.getValue(JSP20TLDNames.IS_EL_IGNORED));
+					}
+					else if (qName.equals(JSP20Namespace.ElementName.DIRECTIVE_ATTRIBUTE)) {
+						CMAttributeDeclarationImpl attribute = new CMAttributeDeclarationImpl(ed.getOwnerDocument());
+						String nameValue = attributes.getValue(JSP12TLDNames.NAME);
+						attribute.setNodeName(nameValue);
+						if (attributes.getIndex(JSP20TLDNames.FRAGMENT) >= 0)
+							attribute.setFragment(Boolean.valueOf(attributes.getValue(JSP20TLDNames.FRAGMENT)).booleanValue());
+						if (attributes.getIndex(JSP12TLDNames.RTEXPRVALUE) >= 0)
+							attribute.setRtexprvalue(attributes.getValue(JSP12TLDNames.RTEXPRVALUE));
+						if (attributes.getIndex(JSP20TLDNames.TYPE) >= 0)
+							attribute.setType(attributes.getValue(JSP20TLDNames.TYPE));
+						if (attributes.getIndex(JSP12TLDNames.DESCRIPTION) >= 0)
+							attribute.setDescription(attributes.getValue(JSP12TLDNames.DESCRIPTION));
+						if (attributes.getIndex(JSP12TLDNames.REQUIRED) >= 0)
+							attribute.setRequiredString(attributes.getValue(JSP12TLDNames.REQUIRED));
+						if (nameValue != null && nameValue.length() > 0) {
+							ed.fAttributes.setNamedItem(nameValue, attribute);
+						}
+					}
+					else if (qName.equals(JSP20Namespace.ElementName.DIRECTIVE_VARIABLE)) {
+						TLDVariableImpl variable = new TLDVariableImpl();
+						if (attributes.getIndex(JSP12TLDNames.VARIABLE_NAME_GIVEN) >= 0)
+							variable.setNameGiven(attributes.getValue(JSP12TLDNames.VARIABLE_NAME_GIVEN));
+						if (attributes.getIndex(JSP12TLDNames.VARIABLE_NAME_FROM_ATTRIBUTE) >= 0)
+							variable.setNameFromAttribute(attributes.getValue(JSP12TLDNames.VARIABLE_NAME_FROM_ATTRIBUTE));
+						if (attributes.getIndex(JSP20TLDNames.VARIABLE_ALIAS) >= 0)
+							variable.setAlias(attributes.getValue(JSP20TLDNames.VARIABLE_ALIAS));
+						if (attributes.getIndex(JSP12TLDNames.VARIABLE_CLASS) >= 0)
+							variable.setVariableClass(attributes.getValue(JSP12TLDNames.VARIABLE_CLASS));
+						if (attributes.getIndex(JSP12TLDNames.VARIABLE_DECLARE) >= 0)
+							variable.setDeclareString(attributes.getValue(JSP12TLDNames.VARIABLE_DECLARE));
+						if (attributes.getIndex(JSP11Namespace.ATTR_NAME_SCOPE) >= 0)
+							variable.setScope(attributes.getValue(JSP11Namespace.ATTR_NAME_SCOPE));
+						if (attributes.getIndex(JSP12TLDNames.DESCRIPTION) >= 0)
+							variable.setDescription(attributes.getValue(JSP12TLDNames.DESCRIPTION));
+						if (variable.getAlias() != null || variable.getNameFromAttribute() != null || variable.getNameGiven() != null) {
+							ed.getVariables().add(variable);
+						}
+					}
+					else if (qName.equals(JSP11Namespace.ElementName.DIRECTIVE_INCLUDE)) {
+						IPath filePath = null;
+						String text = attributes.getValue(JSP11Namespace.ATTR_NAME_FILE);
+						if (text != null) {
+							filePath = FacetModuleCoreSupport.resolve(new Path(((CMDocumentImpl) ed.getOwnerDocument()).getBaseLocation()), text);
+							IFile includedFile = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
+							if (includedFile.isAccessible()) {
+								loadTagXFile(ed, includedFile, false);
+							}
+						}
+					}
+				}
+			});
+			input.close();
+		}
+		catch (ParserConfigurationException e) {
+			Logger.logException(e);
+		}
+		catch (SAXException e) {
+			Logger.logException(e);
+		}
+		catch (IOException e) {
+			Logger.logException(e);
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
+		ed.setLocationString(tagxFile.getFullPath().toString());
+	}
+
+	private void loadTagFile(CMElementDeclarationImpl ed, IFile tagFile, boolean allowIncludes) {
+		try {
+			IStructuredDocument document = (IStructuredDocument) new ModelHandlerForJSP().getDocumentLoader().createNewStructuredDocument(tagFile);
+			IStructuredDocumentRegion documentRegion = document.getFirstStructuredDocumentRegion();
+			ed.setPath(tagFile.getFullPath().toString());
+			ed.setTagSource(TLDElementDeclaration.SOURCE_TAG_FILE);
+			while (documentRegion != null) {
+				if (documentRegion.getType().equals(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME)) {
+					if (documentRegion.getNumberOfRegions() > 2) {
+						ITextRegionList regions = documentRegion.getRegions();
+						String directiveName = documentRegion.getText(regions.get(1));
+						if (JSP12TLDNames.TAG.equals(directiveName)) {
+							// 8.5.1
+							String attrName = null;
+							for (int i = 2; i < documentRegion.getNumberOfRegions(); i++) {
+								ITextRegion region = regions.get(i);
+								String text = documentRegion.getText(region);
+								if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
+									attrName = text;
+								}
+								// process value
+								else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+									text = StringUtils.strip(text);
+									if (JSP12TLDNames.DISPLAY_NAME.equals(attrName)) {
+										ed.setDisplayName(text);
+									}
+									else if (JSP12TLDNames.BODY_CONTENT.equals(attrName)) {
+										ed.setBodycontent(text);
+									}
+									else if (JSP20TLDNames.DYNAMIC_ATTRIBUTES.equals(attrName)) {
+										ed.setDynamicAttributes(text);
+									}
+									else if (JSP12TLDNames.SMALL_ICON.equals(attrName)) {
+										ed.setSmallIcon(text);
+									}
+									else if (JSP12TLDNames.LARGE_ICON.equals(attrName)) {
+										ed.setLargeIcon(text);
+									}
+									else if (JSP12TLDNames.DESCRIPTION.equals(attrName)) {
+										ed.setDescription(text);
+									}
+									else if (JSP20TLDNames.EXAMPLE.equals(attrName)) {
+										ed.setExample(text);
+									}
+									else if (JSP20TLDNames.SCRIPTING_LANGUAGE.equals(attrName)) {
+										ed.setScriptingLanguage(text);
+									}
+									else if (JSP20TLDNames.IMPORT.equals(attrName)) {
+										ed.setImport(text);
+									}
+									else if (JSP20TLDNames.PAGE_ENCODING.equals(attrName)) {
+										ed.setPageEncoding(text);
+									}
+									else if (JSP20TLDNames.IS_EL_IGNORED.equals(attrName)) {
+										ed.setIsELIgnored(text);
+									}
+								}
+							}
+						}
+						else if (JSP12TLDNames.ATTRIBUTE.equals(directiveName)) {
+							CMAttributeDeclarationImpl attribute = new CMAttributeDeclarationImpl(ed.getOwnerDocument());
+							// 8.5.2
+							String attrName = null;
+							for (int i = 2; i < documentRegion.getNumberOfRegions(); i++) {
+								ITextRegion region = regions.get(i);
+								String text = documentRegion.getText(region);
+								if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
+									attrName = text;
+								}
+								// process value
+								else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && attrName != null) {
+									text = StringUtils.strip(text);
+									if (JSP12TLDNames.NAME.equals(attrName)) {
+										attribute.setNodeName(text);
+									}
+									else if (JSP20TLDNames.FRAGMENT.equals(attrName)) {
+										attribute.setFragment(Boolean.valueOf(text).booleanValue());
+									}
+									else if (JSP12TLDNames.RTEXPRVALUE.equals(attrName)) {
+										attribute.setRtexprvalue(text);
+									}
+									else if (JSP20TLDNames.TYPE.equals(attrName)) {
+										attribute.setType(text);
+									}
+									else if (JSP12TLDNames.DESCRIPTION.equals(attrName)) {
+										attribute.setDescription(text);
+									}
+									else if (JSP12TLDNames.REQUIRED.equals(attrName)) {
+										attribute.setRequiredString(text);
+									}
+								}
+							}
+							if (attribute.getNodeName() != null) {
+								ed.fAttributes.setNamedItem(attribute.getNodeName(), attribute);
+							}
+						}
+						else if (JSP12TLDNames.VARIABLE.equals(directiveName)) {
+							TLDVariableImpl variable = new TLDVariableImpl();
+							String attrName = null;
+							for (int i = 2; i < documentRegion.getNumberOfRegions(); i++) {
+								ITextRegion region = regions.get(i);
+								String text = documentRegion.getText(region);
+								if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
+									attrName = text;
+								}
+								// process value
+								else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && attrName != null) {
+									text = StringUtils.strip(text);
+									if (JSP12TLDNames.VARIABLE_NAME_GIVEN.equals(attrName)) {
+										variable.setNameGiven(text);
+									}
+									else if (JSP12TLDNames.VARIABLE_NAME_FROM_ATTRIBUTE.equals(attrName)) {
+										variable.setNameFromAttribute(text);
+									}
+									else if (JSP20TLDNames.VARIABLE_ALIAS.equals(attrName)) {
+										variable.setAlias(text);
+									}
+									else if (JSP12TLDNames.VARIABLE_CLASS.equals(attrName)) {
+										variable.setVariableClass(text);
+									}
+									else if (JSP12TLDNames.VARIABLE_DECLARE.equals(attrName)) {
+										variable.setDeclareString(text);
+									}
+									else if (JSP11Namespace.ATTR_NAME_SCOPE.equals(attrName)) {
+										variable.setScope(text);
+									}
+									else if (JSP12TLDNames.DESCRIPTION.equals(attrName)) {
+										variable.setDescription(text);
+									}
+								}
+							}
+							if (variable.getAlias() != null || variable.getNameFromAttribute() != null || variable.getNameGiven() != null) {
+								ed.getVariables().add(variable);
+							}
+						}
+						else if ("include".equals(directiveName) && allowIncludes) {
+							String attrName = null;
+							for (int i = 2; i < documentRegion.getNumberOfRegions(); i++) {
+								ITextRegion region = regions.get(i);
+								String text = documentRegion.getText(region);
+								if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
+									attrName = text;
+								}
+								// process value
+								else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && attrName != null) {
+									text = StringUtils.strip(text);
+									if (JSP11Namespace.ATTR_NAME_FILE.equals(attrName)) {
+										IPath filePath = FacetModuleCoreSupport.resolve(new Path(((CMDocumentImpl) ed.getOwnerDocument()).getBaseLocation()), text);
+
+										IFile includedFile = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
+										if (includedFile.isAccessible()) {
+											loadTagFile(ed, includedFile, false);
+										}
+									}
+								}
+							}
+						}
+					}
+				}
+
+				documentRegion = documentRegion.getNext();
+			}
+
+		}
+		catch (IOException e) {
+			Logger.logException("problem parsing " + tagFile, e);
+		}
+		catch (CoreException e) {
+			Logger.logException("problem parsing " + tagFile, e);
+		}
+		ed.setLocationString(tagFile.getFullPath().toString());
+	}
+
 	/**
 	 * @param reference
 	 * @return
@@ -599,6 +993,7 @@
 				IResource file = ResourcesPlugin.getWorkspace().getRoot().getFile(record.getPath());
 				if (file.getLocation() != null) {
 					document = (CMDocumentImpl) buildCMDocumentFromFile(file.getLocation().toString());
+					document.setLocationString(record.getPath().toString());
 					if (_debug && document != null && document.getElements().getLength() == 0) {
 						System.out.println("failure parsing " + record.getPath()); //$NON-NLS-1$
 					}
@@ -617,12 +1012,13 @@
 			case (ITaglibRecord.JAR) : {
 				IJarRecord record = (IJarRecord) reference;
 				document = (CMDocumentImpl) buildCMDocumentFromJar(record.getLocation().toString());
+				document.setLocationString("jar:file:" + record.getLocation().toString() + "!/META-INF/taglib.tld");
 				if (document.getSmallIcon() != null) {
-					String iconPath = URIHelper.normalize(((TLDDocument) document).getSmallIcon(), record.getLocation().toString() + "!META-INF/", "/"); //$NON-NLS-1$ //$NON-NLS-2$
+					String iconPath = URIHelper.normalize(((TLDDocument) document).getSmallIcon(), record.getLocation().toString() + "!/META-INF/", "/"); //$NON-NLS-1$ //$NON-NLS-2$
 					document.setProperty(JSP12TLDNames.SMALL_ICON, "jar:file:" + iconPath); //$NON-NLS-1$
 				}
 				if (document.getLargeIcon() != null) {
-					String iconPath = URIHelper.normalize(((TLDDocument) document).getLargeIcon(), record.getLocation().toString() + "!META-INF/", "/"); //$NON-NLS-1$ //$NON-NLS-2$
+					String iconPath = URIHelper.normalize(((TLDDocument) document).getLargeIcon(), record.getLocation().toString() + "!/META-INF/", "/"); //$NON-NLS-1$ //$NON-NLS-2$
 					document.setProperty(JSP12TLDNames.LARGE_ICON, "jar:file:" + iconPath); //$NON-NLS-1$
 				}
 				if (document != null && document.getElements().getLength() == 0) {
@@ -631,9 +1027,8 @@
 			}
 				break;
 			case (ITaglibRecord.TAGDIR) : {
-				// TagDirRecord record = (TagDirRecord) reference;
-				// document =
-				// buildCMDocumentFromDirectory(record.getLocation().toFile());
+				ITagDirRecord record = (ITagDirRecord) reference;
+				document = buildCMDocumentFromFolder(record.getPath());
 			}
 				break;
 			case (ITaglibRecord.URL) : {
@@ -646,6 +1041,7 @@
 						connection.setUseCaches(false);
 						urlContents = connection.getInputStream();
 						document = (CMDocumentImpl) buildCMDocument(record.getBaseLocation(), urlContents);
+						document.setLocationString(record.getURL().toString());
 						if (document.getSmallIcon() != null) {
 							String iconPath = URIHelper.normalize(((TLDDocument) document).getSmallIcon(), record.getURL().toString(), "/"); //$NON-NLS-1$
 							document.setProperty(JSP12TLDNames.SMALL_ICON, iconPath);
@@ -673,4 +1069,4 @@
 		}
 		return document;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentImpl.java
index 9f47c7b..936684b 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMDocumentImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -88,6 +88,8 @@
 	// A unique public URI describing this taglib.  Recommended to be the URL
 	// to the descriptor
 	private String fURI = null;
+	
+	private String fLocationString;
 
 	protected TLDValidator validator;
 	
@@ -442,4 +444,12 @@
 		}
 		return buffer.toString();
 	}
-}
\ No newline at end of file
+
+	public String getLocationString() {
+		return fLocationString;
+	}
+
+	public void setLocationString(String url) {
+		fLocationString = url;
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMElementDeclarationImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMElementDeclarationImpl.java
index 9866be3..52d0136 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMElementDeclarationImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMElementDeclarationImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -34,57 +34,67 @@
 	// (empty|JSP|tagdependant|scriptless) - optional, defaults to JSP
 	private String bodycontent = JSP11TLDNames.CONTENT_JSP;
 
-	/** 
+	/**
 	 * since JSP 1.2
 	 * 
 	 * Usage information
 	 */
 	private String description;
-	
-	/** 
+
+	/**
 	 * since JSP 1.2
 	 */
 	private String displayName;
 
-	/** 
-	 * since JSP 2.0
-	 */
-	private String fExample;
-
 	private CMDocument fOwnerDocument;
-	
+
 	private String fPath = null;
 
 	private List fTagExtensions = new ArrayList(0);
-	/** 
+	/**
 	 * since JSP 1.2
 	 */
 	private String largeIcon;
-	
-	
+
+
 	private int maxOccur = -1;
 	private int minOccur = 0;
 
 	// required tag name
 	private String nodeName = null;
-	
-	/** 
+
+	/**
 	 * since JSP 1.2
 	 */
 	private String smallIcon;
-	
+
 	// tag handler class - required
 	private String tagclass = null;
-	
-	// tag extra info class (subclass of javax.servlet.jsp.TagExtraInfo) - optional
+
+	// tag extra info class (subclass of javax.servlet.jsp.TagExtraInfo) -
+	// optional
 	private String teiclass = null;
 
-	/** 
+	/**
 	 * since JSP 1.2
 	 */
 	private List variables;
 
 	/**
+	 * since JSP 2.0
+	 */
+	private String fExample;
+	private String fImport;
+	private String fScriptingLanguage;
+	private String fDynamicAttributes;
+	private String fIsELIgnored;
+	private String fPageEncoding;
+	private String fTagSource;
+
+	private String fLocationString;
+	private String smallIconURL;
+
+	/**
 	 * CMElementDeclarationImpl constructor comment.
 	 */
 	public CMElementDeclarationImpl(CMDocument owner) {
@@ -94,8 +104,9 @@
 
 	/**
 	 * getAttributes method
+	 * 
 	 * @return CMNamedNodeMap
-	 *
+	 * 
 	 * Returns CMNamedNodeMap of AttributeDeclaration
 	 */
 	public CMNamedNodeMap getAttributes() {
@@ -112,10 +123,11 @@
 
 	/**
 	 * getCMContent method
+	 * 
 	 * @return CMContent
-	 *
-	 * Returns the root node of this element's content model.
-	 * This can be an CMElementDeclaration or a CMGroup
+	 * 
+	 * Returns the root node of this element's content model. This can be an
+	 * CMElementDeclaration or a CMGroup
 	 */
 	public CMContent getContent() {
 		return null;
@@ -123,15 +135,15 @@
 
 	/**
 	 * getContentType method
+	 * 
 	 * @return int
-	 *
-	 * Returns one of :
-	 * ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA.
+	 * 
+	 * Returns one of : ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA.
 	 */
 	public int getContentType() {
-		if (bodycontent.equals(JSP11TLDNames.CONTENT_EMPTY))
+		if (getBodycontent().equals(JSP11TLDNames.CONTENT_EMPTY))
 			return EMPTY;
-		if (bodycontent.equals(JSP11TLDNames.CONTENT_TAGDEPENDENT))
+		if (getBodycontent().equals(JSP11TLDNames.CONTENT_TAGDEPENDENT))
 			return PCDATA;
 		else
 			// JSP
@@ -140,6 +152,7 @@
 
 	/**
 	 * getDataType method
+	 * 
 	 * @return java.lang.String
 	 */
 	public CMDataType getDataType() {
@@ -148,6 +161,7 @@
 
 	/**
 	 * Gets the description.
+	 * 
 	 * @return Returns a String
 	 */
 	public String getDescription() {
@@ -156,6 +170,7 @@
 
 	/**
 	 * Gets the displayName.
+	 * 
 	 * @return Returns a String
 	 */
 	public String getDisplayName() {
@@ -164,17 +179,20 @@
 
 	/**
 	 * getElementName method
+	 * 
 	 * @return java.lang.String
 	 */
 	public String getElementName() {
 		return getNodeName();
 	}
+
 	/**
 	 * @return Returns the example.
 	 */
 	public String getExample() {
 		return fExample;
 	}
+
 	/**
 	 * @return Returns the extensions.
 	 */
@@ -192,6 +210,7 @@
 
 	/**
 	 * Gets the largeIcon.
+	 * 
 	 * @return Returns a String
 	 */
 	public String getLargeIcon() {
@@ -200,8 +219,9 @@
 
 	/**
 	 * getLocalElements method
+	 * 
 	 * @return CMNamedNodeMap
-	 *
+	 * 
 	 * Returns a list of locally defined elements.
 	 */
 	public CMNamedNodeMap getLocalElements() {
@@ -210,8 +230,9 @@
 
 	/**
 	 * getMaxOccur method
+	 * 
 	 * @return int
-	 *
+	 * 
 	 * If -1, it's UNBOUNDED.
 	 */
 	public int getMaxOccur() {
@@ -220,10 +241,10 @@
 
 	/**
 	 * getMinOccur method
+	 * 
 	 * @return int
-	 *
-	 * If 0, it's OPTIONAL.
-	 * If 1, it's REQUIRED.
+	 * 
+	 * If 0, it's OPTIONAL. If 1, it's REQUIRED.
 	 */
 	public int getMinOccur() {
 		return minOccur;
@@ -231,6 +252,7 @@
 
 	/**
 	 * getNodeName method
+	 * 
 	 * @return java.lang.String
 	 */
 	public String getNodeName() {
@@ -239,10 +261,11 @@
 
 	/**
 	 * getNodeType method
+	 * 
 	 * @return int
-	 *
+	 * 
 	 * Returns one of :
-	 *
+	 * 
 	 */
 	public int getNodeType() {
 		return CMNode.ELEMENT_DECLARATION;
@@ -254,6 +277,7 @@
 	public CMDocument getOwnerDocument() {
 		return fOwnerDocument;
 	}
+
 	/**
 	 * @return Returns the path.
 	 */
@@ -263,26 +287,39 @@
 
 	/**
 	 * getProperty method
+	 * 
 	 * @return java.lang.Object
-	 *
+	 * 
 	 * Returns the object property described by the propertyName
-	 *
+	 * 
 	 */
 	public Object getProperty(String propertyName) {
-		if (propertyName != null && propertyName.equals("tagInfo")) { //$NON-NLS-1$
-			return getTagInfo();	// return tag info
-			// bug88336 no need to restore markers 
-			// return StringUtils.restoreMarkers(getTagInfo()); // return tag description
+		if ("tagInfo".equals(propertyName)) { //$NON-NLS-1$
+			return getTagInfo(); // return tag info
+			// bug88336 no need to restore markers
+			// return StringUtils.restoreMarkers(getTagInfo()); // return tag
+			// description
 		}
-		else if (propertyName != null && propertyName.equals("description")) {	//$NON-NLS-1$
+		// Bug 155800
+		else if ("name".equals(propertyName)) { //$NON-NLS-1$
+			return getNodeName();
+		}
+		else if ("description".equals(propertyName)) { //$NON-NLS-1$
 			return getDescription();
-			// bug88336 no need to restore markers 
-			// return StringUtils.restoreMarkers(getDescription()); // return tag description
+			// bug88336 no need to restore markers
+			// return StringUtils.restoreMarkers(getDescription()); // return
+			// tag description
 		}
-		else if (propertyName.equals(TLDDocument.CM_KIND)) {
+		else if (TLDDocument.CM_KIND.equals(propertyName)) {
 			return TLDDocument.JSP_TLD;
 		}
-		else if (propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON)) {
+		else if (TLDElementDeclaration.TAG_SOURCE.equals(propertyName)) {
+			return (fTagSource != null ? fTagSource :TLDElementDeclaration.SOURCE_JSP_TLD);
+		}
+		else if (JSP12TLDNames.SMALL_ICON.equals(propertyName) || JSP12TLDNames.LARGE_ICON.equals(propertyName)) {
+			if (smallIconURL != null) {
+				return smallIconURL;
+			}
 			return getOwnerDocument().getProperty(propertyName);
 		}
 		return null;
@@ -290,15 +327,21 @@
 
 	/**
 	 * Gets the smallIcon.
+	 * 
 	 * @return Returns a String
 	 */
 	public String getSmallIcon() {
 		return smallIcon;
 	}
-	
+
+	String getSmallIconURL() {
+		return smallIconURL;
+	}
+
 	/**
-	 * Returns the XPath of this element
-	 * (currently just returns the node name)
+	 * Returns the XPath of this element (currently just returns the node
+	 * name)
+	 * 
 	 * @return
 	 */
 	private String getSpec() {
@@ -312,18 +355,19 @@
 	public String getTagclass() {
 		return tagclass;
 	}
-	
+
 	/**
 	 * Get the taginfo for this current element
+	 * 
 	 * @return String taginfo if it exists, null otherwise
 	 */
 	private String getTagInfo() {
 		if (getOwnerDocument().supports("annotationMap")) { //$NON-NLS-1$
-			AnnotationMap map = (AnnotationMap)getOwnerDocument().getProperty("annotationMap"); //$NON-NLS-1$
+			AnnotationMap map = (AnnotationMap) getOwnerDocument().getProperty("annotationMap"); //$NON-NLS-1$
 			String spec = getSpec();
 			String result = map.getProperty(spec, "tagInfo"); //$NON-NLS-1$
 			return result;
-			// bug88336 no need to restore markers 
+			// bug88336 no need to restore markers
 			// return StringUtils.restoreMarkers(result); // return tag info
 		}
 		return null;
@@ -339,17 +383,20 @@
 
 	/**
 	 * Gets the variables.
+	 * 
 	 * @return Returns a List
 	 */
 	public List getVariables() {
-		if (variables == null)
+		if (variables == null) {
 			variables = new ArrayList();
+		}
 		return variables;
 	}
 
 	/**
 	 * 
-	 * @param newBodycontent java.lang.String
+	 * @param newBodycontent
+	 *            java.lang.String
 	 */
 	public void setBodycontent(String newBodycontent) {
 		bodycontent = newBodycontent;
@@ -357,7 +404,9 @@
 
 	/**
 	 * Sets the description.
-	 * @param description The description to set
+	 * 
+	 * @param description
+	 *            The description to set
 	 */
 	public void setDescription(String description) {
 		this.description = description;
@@ -365,13 +414,17 @@
 
 	/**
 	 * Sets the displayName.
-	 * @param displayName The displayName to set
+	 * 
+	 * @param displayName
+	 *            The displayName to set
 	 */
 	public void setDisplayName(String displayName) {
 		this.displayName = displayName;
 	}
+
 	/**
-	 * @param example The example to set.
+	 * @param example
+	 *            The example to set.
 	 */
 	public void setExample(String example) {
 		fExample = example;
@@ -379,7 +432,9 @@
 
 	/**
 	 * Sets the largeIcon.
-	 * @param largeIcon The largeIcon to set
+	 * 
+	 * @param largeIcon
+	 *            The largeIcon to set
 	 */
 	public void setLargeIcon(String largeIcon) {
 		this.largeIcon = largeIcon;
@@ -388,8 +443,10 @@
 	public void setNodeName(String string) {
 		nodeName = string;
 	}
+
 	/**
-	 * @param path The path to set.
+	 * @param path
+	 *            The path to set.
 	 */
 	public void setPath(String path) {
 		fPath = path;
@@ -397,15 +454,22 @@
 
 	/**
 	 * Sets the smallIcon.
-	 * @param smallIcon The smallIcon to set
+	 * 
+	 * @param smallIcon
+	 *            The smallIcon to set
 	 */
 	public void setSmallIcon(String smallIcon) {
 		this.smallIcon = smallIcon;
 	}
 
+	void setSmallIconURL(String url) {
+		smallIconURL = url;
+	}
+
 	/**
 	 * 
-	 * @param newTagclass java.lang.String
+	 * @param newTagclass
+	 *            java.lang.String
 	 */
 	public void setTagclass(String newTagclass) {
 		tagclass = newTagclass;
@@ -413,7 +477,17 @@
 
 	/**
 	 * 
-	 * @param newTeiclass java.lang.String
+	 * @param newTagclass
+	 *            java.lang.String
+	 */
+	public void setTagSource(String sourceKind) {
+		fTagSource = sourceKind;
+	}
+
+	/**
+	 * 
+	 * @param newTeiclass
+	 *            java.lang.String
 	 */
 	public void setTeiclass(String newTeiclass) {
 		teiclass = newTeiclass;
@@ -421,7 +495,9 @@
 
 	/**
 	 * Sets the variables.
-	 * @param variables The variables to set
+	 * 
+	 * @param variables
+	 *            The variables to set
 	 */
 	public void setVariables(List variables) {
 		this.variables = variables;
@@ -436,7 +512,7 @@
 	 * 
 	 */
 	public boolean supports(String propertyName) {
-		return propertyName == null || propertyName.equals("tagInfo") || propertyName.equals(JSP12TLDNames.DESCRIPTION) || propertyName.equals(TLDDocument.CM_KIND) || propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON);//$NON-NLS-1$ //$NON-NLS-2$
+		return propertyName == null || propertyName.equals("tagInfo") || propertyName.equals(JSP12TLDNames.DESCRIPTION) || propertyName.equals(TLDDocument.CM_KIND) || propertyName.equals(JSP12TLDNames.SMALL_ICON) || propertyName.equals(JSP12TLDNames.LARGE_ICON) || propertyName.equals(TLDElementDeclaration.TAG_SOURCE);//$NON-NLS-1$ //$NON-NLS-2$
 	}
 
 	public String toString() {
@@ -458,4 +534,54 @@
 		}
 		return buffer.toString();
 	}
-}
\ No newline at end of file
+
+	public String getImport() {
+		return fImport;
+	}
+
+	public String getScriptingLanguage() {
+		return fScriptingLanguage;
+	}
+
+	public String getDynamicAttributes() {
+		return fDynamicAttributes;
+	}
+
+	public void setImport(String import1) {
+		fImport = import1;
+	}
+
+	public void setScriptingLanguage(String scriptingLanguage) {
+		fScriptingLanguage = scriptingLanguage;
+	}
+
+	public void setDynamicAttributes(String dynamicAttributes) {
+		fDynamicAttributes = dynamicAttributes;
+	}
+
+	public String getIsELIgnored() {
+		return fIsELIgnored;
+	}
+
+	public String getPageEncoding() {
+		return fPageEncoding;
+	}
+
+	public void setIsELIgnored(String isELIgnored) {
+		fIsELIgnored = isELIgnored;
+	}
+
+	public void setPageEncoding(String pageEncoding) {
+		fPageEncoding = pageEncoding;
+	}
+
+	public String getLocationString() {
+		if (fLocationString == null)
+			return ((CMDocumentImpl) fOwnerDocument).getLocationString();
+		return fLocationString;
+	}
+
+	public void setLocationString(String url) {
+		fLocationString = url;
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNamedNodeMapImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNamedNodeMapImpl.java
index 38613f9..b8f378c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNamedNodeMapImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNamedNodeMapImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -82,4 +82,4 @@
 		if (name != null && aNode != null)
 			table.put(name, aNode);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNodeListImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNodeListImpl.java
index b066cf7..318c617 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNodeListImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/CMNodeListImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -60,4 +60,4 @@
 	public Iterator iterator() {
 		return list.iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
index 21161c3..b392a68 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDCMDocumentManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,16 +10,9 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.contentmodel.tld;
 
-
-
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.lang.ref.WeakReference;
+import java.lang.ref.Reference;
+import java.lang.ref.SoftReference;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Hashtable;
@@ -29,13 +22,12 @@
 import java.util.Stack;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
 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.Platform;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP11TLDNames;
@@ -43,23 +35,31 @@
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP20TLDNames;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
+import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache;
+import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache.PropertyGroup;
 import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
 import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
+import org.eclipse.jst.jsp.core.internal.util.FacetModuleCoreSupport;
+import org.eclipse.jst.jsp.core.internal.util.FileContentCache;
+import org.eclipse.jst.jsp.core.internal.util.ZeroStructuredDocumentRegion;
 import org.eclipse.jst.jsp.core.taglib.IJarRecord;
 import org.eclipse.jst.jsp.core.taglib.ITLDRecord;
+import org.eclipse.jst.jsp.core.taglib.ITagDirRecord;
+import org.eclipse.jst.jsp.core.taglib.ITaglibIndexDelta;
 import org.eclipse.jst.jsp.core.taglib.ITaglibIndexListener;
 import org.eclipse.jst.jsp.core.taglib.ITaglibRecord;
-import org.eclipse.jst.jsp.core.taglib.ITaglibRecordEvent;
 import org.eclipse.jst.jsp.core.taglib.IURLRecord;
 import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
 import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
 import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionHandler;
 import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionHandlerExtension;
+import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
 import org.eclipse.wst.sse.core.internal.util.Assert;
 import org.eclipse.wst.sse.core.internal.util.Debug;
@@ -71,14 +71,13 @@
 public class TLDCMDocumentManager implements ITaglibIndexListener {
 
 	protected class DirectiveStructuredDocumentRegionHandler implements StructuredDocumentRegionHandler, StructuredDocumentRegionHandlerExtension {
-
 		/**
 		 * Adds a block tagname (fully namespace qualified) into the list of
 		 * block tag names for the parser. The marker
 		 * IStructuredDocumentRegion along with position cues during reparses
 		 * allow the JSPSourceParser to enable/ignore the tags as blocks.
 		 */
-		protected void addBlockTag(String tagnameNS, IStructuredDocumentRegion marker) {
+		protected void addBlockTag(String tagnameNS, ITextRegionCollection marker) {
 			if (getParser() == null)
 				return;
 			if (getParser().getBlockMarker(tagnameNS) == null) {
@@ -108,6 +107,13 @@
 		 * @param anchorStructuredDocumentRegion
 		 */
 		protected void enableTaglibFromURI(String prefix, String uri, IStructuredDocumentRegion anchorStructuredDocumentRegion) {
+			enableTags(prefix, uri, anchorStructuredDocumentRegion);
+			if (_debug) {
+				System.out.println("TLDCMDocumentManager registered a tracker for " + uri + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
+			}
+		}
+
+		private void enableTags(String prefix, String uri, IStructuredDocumentRegion anchorStructuredDocumentRegion) {
 			if (prefix == null || uri == null || bannedPrefixes.contains(prefix))
 				return;
 			// Try to load the CMDocument for this URI
@@ -119,9 +125,6 @@
 				return;
 			}
 			registerTaglib(prefix, uri, anchorStructuredDocumentRegion, tld);
-			if (_debug) {
-				System.out.println("TLDCMDocumentManager registered a tracker for " + uri + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
-			}
 		}
 
 		/**
@@ -138,83 +141,53 @@
 		 * @param uri
 		 * @param taglibStructuredDocumentRegion
 		 */
-		protected void enableTagsInDir(String prefix, String tagdir, IStructuredDocumentRegion taglibStructuredDocumentRegion) {
-			if (prefix == null || tagdir == null || bannedPrefixes.contains(prefix))
-				return;
-			if (_debug) {
-				System.out.println("TLDCMDocumentManager enabling tags from directory" + tagdir + " for prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
-			}
-			// Try to load the CMDocument for this URI
-			CMDocument tld = getImplicitCMDocument(tagdir);
-			if (tld == null || !(tld instanceof TLDDocument)) {
-				if (_debug) {
-					System.out.println("TLDCMDocumentManager failed to create a CMDocument for director " + tagdir); //$NON-NLS-1$
-				}
-				return;
-			}
-			registerTaglib(prefix, tagdir, taglibStructuredDocumentRegion, tld);
+		protected void enableTagsInDir(String prefix, String tagdir, IStructuredDocumentRegion anchorStructuredDocumentRegion) {
+			enableTags(prefix, tagdir, anchorStructuredDocumentRegion);
 			if (_debug) {
 				System.out.println("TLDCMDocumentManager registered a tracker for directory" + tagdir + " with prefix " + prefix); //$NON-NLS-2$//$NON-NLS-1$
 			}
 		}
+		
+		protected void processRegionCollection(ITextRegionCollection regionCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
+			/*
+			 * Would test > 1, but since we only care if there are 8 (<%@,
+			 * taglib, uri, =, where, prefix, =, what) [or 4 for include
+			 * directives]
+			 */
+			if (regionCollection.getNumberOfRegions() > 4 && regionCollection.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
+				ITextRegion name = regionCollection.getRegions().get(1);
+				boolean taglibDetected = false;
+				boolean taglibDirectiveDetected = false;
+				boolean includeDetected = false;
+				boolean includeDirectiveDetected = false;
+				int startOffset = regionCollection.getStartOffset(name);
+				int textLength = name.getTextLength();
 
-		public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
-			// could test > 1, but since we only care if there are 8 (<%@,
-			// taglib, uri, =, where, prefix, =, what) [or 4 for includes]
-			if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1);
-				try {
-					if (getParser() == null) {
-						Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					else {
-						boolean taglibDetected = false;
-						boolean taglibDirectiveDetected = false;
-						boolean includeDetected = false;
-						boolean includeDirectiveDetected = false;
-						int startOffset = aCoreStructuredDocumentRegion.getStartOffset(name);
-						int textLength = name.getTextLength();
-
-						if (getParser() != null) {
-							taglibDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB);
-							taglibDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
-							includeDetected = getParser().regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE);
-							includeDirectiveDetected = getParser().regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
-						}
-						else {
-							// old fashioned way
-							String directiveName = getParser().getText(startOffset, textLength);
-							taglibDetected = directiveName.equals(JSP12TLDNames.TAGLIB);
-							taglibDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
-							includeDetected = directiveName.equals(JSP12TLDNames.INCLUDE);
-							includeDirectiveDetected = directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
-						}
-						if (taglibDetected || taglibDirectiveDetected) {
-							processTaglib(aCoreStructuredDocumentRegion);
-						}
-						else if (includeDetected || includeDirectiveDetected) {
-							processInclude(aCoreStructuredDocumentRegion);
-						}
-					}
+				taglibDetected = textSource.regionMatches(startOffset, textLength, JSP12TLDNames.TAGLIB);
+				if (!taglibDetected)
+					taglibDirectiveDetected = textSource.regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
+				if (!taglibDirectiveDetected)
+					includeDetected = textSource.regionMatches(startOffset, textLength, JSP12TLDNames.INCLUDE);
+				if (!includeDetected)
+					includeDirectiveDetected = textSource.regionMatches(startOffset, textLength, JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
+				if (taglibDetected || taglibDirectiveDetected) {
+					processTaglib(regionCollection, anchorStructuredDocumentRegion, textSource);
 				}
-				catch (StringIndexOutOfBoundsException sioobExc) {
-					// do nothing
+				else if (includeDetected || includeDirectiveDetected) {
+					processInclude(regionCollection, anchorStructuredDocumentRegion, textSource);
 				}
 			}
-			// could test > 1, but since we only care if there are 5 (<,
-			// jsp:root, xmlns:prefix, =, where)
-			else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
-				if (getParser() == null) {
-					Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-				else {
-					processJSPRoot(aCoreStructuredDocumentRegion);
-				}
-			}
+			else if (regionCollection.getNumberOfRegions() > 1 && DOMRegionContext.XML_TAG_OPEN.equals(regionCollection.getFirstRegion().getType())) {
+				processXMLStartTag(regionCollection, anchorStructuredDocumentRegion, textSource);
+			}			
 		}
 
-		protected void processInclude(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
-			processInclude(aCoreStructuredDocumentRegion, aCoreStructuredDocumentRegion, getParser());
+		public void nodeParsed(IStructuredDocumentRegion structuredDocumentRegion) {
+			if (!preludesHandled) {
+				handlePreludes();
+				preludesHandled = true;
+			}
+			processRegionCollection(structuredDocumentRegion, structuredDocumentRegion, getParser());
 		}
 
 		/**
@@ -223,15 +196,15 @@
 		 * anchorStructuredDocumentRegion. Includes use the including file as
 		 * the point of reference, not necessarily the "top" file.
 		 */
-		protected void processInclude(IStructuredDocumentRegion includeStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
-			ITextRegionList regions = includeStructuredDocumentRegion.getRegions();
+		protected void processInclude(ITextRegionCollection includeDirectiveCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
+			ITextRegionList regions = includeDirectiveCollection.getRegions();
 			String includedFile = null;
 			boolean isFilename = false;
 			try {
-				for (int i = 0; i < regions.size(); i++) {
+				for (int i = 2; includedFile == null && i < regions.size(); i++) {
 					ITextRegion region = regions.get(i);
 					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-						if (textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength()).equals(JSP12TLDNames.FILE)) {
+						if (textSource.regionMatches(includeDirectiveCollection.getStartOffset(region), region.getTextLength(), JSP12TLDNames.FILE)) {
 							isFilename = true;
 						}
 						else {
@@ -239,7 +212,7 @@
 						}
 					}
 					else if (isFilename && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						includedFile = textSource.getText(includeStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
+						includedFile = textSource.getText(includeDirectiveCollection.getStartOffset(region), region.getTextLength());
 						isFilename = false;
 					}
 				}
@@ -249,22 +222,26 @@
 				includedFile = null;
 			}
 
-			if (includedFile != null) {
+			if (fProcessIncludes && includedFile != null) {
 				// strip any extraneous quotes and white space
 				includedFile = StringUtils.strip(includedFile).trim();
 				IPath filePath = null;
-				if (includedFile.startsWith("/")) { //$NON-NLS-1$
-					IPath contextRoot = TaglibIndex.getContextRoot(TaglibController.getFileBuffer(TLDCMDocumentManager.this).getLocation());
-					filePath = contextRoot.append(includedFile);
-				}
-				else {
+				/*
+				 * The resolution of the included fragment should use the file
+				 * containing the directive as the base reference, not always
+				 * the main JSP being invoked. Verified behavior with Apache
+				 * Tomcat 5.5.20.
+				 */
+				IPath modelBaseLocation = TaglibController.getLocation(TLDCMDocumentManager.this);
+				if(modelBaseLocation != null) {
 					if (getIncludes().isEmpty())
-						filePath = TaglibController.getFileBuffer(TLDCMDocumentManager.this).getLocation().removeLastSegments(1).append(includedFile);
+						filePath = FacetModuleCoreSupport.resolve(modelBaseLocation, includedFile);
 					else
-						filePath = ((IPath) getIncludes().peek()).removeLastSegments(1).append(includedFile);
+						filePath = FacetModuleCoreSupport.resolve((IPath) getIncludes().peek(), includedFile);
 				}
+
 				// check for "loops"
-				if (filePath != null && !getIncludes().contains(filePath) && !filePath.equals(TaglibController.getFileBuffer(TLDCMDocumentManager.this).getLocation())) {
+				if (filePath != null && !getIncludes().contains(filePath) && !filePath.equals(modelBaseLocation)) {
 					/*
 					 * Prevent slow performance when editing scriptlet part of
 					 * the JSP by only processing includes if they've been
@@ -284,18 +261,20 @@
 					 */
 					if (hasAnyIncludeBeenModified(filePath)) {
 						getIncludes().push(filePath);
-						if (getParser() != null) {
-							IncludeHelper includeHelper = new IncludeHelper(anchorStructuredDocumentRegion, getParser());
-							includeHelper.parse(filePath);
-							List references = includeHelper.taglibReferences;
-							fTLDCMReferencesMap.put(filePath, references);
-							/*
-							 * TODO: walk up the include hierarchy and add
-							 * these references to each of the parents.
-							 */
+
+						IncludeHelper includeHelper = new IncludeHelper(anchorStructuredDocumentRegion, getParser());
+						includeHelper.parse(filePath);
+						List references = includeHelper.taglibReferences;
+						fTLDCMReferencesMap.put(filePath, references);
+						for (int i = 0; references != null && i < references.size(); i++) {
+							TLDCMDocumentReference reference = (TLDCMDocumentReference) references.get(i);
+							getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
 						}
-						else
-							Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
+						/*
+						 * TODO: walk up the include hierarchy and add
+						 * these references to each of the parents?
+						 */
+
 						getIncludes().pop();
 					}
 					else {
@@ -307,84 +286,82 @@
 							 * The uri might not be resolved properly if
 							 * relative to the JSP fragment.
 							 */
-							enableTaglibFromURI(reference.prefix, reference.uri, includeStructuredDocumentRegion);
-
+							enableTaglibFromURI(reference.prefix, reference.uri, anchorStructuredDocumentRegion);
+							getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
 						}
 					}
 				}
-				else {
+				else if (getIncludes().contains(filePath)) {
 					if (Debug.debugTokenizer)
 						System.out.println("LOOP IN @INCLUDES FOUND: " + filePath); //$NON-NLS-1$
 				}
 			}
 		}
 
-		// Pulls the URI and prefix from the given jsp:root
-		// IStructuredDocumentRegion and
-		// makes sure the tags are known.
-		protected void processJSPRoot(IStructuredDocumentRegion jspRootStructuredDocumentRegion) {
-			processJSPRoot(jspRootStructuredDocumentRegion, jspRootStructuredDocumentRegion, getParser());
-		}
-
-		protected void processJSPRoot(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
-			ITextRegionList regions = taglibStructuredDocumentRegion.getRegions();
+		protected void processXMLStartTag(ITextRegionCollection startTagRegionCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
+			ITextRegionList regions = startTagRegionCollection.getRegions();
 			String uri = null;
 			String prefix = null;
-			boolean taglib = false;
-			try {
-				for (int i = 0; i < regions.size(); i++) {
-					ITextRegion region = regions.get(i);
+			boolean isTaglibValue = false;
+			// skip the first two, they're the open bracket and name
+			for (int i = 2; i < regions.size(); i++) {
+				ITextRegion region = regions.get(i);
+				if (region instanceof ITextRegionCollection) {
+					// Handle nested directives
+					processRegionCollection((ITextRegionCollection) region, anchorStructuredDocumentRegion, textSource);
+				}
+				else {
+					// Handle xmlns:xxx=yyy
+					int regionStartOffset = startTagRegionCollection.getStartOffset(region);
+					int regionTextLength = region.getTextLength();
 					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-						String name = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
-						if (name.startsWith(XMLNS)) { //$NON-NLS-1$
-							prefix = name.substring(XMLNS_LENGTH);
+						if (regionTextLength > XMLNS_LENGTH && textSource.regionMatches(regionStartOffset, XMLNS_LENGTH, XMLNS)) {
+							prefix = textSource.getText(regionStartOffset + XMLNS_LENGTH, regionTextLength - XMLNS_LENGTH);
 							if (!bannedPrefixes.contains(prefix))
-								taglib = true;
+								isTaglibValue = true;
 						}
 						else {
 							prefix = null;
-							taglib = false;
+							isTaglibValue = false;
 						}
 					}
-					else if (taglib && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-						uri = textSource.getText(taglibStructuredDocumentRegion.getStartOffset(region), region.getTextLength());
-						if (uri != null && prefix != null && (StringUtils.strip(uri).length() > 0) && (StringUtils.strip(prefix).length() > 0)) {
-							if (anchorStructuredDocumentRegion == null)
-								enableTaglibFromURI(StringUtils.strip(prefix), StringUtils.strip(uri), taglibStructuredDocumentRegion);
-							else
-								enableTaglibFromURI(StringUtils.strip(prefix), StringUtils.strip(uri), anchorStructuredDocumentRegion);
-							uri = null;
-							prefix = null;
+					else if (isTaglibValue && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+						if (prefix != null && prefix.length() > 0) {
+							uri = textSource.getText(regionStartOffset, regionTextLength);
+							uri = StringUtils.strip(uri);
+							int uriLength = uri.length();
+							if (uri != null && uriLength > 0) {
+								if (uriLength > URN_TLD_LENGTH && uri.startsWith(URN_TLD)) {
+									uri = uri.substring(URN_TLD_LENGTH);
+								}
+								else if (uriLength > URN_TAGDIR_LENGTH && uri.startsWith(URN_TAGDIR)) {
+									uri = uri.substring(URN_TAGDIR_LENGTH);
+								}
+								enableTags(prefix, uri, anchorStructuredDocumentRegion);
+								uri = null;
+								prefix = null;
+							}
 						}
 					}
 				}
 			}
-			catch (StringIndexOutOfBoundsException sioobExc) {
-				// nothing to be done
-				uri = null;
-				prefix = null;
-			}
-		}
-
-		protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion) {
-			processTaglib(taglibStructuredDocumentRegion, taglibStructuredDocumentRegion, getParser());
 		}
 
 		/**
 		 * Pulls the URI and prefix from the given taglib directive
 		 * IStructuredDocumentRegion and makes sure the tags are known.
 		 */
-		protected void processTaglib(IStructuredDocumentRegion taglibStructuredDocumentRegion, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
-			ITextRegionList regions = taglibStructuredDocumentRegion.getRegions();
+		protected void processTaglib(ITextRegionCollection taglibDirectiveCollection, IStructuredDocumentRegion anchorStructuredDocumentRegion, JSPSourceParser textSource) {
+			ITextRegionList regions = taglibDirectiveCollection.getRegions();
 			String uri = null;
 			String prefix = null;
 			String tagdir = null;
 			String attrName = null;
 			try {
-				for (int i = 0; i < regions.size(); i++) {
+				for (int i = 2; i < regions.size(); i++) {
 					ITextRegion region = regions.get(i);
 					// remember attribute name
-					int startOffset = taglibStructuredDocumentRegion.getStartOffset(region);
+					int startOffset = taglibDirectiveCollection.getStartOffset(region);
 					int textLength = region.getTextLength();
 					if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
 						// String name = textSource.getText(startOffset,
@@ -405,11 +382,11 @@
 					// process value
 					else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
 						if (JSP11TLDNames.PREFIX.equals(attrName))
-							prefix = textSource.getText(startOffset, textLength);
+							prefix = StringUtils.strip(textSource.getText(startOffset, textLength));
 						else if (JSP11TLDNames.URI.equals(attrName))
-							uri = textSource.getText(startOffset, textLength);
+							uri = StringUtils.strip(textSource.getText(startOffset, textLength));
 						else if (JSP20TLDNames.TAGDIR.equals(attrName))
-							tagdir = textSource.getText(startOffset, textLength);
+							tagdir = StringUtils.strip(textSource.getText(startOffset, textLength));
 					}
 				}
 			}
@@ -418,17 +395,11 @@
 				uri = null;
 				prefix = null;
 			}
-			if (uri != null && prefix != null && (StringUtils.strip(uri).length() > 0) && (StringUtils.strip(prefix).length() > 0)) {
-				if (anchorStructuredDocumentRegion == null)
-					enableTaglibFromURI(StringUtils.strip(prefix), StringUtils.strip(uri), taglibStructuredDocumentRegion);
-				else
-					enableTaglibFromURI(StringUtils.strip(prefix), StringUtils.strip(uri), anchorStructuredDocumentRegion);
+			if (uri != null && prefix != null && uri.length() > 0 && prefix.length() > 0) {
+				enableTaglibFromURI(prefix, StringUtils.strip(uri), anchorStructuredDocumentRegion);
 			}
-			else if (tagdir != null && prefix != null && (StringUtils.strip(tagdir).length() > 0) && (StringUtils.strip(prefix).length() > 0)) {
-				if (anchorStructuredDocumentRegion == null)
-					enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), taglibStructuredDocumentRegion);
-				else
-					enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion);
+			else if (tagdir != null && prefix != null && tagdir.length() > 0 && prefix.length() > 0) {
+				enableTagsInDir(StringUtils.strip(prefix), StringUtils.strip(tagdir), anchorStructuredDocumentRegion);
 			}
 		}
 
@@ -520,149 +491,12 @@
 			taglibReferences.add(reference);
 		}
 
-		private String detectCharset(IFile file) {
-			if (file.getType() == IResource.FILE && file.isAccessible()) {
-				IContentDescription d = null;
-				try {
-					// optimized description lookup, might not succeed
-					d = file.getContentDescription();
-					if (d != null)
-						return d.getCharset();
-				}
-				catch (CoreException e) {
-					// should not be possible given the accessible and file
-					// type
-					// check above
-				}
-				InputStream contents = null;
-				try {
-					contents = file.getContents();
-					IContentDescription description = Platform.getContentTypeManager().getDescriptionFor(contents, file.getName(), new QualifiedName[]{IContentDescription.CHARSET});
-					if (description != null) {
-						return description.getCharset();
-					}
-				}
-				catch (IOException e) {
-					// will try to cleanup in finally
-				}
-				catch (CoreException e) {
-					Logger.logException(e);
-				}
-				finally {
-					if (contents != null) {
-						try {
-							contents.close();
-						}
-						catch (Exception e) {
-							// not sure how to recover at this point
-						}
-					}
-				}
-			}
-			return ResourcesPlugin.getEncoding();
-		}
-
 		protected String getContents(IPath filePath) {
-			StringBuffer s = new StringBuffer();
-			IFile iFile = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
-			if (iFile != null && iFile.exists()) {
-				String charset = detectCharset(iFile);
-				InputStream contents = null;
-				try {
-					contents = iFile.getContents();
-					Reader reader = new InputStreamReader(contents, charset);
-					char[] readBuffer = new char[2048];
-					int n = reader.read(readBuffer);
-					while (n > 0) {
-						s.append(readBuffer, 0, n);
-						n = reader.read(readBuffer);
-					}
-				}
-				catch (Exception e) {
-					if (Debug.debugStructuredDocument)
-						Logger.log(Logger.WARNING, "An exception occured while scanning " + filePath, e); //$NON-NLS-1$
-				}
-				finally {
-					try {
-						if (contents != null) {
-							contents.close();
-						}
-					}
-					catch (Exception e) {
-						// nothing to do
-					}
-				}
-			}
-			else {
-				int c = 0;
-				int length = 0;
-				int count = 0;
-				File file = null;
-				FileInputStream fis = null;
-				try {
-					file = new File(filePath.toString());
-					length = (int) file.length();
-					fis = new FileInputStream(file);
-					while (((c = fis.read()) >= 0) && (count < length)) {
-						count++;
-						s.append((char) c);
-					}
-				}
-				catch (FileNotFoundException e) {
-					if (Debug.debugStructuredDocument)
-						System.out.println("File not found : \"" + filePath + "\""); //$NON-NLS-2$//$NON-NLS-1$
-				}
-				catch (ArrayIndexOutOfBoundsException e) {
-					if (Debug.debugStructuredDocument)
-						System.out.println("Usage wrong: specify inputfile"); //$NON-NLS-1$
-					//$NON-NLS-1$
-				}
-				catch (IOException e) {
-					if (Debug.debugStructuredDocument)
-						System.out.println("An I/O error occured while scanning :"); //$NON-NLS-1$
-					//$NON-NLS-1$
-				}
-				catch (Exception e) {
-					if (Debug.debugStructuredDocument)
-						e.printStackTrace();
-				}
-				finally {
-					try {
-						if (fis != null) {
-							fis.close();
-						}
-					}
-					catch (Exception e) {
-						// nothing to do
-					}
-				}
-			}
-			return s.toString();
+			return FileContentCache.getInstance().getContents(filePath);
 		}
 
-		public void nodeParsed(IStructuredDocumentRegion aCoreStructuredDocumentRegion) {
-			// could test > 1, but since we only care if there are 8 (<%@,
-			// taglib, uri, =, where, prefix, =, what)
-			if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 1 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				ITextRegion name = aCoreStructuredDocumentRegion.getRegions().get(1);
-				try {
-					String directiveName = fLocalParser.getText(aCoreStructuredDocumentRegion.getStartOffset(name), name.getTextLength());
-					if (directiveName.equals(JSP12TLDNames.TAGLIB) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB)) {
-						processTaglib(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
-					}
-					if (directiveName.equals(JSP12TLDNames.INCLUDE) || directiveName.equals(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE)) {
-						processInclude(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
-					}
-				}
-				catch (StringIndexOutOfBoundsException sioobExc) {
-					// do nothing
-				}
-			}
-			// could test > 1, but since we only care if there are 5 (<,
-			// jsp:root, xmlns:prefix, =, where)
-			else if (aCoreStructuredDocumentRegion.getNumberOfRegions() > 4 && aCoreStructuredDocumentRegion.getRegions().get(1).getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
-				processJSPRoot(aCoreStructuredDocumentRegion, fAnchor, fLocalParser);
-			}
+		public void nodeParsed(IStructuredDocumentRegion structuredDocumentRegion) {
+			processRegionCollection(structuredDocumentRegion, fAnchor, fLocalParser);
 		}
 
 		/**
@@ -672,14 +506,19 @@
 		void parse(IPath path) {
 			JSPSourceParser p = new JSPSourceParser();
 			fLocalParser = p;
-			List blockTags = fParentParser.getBlockMarkers();
 			String s = getContents(path);
-			fLocalParser.addStructuredDocumentRegionHandler(this);
+			// Should we consider preludes on this segment?
+			fLocalParser.addStructuredDocumentRegionHandler(IncludeHelper.this);
 			fLocalParser.reset(s);
+			List blockTags = fParentParser.getBlockMarkers();
 			for (int i = 0; i < blockTags.size(); i++) {
 				BlockMarker marker = (BlockMarker) blockTags.get(i);
 				fLocalParser.addBlockMarker(new BlockMarker(marker.getTagName(), null, marker.getContext(), marker.isCaseSensitive()));
 			}
+			TagMarker[] knownPrefixes = (TagMarker[]) fParentParser.getNestablePrefixes().toArray(new TagMarker[0]);
+			for (int i = 0; i < knownPrefixes.length; i++) {
+				fLocalParser.addNestablePrefix(new TagMarker(knownPrefixes[i].getTagName(), null));
+			}
 			// force parse
 			fLocalParser.getDocumentRegions();
 			fLocalParser = null;
@@ -694,6 +533,7 @@
 	 */
 	static class TLDCacheEntry {
 		CMDocument document;
+		long modificationStamp;
 		int referenceCount;
 	}
 
@@ -718,9 +558,13 @@
 	protected static List bannedPrefixes = null;
 
 	private static Hashtable fCache = null;
-	static final String XMLNS = "xmlns:"; //$NON-NLS-1$ 
+	final String XMLNS = "xmlns:"; //$NON-NLS-1$ 
+	final String URN_TAGDIR = "urn:jsptagdir:";
+	final String URN_TLD = "urn:jsptld:";
 
-	static final int XMLNS_LENGTH = XMLNS.length();
+	final int XMLNS_LENGTH = XMLNS.length();
+	final int URN_TAGDIR_LENGTH = URN_TAGDIR.length();
+	final int URN_TLD_LENGTH = URN_TLD.length();
 
 	static {
 		bannedPrefixes = new ArrayList(7);
@@ -748,6 +592,8 @@
 
 
 	public static Object getUniqueIdentifier(ITaglibRecord reference) {
+		if (reference == null)
+			return null;
 		Object identifier = null;
 		switch (reference.getRecordType()) {
 			case (ITaglibRecord.TLD) : {
@@ -761,9 +607,8 @@
 			}
 				break;
 			case (ITaglibRecord.TAGDIR) : {
-				// TagDirRecord record = (TagDirRecord) reference;
-				// document =
-				// buildCMDocumentFromDirectory(record.getLocation().toFile());
+				ITagDirRecord record = (ITagDirRecord) reference;
+				identifier = record.getPath();
 			}
 				break;
 			case (ITaglibRecord.URL) : {
@@ -777,6 +622,7 @@
 		}
 		return identifier;
 	}
+
 	private CMDocumentFactoryTLD fCMDocumentBuilder = null;
 
 	private DirectiveStructuredDocumentRegionHandler fDirectiveHandler = null;
@@ -798,6 +644,8 @@
 	private List fTaglibTrackers = null;
 
 	Map fTLDCMReferencesMap = new HashMap();
+	boolean fProcessIncludes = true;
+	boolean preludesHandled = false;
 
 	public TLDCMDocumentManager() {
 		super();
@@ -815,7 +663,7 @@
 					TLDCacheEntry entry = (TLDCacheEntry) o;
 					entry.referenceCount--;
 					if (entry.referenceCount <= 0) {
-						getSharedDocumentCache().put(key, new WeakReference(entry.document));
+						getSharedDocumentCache().put(key, new SoftReference(entry));
 					}
 				}
 			}
@@ -823,10 +671,11 @@
 	}
 
 	/**
-	 * Derives an unique cache key for the give URI. The URI is "resolved"
-	 * and a unique value generated from the result. This ensures that two
-	 * different relative references from different files do not have overlapping
-	 * TLD records in the shared cache if they don't resolve to the same TLD.
+	 * Derives an unique cache key for the give URI. The URI is "resolved" and
+	 * a unique value generated from the result. This ensures that two
+	 * different relative references from different files do not have
+	 * overlapping TLD records in the shared cache if they don't resolve to
+	 * the same TLD.
 	 * 
 	 * @param uri
 	 * @return
@@ -847,23 +696,8 @@
 		if (uri == null || uri.length() == 0)
 			return null;
 		String reference = uri;
-		/**
-		 * JSP 1.2 Specification, section 5.2.2 jsp-1_2-fcs-spec.pdf, page 87
-		 */
-		String URNprefix = "urn:jsptld:"; //$NON-NLS-1$
-		if (reference.startsWith(URNprefix)) {
-			/**
-			 * @see section 7.3.2
-			 */
-			if (reference.length() > URNprefix.length())
-				reference = reference.substring(11);
-		}
-		else {
-			/**
-			 * @see section 7.3.6
-			 */
-		}
 		Object cacheKey = getCacheKey(reference);
+		long lastModified = getModificationStamp(reference);
 		CMDocument doc = (CMDocument) getDocuments().get(cacheKey);
 		if (doc == null) {
 			/*
@@ -879,16 +713,25 @@
 					if (_debugCache) {
 						System.out.println("TLDCMDocument cache hit on " + cacheKey);
 					}
-					doc = entry.document;
-					entry.referenceCount++;
+					if (entry != null && entry.modificationStamp != IResource.NULL_STAMP && entry.modificationStamp >= lastModified) {
+						doc = entry.document;
+						entry.referenceCount++;
+					}
+					else {
+						getSharedDocumentCache().remove(cacheKey);
+					}
 				}
-				else if (o instanceof WeakReference) {
-					doc = (CMDocument) ((WeakReference) o).get();
-					if (doc != null) {
-						TLDCacheEntry entry = new TLDCacheEntry();
-						entry.document = doc;
-						entry.referenceCount = 1;
-						getSharedDocumentCache().put(cacheKey, entry);
+				else if (o instanceof Reference) {
+					TLDCacheEntry entry = (TLDCacheEntry) ((Reference) o).get();
+					if (entry != null) {
+						if (entry.modificationStamp != IResource.NULL_STAMP && entry.modificationStamp >= lastModified) {
+							doc = entry.document;
+							entry.referenceCount = 1;
+							getSharedDocumentCache().put(cacheKey, entry);
+						}
+					}
+					else {
+						getSharedDocumentCache().remove(cacheKey);
 					}
 				}
 			}
@@ -902,6 +745,7 @@
 					TLDCacheEntry entry = new TLDCacheEntry();
 					doc = entry.document = descriptor.document;
 					entry.referenceCount = 1;
+					entry.modificationStamp = getModificationStamp(reference);
 					getSharedDocumentCache().put(cacheKey, entry);
 				}
 			}
@@ -912,6 +756,58 @@
 		return doc;
 	}
 
+	private long getModificationStamp(String reference) {
+		ITaglibRecord record = TaglibIndex.resolve(getCurrentParserPath().toString(), reference, false);
+		long modificationStamp = IResource.NULL_STAMP;
+		if (record != null) {
+			switch (record.getRecordType()) {
+				case (ITaglibRecord.TLD) : {
+					IFile tldfile = ResourcesPlugin.getWorkspace().getRoot().getFile(((ITLDRecord) record).getPath());
+					if (tldfile.isAccessible()) {
+						modificationStamp = tldfile.getModificationStamp();
+					}
+				}
+					break;
+				case (ITaglibRecord.JAR) : {
+					File jarfile = new File(((IJarRecord) record).getLocation().toOSString());
+					if (jarfile.exists()) {
+						try {
+							modificationStamp = jarfile.lastModified();
+						}
+						catch (SecurityException e) {
+							modificationStamp = IResource.NULL_STAMP;
+						}
+					}
+				}
+					break;
+				case (ITaglibRecord.TAGDIR) : {
+					IFolder tagFolder = ResourcesPlugin.getWorkspace().getRoot().getFolder(((ITagDirRecord) record).getPath());
+					if (tagFolder.isAccessible()) {
+						IResource[] members;
+						try {
+							members = tagFolder.members();
+							for (int i = 0; i < members.length; i++) {
+								modificationStamp = Math.max(modificationStamp, members[i].getModificationStamp());
+							}
+						}
+						catch (CoreException e) {
+							modificationStamp = IResource.NULL_STAMP;
+						}
+					}
+				}
+					break;
+				case (ITaglibRecord.URL) : {
+					modificationStamp = IResource.NULL_STAMP;
+				}
+					break;
+				default :
+					break;
+			}
+		}
+		return modificationStamp;
+	}
+
+
 	/**
 	 * Gets the cMDocumentBuilder.
 	 * 
@@ -929,7 +825,7 @@
 		Iterator alldocs = getTaglibTrackers().iterator();
 		while (alldocs.hasNext()) {
 			TaglibTracker aTracker = (TaglibTracker) alldocs.next();
-			if (aTracker.getStructuredDocumentRegion().getStartOffset() < offset || offset < 0) {
+			if (aTracker.getStructuredDocumentRegion().getStartOffset() <= offset || offset < 0) {
 				validDocs.add(aTracker);
 			}
 		}
@@ -941,7 +837,10 @@
 		Iterator alldocs = getTaglibTrackers().iterator();
 		while (alldocs.hasNext()) {
 			TaglibTracker aTracker = (TaglibTracker) alldocs.next();
-			if ((aTracker.getStructuredDocumentRegion().getStartOffset() < offset || offset < 0) && aTracker.getPrefix().equals(prefix)) {
+			/**
+			 * '<' is used to support the immediate use of a custom tag in jspx files
+			 */
+			if ((aTracker.getStructuredDocumentRegion().getStartOffset() <= offset || offset < 0) && aTracker.getPrefix().equals(prefix)) {
 				validDocs.add(aTracker);
 			}
 		}
@@ -979,7 +878,7 @@
 			path = (IPath) getIncludes().peek();
 		}
 		else {
-			path = TaglibController.getFileBuffer(this).getLocation();
+			path = TaglibController.getLocation(this);
 		}
 
 		return path;
@@ -1003,38 +902,6 @@
 	}
 
 	/**
-	 * Return the CMDocument at the tagdir (cached)
-	 */
-	protected CMDocument getImplicitCMDocument(String tagdir) {
-		if (tagdir == null || tagdir.length() == 0)
-			return null;
-		String reference = tagdir;
-		/**
-		 * JSP 1.2 Specification, section 5.2.2 jsp-1_2-fcs-spec.pdf, page 87
-		 */
-		String URNprefix = "urn:jsptld:"; //$NON-NLS-1$
-		if (reference.startsWith(URNprefix)) {
-			/**
-			 * @see section 7.3.2
-			 */
-			if (reference.length() > URNprefix.length())
-				reference = reference.substring(11);
-		}
-		else {
-			/**
-			 * @see section 7.3.6
-			 */
-		}
-		CMDocument doc = (CMDocument) getDocuments().get(reference);
-		if (doc == null) {
-			doc = loadTagDir(reference);
-			if (doc != null)
-				getDocuments().put(reference, doc);
-		}
-		return doc;
-	}
-
-	/**
 	 * Gets the includes.
 	 * 
 	 * @return Returns a Stack
@@ -1067,6 +934,39 @@
 		return fTaglibTrackers;
 	}
 
+	void handlePreludes() {
+		IStructuredDocumentRegion anchor = new ZeroStructuredDocumentRegion(null, -1);
+		fProcessIncludes = false;
+
+		IPath currentPath = getCurrentParserPath();
+		if (currentPath != null) {
+			PropertyGroup[] propertyGroups = DeploymentDescriptorPropertyCache.getInstance().getPropertyGroups(currentPath);
+			for(int k = 0; k < propertyGroups.length; k++) {
+				IPath[] preludes = propertyGroups[k].getIncludePrelude();
+				for (int i = 0; i < preludes.length; i++) {
+					if (!getIncludes().contains(preludes[i]) && !preludes[i].equals(currentPath)) {
+						getIncludes().push(preludes[i]);
+						if (getParser() != null) {
+							IncludeHelper includeHelper = new IncludeHelper(anchor, getParser());
+							includeHelper.parse(preludes[i]);
+							List references = includeHelper.taglibReferences;
+							fTLDCMReferencesMap.put(preludes[i], references);
+							for (int j = 0; j < references.size(); j++) {
+								TLDCMDocumentReference reference = (TLDCMDocumentReference) references.get(j);
+								getParser().addNestablePrefix(new TagMarker(reference.prefix + ":")); //$NON-NLS-1$
+							}
+						}
+						else
+							Logger.log(Logger.WARNING, "Warning: parser text was requested by " + getClass().getName() + " but none was available; taglib support disabled"); //$NON-NLS-1$ //$NON-NLS-2$
+						getIncludes().pop();
+					}
+				}
+			}
+		}
+
+		fProcessIncludes = true;
+	}
+
 	/**
 	 * @param filePath
 	 *            the path to check for modification
@@ -1123,28 +1023,16 @@
 		return result;
 	}
 
-	public void indexChanged(ITaglibRecordEvent event) {}
-
-	/**
-	 * Loads the tags from the specified URI. It must point to a URL of valid
-	 * tag files to work.
-	 */
-	protected CMDocument loadTagDir(String uri) {
-		ITaglibRecord reference = TaglibIndex.resolve(getCurrentParserPath().toString(), uri, false);
-		if (reference != null) {
-			CMDocument document = getCMDocumentBuilder().createCMDocument(reference);
-			if (document != null) {
-				return document;
+	public void indexChanged(ITaglibIndexDelta event) {
+		synchronized (getSharedDocumentCache()) {
+			Iterator values = getSharedDocumentCache().values().iterator();
+			while (values.hasNext()) {
+				Object o = values.next();
+				if (o instanceof Reference) {
+					values.remove();
+				}
 			}
 		}
-		// JSP2_TODO: implement for JSP 2.0
-		String location = URIResolverPlugin.createResolver().resolve(getCurrentBaseLocation().toString(), null, uri);
-		if (location == null)
-			return null;
-		if (_debug) {
-			System.out.println("Loading tags from dir" + uri + " at " + location); //$NON-NLS-2$//$NON-NLS-1$
-		}
-		return getCMDocumentBuilder().createCMDocument(location);
 	}
 
 	/**
@@ -1189,6 +1077,7 @@
 		if (_debug) {
 			System.out.println("TLDCMDocumentManager cleared its taglib trackers\n"); //$NON-NLS-1$
 		}
+		preludesHandled = false;
 		getTaglibTrackers().clear();
 	}
 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDFunctionImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDFunctionImpl.java
index 65c7de0..364711b 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDFunctionImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDFunctionImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -148,4 +148,4 @@
 	public void setSignature(String signature) {
 		fSignature = signature;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDInitParamImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDInitParamImpl.java
index 451b2a2..c1cdfe6 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDInitParamImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDInitParamImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -61,4 +61,4 @@
 		buffer.append("\n\t value:" + StringUtils.escape(getValue())); //$NON-NLS-1$
 		return buffer.toString();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDListenerImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDListenerImpl.java
index 011ae6f..24ef99c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDListenerImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDListenerImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -37,4 +37,4 @@
 		buffer.append("\n\t listener class:" + StringUtils.escape(getListenerClass())); //$NON-NLS-1$
 		return buffer.toString();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDValidatorImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDValidatorImpl.java
index 16b6f20..446f743 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDValidatorImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDValidatorImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -55,4 +55,4 @@
 		}
 		return buffer.toString();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDVariableImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDVariableImpl.java
index 7998305..ff7b75c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDVariableImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TLDVariableImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -18,7 +18,7 @@
 public class TLDVariableImpl implements TLDVariable {
 	// optional - defaults to true
 	private boolean declare = true;
-	
+
 	private String fDescription;
 	// required
 	private String nameFromAttribute;
@@ -29,6 +29,8 @@
 	// required - defaults to a String
 	private String variableClass = "java.lang.String"; //$NON-NLS-1$
 
+	private String fAlias;
+
 	public boolean getDeclare() {
 		return declare;
 	}
@@ -61,10 +63,14 @@
 	}
 
 	public void setDeclareString(String decl) {
-		setDeclare(decl.equals(JSP12TLDNames.TRUE) || decl.equals(JSP12TLDNames.YES));
+		if (decl != null) {
+			setDeclare(decl.equals(JSP12TLDNames.TRUE) || decl.equals(JSP12TLDNames.YES));
+		}
 	}
+
 	/**
-	 * @param description The description to set.
+	 * @param description
+	 *            The description to set.
 	 */
 	public void setDescription(String description) {
 		fDescription = description;
@@ -92,10 +98,19 @@
 		buffer.append("\n\t name given:" + StringUtils.escape(getNameGiven())); //$NON-NLS-1$
 		buffer.append("\n\t name from attribute:" + StringUtils.escape(getNameFromAttribute())); //$NON-NLS-1$
 		// Boolean.toString(boolean) is introduced in JDK 1.4
-		//buffer.append("\n\t declare:" + StringUtils.escape(Boolean.toString(getDeclare())));
+		// buffer.append("\n\t declare:" +
+		// StringUtils.escape(Boolean.toString(getDeclare())));
 		buffer.append("\n\t declare:" + StringUtils.toString(getDeclare())); //$NON-NLS-1$
 		buffer.append("\n\t scope:" + StringUtils.escape(getScope())); //$NON-NLS-1$
 		buffer.append("\n\t variable class:" + StringUtils.escape(getVariableClass())); //$NON-NLS-1$
 		return buffer.toString();
 	}
-}
\ No newline at end of file
+
+	public String getAlias() {
+		return fAlias;
+	}
+
+	public void setAlias(String alias) {
+		fAlias = alias;
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TaglibTracker.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TaglibTracker.java
index fcd90af..a8351aa 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TaglibTracker.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/TaglibTracker.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,4 +38,4 @@
 			return getPrefix() + "@" + getStructuredDocumentRegion().getStartOffset(); //$NON-NLS-1$
 		return super.toString();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP11TLDNames.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP11TLDNames.java
index 6a484dc..c24959a 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP11TLDNames.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP11TLDNames.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -46,4 +46,4 @@
 	String FALSE = "false"; //$NON-NLS-1$
 	String YES = "yes"; //$NON-NLS-1$
 	String NO = "no"; //$NON-NLS-1$
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP12TLDNames.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP12TLDNames.java
index 7072988..0ab3124 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP12TLDNames.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP12TLDNames.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -74,4 +74,4 @@
 	String VARIABLE_SCOPE_NESTED = "NESTED"; //$NON-NLS-1$
 	String VARIABLE_SCOPE_AT_BEGIN = "AT_BEGIN"; //$NON-NLS-1$
 	String VARIABLE_SCOPE_AT_END = "AT_END"; //$NON-NLS-1$
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP20TLDNames.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP20TLDNames.java
index ea51e19..b52ae61 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP20TLDNames.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/JSP20TLDNames.java
@@ -1,16 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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.contentmodel.tld.provisional;
 
-/*nlsXXX*/
+/* nlsXXX */
 public interface JSP20TLDNames extends JSP12TLDNames {
 	String CONTENT_SCRIPTLESS = "scriptless"; //$NON-NLS-1$
 	String EXAMPLE = "example"; //$NON-NLS-1$
@@ -25,7 +25,14 @@
 	String TAG_FILE = "tag-file"; //$NON-NLS-1$
 
 	String TAGDIR = "tagdir"; //$NON-NLS-1$
-	
+
 	String TAGLIB_EXTENSION = "taglib-extension"; //$NON-NLS-1$
 
+	String DYNAMIC_ATTRIBUTES = "dynamic-attributes"; //$NON-NLS-1$
+	String SCRIPTING_LANGUAGE = "language"; //$NON-NLS-1$
+	String IMPORT = "import"; //$NON-NLS-1$
+	String IS_EL_IGNORED = "isELIgnored"; //$NON-NLS-1$
+	String PAGE_ENCODING = "pageEncoding"; //$NON-NLS-1$
+	String TYPE = "type"; //$NON-NLS-1$
+	String VARIABLE_ALIAS = "alias"; //$NON-NLS-1$
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDAttributeDeclaration.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDAttributeDeclaration.java
index af38bf9..3f57eeb 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDAttributeDeclaration.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDAttributeDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -59,4 +59,4 @@
 	 * @see  JSP 1.1
 	 */
 	boolean isRequired();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDDocument.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDDocument.java
index 821a6bc..81351e5 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDDocument.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -102,4 +102,4 @@
 	 * @see  JSP 1.2
 	 */
 	TLDValidator getValidator();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDElementDeclaration.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDElementDeclaration.java
index dd1ac34..1057164 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDElementDeclaration.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDElementDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -16,6 +16,9 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 
 public interface TLDElementDeclaration extends CMElementDeclaration {
+	String TAG_SOURCE = "Tag Definition Source"; //$NON-NLS-1$
+	String SOURCE_JSP_TLD = "JSP Tag Library Descriptor"; //$NON-NLS-1$
+	String SOURCE_TAG_FILE = "JSP Tag 2.0 File"; //$NON-NLS-1$
 
 	/**
 	 * The body content type
@@ -111,4 +114,4 @@
 	 * @return List of TLDVariables
 	 */
 	List getVariables();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDFunction.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDFunction.java
index 8f2b50a..a43e963 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDFunction.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDFunction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,4 +33,4 @@
 	CMDocument getOwnerDocument();
 
 	String getSignature();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDInitParam.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDInitParam.java
index 0e33654..fed09aa 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDInitParam.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDInitParam.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,4 +27,4 @@
 	 * The param-value element contains the name of a parameter.
 	 */
 	String getValue();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDListener.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDListener.java
index 64915b9..8d6f0e5 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDListener.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,4 +17,4 @@
  */
 public interface TLDListener {
 	String getListenerClass();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDValidator.java
index d98a88c..09ee730 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDValidator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -24,4 +24,4 @@
 	List getInitParams();
 
 	String getValidatorClass();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDVariable.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDVariable.java
index 395cbab..611382c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDVariable.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contentmodel/tld/provisional/TLDVariable.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -12,7 +12,8 @@
 
 /**
  * Information on the scripting variables defined by this tag.
- * @see  JSP 1.2
+ * 
+ * @see JSP 1.2
  */
 public interface TLDVariable {
 
@@ -27,15 +28,18 @@
 	String getDescription();
 
 	/**
-	 * The name of an attribute whose (translation time) value will give the name of the variable, or null of the name is not to be obtained this way.
+	 * The name of an attribute whose (translation time) value will give the
+	 * name of the variable, or null of the name is not to be obtained this
+	 * way.
 	 */
 	String getNameFromAttribute();
 
 	/**
-	 * The variable name given as a constant, or null of the name is not specified.
+	 * The variable name given as a constant, or null of the name is not
+	 * specified.
 	 */
 	String getNameGiven();
-	
+
 	/**
 	 * The scope of the scripting variable defined.
 	 */
@@ -45,4 +49,9 @@
 	 * Name of the class of the variable, java.lang.String if null
 	 */
 	String getVariableClass();
+
+	/**
+	 * A locally scoped attribute to hold the value of this variable
+	 */
+	String getAlias();
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ByteReader.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ByteReader.java
index 681b089..c91119e 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ByteReader.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/ByteReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/DeploymentDescriptorPropertyCache.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/DeploymentDescriptorPropertyCache.java
new file mode 100644
index 0000000..7802c77
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/DeploymentDescriptorPropertyCache.java
@@ -0,0 +1,883 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.contenttype;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.StringReader;
+import java.lang.ref.Reference;
+import java.lang.ref.SoftReference;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.DocumentBuilder;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+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.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jst.jsp.core.internal.Logger;
+import org.eclipse.jst.jsp.core.internal.util.CommonXML;
+import org.eclipse.jst.jsp.core.internal.util.FacetModuleCoreSupport;
+import org.eclipse.jst.jsp.core.internal.util.FileContentCache;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.EntityReference;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+
+/**
+ * A cache fo property group information stored in web.xml files. Information
+ * is not persisted.
+ */
+public final class DeploymentDescriptorPropertyCache {
+	private static final PropertyGroup[] NO_PROPERTY_GROUPS = new PropertyGroup[0];
+
+	private static class DeploymentDescriptor {
+		PropertyGroup[] groups;
+		long modificationStamp;
+		Float version = new Float(defaultWebAppVersion);
+	}
+
+	/**
+	 * Representation of the JSP 2.0 property-group definitions from a servlet
+	 * deployment descriptor.
+	 */
+	public static final class PropertyGroup {
+		static PropertyGroup createFrom(IPath path, Node propertyGroupNode, int groupNumber) {
+			PropertyGroup group = new PropertyGroup(path, groupNumber);
+			Node propertyGroupID = propertyGroupNode.getAttributes().getNamedItem(ID);
+			if (propertyGroupID != null) {
+				group.setId(propertyGroupID.getNodeValue());
+			}
+			Node node = propertyGroupNode.getFirstChild();
+			while (node != null) {
+				if (node.getNodeType() == Node.ELEMENT_NODE) {
+					String name = node.getLocalName();
+					if (name == null) {
+						name = node.getNodeName();
+					}
+					if (IS_XML.equals(name)) {
+						group.setIsXML(getContainedText(node));
+					}
+					else if (EL_IGNORED.equals(name)) {
+						group.setElignored(getContainedText(node));
+					}
+					else if (INCLUDE_CODA.equals(name)) {
+						group.addCoda(getContainedText(node));
+					}
+					else if (INCLUDE_PRELUDE.equals(name)) {
+						group.addPrelude(getContainedText(node));
+					}
+					else if (SCRIPTING_INVALID.equals(name)) {
+						group.setScriptingInvalid(getContainedText(node));
+					}
+					else if (PAGE_ENCODING.equals(name)) {
+						group.setPageEncoding(getContainedText(node));
+					}
+					else if (URL_PATTERN.equals(name)) {
+						group.setUrlPattern(getContainedText(node));
+					}
+				}
+
+				node = node.getNextSibling();
+			}
+
+			return group;
+		}
+
+		private boolean el_ignored;
+
+		private String id;
+
+		private IPath[] include_coda = new IPath[0];
+
+		private IPath[] include_prelude = new IPath[0];
+		private boolean is_xml;
+		private StringMatcher matcher;
+		private String page_encoding;
+		private boolean scripting_invalid;
+		String url_pattern;
+		private IPath webxmlPath;
+
+		int number;
+
+		private PropertyGroup(IPath path, int number) {
+			super();
+			this.webxmlPath = path;
+			this.number = number;
+		}
+
+		private void addCoda(String containedText) {
+			if (containedText.length() > 0) {
+				IPath[] codas = new IPath[include_coda.length + 1];
+				System.arraycopy(include_coda, 0, codas, 0, include_coda.length);
+				codas[include_coda.length] = webxmlPath.removeLastSegments(2).append(containedText);
+				include_coda = codas;
+			}
+		}
+
+		private void addPrelude(String containedText) {
+			if (containedText.length() > 0) {
+				IPath[] preludes = new IPath[include_prelude.length + 1];
+				System.arraycopy(include_prelude, 0, preludes, 0, include_prelude.length);
+				preludes[include_prelude.length] = webxmlPath.removeLastSegments(2).append(containedText);
+				include_prelude = preludes;
+			}
+		}
+
+		public String getId() {
+			return id;
+		}
+
+		public IPath[] getIncludeCoda() {
+			return include_coda;
+		}
+
+		public IPath[] getIncludePrelude() {
+			return include_prelude;
+		}
+
+		public String getPageEncoding() {
+			return page_encoding;
+		}
+
+		public String getUrlPattern() {
+			return url_pattern;
+		}
+
+		public boolean isELignored() {
+			return el_ignored;
+		}
+
+		public boolean isIsXML() {
+			return is_xml;
+		}
+
+		public boolean isScriptingInvalid() {
+			return scripting_invalid;
+		}
+
+		boolean matches(String pattern, boolean optimistic) {
+			if (matcher == null)
+				return optimistic;
+			return matcher.match(pattern);
+		}
+
+		private void setElignored(String el_ignored) {
+			this.el_ignored = Boolean.valueOf(el_ignored).booleanValue();
+		}
+
+		private void setId(String id) {
+			this.id = id;
+		}
+
+		private void setIsXML(String is_xml) {
+			this.is_xml = Boolean.valueOf(is_xml).booleanValue();
+		}
+
+		private void setPageEncoding(String page_encoding) {
+			this.page_encoding = page_encoding;
+		}
+
+		private void setScriptingInvalid(String scripting_invalid) {
+			this.scripting_invalid = Boolean.valueOf(scripting_invalid).booleanValue();
+		}
+
+		private void setUrlPattern(String url_pattern) {
+			this.url_pattern = url_pattern;
+			if (url_pattern != null && url_pattern.length() > 0) {
+				this.matcher = new StringMatcher(url_pattern);
+			}
+		}
+
+		public String toString() {
+			return number + ":" + url_pattern;
+		}
+	}
+
+	private static class ResourceChangeListener implements IResourceChangeListener {
+		public void resourceChanged(IResourceChangeEvent event) {
+			IResourceDelta delta = event.getDelta();
+			if (event.getType() != IResourceChangeEvent.POST_CHANGE)
+				return;
+			if (delta.getKind() == IResourceDelta.CHANGED && (delta.getFlags() == IResourceDelta.ENCODING || delta.getFlags() == IResourceDelta.MARKERS))
+				return;
+
+			IResourceDeltaVisitor visitor = new IResourceDeltaVisitor() {
+				public boolean visit(IResourceDelta delta) {
+					IResource resource = delta.getResource();
+					if (resource.getType() == IResource.FILE) {
+						if (delta.getKind() == IResourceDelta.CHANGED && (delta.getFlags() == IResourceDelta.ENCODING || delta.getFlags() == IResourceDelta.MARKERS))
+							return false;
+						
+						IPath path = resource.getFullPath();
+						int segmentCount = path.segmentCount();
+						if (segmentCount > 1 && path.lastSegment().equals(WEB_XML) && path.segment(segmentCount - 2).equals(WEB_INF)) {
+							getInstance().deploymentDescriptorChanged(path);
+						}
+					}
+					else if (resource.getType() == IResource.PROJECT) {
+						String name = resource.getName();
+						if(_debugResolutionCache) {
+							System.out.println("Removing DeploymentDescriptorPropertyCache resolution cache for project " + name); //$NON-NLS-1$ 
+						}
+						getInstance().resolvedMap.remove(name);
+					}
+					return true;
+				}
+			};
+			try {
+				delta.accept(visitor);
+			}
+			catch (CoreException e) {
+				Logger.logException(e);
+			}
+		}
+	}
+
+	private static class ResourceErrorHandler implements ErrorHandler {
+		private boolean fDoLogExceptions = false;
+		private IPath fPath;
+
+		ResourceErrorHandler(boolean logExceptions) {
+			super();
+			fDoLogExceptions = logExceptions;
+		}
+
+		public void error(SAXParseException exception) throws SAXException {
+			if (fDoLogExceptions)
+				Logger.log(Logger.WARNING, "SAXParseException with " + fPath + " (error) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		}
+
+		public void fatalError(SAXParseException exception) throws SAXException {
+			if (fDoLogExceptions)
+				Logger.log(Logger.WARNING, "SAXParseException with " + fPath + " (fatalError) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		}
+
+		public void setPath(IPath path) {
+			fPath = path;
+		}
+
+		public void warning(SAXParseException exception) throws SAXException {
+			if (fDoLogExceptions)
+				Logger.log(Logger.WARNING, "SAXParseException with " + fPath + " (warning) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+		}
+	}
+
+	/**
+	 * Copied from org.eclipse.core.internal.propertytester.StringMatcher, but
+	 * should be replaced with a more accurate implementation of the rules in
+	 * Servlet spec SRV.11.2
+	 */
+	private static class StringMatcher {
+		private static final char SINGLE_WILD_CARD = '\u0000';
+
+		/**
+		 * Boundary value beyond which we don't need to search in the text
+		 */
+		private int bound = 0;
+
+		private boolean hasLeadingStar;
+
+		private boolean hasTrailingStar;
+
+		private final String pattern;
+
+		private final int patternLength;
+
+		/**
+		 * The pattern split into segments separated by *
+		 */
+		private String segments[];
+
+		/**
+		 * StringMatcher constructor takes in a String object that is a simple
+		 * pattern which may contain '*' for 0 and many characters and '?' for
+		 * exactly one character.
+		 * 
+		 * Literal '*' and '?' characters must be escaped in the pattern e.g.,
+		 * "\*" means literal "*", etc.
+		 * 
+		 * Escaping any other character (including the escape character
+		 * itself), just results in that character in the pattern. e.g., "\a"
+		 * means "a" and "\\" means "\"
+		 * 
+		 * If invoking the StringMatcher with string literals in Java, don't
+		 * forget escape characters are represented by "\\".
+		 * 
+		 * @param pattern
+		 *            the pattern to match text against
+		 */
+		StringMatcher(String pattern) {
+			if (pattern == null)
+				throw new IllegalArgumentException();
+			this.pattern = pattern;
+			patternLength = pattern.length();
+			parseWildCards();
+		}
+
+		/**
+		 * @param text
+		 *            a simple regular expression that may only contain '?'(s)
+		 * @param start
+		 *            the starting index in the text for search, inclusive
+		 * @param end
+		 *            the stopping point of search, exclusive
+		 * @param p
+		 *            a simple regular expression that may contain '?'
+		 * @return the starting index in the text of the pattern , or -1 if
+		 *         not found
+		 */
+		private int findPosition(String text, int start, int end, String p) {
+			boolean hasWildCard = p.indexOf(SINGLE_WILD_CARD) >= 0;
+			int plen = p.length();
+			for (int i = start, max = end - plen; i <= max; ++i) {
+				if (hasWildCard) {
+					if (regExpRegionMatches(text, i, p, 0, plen))
+						return i;
+				}
+				else {
+					if (text.regionMatches(true, i, p, 0, plen))
+						return i;
+				}
+			}
+			return -1;
+		}
+
+		/**
+		 * Given the starting (inclusive) and the ending (exclusive) positions
+		 * in the <code>text</code>, determine if the given substring
+		 * matches with aPattern
+		 * 
+		 * @return true if the specified portion of the text matches the
+		 *         pattern
+		 * @param text
+		 *            a String object that contains the substring to match
+		 */
+		public boolean match(String text) {
+			if (text == null)
+				return false;
+			final int end = text.length();
+			final int segmentCount = segments.length;
+			if (segmentCount == 0 && (hasLeadingStar || hasTrailingStar)) // pattern
+				// contains
+				// only
+				// '*'(s)
+				return true;
+			if (end == 0)
+				return patternLength == 0;
+			if (patternLength == 0)
+				return false;
+			int currentTextPosition = 0;
+			if ((end - bound) < 0)
+				return false;
+			int segmentIndex = 0;
+			String current = segments[segmentIndex];
+
+			/* process first segment */
+			if (!hasLeadingStar) {
+				int currentLength = current.length();
+				if (!regExpRegionMatches(text, 0, current, 0, currentLength))
+					return false;
+				segmentIndex++;
+				currentTextPosition = currentTextPosition + currentLength;
+			}
+			if ((segmentCount == 1) && (!hasLeadingStar) && (!hasTrailingStar)) {
+				// only one segment to match, no wild cards specified
+				return currentTextPosition == end;
+			}
+			/* process middle segments */
+			while (segmentIndex < segmentCount) {
+				current = segments[segmentIndex];
+				int currentMatch = findPosition(text, currentTextPosition, end, current);
+				if (currentMatch < 0)
+					return false;
+				currentTextPosition = currentMatch + current.length();
+				segmentIndex++;
+			}
+
+			/* process final segment */
+			if (!hasTrailingStar && currentTextPosition != end) {
+				int currentLength = current.length();
+				return regExpRegionMatches(text, end - currentLength, current, 0, currentLength);
+			}
+			return segmentIndex == segmentCount;
+		}
+
+		/**
+		 * Parses the pattern into segments separated by wildcard '*'
+		 * characters.
+		 */
+		private void parseWildCards() {
+			if (pattern.startsWith("*"))//$NON-NLS-1$
+				hasLeadingStar = true;
+			if (pattern.endsWith("*")) {//$NON-NLS-1$
+				/* make sure it's not an escaped wildcard */
+				if (patternLength > 1 && pattern.charAt(patternLength - 2) != '\\') {
+					hasTrailingStar = true;
+				}
+			}
+
+			ArrayList temp = new ArrayList();
+
+			int pos = 0;
+			StringBuffer buf = new StringBuffer();
+			while (pos < patternLength) {
+				char c = pattern.charAt(pos++);
+				switch (c) {
+					case '\\' :
+						if (pos >= patternLength) {
+							buf.append(c);
+						}
+						else {
+							char next = pattern.charAt(pos++);
+							/* if it's an escape sequence */
+							if (next == '*' || next == '?' || next == '\\') {
+								buf.append(next);
+							}
+							else {
+								/*
+								 * not an escape sequence, just insert
+								 * literally
+								 */
+								buf.append(c);
+								buf.append(next);
+							}
+						}
+						break;
+					case '*' :
+						if (buf.length() > 0) {
+							/* new segment */
+							temp.add(buf.toString());
+							bound += buf.length();
+							buf.setLength(0);
+						}
+						break;
+					case '?' :
+						/*
+						 * append special character representing single match
+						 * wildcard
+						 */
+						buf.append(SINGLE_WILD_CARD);
+						break;
+					default :
+						buf.append(c);
+				}
+			}
+
+			/* add last buffer to segment list */
+			if (buf.length() > 0) {
+				temp.add(buf.toString());
+				bound += buf.length();
+			}
+			segments = (String[]) temp.toArray(new String[temp.size()]);
+		}
+
+		/**
+		 * 
+		 * @return boolean
+		 * @param text
+		 *            a String to match
+		 * @param tStart
+		 *            the starting index of match, inclusive
+		 * @param p
+		 *            a simple regular expression that may contain '?'
+		 * @param pStart
+		 *            The start position in the pattern
+		 * @param plen
+		 *            The length of the pattern
+		 */
+		private boolean regExpRegionMatches(String text, int tStart, String p, int pStart, int plen) {
+			while (plen-- > 0) {
+				char tchar = text.charAt(tStart++);
+				char pchar = p.charAt(pStart++);
+
+				// process wild cards, skipping single wild cards
+				if (pchar == SINGLE_WILD_CARD)
+					continue;
+				if (pchar == tchar)
+					continue;
+				if (Character.toUpperCase(tchar) == Character.toUpperCase(pchar))
+					continue;
+				// comparing after converting to upper case doesn't handle all
+				// cases;
+				// also compare after converting to lower case
+				if (Character.toLowerCase(tchar) == Character.toLowerCase(pchar))
+					continue;
+				return false;
+			}
+			return true;
+		}
+	}
+
+	private static DeploymentDescriptorPropertyCache _instance = new DeploymentDescriptorPropertyCache();
+	private static final boolean _debugResolutionCache = false;
+
+	private static final float defaultWebAppVersion = 2.4f;
+	private static String EL_IGNORED = "el-ignored";
+	private static String ID = "id";
+	private static String INCLUDE_CODA = "include-coda";
+	private static String INCLUDE_PRELUDE = "include-prelude";
+
+	private static String IS_XML = "is-xml";
+	private static String JSP_PROPERTY_GROUP = "jsp-property-group";
+	private static String PAGE_ENCODING = "page-encoding";
+
+	private static String SCRIPTING_INVALID = "scripting-invalid";
+	private static String URL_PATTERN = "url-pattern";
+	private static final String WEB_APP_ELEMENT_LOCAL_NAME = ":web-app";
+	private static final String WEB_APP_ELEMENT_NAME = "web-app";
+
+	private static final String WEB_APP_VERSION_NAME = "version";
+	private static final String WEB_INF = "WEB-INF";
+	private static final String WEB_XML = "web.xml";
+	// private static final String WEB_INF_WEB_XML = WEB_INF + IPath.SEPARATOR
+	// + WEB_XML;
+	private static final String SLASH_WEB_INF_WEB_XML = Path.ROOT.toString() + WEB_INF + IPath.SEPARATOR + WEB_XML;
+
+	static String getContainedText(Node parent) {
+		NodeList children = parent.getChildNodes();
+		if (children.getLength() == 1) {
+			return children.item(0).getNodeValue().trim();
+		}
+		StringBuffer s = new StringBuffer();
+		Node child = parent.getFirstChild();
+		while (child != null) {
+			if (child.getNodeType() == Node.ENTITY_REFERENCE_NODE) {
+				String reference = ((EntityReference) child).getNodeValue();
+				if (reference == null && child.getNodeName() != null) {
+					reference = "&" + child.getNodeName() + ";"; //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				if (reference != null) {
+					s.append(reference.trim());
+				}
+			}
+			else {
+				s.append(child.getNodeValue().trim());
+			}
+			child = child.getNextSibling();
+		}
+		return s.toString().trim();
+	}
+
+	public static DeploymentDescriptorPropertyCache getInstance() {
+		return _instance;
+	}
+
+	/**
+	 * This method is not meant to be called by clients.
+	 */
+	public static void start() {
+		ResourcesPlugin.getWorkspace().addResourceChangeListener(getInstance().fResourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+	}
+
+	/**
+	 * This method is not meant to be called by clients.
+	 */
+	public static void stop() {
+		ResourcesPlugin.getWorkspace().removeResourceChangeListener(getInstance().fResourceChangeListener);
+	}
+
+	private ResourceErrorHandler errorHandler;
+
+	private Map fDeploymentDescriptors = new Hashtable();
+
+	private IResourceChangeListener fResourceChangeListener = new ResourceChangeListener();
+
+	// for use when reading TLDs
+	private EntityResolver resolver;
+	
+	Map resolvedMap = new HashMap();
+
+	private DeploymentDescriptorPropertyCache() {
+		super();
+	}
+
+	private void _parseDocument(IPath path, Float[] version, List groupList, SubProgressMonitor subMonitor, Document document) {
+		Element webapp = document.getDocumentElement();
+		if (webapp != null) {
+			if (webapp.getTagName().equals(WEB_APP_ELEMENT_NAME) || webapp.getNodeName().endsWith(WEB_APP_ELEMENT_LOCAL_NAME)) {
+				String versionValue = webapp.getAttribute(WEB_APP_VERSION_NAME);
+				if (versionValue != null) {
+					try {
+						version[0] = Float.valueOf(versionValue);
+					}
+					catch (NumberFormatException e) {
+						// doesn't matter
+					}
+				}
+			}
+		}
+		NodeList propertyGroupElements = document.getElementsByTagName(JSP_PROPERTY_GROUP);
+		int length = propertyGroupElements.getLength();
+		subMonitor.beginTask("Reading Property Groups", length);
+		for (int i = 0; i < length; i++) {
+			PropertyGroup group = PropertyGroup.createFrom(path, propertyGroupElements.item(i), i);
+			subMonitor.worked(1);
+			if (group != null) {
+				groupList.add(group);
+			}
+		}
+	}
+
+	/**
+	 * Convert the SRV spec version to the JSP spec version
+	 */
+	private float convertSpecVersions(float version) {
+		if (version > 0) {
+			if (version == 2.5f)
+				return 2.1f;
+			else if (version == 2.4f)
+				return 2.0f;
+			else if (version == 2.3f)
+				return 1.2f;
+			else if (version == 2.2f)
+				return 1.1f;
+			else if (version == 2.1f)
+				return 1.0f;
+		}
+		return convertSpecVersions(defaultWebAppVersion);
+	}
+
+	void deploymentDescriptorChanged(final IPath fullPath) {
+		if (fDeploymentDescriptors.containsKey(fullPath.makeAbsolute())) {
+			updateCacheEntry(fullPath);
+		}
+	}
+
+	/**
+	 * parse the specified resource using Xerces, and if that fails, use the
+	 * SSE XML parser to find the property groups.
+	 */
+	private DeploymentDescriptor fetchDescriptor(IPath path, IProgressMonitor monitor) {
+		monitor.beginTask("Reading Deployment Descriptor", 3);
+		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+
+		PropertyGroup groups[] = null;
+
+		IStructuredModel model = null;
+		List groupList = new ArrayList();
+		Float[] version = new Float[1];
+		SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 2);
+		DocumentBuilder builder = CommonXML.getDocumentBuilder(false);
+		builder.setEntityResolver(getEntityResolver());
+		builder.setErrorHandler(getErrorHandler(path));
+		try {			
+			InputSource inputSource = new InputSource();
+			String s = FileContentCache.getInstance().getContents(path);
+			inputSource.setCharacterStream(new StringReader(s));
+			inputSource.setSystemId(path.toString());
+			Document document = builder.parse(inputSource);
+			_parseDocument(path, version, groupList, subMonitor, document);
+		}
+		catch (SAXException e1) {
+			/* encountered a fatal parsing error, try our own parser */
+			try {
+				/**
+				 * Chiefly because the web.xml file itself is editable, use
+				 * SSE to get the DOM Document because it is more fault
+				 * tolerant.
+				 */
+				model = StructuredModelManager.getModelManager().getModelForRead(file);
+				monitor.worked(1);
+				if (model instanceof IDOMModel) {
+					IDOMDocument document = ((IDOMModel) model).getDocument();
+					_parseDocument(path, version, groupList, subMonitor, document);
+				}
+			}
+			catch (Exception e) {
+				Logger.logException(e);
+			}
+			finally {
+				if (model != null) {
+					model.releaseFromRead();
+				}
+			}
+		}
+		catch (IOException e1) {
+			/* file is unreadable, create no property groups */
+		}
+		finally {
+			groups = (PropertyGroup[]) groupList.toArray(new PropertyGroup[groupList.size()]);
+			subMonitor.done();
+		}
+
+		if (groups == null) {
+			groups = NO_PROPERTY_GROUPS;
+		}
+
+		DeploymentDescriptor deploymentDescriptor = new DeploymentDescriptor();
+		deploymentDescriptor.modificationStamp = file.getModificationStamp();
+		deploymentDescriptor.groups = groups;
+		deploymentDescriptor.version = version[0];
+		monitor.done();
+		fDeploymentDescriptors.put(path, new SoftReference(deploymentDescriptor));
+		return deploymentDescriptor;
+	}
+
+	private EntityResolver getEntityResolver() {
+		if (resolver == null) {
+			resolver = new EntityResolver() {
+				public InputSource resolveEntity(String publicID, String systemID) throws SAXException, IOException {
+					InputSource result = new InputSource(new ByteArrayInputStream(new byte[0]));
+					result.setPublicId(publicID);
+					result.setSystemId(systemID != null ? systemID : "/_" + getClass().getName()); //$NON-NLS-1$
+					return result;
+				}
+			};
+		}
+		return resolver;
+	}
+
+	/**
+	 * Returns an ErrorHandler that will not stop the parser on reported
+	 * errors
+	 */
+	private ErrorHandler getErrorHandler(IPath path) {
+		if (errorHandler == null) {
+			errorHandler = new ResourceErrorHandler(false);
+		}
+		errorHandler.setPath(path);
+		return errorHandler;
+	}
+
+	/**
+	 * @param fullPath
+	 * @return the JSP version supported by the web application containing the
+	 *         path. A value stated within a web.xml file takes priority.
+	 */
+	public float getJSPVersion(IPath fullPath) {
+		float version = defaultWebAppVersion;
+		/* try applicable web.xml file first */
+		IPath webxmlPath = getWebXMLPath(fullPath);
+		if (webxmlPath != null) {
+			IFile webxmlFile = ResourcesPlugin.getWorkspace().getRoot().getFile(webxmlPath);
+			if (webxmlFile.isAccessible()) {
+				Reference descriptorHolder = (Reference) fDeploymentDescriptors.get(webxmlPath);
+				DeploymentDescriptor descriptor = null;
+
+				if (descriptorHolder == null || ((descriptor = (DeploymentDescriptor) descriptorHolder.get()) == null) || (descriptor.modificationStamp == IResource.NULL_STAMP) || (descriptor.modificationStamp != webxmlFile.getModificationStamp())) {
+					descriptor = fetchDescriptor(webxmlPath, new NullProgressMonitor());
+				}
+
+				if (descriptor.version != null) {
+					version = descriptor.version.floatValue();
+					return convertSpecVersions(version);
+				}
+			}
+		}
+
+		/* check facet settings */
+		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(fullPath.segment(0));
+		version = FacetModuleCoreSupport.getDynamicWebProjectVersion(project);
+
+		return convertSpecVersions(version);
+	}
+
+	/**
+	 * @param jspFilePath
+	 * @return PropertyGroups matching the file at the given path or an empty
+	 *         array if no web.xml file exists or no matching property group
+	 *         was defined. A returned PropertyGroup object should be
+	 *         considered short-lived and not saved for later use.
+	 */
+	public PropertyGroup[] getPropertyGroups(IPath jspFilePath) {
+		List matchingGroups = new ArrayList(1);
+		IPath webxmlPath = getWebXMLPath(jspFilePath);
+		if (webxmlPath == null)
+			return NO_PROPERTY_GROUPS;
+
+		IFile webxmlFile = ResourcesPlugin.getWorkspace().getRoot().getFile(webxmlPath);
+		if (!webxmlFile.isAccessible())
+			return NO_PROPERTY_GROUPS;
+
+		Reference descriptorHolder = (Reference) fDeploymentDescriptors.get(webxmlPath);
+		DeploymentDescriptor descriptor = null;
+
+		if (descriptorHolder == null || ((descriptor = (DeploymentDescriptor) descriptorHolder.get()) == null) || (descriptor.modificationStamp == IResource.NULL_STAMP) || (descriptor.modificationStamp != webxmlFile.getModificationStamp())) {
+			descriptor = fetchDescriptor(webxmlPath, new NullProgressMonitor());
+		}
+
+		for (int i = 0; i < descriptor.groups.length; i++) {
+			if (descriptor.groups[i].matches(FacetModuleCoreSupport.getRuntimePath(jspFilePath).toString(), false)) {
+				matchingGroups.add(descriptor.groups[i]);
+			}
+		}
+		if (matchingGroups.isEmpty()) {
+			for (int i = 0; i < descriptor.groups.length; i++) {
+				if (descriptor.groups[i].matches(FacetModuleCoreSupport.getRuntimePath(jspFilePath).toString(), true)) {
+					matchingGroups.add(descriptor.groups[i]);
+				}
+			}
+		}
+		return (PropertyGroup[]) matchingGroups.toArray(new PropertyGroup[matchingGroups.size()]);
+	}
+
+	private IPath getWebXMLPath(IPath fullPath) {
+		/*
+		 * It can take the better part of a full second to do this, so cache
+		 * the result.
+		 */
+		IPath resolved = null;
+		Map mapForProject = null;
+		mapForProject = (Map) resolvedMap.get(fullPath.segment(0));
+		if (mapForProject != null) {
+			resolved = (IPath) mapForProject.get(fullPath);
+		}
+		else {
+			mapForProject = new HashMap();
+			resolvedMap.put(fullPath.segment(0), mapForProject);
+		}
+
+		if (resolved != null) {
+			if (_debugResolutionCache) {
+				System.out.println("DeploymentDescriptorPropertyCache resolution cache hit for " + fullPath); //$NON-NLS-1$ 
+			}
+		}
+		else {
+			if (_debugResolutionCache) {
+				System.out.println("DeploymentDescriptorPropertyCache resolution cache miss for " + fullPath); //$NON-NLS-1$ 
+			}
+			resolved = FacetModuleCoreSupport.resolve(fullPath, SLASH_WEB_INF_WEB_XML);
+			mapForProject.put(fullPath, resolved);
+		}
+		return resolved;
+	}
+
+	private void updateCacheEntry(IPath fullPath) {
+		/* don't update right now; remove and wait for another query to update */
+		fDeploymentDescriptors.remove(fullPath);
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/HeadParserToken.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/HeadParserToken.java
index 5a93e08..9a58ad2 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/HeadParserToken.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/HeadParserToken.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/IntStack.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/IntStack.java
index e04d0a2..99c7477 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/IntStack.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/IntStack.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizer.java
index a7f549b..176c532 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizer.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizer.java
@@ -1,5 +1,7 @@
+/* The following code was generated by JFlex 1.4.2 on 7/28/08 9:29 AM */
+
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,20 +14,17 @@
 package org.eclipse.jst.jsp.core.internal.contenttype;
 import java.io.IOException;
 import java.io.Reader;
+import java.util.Arrays;
 
 import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
 import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
 
 
-
-
-
-
 /**
  * This class is a scanner generated by 
- * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
- * on 4/17/07 12:35 AM from the specification file
- * <tt>D:/eclipse.wtp/workspace/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex</tt>
+ * <a href="http://www.jflex.de/">JFlex</a> 1.4.2
+ * on 7/28/08 9:29 AM from the specification file
+ * <tt>D:/workspaces/wtp301/workspace/org.eclipse.jst.jsp.core/DevTimeSupport/HeadParsers/JSPHeadTokenizer.jFlex</tt>
  */
 public class JSPHeadTokenizer {
 
@@ -58,16 +57,16 @@
    * Translates characters to character classes
    */
   private static final String ZZ_CMAP_PACKED = 
-    "\11\0\1\6\1\11\2\0\1\10\22\0\1\34\1\17\1\37\2\0"+
-    "\1\51\1\0\1\40\6\0\1\43\1\33\1\0\1\47\1\0\1\44"+
-    "\5\0\1\50\1\41\1\0\1\12\1\7\1\56\1\13\1\52\1\53"+
-    "\1\31\1\22\1\20\1\26\1\0\1\46\1\27\1\32\1\54\1\0"+
-    "\1\16\1\15\1\35\1\21\1\25\1\0\1\45\1\36\1\23\1\30"+
-    "\1\55\1\42\1\14\1\24\7\0\1\53\1\31\1\22\1\20\1\26"+
-    "\1\0\1\46\1\27\1\32\1\54\1\0\1\16\1\15\1\35\1\21"+
-    "\1\25\1\0\1\45\1\36\1\23\1\30\1\55\1\42\1\14\1\24"+
-    "\101\0\1\4\3\0\1\5\17\0\1\3\16\0\1\1\20\0\1\3"+
-    "\16\0\1\1\1\2\170\0\1\2\ufe87\0";
+    "\1\11\10\0\1\6\1\10\2\0\1\7\22\0\1\6\1\20\1\37"+
+    "\2\0\1\51\1\0\1\40\6\0\1\43\1\34\1\0\1\47\1\0"+
+    "\1\44\5\0\1\50\1\41\1\0\1\13\1\12\1\56\1\14\1\52"+
+    "\1\53\1\32\1\23\1\21\1\27\1\0\1\46\1\30\1\33\1\54"+
+    "\1\0\1\17\1\16\1\35\1\22\1\26\1\0\1\45\1\36\1\24"+
+    "\1\31\1\55\1\42\1\15\1\25\7\0\1\53\1\32\1\23\1\21"+
+    "\1\27\1\0\1\46\1\30\1\33\1\54\1\0\1\17\1\16\1\35"+
+    "\1\22\1\26\1\0\1\45\1\36\1\24\1\31\1\55\1\42\1\15"+
+    "\1\25\101\0\1\4\3\0\1\5\17\0\1\3\16\0\1\1\20\0"+
+    "\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
 
   /** 
    * Translates characters to character classes
@@ -80,15 +79,20 @@
   private static final int [] ZZ_ACTION = zzUnpackAction();
 
   private static final String ZZ_ACTION_PACKED_0 =
-    "\10\0\20\1\2\2\1\1\1\3\1\4\1\5\1\6"+
-    "\1\5\1\7\2\5\1\7\1\10\2\11\4\0\1\12"+
-    "\1\13\6\0\1\14\5\0\1\15\1\16\1\0\1\17"+
-    "\1\0\1\20\4\0\1\21\41\0\1\22\7\0\1\23"+
-    "\12\0\1\24\6\0\1\25\1\26\22\0\1\27\5\0"+
-    "\1\30\52\0\1\31\5\0\1\32\12\0\1\32";
+    "\10\0\24\1\2\2\1\1\1\2\1\3\1\4\1\5"+
+    "\1\6\1\1\1\5\1\7\1\5\1\1\1\10\1\1"+
+    "\1\11\6\0\1\12\1\13\15\0\1\14\20\0\1\15"+
+    "\1\0\1\16\1\0\1\2\1\3\1\4\1\6\3\0"+
+    "\1\17\1\7\1\0\1\10\1\11\10\0\1\20\5\0"+
+    "\1\14\12\0\1\15\1\16\1\2\1\17\67\0\1\21"+
+    "\20\0\1\22\4\0\1\21\17\0\1\22\6\0\1\23"+
+    "\15\0\1\24\1\0\1\23\2\0\1\25\14\0\1\24"+
+    "\2\0\1\25\34\0\1\26\14\0\1\26\2\0\1\27"+
+    "\13\0\1\27\132\0\1\30\1\0\1\30\6\0\2\30"+
+    "\11\0\1\31\1\0\1\31\2\0\2\31\11\0";
 
   private static int [] zzUnpackAction() {
-    int [] result = new int[214];
+    int [] result = new int[446];
     int offset = 0;
     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
     return result;
@@ -135,9 +139,6 @@
   /** the textposition at the last accepting state */
   private int zzMarkedPos;
 
-  /** the textposition at the last state to be included in yytext */
-  private int zzPushbackPos;
-
   /** the current text position in the buffer */
   private int zzCurrentPos;
 
@@ -193,13 +194,13 @@
 
                 /* this buffer contains the current text to be matched and is
                  the source of the yytext() string */
-                java.util.Arrays.fill(zzBuffer, (char)0);
+                Arrays.fill(zzBuffer, (char)0);
 
                 /* the textposition at the last accepting state */
                 zzMarkedPos = 0;
 
                 /* the textposition at the last state to be included in yytext */
-                zzPushbackPos = 0;
+                //zzPushbackPos = 0;
 
                 /* the current text position in the buffer */
                 zzCurrentPos = 0;
@@ -248,7 +249,7 @@
         }
 
 
-        public final HeadParserToken getNextToken() throws IOException {
+        public final HeadParserToken getNextToken() throws IOException, Exception {
                 String context = null;
                 context = primGetNextToken();
                 HeadParserToken result = null;
@@ -315,7 +316,7 @@
     char [] map = new char[0x10000];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 192) {
+    while (i < 194) {
       int  count = packed.charAt(i++);
       char value = packed.charAt(i++);
       do map[j++] = value; while (--count > 0);
@@ -343,7 +344,6 @@
       zzEndRead-= zzStartRead;
       zzCurrentPos-= zzStartRead;
       zzMarkedPos-= zzStartRead;
-      zzPushbackPos-= zzStartRead;
       zzStartRead = 0;
     }
 
@@ -359,13 +359,23 @@
     int numRead = zzReader.read(zzBuffer, zzEndRead,
                                             zzBuffer.length-zzEndRead);
 
-    if (numRead < 0) {
-      return true;
-    }
-    else {
+    if (numRead > 0) {
       zzEndRead+= numRead;
       return false;
     }
+    // unlikely but not impossible: read 0 characters, but not at end of stream    
+    if (numRead == 0) {
+      int c = zzReader.read();
+      if (c == -1) {
+        return true;
+      } else {
+        zzBuffer[zzEndRead++] = (char) c;
+        return false;
+      }     
+    }
+
+	// numRead < 0
+    return true;
   }
 
     
@@ -396,7 +406,7 @@
     zzAtBOL  = true;
     zzAtEOF  = false;
     zzEndRead = zzStartRead = 0;
-    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
+    zzCurrentPos = zzMarkedPos = 0;
     yychar = 0;
     zzLexicalState = YYINITIAL;
   }
@@ -466,7 +476,7 @@
    *
    * @param   errorCode  the code of the errormessage to display
    */
-  private void zzScanError(int errorCode) {
+  private void zzScanError(int errorCode) throws java.lang.Exception {
     String message;
     try {
       message = ZZ_ERROR_MSG[errorCode];
@@ -475,7 +485,7 @@
       message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
     }
 
-    throw new Error(message);
+    throw new java.lang.Exception(message);
   } 
 
 
@@ -487,7 +497,7 @@
    * @param number  the number of characters to be read again.
    *                This number must not be greater than yylength()!
    */
-  public void yypushback(int number)  {
+  public void yypushback(int number)  throws java.lang.Exception {
     if ( number > yylength() )
       zzScanError(ZZ_PUSHBACK_2BIG);
 
@@ -515,7 +525,7 @@
    * @return      the next token
    * @exception   java.io.IOException  if any I/O-Error occurs
    */
-  public String primGetNextToken() throws java.io.IOException {
+  public String primGetNextToken() throws java.io.IOException, java.lang.Exception {
     int zzInput;
     int zzAction;
 
@@ -607,1367 +617,3172 @@
           zzForNext: { switch (zzState) {
             case 0:
               switch (zzInput) {
-                case 10: zzIsFinal = true; zzState = 9; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 9; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 10; break zzForNext;
                 default: zzIsFinal = true; zzNoLookAhead = true; zzState = 8; break zzForNext;
               }
 
             case 1:
               switch (zzInput) {
-                case 1: zzIsFinal = true; zzState = 10; break zzForNext;
-                case 2: zzIsFinal = true; zzState = 11; break zzForNext;
-                case 3: zzIsFinal = true; zzState = 12; break zzForNext;
+                case 1: zzIsFinal = true; zzState = 11; break zzForNext;
+                case 2: zzIsFinal = true; zzState = 12; break zzForNext;
+                case 3: zzIsFinal = true; zzState = 13; break zzForNext;
                 case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; zzState = 13; break zzForNext;
-                case 10: zzIsFinal = true; zzState = 14; break zzForNext;
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 14; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 15; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 16; break zzForNext;
                 default: zzIsFinal = true; zzNoLookAhead = true; zzState = 8; break zzForNext;
               }
 
             case 2:
               switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; zzState = 15; break zzForNext;
-                case 11: zzIsFinal = true; zzState = 16; break zzForNext;
-                case 22: zzIsFinal = true; zzState = 17; break zzForNext;
-                case 45: zzIsFinal = true; zzState = 18; break zzForNext;
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 17; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 18; break zzForNext;
+                case 12: zzIsFinal = true; zzState = 19; break zzForNext;
+                case 23: zzIsFinal = true; zzState = 20; break zzForNext;
+                case 45: zzIsFinal = true; zzState = 21; break zzForNext;
                 default: zzIsFinal = true; zzNoLookAhead = true; zzState = 8; break zzForNext;
               }
 
             case 3:
               switch (zzInput) {
-                case 14: zzIsFinal = true; zzState = 19; break zzForNext;
-                case 18: zzIsFinal = true; zzState = 20; break zzForNext;
-                case 21: zzIsFinal = true; zzState = 21; break zzForNext;
-                case 27: zzIsFinal = true; zzState = 22; break zzForNext;
-                case 41: zzIsFinal = true; zzState = 23; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 22; break zzForNext;
+                case 15: zzIsFinal = true; zzState = 23; break zzForNext;
+                case 19: zzIsFinal = true; zzState = 24; break zzForNext;
+                case 22: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 28: zzIsFinal = true; zzState = 26; break zzForNext;
+                case 41: zzIsFinal = true; zzState = 27; break zzForNext;
                 default: zzIsFinal = true; zzNoLookAhead = true; zzState = 8; break zzForNext;
               }
 
             case 4:
               switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 28: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 26; break zzForNext;
-                case 31: zzIsFinal = true; zzNoLookAhead = true; zzState = 27; break zzForNext;
-                case 32: zzIsFinal = true; zzNoLookAhead = true; zzState = 28; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
+                case 7: zzIsFinal = true; zzState = 29; break zzForNext;
+                case 8: zzIsFinal = true; zzState = 30; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 31; break zzForNext;
+                case 31: zzIsFinal = true; zzState = 32; break zzForNext;
+                case 32: zzIsFinal = true; zzState = 33; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 28; break zzForNext;
               }
 
             case 5:
               switch (zzInput) {
+                case 7: 
                 case 8: 
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 30; break zzForNext;
-                case 11: zzIsFinal = true; zzState = 31; break zzForNext;
-                case 31: zzIsFinal = true; zzNoLookAhead = true; zzState = 32; break zzForNext;
-                case 32: zzIsFinal = true; zzState = 33; break zzForNext;
-                case 41: zzIsFinal = true; zzState = 34; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 29; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 35; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 36; break zzForNext;
+                case 12: zzIsFinal = true; zzState = 37; break zzForNext;
+                case 31: zzIsFinal = true; zzState = 38; break zzForNext;
+                case 41: zzIsFinal = true; zzState = 39; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 34; break zzForNext;
               }
 
             case 6:
               switch (zzInput) {
+                case 7: 
                 case 8: 
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 30; break zzForNext;
-                case 41: zzIsFinal = true; zzState = 34; break zzForNext;
-                case 32: zzIsFinal = true; zzState = 35; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 29; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 35; break zzForNext;
+                case 32: zzIsFinal = true; zzState = 38; break zzForNext;
+                case 41: zzIsFinal = true; zzState = 39; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 40; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 34; break zzForNext;
               }
 
             case 7:
               switch (zzInput) {
-                case 11: 
-                case 41: zzIsFinal = true; zzState = 34; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 35; break zzForNext;
+                case 12: 
+                case 41: zzIsFinal = true; zzState = 39; break zzForNext;
                 case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; zzNoLookAhead = true; zzState = 36; break zzForNext;
-                case 31: zzIsFinal = true; zzNoLookAhead = true; zzState = 37; break zzForNext;
-                case 32: zzIsFinal = true; zzState = 38; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 29; break zzForNext;
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 41; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 42; break zzForNext;
+                case 31: 
+                case 32: zzIsFinal = true; zzState = 43; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 34; break zzForNext;
               }
 
             case 9:
               switch (zzInput) {
-                case 15: zzState = 39; break zzForNext;
-                case 23: zzState = 40; break zzForNext;
-                case 41: zzState = 41; break zzForNext;
-                case 44: zzState = 42; break zzForNext;
+                case 11: zzState = 44; break zzForNext;
                 default: break zzForAction;
               }
 
             case 10:
               switch (zzInput) {
-                case 2: zzIsFinal = true; zzNoLookAhead = true; zzState = 43; break zzForNext;
+                case 9: zzState = 45; break zzForNext;
+                case 16: zzState = 46; break zzForNext;
+                case 24: zzState = 47; break zzForNext;
+                case 41: zzState = 48; break zzForNext;
+                case 44: zzState = 49; break zzForNext;
                 default: break zzForAction;
               }
 
             case 11:
               switch (zzInput) {
-                case 1: zzIsFinal = true; zzNoLookAhead = true; zzState = 44; break zzForNext;
+                case 2: zzIsFinal = true; zzNoLookAhead = true; zzState = 50; break zzForNext;
                 default: break zzForAction;
               }
 
             case 12:
               switch (zzInput) {
-                case 4: zzState = 45; break zzForNext;
+                case 1: zzIsFinal = true; zzNoLookAhead = true; zzState = 51; break zzForNext;
                 default: break zzForAction;
               }
 
             case 13:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzState = 46; break zzForNext;
-                case 10: zzState = 47; break zzForNext;
+                case 4: zzState = 52; break zzForNext;
                 default: break zzForAction;
               }
 
             case 14:
               switch (zzInput) {
-                case 15: zzState = 39; break zzForNext;
-                case 23: zzState = 40; break zzForNext;
-                case 41: zzState = 41; break zzForNext;
-                case 44: zzState = 42; break zzForNext;
-                case 11: zzState = 48; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 53; break zzForNext;
+                case 9: zzState = 54; break zzForNext;
+                case 11: zzState = 55; break zzForNext;
                 default: break zzForAction;
               }
 
             case 15:
               switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzState = 49; break zzForNext;
-                case 11: zzState = 50; break zzForNext;
+                case 7: 
+                case 8: zzState = 53; break zzForNext;
+                case 11: zzState = 56; break zzForNext;
                 default: break zzForAction;
               }
 
             case 16:
               switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 51; break zzForNext;
+                case 16: zzState = 46; break zzForNext;
+                case 24: zzState = 47; break zzForNext;
+                case 41: zzState = 48; break zzForNext;
+                case 44: zzState = 49; break zzForNext;
+                case 9: zzState = 57; break zzForNext;
+                case 12: zzState = 58; break zzForNext;
                 default: break zzForAction;
               }
 
             case 17:
               switch (zzInput) {
-                case 29: zzState = 52; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 59; break zzForNext;
+                case 9: zzState = 60; break zzForNext;
+                case 12: zzState = 61; break zzForNext;
                 default: break zzForAction;
               }
 
             case 18:
               switch (zzInput) {
-                case 22: zzState = 53; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 59; break zzForNext;
+                case 12: zzState = 61; break zzForNext;
+                case 23: zzState = 62; break zzForNext;
+                case 45: zzState = 63; break zzForNext;
                 default: break zzForAction;
               }
 
             case 19:
               switch (zzInput) {
-                case 43: zzState = 54; break zzForNext;
+                case 9: zzState = 64; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 65; break zzForNext;
                 default: break zzForAction;
               }
 
             case 20:
               switch (zzInput) {
-                case 17: zzState = 55; break zzForNext;
+                case 9: zzState = 66; break zzForNext;
+                case 29: zzState = 67; break zzForNext;
                 default: break zzForAction;
               }
 
             case 21:
               switch (zzInput) {
-                case 43: zzState = 56; break zzForNext;
+                case 9: zzState = 68; break zzForNext;
+                case 23: zzState = 69; break zzForNext;
                 default: break zzForAction;
               }
 
             case 22:
               switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 57; break zzForNext;
+                case 15: zzState = 70; break zzForNext;
+                case 19: zzState = 71; break zzForNext;
+                case 22: zzState = 72; break zzForNext;
+                case 28: zzState = 73; break zzForNext;
+                case 41: zzState = 74; break zzForNext;
                 default: break zzForAction;
               }
 
             case 23:
               switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 58; break zzForNext;
+                case 9: zzState = 75; break zzForNext;
+                case 43: zzState = 76; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 24:
+              switch (zzInput) {
+                case 9: zzState = 77; break zzForNext;
+                case 18: zzState = 78; break zzForNext;
                 default: break zzForAction;
               }
 
             case 25:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 28: zzIsFinal = true; break zzForNext;
-                case 9: zzState = 59; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
+                case 9: zzState = 79; break zzForNext;
+                case 43: zzState = 80; break zzForNext;
+                default: break zzForAction;
               }
 
             case 26:
               switch (zzInput) {
+                case 9: zzState = 81; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 82; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 27:
+              switch (zzInput) {
+                case 9: zzState = 83; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 84; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 29:
+              switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 28: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 9: zzState = 59; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
+                case 7: zzIsFinal = true; break zzForNext;
+                case 8: zzState = 85; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 86; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 28; break zzForNext;
+              }
+
+            case 30:
+              switch (zzInput) {
+                case 6: 
+                case 7: zzIsFinal = true; zzState = 29; break zzForNext;
+                case 8: zzState = 85; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 86; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 28; break zzForNext;
               }
 
             case 31:
               switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 60; break zzForNext;
+                case 31: zzIsFinal = true; zzState = 32; break zzForNext;
+                case 32: zzIsFinal = true; zzState = 33; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 85; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 32:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 87; break zzForNext;
                 default: break zzForAction;
               }
 
             case 33:
               switch (zzInput) {
-                case 10: zzState = 61; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 34:
-              switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 62; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 88; break zzForNext;
                 default: break zzForAction;
               }
 
             case 35:
               switch (zzInput) {
-                case 10: zzState = 61; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 89; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 36:
+              switch (zzInput) {
+                case 7: 
+                case 8: 
+                case 11: zzIsFinal = true; zzState = 35; break zzForNext;
+                case 31: zzIsFinal = true; zzState = 38; break zzForNext;
+                case 12: zzState = 90; break zzForNext;
+                case 41: zzState = 91; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 37:
+              switch (zzInput) {
+                case 9: zzState = 92; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 93; break zzForNext;
                 default: break zzForAction;
               }
 
             case 38:
               switch (zzInput) {
-                case 10: zzState = 61; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 94; break zzForNext;
                 default: break zzForAction;
               }
 
             case 39:
               switch (zzInput) {
-                case 16: zzState = 63; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 35; break zzForNext;
+                case 9: zzState = 95; break zzForNext;
                 default: break zzForAction;
               }
 
             case 40:
               switch (zzInput) {
-                case 19: zzState = 64; break zzForNext;
+                case 7: 
+                case 8: 
+                case 11: zzIsFinal = true; zzState = 35; break zzForNext;
+                case 32: zzIsFinal = true; zzState = 38; break zzForNext;
+                case 41: zzState = 91; break zzForNext;
                 default: break zzForAction;
               }
 
             case 41:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 42: zzState = 65; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 96; break zzForNext;
                 default: break zzForAction;
               }
 
             case 42:
               switch (zzInput) {
-                case 30: zzState = 66; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 35; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 41; break zzForNext;
+                case 31: 
+                case 32: zzIsFinal = true; zzState = 43; break zzForNext;
+                case 12: 
+                case 41: zzState = 91; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 43:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 97; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 44:
+              switch (zzInput) {
+                case 9: zzState = 45; break zzForNext;
+                case 16: zzState = 46; break zzForNext;
+                case 24: zzState = 47; break zzForNext;
+                case 41: zzState = 48; break zzForNext;
+                case 44: zzState = 49; break zzForNext;
                 default: break zzForAction;
               }
 
             case 45:
               switch (zzInput) {
-                case 5: zzIsFinal = true; zzNoLookAhead = true; zzState = 67; break zzForNext;
+                case 16: zzState = 46; break zzForNext;
+                case 24: zzState = 47; break zzForNext;
+                case 41: zzState = 48; break zzForNext;
+                case 44: zzState = 49; break zzForNext;
                 default: break zzForAction;
               }
 
             case 46:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 10: zzState = 47; break zzForNext;
+                case 9: zzState = 98; break zzForNext;
+                case 17: zzState = 99; break zzForNext;
                 default: break zzForAction;
               }
 
             case 47:
               switch (zzInput) {
-                case 11: zzState = 48; break zzForNext;
+                case 9: zzState = 100; break zzForNext;
+                case 20: zzState = 101; break zzForNext;
                 default: break zzForAction;
               }
 
             case 48:
               switch (zzInput) {
-                case 12: zzState = 68; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 102; break zzForNext;
+                case 42: zzState = 103; break zzForNext;
                 default: break zzForAction;
               }
 
             case 49:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 11: zzState = 50; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 50:
-              switch (zzInput) {
-                case 46: zzIsFinal = true; zzNoLookAhead = true; zzState = 51; break zzForNext;
+                case 9: zzState = 104; break zzForNext;
+                case 30: zzState = 105; break zzForNext;
                 default: break zzForAction;
               }
 
             case 52:
               switch (zzInput) {
-                case 18: zzState = 69; break zzForNext;
+                case 5: zzIsFinal = true; zzNoLookAhead = true; zzState = 106; break zzForNext;
                 default: break zzForAction;
               }
 
             case 53:
               switch (zzInput) {
-                case 37: zzState = 70; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 54; break zzForNext;
+                case 11: zzState = 55; break zzForNext;
                 default: break zzForAction;
               }
 
             case 54:
               switch (zzInput) {
-                case 29: zzState = 71; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 53; break zzForNext;
+                case 11: zzState = 55; break zzForNext;
+                case 9: zzState = 107; break zzForNext;
                 default: break zzForAction;
               }
 
             case 55:
               switch (zzInput) {
-                case 29: zzState = 72; break zzForNext;
+                case 12: zzState = 58; break zzForNext;
+                case 9: zzState = 108; break zzForNext;
                 default: break zzForAction;
               }
 
             case 56:
               switch (zzInput) {
-                case 38: zzState = 73; break zzForNext;
+                case 16: zzState = 46; break zzForNext;
+                case 24: zzState = 47; break zzForNext;
+                case 41: zzState = 48; break zzForNext;
+                case 44: zzState = 49; break zzForNext;
+                case 9: zzState = 57; break zzForNext;
+                case 12: zzState = 58; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 57:
+              switch (zzInput) {
+                case 16: zzState = 46; break zzForNext;
+                case 24: zzState = 47; break zzForNext;
+                case 41: zzState = 48; break zzForNext;
+                case 44: zzState = 49; break zzForNext;
+                case 12: zzState = 58; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 58:
+              switch (zzInput) {
+                case 9: zzState = 109; break zzForNext;
+                case 13: zzState = 110; break zzForNext;
                 default: break zzForAction;
               }
 
             case 59:
               switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 28: zzIsFinal = true; zzState = 25; break zzForNext;
-                case 9: break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 60; break zzForNext;
+                case 12: zzState = 61; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 60:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 59; break zzForNext;
+                case 12: zzState = 61; break zzForNext;
+                case 9: zzState = 111; break zzForNext;
+                default: break zzForAction;
               }
 
             case 61:
               switch (zzInput) {
-                case 32: zzIsFinal = true; zzNoLookAhead = true; zzState = 30; break zzForNext;
+                case 9: zzState = 64; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 65; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 62:
+              switch (zzInput) {
+                case 9: zzState = 66; break zzForNext;
+                case 29: zzState = 67; break zzForNext;
                 default: break zzForAction;
               }
 
             case 63:
               switch (zzInput) {
-                case 17: zzState = 74; break zzForNext;
+                case 9: zzState = 68; break zzForNext;
+                case 23: zzState = 69; break zzForNext;
                 default: break zzForAction;
               }
 
             case 64:
               switch (zzInput) {
-                case 13: zzState = 75; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 65; break zzForNext;
                 default: break zzForAction;
               }
 
             case 65:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 19: zzState = 76; break zzForNext;
-                case 21: zzState = 77; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 112; break zzForNext;
                 default: break zzForAction;
               }
 
             case 66:
               switch (zzInput) {
-                case 21: zzState = 78; break zzForNext;
+                case 29: zzState = 67; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 67:
+              switch (zzInput) {
+                case 9: zzState = 113; break zzForNext;
+                case 19: zzState = 114; break zzForNext;
                 default: break zzForAction;
               }
 
             case 68:
               switch (zzInput) {
-                case 13: zzState = 79; break zzForNext;
+                case 23: zzState = 69; break zzForNext;
                 default: break zzForAction;
               }
 
             case 69:
               switch (zzInput) {
-                case 17: zzState = 80; break zzForNext;
+                case 9: zzState = 115; break zzForNext;
+                case 37: zzState = 116; break zzForNext;
                 default: break zzForAction;
               }
 
             case 70:
               switch (zzInput) {
-                case 30: zzState = 81; break zzForNext;
+                case 9: zzState = 75; break zzForNext;
+                case 43: zzState = 76; break zzForNext;
                 default: break zzForAction;
               }
 
             case 71:
               switch (zzInput) {
-                case 38: zzState = 82; break zzForNext;
+                case 9: zzState = 77; break zzForNext;
+                case 18: zzState = 78; break zzForNext;
                 default: break zzForAction;
               }
 
             case 72:
               switch (zzInput) {
-                case 19: zzState = 83; break zzForNext;
+                case 9: zzState = 79; break zzForNext;
+                case 43: zzState = 80; break zzForNext;
                 default: break zzForAction;
               }
 
             case 73:
               switch (zzInput) {
-                case 22: zzState = 84; break zzForNext;
+                case 9: zzState = 81; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 82; break zzForNext;
                 default: break zzForAction;
               }
 
             case 74:
               switch (zzInput) {
-                case 18: zzState = 85; break zzForNext;
+                case 9: zzState = 83; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 84; break zzForNext;
                 default: break zzForAction;
               }
 
             case 75:
               switch (zzInput) {
-                case 14: zzState = 86; break zzForNext;
+                case 43: zzState = 76; break zzForNext;
                 default: break zzForAction;
               }
 
             case 76:
               switch (zzInput) {
-                case 43: zzState = 87; break zzForNext;
+                case 9: zzState = 117; break zzForNext;
+                case 29: zzState = 118; break zzForNext;
                 default: break zzForAction;
               }
 
             case 77:
               switch (zzInput) {
-                case 43: zzState = 88; break zzForNext;
+                case 18: zzState = 78; break zzForNext;
                 default: break zzForAction;
               }
 
             case 78:
               switch (zzInput) {
-                case 33: zzState = 89; break zzForNext;
+                case 9: zzState = 119; break zzForNext;
+                case 29: zzState = 120; break zzForNext;
                 default: break zzForAction;
               }
 
             case 79:
               switch (zzInput) {
-                case 14: zzState = 90; break zzForNext;
+                case 43: zzState = 80; break zzForNext;
                 default: break zzForAction;
               }
 
             case 80:
               switch (zzInput) {
-                case 16: zzState = 91; break zzForNext;
+                case 9: zzState = 121; break zzForNext;
+                case 38: zzState = 122; break zzForNext;
                 default: break zzForAction;
               }
 
             case 81:
               switch (zzInput) {
-                case 26: zzState = 92; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 82; break zzForNext;
                 default: break zzForAction;
               }
 
             case 82:
               switch (zzInput) {
-                case 24: zzState = 93; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 123; break zzForNext;
                 default: break zzForAction;
               }
 
             case 83:
               switch (zzInput) {
-                case 22: zzState = 94; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 84; break zzForNext;
                 default: break zzForAction;
               }
 
             case 84:
               switch (zzInput) {
-                case 22: zzState = 95; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 124; break zzForNext;
                 default: break zzForAction;
               }
 
             case 85:
               switch (zzInput) {
-                case 19: zzState = 96; break zzForNext;
-                default: break zzForAction;
+                case 6: 
+                case 7: zzIsFinal = true; zzState = 29; break zzForNext;
+                case 8: break zzForNext;
+                case 9: zzIsFinal = true; zzState = 86; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 28; break zzForNext;
               }
 
             case 86:
               switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 12: zzState = 97; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 87:
-              switch (zzInput) {
-                case 38: zzState = 98; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 88:
-              switch (zzInput) {
-                case 38: zzState = 99; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 89:
-              switch (zzInput) {
-                case 16: zzState = 100; break zzForNext;
-                default: break zzForAction;
+                case 7: zzIsFinal = true; zzState = 29; break zzForNext;
+                case 8: zzState = 85; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 125; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 28; break zzForNext;
               }
 
             case 90:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; zzState = 101; break zzForNext;
+                case 9: zzState = 92; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 93; break zzForNext;
                 default: break zzForAction;
               }
 
             case 91:
               switch (zzInput) {
-                case 26: zzState = 102; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 35; break zzForNext;
+                case 9: zzState = 95; break zzForNext;
                 default: break zzForAction;
               }
 
             case 92:
               switch (zzInput) {
-                case 17: zzState = 103; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 93; break zzForNext;
                 default: break zzForAction;
               }
 
             case 93:
               switch (zzInput) {
-                case 43: zzState = 104; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 94:
-              switch (zzInput) {
-                case 29: zzState = 105; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 126; break zzForNext;
                 default: break zzForAction;
               }
 
             case 95:
               switch (zzInput) {
-                case 29: zzState = 106; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 96:
-              switch (zzInput) {
-                case 20: zzState = 107; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 97:
-              switch (zzInput) {
-                case 13: zzState = 108; break zzForNext;
+                case 46: zzIsFinal = true; zzState = 35; break zzForNext;
                 default: break zzForAction;
               }
 
             case 98:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; zzState = 109; break zzForNext;
+                case 17: zzState = 99; break zzForNext;
                 default: break zzForAction;
               }
 
             case 99:
               switch (zzInput) {
-                case 22: zzState = 98; break zzForNext;
+                case 9: zzState = 127; break zzForNext;
+                case 18: zzState = 128; break zzForNext;
                 default: break zzForAction;
               }
 
             case 100:
               switch (zzInput) {
-                case 26: zzState = 110; break zzForNext;
+                case 20: zzState = 101; break zzForNext;
                 default: break zzForAction;
               }
 
             case 101:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
+                case 9: zzState = 129; break zzForNext;
+                case 14: zzState = 130; break zzForNext;
                 default: break zzForAction;
               }
 
             case 102:
               switch (zzInput) {
-                case 29: zzState = 111; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 48; break zzForNext;
+                case 42: zzState = 103; break zzForNext;
+                case 9: zzState = 131; break zzForNext;
                 default: break zzForAction;
               }
 
             case 103:
               switch (zzInput) {
-                case 29: zzState = 112; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 132; break zzForNext;
+                case 20: zzState = 133; break zzForNext;
+                case 22: zzState = 134; break zzForNext;
                 default: break zzForAction;
               }
 
             case 104:
               switch (zzInput) {
-                case 38: zzState = 113; break zzForNext;
+                case 30: zzState = 105; break zzForNext;
                 default: break zzForAction;
               }
 
             case 105:
               switch (zzInput) {
-                case 19: zzState = 114; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 106:
-              switch (zzInput) {
-                case 18: zzState = 115; break zzForNext;
+                case 9: zzState = 135; break zzForNext;
+                case 22: zzState = 136; break zzForNext;
                 default: break zzForAction;
               }
 
             case 107:
               switch (zzInput) {
-                case 21: zzState = 116; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 53; break zzForNext;
+                case 11: zzState = 55; break zzForNext;
                 default: break zzForAction;
               }
 
             case 108:
               switch (zzInput) {
-                case 14: zzState = 117; break zzForNext;
+                case 12: zzState = 58; break zzForNext;
                 default: break zzForAction;
               }
 
             case 109:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
+                case 13: zzState = 110; break zzForNext;
                 default: break zzForAction;
               }
 
             case 110:
               switch (zzInput) {
-                case 37: zzState = 118; break zzForNext;
+                case 9: zzState = 137; break zzForNext;
+                case 14: zzState = 138; break zzForNext;
                 default: break zzForAction;
               }
 
             case 111:
               switch (zzInput) {
-                case 38: zzState = 119; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 112:
-              switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 7: zzIsFinal = true; zzState = 120; break zzForNext;
+                case 7: 
+                case 8: zzState = 59; break zzForNext;
+                case 12: zzState = 61; break zzForNext;
                 default: break zzForAction;
               }
 
             case 113:
               switch (zzInput) {
-                case 22: zzState = 121; break zzForNext;
+                case 19: zzState = 114; break zzForNext;
                 default: break zzForAction;
               }
 
             case 114:
               switch (zzInput) {
-                case 19: zzState = 122; break zzForNext;
+                case 9: zzState = 139; break zzForNext;
+                case 18: zzState = 140; break zzForNext;
                 default: break zzForAction;
               }
 
             case 115:
               switch (zzInput) {
-                case 17: zzState = 123; break zzForNext;
+                case 37: zzState = 116; break zzForNext;
                 default: break zzForAction;
               }
 
             case 116:
               switch (zzInput) {
-                case 22: zzState = 124; break zzForNext;
+                case 9: zzState = 141; break zzForNext;
+                case 30: zzState = 142; break zzForNext;
                 default: break zzForAction;
               }
 
             case 117:
               switch (zzInput) {
-                case 29: zzState = 125; break zzForNext;
+                case 29: zzState = 118; break zzForNext;
                 default: break zzForAction;
               }
 
             case 118:
               switch (zzInput) {
-                case 22: zzState = 126; break zzForNext;
+                case 9: zzState = 143; break zzForNext;
+                case 38: zzState = 144; break zzForNext;
                 default: break zzForAction;
               }
 
             case 119:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 7: zzIsFinal = true; zzState = 127; break zzForNext;
+                case 29: zzState = 120; break zzForNext;
                 default: break zzForAction;
               }
 
             case 120:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
+                case 9: zzState = 145; break zzForNext;
+                case 20: zzState = 146; break zzForNext;
                 default: break zzForAction;
               }
 
             case 121:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 7: zzIsFinal = true; zzState = 128; break zzForNext;
+                case 38: zzState = 122; break zzForNext;
                 default: break zzForAction;
               }
 
             case 122:
               switch (zzInput) {
-                case 20: zzState = 129; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 123:
-              switch (zzInput) {
-                case 16: zzState = 130; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 124:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 23: zzState = 131; break zzForNext;
-                case 34: zzState = 132; break zzForNext;
+                case 9: zzState = 147; break zzForNext;
+                case 23: zzState = 148; break zzForNext;
                 default: break zzForAction;
               }
 
             case 125:
               switch (zzInput) {
-                case 30: zzState = 133; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 126:
-              switch (zzInput) {
-                case 18: zzState = 134; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 85; break zzForNext;
                 default: break zzForAction;
               }
 
             case 127:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
+                case 18: zzState = 128; break zzForNext;
                 default: break zzForAction;
               }
 
             case 128:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
+                case 9: zzState = 149; break zzForNext;
+                case 19: zzState = 150; break zzForNext;
                 default: break zzForAction;
               }
 
             case 129:
               switch (zzInput) {
-                case 21: zzState = 135; break zzForNext;
+                case 14: zzState = 130; break zzForNext;
                 default: break zzForAction;
               }
 
             case 130:
               switch (zzInput) {
-                case 26: zzState = 136; break zzForNext;
+                case 9: zzState = 151; break zzForNext;
+                case 15: zzState = 152; break zzForNext;
                 default: break zzForAction;
               }
 
             case 131:
               switch (zzInput) {
-                case 19: zzState = 137; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 48; break zzForNext;
+                case 42: zzState = 103; break zzForNext;
                 default: break zzForAction;
               }
 
             case 132:
               switch (zzInput) {
-                case 13: zzState = 138; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 103; break zzForNext;
+                case 20: zzState = 133; break zzForNext;
+                case 22: zzState = 134; break zzForNext;
+                case 9: zzState = 153; break zzForNext;
                 default: break zzForAction;
               }
 
             case 133:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 7: zzState = 139; break zzForNext;
+                case 9: zzState = 154; break zzForNext;
+                case 43: zzState = 155; break zzForNext;
                 default: break zzForAction;
               }
 
             case 134:
               switch (zzInput) {
-                case 19: zzState = 140; break zzForNext;
+                case 9: zzState = 156; break zzForNext;
+                case 43: zzState = 157; break zzForNext;
                 default: break zzForAction;
               }
 
             case 135:
               switch (zzInput) {
-                case 22: zzState = 141; break zzForNext;
+                case 22: zzState = 136; break zzForNext;
                 default: break zzForAction;
               }
 
             case 136:
               switch (zzInput) {
-                case 29: zzState = 142; break zzForNext;
+                case 9: zzState = 158; break zzForNext;
+                case 33: zzState = 159; break zzForNext;
                 default: break zzForAction;
               }
 
             case 137:
               switch (zzInput) {
-                case 13: zzState = 143; break zzForNext;
+                case 14: zzState = 138; break zzForNext;
                 default: break zzForAction;
               }
 
             case 138:
               switch (zzInput) {
-                case 14: zzState = 144; break zzForNext;
+                case 9: zzState = 160; break zzForNext;
+                case 15: zzState = 161; break zzForNext;
                 default: break zzForAction;
               }
 
             case 139:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 31: 
-                case 32: zzState = 145; break zzForNext;
+                case 18: zzState = 140; break zzForNext;
                 default: break zzForAction;
               }
 
             case 140:
               switch (zzInput) {
-                case 26: zzState = 146; break zzForNext;
+                case 9: zzState = 162; break zzForNext;
+                case 17: zzState = 163; break zzForNext;
                 default: break zzForAction;
               }
 
             case 141:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 7: zzIsFinal = true; zzState = 147; break zzForNext;
+                case 30: zzState = 142; break zzForNext;
                 default: break zzForAction;
               }
 
             case 142:
               switch (zzInput) {
-                case 38: zzState = 148; break zzForNext;
+                case 9: zzState = 164; break zzForNext;
+                case 27: zzState = 165; break zzForNext;
                 default: break zzForAction;
               }
 
             case 143:
               switch (zzInput) {
-                case 14: zzState = 149; break zzForNext;
+                case 38: zzState = 144; break zzForNext;
                 default: break zzForAction;
               }
 
             case 144:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 21: zzState = 150; break zzForNext;
+                case 9: zzState = 166; break zzForNext;
+                case 25: zzState = 167; break zzForNext;
                 default: break zzForAction;
               }
 
             case 145:
               switch (zzInput) {
-                case 23: zzState = 151; break zzForNext;
+                case 20: zzState = 146; break zzForNext;
                 default: break zzForAction;
               }
 
             case 146:
               switch (zzInput) {
-                case 45: zzState = 152; break zzForNext;
+                case 9: zzState = 168; break zzForNext;
+                case 23: zzState = 169; break zzForNext;
                 default: break zzForAction;
               }
 
             case 147:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
+                case 23: zzState = 148; break zzForNext;
                 default: break zzForAction;
               }
 
             case 148:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 7: zzIsFinal = true; zzState = 153; break zzForNext;
+                case 9: zzState = 170; break zzForNext;
+                case 23: zzState = 171; break zzForNext;
                 default: break zzForAction;
               }
 
             case 149:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: 
-                case 28: break zzForNext;
-                case 21: zzState = 154; break zzForNext;
+                case 19: zzState = 150; break zzForNext;
                 default: break zzForAction;
               }
 
             case 150:
               switch (zzInput) {
-                case 24: zzState = 155; break zzForNext;
+                case 9: zzState = 172; break zzForNext;
+                case 20: zzState = 173; break zzForNext;
                 default: break zzForAction;
               }
 
             case 151:
               switch (zzInput) {
-                case 19: zzState = 156; break zzForNext;
+                case 15: zzState = 152; break zzForNext;
                 default: break zzForAction;
               }
 
             case 152:
               switch (zzInput) {
-                case 22: zzState = 157; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 174; break zzForNext;
+                case 13: zzState = 175; break zzForNext;
                 default: break zzForAction;
               }
 
             case 153:
               switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: 
-                case 28: zzIsFinal = true; break zzForNext;
+                case 7: 
+                case 8: zzState = 103; break zzForNext;
+                case 20: zzState = 133; break zzForNext;
+                case 22: zzState = 134; break zzForNext;
                 default: break zzForAction;
               }
 
             case 154:
               switch (zzInput) {
-                case 24: zzState = 158; break zzForNext;
+                case 43: zzState = 155; break zzForNext;
                 default: break zzForAction;
               }
 
             case 155:
               switch (zzInput) {
-                case 25: zzState = 159; break zzForNext;
+                case 9: zzState = 176; break zzForNext;
+                case 38: zzState = 177; break zzForNext;
                 default: break zzForAction;
               }
 
             case 156:
               switch (zzInput) {
-                case 19: zzState = 160; break zzForNext;
+                case 43: zzState = 157; break zzForNext;
                 default: break zzForAction;
               }
 
             case 157:
               switch (zzInput) {
-                case 35: zzState = 161; break zzForNext;
+                case 9: zzState = 178; break zzForNext;
+                case 38: zzState = 179; break zzForNext;
                 default: break zzForAction;
               }
 
             case 158:
               switch (zzInput) {
-                case 25: zzState = 162; break zzForNext;
+                case 33: zzState = 159; break zzForNext;
                 default: break zzForAction;
               }
 
             case 159:
               switch (zzInput) {
-                case 14: zzState = 163; break zzForNext;
+                case 9: zzState = 180; break zzForNext;
+                case 17: zzState = 181; break zzForNext;
                 default: break zzForAction;
               }
 
             case 160:
               switch (zzInput) {
-                case 21: zzState = 164; break zzForNext;
+                case 15: zzState = 161; break zzForNext;
                 default: break zzForAction;
               }
 
             case 161:
               switch (zzInput) {
-                case 19: zzState = 76; break zzForNext;
-                case 21: zzState = 77; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 182; break zzForNext;
+                case 9: zzState = 183; break zzForNext;
                 default: break zzForAction;
               }
 
             case 162:
               switch (zzInput) {
-                case 14: zzState = 165; break zzForNext;
+                case 17: zzState = 163; break zzForNext;
                 default: break zzForAction;
               }
 
             case 163:
               switch (zzInput) {
-                case 26: zzState = 166; break zzForNext;
+                case 9: zzState = 184; break zzForNext;
+                case 27: zzState = 185; break zzForNext;
                 default: break zzForAction;
               }
 
             case 164:
               switch (zzInput) {
-                case 33: zzState = 167; break zzForNext;
+                case 27: zzState = 165; break zzForNext;
                 default: break zzForAction;
               }
 
             case 165:
               switch (zzInput) {
-                case 26: zzState = 168; break zzForNext;
+                case 9: zzState = 186; break zzForNext;
+                case 18: zzState = 187; break zzForNext;
                 default: break zzForAction;
               }
 
             case 166:
               switch (zzInput) {
-                case 18: zzState = 169; break zzForNext;
+                case 25: zzState = 167; break zzForNext;
                 default: break zzForAction;
               }
 
             case 167:
               switch (zzInput) {
-                case 27: zzState = 170; break zzForNext;
+                case 9: zzState = 188; break zzForNext;
+                case 43: zzState = 189; break zzForNext;
                 default: break zzForAction;
               }
 
             case 168:
               switch (zzInput) {
-                case 18: zzState = 171; break zzForNext;
+                case 23: zzState = 169; break zzForNext;
                 default: break zzForAction;
               }
 
             case 169:
               switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 9: break zzForAction;
-                default: break zzForNext;
+                case 9: zzState = 190; break zzForNext;
+                case 29: zzState = 191; break zzForNext;
+                default: break zzForAction;
               }
 
             case 170:
               switch (zzInput) {
-                case 27: zzState = 173; break zzForNext;
+                case 23: zzState = 171; break zzForNext;
                 default: break zzForAction;
               }
 
             case 171:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 9: break zzForAction;
-                default: break zzForNext;
+                case 9: zzState = 192; break zzForNext;
+                case 29: zzState = 193; break zzForNext;
+                default: break zzForAction;
               }
 
             case 172:
               switch (zzInput) {
-                case 27: zzState = 175; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 20: zzState = 173; break zzForNext;
+                default: break zzForAction;
               }
 
             case 173:
               switch (zzInput) {
-                case 34: zzState = 176; break zzForNext;
+                case 9: zzState = 194; break zzForNext;
+                case 21: zzState = 195; break zzForNext;
                 default: break zzForAction;
               }
 
             case 174:
               switch (zzInput) {
-                case 27: zzState = 177; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 152; break zzForNext;
+                case 13: zzState = 175; break zzForNext;
+                case 9: zzState = 196; break zzForNext;
+                default: break zzForAction;
               }
 
             case 175:
               switch (zzInput) {
-                case 27: break zzForNext;
-                case 16: zzState = 178; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 9: zzState = 197; break zzForNext;
+                case 14: zzState = 198; break zzForNext;
+                default: break zzForAction;
               }
 
             case 176:
               switch (zzInput) {
-                case 34: zzState = 179; break zzForNext;
+                case 38: zzState = 177; break zzForNext;
                 default: break zzForAction;
               }
 
             case 177:
               switch (zzInput) {
-                case 27: break zzForNext;
-                case 16: zzState = 180; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 199; break zzForNext;
+                case 9: zzState = 200; break zzForNext;
+                default: break zzForAction;
               }
 
             case 178:
               switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 19: zzState = 181; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 38: zzState = 179; break zzForNext;
+                default: break zzForAction;
               }
 
             case 179:
               switch (zzInput) {
-                case 34: zzState = 182; break zzForNext;
+                case 23: zzState = 177; break zzForNext;
+                case 9: zzState = 201; break zzForNext;
                 default: break zzForAction;
               }
 
             case 180:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 19: zzState = 183; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 17: zzState = 181; break zzForNext;
+                default: break zzForAction;
               }
 
             case 181:
               switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 16: zzState = 184; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 9: zzState = 202; break zzForNext;
+                case 27: zzState = 203; break zzForNext;
+                default: break zzForAction;
               }
 
             case 182:
               switch (zzInput) {
-                case 35: zzState = 185; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 204; break zzForNext;
                 default: break zzForAction;
               }
 
             case 183:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 16: zzState = 186; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 182; break zzForNext;
+                case 9: zzState = 205; break zzForNext;
+                default: break zzForAction;
               }
 
             case 184:
               switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 28: zzState = 187; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 27: zzState = 185; break zzForNext;
+                default: break zzForAction;
               }
 
             case 185:
               switch (zzInput) {
-                case 34: zzState = 188; break zzForNext;
+                case 9: zzState = 206; break zzForNext;
+                case 29: zzState = 207; break zzForNext;
                 default: break zzForAction;
               }
 
             case 186:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 28: zzState = 189; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 18: zzState = 187; break zzForNext;
+                default: break zzForAction;
               }
 
             case 187:
               switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 34: zzState = 190; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 9: zzState = 208; break zzForNext;
+                case 29: zzState = 209; break zzForNext;
+                default: break zzForAction;
               }
 
             case 188:
               switch (zzInput) {
-                case 36: zzState = 191; break zzForNext;
+                case 43: zzState = 189; break zzForNext;
                 default: break zzForAction;
               }
 
             case 189:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 12: zzState = 192; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 9: zzState = 210; break zzForNext;
+                case 38: zzState = 211; break zzForNext;
+                default: break zzForAction;
               }
 
             case 190:
               switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 13: zzState = 193; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 29: zzState = 191; break zzForNext;
+                default: break zzForAction;
               }
 
             case 191:
               switch (zzInput) {
-                case 35: zzState = 194; break zzForNext;
+                case 9: zzState = 212; break zzForNext;
+                case 20: zzState = 213; break zzForNext;
                 default: break zzForAction;
               }
 
             case 192:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 23: zzState = 195; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 29: zzState = 193; break zzForNext;
+                default: break zzForAction;
               }
 
             case 193:
               switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 14: zzIsFinal = true; zzState = 196; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 9: zzState = 214; break zzForNext;
+                case 19: zzState = 215; break zzForNext;
+                default: break zzForAction;
               }
 
             case 194:
               switch (zzInput) {
-                case 17: zzState = 197; break zzForNext;
+                case 21: zzState = 195; break zzForNext;
                 default: break zzForAction;
               }
 
             case 195:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 19: zzState = 198; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 9: zzState = 216; break zzForNext;
+                case 22: zzState = 217; break zzForNext;
+                default: break zzForAction;
               }
 
             case 196:
               switch (zzInput) {
-                case 27: zzState = 172; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 169; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 152; break zzForNext;
+                case 13: zzState = 175; break zzForNext;
+                default: break zzForAction;
               }
 
             case 197:
               switch (zzInput) {
-                case 37: zzState = 199; break zzForNext;
+                case 14: zzState = 198; break zzForNext;
                 default: break zzForAction;
               }
 
             case 198:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 13: zzState = 200; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 9: zzState = 218; break zzForNext;
+                case 15: zzState = 219; break zzForNext;
+                default: break zzForAction;
               }
 
             case 199:
               switch (zzInput) {
-                case 38: zzState = 201; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 220; break zzForNext;
                 default: break zzForAction;
               }
 
             case 200:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 14: zzIsFinal = true; zzState = 202; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 199; break zzForNext;
+                case 9: zzState = 221; break zzForNext;
+                default: break zzForAction;
               }
 
             case 201:
               switch (zzInput) {
-                case 27: zzState = 203; break zzForNext;
+                case 23: zzState = 177; break zzForNext;
                 default: break zzForAction;
               }
 
             case 202:
               switch (zzInput) {
-                case 27: zzState = 174; break zzForNext;
-                case 9: break zzForAction;
-                default: zzState = 171; break zzForNext;
+                case 27: zzState = 203; break zzForNext;
+                default: break zzForAction;
               }
 
             case 203:
               switch (zzInput) {
-                case 39: zzState = 204; break zzForNext;
+                case 9: zzState = 222; break zzForNext;
+                case 37: zzState = 223; break zzForNext;
                 default: break zzForAction;
               }
 
             case 204:
               switch (zzInput) {
-                case 40: zzState = 205; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 182; break zzForNext;
+                case 9: zzState = 205; break zzForNext;
                 default: break zzForAction;
               }
 
             case 205:
               switch (zzInput) {
-                case 40: zzState = 206; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 182; break zzForNext;
                 default: break zzForAction;
               }
 
             case 206:
               switch (zzInput) {
-                case 40: zzState = 207; break zzForNext;
+                case 29: zzState = 207; break zzForNext;
                 default: break zzForAction;
               }
 
             case 207:
               switch (zzInput) {
-                case 27: zzState = 208; break zzForNext;
+                case 9: zzState = 224; break zzForNext;
+                case 38: zzState = 225; break zzForNext;
                 default: break zzForAction;
               }
 
             case 208:
               switch (zzInput) {
-                case 12: zzState = 209; break zzForNext;
+                case 29: zzState = 209; break zzForNext;
                 default: break zzForAction;
               }
 
             case 209:
               switch (zzInput) {
-                case 23: zzState = 210; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 226; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 227; break zzForNext;
                 default: break zzForAction;
               }
 
             case 210:
               switch (zzInput) {
-                case 19: zzState = 211; break zzForNext;
+                case 38: zzState = 211; break zzForNext;
                 default: break zzForAction;
               }
 
             case 211:
               switch (zzInput) {
-                case 13: zzState = 212; break zzForNext;
+                case 9: zzState = 228; break zzForNext;
+                case 23: zzState = 229; break zzForNext;
                 default: break zzForAction;
               }
 
             case 212:
               switch (zzInput) {
-                case 14: zzIsFinal = true; zzNoLookAhead = true; zzState = 213; break zzForNext;
+                case 20: zzState = 213; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 213:
+              switch (zzInput) {
+                case 9: zzState = 230; break zzForNext;
+                case 20: zzState = 231; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 214:
+              switch (zzInput) {
+                case 19: zzState = 215; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 215:
+              switch (zzInput) {
+                case 9: zzState = 232; break zzForNext;
+                case 18: zzState = 233; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 216:
+              switch (zzInput) {
+                case 22: zzState = 217; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 217:
+              switch (zzInput) {
+                case 9: zzState = 234; break zzForNext;
+                case 23: zzState = 235; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 218:
+              switch (zzInput) {
+                case 15: zzState = 219; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 219:
+              switch (zzInput) {
+                case 9: zzState = 236; break zzForNext;
+                case 29: zzState = 237; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 220:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 199; break zzForNext;
+                case 9: zzState = 221; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 221:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 199; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 222:
+              switch (zzInput) {
+                case 37: zzState = 223; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 223:
+              switch (zzInput) {
+                case 9: zzState = 238; break zzForNext;
+                case 23: zzState = 239; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 224:
+              switch (zzInput) {
+                case 38: zzState = 225; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 225:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 240; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 241; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 226:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 209; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 227; break zzForNext;
+                case 9: zzState = 242; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 227:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 243; break zzForNext;
+                case 9: zzState = 244; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 228:
+              switch (zzInput) {
+                case 23: zzState = 229; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 229:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 245; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 246; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 230:
+              switch (zzInput) {
+                case 20: zzState = 231; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 231:
+              switch (zzInput) {
+                case 9: zzState = 247; break zzForNext;
+                case 21: zzState = 248; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 232:
+              switch (zzInput) {
+                case 18: zzState = 233; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 233:
+              switch (zzInput) {
+                case 9: zzState = 249; break zzForNext;
+                case 17: zzState = 250; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 234:
+              switch (zzInput) {
+                case 23: zzState = 235; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 235:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 251; break zzForNext;
+                case 24: zzState = 252; break zzForNext;
+                case 34: zzState = 253; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 236:
+              switch (zzInput) {
+                case 29: zzState = 237; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 237:
+              switch (zzInput) {
+                case 9: zzState = 254; break zzForNext;
+                case 30: zzState = 255; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 238:
+              switch (zzInput) {
+                case 23: zzState = 239; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 239:
+              switch (zzInput) {
+                case 9: zzState = 256; break zzForNext;
+                case 19: zzState = 257; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 240:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 225; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 241; break zzForNext;
+                case 9: zzState = 258; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 241:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 259; break zzForNext;
+                case 9: zzState = 260; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 242:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 209; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 243:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzState = 227; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 244:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 243; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 245:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 229; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 246; break zzForNext;
+                case 9: zzState = 261; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 246:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 262; break zzForNext;
+                case 9: zzState = 263; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 247:
+              switch (zzInput) {
+                case 21: zzState = 248; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 248:
+              switch (zzInput) {
+                case 9: zzState = 264; break zzForNext;
+                case 22: zzState = 265; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 249:
+              switch (zzInput) {
+                case 17: zzState = 250; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 250:
+              switch (zzInput) {
+                case 9: zzState = 266; break zzForNext;
+                case 27: zzState = 267; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 251:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 235; break zzForNext;
+                case 24: zzState = 252; break zzForNext;
+                case 34: zzState = 253; break zzForNext;
+                case 9: zzState = 268; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 252:
+              switch (zzInput) {
+                case 9: zzState = 269; break zzForNext;
+                case 20: zzState = 270; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 253:
+              switch (zzInput) {
+                case 9: zzState = 271; break zzForNext;
+                case 14: zzState = 272; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 254:
+              switch (zzInput) {
+                case 30: zzState = 255; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 255:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 273; break zzForNext;
+                case 10: zzState = 274; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 256:
+              switch (zzInput) {
+                case 19: zzState = 257; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 257:
+              switch (zzInput) {
+                case 9: zzState = 275; break zzForNext;
+                case 20: zzState = 276; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 258:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 225; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 259:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzState = 241; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 260:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 259; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 261:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 229; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 262:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzState = 246; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 263:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 262; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 264:
+              switch (zzInput) {
+                case 22: zzState = 265; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 265:
+              switch (zzInput) {
+                case 9: zzState = 277; break zzForNext;
+                case 23: zzState = 278; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 266:
+              switch (zzInput) {
+                case 27: zzState = 267; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 267:
+              switch (zzInput) {
+                case 9: zzState = 279; break zzForNext;
+                case 29: zzState = 280; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 268:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 235; break zzForNext;
+                case 24: zzState = 252; break zzForNext;
+                case 34: zzState = 253; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 269:
+              switch (zzInput) {
+                case 20: zzState = 270; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 270:
+              switch (zzInput) {
+                case 9: zzState = 281; break zzForNext;
+                case 14: zzState = 282; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 271:
+              switch (zzInput) {
+                case 14: zzState = 272; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 272:
+              switch (zzInput) {
+                case 9: zzState = 283; break zzForNext;
+                case 15: zzState = 284; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 273:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 255; break zzForNext;
+                case 10: zzState = 274; break zzForNext;
+                case 9: zzState = 285; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 274:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 286; break zzForNext;
+                case 31: 
+                case 32: zzState = 287; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 275:
+              switch (zzInput) {
+                case 20: zzState = 276; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 276:
+              switch (zzInput) {
+                case 9: zzState = 288; break zzForNext;
+                case 27: zzState = 289; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 277:
+              switch (zzInput) {
+                case 23: zzState = 278; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 278:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 290; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 291; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 279:
+              switch (zzInput) {
+                case 29: zzState = 280; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 280:
+              switch (zzInput) {
+                case 9: zzState = 292; break zzForNext;
+                case 38: zzState = 293; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 281:
+              switch (zzInput) {
+                case 14: zzState = 282; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 282:
+              switch (zzInput) {
+                case 9: zzState = 294; break zzForNext;
+                case 15: zzState = 295; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 283:
+              switch (zzInput) {
+                case 15: zzState = 284; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 284:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 296; break zzForNext;
+                case 22: zzState = 297; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 285:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 255; break zzForNext;
+                case 10: zzState = 274; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 286:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 274; break zzForNext;
+                case 31: 
+                case 32: zzState = 287; break zzForNext;
+                case 9: zzState = 298; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 287:
+              switch (zzInput) {
+                case 9: zzState = 299; break zzForNext;
+                case 24: zzState = 300; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 288:
+              switch (zzInput) {
+                case 27: zzState = 289; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 289:
+              switch (zzInput) {
+                case 9: zzState = 301; break zzForNext;
+                case 45: zzState = 302; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 290:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 278; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 291; break zzForNext;
+                case 9: zzState = 303; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 291:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 304; break zzForNext;
+                case 9: zzState = 305; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 292:
+              switch (zzInput) {
+                case 38: zzState = 293; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 293:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 306; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 307; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 294:
+              switch (zzInput) {
+                case 15: zzState = 295; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 295:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 308; break zzForNext;
+                case 22: zzState = 309; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 296:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 284; break zzForNext;
+                case 22: zzState = 297; break zzForNext;
+                case 9: zzState = 310; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 297:
+              switch (zzInput) {
+                case 9: zzState = 311; break zzForNext;
+                case 25: zzState = 312; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 298:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 274; break zzForNext;
+                case 31: 
+                case 32: zzState = 287; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 299:
+              switch (zzInput) {
+                case 24: zzState = 300; break zzForNext;
+                case 9: zzState = 313; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 300:
+              switch (zzInput) {
+                case 9: zzState = 314; break zzForNext;
+                case 20: zzState = 315; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 301:
+              switch (zzInput) {
+                case 45: zzState = 302; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 302:
+              switch (zzInput) {
+                case 9: zzState = 316; break zzForNext;
+                case 23: zzState = 317; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 303:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 278; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 304:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzState = 291; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 305:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 304; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 306:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 293; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 307; break zzForNext;
+                case 9: zzState = 318; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 307:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 319; break zzForNext;
+                case 9: zzState = 320; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 308:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 295; break zzForNext;
+                case 22: zzState = 309; break zzForNext;
+                case 9: zzState = 321; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 309:
+              switch (zzInput) {
+                case 9: zzState = 322; break zzForNext;
+                case 25: zzState = 323; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 310:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 284; break zzForNext;
+                case 22: zzState = 297; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 311:
+              switch (zzInput) {
+                case 25: zzState = 312; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 312:
+              switch (zzInput) {
+                case 9: zzState = 324; break zzForNext;
+                case 26: zzState = 325; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 313:
+              switch (zzInput) {
+                case 24: zzState = 300; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 314:
+              switch (zzInput) {
+                case 20: zzState = 315; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 315:
+              switch (zzInput) {
+                case 9: zzState = 326; break zzForNext;
+                case 20: zzState = 327; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 316:
+              switch (zzInput) {
+                case 23: zzState = 317; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 317:
+              switch (zzInput) {
+                case 9: zzState = 328; break zzForNext;
+                case 35: zzState = 329; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 318:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 293; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 319:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzState = 307; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 320:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 319; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 321:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 295; break zzForNext;
+                case 22: zzState = 309; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 322:
+              switch (zzInput) {
+                case 25: zzState = 323; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 323:
+              switch (zzInput) {
+                case 9: zzState = 330; break zzForNext;
+                case 26: zzState = 331; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 324:
+              switch (zzInput) {
+                case 26: zzState = 325; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 325:
+              switch (zzInput) {
+                case 9: zzState = 332; break zzForNext;
+                case 15: zzState = 333; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 326:
+              switch (zzInput) {
+                case 20: zzState = 327; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 327:
+              switch (zzInput) {
+                case 9: zzState = 334; break zzForNext;
+                case 22: zzState = 335; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 328:
+              switch (zzInput) {
+                case 35: zzState = 329; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 329:
+              switch (zzInput) {
+                case 20: zzState = 133; break zzForNext;
+                case 22: zzState = 134; break zzForNext;
+                case 9: zzState = 336; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 330:
+              switch (zzInput) {
+                case 26: zzState = 331; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 331:
+              switch (zzInput) {
+                case 9: zzState = 337; break zzForNext;
+                case 15: zzState = 338; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 332:
+              switch (zzInput) {
+                case 15: zzState = 333; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 333:
+              switch (zzInput) {
+                case 9: zzState = 339; break zzForNext;
+                case 27: zzState = 340; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 334:
+              switch (zzInput) {
+                case 22: zzState = 335; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 335:
+              switch (zzInput) {
+                case 9: zzState = 341; break zzForNext;
+                case 33: zzState = 342; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 336:
+              switch (zzInput) {
+                case 20: zzState = 133; break zzForNext;
+                case 22: zzState = 134; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 337:
+              switch (zzInput) {
+                case 15: zzState = 338; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 338:
+              switch (zzInput) {
+                case 9: zzState = 343; break zzForNext;
+                case 27: zzState = 344; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 339:
+              switch (zzInput) {
+                case 27: zzState = 340; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 340:
+              switch (zzInput) {
+                case 9: zzState = 345; break zzForNext;
+                case 19: zzState = 346; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 341:
+              switch (zzInput) {
+                case 33: zzState = 342; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 342:
+              switch (zzInput) {
+                case 9: zzState = 347; break zzForNext;
+                case 28: zzState = 348; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 343:
+              switch (zzInput) {
+                case 27: zzState = 344; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 344:
+              switch (zzInput) {
+                case 9: zzState = 349; break zzForNext;
+                case 19: zzState = 350; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 345:
+              switch (zzInput) {
+                case 19: zzState = 346; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 346:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 8: break zzForAction;
+                default: break zzForNext;
+              }
+
+            case 347:
+              switch (zzInput) {
+                case 28: zzState = 348; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 348:
+              switch (zzInput) {
+                case 9: zzState = 352; break zzForNext;
+                case 28: zzState = 353; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 349:
+              switch (zzInput) {
+                case 19: zzState = 350; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 350:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 8: break zzForAction;
+                default: break zzForNext;
+              }
+
+            case 351:
+              switch (zzInput) {
+                case 9: zzState = 355; break zzForNext;
+                case 28: zzState = 356; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 352:
+              switch (zzInput) {
+                case 28: zzState = 353; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 353:
+              switch (zzInput) {
+                case 9: zzState = 357; break zzForNext;
+                case 34: zzState = 358; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 354:
+              switch (zzInput) {
+                case 9: zzState = 359; break zzForNext;
+                case 28: zzState = 360; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 355:
+              switch (zzInput) {
+                case 28: zzState = 356; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 356:
+              switch (zzInput) {
+                case 28: break zzForNext;
+                case 9: zzState = 361; break zzForNext;
+                case 17: zzState = 362; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 357:
+              switch (zzInput) {
+                case 34: zzState = 358; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 358:
+              switch (zzInput) {
+                case 9: zzState = 363; break zzForNext;
+                case 34: zzState = 364; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 359:
+              switch (zzInput) {
+                case 28: zzState = 360; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 360:
+              switch (zzInput) {
+                case 28: break zzForNext;
+                case 9: zzState = 365; break zzForNext;
+                case 17: zzState = 366; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 361:
+              switch (zzInput) {
+                case 28: zzState = 356; break zzForNext;
+                case 17: zzState = 362; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 362:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 9: zzState = 367; break zzForNext;
+                case 20: zzState = 368; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 363:
+              switch (zzInput) {
+                case 34: zzState = 364; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 364:
+              switch (zzInput) {
+                case 9: zzState = 369; break zzForNext;
+                case 34: zzState = 370; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 365:
+              switch (zzInput) {
+                case 28: zzState = 360; break zzForNext;
+                case 17: zzState = 366; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 366:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 9: zzState = 371; break zzForNext;
+                case 20: zzState = 372; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 367:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 20: zzState = 368; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 368:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 9: zzState = 373; break zzForNext;
+                case 17: zzState = 374; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 369:
+              switch (zzInput) {
+                case 34: zzState = 370; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 370:
+              switch (zzInput) {
+                case 9: zzState = 375; break zzForNext;
+                case 35: zzState = 376; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 371:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 20: zzState = 372; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 372:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 9: zzState = 377; break zzForNext;
+                case 17: zzState = 378; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 373:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 17: zzState = 374; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 374:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 6: 
+                case 7: zzState = 379; break zzForNext;
+                case 8: zzState = 380; break zzForNext;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 375:
+              switch (zzInput) {
+                case 35: zzState = 376; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 376:
+              switch (zzInput) {
+                case 9: zzState = 381; break zzForNext;
+                case 34: zzState = 382; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 377:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 17: zzState = 378; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 378:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 6: 
+                case 7: zzState = 383; break zzForNext;
+                case 8: zzState = 384; break zzForNext;
+                case 9: zzState = 385; break zzForNext;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 379:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 9: zzState = 386; break zzForNext;
+                case 34: zzState = 387; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 380:
+              switch (zzInput) {
+                case 9: zzState = 388; break zzForNext;
+                case 34: zzState = 389; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 381:
+              switch (zzInput) {
+                case 34: zzState = 382; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 382:
+              switch (zzInput) {
+                case 9: zzState = 390; break zzForNext;
+                case 36: zzState = 391; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 383:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 9: zzState = 392; break zzForNext;
+                case 13: zzState = 393; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 384:
+              switch (zzInput) {
+                case 9: zzState = 394; break zzForNext;
+                case 13: zzState = 395; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 385:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 6: 
+                case 7: zzState = 383; break zzForNext;
+                case 8: zzState = 384; break zzForNext;
+                case 9: zzState = 396; break zzForNext;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 386:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 34: zzState = 387; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 387:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 9: zzState = 397; break zzForNext;
+                case 14: zzState = 398; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 388:
+              switch (zzInput) {
+                case 34: zzState = 389; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 389:
+              switch (zzInput) {
+                case 9: zzState = 399; break zzForNext;
+                case 14: zzState = 400; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 390:
+              switch (zzInput) {
+                case 36: zzState = 391; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 391:
+              switch (zzInput) {
+                case 9: zzState = 401; break zzForNext;
+                case 35: zzState = 402; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 392:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 13: zzState = 393; break zzForNext;
+                case 9: zzState = 403; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 393:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 9: zzState = 404; break zzForNext;
+                case 24: zzState = 405; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 394:
+              switch (zzInput) {
+                case 13: zzState = 395; break zzForNext;
+                case 9: zzState = 406; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 395:
+              switch (zzInput) {
+                case 9: zzState = 407; break zzForNext;
+                case 24: zzState = 408; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 396:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 6: 
+                case 7: zzState = 383; break zzForNext;
+                case 8: zzState = 384; break zzForNext;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 397:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 14: zzState = 398; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 398:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 9: zzState = 409; break zzForNext;
+                case 15: zzIsFinal = true; zzState = 410; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 399:
+              switch (zzInput) {
+                case 14: zzState = 400; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 400:
+              switch (zzInput) {
+                case 9: zzState = 411; break zzForNext;
+                case 15: zzIsFinal = true; zzState = 412; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 401:
+              switch (zzInput) {
+                case 35: zzState = 402; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 402:
+              switch (zzInput) {
+                case 9: zzState = 413; break zzForNext;
+                case 18: zzState = 414; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 403:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 13: zzState = 393; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 404:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 24: zzState = 405; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 405:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 9: zzState = 415; break zzForNext;
+                case 20: zzState = 416; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 406:
+              switch (zzInput) {
+                case 13: zzState = 395; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 407:
+              switch (zzInput) {
+                case 24: zzState = 408; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 408:
+              switch (zzInput) {
+                case 9: zzState = 417; break zzForNext;
+                case 20: zzState = 418; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 409:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 15: zzIsFinal = true; zzState = 410; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 410:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 419; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 411:
+              switch (zzInput) {
+                case 15: zzIsFinal = true; zzState = 412; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 412:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 420; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 413:
+              switch (zzInput) {
+                case 18: zzState = 414; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 414:
+              switch (zzInput) {
+                case 9: zzState = 421; break zzForNext;
+                case 37: zzState = 422; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 415:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 20: zzState = 416; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 416:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 9: zzState = 423; break zzForNext;
+                case 14: zzState = 424; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 417:
+              switch (zzInput) {
+                case 20: zzState = 418; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 418:
+              switch (zzInput) {
+                case 9: zzState = 425; break zzForNext;
+                case 14: zzState = 426; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 419:
+              switch (zzInput) {
+                case 28: zzState = 351; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 346; break zzForNext;
+              }
+
+            case 421:
+              switch (zzInput) {
+                case 37: zzState = 422; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 422:
+              switch (zzInput) {
+                case 9: zzState = 427; break zzForNext;
+                case 38: zzState = 428; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 423:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 14: zzState = 424; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 424:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 9: zzState = 429; break zzForNext;
+                case 15: zzIsFinal = true; zzState = 430; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 425:
+              switch (zzInput) {
+                case 14: zzState = 426; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 426:
+              switch (zzInput) {
+                case 9: zzState = 431; break zzForNext;
+                case 15: zzIsFinal = true; zzState = 432; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 427:
+              switch (zzInput) {
+                case 38: zzState = 428; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 428:
+              switch (zzInput) {
+                case 9: zzState = 433; break zzForNext;
+                case 28: zzState = 434; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 429:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 15: zzIsFinal = true; zzState = 430; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 430:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 435; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 431:
+              switch (zzInput) {
+                case 15: zzIsFinal = true; zzState = 432; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 432:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 436; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 433:
+              switch (zzInput) {
+                case 28: zzState = 434; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 434:
+              switch (zzInput) {
+                case 9: zzState = 437; break zzForNext;
+                case 39: zzState = 438; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 435:
+              switch (zzInput) {
+                case 28: zzState = 354; break zzForNext;
+                case 8: break zzForAction;
+                default: zzState = 350; break zzForNext;
+              }
+
+            case 437:
+              switch (zzInput) {
+                case 39: zzState = 438; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 438:
+              switch (zzInput) {
+                case 9: zzState = 439; break zzForNext;
+                case 40: zzState = 440; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 439:
+              switch (zzInput) {
+                case 40: zzState = 440; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 440:
+              switch (zzInput) {
+                case 9: zzState = 441; break zzForNext;
+                case 40: zzState = 442; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 441:
+              switch (zzInput) {
+                case 40: zzState = 442; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 442:
+              switch (zzInput) {
+                case 9: zzState = 443; break zzForNext;
+                case 40: zzState = 444; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 443:
+              switch (zzInput) {
+                case 40: zzState = 444; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 444:
+              switch (zzInput) {
+                case 28: zzState = 394; break zzForNext;
+                case 9: zzState = 445; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 445:
+              switch (zzInput) {
+                case 28: zzState = 394; break zzForNext;
                 default: break zzForAction;
               }
 
@@ -1993,107 +3808,103 @@
         case 10: 
           { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}
           }
-        case 27: break;
-        case 17: 
+        case 26: break;
+        case 16: 
           { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
           }
+        case 27: break;
+        case 1: 
+          { if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}
+          }
         case 28: break;
         case 4: 
           { yybegin(SQ_STRING); string.setLength(0);
           }
         case 29: break;
+        case 8: 
+          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;
+          }
+        case 30: break;
         case 5: 
           { string.append( yytext() );
           }
-        case 30: break;
-        case 22: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageLanguage;
-          }
         case 31: break;
-        case 26: 
-          { isXHTML = true;
+        case 9: 
+          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
           }
         case 32: break;
-        case 24: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageEncoding;
+        case 21: 
+          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageLanguage;
           }
         case 33: break;
-        case 1: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}
+        case 15: 
+          { yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
           }
         case 34: break;
+        case 25: 
+          { isXHTML = true;
+          }
+        case 35: break;
+        case 23: 
+          { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageEncoding;
+          }
+        case 36: break;
         case 11: 
           { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;}
           }
-        case 35: break;
-        case 6: 
-          { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 36: break;
-        case 8: 
-          { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;
-          }
         case 37: break;
-        case 9: 
-          { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
-          }
-        case 38: break;
         case 7: 
           { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;
           }
-        case 39: break;
+        case 38: break;
         case 14: 
           { yybegin(YYINITIAL);  return JSPHeadTokenizerConstants.PageDirectiveEnd;
           }
-        case 40: break;
-        case 23: 
+        case 39: break;
+        case 22: 
           { pushCurrentState(); yybegin(QuotedAttributeValue); return JSPHeadTokenizerConstants.PageContentType;
           }
-        case 41: break;
-        case 18: 
+        case 40: break;
+        case 17: 
           { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}
           }
-        case 42: break;
-        case 15: 
-          { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 43: break;
+        case 41: break;
         case 2: 
           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);
           }
-        case 44: break;
+        case 42: break;
         case 12: 
           { yybegin(YYINITIAL); return XMLHeadTokenizerConstants.XMLDeclEnd;
           }
-        case 45: break;
+        case 43: break;
         case 13: 
           { yybegin(YYINITIAL); return JSPHeadTokenizerConstants.PageDirectiveEnd;
           }
-        case 46: break;
-        case 25: 
+        case 44: break;
+        case 24: 
           { isWML = true;
           }
-        case 47: break;
-        case 19: 
+        case 45: break;
+        case 18: 
           { yybegin(ST_PAGE_DIRECTIVE); return JSPHeadTokenizerConstants.PageDirectiveStart;
           }
-        case 48: break;
-        case 21: 
+        case 46: break;
+        case 6: 
+          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
+          }
+        case 47: break;
+        case 20: 
           { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;
           }
-        case 49: break;
-        case 20: 
+        case 48: break;
+        case 19: 
           { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;
           }
-        case 50: break;
-        case 16: 
-          { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 51: break;
+        case 49: break;
         case 3: 
           { yybegin(DQ_STRING); string.setLength(0);
           }
-        case 52: break;
+        case 50: break;
         default: 
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
             zzAtEOF = true;
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizerConstants.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizerConstants.java
index 08fa5b9..7b71657 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizerConstants.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPHeadTokenizerConstants.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -18,4 +18,4 @@
 	String PageLanguage = "PageLanguage"; //$NON-NLS-1$
 	String PageEncoding = "PageEncoding"; //$NON-NLS-1$
 	String PageContentType = "PageContentType"; //$NON-NLS-1$
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPResourceEncodingDetector.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPResourceEncodingDetector.java
index 521af02..f3f3e9c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPResourceEncodingDetector.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/contenttype/JSPResourceEncodingDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -22,6 +22,8 @@
 
 import org.eclipse.core.resources.IStorage;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.content.IContentDescription;
+import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.wst.sse.core.internal.encoding.CodedIO;
 import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
 import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
@@ -216,15 +218,13 @@
 			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
 			fEncodingMemento.setUTF83ByteBOMUsed(true);
 		}
-		else if (tokenType == EncodingParserConstants.UTF16BE) {
-			canHandleAsUnicode = true;
-			String enc = "UTF-16BE"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-		}
-		else if (tokenType == EncodingParserConstants.UTF16LE) {
+		else if (tokenType == EncodingParserConstants.UTF16BE || tokenType == EncodingParserConstants.UTF16LE) {
 			canHandleAsUnicode = true;
 			String enc = "UTF-16"; //$NON-NLS-1$
+			byte[] bom = (tokenType == EncodingParserConstants.UTF16BE) ? IContentDescription.BOM_UTF_16BE : IContentDescription.BOM_UTF_16LE;
 			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
+			fEncodingMemento.setUnicodeStream(true);
+			fEncodingMemento.setUnicodeBOM(bom);
 		}
 		return canHandleAsUnicode;
 	}
@@ -377,7 +377,7 @@
 	 * responsibility of the tokenizer to stop when appropriate and not go too
 	 * far.
 	 */
-	private void parseHeader(JSPHeadTokenizer tokenizer) throws IOException {
+	private void parseHeader(JSPHeadTokenizer tokenizer) throws Exception {
 		fPageEncodingValue = null;
 		fCharset = null;
 
@@ -389,7 +389,6 @@
 			if (canHandleAsUnicodeStream(tokenType))
 				unicodeCase = true;
 			else {
-
 				if (tokenType == XMLHeadTokenizerConstants.XMLDelEncoding) {
 					if (tokenizer.hasMoreTokens()) {
 						HeadParserToken valueToken = tokenizer.getNextToken();
@@ -438,21 +437,23 @@
 		if (tokenizer.isWML() ) {
 			fWML = true;
 		}
-		
-
 	}
 
 	private void parseInput() throws IOException {
 		JSPHeadTokenizer tokenizer = getTokinizer();
 		fReader.reset();
 		tokenizer.reset(fReader);
-		parseHeader(tokenizer);
-		// unicode stream cases are created directly in parseHeader
-		if (!unicodeCase) {
-			String enc = getAppropriateEncoding();
-			if (enc != null && enc.length() > 0) {
-				createEncodingMemento(enc, EncodingMemento.FOUND_ENCODING_IN_CONTENT);
+		try {
+			parseHeader(tokenizer);
+			// unicode stream cases are created directly in parseHeader
+			if (!unicodeCase) {
+				String enc = getAppropriateEncoding();
+				if (enc != null && enc.length() > 0) {
+					createEncodingMemento(enc, EncodingMemento.FOUND_ENCODING_IN_CONTENT);
+				}
 			}
+		} catch (Exception e) {
+			Logger.log(Logger.ERROR_DEBUG, e.getMessage());
 		}
 	}
 
@@ -518,4 +519,4 @@
 		}
 		return fXHTML;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/DocumentFactoryForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/DocumentFactoryForJSP.java
index d0050e2..fdf9a70 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/DocumentFactoryForJSP.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/DocumentFactoryForJSP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -51,4 +51,4 @@
 		parser.addNestablePrefix(bm);
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapter.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapter.java
index 831215b..d2b321f 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapter.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -39,7 +39,7 @@
 
 	/**
 	 * This method is to give this adapter a chance to use
-	 * the AdapterFactores from the EmbeddedTypeHandler
+	 * the AdapterFactories from the EmbeddedTypeHandler
 	 * to adapt the node. Its to be used by JSPAwareAdapterFactories
 	 * to (potentially) adapt nodes from the embedded content type.
 	 */
@@ -56,4 +56,4 @@
 	INodeNotifier getTarget();
 
 	public void release();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterFactory.java
index f20707e..fc986da 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterFactory.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -94,4 +94,4 @@
 
 		return new PageDirectiveAdapterFactory(getAdapterKey(), isShouldRegisterAdapter());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterImpl.java
index 5a383f8..026c3a7 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveAdapterImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004-2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
@@ -11,6 +11,7 @@
 package org.eclipse.jst.jsp.core.internal.document;
 
 import java.io.IOException;
+import java.io.Reader;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -32,6 +33,7 @@
 import org.eclipse.jst.jsp.core.internal.provisional.contenttype.IContentDescriptionForJSP;
 import org.eclipse.jst.jsp.core.internal.text.StructuredTextPartitionerForJSP;
 import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeFamilyForHTML;
+import org.eclipse.wst.sse.core.internal.document.DocumentReader;
 import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
 import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistry;
 import org.eclipse.wst.sse.core.internal.modelhandler.EmbeddedTypeRegistryImpl;
@@ -41,7 +43,6 @@
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
 import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.DocumentInputStream;
 import org.eclipse.wst.sse.core.utils.StringUtils;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 
@@ -664,7 +665,7 @@
 	private IContentDescription getContentDescription(IDocument doc) {
 		if (doc == null)
 			return null;
-		DocumentInputStream in = new DocumentInputStream(doc);
+		DocumentReader in = new DocumentReader(doc);
 		return getContentDescription(in);
 	}
 
@@ -675,7 +676,7 @@
 	 * @param in
 	 * @return the IContentDescription for in, or null if in is null
 	 */
-	private IContentDescription getContentDescription(DocumentInputStream in) {
+	private IContentDescription getContentDescription(Reader in) {
 
 		if (in == null)
 			return null;
@@ -690,13 +691,11 @@
 			Logger.logException(e);
 		}
 		finally {
-			if (in != null) {
-				try {
-					in.close();
-				}
-				catch (IOException e) {
-					Logger.logException(e);
-				}
+			try {
+				in.close();
+			}
+			catch (IOException e) {
+				Logger.logException(e);
 			}
 		}
 		return desc;
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcher.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcher.java
index 6037021..b443a8a 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcher.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcher.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,4 +20,4 @@
 
 	int getOffset();
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherFactory.java
index ea7df83..1fbb07a 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherFactory.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -55,4 +55,4 @@
 
 public INodeAdapterFactory copy() {
 		return new PageDirectiveWatcherFactory(getAdapterKey(), isShouldRegisterAdapter());
-	}}
\ No newline at end of file
+	}}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherImpl.java
index 2fc219a..5058785 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/document/PageDirectiveWatcherImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -105,4 +105,4 @@
 		return targetElement.getStartOffset();
 	}
 
-}
\ No newline at end of file
+}
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
index 5bcc664..ff30c55 100644
--- 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
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
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
index 455df72..c9ccc58 100644
--- 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
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
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
index eb0bc668..23a8baa 100644
--- 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
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
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
index 413627f..dcc8ce2 100644
--- 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
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
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
index 9f6bcda..2969129 100644
--- 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
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
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
index 26b71c4..337d75b 100644
--- 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
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
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
index 6b7eb82..afaa719 100644
--- 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
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
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
index da91a23..1f67f53 100644
--- 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
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java
index 02b8453..291c547 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/IJSPHeadContentDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,4 +19,4 @@
 
 	String getLanguage() throws IOException;
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentHeadContentDetector.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentHeadContentDetector.java
index 5679036..84c5e7e 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentHeadContentDetector.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentHeadContentDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,4 +30,4 @@
 
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentLoader.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentLoader.java
index bc4edfb..8e1d3cb 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentLoader.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/encoding/JSPDocumentLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -309,4 +309,4 @@
 
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/EscapedTextUtil.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/EscapedTextUtil.java
index b33f2df..2d65350 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/EscapedTextUtil.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/EscapedTextUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPProblem.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPProblem.java
new file mode 100644
index 0000000..ff986cd
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPProblem.java
@@ -0,0 +1,23 @@
+package org.eclipse.jst.jsp.core.internal.java;
+
+import org.eclipse.jdt.core.compiler.IProblem;
+
+public interface IJSPProblem extends IProblem {
+
+	int F_PROBLEM_ID_LITERAL = 0xA0000000;
+	
+	int TEIClassNotFound = F_PROBLEM_ID_LITERAL + 1;
+	int TEIValidationMessage = F_PROBLEM_ID_LITERAL + 2;
+	int TEIClassNotInstantiated = F_PROBLEM_ID_LITERAL + 3;
+	int TEIClassMisc = F_PROBLEM_ID_LITERAL + 4;	
+	int TagClassNotFound = F_PROBLEM_ID_LITERAL + 5;
+	int UseBeanInvalidID = F_PROBLEM_ID_LITERAL + 6;
+	int UseBeanMissingTypeInfo = F_PROBLEM_ID_LITERAL + 7;
+	int UseBeanAmbiguousType  = F_PROBLEM_ID_LITERAL + 8;
+	
+	/**
+	 * @return the ID of this JSP problem
+	 */
+	int getEID();
+
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPTranslation.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPTranslation.java
index cb79f3e..17f641f 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPTranslation.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/IJSPTranslation.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
@@ -60,6 +60,13 @@
 	public IJavaElement[] getElementsFromJspRange(int jspStart, int jspEnd);
 
 	/**
+	 * @param javaOffset
+	 * @return whether the given offset within the translated Java source maps
+	 *         directly to a scripting region in the original JSP
+	 */
+	public boolean isIndirect(int javaOffset);
+	
+	/**
 	 * Must be set true in order for problems to be collected during reconcile.
 	 * If set false, problems will be ignored during reconcile.
 	 * @param collect
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSP2ServletNameUtil.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSP2ServletNameUtil.java
index 43dfba4..bd6e94a 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSP2ServletNameUtil.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSP2ServletNameUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPIncludeRegionHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPIncludeRegionHelper.java
index 5ef7219..f0115c8 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPIncludeRegionHelper.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPIncludeRegionHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,8 +26,8 @@
 	/**
 	 * @param JSPTranslator
 	 */
-	public JSPIncludeRegionHelper(JSPTranslator translator) {
-		super(translator);
+	public JSPIncludeRegionHelper(JSPTranslator translator, boolean appendAsIndirectSource) {
+		super(translator, appendAsIndirectSource);
 	}
 
 	// these methods determine what content gets added to the local scriplet, expression, declaration buffers
@@ -91,4 +91,4 @@
 		processIncludeDirective(sdRegion);
 		processPageDirective(sdRegion);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslation.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslation.java
index 67a45ab..29e24f9 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslation.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslation.java
@@ -1,23 +1,29 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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.java;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 
+import org.eclipse.core.resources.WorkspaceJob;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jdt.core.IBuffer;
 import org.eclipse.jdt.core.ICompilationUnit;
 import org.eclipse.jdt.core.IJavaElement;
@@ -84,6 +90,8 @@
 	private byte[] fLock = null;
 	private String fMangledName;
 	private String fJspName;
+	private List fTranslationProblems;
+	private Collection fIncludedPaths;
 
 	public JSPTranslation(IJavaProject javaProj, JSPTranslator translator) {
 
@@ -102,6 +110,8 @@
 			fJava2JspUseBeanMap = translator.getJava2JspUseBeanRanges();
 			fJava2JspIndirectMap = translator.getJava2JspIndirectRanges();
 			fELProblems = translator.getELProblems();
+			fTranslationProblems = translator.getTranslationProblems();
+			fIncludedPaths = translator.getIncludedPaths();
 		}
 	}
 	
@@ -188,6 +198,10 @@
 
 		return result;
 	}
+		
+	public Collection getIncludedPaths() {
+		return fIncludedPaths;
+	}
 
 	/**
 	 * 
@@ -499,7 +513,15 @@
 	 */
 	public List getProblems() {
 		List problems = getProblemRequestor().getCollectedProblems();
-		return problems != null ? problems : new ArrayList();
+		if (problems != null) {
+			if (fTranslationProblems.isEmpty()) {
+				return problems;
+			}
+			List combinedProblems = new ArrayList(problems);
+			combinedProblems.addAll(fTranslationProblems);
+			return combinedProblems;
+		}
+		return fTranslationProblems;
 	}
 	
 	/**
@@ -610,20 +632,26 @@
 	 */
 	public void release() {
 		
-		synchronized(fLock) {
-			if(fCompilationUnit != null) {
-				try {
-					if(DEBUG) {
-						System.out.println("------------------------------------------------------------------"); //$NON-NLS-1$
-						System.out.println("(-) JSPTranslation [" + this +"] discarding CompilationUnit: " + fCompilationUnit); //$NON-NLS-1$ //$NON-NLS-2$
-						System.out.println("------------------------------------------------------------------"); //$NON-NLS-1$
+		synchronized (fLock) {
+			if (fCompilationUnit != null) {
+				Job discarder = new WorkspaceJob(fClassname) {
+					public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
+						try {
+							if (DEBUG) {
+								System.out.println("------------------------------------------------------------------"); //$NON-NLS-1$
+								System.out.println("(-) JSPTranslation [" + this + "] discarding CompilationUnit: " + fCompilationUnit); //$NON-NLS-1$ //$NON-NLS-2$
+								System.out.println("------------------------------------------------------------------"); //$NON-NLS-1$
+							}
+							fCompilationUnit.discardWorkingCopy();
+						}
+						catch (JavaModelException e) {
+							// we're done w/ it anyway
+						}
+						return Status.OK_STATUS;
 					}
-					fCompilationUnit.discardWorkingCopy();	
-				} 
-				catch (JavaModelException e) {
-					// we're done w/ it anyway
-				}
+				};
+				discarder.schedule();
 			}
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapter.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapter.java
index f0ba288..5db6c87 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapter.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -130,7 +130,7 @@
 			}
 			else {
 				// empty document case
-				translator = new JSPTranslator();
+				translator = createTranslator();
 				StringBuffer emptyContents = translator.getEmptyTranslation();
 				fJavaDocument = new Document(emptyContents.toString());
 			}
@@ -146,6 +146,10 @@
 		return fJSPTranslation;
 	}
 
+	JSPTranslator createTranslator() {
+		return new JSPTranslator();
+	}
+
 	/**
 	 * Returns the JSPTranslator for this adapter. If it's null, a new
 	 * translator is created with the xmlNode. Otherwise the
@@ -159,7 +163,7 @@
 	private JSPTranslator getTranslator(IDOMNode xmlNode) {
 		if (fTranslator == null) {
 			fTranslationMonitor = new NullProgressMonitor();
-			fTranslator = new JSPTranslator();
+			fTranslator = createTranslator();
 			fTranslator.reset(xmlNode, fTranslationMonitor);
 		}
 		else
@@ -223,4 +227,4 @@
 		}
 		return javaProject;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapterFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapterFactory.java
index 7d4b14f..dbe0b4e 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapterFactory.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -28,11 +28,7 @@
 	private JSPTranslationAdapter fAdapter = null;
 
 	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value= Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation"); //$NON-NLS-1$
-		DEBUG= value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
+	static final boolean DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation")).booleanValue(); //$NON-NLS-1$;
 	
 	public JSPTranslationAdapterFactory() {
 		super(IJSPTranslation.class, true);
@@ -62,4 +58,4 @@
 		}
 		super.release();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java
index 9e07068..72ed408 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationExtension.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -18,6 +18,8 @@
 
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.ToolFactory;
+import org.eclipse.jdt.core.formatter.CodeFormatter;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
@@ -40,157 +42,167 @@
 
 
 /**
- * Adds the notion of IDocuments (jsp Document and java Document)
- * Used for TextEdit translation
+ * Adds the notion of IDocuments (jsp Document and java Document) Used for
+ * TextEdit translation
+ * 
  * @author pavery
  */
 public class JSPTranslationExtension extends JSPTranslation {
-	
+
 	// for debugging
 	private static final boolean DEBUG;
 	static {
-		String value= Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation"); //$NON-NLS-1$
-		DEBUG= value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
+		String value = Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation"); //$NON-NLS-1$
+		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
 	}
-	
+
 	// just a convenience data structure
 	// to keep track of java position deltas
 	private class PositionDelta {
-		
+
 		public boolean isDeleted = false;
 		public int preOffset = 0;
 		public int preLength = 0;
 		public int postOffset = 0;
 		public int postLength = 0;
-		
+
 		public PositionDelta(int preOffset, int preLength) {
 			this.preOffset = preOffset;
 			this.preLength = preLength;
 		}
+
 		public void setPostEditData(int postOffset, int postLength, boolean isDeleted) {
 			this.postOffset = postOffset;
 			this.postLength = postLength;
 			this.isDeleted = isDeleted;
 		}
 	}
-	
+
 	private IDocument fJspDocument = null;
 	private IDocument fJavaDocument = null;
-	
+	private CodeFormatter fCodeFormatter = null;
+
 	public JSPTranslationExtension(IDocument jspDocument, IDocument javaDocument, IJavaProject javaProj, JSPTranslator translator) {
 		super(javaProj, translator);
 		fJspDocument = jspDocument;
 		fJavaDocument = javaDocument;
-		
+
 		// make sure positions are added to Java and JSP documents
 		// this is necessary for text edits
 		addPositionsToDocuments();
 	}
-	
+
 	public IDocument getJspDocument() {
 		return fJspDocument;
 	}
-	
+
 	public IDocument getJavaDocument() {
 		return fJavaDocument;
 	}
-	
+
 	public String getJavaText() {
 		return getJavaDocument() != null ? getJavaDocument().get() : ""; //$NON-NLS-1$
 	}
-	
+
 	/**
-	 * Returns a corresponding TextEdit for the JSP file given a TextEdit for a Java file.
+	 * Returns a corresponding TextEdit for the JSP file given a TextEdit for
+	 * a Java file.
 	 * 
 	 * @param javaEdit
 	 * @return the corresponding JSP edits (not applied to the document yet)
 	 */
 	public TextEdit getJspEdit(TextEdit javaEdit) {
 
-		if(javaEdit == null)
+		if (javaEdit == null)
 			return null;
-		
+
 		List jspEdits = new ArrayList();
 
 		int offset = javaEdit.getOffset();
 		int length = javaEdit.getLength();
-		
-		if(javaEdit instanceof MultiTextEdit && javaEdit.getChildren().length > 0) {
-	
+
+		if (javaEdit instanceof MultiTextEdit && javaEdit.getChildren().length > 0) {
+
 			IRegion r = TextEdit.getCoverage(getAllEdits(javaEdit));
 			offset = r.getOffset();
 			length = r.getLength();
 		}
-		
+
 		// get java ranges that will be affected by the edit
 		Position[] javaPositions = getJavaRanges(offset, length);
-		
+
 		// record position data before the change
 		Position[] jspPositions = new Position[javaPositions.length];
 		PositionDelta[] deltas = new PositionDelta[javaPositions.length];
-		for(int i=0; i<javaPositions.length; i++) {
+		for (int i = 0; i < javaPositions.length; i++) {
 			deltas[i] = new PositionDelta(javaPositions[i].offset, javaPositions[i].length);
-			// isIndirect means the position doesn't actually exist as exact text 
+			// isIndirect means the position doesn't actually exist as exact
+			// text
 			// mapping from java <-> jsp (eg. an import statement)
-			if(!isIndirect(javaPositions[i].offset))
-				jspPositions[i] = (Position)getJava2JspMap().get(javaPositions[i]);
+			if (!isIndirect(javaPositions[i].offset))
+				jspPositions[i] = (Position) getJava2JspMap().get(javaPositions[i]);
 		}
 
-		if(DEBUG) {
+		if (DEBUG) {
 			System.out.println("================================================"); //$NON-NLS-1$
 			System.out.println("deltas:"); //$NON-NLS-1$
 			String javaText = getJavaText();
-			for(int i=0; i<deltas.length; i++) 
-				System.out.println("pos[" + deltas[i].preOffset + ":" + deltas[i].preLength + "]" + javaText.substring(deltas[i].preOffset, deltas[i].preOffset + deltas[i].preLength) ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			for (int i = 0; i < deltas.length; i++)
+				System.out.println("pos[" + deltas[i].preOffset + ":" + deltas[i].preLength + "]" + javaText.substring(deltas[i].preOffset, deltas[i].preOffset + deltas[i].preLength)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 			System.out.println("==============================================="); //$NON-NLS-1$
 		}
 		UndoEdit undo = null;
 		// apply the edit to the java document
 		try {
 			undo = javaEdit.apply(getJavaDocument());
-		} catch (MalformedTreeException e) {
-			Logger.logException(e);
-		} catch (BadLocationException e) {
+		}
+		catch (MalformedTreeException e) {
 			Logger.logException(e);
 		}
-		// now at this point Java positions are unreliable since they were updated after applying java edit.
-		
+		catch (BadLocationException e) {
+			Logger.logException(e);
+		}
+		// now at this point Java positions are unreliable since they were
+		// updated after applying java edit.
+
 		String newJavaText = getJavaDocument().get();
-		if(DEBUG) 
+		if (DEBUG)
 			System.out.println("java post format text:\n" + newJavaText); //$NON-NLS-1$
-		
+
 		// record post edit data
-		for(int i=0; i<javaPositions.length; i++)
+		for (int i = 0; i < javaPositions.length; i++)
 			deltas[i].setPostEditData(javaPositions[i].offset, javaPositions[i].length, javaPositions[i].isDeleted);
-		
+
 		// create appropriate text edits for deltas
 		Position jspPos = null;
 		String replaceText = ""; //$NON-NLS-1$
-		for(int i=0; i<deltas.length; i++) {
+		for (int i = 0; i < deltas.length; i++) {
 			jspPos = jspPositions[i];
 			// can be null if it's an indirect mapping position
-			// or if something was added into java that was not originally in JSP (like a new import...)
+			// or if something was added into java that was not originally in
+			// JSP (like a new import...)
 
-			if(jspPos != null) {
-				if(deltas[i].isDeleted) {
+			if (jspPos != null) {
+				if (deltas[i].isDeleted) {
 					jspEdits.add(new DeleteEdit(jspPos.offset, jspPos.length));
 				}
 				else {
 					replaceText = newJavaText.substring(deltas[i].postOffset, deltas[i].postOffset + deltas[i].postLength);
-					
-					// get rid of pre and post white space or fine tuned adjustment later.
+
+					// get rid of pre and post white space or fine tuned
+					// adjustment later.
 					// fix text here...
 					replaceText = fixJspReplaceText(replaceText, jspPos.offset);
-					
+
 					jspEdits.add(new ReplaceEdit(jspPos.offset, jspPos.length, replaceText));
 				}
-				if(DEBUG) 
+				if (DEBUG)
 					debugReplace(deltas, jspPos, replaceText, i);
 			}
 			else {
 				// the new Java text has no corresponding JSP position
 				// possible new import?
-				if(isImport(javaPositions[i].getOffset()) && replaceText.lastIndexOf("import ") != -1) { //$NON-NLS-1$
+				if (isImport(javaPositions[i].getOffset()) && replaceText.lastIndexOf("import ") != -1) { //$NON-NLS-1$
 					replaceText = newJavaText.substring(deltas[i].postOffset, deltas[i].postOffset + deltas[i].postLength);
 					String importText = replaceText.substring(replaceText.lastIndexOf("import "), replaceText.indexOf(";")); //$NON-NLS-1$ //$NON-NLS-2$
 					// evenutally need to check if it's XML-JSP
@@ -199,12 +211,13 @@
 				}
 			}
 		}
-		TextEdit allJspEdits =  createMultiTextEdit((TextEdit[])jspEdits.toArray(new TextEdit[jspEdits.size()]));
-		
+		TextEdit allJspEdits = createMultiTextEdit((TextEdit[]) jspEdits.toArray(new TextEdit[jspEdits.size()]));
+
 		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=105632
-		// undo the java edit 
-		// (so the underlying Java document still represents what's in the editor)
-		if(undo != null) {
+		// undo the java edit
+		// (so the underlying Java document still represents what's in the
+		// editor)
+		if (undo != null) {
 			try {
 				undo.apply(getJavaDocument());
 			}
@@ -215,50 +228,48 @@
 				Logger.logException(e);
 			}
 		}
-		
+
 		return allJspEdits;
 	}
-	
+
 	private String fixJspReplaceText(String replaceText, int jspOffset) {
-		
+
 		// result is the text inbetween the delimiters
 		// eg.
 		// 
-		// <%  result 
+		// <% result
 		// %>
 		String result = replaceText.trim();
 		String preDelimiterWhitespace = ""; //$NON-NLS-1$
-		
+
 		IDocument jspDoc = getJspDocument();
-		if(jspDoc instanceof IStructuredDocument) {
-			IStructuredDocument sDoc = (IStructuredDocument)jspDoc;
+		if (jspDoc instanceof IStructuredDocument) {
+			IStructuredDocument sDoc = (IStructuredDocument) jspDoc;
 			IStructuredDocumentRegion[] regions = sDoc.getStructuredDocumentRegions(0, jspOffset);
-			IStructuredDocumentRegion lastRegion = regions[regions.length-1];
-			
+			IStructuredDocumentRegion lastRegion = regions[regions.length - 1];
+
 			// only specifically modify scriptlets
-			if(lastRegion != null && lastRegion.getType() == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN) {
-				for (int i = regions.length-1; i >= 0; i--) {
+			if (lastRegion != null && lastRegion.getType() == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN) {
+				for (int i = regions.length - 1; i >= 0; i--) {
 					IStructuredDocumentRegion region = regions[i];
-					
+
 					// is there a better way to check whitespace?
-					if(region.getType() == DOMRegionContext.XML_CONTENT && region.getFullText().trim().equals("")) { //$NON-NLS-1$
-						
+					if (region.getType() == DOMRegionContext.XML_CONTENT && region.getFullText().trim().equals("")) { //$NON-NLS-1$
+
 						preDelimiterWhitespace = region.getFullText();
 						preDelimiterWhitespace = preDelimiterWhitespace.replaceAll("\r", ""); //$NON-NLS-1$ //$NON-NLS-2$
 						preDelimiterWhitespace = preDelimiterWhitespace.replaceAll("\n", ""); //$NON-NLS-1$ //$NON-NLS-2$
-						
+
 						// need to determine indent for that first line...
-						 String initialIndent = getInitialIndent(result);
-						 
-						 // fix the first line of java code
-						result = TextUtilities.getDefaultLineDelimiter(sDoc) 
-									+ initialIndent 
-									+ result;
-						
+						String initialIndent = getInitialIndent(result);
+
+						// fix the first line of java code
+						result = TextUtilities.getDefaultLineDelimiter(sDoc) + initialIndent + result;
+
 						result = adjustIndent(result, preDelimiterWhitespace, TextUtilities.getDefaultLineDelimiter(sDoc));
-						
+
 						// add whitespace before last delimiter to match
-					    // it w/ the opening delimiter
+						// it w/ the opening delimiter
 						result = result + TextUtilities.getDefaultLineDelimiter(sDoc) + preDelimiterWhitespace;
 						break;
 					}
@@ -267,29 +278,33 @@
 		}
 		return result;
 	}
-	
+
 	private String adjustIndent(String textBefore, String indent, String delim) {
-		
+
 		// first replace multiple indent with single indent
 		// the triple indent occurs because the scriptlet code
 		// actually occurs under:
 		// 
-		//    class
-		//       method
-		//          code
+		// class
+		// method
+		// code
 		// 
 		// in the translated java document
-		
-		textBefore = textBefore.replaceAll("\t\t\t", "\t"); //$NON-NLS-1$ //$NON-NLS-2$
-		
+		// BUG188636 - just get indent info from code formatter
+		String level1 = getCodeFormatter().createIndentationString(1);
+		String level3 = getCodeFormatter().createIndentationString(3);
+		String theOld = "\n" + level3; //$NON-NLS-1$
+		String theNew = "\n" + level1; //$NON-NLS-1$
+		textBefore = textBefore.replaceAll(theOld, theNew);
+
 		// get indent after 2nd line break
 		StringBuffer textAfter = new StringBuffer();
 		// will this work on mac?
 		textBefore = textBefore.replaceAll("\r", ""); //$NON-NLS-1$ //$NON-NLS-2$
 		StringTokenizer st = new StringTokenizer(textBefore, "\n", true); //$NON-NLS-1$
-		while(st.hasMoreTokens()) {
+		while (st.hasMoreTokens()) {
 			String tok = st.nextToken();
-			if(tok.equals("\n")) { //$NON-NLS-1$
+			if (tok.equals("\n")) { //$NON-NLS-1$
 				textAfter.append(delim);
 			}
 			else {
@@ -299,39 +314,49 @@
 			}
 		}
 		return textAfter.toString();
-		
+
 	}
-	
+
 	private String getInitialIndent(String result) {
-		
-		// get indent after 2nd line break
-		String indent = ""; //$NON-NLS-1$
-		StringTokenizer st = new StringTokenizer(result, "\r\n", false); //$NON-NLS-1$
-		if(st.countTokens() > 1) {
-			String tok = st.nextToken();
-			tok = st.nextToken();
-			int index =0;
-			if(tok != null) {
-				while(tok.charAt(index) == ' ' || tok.charAt(index) == '\t') {
-					indent += tok.charAt(index);
-					index++;
-				}
-			}
-		}
+		// BUG188636 - just get initial indent from code formatter
+		String indent = getCodeFormatter().createIndentationString(1);
+		// // get indent after 2nd line break
+		// String indent = ""; //$NON-NLS-1$
+		// StringTokenizer st = new StringTokenizer(result, "\r\n", false);
+		// //$NON-NLS-1$
+		// if (st.countTokens() > 1) {
+		// String tok = st.nextToken();
+		// tok = st.nextToken();
+		// int index = 0;
+		// if (tok != null) {
+		// while (tok.charAt(index) == ' ' || tok.charAt(index) == '\t') {
+		// indent += tok.charAt(index);
+		// index++;
+		// }
+		// }
+		// }
 		return indent;
 	}
 
+	private CodeFormatter getCodeFormatter() {
+		if (fCodeFormatter == null)
+			fCodeFormatter = ToolFactory.createCodeFormatter(null);
+		return fCodeFormatter;
+	}
+
 
 	/**
-	 * Combines an array of edits into one MultiTextEdit (with the appropriate coverage region)
+	 * Combines an array of edits into one MultiTextEdit (with the appropriate
+	 * coverage region)
+	 * 
 	 * @param edits
 	 * @return
 	 */
 	private TextEdit createMultiTextEdit(TextEdit[] edits) {
-		
-		if(edits.length == 0)
+
+		if (edits.length == 0)
 			return new MultiTextEdit();
-			
+
 		IRegion region = TextEdit.getCoverage(edits);
 		MultiTextEdit multiEdit = new MultiTextEdit(region.getOffset(), region.getLength());
 		for (int i = 0; i < edits.length; i++) {
@@ -339,88 +364,85 @@
 		}
 		return multiEdit;
 	}
-	
-	
+
+
 	private void addToMultiEdit(TextEdit edit, MultiTextEdit multiEdit) {
-		
+
 		// check for overlap here
 		// discard overlapping edits..
 		// possible exponential performance hit... need a better way...
 		TextEdit[] children = multiEdit.getChildren();
 		for (int i = 0; i < children.length; i++) {
-			if(children[i].covers(edit))
+			if (children[i].covers(edit))
 				// don't add
 				return;
 		}
 		multiEdit.addChild(edit);
 	}
-	
-	
+
+
 	/**
 	 * @param translation
 	 */
 	private void addPositionsToDocuments() {
-		
+
 		// can be null if it's a NullJSPTranslation
-		if(getJavaDocument() != null && getJspDocument() != null) {
+		if (getJavaDocument() != null && getJspDocument() != null) {
 
 			HashMap java2jsp = getJava2JspMap();
 			Iterator it = java2jsp.keySet().iterator();
 			Position javaPos = null;
-			while(it.hasNext()) {
-				javaPos =(Position)it.next();
+			while (it.hasNext()) {
+				javaPos = (Position) it.next();
 				try {
-					
+
 					fJavaDocument.addPosition(javaPos);
-					
-				} catch (BadLocationException e) {
-					if(DEBUG) {
+
+				}
+				catch (BadLocationException e) {
+					if (DEBUG) {
 						System.out.println("tyring to add Java Position:[" + javaPos.offset + ":" + javaPos.length + "] to " + getJavaPath()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$					
-						//System.out.println("substring :[" + fJavaDocument.get().substring(javaPos.offset) + "]"); //$NON-NLS-1$ //$NON-NLS-2$
+						// System.out.println("substring :[" +
+						// fJavaDocument.get().substring(javaPos.offset) +
+						// "]"); //$NON-NLS-1$ //$NON-NLS-2$
 						Logger.logException(e);
 					}
 				}
-				
+
 				try {
-					
-					fJspDocument.addPosition((Position)java2jsp.get(javaPos));
-					
-				} catch (BadLocationException e) {
-					if(DEBUG) {
-						System.out.println("tyring to add JSP Position:[" + ((Position)java2jsp.get(javaPos)).offset + ":" +((Position)java2jsp.get(javaPos)).length + "] to " + getJavaPath()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+					fJspDocument.addPosition((Position) java2jsp.get(javaPos));
+
+				}
+				catch (BadLocationException e) {
+					if (DEBUG) {
+						System.out.println("tyring to add JSP Position:[" + ((Position) java2jsp.get(javaPos)).offset + ":" + ((Position) java2jsp.get(javaPos)).length + "] to " + getJavaPath()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 						Logger.logException(e);
 					}
 				}
 			}
 		}
 	}
-	
+
 	/**
 	 * Recursively gets all child edits
+	 * 
 	 * @param javaEdit
 	 * @return all child edits
 	 */
 	private TextEdit[] getAllEdits(TextEdit javaEdit) {
-		
+
 		List result = new ArrayList();
-		if(javaEdit instanceof MultiTextEdit) {
+		if (javaEdit instanceof MultiTextEdit) {
 			TextEdit[] children = javaEdit.getChildren();
-			for (int i = 0; i < children.length; i++) 
+			for (int i = 0; i < children.length; i++)
 				result.addAll(Arrays.asList(getAllEdits(children[i])));
 		}
-		else 
+		else
 			result.add(javaEdit);
-		return (TextEdit[])result.toArray(new TextEdit[result.size()]);
+		return (TextEdit[]) result.toArray(new TextEdit[result.size()]);
 	}
 
-	public void reconcileCompilationUnit() {
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=87351
-		// the check to reconcile/validate fragments was removed
-		// from here and placed in a class that is called earlier 
-		// in stack trace
-		super.reconcileCompilationUnit();
-	}
-	
 	/**
 	 * @param deltas
 	 * @param jspPos
@@ -431,7 +453,7 @@
 	private void debugReplace(PositionDelta[] deltas, Position jspPos, String replaceText, int i) {
 		String jspChunk;
 		jspChunk = getJspDocument().get().substring(jspPos.offset, jspPos.offset + jspPos.length);
-		if(!deltas[i].isDeleted) {
+		if (!deltas[i].isDeleted) {
 			System.out.println("replacing:"); //$NON-NLS-1$
 			System.out.println("jsp:[" + jspChunk + "]"); //$NON-NLS-1$ //$NON-NLS-2$
 			System.out.println("w/ :[" + replaceText + "]"); //$NON-NLS-1$ //$NON-NLS-2$
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java
index 7b64c8d..2d72c36 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslationUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -12,6 +12,7 @@
 
 import org.eclipse.jdt.core.ICompilationUnit;
 import org.eclipse.jface.text.IDocument;
+import org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP;
 import org.eclipse.text.edits.CopySourceEdit;
 import org.eclipse.text.edits.CopyTargetEdit;
 import org.eclipse.text.edits.DeleteEdit;
@@ -96,6 +97,7 @@
 	public JSPTranslationExtension getTranslation() {
 		if (fTranslation == null) {
 			IDOMModel xmlModel = (IDOMModel) getModelManager().getExistingModelForRead(fDocument);
+			ModelHandlerForJSP.ensureTranslationAdapterFactory(xmlModel);
 			try {
 				IDOMDocument xmlDoc = xmlModel.getDocument();
 
@@ -120,4 +122,4 @@
 	protected IModelManager getModelManager() {
 		return StructuredModelManager.getModelManager();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
index 056811a..b200937 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/JSPTranslator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,9 +18,13 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Set;
 import java.util.Stack;
 
 import javax.servlet.jsp.tagext.VariableInfo;
@@ -42,21 +46,36 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.compiler.IProblem;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.Position;
+import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
 import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
+import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache;
+import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache.PropertyGroup;
+import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
 import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
+import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelper;
 import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager;
 import org.eclipse.jst.jsp.core.internal.taglib.TaglibVariable;
+import org.eclipse.jst.jsp.core.internal.util.FacetModuleCoreSupport;
+import org.eclipse.jst.jsp.core.internal.util.ZeroStructuredDocumentRegion;
 import org.eclipse.jst.jsp.core.jspel.IJSPELTranslator;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.html.core.internal.contentmodel.JSP20Namespace;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
+import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
@@ -64,7 +83,6 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.URIResolver;
 import org.eclipse.wst.sse.core.utils.StringUtils;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
@@ -74,14 +92,13 @@
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 
+import com.ibm.icu.text.MessageFormat;
 import com.ibm.icu.util.StringTokenizer;
 
 /**
  * Translates a JSP document into a HttpServlet. Keeps two way mapping from
- * java translation to the original JSP source, which can be obtained through
+ * Java translation to the original JSP source, which can be obtained through
  * getJava2JspRanges() and getJsp2JavaRanges().
- * 
- * @author pavery
  */
 public class JSPTranslator {
 
@@ -97,42 +114,29 @@
 	private static final String JSP_CORE_PLUGIN_ID = "org.eclipse.jst.jsp.core"; //$NON-NLS-1$
 
 	// for debugging
-	private static final boolean DEBUG;
+	private static final boolean DEBUG = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspjavamapping")); //$NON-NLS-1$  //$NON-NLS-2$
 	private static final boolean DEBUG_SAVE_OUTPUT = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslationstodisk")); //$NON-NLS-1$  //$NON-NLS-2$
 
 	private IJSPELTranslator fELTranslator = null;
 
-	static {
-		String value = Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspjavamapping"); //$NON-NLS-1$
-		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
 	public static final String ENDL = "\n"; //$NON-NLS-1$
 
-	private String fClassHeader = "public class _JSPServlet extends "; //$NON-NLS-1$
-	private String fClassname = "_JSPServlet"; //$NON-NLS-1$
+	String fClassHeader = null;
+	String fClassname = null;
 
-	private String fImplicitImports = "import javax.servlet.*;" + ENDL + //$NON-NLS-1$
-				"import javax.servlet.http.*;" + ENDL + //$NON-NLS-1$
-				"import javax.servlet.jsp.*;" + ENDL + ENDL; //$NON-NLS-1$
+	String fImplicitImports = null;
 
-	private String fServiceHeader = "public void _jspService(javax.servlet.http.HttpServletRequest request," + //$NON-NLS-1$
-				" javax.servlet.http.HttpServletResponse response)" + ENDL + //$NON-NLS-1$
-				"\t\tthrows java.io.IOException, javax.servlet.ServletException {" + ENDL + //$NON-NLS-1$
-				"javax.servlet.jsp.PageContext pageContext = null;" + ENDL + //$NON-NLS-1$
-				"javax.servlet.ServletContext application = null;" + ENDL + //$NON-NLS-1$
-				"javax.servlet.ServletConfig config = null;" + ENDL + //$NON-NLS-1$ 
-				"javax.servlet.jsp.JspWriter out = null;" + ENDL + //$NON-NLS-1$
-				"Object page = null;" + ENDL; //$NON-NLS-1$
+	String fServiceHeader = null;
 
 	private String fSessionVariableDeclaration = "javax.servlet.http.HttpSession session = null;" + ENDL; //$NON-NLS-1$
 	private String fFooter = "}}"; //$NON-NLS-1$
 	private String fException = "Throwable exception = null;"; //$NON-NLS-1$
 	public static final String EXPRESSION_PREFIX = "out.print(\"\"+"; //$NON-NLS-1$
 	public static final String EXPRESSION_SUFFIX = ");"; //$NON-NLS-1$
-	private String fSuperclass = "javax.servlet.http.HttpServlet"; //$NON-NLS-1$
+	String fSuperclass = null;
 
 	private String fTryCatchStart = ENDL + "try {" + ENDL; //$NON-NLS-1$
+	private List fTranslationProblems = new ArrayList();
 	private String fTryCatchEnd = " } catch (java.lang.Exception e) {} " + ENDL; //$NON-NLS-1$
 
 	/** fSourcePosition = position in JSP source */
@@ -141,6 +145,7 @@
 	private int fRelativeOffset = -1;
 	/** fCursorPosition = offset in the translated java document */
 	private int fCursorPosition = -1;
+
 	/** some page directive attributes */
 	private boolean fIsErrorPage, fCursorInExpression = false;
 	private boolean fIsInASession = true;
@@ -185,6 +190,8 @@
 
 	/** used to avoid infinite looping include files */
 	private Stack fIncludes = null;
+	private Set fIncludedPaths = new HashSet(2);
+	private boolean fProcessIncludes = true;
 	/** mostly for helper classes, so they parse correctly */
 	private ArrayList fBlockMarkers = null;
 	/**
@@ -243,6 +250,11 @@
 	 */
 	private String fELTranslatorID;
 
+	public JSPTranslator() {
+		super();
+		init();
+	}
+
 	/**
 	 * configure using an XMLNode
 	 * 
@@ -264,6 +276,7 @@
 			setClassname(className);
 			fClassHeader = "public class " + className + " extends "; //$NON-NLS-1$ //$NON-NLS-2$
 		}
+
 	}
 
 	/**
@@ -364,7 +377,6 @@
 	 * @return
 	 */
 	private String createClassname(IDOMNode node) {
-
 		String classname = ""; //$NON-NLS-1$
 		if (node != null) {
 			String base = node.getModel().getBaseLocation();
@@ -386,6 +398,66 @@
 		return classname;
 	}
 
+	private IJSPProblem createJSPProblem(final int problemEID, final int problemID, final String message, final int start, final int end) {
+		final int line = fStructuredDocument.getLineOfOffset(start);
+		final char[] classname = fClassname.toCharArray();
+
+		/*
+		 * Note: these problems would result in translation errors on the
+		 * server, so the severity is not meant to be controllable
+		 */
+		return new IJSPProblem() {
+			public void setSourceStart(int sourceStart) {
+			}
+
+			public void setSourceLineNumber(int lineNumber) {
+			}
+
+			public void setSourceEnd(int sourceEnd) {
+			}
+
+			public boolean isWarning() {
+				return false;
+			}
+
+			public boolean isError() {
+				return true;
+			}
+
+			public int getSourceStart() {
+				return start;
+			}
+
+			public int getSourceLineNumber() {
+				return line;
+			}
+
+			public int getSourceEnd() {
+				return end;
+			}
+
+			public char[] getOriginatingFileName() {
+				return classname;
+			}
+
+			public String getMessage() {
+				return message;
+			}
+
+			public int getID() {
+				return problemID;
+			}
+
+			public String[] getArguments() {
+				return new String[0];
+			}
+
+			public int getEID() {
+				return problemEID;
+			}
+		};
+	}
+
 	public void setClassname(String classname) {
 		this.fClassname = classname;
 	}
@@ -436,7 +508,6 @@
 		fCursorPosition = -1;
 
 		fIsErrorPage = fCursorInExpression = false;
-		fIsInASession = true;
 
 		fUserCode = new StringBuffer();
 		fUserDeclarations = new StringBuffer();
@@ -466,6 +537,7 @@
 		fDeclarationRanges.clear();
 		fUserELRanges.clear();
 		fIndirectRanges.clear();
+		fIncludedPaths.clear();
 
 		fJspTextBuffer = new StringBuffer();
 
@@ -533,16 +605,16 @@
 
 		fResult.append(fServiceHeader);
 		javaOffset += fServiceHeader.length();
+		// session participant
+		if (fIsInASession) {
+			fResult.append(fSessionVariableDeclaration);
+			javaOffset += fSessionVariableDeclaration.length();
+		}
 		// error page
 		if (fIsErrorPage) {
 			fResult.append(fException);
 			javaOffset += fException.length();
 		}
-		// session participant
-		if(fIsInASession) {
-			fResult.append(fSessionVariableDeclaration);
-			javaOffset += fSessionVariableDeclaration.length();
-		}
 
 
 		fResult.append(fTryCatchStart);
@@ -721,6 +793,10 @@
 		return fResult;
 	}
 
+	public List getTranslationProblems() {
+		return fTranslationProblems;
+	}
+
 	/**
 	 * Only valid after a configure(...), translate(...) or
 	 * translateFromFile(...) call
@@ -730,12 +806,16 @@
 	public final String getJspText() {
 		return fJspTextBuffer.toString();
 	}
-	
+
+	/**
+	 * @deprecated
+	 * @param tagToAdd
+	 */
 	protected void addTaglibVariables(String tagToAdd) {
 		addTaglibVariables(tagToAdd, getCurrentNode());
 	}
 
-	protected void addTaglibVariables(String tagToAdd, IStructuredDocumentRegion customTag) {
+	protected void addTaglibVariables(String tagToAdd, ITextRegionCollection customTag) {
 		IFile f = getFile();
 
 		if (f == null || !f.exists())
@@ -750,51 +830,44 @@
 		String decl = ""; //$NON-NLS-1$
 		if (customTag.getFirstRegion().getType().equals(DOMRegionContext.XML_TAG_OPEN)) {
 			TaglibVariable[] taglibVars = helper.getTaglibVariables(tagToAdd, getStructuredDocument(), customTag);
-			// store for use at end tag
-			fTagToVariableMap.push(tagToAdd, taglibVars);
-
-			// Bug 199047
+			fTranslationProblems.addAll(helper.getProblems(f.getFullPath()));
 			/*
-			 * Add AT_BEGIN variables
+			 * These loops are duplicated intentionally to keep the nesting
+			 * scoped variables from interfering with the others
 			 */
 			for (int i = 0; i < taglibVars.length; i++) {
 				if (taglibVars[i].getScope() == VariableInfo.AT_BEGIN) {
 					decl = taglibVars[i].getDeclarationString();
-					appendToBuffer(decl, fUserCode, false, fCurrentNode);
+					appendToBuffer(decl, fUserCode, false, customTag);
+				}
+				if (taglibVars[i].getScope() == VariableInfo.AT_END) {
+					decl = taglibVars[i].getDeclarationString();
+					fTagToVariableMap.push(tagToAdd, taglibVars);
 				}
 			}
-			
-			/*
-			 * Add NESTED variables 
-			 */
-			StringBuffer text = new StringBuffer();
-			text.append("{ // <"); //$NON-NLS-1$
-			text.append(getRegionName(customTag));
-			text.append(">\n"); //$NON-NLS-1$
-			appendToBuffer(text.toString(), fUserCode, false, customTag); //$NON-NLS-1$
-
 			for (int i = 0; i < taglibVars.length; i++) {
 				if (taglibVars[i].getScope() == VariableInfo.NESTED) {
 					decl = taglibVars[i].getDeclarationString();
-					appendToBuffer(decl, fUserCode, false, fCurrentNode);
+					appendToBuffer("{", fUserCode, false, customTag);
+					appendToBuffer(decl, fUserCode, false, customTag);
+					fTagToVariableMap.push(tagToAdd, taglibVars);
 				}
 			}
-
 			if (customTag.getLastRegion().getType().equals(DOMRegionContext.XML_EMPTY_TAG_CLOSE)) {
-				text = new StringBuffer();
-				text.append("} // </"); //$NON-NLS-1$
-				text.append(getRegionName(customTag));
-				text.append(">\n"); //$NON-NLS-1$
-				appendToBuffer(text.toString(), fUserCode, false, customTag); //$NON-NLS-1$
-				// pop them off since there won't be a separate end tag to do so
-				fTagToVariableMap.pop(tagToAdd);
 				/*
-				 * Add AT_END variables 
+				 * Process NESTED variables backwards so the scopes "unroll"
+				 * correctly.
 				 */
+				for (int i = taglibVars.length; i > 0; i--) {
+					if (taglibVars[i - 1].getScope() == VariableInfo.NESTED) {
+						appendToBuffer("}", fUserCode, false, customTag);
+					}
+				}
+				/* Treat this as the end for empty tags */
 				for (int i = 0; i < taglibVars.length; i++) {
 					if (taglibVars[i].getScope() == VariableInfo.AT_END) {
 						decl = taglibVars[i].getDeclarationString();
-						appendToBuffer(decl, fUserCode, false, fCurrentNode);
+						appendToBuffer(decl, fUserCode, false, customTag);
 					}
 				}
 			}
@@ -804,21 +877,17 @@
 		 * "unroll" correctly.
 		 */
 		else if (customTag.getFirstRegion().getType().equals(DOMRegionContext.XML_END_TAG_OPEN)) {
-			StringBuffer text = new StringBuffer();
-			text.append("} // </"); //$NON-NLS-1$
-			text.append(getRegionName(customTag));
-			text.append(">\n"); //$NON-NLS-1$
-			appendToBuffer(text.toString(), fUserCode, false, customTag); //$NON-NLS-1$
-			// pop the variables
 			TaglibVariable[] taglibVars = (TaglibVariable[]) fTagToVariableMap.pop(tagToAdd);
 			if (taglibVars != null) {
-				/*
-				 * Add AT_END variables 
-				 */
+				for (int i = taglibVars.length; i > 0; i--) {
+					if (taglibVars[i - 1].getScope() == VariableInfo.NESTED) {
+						appendToBuffer("}", fUserCode, false, customTag);
+					}
+				}
 				for (int i = 0; i < taglibVars.length; i++) {
 					if (taglibVars[i].getScope() == VariableInfo.AT_END) {
 						decl = taglibVars[i].getDeclarationString();
-						appendToBuffer(decl, fUserCode, false, fCurrentNode);
+						appendToBuffer(decl, fUserCode, false, customTag);
 					}
 				}
 			}
@@ -829,14 +898,21 @@
 		IFile f = null;
 		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(getStructuredDocument());
 		try {
-			if (sModel != null)
-				f = FileBuffers.getWorkspaceFileAtLocation(new Path(sModel.getBaseLocation()));
+			if (sModel != null) {
+				Path path = new Path(sModel.getBaseLocation());
+				if (path.segmentCount() > 1) {
+					f = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+				}
+				if (f != null && f.isAccessible()) {
+					return f;
+				}
+			}
+			return null;
 		}
 		finally {
 			if (sModel != null)
 				sModel.releaseFromRead();
 		}
-		return f;
 	}
 
 	/*
@@ -856,6 +932,10 @@
 		if (fTagToVariableMap == null) {
 			fTagToVariableMap = new StackMap();
 		}
+		fTranslationProblems.clear();
+
+		setCurrentNode(new ZeroStructuredDocumentRegion(fStructuredDocument, 0));
+		translatePreludes();
 
 		setCurrentNode(fStructuredDocument.getFirstStructuredDocumentRegion());
 
@@ -874,6 +954,10 @@
 			if (getCurrentNode() != null)
 				advanceNextNode();
 		}
+
+		setCurrentNode(new ZeroStructuredDocumentRegion(fStructuredDocument, fStructuredDocument.getLength()));
+		translateCodas();
+
 		buildResult();
 
 		fTagToVariableMap.clear();
@@ -907,6 +991,25 @@
 		}
 	}
 
+	protected void init() {
+		fClassHeader = "public class _JSPServlet extends "; //$NON-NLS-1$
+		fClassname = "_JSPServlet"; //$NON-NLS-1$
+
+		fImplicitImports = "import javax.servlet.*;" + ENDL + //$NON-NLS-1$
+					"import javax.servlet.http.*;" + ENDL + //$NON-NLS-1$
+					"import javax.servlet.jsp.*;" + ENDL + ENDL; //$NON-NLS-1$
+
+		fServiceHeader = "public void _jspService(javax.servlet.http.HttpServletRequest request," + //$NON-NLS-1$
+					" javax.servlet.http.HttpServletResponse response)" + ENDL + //$NON-NLS-1$
+					"\t\tthrows java.io.IOException, javax.servlet.ServletException {" + ENDL + //$NON-NLS-1$
+					"javax.servlet.jsp.PageContext pageContext = null;" + ENDL + //$NON-NLS-1$
+					"javax.servlet.ServletContext application = null;" + ENDL + //$NON-NLS-1$
+					"javax.servlet.ServletConfig config = null;" + ENDL + //$NON-NLS-1$ 
+					"javax.servlet.jsp.JspWriter out = null;" + ENDL + //$NON-NLS-1$
+					"Object page = null;" + ENDL; //$NON-NLS-1$
+		fSuperclass = "javax.servlet.http.HttpServlet"; //$NON-NLS-1$
+	}
+
 	/**
 	 * 
 	 * @return the status of the translator's progrss monitor, false if the
@@ -941,6 +1044,9 @@
 	/**
 	 * translates a region container (and XML JSP container, or <% JSP
 	 * container)
+	 * 
+	 * This method should only be called in this class and for containers in
+	 * the primary structured document as all buffer appends will be direct
 	 */
 	protected void translateRegionContainer(ITextRegionCollection container, int JSPType) {
 
@@ -962,13 +1068,29 @@
 			if (type == DOMRegionContext.BLOCK_TEXT) {
 				// check if it's nested jsp in a script tag...
 				if (region instanceof ITextRegionContainer) {
-					// Bug 126377 - JSP scriptlets enclosed by HTML comment cause validation errors
 					// pass in block text's container & iterator
 					Iterator regionIterator = ((ITextRegionCollection) region).getRegions().iterator();
 					translateJSPNode(region, regionIterator, type, EMBEDDED_JSP);
-
 				}
 				else {
+					/**
+					 * LIMITATION - Normally the script content within a
+					 * script tag is a single document region with a single
+					 * BLOCK_TEXT text region within it. Any JSP scripting
+					 * will be within its own region container (for the sake
+					 * of keeping the scripting open/content/end as a group)
+					 * also of BLOCK_TEXT. That ignores custom tags that might
+					 * be in there, though, as they require proper scoping and
+					 * variable declaration to be performed even though
+					 * they're not proper nodes in the DOM. The only way to
+					 * really do this is to treat the entire script content as
+					 * JSP content on its own, akin to an included segment.
+					 * Further complicating this solution is that tagdependent
+					 * custom tags have their comment marked as BLOCK_TEXT as
+					 * well, so there's no clear way to tell the two cases
+					 * apart.
+					 */
+
 					// ////////////////////////////////////////////////////////////////////////////////
 					// THIS EMBEDDED JSP TEXT WILL COME OUT LATER WHEN
 					// PARTITIONING HAS
@@ -978,6 +1100,11 @@
 					// ////////////////////////////////////////////////////////////////////////////////
 				}
 			}
+			// if (region instanceof ITextRegionCollection &&
+			// ((ITextRegionCollection) region).getNumberOfRegions() > 0) {
+			// translateRegionContainer((ITextRegionCollection) region,
+			// EMBEDDED_JSP);
+			// }
 			if (type != null && isJSP(type)) // <%, <%=, <%!, <%@
 			{
 				// translateJSPNode(region, regions, type, JSPType);
@@ -991,8 +1118,10 @@
 	}
 
 	private void handleScopingIfNecessary(ITextRegionCollection containerRegion) {
-		if (true)
-			return;
+		/*
+		 * 199047 - Braces missing from translation of custom tags not
+		 * defining variables
+		 */
 
 		// code within a custom tag gets its own scope
 		// so if we encounter a start of a custom tag, we add '{'
@@ -1046,9 +1175,20 @@
 		if (tagName == null)
 			return false;
 
-		/* valid for any tag with a ':' and not a JSP prefix - this will cause */
-		if (tagName.indexOf(":") > 0 && !tagName.startsWith("jsp:")) //$NON-NLS-1$  //$NON-NLS-2$
-			return true;
+		JSPSourceParser parser = (JSPSourceParser) fStructuredDocument.getParser();
+		int colonIndex = tagName.indexOf(":");
+		if (colonIndex > 0) {
+			String prefix = tagName.substring(0, colonIndex);
+			if (prefix.equals("jsp")) { //$NON-NLS-1$
+				return false;
+			}
+			TagMarker[] prefixes = (TagMarker[]) parser.getNestablePrefixes().toArray(new TagMarker[0]);
+			for (int i = 0; i < prefixes.length; i++) {
+				if (prefix.equals(prefixes[i].getTagName())) {
+					return true;
+				}
+			}
+		}
 
 		return false;
 	}
@@ -1073,7 +1213,7 @@
 	 * @return
 	 */
 	private void decodeScriptBlock(String blockText, int startOfBlock) {
-		XMLJSPRegionHelper helper = new XMLJSPRegionHelper(this);
+		XMLJSPRegionHelper helper = new XMLJSPRegionHelper(this, false);
 		helper.addBlockMarker(new BlockMarker("jsp:scriptlet", null, DOMJSPRegionContexts.JSP_CONTENT, false)); //$NON-NLS-1$
 		helper.addBlockMarker(new BlockMarker("jsp:expression", null, DOMJSPRegionContexts.JSP_CONTENT, false)); //$NON-NLS-1$
 		helper.addBlockMarker(new BlockMarker("jsp:declaration", null, DOMJSPRegionContexts.JSP_CONTENT, false)); //$NON-NLS-1$
@@ -1141,8 +1281,11 @@
 
 			{
 				String fullTagName = container.getText(r);
-				if (fullTagName.indexOf(':') > -1 && !fullTagName.startsWith("jsp:")) {//$NON-NLS-1$
-					addTaglibVariables(fullTagName); // it may be a custom
+				if (fullTagName.indexOf(':') > -1) {
+					addTaglibVariables(fullTagName, container); // it
+					// may
+					// be a
+					// custom
 					// tag
 				}
 				StringTokenizer st = new StringTokenizer(fullTagName, ":.", false); //$NON-NLS-1$
@@ -1170,7 +1313,7 @@
 								if (directiveName.equals("taglib")) { //$NON-NLS-1$
 									while (r != null && regions.hasNext() && !r.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
 										r = (ITextRegion) regions.next();
-										if(container.getText(r).equals(JSP11Namespace.ATTR_NAME_PREFIX)) {
+										if (container.getText(r).equals(JSP11Namespace.ATTR_NAME_PREFIX)) {
 											String prefix = getAttributeValue(r, regions);
 											if (prefix != null) {
 												handleTaglib(prefix);
@@ -1201,11 +1344,17 @@
 									// see:
 									// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3035
 									// setCurrentNode(getCurrentNode().getNext());
-									if (container != null) {
+									if (getCurrentNode() != null) {
 										// 'regions' contain the attrs
-										translatePageDirectiveAttributes(container, regions);
+										translatePageDirectiveAttributes(regions, getCurrentNode());
 									}
 								}
+								else if (directiveName.equals("tag")) { //$NON-NLS-1$
+									translatePageDirectiveAttributes(regions, getCurrentNode());
+								}
+								else if (directiveName.equals("variable")) { //$NON-NLS-1$
+									translateVariableDirectiveAttributes(regions);
+								}
 							}
 						}
 						else if (jspTagName.equals("include")) { //$NON-NLS-1$
@@ -1363,13 +1512,13 @@
 	private void writeToBuffer(int type, String content, int jspStart, int jspEnd) {
 		switch (type) {
 			case SCRIPTLET :
-				translateScriptletString(content, getCurrentNode(), jspStart, jspEnd - jspStart);
+				translateScriptletString(content, getCurrentNode(), jspStart, jspEnd - jspStart, false);
 				break;
 			case EXPRESSION :
-				translateExpressionString(content, getCurrentNode(), jspStart, jspEnd - jspStart);
+				translateExpressionString(content, getCurrentNode(), jspStart, jspEnd - jspStart, false);
 				break;
 			case DECLARATION :
-				translateDeclarationString(content, getCurrentNode(), jspStart, jspEnd - jspStart);
+				translateDeclarationString(content, getCurrentNode(), jspStart, jspEnd - jspStart, false);
 				break;
 		}
 	}
@@ -1398,7 +1547,7 @@
 	 */
 	protected void translateJSPNode(ITextRegion region, Iterator regions, String type, int JSPType) {
 		if (type == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN && regions != null) {
-			translateDirective(fCurrentNode, regions);
+			translateDirective(regions);
 		}
 		else {
 			ITextRegionCollection contentRegion = null;
@@ -1406,10 +1555,8 @@
 				contentRegion = getCurrentNode();
 			}
 			else if (JSPType == EMBEDDED_JSP && region instanceof ITextRegionCollection) {
-
 				translateEmbeddedJSPInBlock((ITextRegionCollection) region, regions);
 				// ensure the rest of this method won't be called
-				contentRegion = null;
 			}
 			if (contentRegion != null) {
 				if (type == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN) {
@@ -1444,15 +1591,12 @@
 	public IJSPELTranslator getELTranslator() {
 		if (fELTranslator == null) {
 
-			IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(JSP_CORE_PLUGIN_ID, // name
-						// of
-						// plugin
-						// that
-						// exposes
-						// this
-						// extension
-						// point
-						EL_TRANSLATOR_EXTENSION_NAME); // - extension id
+			/*
+			 * name of plugin that exposes this extension point
+			 */
+			IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(JSP_CORE_PLUGIN_ID, EL_TRANSLATOR_EXTENSION_NAME); // -
+			// extension
+			// id
 
 			// Iterate over all declared extensions of this extension point.
 			// A single plugin may extend the extension point more than once,
@@ -1499,7 +1643,8 @@
 	/**
 	 * Pass the ITextRegionCollection which is the embedded region
 	 * 
-	 * @param iterator
+	 * @param regions
+	 *            iterator for collection
 	 */
 	private void translateEmbeddedJSPInBlock(ITextRegionCollection collection, Iterator regions) {
 		ITextRegion region = null;
@@ -1511,7 +1656,9 @@
 		}
 		if (region != null) {
 			translateEmbeddedJSPInAttribute(collection);
-			while(regions.hasNext())
+			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=126377
+			// all of collection was translated so just finish off iterator
+			while (regions.hasNext())
 				regions.next();
 		}
 	}
@@ -1528,12 +1675,6 @@
 		ITextRegion delim = null;
 		ITextRegion content = null;
 		String type = null;
-		if(embeddedRegions.get(0).getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) {
-			Iterator iterator = embeddedRegions.iterator();
-			iterator.next();
-			translateDirective(embeddedContainer, iterator);
-		}
-		else
 		for (int i = 0; i < embeddedRegions.size(); i++) {
 
 			// possible delimiter, check later
@@ -1545,6 +1686,7 @@
 				String regionType = embeddedRegions.get(i + 1).getType();
 				if (regionType == DOMJSPRegionContexts.JSP_CONTENT || regionType == DOMJSPRegionContexts.JSP_EL_CONTENT)
 					content = embeddedRegions.get(i + 1);
+
 			}
 
 			if (content != null) {
@@ -1560,19 +1702,19 @@
 					fLastJSPType = EXPRESSION;
 					// translateExpressionString(embeddedContainer.getText(content),
 					// fCurrentNode, contentStart, content.getLength());
-					translateExpressionString(embeddedContainer.getText(content), embeddedContainer, contentStart, content.getLength());
+					translateExpressionString(embeddedContainer.getText(content), embeddedContainer, contentStart, content.getLength(), false);
 				}
 				else if (type == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN) {
 					fLastJSPType = SCRIPTLET;
 					// translateScriptletString(embeddedContainer.getText(content),
 					// fCurrentNode, contentStart, content.getLength());
-					translateScriptletString(embeddedContainer.getText(content), embeddedContainer, contentStart, content.getLength());
+					translateScriptletString(embeddedContainer.getText(content), embeddedContainer, contentStart, content.getLength(), false);
 				}
 				else if (type == DOMJSPRegionContexts.JSP_DECLARATION_OPEN) {
 					fLastJSPType = DECLARATION;
 					// translateDeclarationString(embeddedContainer.getText(content),
 					// fCurrentNode, contentStart, content.getLength());
-					translateDeclarationString(embeddedContainer.getText(content), embeddedContainer, contentStart, content.getLength());
+					translateDeclarationString(embeddedContainer.getText(content), embeddedContainer, contentStart, content.getLength(), false);
 				}
 				else if (type == DOMJSPRegionContexts.JSP_EL_OPEN) {
 					fLastJSPType = EXPRESSION;
@@ -1594,7 +1736,6 @@
 			}
 			else {
 				type = null;
-				content = null;
 			}
 		}
 	}
@@ -1628,7 +1769,7 @@
 	/**
 	 * /* <%@ %> /* need to pass in the directive tag region
 	 */
-	protected void translateDirective(ITextRegionCollection container, Iterator regions) {
+	protected void translateDirective(Iterator regions) {
 		ITextRegion r = null;
 		String regionText, attrValue = ""; //$NON-NLS-1$
 		while (regions.hasNext() && (r = (ITextRegion) regions.next()) != null && r.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) { // could
@@ -1638,8 +1779,8 @@
 			// "",
 			// skips
 			// attrs?
-			regionText = container.getText(r);
-			if (regionText.indexOf("taglib") > -1) { //$NON-NLS-1$
+			regionText = getCurrentNode().getText(r);
+			if (regionText.equals("taglib")) { //$NON-NLS-1$
 				// add custom tag block markers here
 				handleTaglib();
 				return;
@@ -1653,16 +1794,80 @@
 				while (r != null && regions.hasNext() && !r.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
 					r = (ITextRegion) regions.next();
 				}
-				fileLocation = getAttributeValue(r, regions, container);
+				fileLocation = getAttributeValue(r, regions);
 				if (attrValue != null)
 					handleIncludeFile(fileLocation);
 			}
-			else if (regionText.indexOf("page") > -1) { //$NON-NLS-1$
-				translatePageDirectiveAttributes(container, regions);
+			else if (regionText.equals("page")) { //$NON-NLS-1$
+				translatePageDirectiveAttributes(regions, getCurrentNode());
+			}
+			else if (regionText.equals("tag")) { //$NON-NLS-1$
+				// some attributes overlap, so both are handled in this method
+				translatePageDirectiveAttributes(regions, getCurrentNode());
+			}
+			else if (regionText.equals("variable")) { //$NON-NLS-1$
+				translateVariableDirectiveAttributes(regions);
+			}
+			else if (regionText.equals("attribute")) { //$NON-NLS-1$
+				translateAttributeDirectiveAttributes(regions);
 			}
 		}
 	}
 
+	private void translateAttributeDirectiveAttributes(Iterator regions) {
+		ITextRegion r = null;
+		String attrName, attrValue;
+
+		String varType = "java.lang.String"; //$NON-NLS-1$ // the default class...
+		String varName = null;
+		String description = "";//$NON-NLS-1$ 
+		boolean isFragment = false;
+
+		// iterate all attributes
+		while (regions.hasNext() && (r = (ITextRegion) regions.next()) != null && r.getType() != DOMJSPRegionContexts.JSP_CLOSE) {
+			attrName = attrValue = null;
+			if (r.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
+				attrName = getCurrentNode().getText(r).trim();
+				if (attrName.length() > 0) {
+					if (regions.hasNext() && (r = (ITextRegion) regions.next()) != null && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
+						if (regions.hasNext() && (r = (ITextRegion) regions.next()) != null && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+							attrValue = StringUtils.strip(getCurrentNode().getText(r));
+						}
+						// has equals, but no value?
+					}
+					if (attrName.equals(JSP11Namespace.ATTR_NAME_TYPE)) {
+						varType = attrValue;
+					}
+					else if (attrName.equals(JSP20Namespace.ATTR_NAME_FRAGMENT)) {
+						isFragment = Boolean.valueOf(attrValue).booleanValue();
+					}
+					else if (attrName.equals(JSP11Namespace.ATTR_NAME_NAME)) {
+						varName = attrValue;
+					}
+					else if (attrName.equals(JSP20Namespace.ATTR_NAME_DESCRIPTION)) {
+						description = attrValue;
+					}
+				}
+			}
+		}
+		if (varName != null) {
+			if (isFragment) {
+				// 2.0:JSP.8.5.2
+				varType = "javax.servlet.jsp.tagext.JspFragment";
+			}
+			String declaration = new TaglibVariable(varType, varName, "", description).getDeclarationString(true, TaglibVariable.M_PRIVATE);
+			appendToBuffer(declaration, fUserDeclarations, false, fCurrentNode);
+		}
+	}
+
+	private void translateVariableDirectiveAttributes(Iterator regions) {
+		/*
+		 * Shouldn't create a scripting variable in *this* tag file's
+		 * translation, only in JSP files that use it -
+		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=188780
+		 */
+	}
+
 	/*
 	 * This method should ideally only be called once per run through
 	 * JSPTranslator This is intended for use by inner helper classes that
@@ -1691,10 +1896,11 @@
 				// this check is to be safer
 				if (sdRegion != null && !sdRegion.isDeleted()) {
 					taglibRegions = sdRegion.getRegions().iterator();
-					while (sdRegion != null && !sdRegion.isDeleted() && taglibRegions.hasNext()) {
+					while (!sdRegion.isDeleted() && taglibRegions.hasNext()) {
 						r = (ITextRegion) taglibRegions.next();
 						if (r.getType().equals(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME)) {
-							if (sdRegion.getText(r).equals(JSP12TLDNames.TAGLIB)) {
+							String text = sdRegion.getText(r);
+							if (JSP12TLDNames.TAGLIB.equals(text) || JSP12Namespace.ElementName.DIRECTIVE_TAGLIB.equals(text)) {
 								addBlockMarkers(tracker.getDocument());
 							}
 						}
@@ -1769,21 +1975,10 @@
 	 * @return the value for the attribute name (r), or null if isn't one
 	 */
 	protected String getAttributeValue(ITextRegion r, Iterator remainingRegions) {
-		return getAttributeValue(r, remainingRegions, getCurrentNode());
-	}
-	/**
-	 * If r is an attribute name region, this method will safely return the
-	 * value for that attribute.
-	 * 
-	 * @param r
-	 * @param remainingRegions
-	 * @return the value for the attribute name (r), or null if isn't one
-	 */
-	protected String getAttributeValue(ITextRegion r, Iterator remainingRegions, ITextRegionCollection container) {
 		if (r.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
 			if (remainingRegions.hasNext() && (r = (ITextRegion) remainingRegions.next()) != null && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
 				if (remainingRegions.hasNext() && (r = (ITextRegion) remainingRegions.next()) != null && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-					return StringUtils.stripQuotes(container.getText(r));
+					return StringUtils.stripQuotes(getCurrentNode().getText(r));
 				}
 			}
 		}
@@ -1791,9 +1986,12 @@
 	}
 
 	/**
-	 * takes an emnumeration of the attributes of a directive tag
+	 * takes an iterator of the attributes of a page directive and the
+	 * directive itself. The iterator is used in case it can be optimized, but
+	 * the documentRegion is still required to ensure that the values are
+	 * extracted from the correct text.
 	 */
-	protected void translatePageDirectiveAttributes(ITextRegionCollection container, Iterator regions) {
+	protected void translatePageDirectiveAttributes(Iterator regions, IStructuredDocumentRegion documentRegion) {
 		ITextRegion r = null;
 		String attrName, attrValue;
 		// iterate all attributes
@@ -1801,12 +1999,12 @@
 			attrName = attrValue = null;
 			if (r.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
 
-				attrName = container.getText(r).trim();
+				attrName = documentRegion.getText(r).trim();
 				if (attrName.length() > 0) {
 					if (regions.hasNext() && (r = (ITextRegion) regions.next()) != null && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
 						if (regions.hasNext() && (r = (ITextRegion) regions.next()) != null && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
 
-							attrValue = StringUtils.strip(container.getText(r));
+							attrValue = StringUtils.strip(documentRegion.getText(r));
 						}
 						// has equals, but no value?
 					}
@@ -1817,7 +2015,7 @@
 	}
 
 	/**
-	 * sets the appropriate page directive attribute
+	 * sets the appropriate page/tag directive attribute
 	 */
 	protected void setDirectiveAttribute(String attrName, String attrValue) {
 		if (attrValue == null)
@@ -1832,7 +2030,7 @@
 		}
 		else if (attrName.equals("session")) //$NON-NLS-1$
 		{
-			fIsInASession = "true".equalsIgnoreCase(attrValue); //$NON-NLS-1$
+			fIsInASession = "true".equalsIgnoreCase(attrValue);
 		}
 		else if (attrName.equals("buffer")) //$NON-NLS-1$
 		{
@@ -1848,62 +2046,58 @@
 		}
 		else if (attrName.equals("isErrorPage")) //$NON-NLS-1$
 		{
-			fIsErrorPage = "true".equalsIgnoreCase(attrValue); //$NON-NLS-1$
+			fIsErrorPage = "true".equalsIgnoreCase(attrValue);
 		}
 	}
 
 	protected void handleIncludeFile(String filename) {
-		if (filename != null) {
-			String fileLocation = null;
-			if (getResolver() != null) {
-				fileLocation = (getIncludes().empty()) ? getResolver().getLocationByURI(StringUtils.strip(filename)) : getResolver().getLocationByURI(StringUtils.strip(filename), (String) getIncludes().peek());
-			}
-			else {
-				// shouldn't happen
-				fileLocation = StringUtils.strip(filename);
-			}
-			// hopefully, a resolver is present and has returned a canonical
-			// file path
-			if (!getIncludes().contains(fileLocation) && getBaseLocation() != null && !fileLocation.equals(getBaseLocation())) {
-				getIncludes().push(fileLocation);
-				JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this);
-				boolean parsed = helper.parse(fileLocation);
-				if (!parsed) {
-					Logger.log(Logger.ERROR_DEBUG, "Error: included file " + filename + " not found {" + getBaseLocation() + ")");
+		if (filename != null && fProcessIncludes) {
+			IPath modelPath = getModelPath();
+			IPath basePath = modelPath;
+			if (basePath != null) {
+				/*
+				 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=227576
+				 * 
+				 * The resolution of the included fragment should use the file
+				 * containing the directive as the base reference, not always
+				 * the main JSP being invoked. Verified behavior with Apache
+				 * Tomcat 5.5.20.
+				 */
+				if (!getIncludes().isEmpty()) {
+					basePath = new Path((String) getIncludes().peek());
 				}
-				getIncludes().pop();
+				String filePathString = FacetModuleCoreSupport.resolve(basePath, filename).toString();
+				fIncludedPaths.add(filePathString);
+
+				if (!getIncludes().contains(filePathString) && !filePathString.equals(modelPath.toString())) {
+					getIncludes().push(filePathString);
+					JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this, true);
+					// Should we consider preludes on this segment?
+					helper.parse(filePathString);
+					getIncludes().pop();
+				}
 			}
 		}
 	}
 
-	private URIResolver getResolver() {
-		return (fStructuredModel != null) ? fStructuredModel.getResolver() : null;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	private String getBaseLocation() {
-		if (getResolver() == null)
-			return null;
-		return getResolver().getFileBaseLocation();
-	}
-
 	private Stack getIncludes() {
 		if (fIncludes == null)
 			fIncludes = new Stack();
 		return fIncludes;
 	}
 
-	protected void translateExpressionString(String newText, ITextRegionCollection embeddedContainer, int jspPositionStart, int jspPositionLength) {
+	public Collection getIncludedPaths() {
+		return fIncludedPaths;
+	}
+
+	protected void translateExpressionString(String newText, ITextRegionCollection embeddedContainer, int jspPositionStart, int jspPositionLength, boolean isIndirect) {
 		appendToBuffer(EXPRESSION_PREFIX, fUserCode, false, embeddedContainer);
-		appendToBuffer(newText, fUserCode, true, embeddedContainer, jspPositionStart, jspPositionLength);
+		appendToBuffer(newText, fUserCode, true, embeddedContainer, jspPositionStart, jspPositionLength, isIndirect);
 		appendToBuffer(EXPRESSION_SUFFIX, fUserCode, false, embeddedContainer);
 	}
 
-	protected void translateDeclarationString(String newText, ITextRegionCollection embeddedContainer, int jspPositionStart, int jspPositionLength) {
-		appendToBuffer(newText, fUserDeclarations, true, embeddedContainer, jspPositionStart, jspPositionLength);
+	protected void translateDeclarationString(String newText, ITextRegionCollection embeddedContainer, int jspPositionStart, int jspPositionLength, boolean isIndirect) {
+		appendToBuffer(newText, fUserDeclarations, true, embeddedContainer, jspPositionStart, jspPositionLength, isIndirect);
 		appendToBuffer(ENDL, fUserDeclarations, false, embeddedContainer);
 	}
 
@@ -1915,32 +2109,32 @@
 	 * @param jspPositionStart
 	 * @param jspPositionLength
 	 */
-	protected void translateScriptletString(String newText, ITextRegionCollection embeddedContainer, int jspPositionStart, int jspPositionLength) {
-		appendToBuffer(newText, fUserCode, true, embeddedContainer, jspPositionStart, jspPositionLength);
+	protected void translateScriptletString(String newText, ITextRegionCollection embeddedContainer, int jspPositionStart, int jspPositionLength, boolean isIndirect) {
+		appendToBuffer(newText, fUserCode, true, embeddedContainer, jspPositionStart, jspPositionLength, isIndirect);
 	}
 
 	// the following 3 methods determine the cursor position
 	// <%= %>
 	protected void translateExpression(ITextRegionCollection region) {
 		String newText = getUnescapedRegionText(region, EXPRESSION);
-		appendToBuffer(EXPRESSION_PREFIX, fUserCode, false, fCurrentNode);
+		appendToBuffer(EXPRESSION_PREFIX, fUserCode, false, region);
 		appendToBuffer(newText, fUserCode, true, fCurrentNode);
-		appendToBuffer(EXPRESSION_SUFFIX, fUserCode, false, fCurrentNode);
+		appendToBuffer(EXPRESSION_SUFFIX, fUserCode, false, region);
 	}
 
 	//
 	// <%! %>
 	protected void translateDeclaration(ITextRegionCollection region) {
 		String newText = getUnescapedRegionText(region, DECLARATION);
-		appendToBuffer(newText, fUserDeclarations, true, fCurrentNode);
-		appendToBuffer(ENDL, fUserDeclarations, false, fCurrentNode);
+		appendToBuffer(newText, fUserDeclarations, true, region);
+		appendToBuffer(ENDL, fUserDeclarations, false, region);
 	}
 
 	//
 	// <% %>
 	protected void translateScriptlet(ITextRegionCollection region) {
 		String newText = getUnescapedRegionText(region, SCRIPTLET);
-		appendToBuffer(newText, fUserCode, true, fCurrentNode);
+		appendToBuffer(newText, fUserCode, true, region);
 	}
 
 	/**
@@ -1961,10 +2155,6 @@
 		appendToBuffer(newText, buffer, addToMap, jspReferenceRegion, start, length, false);
 	}
 
-	private void appendToBuffer(String newText, StringBuffer buffer, boolean addToMap, ITextRegionCollection jspReferenceRegion, int jspPositionStart, int jspPositionLength) {
-		appendToBuffer(newText, buffer, addToMap, jspReferenceRegion, jspPositionStart, jspPositionLength, true);
-	}
-
 	/**
 	 * Adds newText to the buffer passed in, and adds to translation mapping
 	 * as specified by the addToMap flag. some special cases to consider (that
@@ -2177,9 +2367,14 @@
 		Position javaTypeRange = new Position(fOffsetInUserCode, type.length());
 		Position javaIdRange = new Position(fOffsetInUserCode + type.length() + 1, id.length());
 		Position javaClassRange = new Position(fOffsetInUserCode + type.length() + 1 + id.length() + 7, 0);
-		if (className.length() >= 4) {
+		/*
+		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=212242 - Check for
+		 * the existence of '(' first.
+		 */
+		int parenPos = -1;
+		if (className.length() >= 4 && (parenPos = className.indexOf('(')) >= 0) {
 			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=86132
-			int classNameLength = className.substring(0, className.indexOf('(')).length();
+			int classNameLength = className.substring(0, parenPos).length();
 			javaClassRange = new Position(fOffsetInUserCode + type.length() + 1 + id.length() + 7, classNameLength);
 		}
 
@@ -2198,7 +2393,7 @@
 			r = regions.get(j);
 			if (r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
 				attrName = jspReferenceRegion.getText(r);
-				if (regions.size() >= j + 2 && regions.get(j + 2).getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+				if (regions.size() > j + 2 && regions.get(j + 2).getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
 					// get attr value
 					r = regions.get(j + 2);
 					attrValue = jspReferenceRegion.getText(r);
@@ -2420,12 +2615,16 @@
 		String attrName = null;
 		String attrValue = null;
 		String id = null;
+		ITextRegion idRegion = null;
 		String type = null;
+		ITextRegion typeRegion = null;
 		String className = null;
+		ITextRegion classnameRegion = null;
+		String beanName = null;
+		ITextRegion beanNameRegion = null;
 
 		Iterator regions = container.getRegions().iterator();
 		while (regions.hasNext() && (r = (ITextRegion) regions.next()) != null && (r.getType() != DOMRegionContext.XML_TAG_CLOSE || r.getType() != DOMRegionContext.XML_EMPTY_TAG_CLOSE)) {
-
 			attrName = attrValue = null;
 			if (r.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
 				attrName = container.getText(r).trim();
@@ -2439,31 +2638,113 @@
 			}
 			// (pa) might need different logic here if we wanna support more
 			if (attrName != null && attrValue != null) {
-				if (attrName.equals("id")) //$NON-NLS-1$
+				if (attrName.equals("id")) {//$NON-NLS-1$
 					id = attrValue;
-				else if (attrName.equals("class")) //$NON-NLS-1$
+					idRegion = r;
+				}
+				else if (attrName.equals("class")) {//$NON-NLS-1$
 					className = attrValue;
-				else if (attrName.equals("type")) //$NON-NLS-1$
+					classnameRegion = r;
+				}
+				else if (attrName.equals("type")) {//$NON-NLS-1$
 					type = attrValue;
+					typeRegion = r;
+				}
+				else if (attrName.equals("beanName")) { //$NON-NLS-1$
+					beanName = attrValue;
+					beanNameRegion = r;
+				}
 			}
-
 		}
-		// has id w/ type and/or classname
-		// Type id = new Classname();
-		// or
-		// Type id = null; // if there is no classname
-		if (id != null && (type != null || className != null)) {
-			if (type == null)
-				type = className;
-			String prefix = type + " " + id + " = "; //$NON-NLS-1$ //$NON-NLS-2$
-			String suffix = "null;" + ENDL; //$NON-NLS-1$
-			if (className != null)
-				suffix = "new " + className + "();" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$
 
-			appendToBuffer(prefix + suffix, fUserCode, true, fCurrentNode);
+		if (id != null) {
+			// The id is not a valid Java identifier
+			if (!isValidJavaIdentifier(id) && idRegion != null) {
+				Object problem = createJSPProblem(IJSPProblem.UseBeanInvalidID, IProblem.ParsingErrorInvalidToken, MessageFormat.format(JSPCoreMessages.JSPTranslator_0, new String[]{id}), container.getStartOffset(idRegion), container.getTextEndOffset(idRegion) - 1);
+				fTranslationProblems.add(problem);
+			}
+			// No Type information is provided
+			if (((type == null && className == null) || (type == null && beanName != null)) && idRegion != null) {
+				Object problem = createJSPProblem(IJSPProblem.UseBeanMissingTypeInfo, IProblem.UndefinedType, NLS.bind(JSPCoreMessages.JSPTranslator_3, new String[]{id}), container.getStartOffset(idRegion), container.getTextEndOffset(idRegion) - 1);
+				fTranslationProblems.add(problem);
+			}
+			// Cannot specify both a class and a beanName
+			if (className != null && beanName != null && beanNameRegion != null) {
+				ITextRegion nameRegion = container.getRegions().get(1);
+				Object problem = createJSPProblem(IJSPProblem.UseBeanAmbiguousType, IProblem.AmbiguousType, JSPCoreMessages.JSPTranslator_2, container.getStartOffset(nameRegion), container.getTextEndOffset(nameRegion) - 1);
+				fTranslationProblems.add(problem);
+			}
+			// Only have a class or a beanName at this point, and potentially
+			// a type
+			// has id w/ type and/or classname/beanName
+			// Type id = new Classname/Beanname();
+			// or
+			// Type id = null; // if there is no classname or beanname
+			if ((type != null || className != null)) {
+				if (type == null) {
+					type = className;
+					typeRegion = classnameRegion;
+				}
+
+				if (!isTypeFound(type)) {
+					Object problem = createJSPProblem(IJSPProblem.F_PROBLEM_ID_LITERAL, IProblem.UndefinedType, MessageFormat.format(JSPCoreMessages.JSPTranslator_1, new String[]{type}), container.getStartOffset(typeRegion), container.getTextEndOffset(typeRegion) - 1);
+					fTranslationProblems.add(problem);
+				}
+				else {
+					String prefix = type + " " + id + " = "; //$NON-NLS-1$ //$NON-NLS-2$
+					String suffix = "null;" + ENDL; //$NON-NLS-1$
+					if (className != null)
+						suffix = "new " + className + "();" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$
+					else if (beanName != null)
+						suffix = "(" + type + ") java.beans.Beans.instantiate(getClass().getClassLoader(), \"" + beanName + "\");" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					appendToBuffer(prefix + suffix, fUserCode, true, fCurrentNode);
+				}
+			}
 		}
 	}
 
+	/**
+	 * @param type
+	 * @return
+	 */
+	private boolean isTypeFound(String typeName) {
+		IType type = null;
+		IProject project = getFile().getProject();
+		try {
+			IJavaProject p = JavaCore.create(project);
+			if (p.exists()) {
+				if (typeName.indexOf('<') > 0 && typeName.indexOf('>') > 0) {
+					StringTokenizer toker = new StringTokenizer(typeName);
+					String generic = toker.nextToken("<");
+					String element = toker.nextToken(">");
+					IType genericType = p.findType(generic);
+					IType elementType = p.findType(element);
+					return genericType!= null && genericType.exists() && elementType!= null && elementType.exists();
+				}
+				type = p.findType(typeName);
+				return type != null && type.exists();
+			}
+		}
+		catch (JavaModelException e) {
+			// Not a Java Project
+		}
+		catch(NoSuchElementException e) {
+			// StringTokenizer failure with unsupported syntax
+		}
+		return true;
+	}
+
+	private boolean isValidJavaIdentifier(String id) {
+		char[] idChars = id.toCharArray();
+		if (idChars.length < 1)
+			return false;
+		boolean isValid = Character.isJavaIdentifierStart(idChars[0]);
+		for (int i = 1; i < idChars.length; i++) {
+			isValid = isValid && Character.isJavaIdentifierPart(idChars[i]);
+		}
+		return isValid;
+	}
+
 	final public int getCursorPosition() {
 		return fCursorPosition;
 	}
@@ -2519,4 +2800,58 @@
 	public IStructuredDocument getStructuredDocument() {
 		return fStructuredDocument;
 	}
-}
\ No newline at end of file
+
+	private IPath getModelPath() {
+		IPath path = null;
+		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(getStructuredDocument());
+		try {
+			if (sModel != null)
+				path = new Path(sModel.getBaseLocation());
+		}
+		finally {
+			if (sModel != null)
+				sModel.releaseFromRead();
+		}
+		return path;
+	}
+
+	private void translateCodas() {
+		fProcessIncludes = false;
+		IPath modelpath = getModelPath();
+		if (modelpath != null) {
+			PropertyGroup[] propertyGroups = DeploymentDescriptorPropertyCache.getInstance().getPropertyGroups(modelpath);
+			for (int j = 0; j < propertyGroups.length; j++) {
+				IPath[] codas = propertyGroups[j].getIncludeCoda();
+				for (int i = 0; i < codas.length; i++) {
+					if (!getIncludes().contains(codas[i].toString()) && !codas[i].equals(modelpath)) {
+						getIncludes().push(codas[i]);
+						JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this, true);
+						helper.parse(codas[i].toString());
+						getIncludes().pop();
+					}
+				}
+			}
+		}
+		fProcessIncludes = true;
+	}
+
+	private void translatePreludes() {
+		fProcessIncludes = false;
+		IPath modelpath = getModelPath();
+		if (modelpath != null) {
+			PropertyGroup[] propertyGroups = DeploymentDescriptorPropertyCache.getInstance().getPropertyGroups(modelpath);
+			for (int j = 0; j < propertyGroups.length; j++) {
+				IPath[] preludes = propertyGroups[j].getIncludePrelude();
+				for (int i = 0; i < preludes.length; i++) {
+					if (!getIncludes().contains(preludes[i].toString()) && !preludes[i].equals(modelpath)) {
+						getIncludes().push(preludes[i]);
+						JSPIncludeRegionHelper helper = new JSPIncludeRegionHelper(this, true);
+						helper.parse(preludes[i].toString());
+						getIncludes().pop();
+					}
+				}
+			}
+		}
+		fProcessIncludes = true;
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/StackMap.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/StackMap.java
index 2afb46f..ecd42a0 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/StackMap.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/StackMap.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007,2008 IBM Corporation and others.
+ * Copyright (c) 2007 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
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslationAdapter.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslationAdapter.java
new file mode 100644
index 0000000..0125fcd
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslationAdapter.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.java;
+
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+
+class TagTranslationAdapter extends JSPTranslationAdapter {
+	TagTranslationAdapter(IDOMModel xmlModel) {
+		super(xmlModel);
+	}
+
+	JSPTranslator createTranslator() {
+		return new TagTranslator();
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslationAdapterFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslationAdapterFactory.java
new file mode 100644
index 0000000..a43e906
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslationAdapterFactory.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.java;
+
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+
+public class TagTranslationAdapterFactory extends JSPTranslationAdapterFactory {
+
+	private TagTranslationAdapter fAdapter = null;
+
+	public TagTranslationAdapterFactory() {
+		super();
+	}
+
+	public INodeAdapterFactory copy() {
+		return new TagTranslationAdapterFactory();
+	}
+
+	protected INodeAdapter createAdapter(INodeNotifier target) {
+		if (target instanceof IDOMNode && fAdapter == null) {
+			fAdapter = new TagTranslationAdapter(((IDOMNode) target).getModel());
+			if (DEBUG) {
+				System.out.println("(+) TagTranslationAdapterFactory [" + this + "] created adapter: " + fAdapter); //$NON-NLS-1$ //$NON-NLS-2$
+			}
+		}
+		return fAdapter;
+	}
+
+	public void release() {
+		if (fAdapter != null) {
+			if (DEBUG) {
+				System.out.println("(-) TagTranslationAdapterFactory [" + this + "] releasing adapter: " + fAdapter); //$NON-NLS-1$ //$NON-NLS-2$
+			}
+			fAdapter.release();
+		}
+		super.release();
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslator.java
new file mode 100644
index 0000000..2d7c17d
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/TagTranslator.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.java;
+
+class TagTranslator extends JSPTranslator {
+
+	public TagTranslator() {
+		super();
+	}
+	
+	protected void init() {
+		fClassHeader = "public class _TagHandler extends "; //$NON-NLS-1$
+		fClassname = "_TagHandler"; //$NON-NLS-1$
+
+		fImplicitImports = "import javax.servlet.*;" + ENDL + //$NON-NLS-1$
+					"import javax.servlet.http.*;" + ENDL + //$NON-NLS-1$
+					"import javax.servlet.jsp.*;" + ENDL + ENDL; //$NON-NLS-1$
+
+		fServiceHeader = "public void doTag() throws JspException, java.io.IOException, IllegalStateException, SkipPageException {" + //$NON-NLS-1$
+					"javax.servlet.http.HttpServletResponse response = null;" + ENDL + //$NON-NLS-1$
+					"javax.servlet.http.HttpServletRequest request = null;" + ENDL + //$NON-NLS-1$
+					"JspContext jspContext = null;" + ENDL + //$NON-NLS-1$
+					"javax.servlet.ServletContext application = null;" + ENDL + //$NON-NLS-1$
+					"javax.servlet.jsp.JspWriter out = null;" + ENDL + //$NON-NLS-1$
+					"javax.servlet.ServletConfig config = null;" + ENDL; //$NON-NLS-1$ 
+
+		fSuperclass = "javax.servlet.jsp.tagext.SimpleTagSupport"; //$NON-NLS-1$
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
index 7cc00fa..0535b36 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/XMLJSPRegionHelper.java
@@ -10,27 +10,27 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.java;
 
-import java.io.InputStream;
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.jst.jsp.core.internal.Logger;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker;
 import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
 import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
+import org.eclipse.jst.jsp.core.internal.util.FileContentCache;
 import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
 import org.eclipse.wst.sse.core.internal.ltk.parser.StructuredDocumentRegionHandler;
+import org.eclipse.wst.sse.core.internal.ltk.parser.TagMarker;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
 import org.eclipse.wst.sse.core.utils.StringUtils;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
@@ -38,8 +38,9 @@
 
 
 /**
- * Parser/helper class for JSPTranslator.  Used for parsing XML-JSP regions (in a script block)
- * A lot of logic borrowed from TLDCMDocumentManager.  There should be only one XMLJSPRegionHelper per text file
+ * Parser/helper class for JSPTranslator. Used for parsing XML-JSP regions (in
+ * a script block) A lot of logic borrowed from TLDCMDocumentManager. There
+ * should be only one XMLJSPRegionHelper per text file
  * 
  * @author pavery
  */
@@ -47,7 +48,8 @@
 	private final JSPTranslator fTranslator;
 	protected JSPSourceParser fLocalParser = null;
 	protected String fTextToParse = null;
-	// need this if not at the start of the document (eg. parsing just a script block)
+	// need this if not at the start of the document (eg. parsing just a
+	// script block)
 	protected int fStartOfTextToParse = 0;
 	// name of the open tag that was last handled (if we are interested in it)
 	protected String fTagname = null;
@@ -56,10 +58,16 @@
 	protected String fStrippedText = ""; //$NON-NLS-1$
 	// for reconciling cursor position later
 	int fPossibleOwner = JSPTranslator.SCRIPTLET;
+	/**
+	 * Determines whether translated source appends are indicated as
+	 * "indirect", affecting how offsets are mapped.
+	 */
+	boolean fAppendAsIndirectSource;
 
-	public XMLJSPRegionHelper(JSPTranslator translator) {
+	public XMLJSPRegionHelper(JSPTranslator translator, boolean appendAsIndirectSource) {
 		getLocalParser().addStructuredDocumentRegionHandler(this);
 		this.fTranslator = translator;
+		fAppendAsIndirectSource = appendAsIndirectSource;
 	}
 
 	protected JSPSourceParser getLocalParser() {
@@ -90,27 +98,38 @@
 	/*
 	 * parse an entire file
 	 * 
-	 * @param filename
-	 * @return
+	 * @param filename @return
 	 */
-	public boolean parse(String filename) {
+	public boolean parse(String filePath) {
 		getLocalParser().removeStructuredDocumentRegionHandler(this);
 		// from outer class
 		List blockMarkers = this.fTranslator.getBlockMarkers();
 		IStructuredDocument document = StructuredDocumentFactory.getNewStructuredDocumentInstance(getLocalParser());
-		String contents = getContents(filename);
-		if(contents == null)
+		String contents = getContents(filePath);
+		if (contents == null)
 			return false;
 		// this adds the current markers from the outer class list
 		// to this parser so parsing works correctly
 		for (int i = 0; i < blockMarkers.size(); i++) {
 			addBlockMarker((BlockMarker) blockMarkers.get(i));
 		}
+		// RATLC01139770
+//		getLocalParser().getNestablePrefixes().addAll(((JSPSourceParser)fTranslator.getStructuredDocument().getParser()).getNestablePrefixes());
+		TLDCMDocumentManager documentManager = this.fTranslator.getTLDCMDocumentManager();
+		if (documentManager != null) {
+			List trackers = documentManager.getTaglibTrackers();
+			for (Iterator it = trackers.iterator(); it.hasNext();) {
+				TaglibTracker tracker = (TaglibTracker) it.next();
+				String prefix = tracker.getPrefix();
+				getLocalParser().getNestablePrefixes().add(new TagMarker(prefix));
+			}
+		}
+
 		reset(contents);
-//		forceParse();
+		// forceParse();
 		document.set(contents);
 		IStructuredDocumentRegion cursor = document.getFirstStructuredDocumentRegion();
-		while(cursor != null) {
+		while (cursor != null) {
 			nodeParsed(cursor);
 			cursor = cursor.getNext();
 		}
@@ -120,23 +139,22 @@
 
 
 	/*
-	 * listens to parser node parsed events
-	 * adds to local scriplet, expression, declaration buffers
-	 * determines which type of region the cursor is in, and adjusts cursor offset accordingly 
+	 * listens to parser node parsed events adds to local scriplet,
+	 * expression, declaration buffers determines which type of region the
+	 * cursor is in, and adjusts cursor offset accordingly
 	 */
 	public void nodeParsed(IStructuredDocumentRegion sdRegion) {
 
 		try {
-			
+
 			handleScopingIfNecessary(sdRegion);
-			
 			if (isJSPEndRegion(sdRegion)) {
-				fTagname = null;
 				String nameStr = getRegionName(sdRegion);
 				if (isPossibleCustomTag(nameStr)) {
 					// this custom tag may define variables
 					this.fTranslator.addTaglibVariables(nameStr, sdRegion);
 				}
+				fTagname = null;
 			}
 			else if (isJSPStartRegion(sdRegion)) {
 				String nameStr = getRegionName(sdRegion);
@@ -146,23 +164,23 @@
 						this.fTranslator.addTaglibVariables(nameStr, sdRegion);
 					}
 				}
-
 				if (isJSPRegion(nameStr))
 					fTagname = nameStr;
 				else
 					fTagname = null;
-				
+
 
 				// this section assumes important content (to translate)
 				// IS the opening tag
-				
+
 				// handle include and directive
-				if(fTagname != null && sdRegion.getFirstRegion().getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) {
-					processOtherRegions(sdRegion);	
+				if (fTagname != null && sdRegion.getFirstRegion().getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) {
+					processOtherRegions(sdRegion);
 				}
 
+
 				// handle jsp:useBean
-				if(fTagname != null && fTagname.equals(JSP11Namespace.ElementName.USEBEAN)) {
+				if (fTagname != null && fTagname.equals(JSP11Namespace.ElementName.USEBEAN)) {
 					processUseBean(sdRegion);
 				}
 			}
@@ -190,10 +208,10 @@
 		}
 		catch (NullPointerException e) {
 			// logging this exception that I've seen a couple of times...
-			// seems to happen during shutdown of unit tests, at which 
+			// seems to happen during shutdown of unit tests, at which
 			// point Logger has already been unloaded
 			try {
-			Logger.logException("XMLJSPRegionHelper: exception in node parsing", e); //$NON-NLS-1$
+				Logger.logException("XMLJSPRegionHelper: exception in node parsing", e); //$NON-NLS-1$
 			}
 			catch (NoClassDefFoundError ex) {
 				// do nothing, since we're just ending
@@ -203,35 +221,33 @@
 
 
 	private void handleScopingIfNecessary(IStructuredDocumentRegion sdRegion) {
-		if(true)
-			return;
-
+		/* 199047 - Braces missing from translation of custom tags not defining variables */
 		// fix to make sure custom tag block have their own scope
 		// we add '{' for custom tag open and '}' for custom tag close
 		// in the translation
-		if(sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_TAG_OPEN) {
-			if(!isSelfClosingTag(sdRegion)) {
+		if (sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_TAG_OPEN) {
+			if (!isSelfClosingTag(sdRegion)) {
 				String nameStr = getRegionName(sdRegion);
-				if(isPossibleCustomTag(nameStr)) {
+				if (isPossibleCustomTag(nameStr)) {
 					startScope(nameStr);
 				}
 			}
 		}
-		else if(sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN) {
+		else if (sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN) {
 			String nameStr = getRegionName(sdRegion);
-			if(isPossibleCustomTag(nameStr)) {
+			if (isPossibleCustomTag(nameStr)) {
 				endScope(nameStr);
 			}
 		}
 	}
-	
+
 	private boolean isSelfClosingTag(ITextRegionCollection containerRegion) {
-		
-		if(containerRegion == null)
+
+		if (containerRegion == null)
 			return false;
-		
+
 		ITextRegionList regions = containerRegion.getRegions();
-		ITextRegion r = regions.get(regions.size()-1);
+		ITextRegion r = regions.get(regions.size() - 1);
 		return r.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE;
 	}
 
@@ -241,7 +257,7 @@
 		text.append("{ // <"); //$NON-NLS-1$
 		text.append(tagName);
 		text.append(">\n"); //$NON-NLS-1$
-		this.fTranslator.translateScriptletString(text.toString(), currentNode, currentNode.getStartOffset(), currentNode.getLength()); //$NON-NLS-1$
+		this.fTranslator.translateScriptletString(text.toString(), currentNode, currentNode.getStartOffset(), currentNode.getLength(), fAppendAsIndirectSource); //$NON-NLS-1$
 
 	}
 
@@ -251,7 +267,7 @@
 		text.append("} // </"); //$NON-NLS-1$
 		text.append(tagName);
 		text.append(">\n"); //$NON-NLS-1$
-		this.fTranslator.translateScriptletString(text.toString(), currentNode, currentNode.getStartOffset(), currentNode.getLength()); //$NON-NLS-1$
+		this.fTranslator.translateScriptletString(text.toString(), currentNode, currentNode.getStartOffset(), currentNode.getLength(), fAppendAsIndirectSource); //$NON-NLS-1$
 
 	}
 
@@ -280,28 +296,28 @@
 	protected void processDeclaration(IStructuredDocumentRegion sdRegion) {
 		prepareText(sdRegion);
 		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
-		this.fTranslator.translateDeclarationString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		this.fTranslator.translateDeclarationString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength(), fAppendAsIndirectSource);
 		fPossibleOwner = JSPTranslator.DECLARATION;
 	}
 
 	protected void processExpression(IStructuredDocumentRegion sdRegion) {
 		prepareText(sdRegion);
 		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
-		this.fTranslator.translateExpressionString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		this.fTranslator.translateExpressionString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength(), fAppendAsIndirectSource);
 		fPossibleOwner = JSPTranslator.EXPRESSION;
 	}
 
 	protected void processScriptlet(IStructuredDocumentRegion sdRegion) {
 		prepareText(sdRegion);
 		IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
-		this.fTranslator.translateScriptletString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength());
+		this.fTranslator.translateScriptletString(fStrippedText, currentNode, currentNode.getStartOffset(), currentNode.getLength(), fAppendAsIndirectSource);
 		fPossibleOwner = JSPTranslator.SCRIPTLET;
 	}
 
 	/*
 	 * Substitutes values for entity references, strips CDATA tags, and keeps
-	 * track of string length(s) for cursor position calculation later.
-	 * @param sdRegion
+	 * track of string length(s) for cursor position calculation later. @param
+	 * sdRegion
 	 */
 	protected void prepareText(IStructuredDocumentRegion sdRegion) {
 		fTextBefore = fTextToParse.substring(sdRegion.getStartOffset(), sdRegion.getEndOffset());
@@ -316,19 +332,31 @@
 			beanClass = getAttributeValue("class", sdRegion); //$NON-NLS-1$
 			beanType = getAttributeValue("type", sdRegion); //$NON-NLS-1$
 			beanId = getAttributeValue("id", sdRegion); //$NON-NLS-1$
-			
+
 			if (beanId != null && (beanType != null || beanClass != null)) {
-				if (beanType.equals("")) //$NON-NLS-1$
-				    beanType = beanClass;
-				String prefix = beanType + " " + beanId + " = "; //$NON-NLS-1$ //$NON-NLS-2$
+				String prefix = null;
+				if (beanType.length() != 0) {
+					/* a type was specified */
+					prefix = beanType + " " + beanId + " = "; //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				else {
+					/* no type was specified, use the concrete class value */
+					prefix = beanClass + " " + beanId + " = "; //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				/*
+				 * Define as null by default. If a concrete class was
+				 * specified, supply a default constructor invocation instead.
+				 */
 				String suffix = "null;\n"; //$NON-NLS-1$
-				if (beanClass != null)
+				// 186771 - JSP Validator problem with included useBean
+				if (beanClass.length() > 0) {
 					suffix = "new " + beanClass + "();\n"; //$NON-NLS-1$ //$NON-NLS-2$
+				}
 				beanDecl = prefix + suffix;
-			}	
+			}
 
 			IStructuredDocumentRegion currentNode = fTranslator.getCurrentNode();
-			this.fTranslator.translateScriptletString(beanDecl, currentNode, currentNode.getStartOffset(), currentNode.getLength());
+			this.fTranslator.translateScriptletString(beanDecl, currentNode, currentNode.getStartOffset(), currentNode.getLength(), fAppendAsIndirectSource);
 			fPossibleOwner = JSPTranslator.SCRIPTLET;
 		}
 	}
@@ -353,24 +381,28 @@
 		else if (isTaglibDirective(fTagname)) {
 			// also add the ones created here to the parent document
 			String prefix = getAttributeValue("prefix", sdRegion); //$NON-NLS-1$
-			List docs = this.fTranslator.getTLDCMDocumentManager().getCMDocumentTrackers(prefix, this.fTranslator.getCurrentNode().getStartOffset());
-			Iterator it = docs.iterator();
-			Iterator elements = null;
-			CMNode node = null;
-			CMDocument doc = null;
-			BlockMarker marker = null;
-			while (it.hasNext()) {
-				doc = (CMDocument) it.next();
-				elements = doc.getElements().iterator();
-				while (elements.hasNext()) {
-					node = (CMNode) elements.next();
-					marker = new BlockMarker(node.getNodeName(), null, DOMJSPRegionContexts.JSP_CONTENT, true);
-					// global scope is OK because we have encountered this <@taglib> directive
-					// so it all markers from it should will be in scope
-					// add to this local parser
-					addBlockMarker(marker);
-					// add to outer class marker list, for 
-					this.fTranslator.getBlockMarkers().add(marker);
+			TLDCMDocumentManager documentManager = this.fTranslator.getTLDCMDocumentManager();
+			if (documentManager != null) {
+				List docs = documentManager.getCMDocumentTrackers(prefix, this.fTranslator.getCurrentNode().getStartOffset());
+				Iterator it = docs.iterator();
+				Iterator elements = null;
+				CMNode node = null;
+				CMDocument doc = null;
+				BlockMarker marker = null;
+				while (it.hasNext()) {
+					doc = (CMDocument) it.next();
+					elements = doc.getElements().iterator();
+					while (elements.hasNext()) {
+						node = (CMNode) elements.next();
+						marker = new BlockMarker(node.getNodeName(), null, DOMJSPRegionContexts.JSP_CONTENT, true);
+						// global scope is OK because we have encountered this
+						// <@taglib> directive
+						// so it all markers from it should will be in scope
+						// add to this local parser
+						addBlockMarker(marker);
+						// add to outer class marker list, for
+						this.fTranslator.getBlockMarkers().add(marker);
+					}
 				}
 			}
 		}
@@ -378,21 +410,9 @@
 
 	protected void processPageDirective(IStructuredDocumentRegion sdRegion) {
 		if (isPageDirective(fTagname)) {
-			while (sdRegion != null) {
-				if (sdRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME)
-					break;
-				sdRegion = sdRegion.getPrevious();
-			}
-			String importValue = getAttributeValue("import", sdRegion); //$NON-NLS-1$
-			if (importValue != "") { //$NON-NLS-1$
-				// had to add "false" parameter to ensure these 
-				// imports don't get added to jsp <-> java map (since they are from an included file)
-				// https://bugs.eclipse.org/bugs/show_bug.cgi?id=81687
-				this.fTranslator.addImports(importValue, false);
-			}
-			fTranslator.translatePageDirectiveAttributes(sdRegion, sdRegion.getRegions().iterator());
+			this.fTranslator.translatePageDirectiveAttributes(sdRegion.getRegions().iterator(), sdRegion);
 		}
-	}	
+	}
 
 	/*
 	 * convenience method to get an attribute value from attribute name
@@ -421,18 +441,20 @@
 		return StringUtils.stripQuotes(attrValue);
 	}
 
-	// these methods determine what content gets added to the local scriplet, expression, declaration buffers
+	// these methods determine what content gets added to the local scriplet,
+	// expression, declaration buffers
 	/*
-	 * return true for elements whose contents we might want to add to the java file we are building
+	 * return true for elements whose contents we might want to add to the
+	 * java file we are building
 	 */
-	private boolean isJSPEndRegion(IStructuredDocumentRegion sdRegion) {
-		return (sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN);
-	}
-
 	protected boolean isJSPStartRegion(IStructuredDocumentRegion sdRegion) {
 		return (sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_TAG_OPEN || sdRegion.getFirstRegion().getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN);
 	}
 
+	private boolean isJSPEndRegion(IStructuredDocumentRegion sdRegion) {
+		return (sdRegion.getFirstRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN);
+	}
+
 	protected boolean isJSPRegion(String tagName) {
 		return isDeclaration(tagName) || isExpression(tagName) || isScriptlet(tagName) || isUseBean(tagName) || isIncludeDirective(tagName) || isPossibleCustomTag(tagName) || isTaglibDirective(tagName) || isPageDirective(tagName);
 	}
@@ -458,7 +480,22 @@
 	}
 
 	protected boolean isPossibleCustomTag(String tagName) {
-		return tagName.indexOf(":") > 0 && !tagName.startsWith("jsp:"); //$NON-NLS-1$  //$NON-NLS-2$
+		int colonIndex = tagName.indexOf(":");
+		if (colonIndex > 0) {
+			String prefix = tagName.substring(0, colonIndex);
+			if (prefix.equals("jsp")) { //$NON-NLS-1$
+				return false;
+			}
+			if (prefix.length() > 0) {
+				TagMarker[] prefixes = (TagMarker[]) fLocalParser.getNestablePrefixes().toArray(new TagMarker[0]);
+				for (int i = 0; i < prefixes.length; i++) {
+					if (prefix.equals(prefixes[i].getTagName())) {
+						return true;
+					}
+				}
+			}
+		}
+		return false;
 	}
 
 	protected boolean isTaglibDirective(String tagName) {
@@ -473,9 +510,9 @@
 
 		String nameStr = ""; //$NON-NLS-1$
 		ITextRegionList regions = sdRegion.getRegions();
-		for(int i=0; i<regions.size(); i++) {
+		for (int i = 0; i < regions.size(); i++) {
 			ITextRegion r = regions.get(i);
-			if(r.getType() == DOMRegionContext.XML_TAG_NAME) {
+			if (r.getType() == DOMRegionContext.XML_TAG_NAME) {
 				nameStr = fTextToParse.substring(sdRegion.getStartOffset(r), sdRegion.getTextEndOffset(r));
 				break;
 			}
@@ -486,46 +523,11 @@
 	/**
 	 * get the contents of a file as a String
 	 * 
-	 * @param fileName
+	 * @param filePath - the path to the file
 	 * @return the contents, null if the file could not be found
 	 */
-	protected String getContents(String fileName) {
-		StringBuffer s = new StringBuffer();
-		int c = 0;
-		int count = 0;
-		InputStream is = null;
-		try {
-			IPath filePath = new Path(fileName);
-			IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(filePath);
-			if(f != null && !f.exists()) {
-				f = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(filePath);
-			}
-            if (f != null && f.exists()) {
-    			is = f.getContents();
-    			while ((c = is.read()) != -1) {
-    				count++;
-    				s.append((char) c);
-    			}
-            }
-            else {
-            	// error condition, file could not be found
-            	return null;
-            }
-		}
-		catch (Exception e) {
-			if (Debug.debugStructuredDocument)
-				e.printStackTrace();
-		}
-		finally {
-			try {
-				if (is != null) {
-					is.close();
-				}
-			}
-			catch (Exception e) {
-				// nothing to do
-			}
-		}
-		return s.toString();
+	protected String getContents(String filePath) {
+		IPath path = new Path(filePath);
+		return FileContentCache.getInstance().getContents(path.makeAbsolute());
 	}
-}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ASTStart.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ASTStart.java
index 3a117e5..2fe1e50 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ASTStart.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ASTStart.java
@@ -1,12 +1,12 @@
-/* Gopyright (c) 2005 BEA Systems and others.
+/*******************************************************************************
+ * Copyright (c) 2001, 2005 BEA Systems 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:
- *     BEA Systems - initial implementation
- *     
+ *     BEA Systems - initial API and implementation
  *******************************************************************************/
 
 package org.eclipse.jst.jsp.core.internal.java.jspel;
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGenerator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGenerator.java
index 462ae6f..ef40a9e 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGenerator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGenerator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 BEA Systems and others.
+ * Copyright (c) 2005, 2006 BEA Systems 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
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGeneratorVisitor.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGeneratorVisitor.java
index e488b6a..d8cb3a2 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGeneratorVisitor.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/ELGeneratorVisitor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 BEA Systems and others.
+ * Copyright (c) 2005, 2006 BEA Systems 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
@@ -8,6 +8,10 @@
  * Contributors:
  *     BEA Systems - initial implementation
  *     
+ *     Bug 154474 EL: 'and', 'or', ... operator
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154474
+ *     Bernhard Huemer <bernhard.huemer@gmail.com>
+ *     
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.java.jspel;
 
@@ -90,6 +94,9 @@
 		fOperatorMap.put("le", "<="); //$NON-NLS-1$ //$NON-NLS-2$
 		fOperatorMap.put("mod", "%"); //$NON-NLS-1$ //$NON-NLS-2$
 		fOperatorMap.put("eq", "=="); //$NON-NLS-1$ //$NON-NLS-2$
+		fOperatorMap.put("and", "&&"); //$NON-NLS-1$ //$NON-NLS-2$
+		fOperatorMap.put("or", "||"); //$NON-NLS-1$ //$NON-NLS-2$
+		fOperatorMap.put("not", "!"); //$NON-NLS-1$ //$NON-NLS-2$
 	}
 	
 	/**
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParserTokenManager.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParserTokenManager.java
index cc1e711..50b04d0 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParserTokenManager.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELParserTokenManager.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 BEA Systems and others.
+ * Copyright (c) 2005, 2006 BEA Systems 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
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELTranslator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELTranslator.java
index 8ba5eb3..745f9e6 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELTranslator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/jspel/JSPELTranslator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 BEA Systems and others.
+ * Copyright (c) 2005, 2006 BEA Systems 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
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/IndexWorkspaceJob.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/IndexWorkspaceJob.java
index 7b9ac0d..2bd3ffa 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/IndexWorkspaceJob.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/IndexWorkspaceJob.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -147,8 +147,7 @@
 				e.printStackTrace();
 		}
 		finally {
-			if(monitor != null)
-				monitor.done();
+			monitor.done();
 		}
 		long finish = System.currentTimeMillis();
 		if(DEBUG)
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPIndexManager.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPIndexManager.java
index e3bfbed..cd976e5 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPIndexManager.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPIndexManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,6 +33,8 @@
 import org.eclipse.core.runtime.jobs.IJobChangeEvent;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.runtime.jobs.JobChangeAdapter;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.internal.core.JavaModelManager;
 import org.eclipse.jdt.internal.core.index.Index;
 import org.eclipse.jdt.internal.core.search.indexing.IndexManager;
@@ -156,9 +158,8 @@
 			// performance
 			// checking name from the delta before getting
 			// resource because it's lighter
-			int numSegments = delta.getFullPath().segmentCount();
-			String filename = delta.getFullPath().segment(numSegments - 1);
-			if (getJspContentType().isAssociatedWith(filename)) {
+			String filename = delta.getFullPath().lastSegment();
+			if (filename != null && getJspContentType().isAssociatedWith(filename)) {
 				IResource r = delta.getResource();
 				if (r != null && r.exists() && r.getType() == IResource.FILE) {
 					this.jspFiles.put(r.getFullPath(), r);
@@ -178,7 +179,7 @@
 
 		private void deleteIndex(IFile folder) {
 			// cleanup index
-			IndexManager im = JavaModelManager.getJavaModelManager().getIndexManager();
+			IndexManager im = JavaModelManager.getIndexManager();
 			IPath folderPath = folder.getFullPath();
 			IPath indexLocation = JSPSearchSupport.getInstance().computeIndexLocation(folderPath);
 			im.removeIndex(indexLocation);
@@ -258,15 +259,19 @@
 						setCanceledState();
 						return Status.CANCEL_STATUS;
 					}
+					IFile file = filesToBeProcessed[lastFileCursor];
 					try {
-						ss.addJspFile(filesToBeProcessed[lastFileCursor]);
-						// JSP Indexer processing n files
-						processingNFiles = NLS.bind(JSPCoreMessages.JSPIndexManager_2, new String[]{Integer.toString((filesToBeProcessed.length - lastFileCursor))});
-						monitor.subTask(processingNFiles + " - " + filesToBeProcessed[lastFileCursor].getName()); //$NON-NLS-1$
-						monitor.worked(1);
+						IJavaProject project = JavaCore.create(file.getProject());
+						if (project.exists()) {
+							ss.addJspFile(file);
+							// JSP Indexer processing n files
+							processingNFiles = NLS.bind(JSPCoreMessages.JSPIndexManager_2, new String[]{Integer.toString((filesToBeProcessed.length - lastFileCursor))});
+							monitor.subTask(processingNFiles + " - " + file.getName()); //$NON-NLS-1$
+							monitor.worked(1);
 
-						if (DEBUG) {
-							System.out.println("JSPIndexManager Job added file: " + filesToBeProcessed[lastFileCursor].getName()); //$NON-NLS-1$
+							if (DEBUG) {
+								System.out.println("JSPIndexManager Job added file: " + file.getName()); //$NON-NLS-1$
+							}
 						}
 					}
 					catch (Exception e) {
@@ -284,7 +289,7 @@
 						// and only log a certain amt of the same one,
 						// otherwise skip it.
 						if (!frameworkIsShuttingDown()) {
-							String filename = filesToBeProcessed[lastFileCursor] != null ? filesToBeProcessed[lastFileCursor].getFullPath().toString() : ""; //$NON-NLS-1$
+							String filename = file != null ? file.getFullPath().toString() : ""; //$NON-NLS-1$
 							Logger.logException("JSPIndexer problem indexing:" + filename, e); //$NON-NLS-1$
 						}
 					}
@@ -505,7 +510,7 @@
 	// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=5091
 	// makes sure IndexManager is aware of our indexes
 	void saveIndexes() {
-		IndexManager indexManager = JavaModelManager.getJavaModelManager().getIndexManager();
+		IndexManager indexManager = JavaModelManager.getIndexManager();
 		IPath jspModelWorkingLocation = JSPSearchSupport.getInstance().getModelJspPluginWorkingLocation();
 
 		File folder = new File(jspModelWorkingLocation.toOSString());
@@ -719,4 +724,4 @@
 		return initializing;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPPathIndexer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPPathIndexer.java
index 3919f96..9afdda9 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPPathIndexer.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPPathIndexer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchDocument.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchDocument.java
index 78a7f81..78332d1 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchDocument.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -28,8 +28,8 @@
 import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapterFactory;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationExtension;
+import org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.exceptions.UnsupportedCharsetExceptionWithDetail;
 import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
@@ -147,8 +147,7 @@
 	 * @param sm
 	 */
 	private void setupAdapterFactory(IStructuredModel sm) {
-		JSPTranslationAdapterFactory factory = new JSPTranslationAdapterFactory();
-		sm.getFactoryRegistry().addFactory(factory);
+		ModelHandlerForJSP.ensureTranslationAdapterFactory(sm);
 	}
 
 	/**
@@ -255,4 +254,4 @@
 		// TODO Auto-generated method stub
 		return null;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchParticipant.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchParticipant.java
index 81a3d68..6e84b2b 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchParticipant.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchParticipant.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -103,4 +103,4 @@
 		// never gets called?
 		return null;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchScope.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchScope.java
index 49cc26d..9e5cd4f 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchScope.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchScope.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -104,9 +104,7 @@
 	}
 
 	public IPath[] enclosingProjectsAndJars() {
-
-		// pa_TODO
-		return null;
+		return (IPath[]) fResourcePaths.toArray(new IPath[fResourcePaths.size()]);
 	}
 
 	public boolean includesBinaries() {
@@ -124,4 +122,4 @@
 	public void setIncludesClasspaths(boolean includesClasspaths) {
 		// do nothing
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchSupport.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchSupport.java
index ce48e1a..398982a 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchSupport.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JSPSearchSupport.java
@@ -1,15 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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.java.search;
 
+import java.io.File;
 import java.util.zip.CRC32;
 
 import org.eclipse.core.resources.IFile;
@@ -468,7 +469,7 @@
     //how can we make sure participant indexLocations are updated at startup?
     public final IPath computeIndexLocation(IPath containerPath) {
 
-        String indexLocation = null;
+        IPath indexLocation = null;
         // we don't want to inadvertently use a JDT Index
         // we want to be sure to use the Index from the JSP location
         //Object obj = indexLocations.get(containerPath);
@@ -482,14 +483,14 @@
             String fileName = Long.toString(this.fChecksumCalculator.getValue()) + ".index"; //$NON-NLS-1$
             // this is the only difference from
             // IndexManager#computeIndexLocation(...)
-            indexLocation = getModelJspPluginWorkingLocation().append(fileName).toOSString();
+            indexLocation = getModelJspPluginWorkingLocation().append(fileName);
 
             // pa_TODO need to add to java path too, so JDT search support knows
             // there should be a non internal way to do this.
             // https://bugs.eclipse.org/bugs/show_bug.cgi?id=77564
-            JavaModelManager.getJavaModelManager().getIndexManager().indexLocations.put(containerPath, indexLocation);
+            JavaModelManager.getIndexManager().indexLocations.put(containerPath, indexLocation);
         //}
-        return new Path(indexLocation);
+        return indexLocation;
     }
 
     // copied from JDT IndexManager
@@ -498,7 +499,8 @@
         if (this.fJspPluginLocation != null)
             return this.fJspPluginLocation;
 
-        IPath stateLocation = JSPCorePlugin.getDefault().getStateLocation();
+        // Append the folder name "jspsearch" to keep the state location area cleaner
+        IPath stateLocation = JSPCorePlugin.getDefault().getStateLocation().append("jspsearch");
 
         // pa_TODO workaround for
         // https://bugs.eclipse.org/bugs/show_bug.cgi?id=62267
@@ -507,6 +509,16 @@
         if (device != null && device.charAt(0) == '/')
             stateLocation = stateLocation.setDevice(device.substring(1));
 
+        // ensure that it exists on disk
+        File folder = new File(stateLocation.toOSString());
+		if (!folder.isDirectory()) {
+			try {
+				folder.mkdir();
+			}
+			catch (SecurityException e) {
+			}
+		}
+
         return this.fJspPluginLocation = stateLocation;
     }
 
@@ -539,4 +551,4 @@
 
         return this.fMonitor;
     }
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JavaSearchDocumentDelegate.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JavaSearchDocumentDelegate.java
index 83f13d1..2e07148 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JavaSearchDocumentDelegate.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/java/search/JavaSearchDocumentDelegate.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/EmbeddedTypeStateData.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/EmbeddedTypeStateData.java
index 87d76a4..9ee8a41 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/EmbeddedTypeStateData.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/EmbeddedTypeStateData.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -37,4 +37,4 @@
 		return oldHandler;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/JSPModelLoader.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/JSPModelLoader.java
index 104344f..a646956 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/JSPModelLoader.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/JSPModelLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -13,11 +13,10 @@
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.Reader;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.filebuffers.ITextFileBuffer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
@@ -47,6 +46,7 @@
 import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
 import org.eclipse.wst.html.core.internal.text.StructuredTextPartitionerForHTML;
 import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
+import org.eclipse.wst.sse.core.internal.document.DocumentReader;
 import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
 import org.eclipse.wst.sse.core.internal.document.StructuredDocumentFactory;
 import org.eclipse.wst.sse.core.internal.ltk.modelhandler.EmbeddedTypeHandler;
@@ -63,7 +63,6 @@
 import org.eclipse.wst.sse.core.internal.text.BasicStructuredDocument;
 import org.eclipse.wst.sse.core.internal.util.Assert;
 import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.DocumentInputStream;
 import org.eclipse.wst.xml.core.internal.DebugAdapterFactory;
 import org.eclipse.wst.xml.core.internal.document.DOMModelImpl;
 import org.eclipse.wst.xml.core.internal.propagate.PropagatingAdapterFactoryImpl;
@@ -224,58 +223,35 @@
 	private IContentDescription getContentDescription(IDocument doc) {
 		if (doc == null)
 			return null;
-		DocumentInputStream in = new DocumentInputStream(doc);
-		return getContentDescription(in);
-	}
-
-	/**
-	 * 
-	 * @param filePath
-	 * @return the content description, or null if there's no buffer for the
-	 *         filepath
-	 */
-	private IContentDescription getContentDescription(String filePath) {
-		if (filePath == null)
-			return null;
-
-		IDocument doc = null;
-		ITextFileBuffer buf = FileBuffers.getTextFileBufferManager().getTextFileBuffer(new Path(filePath));
-		if (buf != null) {
-			doc = buf.getDocument();
-		}
-
-		IContentDescription contentDescription = null;
-		if (doc != null) {
-			contentDescription = getContentDescription(doc);
-		}
-		return contentDescription;
+		DocumentReader reader = new DocumentReader(doc);
+		return getContentDescription(reader);
 	}
 
 	/**
 	 * Returns content description for an input stream Assumes it's JSP
 	 * content. Closes the input stream when finished.
 	 * 
-	 * @param in
+	 * @param reader
 	 * @return the IContentDescription for in, or null if in is null
 	 */
-	private IContentDescription getContentDescription(InputStream in) {
+	private IContentDescription getContentDescription(Reader reader) {
 
-		if (in == null)
+		if (reader == null)
 			return null;
 
 		IContentDescription desc = null;
 		try {
 
 			IContentType contentTypeJSP = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
-			desc = contentTypeJSP.getDescriptionFor(in, IContentDescription.ALL);
+			desc = contentTypeJSP.getDescriptionFor(reader, IContentDescription.ALL);
 		}
 		catch (IOException e) {
 			Logger.logException(e);
 		}
 		finally {
-			if (in != null) {
+			if (reader != null) {
 				try {
-					in.close();
+					reader.close();
 				}
 				catch (IOException e) {
 					Logger.logException(e);
@@ -492,17 +468,22 @@
 		EmbeddedTypeHandler embeddedHandler = pageDirectiveAdapter.getEmbeddedType();
 		return embeddedHandler;
 	}
-
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.sse.core.internal.model.AbstractModelLoader#initEmbeddedTypePre(org.eclipse.wst.sse.core.internal.provisional.IStructuredModel)
+	 */
 	protected void initEmbeddedTypePre(IStructuredModel model) {
+		JSPModelLoader.this.initEmbeddedTypePre(model, model.getStructuredDocument());
+	}
+
+	protected void initEmbeddedTypePre(IStructuredModel model, IStructuredDocument structuredDocument) {
 
 		// note: this will currently only work for models backed by files
 		EmbeddedTypeHandler embeddedContentType = null;
 		IDOMModel domModel = (IDOMModel) model;
 
-		String possibleFileBaseLocation = model.getBaseLocation();
-
 		if (embeddedContentType == null) {
-			IContentDescription desc = getContentDescription(possibleFileBaseLocation);
+			IContentDescription desc = getContentDescription(structuredDocument);
 			if (desc != null) {
 				Object prop = null;
 
@@ -545,16 +526,18 @@
 	}
 
 	/**
-	 * Method initEmbeddedType.
+	 * As part of the model cloning process, ensure that the new model has the
+	 * same embedded content type handler as the old model, and that it is
+	 * properly initialized
 	 */
 	protected void initEmbeddedType(IStructuredModel oldModel, IStructuredModel newModel) {
 		EmbeddedTypeHandler existingEmbeddedType = getEmbeddedType(oldModel);
-		EmbeddedTypeHandler newEmbeddedContentType = existingEmbeddedType.newInstance();
 		if (existingEmbeddedType == null) {
-			initEmbeddedTypePre(newModel);
+			initEmbeddedTypePre(newModel, newModel.getStructuredDocument());
 			initEmbeddedTypePost(newModel);
 		}
 		else {
+			EmbeddedTypeHandler newEmbeddedContentType = existingEmbeddedType.newInstance();
 			// initEmbeddedType(newModel);
 			initCloneOfEmbeddedType(newModel, existingEmbeddedType, newEmbeddedContentType);
 			setLanguageInPageDirective(newModel);
@@ -634,12 +617,12 @@
 	public IStructuredModel createModel(IStructuredModel oldModel) {
 		IStructuredModel model = super.createModel(oldModel);
 		// For JSPs, the ModelQueryAdapter must be "attached" to the document
-		// before content is set in the model, so taglib initization can
+		// before content is set in the model, so taglib initialization can
 		// take place.
 		// In this "clone model" case, we create a ModelQuery adapter
 		// create a new instance from the old data. Note: I think this
-		// "forced fit" only works here since the implimentaiton of
-		// ModelQueryAdatper does not
+		// "forced fit" only works here since the implementation of
+		// ModelQueryAdapter does not
 		// have to be released.
 
 		ModelQueryAdapter modelQueryAdapter = getModelQueryAdapter(model);
@@ -662,4 +645,4 @@
 		return modelQueryAdapter;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/ModelHandlerForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/ModelHandlerForJSP.java
index 0ad55b1..b139f25 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/ModelHandlerForJSP.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/ModelHandlerForJSP.java
@@ -1,26 +1,34 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.modelhandler;
 
+import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Preferences;
+import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
 import org.eclipse.jst.jsp.core.internal.encoding.JSPDocumentHeadContentDetector;
 import org.eclipse.jst.jsp.core.internal.encoding.JSPDocumentLoader;
+import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
+import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapterFactory;
+import org.eclipse.jst.jsp.core.internal.java.TagTranslationAdapterFactory;
 import org.eclipse.jst.jsp.core.internal.parser.JSPSourceParser;
+import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
 import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
 import org.eclipse.wst.sse.core.internal.ltk.modelhandler.AbstractModelHandler;
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
 import org.eclipse.wst.sse.core.internal.provisional.IModelLoader;
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 
 public class ModelHandlerForJSP extends AbstractModelHandler {
 
@@ -63,4 +71,43 @@
 		return new JSPDocumentLoader();
 	}
 
-}
\ No newline at end of file
+	public static void ensureTranslationAdapterFactory(IStructuredModel sm) {
+		if (sm.getFactoryRegistry().getFactoryFor(IJSPTranslation.class) == null) {
+			/*
+			 * Check for tag/tagx files, otherwise add the JSP translation
+			 * factory for better compatibility with other possible subtypes
+			 * of JSP.
+			 */
+			IContentType thisContentType = Platform.getContentTypeManager().getContentType(sm.getContentTypeIdentifier());
+			IContentType tagContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSPTAG);
+			if (thisContentType.isKindOf(tagContentType)) {
+				INodeAdapterFactory factory = new TagTranslationAdapterFactory();
+				sm.getFactoryRegistry().addFactory(factory);
+			}
+			else {
+				INodeAdapterFactory factory = null;
+//				if (false) {
+//					IContentType textContentType = Platform.getContentTypeManager().getContentType(IContentTypeManager.CT_TEXT);
+//					IContentType jspContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
+//					/*
+//					 * This IAdapterManager call is temporary placeholder code
+//					 * that should not be relied upon in any way!
+//					 */
+//					if (thisContentType.isKindOf(jspContentType)) {
+//						IContentType testContentType = thisContentType;
+//						INodeAdapterFactory holdFactory = null;
+//						while (!testContentType.equals(textContentType) && holdFactory == null) {
+//							holdFactory = (INodeAdapterFactory) Platform.getAdapterManager().getAdapter(testContentType.getId(), IJSPTranslation.class.getName());
+//							testContentType = testContentType.getBaseType();
+//						}
+//					}
+//				}
+				if (factory == null) {
+					factory = new JSPTranslationAdapterFactory();
+				}
+
+				sm.getFactoryRegistry().addFactory(factory);
+			}
+		}
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/ModelHandlerForTag.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/ModelHandlerForTag.java
new file mode 100644
index 0000000..1cb5f63
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/ModelHandlerForTag.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.modelhandler;
+
+import org.eclipse.wst.sse.core.internal.provisional.IModelLoader;
+
+public class ModelHandlerForTag extends ModelHandlerForJSP {
+
+	/**
+	 * Needs to match what's in plugin registry. In fact, can be overwritten
+	 * at run time with what's in registry! (so should never be 'final')
+	 */
+	static String AssociatedContentTypeID = "org.eclipse.jst.jsp.core.tagsource"; //$NON-NLS-1$
+	/**
+	 * Needs to match what's in plugin registry. In fact, can be overwritten
+	 * at run time with what's in registry! (so should never be 'final')
+	 */
+	private static String ModelHandlerID = "org.eclipse.jst.jsp.core.modelhandler.tag"; //$NON-NLS-1$
+
+
+	public ModelHandlerForTag() {
+		super();
+		setId(ModelHandlerID);
+		setAssociatedContentTypeId(AssociatedContentTypeID);
+	}
+
+	public IModelLoader getModelLoader() {
+		return new TagModelLoader();
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/TagModelLoader.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/TagModelLoader.java
new file mode 100644
index 0000000..b13da79
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelhandler/TagModelLoader.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.modelhandler;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jst.jsp.core.internal.modelquery.ModelQueryAdapterFactoryForTag;
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
+import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
+
+public class TagModelLoader extends JSPModelLoader {
+
+	public TagModelLoader() {
+	}
+
+	public List getAdapterFactories() {
+		List factories = super.getAdapterFactories();
+		/*
+		 * Replace the default JSP model query by using our own factory
+		 */
+
+		Iterator i = factories.iterator();
+		while (i.hasNext()) {
+			if (((INodeAdapterFactory) i.next()).isFactoryForType(ModelQueryAdapter.class)) {
+				i.remove();
+			}
+		}
+
+		factories.add(new ModelQueryAdapterFactoryForTag());
+		return factories;
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryAdapterImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryAdapterImpl.java
index b3e02bf..6350e54 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryAdapterImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryAdapterImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,4 +22,4 @@
 	public JSPModelQueryAdapterImpl(CMDocumentCache cmDocumentCache, ModelQuery modelQuery, URIResolver idResolver) {
 		super(cmDocumentCache, modelQuery, idResolver);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryAssociationProvider.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryAssociationProvider.java
index b7b1273..c689f5c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryAssociationProvider.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryAssociationProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -13,6 +13,7 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.SimpleAssociationProvider;
 
 /**
+ * @deprecated
  */
 public class JSPModelQueryAssociationProvider extends SimpleAssociationProvider {
 
@@ -23,4 +24,4 @@
 	public JSPModelQueryAssociationProvider() {
 		super(new JSPModelQueryCMProvider());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryCMProvider.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryCMProvider.java
index 8f83675..5b77a58 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryCMProvider.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryCMProvider.java
@@ -1,25 +1,27 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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.modelquery;
 
-
-
 import java.util.List;
 
+import org.eclipse.core.runtime.Path;
 import org.eclipse.jst.jsp.core.internal.contentmodel.JSPCMDocumentFactory;
 import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
+import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache;
+import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryCMProvider;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.w3c.dom.Node;
 
@@ -37,8 +39,19 @@
 	 * CMDocument is appropriate for the DOM Node.
 	 */
 	public CMDocument getCorrespondingCMDocument(Node node) {
-		CMDocument jcmdoc = JSPCMDocumentFactory.getCMDocument();
-
+		CMDocument jcmdoc = null;
+		if (node instanceof IDOMNode) {
+			IDOMModel model = ((IDOMNode) node).getModel();
+			String modelPath = model.getBaseLocation();
+			if (modelPath != null && !IModelManager.UNMANAGED_MODEL.equals(modelPath)) {
+				float version = DeploymentDescriptorPropertyCache.getInstance().getJSPVersion(new Path(modelPath));
+				jcmdoc = JSPCMDocumentFactory.getCMDocument(version);
+			}
+		}
+		if (jcmdoc == null) {
+			jcmdoc = JSPCMDocumentFactory.getCMDocument();
+		}
+		
 		CMDocument result = null;
 		try {
 			if (node.getNodeType() == Node.ELEMENT_NODE) {
@@ -71,4 +84,4 @@
 		}
 		return result;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryImpl.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryImpl.java
index 1f9dacf..18ee575 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryImpl.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/JSPModelQueryImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -25,6 +25,7 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
 import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.SimpleAssociationProvider;
 import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
@@ -37,7 +38,7 @@
 	private HashMap embeddedModelQueries = new HashMap();
 
 	public JSPModelQueryImpl(IStructuredModel model, URIResolver resolver) {
-		super(new JSPModelQueryAssociationProvider());
+		super(new SimpleAssociationProvider(new JSPModelQueryCMProvider()));
 		jspModel = model;
 	}
 
@@ -159,4 +160,4 @@
 	public ModelQuery internalTestOnly_getEmbeddedModelQuery(Node node) {
 		return getEmbeddedModelQuery(node);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/ModelQueryAdapterFactoryForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/ModelQueryAdapterFactoryForJSP.java
index 4cb7251..5149774 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/ModelQueryAdapterFactoryForJSP.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/ModelQueryAdapterFactoryForJSP.java
@@ -1,18 +1,20 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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.modelquery;
 
 import java.io.File;
+import java.net.URI;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -60,44 +62,79 @@
 	 * createAdapter method comment.
 	 */
 	protected INodeAdapter createAdapter(INodeNotifier target) {
-
 		if (Debug.displayInfo)
 			System.out.println("-----------------------ModelQueryAdapterFactoryForJSP.createAdapter" + target); //$NON-NLS-1$
 		if (modelQueryAdapterImpl == null) {
 			if (target instanceof IDOMNode) {
 				IDOMNode xmlNode = (IDOMNode) target;
 				IStructuredModel model = stateNotifier = xmlNode.getModel();
-				String baseLocation = model.getBaseLocation();
-				// continue only if the location is known
-				if (baseLocation != null) {
+				if (model.getBaseLocation() != null) {
 					stateNotifier.addModelStateListener(this);
-					CMDocumentCache cmDocumentCache = new CMDocumentCache();
-					File file = new Path(model.getBaseLocation()).toFile();
-					if (file.exists()) {
-						baseLocation = file.getAbsolutePath();
-					}
-					else {
-						IPath basePath = new Path(model.getBaseLocation());
-						IPath derivedPath = null;
-						if (basePath.segmentCount() > 1)
-							derivedPath = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath).getLocation();
-						else
-							derivedPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(basePath);
-						if (derivedPath != null) {
-							baseLocation = derivedPath.toString();
+				}
+
+				org.eclipse.wst.sse.core.internal.util.URIResolver resolver = model.getResolver();
+				if (Debug.displayInfo)
+					System.out.println("----------------ModelQueryAdapterFactoryForJSP... baseLocation : " + resolver.getFileBaseLocation()); //$NON-NLS-1$
+
+				/**
+				 * XMLCatalogIdResolver currently requires a filesystem
+				 * location string. Customarily this will be what is in the
+				 * deprecated SSE URIResolver and required by the Common URI
+				 * Resolver.
+				 */
+				URIResolver idResolver = null;
+				if (resolver != null) {
+					idResolver = new XMLCatalogIdResolver(resolver.getFileBaseLocation(), resolver);
+				}
+				else {
+					/*
+					 * 203649 - this block may be necessary due to ordering of
+					 * setting the resolver into the model
+					 */
+					String baseLocation = null;
+					String modelsBaseLocation = model.getBaseLocation();
+					if (modelsBaseLocation != null) {
+						File file = new Path(modelsBaseLocation).toFile();
+						if (file.exists()) {
+							baseLocation = file.getAbsolutePath();
+						}
+						else {
+							IPath basePath = new Path(model.getBaseLocation());
+							IResource derivedResource = null;
+							if (basePath.segmentCount() > 1)
+								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
+							else
+								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getProject(basePath.segment(0));
+							IPath derivedPath = derivedResource.getLocation();
+							if (derivedPath != null) {
+								baseLocation = derivedPath.toString();
+							}
+							else {
+								URI uri = derivedResource.getLocationURI();
+								if (uri != null) {
+									baseLocation = uri.toString();
+								}
+							}
+						}
+						if(baseLocation == null) {
+							baseLocation = modelsBaseLocation;
 						}
 					}
-					URIResolver resolver = new XMLCatalogIdResolver(baseLocation, model.getResolver());
-
-					ModelQuery modelQuery = new JSPModelQueryImpl(model, resolver);
-					modelQuery.setEditMode(ModelQuery.EDIT_MODE_UNCONSTRAINED);
-					modelQueryAdapterImpl = new JSPModelQueryAdapterImpl(cmDocumentCache, modelQuery, resolver);
+					idResolver = new XMLCatalogIdResolver(baseLocation, null);
 				}
+
+				ModelQuery modelQuery = createModelQuery(model, idResolver);
+				modelQuery.setEditMode(ModelQuery.EDIT_MODE_UNCONSTRAINED);
+				modelQueryAdapterImpl = new JSPModelQueryAdapterImpl(new CMDocumentCache(), modelQuery, idResolver);
 			}
 		}
 		return modelQueryAdapterImpl;
 	}
 
+	ModelQuery createModelQuery(IStructuredModel model, URIResolver resolver) {
+		return new JSPModelQueryImpl(model, resolver);
+	}
+
 	/**
 	 * @see IModelStateListener#modelAboutToBeChanged(IStructuredModel)
 	 */
@@ -151,19 +188,30 @@
 		String baseLocation = model.getBaseLocation();
 		IFile baseFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(model.getBaseLocation()));
 		if (baseFile != null) {
-			baseLocation = baseFile.getLocation().toString();
+			if (baseFile.getLocation() != null) {
+				baseLocation = baseFile.getLocation().toString();
+			}
+			if (baseLocation == null && baseFile.getLocationURI() != null) {
+				baseLocation = baseFile.getLocationURI().toString();
+			}
+			if (baseLocation == null) {
+				baseLocation = baseFile.getFullPath().toString();
+			}
+		}
+		else {
+			baseLocation = model.getBaseLocation();
 		}
 		modelQueryAdapterImpl.setIdResolver(new XMLCatalogIdResolver(baseLocation, model.getResolver()));
 	}
 
 	public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
 		// TODO Auto-generated method stub
-		
+
 	}
 
 	public void modelReinitialized(IStructuredModel structuredModel) {
 		updateResolver(structuredModel);
-		
+
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/ModelQueryAdapterFactoryForTag.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/ModelQueryAdapterFactoryForTag.java
new file mode 100644
index 0000000..443c8eb
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/ModelQueryAdapterFactoryForTag.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.modelquery;
+
+import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.ModelQueryImpl;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.SimpleAssociationProvider;
+
+public class ModelQueryAdapterFactoryForTag extends ModelQueryAdapterFactoryForJSP {
+
+	public ModelQueryAdapterFactoryForTag() {
+	}
+
+	public ModelQueryAdapterFactoryForTag(Object key, boolean registerAdapters) {
+		super(key, registerAdapters);
+	}
+
+	public INodeAdapterFactory copy() {
+		return new ModelQueryAdapterFactoryForTag(getAdapterKey(), isShouldRegisterAdapter());
+	}
+
+	ModelQuery createModelQuery(IStructuredModel model, URIResolver resolver) {
+		return new ModelQueryImpl(new SimpleAssociationProvider(new TagModelQueryCMProvider()));
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/TagModelQueryCMProvider.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/TagModelQueryCMProvider.java
new file mode 100644
index 0000000..a411467
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/modelquery/TagModelQueryCMProvider.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.modelquery;
+
+
+
+import java.util.List;
+
+import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
+import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
+import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryCMProvider;
+import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.w3c.dom.Node;
+
+/**
+ * CMDocument provider for HTML and JSP documents.
+ */
+public class TagModelQueryCMProvider implements ModelQueryCMProvider {
+
+	protected TagModelQueryCMProvider() {
+		super();
+	}
+
+	/**
+	 * Returns the CMDocument that corresponds to the DOM Node. or null if no
+	 * CMDocument is appropriate for the DOM Node.
+	 */
+	public CMDocument getCorrespondingCMDocument(Node node) {
+		CMDocument tagdoc = HTMLCMDocumentFactory.getCMDocument(CMDocType.TAG20_DOC_TYPE);
+
+		CMDocument result = null;
+		try {
+			if (node.getNodeType() == Node.ELEMENT_NODE) {
+				String elementName = node.getNodeName();
+
+				// test to see if this node belongs to JSP's CMDocument (case
+				// sensitive)
+				CMElementDeclaration dec = (CMElementDeclaration) tagdoc.getElements().getNamedItem(elementName);
+				if (dec != null) {
+					result = tagdoc;
+				}
+			}
+
+			String prefix = node.getPrefix();
+
+			if (result == null && prefix != null && prefix.length() > 0 && node instanceof IDOMNode) {
+				// check position dependent
+				IDOMNode xmlNode = (IDOMNode) node;
+				TLDCMDocumentManager tldmgr = TaglibController.getTLDCMDocumentManager(xmlNode.getStructuredDocument());
+				if (tldmgr != null) {
+					List documents = tldmgr.getCMDocumentTrackers(node.getPrefix(), xmlNode.getStartOffset());
+					// there shouldn't be more than one cmdocument returned
+					if (documents != null && documents.size() > 0)
+						result = (CMDocument) documents.get(0);
+				}
+			}
+		}
+		catch (Exception e) {
+			e.printStackTrace();
+		}
+		if (result == null) {
+			result = tagdoc;
+		}
+		return result;
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPDirectiveStructuredDocumentRegion.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPDirectiveStructuredDocumentRegion.java
index 522c493..963a70d 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPDirectiveStructuredDocumentRegion.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPDirectiveStructuredDocumentRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,4 +31,4 @@
 	public StructuredDocumentEvent updateModel(Object requester, String changes, int requestStart, int lengthToReplace, IStructuredDocumentRegion flatnode) {
 		return null;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPReParser.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPReParser.java
index f463600..fcb0642 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPReParser.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPReParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -366,4 +366,4 @@
 		return super.quickCheck();
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPSourceParser.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPSourceParser.java
index fdb1db0..280e3ff 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPSourceParser.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/JSPSourceParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -417,4 +417,4 @@
 		((JSPTokenizer) getTokenizer()).removeNestablePrefix(tagName);
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPParserRegionFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPParserRegionFactory.java
index 17ee237..0d36dae 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPParserRegionFactory.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPParserRegionFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -34,4 +34,4 @@
 			newRegion = super.createToken(context, start, textLength, length, lang, surroundingTag);
 		return newRegion;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPStructuredRegionFactory.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPStructuredRegionFactory.java
index 16be426..498ed94 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPStructuredRegionFactory.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPStructuredRegionFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,4 +31,4 @@
 		return instance;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java
index 2fed20d..b424476 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/parser/internal/JSPTokenizer.java
@@ -1,7 +1,7 @@
-/* The following code was generated by JFlex 1.2.2 on 4/29/08 9:05 PM */
+/* The following code was generated by JFlex 1.2.2 on 10/24/07 5:16 AM */
 
 /*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
@@ -35,8 +35,8 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 4/29/08 9:05 PM from the specification file
- * <tt>file:/E:/wtp-1.5/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
+ * on 10/24/07 5:16 AM from the specification file
+ * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
  */
 public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts {
 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java
index a0f009e..09edd42 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceInitializer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 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
@@ -16,6 +16,7 @@
 import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
 import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
 import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
+import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
 
 /**
  * Sets default values for JSP Core preferences
@@ -41,5 +42,36 @@
 		// this could be made smarter by actually looking up the content
 		// type's valid extensions
 		node.put(JSPCorePreferenceNames.DEFAULT_EXTENSION, "jsp"); //$NON-NLS-1$
+
+		node.putInt(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_DUPLICATE_PREFIXES_DIFFERENT_URIS, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_DUPLICATE_PREFIXES_SAME_URIS, ValidationMessage.IGNORE);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_MISSING_PREFIX, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_MISSING_URI_OR_TAGDIR, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_UNRESOLVABLE_URI_OR_TAGDIR, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_PAGE_SUPERCLASS_NOT_FOUND, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_INCLUDE_NO_FILE_SPECIFIED, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_INCLUDE_FILE_NOT_FOUND, ValidationMessage.ERROR);
+
+		node.putInt(JSPCorePreferenceNames.VALIDATION_JAVA_LOCAL_VARIABLE_NEVER_USED, ValidationMessage.IGNORE);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_JAVA_ARGUMENT_IS_NEVER_USED, ValidationMessage.IGNORE);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_JAVA_NULL_LOCAL_VARIABLE_REFERENCE, ValidationMessage.IGNORE);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_JAVA_POTENTIAL_NULL_LOCAL_VARIABLE_REFERENCE, ValidationMessage.IGNORE);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_JAVA_UNUSED_IMPORT, ValidationMessage.IGNORE);
+
+		node.putInt(JSPCorePreferenceNames.VALIDATION_EL_SYNTAX, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_EL_LEXER, ValidationMessage.IGNORE);
+
+		node.putInt(JSPCorePreferenceNames.VALIDATION_ACTIONS_SEVERITY_MISSING_REQUIRED_ATTRIBUTE, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_ACTIONS_SEVERITY_UNKNOWN_ATTRIBUTE, ValidationMessage.WARNING);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_ACTIONS_SEVERITY_NON_EMPTY_INLINE_TAG, ValidationMessage.WARNING);
+
+		node.putInt(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TEI_VALIDATION_MESSAGE, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TEI_CLASS_NOT_FOUND, ValidationMessage.WARNING);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TEI_CLASS_NOT_INSTANTIATED, ValidationMessage.WARNING);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TEI_CLASS_RUNTIME_EXCEPTION, ValidationMessage.WARNING);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TAG_HANDLER_CLASS_NOT_FOUND, ValidationMessage.WARNING);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_TRANSLATION_USEBEAN_INVALID_ID, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_TRANSLATION_USBEAN_MISSING_TYPE_INFO, ValidationMessage.ERROR);
+		node.putInt(JSPCorePreferenceNames.VALIDATION_TRANSLATION_USEBEAN_AMBIGUOUS_TYPE_INFO, ValidationMessage.WARNING);
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceNames.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceNames.java
index 04a4406..651dbe8 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceNames.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/preferences/JSPCorePreferenceNames.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 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
@@ -11,6 +11,7 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.preferences;
 
+
 /**
  * Common preference keys used by JSP core
  */
@@ -36,4 +37,46 @@
 	 * </p>
 	 */
 	public static final String VALIDATE_FRAGMENTS = "validateFragments";//$NON-NLS-1$
+
+	/**
+	 * Indicates that JSP validation will use per-project preferences
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String VALIDATION_USE_PROJECT_SETTINGS = "validation.use-project-settings";
+
+	/**
+	 * Validation preference keys
+	 */
+	public static final String VALIDATION_DIRECTIVE_TAGLIB_DUPLICATE_PREFIXES_DIFFERENT_URIS="validation.directive-taglib-duplicate-prefixes-different-uris";//$NON-NLS-1$
+	public static final String VALIDATION_DIRECTIVE_TAGLIB_DUPLICATE_PREFIXES_SAME_URIS="validation.directive-taglib-duplicate-prefixes-same-uris";//$NON-NLS-1$
+	public static final String VALIDATION_DIRECTIVE_TAGLIB_MISSING_PREFIX="validation.directive-taglib-missing-prefix";//$NON-NLS-1$
+	public static final String VALIDATION_DIRECTIVE_TAGLIB_MISSING_URI_OR_TAGDIR="validation.directive-taglib-missing-uri-or-tagdir";//$NON-NLS-1$
+	public static final String VALIDATION_DIRECTIVE_TAGLIB_UNRESOLVABLE_URI_OR_TAGDIR="validation.directive-taglib-unresolvable-uri-or-tagdir";//$NON-NLS-1$
+	public static final String VALIDATION_DIRECTIVE_PAGE_SUPERCLASS_NOT_FOUND="validation.directive-page-superclass-not-found";//$NON-NLS-1$
+	public static final String VALIDATION_DIRECTIVE_INCLUDE_NO_FILE_SPECIFIED="validation.directive-include-fragment-file-not-specified";//$NON-NLS-1$
+	public static final String VALIDATION_DIRECTIVE_INCLUDE_FILE_NOT_FOUND="validation.directive-include-fragment-file-not-found";//$NON-NLS-1$
+	
+	public static final String VALIDATION_JAVA_LOCAL_VARIABLE_NEVER_USED ="validation.java-local-variable-is-never-used";
+	public static final String VALIDATION_JAVA_ARGUMENT_IS_NEVER_USED  ="validation.java-";
+	public static final String VALIDATION_JAVA_NULL_LOCAL_VARIABLE_REFERENCE  ="validation.java-null-local-variable-reference";
+	public static final String VALIDATION_JAVA_POTENTIAL_NULL_LOCAL_VARIABLE_REFERENCE  ="validation.java-potential-null-local-variable-reference";
+	public static final String VALIDATION_JAVA_UNUSED_IMPORT  ="validation.java-unused-import";
+	
+	public static final String VALIDATION_EL_SYNTAX  ="validation.el-general-syntax";
+	public static final String VALIDATION_EL_LEXER  ="validation.el-lexical-failure";
+
+	public static final String VALIDATION_ACTIONS_SEVERITY_MISSING_REQUIRED_ATTRIBUTE = "validation.actions-missing-required-attribute";
+	public static final String VALIDATION_ACTIONS_SEVERITY_UNKNOWN_ATTRIBUTE = "validation.actions-unknown-attribute";
+	public static final String VALIDATION_ACTIONS_SEVERITY_NON_EMPTY_INLINE_TAG = "validation.actions-non-empty-inline-tag";
+	
+	public static final String VALIDATION_TRANSLATION_TEI_VALIDATION_MESSAGE = "validation.translation-tei-message";
+	public static final String VALIDATION_TRANSLATION_TEI_CLASS_NOT_FOUND = "validation.translation-tei-class-not-found";
+	public static final String VALIDATION_TRANSLATION_TEI_CLASS_NOT_INSTANTIATED = "validation.translation-tei-class-not-instantiated";
+	public static final String VALIDATION_TRANSLATION_TEI_CLASS_RUNTIME_EXCEPTION = "validation.translation-tei-class-runtime-exception";	
+	public static final String VALIDATION_TRANSLATION_TAG_HANDLER_CLASS_NOT_FOUND = "validation.translation-tag-class-not-found";
+	public static final String VALIDATION_TRANSLATION_USEBEAN_INVALID_ID= "validation.translation-usebean-invalid-id";
+	public static final String VALIDATION_TRANSLATION_USBEAN_MISSING_TYPE_INFO= "validation.translation-usebean-missing-type-info";
+	public static final String VALIDATION_TRANSLATION_USEBEAN_AMBIGUOUS_TYPE_INFO = "validation.translation-usebean-ambiguous-type-info";
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP11Namespace.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP11Namespace.java
index 0c179a7..43d0f75 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP11Namespace.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP11Namespace.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -106,4 +106,4 @@
 	public static final String ATTR_VALUE_RIGHT = "right"; //$NON-NLS-1$
 	public static final String ATTR_VALUE_JVER11 = "1.1"; //$NON-NLS-1$
 	public static final String ATTR_VALUE_XMLNS_JSP = "http://java.sun.com/JSP/Page"; //$NON-NLS-1$
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP12Namespace.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP12Namespace.java
index c24b244..89f76e8 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP12Namespace.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP12Namespace.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,4 +16,4 @@
  */
 public interface JSP12Namespace extends JSP11Namespace {
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP20Namespace.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP20Namespace.java
index 5852c43..3e1fde3 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP20Namespace.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/JSP20Namespace.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -14,13 +14,5 @@
  * New names for JSP 2.0 spec.
  */
 
-public interface JSP20Namespace extends JSP12Namespace {
-	/**
-	 * New elements for JSP 2.0 spec.
-	 */
-	public static interface ElementName extends JSP12Namespace.ElementName {
-		String DIRECTIVE_TAG = "jsp:directive.tag"; //$NON-NLS-1$
-		String DIRECTIVE_ATTRIBUTE = "jsp:directive.attribute"; //$NON-NLS-1$
-		String DIRECTIVE_VARIABLE = "jsp:directive.variable"; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
+public interface JSP20Namespace extends org.eclipse.wst.html.core.internal.contentmodel.JSP20Namespace {
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/contenttype/ContentTypeIdForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/contenttype/ContentTypeIdForJSP.java
index f78615f..0f246bc 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/contenttype/ContentTypeIdForJSP.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/contenttype/ContentTypeIdForJSP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *     
@@ -33,6 +33,13 @@
 	public final static String ContentTypeID_JSPFRAGMENT = getFragmentConstantString();
 
 	/**
+	 * The value of the contenttype id field must match what is specified in
+	 * plugin.xml file. Note: this value is intentially set with default
+	 * protected method so it will not be inlined.
+	 */
+	public final static String ContentTypeID_JSPTAG = getTagConstantString();
+
+	/**
 	 * Don't allow instantiation.
 	 */
 	private ContentTypeIdForJSP() {
@@ -46,4 +53,9 @@
 	static String getFragmentConstantString() {
 		return "org.eclipse.jst.jsp.core.jspfragmentsource"; //$NON-NLS-1$
 	}
+	
+	static String getTagConstantString() {
+		return "org.eclipse.jst.jsp.core.tagsource"; //$NON-NLS-1$
+	}
+
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/contenttype/IContentDescriptionForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/contenttype/IContentDescriptionForJSP.java
index 4eb89e3..393dd10 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/contenttype/IContentDescriptionForJSP.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/contenttype/IContentDescriptionForJSP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,4 +22,4 @@
 	public final static QualifiedName LANGUAGE_ATTRIBUTE = new QualifiedName(ICodedResourcePlugin.ID, "languageAttribute"); //$NON-NLS-1$
 	public final static QualifiedName CONTENT_FAMILY_ATTRIBUTE = new QualifiedName(ICodedResourcePlugin.ID, "contentFamilyAttribute"); //$NON-NLS-1$;
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/text/IJSPPartitionTypes.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/text/IJSPPartitionTypes.java
index 179e3a5..49cc31d 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/text/IJSPPartitionTypes.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/provisional/text/IJSPPartitionTypes.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.provisional.text;
 
 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/regions/DOMJSPRegionContexts.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/regions/DOMJSPRegionContexts.java
index f0aa201..2e3c581 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/regions/DOMJSPRegionContexts.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/regions/DOMJSPRegionContexts.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibClassLoader.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibClassLoader.java
index a151c79..b8706cd 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibClassLoader.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibClassLoader.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.taglib;
 
 
@@ -207,11 +217,12 @@
 					newClass = defineClass(className, byteArray, 0, byteArray.length);
 					resolveClass(newClass);
 				}
-				catch (ClassCircularityError e) {
-					/*
-					 * j9 can give ClassCircularityError parent should already
-					 * have the class then try parent loader
-					 */
+				catch (Throwable t) {
+					Logger.logException("Error loading TEI class " + className, t);
+
+					// j9 can give ClassCircularityError
+					// parent should already have the class then
+					// try parent loader
 					try {
 						Class c = getParent().loadClass(className);
 						if (DEBUG)
@@ -222,10 +233,6 @@
 						if (DEBUG)
 							cnf.printStackTrace();
 					}
-					Logger.logException("Unrecoverable error loading TEI class " + className, e);
-				}
-				catch (Throwable t) {
-					Logger.logException("Error loading TEI class " + className, t);
 				}
 				stream.close();
 			}
@@ -299,11 +306,12 @@
 						newClass = defineClass(className, byteArray, 0, byteArray.length);
 						resolveClass(newClass);
 					}
-					catch (ClassCircularityError e) {
-						/*
-						 * j9 can give ClassCircularityError parent should already
-						 * have the class then try parent loader
-						 */
+					catch (Throwable t) {
+						Logger.logException("Error loading TEI class " + className, t);
+						// j9 can give ClassCircularityError
+						// parent should already have the class then
+
+						// try parent
 						try {
 							Class c = getParent().loadClass(className);
 							if (DEBUG)
@@ -313,11 +321,8 @@
 						catch (ClassNotFoundException cnf) {
 							if (DEBUG)
 								cnf.printStackTrace();
+							failedClasses.put(className, cnf);
 						}
-						Logger.logException("Unrecoverable error loading TEI class " + className, e);
-					}
-					catch (Throwable t) {
-						Logger.logException("Error loading TEI class " + className, t);
 					}
 					stream.close();
 					jarfile.close();
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java
index 7d30706..fe85bf7 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelper.java
@@ -1,12 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2008 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.taglib;
 
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import javax.servlet.jsp.tagext.TagAttributeInfo;
@@ -14,6 +27,7 @@
 import javax.servlet.jsp.tagext.TagExtraInfo;
 import javax.servlet.jsp.tagext.TagInfo;
 import javax.servlet.jsp.tagext.TagLibraryInfo;
+import javax.servlet.jsp.tagext.ValidationMessage;
 import javax.servlet.jsp.tagext.VariableInfo;
 
 import org.eclipse.core.resources.IFile;
@@ -22,13 +36,16 @@
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jdt.core.IClasspathContainer;
 import org.eclipse.jdt.core.IClasspathEntry;
 import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.core.JavaCore;
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jface.text.IDocument;
+import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
 import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
@@ -36,11 +53,12 @@
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDAttributeDeclaration;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDVariable;
+import org.eclipse.jst.jsp.core.internal.java.IJSPProblem;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
 import org.eclipse.wst.sse.core.utils.StringUtils;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
@@ -51,6 +69,8 @@
 import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 
+import com.ibm.icu.text.MessageFormat;
+
 /**
  * This class helps find TaglibVariables in a JSP file.
  * 
@@ -69,12 +89,15 @@
 	private TaglibClassLoader fLoader = null;
 
 	private Set fProjectEntries = null;
+	private Map fTranslationProblems = null;
 	private Set fContainerEntries = null;
+	private IJavaProject fJavaProject;
 
 	public TaglibHelper(IProject project) {
 		setProject(project);
 		fProjectEntries = new HashSet();
 		fContainerEntries = new HashSet();
+		fTranslationProblems = new HashMap();
 	}
 
 	/**
@@ -86,8 +109,10 @@
 	 *            is the IStructuredDocumentRegion opening tag for the custom
 	 *            tag
 	 */
-	public TaglibVariable[] getTaglibVariables(String tagToAdd, IStructuredDocument structuredDoc, IStructuredDocumentRegion customTag) {
+	public TaglibVariable[] getTaglibVariables(String tagToAdd, IStructuredDocument structuredDoc, ITextRegionCollection customTag) {
+
 		List results = new ArrayList();
+		List problems = new ArrayList();
 		ModelQuery mq = getModelQuery(structuredDoc);
 		if (mq != null) {
 			TLDCMDocumentManager mgr = TaglibController.getTLDCMDocumentManager(structuredDoc);
@@ -117,6 +142,14 @@
 					if (node instanceof CMNodeWrapper) {
 						node = ((CMNodeWrapper) node).getOriginNode();
 					}
+					TLDElementDeclaration tldElementDecl = (TLDElementDeclaration) node;
+
+					/*
+					 * Although clearly not the right place to add validation
+					 * design-wise, this is the first time we have the
+					 * necessary information to validate the tag class.
+					 */
+					validateTagClass(structuredDoc, customTag, tldElementDecl, problems);
 
 					// 1.2+ taglib style
 					addVariables(results, node, customTag);
@@ -126,12 +159,17 @@
 						String uri = ((TaglibTracker) doc).getURI();
 						String prefix = ((TaglibTracker) doc).getPrefix();
 						// only for 1.1 taglibs
-						addTEIVariables(customTag, results, (TLDElementDeclaration) node, prefix, uri);
+						addTEIVariables(structuredDoc, customTag, results, tldElementDecl, prefix, uri, problems);
 					}
 				}
 			}
 		}
 
+		IPath location = TaglibController.getLocation(structuredDoc);
+		if (location != null) {
+			fTranslationProblems.put(location, problems);
+		}
+
 		return (TaglibVariable[]) results.toArray(new TaglibVariable[results.size()]);
 	}
 
@@ -142,14 +180,21 @@
 	 *            list where the <code>TaglibVariable</code> s are added
 	 * @param node
 	 */
-	private void addVariables(List results, CMNode node, IStructuredDocumentRegion customTag) {
+	private void addVariables(List results, CMNode node, ITextRegionCollection customTag) {
 
 		List list = ((TLDElementDeclaration) node).getVariables();
 		Iterator it = list.iterator();
 		while (it.hasNext()) {
 			TLDVariable var = (TLDVariable) it.next();
+			if (!var.getDeclare())
+				continue;
+
 			String varName = var.getNameGiven();
 			if (varName == null) {
+				// 2.0
+				varName = var.getAlias();
+			}
+			if (varName == null) {
 				String attrName = var.getNameFromAttribute();
 				/*
 				 * Iterate through the document region to find the
@@ -168,18 +213,20 @@
 				}
 			}
 			if (varName != null) {
-				String varClass = "java.lang.String"; //$NON-NLS-1$ // the default class...
+				String varClass = "java.lang.String"; // the default
+														// class...//$NON-NLS-1$
 				if (var.getVariableClass() != null) {
 					varClass = var.getVariableClass();
 				}
-				results.add(new TaglibVariable(varClass, varName, var.getScope()));
+				results.add(new TaglibVariable(varClass, varName, var.getScope(), var.getDescription()));
 			}
 		}
 	}
 
 	/**
 	 * Adds 1.1 style TaglibVariables (defined in a TagExtraInfo class) to the
-	 * results list.
+	 * results list. Also reports problems with the tag and tei classes in
+	 * fTranslatorProblems.
 	 * 
 	 * @param customTag
 	 * @param results
@@ -191,16 +238,19 @@
 	 * @param uri
 	 *            URI where the tld can be found
 	 */
-	private void addTEIVariables(IStructuredDocumentRegion customTag, List results, TLDElementDeclaration decl, String prefix, String uri) {
-
+	private void addTEIVariables(IStructuredDocument document, ITextRegionCollection customTag, List results, TLDElementDeclaration decl, String prefix, String uri, List problems) {
 		String teiClassname = decl.getTeiclass();
-		if (teiClassname == null || teiClassname.length() == 0)
+		if (teiClassname == null || teiClassname.length() == 0 || fJavaProject == null)
 			return;
 
 		TaglibClassLoader loader = getClassloader();
 
 		Class teiClass = null;
 		try {
+			/*
+			 * JDT could tell us about it, but loading and calling it would
+			 * still take time
+			 */
 			teiClass = Class.forName(teiClassname, true, loader);
 			if (teiClass != null) {
 				Object teiObject = teiClass.newInstance();
@@ -213,24 +263,52 @@
 
 						// add to results
 						TagData td = new TagData(tagDataTable);
-						if (tei.isValid(td)) {
-							VariableInfo[] vInfos = tei.getVariableInfo(td);
-							if (vInfos != null) {
-								for (int i = 0; i < vInfos.length; i++) {
-									results.add(new TaglibVariable(vInfos[i].getClassName(), vInfos[i].getVarName(), vInfos[i].getScope()));
+
+						VariableInfo[] vInfos = tei.getVariableInfo(td);
+						if (vInfos != null) {
+							for (int i = 0; i < vInfos.length; i++) {
+								results.add(new TaglibVariable(vInfos[i].getClassName(), vInfos[i].getVarName(), vInfos[i].getScope(), decl.getDescription()));
+							}
+						}
+
+						ValidationMessage[] messages = tei.validate(td);
+						if (messages != null && messages.length > 0) {
+							for (int i = 0; i < messages.length; i++) {
+								Object createdProblem = createValidationMessageProblem(document, customTag, messages[i].getMessage());
+								if (createdProblem != null) {
+									problems.add(createdProblem);
 								}
 							}
 						}
 					}
 				}
+				else {
+					Object createdProblem = createJSPProblem(document, customTag, IJSPProblem.TEIClassMisc, JSPCoreMessages.TaglibHelper_2, teiClassname, true);
+					if (createdProblem != null) {
+						problems.add(createdProblem);
+					}
+					// this is 3rd party code, need to catch all exceptions
+					if (DEBUG) {
+						Logger.log(Logger.WARNING, teiClassname + " is not a subclass of TaxExtraInfo"); //$NON-NLS-1$ 
+					}
+				}
 			}
 		}
 		catch (ClassNotFoundException e) {
-			// TEI class wasn't on classpath
+			Object createdProblem = createJSPProblem(document, customTag, IJSPProblem.TEIClassNotFound, JSPCoreMessages.TaglibHelper_0, teiClassname, true);
+			if (createdProblem != null) {
+				problems.add(createdProblem);
+			}
+			// TEI class wasn't on build path
 			if (DEBUG)
 				logException(teiClassname, e);
 		}
 		catch (InstantiationException e) {
+			Object createdProblem = createJSPProblem(document, customTag, IJSPProblem.TEIClassNotInstantiated, JSPCoreMessages.TaglibHelper_1, teiClassname, true);
+			if (createdProblem != null) {
+				problems.add(createdProblem);
+			}
+			// TEI class couldn't be instantiated
 			if (DEBUG)
 				logException(teiClassname, e);
 		}
@@ -238,12 +316,16 @@
 			if (DEBUG)
 				logException(teiClassname, e);
 		}
-		catch (ClassCastException e) {
-			// TEI class wasn't really a subclass of TagExtraInfo
-			if (DEBUG)
-				logException(teiClassname, e);
-		}
+		// catch (ClassCastException e) {
+		// // TEI class wasn't really a subclass of TagExtraInfo
+		// if (DEBUG)
+		// logException(teiClassname, e);
+		// }
 		catch (Exception e) {
+			Object createdProblem = createJSPProblem(document, customTag, IJSPProblem.TEIClassMisc, JSPCoreMessages.TaglibHelper_2, teiClassname, true);
+			if (createdProblem != null) {
+				problems.add(createdProblem);
+			}
 			// this is 3rd party code, need to catch all exceptions
 			if (DEBUG)
 				logException(teiClassname, e);
@@ -259,6 +341,188 @@
 	}
 
 	/**
+	 * @param customTag
+	 * @param teiClass
+	 * @return
+	 */
+	private Object createJSPProblem(final IStructuredDocument document, final ITextRegionCollection customTag, final int problemID, final String messageKey, final String argument, boolean preferVars) {
+		final String tagname = customTag.getText(customTag.getRegions().get(1));
+
+		final int start;
+		if (customTag.getNumberOfRegions() > 1) {
+			start = customTag.getStartOffset(customTag.getRegions().get(1));
+		}
+		else {
+			start = customTag.getStartOffset();
+		}
+
+		final int end;
+		if (customTag.getNumberOfRegions() > 1) {
+			end = customTag.getTextEndOffset(customTag.getRegions().get(1)) - 1;
+		}
+		else {
+			end = customTag.getTextEndOffset() - 1;
+		}
+
+		final int line = document.getLineOfOffset(start);
+
+		final char[] name;
+		IPath location = TaglibController.getLocation(document);
+		if (location == null) {
+			name = new char[0];
+		}
+		else {
+			name = location.toString().toCharArray();
+		}
+
+		/*
+		 * Note: these problems would result in translation errors on the
+		 * server, so the severity is not meant to be controllable
+		 */
+		return new IJSPProblem() {
+			public void setSourceStart(int sourceStart) {
+			}
+
+			public void setSourceLineNumber(int lineNumber) {
+			}
+
+			public void setSourceEnd(int sourceEnd) {
+			}
+
+			public boolean isWarning() {
+				return false;
+			}
+
+			public boolean isError() {
+				return true;
+			}
+
+			public int getSourceStart() {
+				return start;
+			}
+
+			public int getSourceLineNumber() {
+				return line;
+			}
+
+			public int getSourceEnd() {
+				return end;
+			}
+
+			public char[] getOriginatingFileName() {
+				return name;
+			}
+
+			public String getMessage() {
+				return MessageFormat.format(messageKey, new String[]{tagname, argument});
+			}
+
+			public int getID() {
+				return problemID;
+			}
+
+			public String[] getArguments() {
+				return new String[0];
+			}
+
+			public int getEID() {
+				return problemID;
+			}
+		};
+	}
+
+	/**
+	 * @param customTag
+	 * @param validationMessage
+	 * @return
+	 */
+	private Object createValidationMessageProblem(final IStructuredDocument document, final ITextRegionCollection customTag, final String validationMessage) {
+		final int start;
+		if (customTag.getNumberOfRegions() > 3) {
+			start = customTag.getStartOffset(customTag.getRegions().get(2));
+		}
+		else if (customTag.getNumberOfRegions() > 1) {
+			start = customTag.getStartOffset(customTag.getRegions().get(1));
+		}
+		else {
+			start = customTag.getStartOffset();
+		}
+
+		final int end;
+		if (customTag.getNumberOfRegions() > 3) {
+			end = customTag.getTextEndOffset(customTag.getRegions().get(customTag.getNumberOfRegions() - 2));
+		}
+		else if (customTag.getNumberOfRegions() > 1) {
+			end = customTag.getTextEndOffset(customTag.getRegions().get(1)) - 1;
+		}
+		else {
+			end = customTag.getTextEndOffset();
+		}
+
+		final int line = document.getLineOfOffset(start);
+
+		final char[] name;
+		IPath location = TaglibController.getLocation(document);
+		if (location == null) {
+			name = new char[0];
+		}
+		else {
+			name = location.toString().toCharArray();
+		}
+
+		return new IJSPProblem() {
+			public void setSourceStart(int sourceStart) {
+			}
+
+			public void setSourceLineNumber(int lineNumber) {
+			}
+
+			public void setSourceEnd(int sourceEnd) {
+			}
+
+			public boolean isWarning() {
+				return true;
+			}
+
+			public boolean isError() {
+				return false;
+			}
+
+			public int getSourceStart() {
+				return start;
+			}
+
+			public int getSourceLineNumber() {
+				return line;
+			}
+
+			public int getSourceEnd() {
+				return end;
+			}
+
+			public char[] getOriginatingFileName() {
+				return name;
+			}
+
+			public String getMessage() {
+				return validationMessage;
+			}
+
+			public int getID() {
+				return getEID();
+			}
+
+			public String[] getArguments() {
+				return new String[0];
+			}
+
+			public int getEID() {
+				return IJSPProblem.TEIValidationMessage;
+			}
+		};
+	}
+
+	/**
 	 * @param decl
 	 * @return the TagInfo for the TLDELementDeclaration if the declaration is
 	 *         valid, otherwise null
@@ -299,6 +563,7 @@
 	 * @param e
 	 */
 	private void logException(String teiClassname, Throwable e) {
+
 		String message = "teiClassname: ["; //$NON-NLS-1$ 
 		if (teiClassname != null)
 			message += teiClassname;
@@ -312,14 +577,13 @@
 	 * @param customTag
 	 * @return
 	 */
-	private Hashtable extractTagData(IStructuredDocumentRegion customTag) {
-
+	private Hashtable extractTagData(ITextRegionCollection customTag) {
 		Hashtable tagDataTable = new Hashtable();
 		ITextRegionList regions = customTag.getRegions();
 		ITextRegion r = null;
 		String attrName = ""; //$NON-NLS-1$
 		String attrValue = ""; //$NON-NLS-1$
-		for (int i = 0; i < regions.size(); i++) {
+		for (int i = 2; i < regions.size(); i++) {
 			r = regions.get(i);
 			// check if attr name
 			if (r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
@@ -331,7 +595,6 @@
 						// get attr value
 						r = regions.get(i);
 						if (r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-							r = regions.get(i);
 							// attributes in our document have quotes, so we
 							// need to strip them
 							attrValue = StringUtils.stripQuotes(customTag.getText(r));
@@ -341,11 +604,13 @@
 				}
 			}
 		}
+
+		tagDataTable.put("jsp:id", customTag.getText(regions.get(1)) + "_" + customTag.getStartOffset()); //$NON-NLS-1$ 
+
 		return tagDataTable;
 	}
 
 	private TaglibClassLoader getClassloader() {
-		
 		if (fLoader == null) {
 			fLoader = new TaglibClassLoader(this.getClass().getClassLoader());
 			fProjectEntries.clear();
@@ -366,25 +631,23 @@
 		fProjectEntries.add(p.getFullPath().toString());
 
 		// add things on classpath that we are interested in
-		if (p != null) {
-			try {
-				if (p.hasNature(JavaCore.NATURE_ID)) {
+		try {
+			if (p.hasNature(JavaCore.NATURE_ID)) {
 
-					IJavaProject project = JavaCore.create(p);
+				IJavaProject project = JavaCore.create(p);
 
-					try {
-						IClasspathEntry[] entries = project.getRawClasspath();
-						addDefaultDirEntry(loader, project);
-						addClasspathEntries(loader, project, entries);
-					}
-					catch (JavaModelException e) {
-						Logger.logException(e);
-					}
+				try {
+					IClasspathEntry[] entries = project.getRawClasspath();
+					addDefaultDirEntry(loader, project);
+					addClasspathEntries(loader, project, entries);
+				}
+				catch (JavaModelException e) {
+					Logger.logException(e);
 				}
 			}
-			catch (CoreException e) {
-				Logger.logException(e);
-			}
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
 		}
 	}
 
@@ -401,13 +664,13 @@
 					addSourceEntry(loader, entry);
 					break;
 				case IClasspathEntry.CPE_LIBRARY :
-					addLibraryEntry(loader, project, entry.getPath());
+					addLibraryEntry(loader, entry.getPath());
 					break;
 				case IClasspathEntry.CPE_PROJECT :
 					addProjectEntry(loader, entry);
 					break;
 				case IClasspathEntry.CPE_VARIABLE :
-					addVariableEntry(loader, project, entry);
+					addVariableEntry(loader, entry);
 					break;
 				case IClasspathEntry.CPE_CONTAINER :
 					addContainerEntry(loader, project, entry);
@@ -420,15 +683,16 @@
 	 * @param loader
 	 * @param entry
 	 */
-	private void addVariableEntry(TaglibClassLoader loader, IJavaProject project, IClasspathEntry entry) {
+	private void addVariableEntry(TaglibClassLoader loader, IClasspathEntry entry) {
 		if (DEBUG)
 			System.out.println(" -> adding variable entry: [" + entry + "]"); //$NON-NLS-1$ //$NON-NLS-2$
 
 		// variable should either be a project or a library entry
 
-		IPath variablePath = entry.getPath();
-		//		String variableName = entry.getPath().toString();
-		variablePath = JavaCore.getResolvedVariablePath(variablePath);
+		// BUG 169431
+		String variableName = entry.getPath().toString();
+		IPath variablePath = JavaCore.getResolvedVariablePath(entry.getPath());
+		variablePath = JavaCore.getClasspathVariable(variableName);
 
 		// RATLC01076854
 		// variable paths may not exist
@@ -436,12 +700,12 @@
 		if (variablePath != null) {
 			if (variablePath.segments().length == 1) {
 				IProject varProj = ResourcesPlugin.getWorkspace().getRoot().getProject(variablePath.toString());
-				if (varProj != null && varProj.isAccessible()) {
+				if (varProj != null && varProj.exists()) {
 					addClasspathEntriesForProject(varProj, loader);
 					return;
 				}
 			}
-			addLibraryEntry(loader, project, variablePath);
+			addLibraryEntry(loader, variablePath);
 		}
 	}
 
@@ -471,13 +735,14 @@
 	 * @param entry
 	 */
 	private void addProjectEntry(TaglibClassLoader loader, IClasspathEntry entry) {
+
 		if (DEBUG)
 			System.out.println(" -> project entry: [" + entry + "]"); //$NON-NLS-1$ //$NON-NLS-2$
 
 		IPath path = entry.getPath();
-		IProject referenceProj = ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0));
-		if (referenceProj != null && referenceProj.isAccessible()) {
-			addClasspathEntriesForProject(referenceProj, loader);
+		IProject referenceProject = ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0));
+		if (referenceProject != null && referenceProject.isAccessible()) {
+			addClasspathEntriesForProject(referenceProject, loader);
 		}
 	}
 
@@ -493,14 +758,12 @@
 		String outputLocation = null;
 		if (!outputPath.toFile().exists()) {
 			if (outputPath.segmentCount() > 1) {
-				// separate source and output folders
 				IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(outputPath);
-				if (folder.isAccessible() && folder.getLocation() != null) {
+				if (folder.getLocation() != null) {
 					outputLocation = folder.getLocation().toString();
 				}
 			}
 			else {
-				// project as output folder (default for <=3.2)
 				IProject iproject = ResourcesPlugin.getWorkspace().getRoot().getProject(outputPath.segment(0));
 				if (iproject.getLocation() != null) {
 					outputLocation = iproject.getLocation().toString();
@@ -517,18 +780,14 @@
 	 * @param loader
 	 * @param entry
 	 */
-	private void addLibraryEntry(TaglibClassLoader loader, IJavaProject project, IPath libPath) {
+	private void addLibraryEntry(TaglibClassLoader loader, IPath libPath) {
 		String jarPathString = libPath.toString();
 		File file = new File(libPath.toOSString());
 
 		// if not absolute path, it's workspace relative
 		if (!file.exists() && libPath.segmentCount() > 1) {
-			/*
-			 * unlikely, the UI prevents adding folder variables to the
-			 * classpath
-			 */
 			IFile jarFile = ResourcesPlugin.getWorkspace().getRoot().getFile(libPath);
-			if(jarFile.isAccessible() && jarFile.getLocation() != null) {
+			if (jarFile.isAccessible() && jarFile.getLocation() != null) {
 				jarPathString = jarFile.getLocation().toString();
 			}
 		}
@@ -538,7 +797,10 @@
 				loader.addJar(jarPathString);
 			}
 			else if (file.isDirectory()) {
-				// it's actually a folder containing binaries
+				/*
+				 * unlikely, the UI prevents adding folder variables to the
+				 * classpath - it's actually a folder containing binaries
+				 */
 				loader.addDirectory(jarPathString);
 			}
 		}
@@ -552,19 +814,13 @@
 		// add bin directory for specific entry if it has
 		// one
 		IPath outputLocation = entry.getOutputLocation();
-		if(outputLocation != null && outputLocation.segmentCount() > 1) {
+		if (outputLocation != null && outputLocation.segmentCount() > 1) {
 			IFolder folder = ResourcesPlugin.getWorkspace().getRoot().getFolder(outputLocation);
 			if (folder != null && folder.isAccessible()) {
 				outputLocation = folder.getLocation();
 				loader.addDirectory(outputLocation.toString());
 			}
 		}
-		else {
-			IPath location = getProject().getLocation();
-			if(location != null) {
-				loader.addDirectory(location.toString());
-			}
-		}
 	}
 
 	/**
@@ -599,5 +855,41 @@
 	 */
 	public void setProject(IProject p) {
 		fProject = p;
+		IJavaProject javaProject = JavaCore.create(p);
+		if (javaProject.exists()) {
+			fJavaProject = javaProject;
+		}
+	}
+
+	/**
+	 * @param path
+	 * @return
+	 */
+	public Collection getProblems(IPath path) {
+		return (Collection) fTranslationProblems.remove(path);
+	}
+
+	private void validateTagClass(IStructuredDocument document, ITextRegionCollection customTag, TLDElementDeclaration decl, List problems) {
+		// skip if from a tag file
+		if (TLDElementDeclaration.SOURCE_TAG_FILE.equals(decl.getProperty(TLDElementDeclaration.TAG_SOURCE))) {
+			return;
+		}
+
+		String tagClassname = decl.getTagclass();
+		IType tagClass = null;
+		if (tagClassname != null && tagClassname.length() > 0 && fJavaProject != null) {
+			try {
+				tagClass = fJavaProject.findType(tagClassname, new NullProgressMonitor());
+			}
+			catch (JavaModelException e) {
+				Logger.logException(e);
+			}
+		}
+		if (tagClass == null) {
+			Object createdProblem = createJSPProblem(document, customTag, IJSPProblem.TagClassNotFound, JSPCoreMessages.TaglibHelper_3, tagClassname, false);
+			if (createdProblem != null) {
+				problems.add(createdProblem);
+			}
+		}
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperCache.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperCache.java
index f4f95cd..acf1e30 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperCache.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperCache.java
@@ -1,3 +1,14 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2008 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.taglib;
 
 
@@ -27,10 +38,10 @@
      */
     class Entry {
         private TaglibHelper fHelper;
-        private String fProjectPath;
+        private String fProjectName;
         
-        public Entry(String projectPath, TaglibHelper helper) {
-            setProjectPath(projectPath);
+        public Entry(String projectName, TaglibHelper helper) {
+            setProjectName(projectName);
             setHelper(helper);
         }
         public TaglibHelper getHelper() {
@@ -39,14 +50,14 @@
         public void setHelper(TaglibHelper helper) {
             fHelper = helper;
         }
-        public String getProjectPath() {
-            return fProjectPath;
+        public String getProjectName() {
+            return fProjectName;
         }
-        public void setProjectPath(String projectPath) {
-            fProjectPath = projectPath;
+        public void setProjectName(String projectName) {
+            fProjectName = projectName;
         }
         public String toString() {
-            return "Taglib Helper Entry [" + getProjectPath() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
+            return "Taglib Helper Entry [" + getProjectName() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
         }
     }
     
@@ -72,12 +83,12 @@
     public final synchronized TaglibHelper getHelper(IProject project) {
         TaglibHelper helper = null;
         Entry entry = null;
-        String projectPath = project.getFullPath().toString();
+        String projectName = project.getName();
         int size = fHelpers.size();
         // fist check for existing
         for (int i=0; i<size; i++) {
             entry = (Entry)fHelpers.get(i);
-            if(entry.getProjectPath().equals(projectPath)) {
+            if(entry.getProjectName().equals(projectName)) {
                 // exists
                 helper = entry.getHelper();
                 // only move to front if it's not the first entry
@@ -94,23 +105,23 @@
         }
         // didn't exist
         if(helper == null) {
-            helper = createNewHelper(projectPath, project);
+            helper = createNewHelper(projectName, project);
         }
         return helper;
     }
     
     /**
-     * @param projectPath
+     * @param projectName
      * @param f
      * @param mq
      * @return
      */
-    private TaglibHelper createNewHelper(String projectPath, IProject project) {
+    private TaglibHelper createNewHelper(String projectName, IProject project) {
 
         TaglibHelper helper;
         // create
         helper = new TaglibHelper(project);
-        Entry newEntry = new Entry(projectPath, helper);
+        Entry newEntry = new Entry(projectName, helper);
         fHelpers.add(0, newEntry);
         if(DEBUG) {
         	Logger.log(Logger.INFO, "(+) TaglibHelperCache added: " + newEntry); //$NON-NLS-1$
@@ -127,12 +138,12 @@
         return helper;
     }
  
-    public final synchronized void removeHelper(String projectPath) {
+    public final synchronized void removeHelper(String projectName) {
         Entry entry = null;
         Iterator it = fHelpers.iterator();
         while(it.hasNext()) {
             entry = (Entry)it.next();
-            if(entry.getProjectPath().equals(projectPath)) {
+            if(entry.getProjectName().equals(projectName)) {
                 fHelpers.remove(entry);
                 if(DEBUG) { 
                     Logger.log(Logger.INFO, "(-) TaglibHelperCache removed: " + entry); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperManager.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperManager.java
index acd3ecc..8409581 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperManager.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperManager.java
@@ -1,3 +1,14 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2008 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.taglib;
 
 
@@ -7,6 +18,7 @@
 import org.eclipse.jdt.core.IElementChangedListener;
 import org.eclipse.jdt.core.IJavaElement;
 import org.eclipse.jdt.core.IJavaElementDelta;
+import org.eclipse.jdt.core.IJavaProject;
 
 /**
  * Manages creation and caching (ordered MRU) of TaglibHelpers.
@@ -54,7 +66,7 @@
         if(delta.getElement().getElementType() == IJavaElement.JAVA_MODEL) {
             IJavaElementDelta[] changed = delta.getChangedChildren();
             for (int i = 0; i < changed.length; i++) {
-                if((changed[i].getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
+                if ((changed[i].getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0 || (changed[i].getFlags() & IJavaElementDelta.F_REORDER) != 0 || (changed[i].getFlags() & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) {
                     IJavaElement proj = changed[i].getElement();
                     handleClasspathChange(changed, i, proj);
                 }
@@ -68,10 +80,9 @@
      * @param proj
      */
     private void handleClasspathChange(IJavaElementDelta[] changed, int i, IJavaElement proj) {
-
-        if(proj.getElementType() == IJavaElement.JAVA_PROJECT) {
-            String projectPath = proj.getPath().toString().replace('\\', '/');
-            fCache.removeHelper(projectPath);
-        }
+        if (proj.getElementType() == IJavaElement.JAVA_PROJECT) {
+			String projectName = ((IJavaProject) proj).getProject().getName();
+			fCache.removeHelper(projectName);
+		}
     }
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibVariable.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibVariable.java
index b43d6dd..d73bbbc 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibVariable.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibVariable.java
@@ -1,22 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2007 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.taglib;
 
 import javax.servlet.jsp.tagext.VariableInfo;
 
+import org.eclipse.wst.sse.core.utils.StringUtils;
 
 /**
  * Contains info about a TaglibVariable: classname, variablename.
- * @author pavery
  */
 public class TaglibVariable {
-    
+
 	private String fVarClass = null;
 	private String fVarName = null;
 	private int fScope;
+	private String fDescription;
+
+	/** fixed end-of-line value */
 	private final String ENDL = "\n"; //$NON-NLS-1$
 
 	private final static String AT_END = "AT_END";
 	private final static String AT_BEGIN = "AT_BEGIN";
 	private final static String NESTED = "NESTED";
+
+	public static final int M_PRIVATE = 1;
+	public static final int M_NONE = 0;
+
 	/**
 	 * 
 	 */
@@ -31,47 +48,105 @@
 		setVarName(varName);
 		setScope(scope);
 	}
+
+	public TaglibVariable(String varClass, String varName, String scope, String description) {
+		setVarClass(varClass);
+		setVarName(varName);
+		setScope(scope);
+		setDescription(description);
+	}
+
+	TaglibVariable(String varClass, String varName, int scope, String description) {
+		setVarClass(varClass);
+		setVarName(varName);
+		setScope(scope);
+		setDescription(description);
+	}
+
 	/**
 	 * @return Returns the fVarClass.
 	 */
 	public final String getVarClass() {
 		return fVarClass;
 	}
+
 	/**
-	 * @param varClass The fVarClass to set.
+	 * @param varClass
+	 *            The fVarClass to set.
 	 */
 	public final void setVarClass(String varClass) {
 		fVarClass = varClass;
 	}
+
 	/**
 	 * @return Returns the fVarName.
 	 */
 	public final String getVarName() {
 		return fVarName;
 	}
+
 	/**
-	 * @param varName The fVarName to set.
+	 * @param varName
+	 *            The fVarName to set.
 	 */
 	public final void setVarName(String varName) {
 		fVarName = varName;
 	}
-	
+
 	/**
 	 * Convenience method.
+	 * 
 	 * @return
 	 */
 	public final String getDeclarationString() {
-		return getVarClass() + " " + getVarName() + " = null;" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$
+		return getDeclarationString(false, M_NONE);
 	}
+
+	/**
+	 * Convenience method.
+	 * 
+	 * @return
+	 */
+	public final String getDeclarationString(boolean includeDoc, int style) {
+		String declaration = null;
+		/*
+		 * no description for now --JDT would need to show it for local
+		 * variables and ILocalVariable has no "doc range"
+		 */
+		if (includeDoc && getDescription() != null) {
+			if (style == M_PRIVATE) {
+				declaration = "/** " + ENDL + StringUtils.replace(getDescription(), "*/", "*\\/") + ENDL + " */ " + ENDL + "private " + getVarClass() + " " + getVarName() + " = null;" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  //$NON-NLS-5$
+			}
+			else {
+				declaration = "/** " + ENDL + StringUtils.replace(getDescription(), "*/", "*\\/") + ENDL + " */ " + ENDL + getVarClass() + " " + getVarName() + " = null;" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  //$NON-NLS-5$
+			}
+		}
+		else {
+			if (style == M_PRIVATE) {
+				declaration = "private " + getVarClass() + " " + getVarName() + " = null;" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			}
+			else {
+				declaration = getVarClass() + " " + getVarName() + " = null;" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$
+			}
+		}
+		return declaration;
+	}
+
+	public String getDescription() {
+		return fDescription;
+	}
+
 	public int getScope() {
 		return fScope;
 	}
+
 	public void setScope(int scope) {
 		fScope = scope;
-	}	
+	}
+
 	public void setScope(String scopeString) {
 		int scope = VariableInfo.AT_BEGIN;
-		
+
 		String trimmedScope = scopeString.trim();
 		if (NESTED.equals(trimmedScope)) {
 			scope = VariableInfo.NESTED;
@@ -85,4 +160,8 @@
 
 		fScope = scope;
 	}
+
+	public void setDescription(String description) {
+		fDescription = description;
+	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/tasks/JSPFileTaskScanner.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/tasks/JSPFileTaskScanner.java
index 2cab51e..51f5faf 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/tasks/JSPFileTaskScanner.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/tasks/JSPFileTaskScanner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
index 6df9c9f..5974322 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/text/StructuredTextPartitionerForJSP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -118,7 +118,7 @@
 			// if XHTML or WML, that trumps what is in the page directive
 			if (jspHeadContentDetector.isXHTML() || jspHeadContentDetector.isWML()) {
 				contentType = "text/html";
-			}
+		}
 		}
 		catch (IOException e) {
 			// impossible in this context, since working with document stream
@@ -318,7 +318,7 @@
 			List fCustomActionPrefixes = ((JSPSourceParser) parser).getNestablePrefixes();
 			for (int i = 0; i < fCustomActionPrefixes.size(); i++)
 				if (tagName.startsWith(((TagMarker) fCustomActionPrefixes.get(i)).getTagName())) {
-					fLastCheckedPrefix = tagName;
+					fLastCheckedPrefix = ((TagMarker) fCustomActionPrefixes.get(i)).getTagName();
 					return true;
 				}
 		}
@@ -406,4 +406,4 @@
 		this.fLanguage = language;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/CommonXML.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/CommonXML.java
index 221c244..3db336c 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/CommonXML.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/CommonXML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -81,4 +81,4 @@
 			throw new IOException(e.getMessage());
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
index 52384c4..3607088 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/DocumentProvider.java
@@ -1,17 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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.util;
 
 
-
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.File;
@@ -19,9 +18,10 @@
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.ref.Reference;
+import java.lang.ref.SoftReference;
 import java.net.URL;
 import java.net.URLConnection;
-import com.ibm.icu.util.StringTokenizer;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -42,6 +42,8 @@
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
+import com.ibm.icu.util.StringTokenizer;
+
 /**
  * An XML Creator/Reader/Writer that 1) Ignores any DocumentType Nodes found
  * within the document (as well as any entities) 2) Ignores any
@@ -96,15 +98,14 @@
 				result = builder.parse(is, getBaseReference());
 		}
 		catch (SAXException e) {
-			result = null;
 			// parsing exception, notify the user?
-			Logger.log(Logger.WARNING, "SAXException while reading descriptor " + _getFileName() + " " + e); //$NON-NLS-1$ //$NON-NLS-2$
+			Logger.log(Logger.WARNING_DEBUG, "SAXException while reading descriptor " + _getFileName() + " " + e); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		catch (FileNotFoundException e) {
 			// NOT an "exceptional case"; do not Log
 		}
 		catch (IOException e) {
-			Logger.log(Logger.WARNING, "IOException while reading descriptor " + _getFileName() + " " + e); //$NON-NLS-1$ //$NON-NLS-2$
+			Logger.log(Logger.WARNING_DEBUG, "IOException while reading descriptor " + _getFileName() + " " + e); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		finally {
 			if (is != null) {
@@ -140,8 +141,20 @@
 		return document;
 	}
 
+	ThreadLocal fDocumentBuilder = new ThreadLocal();
+	
 	private DocumentBuilder getDocumentBuilder() {
-		return CommonXML.getDocumentBuilder(isValidating());
+		DocumentBuilder db = null;
+
+		Reference builderReference = (Reference) fDocumentBuilder.get();
+		if (builderReference != null) {
+			db = (DocumentBuilder) builderReference.get();
+		}
+		if (db == null) {
+			db = CommonXML.getDocumentBuilder(isValidating());
+			fDocumentBuilder.set(new SoftReference(db));
+		}
+		return db;
 	}
 
 	private DOMImplementation getDomImplementation() {
@@ -304,15 +317,15 @@
 		if (errorHandler == null) {
 			errorHandler = new ErrorHandler() {
 				public void error(SAXParseException exception) throws SAXException {
-					Logger.log(Logger.WARNING, "SAXParseException with " + getJarFileName() + "/" + getFileName() + " (error) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					Logger.log(Logger.WARNING, "SAXParseException with " + fBaseReference + "/" + getJarFileName() + "/" + getFileName() + " (error) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 				}
 
 				public void fatalError(SAXParseException exception) throws SAXException {
-					Logger.log(Logger.WARNING, "SAXParseException with " + getJarFileName() + "/" + getFileName() + " (fatalError) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					Logger.log(Logger.WARNING, "SAXParseException with " + fBaseReference + "/" + getJarFileName() + "/" + getFileName() + " (fatalError) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 				}
 
 				public void warning(SAXParseException exception) throws SAXException {
-					Logger.log(Logger.WARNING, "SAXParseException with " + getJarFileName() + "/" + getFileName() + " (warning) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					Logger.log(Logger.WARNING, "SAXParseException with " + fBaseReference + "/" + getJarFileName() + "/" + getFileName() + " (warning) while reading descriptor: " + exception.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 				}
 			};
 		}
@@ -469,4 +482,4 @@
 	public void setValidating(boolean b) {
 		fValidating = b;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupport.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupport.java
new file mode 100644
index 0000000..775d9b1
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupport.java
@@ -0,0 +1,229 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.util;
+
+import org.eclipse.core.filebuffers.FileBuffers;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+
+/**
+ * This class encapsulates any used Module Core and Facets APIs along with
+ * fallbacks for use on non-compliant projects and when those services are not
+ * available at runtime.
+ * 
+ * Because ModuleCore API calls can result in locks needing to be acquired,
+ * none of these methods should be called while other thread locks have
+ * already been acquired.
+ */
+public final class FacetModuleCoreSupport {
+	static final boolean _dump_NCDFE = false;
+	private static final String WEB_INF = "WEB-INF"; //$NON-NLS-1$
+	private static final IPath WEB_INF_PATH = new Path(WEB_INF);
+
+	/**
+	 * @param project
+	 * @return the computed IPath to the "root" of the web contents, either from facet knowledge or hueristics, or null if one can not be determined
+	 */
+	public static IPath computeWebContentRootPath(IPath path) {
+		IPath root = null;
+		try {
+			root = FacetModuleCoreSupportDelegate.getWebContentRootPath(ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0)));
+		}
+		catch (NoClassDefFoundError e) {
+			if (_dump_NCDFE)
+				e.printStackTrace();
+		}
+		if(root == null) {
+			/*
+			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=213245
+			 * 
+			 * NPE in JSPTaglibDirectiveContentAssistProcessor with
+			 * non-faceted project
+			 */
+			root = getLocalRoot(path);
+		}
+		return root;
+	}
+
+	/**
+	 * @param project
+	 * @return -1 if the project does not have the JST Web facet, the version
+	 *         number of it otherwise
+	 * @throws org.eclipse.core.runtime.CoreException
+	 */
+	public static float getDynamicWebProjectVersion(IProject project) {
+		// In the absence of any facet information, assume the highest level
+		float version = 2.5f;
+		try {
+			version = FacetModuleCoreSupportDelegate.getDynamicWebProjectVersion(project);
+		}
+		catch (NoClassDefFoundError e) {
+			if (_dump_NCDFE)
+				e.printStackTrace();
+		}
+		return version;
+	}
+
+	/**
+	 * @param project
+	 * @return the IPath to the "root" of the web contents
+	 */
+	public static IPath getWebContentRootPath(IProject project) {
+		if (project == null)
+			return null;
+
+		IPath path = null;
+		try {
+			path = FacetModuleCoreSupportDelegate.getWebContentRootPath(project);
+		}
+		catch (NoClassDefFoundError e) {
+			if (_dump_NCDFE)
+				e.printStackTrace();
+		}
+		return path;
+	}
+
+	public static IPath getRuntimePath(IPath path) {
+		IPath result = null;
+		try {
+			result = FacetModuleCoreSupportDelegate.getRuntimePath(path);
+		}
+		catch (NoClassDefFoundError e) {
+			if (_dump_NCDFE)
+				e.printStackTrace();
+		}
+		if (result == null) {
+			IPath root = getLocalRoot(path);
+			result = path.removeFirstSegments(root.segmentCount()).makeAbsolute();
+		}
+		return result;
+	}
+
+	/**
+	 * @param project
+	 * @return
+	 * @throws CoreException
+	 */
+	public static boolean isDynamicWebProject(IProject project) {
+		if (project == null)
+			return false;
+		
+		try {
+			return FacetModuleCoreSupportDelegate.isDynamicWebProject(project);
+		}
+		catch (NoClassDefFoundError e) {
+			if (_dump_NCDFE)
+				e.printStackTrace();
+		}
+		return true;
+	}
+
+	/**
+	 * @param basePath -
+	 *            the full path to a resource within the workspace
+	 * @param reference -
+	 *            the reference string to resolve
+	 * @return - the full path within the workspace that corresponds to the
+	 *         given reference according to the virtual pathing support
+	 */
+	public static IPath resolve(IPath basePath, String reference) {
+		IPath resolvedPath = null;
+		try {
+			resolvedPath = FacetModuleCoreSupportDelegate.resolve(basePath, reference);
+		}
+		catch (NoClassDefFoundError e) {
+			if (_dump_NCDFE)
+				e.printStackTrace();
+		}
+
+		if (resolvedPath == null) {
+			IPath rootPath = getLocalRoot(basePath);
+			if (reference.startsWith(Path.ROOT.toString())) {
+				resolvedPath = rootPath.append(reference);
+			}
+			else {
+				resolvedPath = basePath.removeLastSegments(1).append(reference);
+			}
+		}
+
+		return resolvedPath;
+	}
+
+	/**
+	 * @param basePath
+	 * @return the applicable Web context root path, if one exists
+	 */
+	private static IPath getLocalRoot(IPath basePath) {
+		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+
+		// existing workspace resources - this is the 93% case
+		IResource file = FileBuffers.getWorkspaceFileAtLocation(basePath);
+
+		// Try the base path as a folder first
+		if (file == null && basePath.segmentCount() > 1) {
+			file = workspaceRoot.getFolder(basePath);
+		}
+		// If not a folder, then try base path as a file
+		if (file != null && !file.exists() && basePath.segmentCount() > 1) {
+			file = workspaceRoot.getFile(basePath);
+		}
+
+		if (file == null && basePath.segmentCount() == 1) {
+			file = workspaceRoot.getProject(basePath.segment(0));
+		}
+
+		if (file == null) {
+			/*
+			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=116529
+			 * 
+			 * This method produces a less accurate result, but doesn't
+			 * require that the file exist yet.
+			 */
+			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(basePath);
+			if (files.length > 0)
+				file = files[0];
+		}
+
+		while (file != null) {
+			/**
+			 * Treat any parent folder with a WEB-INF subfolder as a web-app
+			 * root
+			 */
+			IContainer folder = null;
+			if ((file.getType() & IResource.FOLDER) != 0) {
+				folder = (IContainer) file;
+			}
+			else {
+				folder = file.getParent();
+			}
+			// getFolder on a workspace root must use a full path, skip
+			if (folder != null && (folder.getType() & IResource.ROOT) == 0) {
+				IFolder webinf = folder.getFolder(WEB_INF_PATH);
+				if (webinf != null && webinf.exists()) {
+					return folder.getFullPath();
+				}
+			}
+			file = file.getParent();
+		}
+
+		return basePath.uptoSegment(1);
+	}
+
+
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupportDelegate.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupportDelegate.java
new file mode 100644
index 0000000..2b7e288
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FacetModuleCoreSupportDelegate.java
@@ -0,0 +1,191 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse 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.util;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.jsp.core.internal.Logger;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.ModuleCoreNature;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
+import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+
+/**
+ * Wrapper class for all Facet-related calls. If the Facet or ModuleCore
+ * bundles are not available, this class will not load, or if it does, its
+ * methods will cause NoClassDefFoundErrors. This allows us to
+ * compartmentalize the dependencies.
+ * 
+ */
+final class FacetModuleCoreSupportDelegate {
+	private static final String SLASH = "/";
+
+	/**
+	 * Copied to avoid unneeded extra dependency (plus it's unclear why the
+	 * value is in that plug-in).
+	 * 
+	 * @see org.eclipse.wst.common.componentcore.internal.util.IModuleConstants.JST_WEB_MODULE
+	 */
+	private final static String JST_WEB_MODULE = "jst.web"; //$NON-NLS-1$
+
+	/**
+	 * @param project
+	 * @return -1 if the project does not have the JST Web facet, the version
+	 *         number of it otherwise
+	 * @throws CoreException
+	 */
+	static float getDynamicWebProjectVersion(IProject project) {
+		if (project == null)
+			return 2.5f;
+
+		// In the absence of any facet information, assume the highest level
+		float version = 2.5f;
+		try {
+			IFacetedProject faceted = ProjectFacetsManager.create(project);
+			if (faceted != null && ProjectFacetsManager.isProjectFacetDefined(JST_WEB_MODULE)) {
+				IProjectFacet webModuleFacet = ProjectFacetsManager.getProjectFacet(JST_WEB_MODULE);
+				if (faceted.hasProjectFacet(webModuleFacet)) {
+					version = Float.parseFloat(faceted.getInstalledVersion(webModuleFacet).getVersionString());
+				}
+			}
+		}
+		catch (NumberFormatException e) {
+			Logger.logException(e);
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
+		return version;
+	}
+
+	/**
+	 * @param path -
+	 *            the full path to a resource within the workspace
+	 * @return - the runtime path of the resource if one exists, null
+	 *         otherwise
+	 */
+	static IPath getRuntimePath(IPath path) {
+		if (path == null)
+			return null;
+
+		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0));
+
+		if (!ModuleCoreNature.isFlexibleProject(project))
+			return null;
+
+		IVirtualResource[] virtualResources = ComponentCore.createResources(ResourcesPlugin.getWorkspace().getRoot().getFile(path));
+		if (virtualResources != null && virtualResources.length > 0) {
+			return virtualResources[0].getRuntimePath();
+		}
+		return null;
+	}
+
+	/**
+	 * @param project
+	 * @return the IPath to the "root" of the web contents
+	 */
+	static IPath getWebContentRootPath(IProject project) {
+		if (project == null)
+			return null;
+
+		if (!ModuleCoreNature.isFlexibleProject(project))
+			return null;
+
+		IPath path = null;
+		IVirtualComponent component = ComponentCore.createComponent(project);
+		if (component != null && component.exists()) {
+			path = component.getRootFolder().getWorkspaceRelativePath();
+		}
+		return path;
+	}
+
+	/**
+	 * @param project
+	 * @return
+	 * @throws CoreException
+	 */
+	static boolean isDynamicWebProject(IProject project) {
+		if (project == null)
+			return false;
+		
+		try {
+			if (ProjectFacetsManager.isProjectFacetDefined(JST_WEB_MODULE)) {
+				IFacetedProject faceted = ProjectFacetsManager.create(project);
+				IProjectFacet webModuleFacet = ProjectFacetsManager.getProjectFacet(JST_WEB_MODULE);
+				if (faceted != null && faceted.hasProjectFacet(webModuleFacet)) {
+					return true;
+				}
+			}
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
+		return false;
+	}
+
+	/**
+	 * @param basePath -
+	 *            the full path to a resource within the workspace
+	 * @param reference -
+	 *            the reference string to resolve
+	 * @return - the full path within the workspace that corresponds to the
+	 *         given reference according to the virtual pathing support
+	 */
+	static IPath resolve(IPath basePath, String reference) {
+		if (reference == null || basePath == null || basePath.segmentCount() == 0)
+			return null;
+
+		IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(basePath.segment(0));
+
+		if (!ModuleCoreNature.isFlexibleProject(project))
+			return null;
+
+		if (basePath.segmentCount() > 1) {
+			IFile baseFile = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
+			IVirtualResource[] virtualResources = ComponentCore.createResources(baseFile);
+			for (int i = 0; i < virtualResources.length; i++) {
+				IPath baseRuntimePath = virtualResources[i].getRuntimePath();
+				IPath referenceRuntimePath = null;
+				if (reference.startsWith(SLASH)) {
+					referenceRuntimePath = new Path(reference);
+				}
+				else {
+					referenceRuntimePath = baseRuntimePath.removeLastSegments(1).append(reference);
+				}
+				IVirtualFile virtualFile = ComponentCore.createFile(project, referenceRuntimePath);
+				if (virtualFile != null && virtualFile.exists()) {
+					IFile[] underlyingFiles = virtualFile.getUnderlyingFiles();
+					for (int j = 0; j < underlyingFiles.length; j++) {
+						if (underlyingFiles[j].getProject().equals(project) && underlyingFiles[j].exists()) {
+							return underlyingFiles[j].getFullPath();
+						}
+
+					}
+				}
+			}
+		}
+		else {
+			IVirtualFile virtualFile = ComponentCore.createFile(project, new Path(reference));
+			if (virtualFile != null && virtualFile.exists()) {
+				return virtualFile.getUnderlyingFile().getFullPath();
+			}
+		}
+		return null;
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FileContentCache.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FileContentCache.java
new file mode 100644
index 0000000..e6243ad
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/FileContentCache.java
@@ -0,0 +1,225 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.lang.ref.Reference;
+import java.lang.ref.SoftReference;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.filebuffers.FileBuffers;
+import org.eclipse.core.filebuffers.ITextFileBuffer;
+import org.eclipse.core.filebuffers.LocationKind;
+import org.eclipse.core.resources.IFile;
+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.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.QualifiedName;
+import org.eclipse.core.runtime.content.IContentDescription;
+import org.eclipse.jst.jsp.core.internal.Logger;
+import org.eclipse.wst.sse.core.internal.util.Debug;
+
+public class FileContentCache {
+	private static class CacheEntry {
+		String contents;
+		long modificationStamp = IResource.NULL_STAMP;
+		IPath path;
+
+		CacheEntry(IPath path) {
+			this.path = path;
+			modificationStamp = getModificationStamp(path);
+			contents = readContents(path);
+		}
+
+		private IFile getFile(IPath path) {
+			if (path.segmentCount() > 1) {
+				return ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+			}
+			return null;
+		}
+
+		boolean isStale() {
+			if (modificationStamp == IResource.NULL_STAMP) {
+				return true;
+			}
+			long newStamp = getModificationStamp(path);
+			return newStamp > modificationStamp;
+		}
+
+		private String detectCharset(IFile file) {
+			if (file.getType() == IResource.FILE && file.isAccessible()) {
+				IContentDescription d = null;
+				try {
+					// optimized description lookup, might not succeed
+					d = file.getContentDescription();
+					if (d != null)
+						return d.getCharset();
+				}
+				catch (CoreException e) {
+					// should not be possible given the accessible and file
+					// type
+					// check above
+				}
+				InputStream contents = null;
+				try {
+					contents = file.getContents();
+					IContentDescription description = Platform.getContentTypeManager().getDescriptionFor(contents, file.getName(), new QualifiedName[]{IContentDescription.CHARSET});
+					if (description != null) {
+						return description.getCharset();
+					}
+				}
+				catch (IOException e) {
+					// will try to cleanup in finally
+				}
+				catch (CoreException e) {
+					Logger.logException(e);
+				}
+				finally {
+					if (contents != null) {
+						try {
+							contents.close();
+						}
+						catch (Exception e) {
+							// not sure how to recover at this point
+						}
+					}
+				}
+			}
+			return ResourcesPlugin.getEncoding();
+		}
+
+		private long getModificationStamp(IPath filePath) {
+			IFile f = getFile(filePath);
+			if (f != null && f.isAccessible()) {
+				return f.getModificationStamp();
+			}
+			File file = filePath.toFile();
+			if (file.exists())
+				return file.lastModified();
+			return IResource.NULL_STAMP;
+		}
+
+		private String readContents(IPath filePath) {
+			if (DEBUG)
+				System.out.println("readContents:" + filePath);
+			StringBuffer s = new StringBuffer();
+			InputStream is = null;
+			try {
+				IFile f = getFile(filePath);
+				if (f != null && f.isAccessible()) {
+					String charset = detectCharset(f);
+					is = f.getContents();
+					Reader reader = new InputStreamReader(is, charset);
+					char[] readBuffer = new char[2048];
+					int n = reader.read(readBuffer);
+					while (n > 0) {
+						s.append(readBuffer, 0, n);
+						n = reader.read(readBuffer);
+					}
+				}
+			}
+			catch (Exception e) {
+				if (Debug.debugStructuredDocument) {
+					Logger.logException(e);
+					e.printStackTrace();
+				}
+			}
+			finally {
+				try {
+					if (is != null) {
+						is.close();
+					}
+				}
+				catch (Exception e) {
+					// nothing to do
+				}
+			}
+			if (is == null) {
+				try {
+					FileBuffers.getTextFileBufferManager().connect(filePath, LocationKind.LOCATION, new NullProgressMonitor());
+					ITextFileBuffer buffer = FileBuffers.getTextFileBufferManager().getTextFileBuffer(filePath, LocationKind.LOCATION);
+					if (buffer != null) {
+						s.append(buffer.getDocument().get());
+					}
+				}
+				catch (CoreException e) {
+					// nothing to do
+					Logger.logException(e);
+				}
+				finally {
+					try {
+						FileBuffers.getTextFileBufferManager().disconnect(filePath, LocationKind.LOCATION, new NullProgressMonitor());
+					}
+					catch (CoreException e) {
+						Logger.logException(e);
+					}
+				}
+			}
+			return s.toString();
+		}
+
+	}
+
+	static final boolean DEBUG = false;
+
+	static FileContentCache instance = new FileContentCache();
+
+	public static FileContentCache getInstance() {
+		return instance;
+	}
+
+	private HashMap fContentMap;
+
+	private FileContentCache() {
+		super();
+		fContentMap = new HashMap();
+	}
+
+	private void cleanup() {
+		Iterator iterator = fContentMap.entrySet().iterator();
+		while (iterator.hasNext()) {
+			Map.Entry entry = (Map.Entry) iterator.next();
+			if (entry.getValue() != null && ((Reference) entry.getValue()).get() == null) {
+				iterator.remove();
+			}
+		}
+	}
+
+	public String getContents(IPath filePath) {
+		if (DEBUG)
+			System.out.println("getContents:" + filePath);
+		CacheEntry entry = null;
+		Object o = fContentMap.get(filePath);
+		if (o instanceof Reference) {
+			entry = (CacheEntry) ((Reference) o).get();
+		}
+		if (entry == null || entry.isStale()) {
+			if (DEBUG && entry != null && entry.isStale())
+				System.out.println("stale contents:" + filePath);
+			entry = new CacheEntry(filePath);
+			fContentMap.put(filePath, new SoftReference(entry));
+		}
+		cleanup();
+		return entry.contents;
+	}
+
+
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/ZeroStructuredDocumentRegion.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/ZeroStructuredDocumentRegion.java
new file mode 100644
index 0000000..0772450
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/util/ZeroStructuredDocumentRegion.java
@@ -0,0 +1,290 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.util;
+
+import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
+import org.eclipse.wst.sse.core.internal.text.TextRegionListImpl;
+
+
+public class ZeroStructuredDocumentRegion implements IStructuredDocumentRegion {
+	private int length = 0;
+
+	private int offset = 0;
+	private IStructuredDocument fParentDocument;
+
+	/**
+	 */
+	public ZeroStructuredDocumentRegion(IStructuredDocument document, int start) {
+		super();
+		fParentDocument = document;
+		offset = start;
+	}
+
+	public void addRegion(ITextRegion aRegion) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public void adjust(int i) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+
+	}
+
+	public void adjustLength(int i) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+
+	}
+
+	public void adjustStart(int i) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+
+	}
+
+	public void adjustTextLength(int i) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+
+	}
+
+	public boolean containsOffset(int i) {
+		return offset <= i && i < getEndOffset();
+	}
+
+	public boolean containsOffset(ITextRegion region, int i) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public void equatePositions(ITextRegion region) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+
+	}
+
+	public ITextRegion getDeepestRegionAtCharacterOffset(int offset) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public int getEnd() {
+		return offset + length;
+	}
+
+	public int getEndOffset() {
+		return getEnd();
+	}
+
+	public int getEndOffset(ITextRegion containedRegion) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public ITextRegion getFirstRegion() {
+		return null;
+	}
+
+	public String getFullText() {
+		return getText();
+	}
+
+	public String getFullText(ITextRegion aRegion) {
+		return getText();
+	}
+
+	/**
+	 */
+	public String getFullText(String context) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public ITextRegion getLastRegion() {
+		return null;
+	}
+
+	public int getLength() {
+		return this.length;
+	}
+
+	public IStructuredDocumentRegion getNext() {
+		return getParentDocument().getFirstStructuredDocumentRegion();
+	}
+
+	public int getNumberOfRegions() {
+		return 0;
+	}
+
+	int getOffset() {
+		return offset;
+	}
+
+	/**
+	 */
+	public ITextRegionContainer getParent() {
+		return null;
+	}
+
+	public IStructuredDocument getParentDocument() {
+		return fParentDocument;
+	}
+
+	public IStructuredDocumentRegion getPrevious() {
+		return null; //$NON-NLS-1$
+	}
+
+	/**
+	 */
+	public ITextRegion getRegionAtCharacterOffset(int offset) {
+		return null; //$NON-NLS-1$
+	}
+
+	/**
+	 */
+	public ITextRegionList getRegions() {
+		return new TextRegionListImpl(); //$NON-NLS-1$
+	}
+
+	/**
+	 */
+	public int getStart() {
+		return this.offset;
+	}
+
+	/**
+	 */
+	public int getStartOffset() {
+		return getStart();
+	}
+
+	public int getStartOffset(ITextRegion containedRegion) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	/**
+	 */
+	public IStructuredDocument getStructuredDocument() {
+		return getParentDocument();
+	}
+
+	/**
+	 */
+	public String getText() {
+		return new String();
+	}
+
+	/**
+	 */
+	public String getText(ITextRegion aRegion) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	/**
+	 */
+	public String getText(String context) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	/**
+	 */
+	public int getTextEnd() {
+		return getEnd();
+	}
+
+	/**
+	 */
+	public int getTextEndOffset() {
+		return getTextEnd();
+	}
+
+	public int getTextEndOffset(ITextRegion containedRegion) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	/**
+	 * The text length is equal to length if there is no white space at the
+	 * end of a region. Otherwise it is smaller than length.
+	 */
+	public int getTextLength() {
+		return getLength();
+	}
+
+	/**
+	 */
+	public String getType() {
+		return "ZeroStructuredDocumentRegion";//$NON-NLS-1$
+	}
+
+	public boolean isDeleted() {
+		return false;
+	}
+
+	public boolean isEnded() {
+		return true;
+	}
+
+	public boolean sameAs(IStructuredDocumentRegion region, int shift) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	/**
+	 */
+	public boolean sameAs(ITextRegion region, int shift) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public boolean sameAs(ITextRegion oldRegion, IStructuredDocumentRegion documentRegion, ITextRegion newRegion, int shift) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public void setDeleted(boolean deleted) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public void setEnded(boolean hasEnd) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	/**
+	 * had to make public, due to API transition.
+	 */
+	public void setLength(int length) {
+		this.length = length;
+	}
+
+	public void setNext(IStructuredDocumentRegion newNext) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	/**
+	 */
+	void setOffset(int offset) {
+		this.offset = offset;
+	}
+
+	public void setParentDocument(IStructuredDocument document) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public void setPrevious(IStructuredDocumentRegion newPrevious) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public void setRegions(ITextRegionList embeddedRegions) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public void setStart(int newStart) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+
+	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion flatnode, String changes, int start, int end) {
+		throw new Error("intentionally not implemented since should never be called"); //$NON-NLS-1$
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/HTMLValidationReporter.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/HTMLValidationReporter.java
new file mode 100644
index 0000000..1c77c11
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/HTMLValidationReporter.java
@@ -0,0 +1,108 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 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.validation;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.wst.html.core.internal.validate.MessageFactory;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.sse.core.internal.validate.ErrorInfo;
+import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
+import org.eclipse.wst.sse.core.internal.validate.ValidationReporter;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+import org.eclipse.wst.validation.internal.provisional.core.IValidator;
+
+/*
+ * Copied from html.ui's HTMLValidationReporter with some minor cleanup
+ * modifications
+ */
+class HTMLValidationReporter implements ValidationReporter {
+
+	private IValidator owner = null;
+	private IReporter reporter = null;
+	private IFile file = null;
+	private IStructuredModel model = null;
+	private MessageFactory fFactory = null;
+	
+	/**
+	 */
+	public HTMLValidationReporter(IValidator owner, IReporter reporter, IFile file, IStructuredModel model) {
+		super();
+		this.owner = owner;
+		this.reporter = reporter;
+		this.file = file;
+		this.model = model;
+		fFactory = new MessageFactory(file != null ? file.getProject() : null);
+	}
+
+	/**
+	 */
+	public void clear() {
+		if (this.file == null)
+			return;
+
+
+		if (this.reporter != null) {
+			this.reporter.removeAllMessages(this.owner, this.file);
+		}
+	}
+
+
+
+	/**
+	 */
+	public void report(ValidationMessage message) {
+		if (message == null || this.file == null || message.getSeverity() == ValidationMessage.IGNORE)
+			return;
+		IMessage mes = translateMessage(message);
+
+		if (this.reporter != null) {
+			this.reporter.addMessage(this.owner, mes);
+		}
+	}
+
+	/**
+	 * Translate ValidationMessage to IMessage and generate result log
+	 */
+	private IMessage translateMessage(ValidationMessage message) {
+		int severity = IMessage.LOW_SEVERITY;
+		switch (message.getSeverity()) {
+			case ValidationMessage.ERROR :
+				severity = IMessage.HIGH_SEVERITY;
+				break;
+			case ValidationMessage.WARNING :
+				severity = IMessage.NORMAL_SEVERITY;
+				break;
+			case ValidationMessage.INFORMATION :
+				break;
+			default :
+				break;
+		}
+
+		IMessage mes = new LocalizedMessage(severity, message.getMessage(), this.file);
+		mes.setOffset(message.getOffset());
+		mes.setLength(message.getLength());
+		if (this.model != null) {
+			IStructuredDocument flatModel = this.model.getStructuredDocument();
+			if (flatModel != null) {
+				int line = flatModel.getLineOfOffset(message.getOffset());
+				mes.setLineNo(line + 1);
+			}
+		}
+
+		return mes;
+	}
+
+	public void report(ErrorInfo info) {
+		report(fFactory.createMessage(info));
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPActionValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPActionValidator.java
index 5f9e0c7..51f0c3d 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPActionValidator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPActionValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
+ * Copyright (c) 2008 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
@@ -15,15 +15,23 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ProjectScope;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.Region;
+import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
+import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
 import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker;
+import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.html.core.internal.HTMLCoreMessages;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
@@ -32,14 +40,15 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.validation.internal.core.ValidationException;
+import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 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;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
 import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
 import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
@@ -47,16 +56,27 @@
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.NodeList;
 
 /**
- * Checks for: - missing required attributes & undefined attributes in jsp
- * action tags such as jsp directives and jsp custom tags
+ * Checks for: missing required attributes & undefined attributes in jsp
+ * action tags such as jsp directives and jsp custom tags as well as non-empty
+ * inline jsp action tags
  */
 public class JSPActionValidator extends JSPValidator {
-	private int fSeverityMissingRequiredAttribute = IMessage.HIGH_SEVERITY;
-	private int fSeverityUnknownAttribute = IMessage.NORMAL_SEVERITY;
+	/**
+	 * 
+	 */
+	private static final String PREFERENCE_NODE_QUALIFIER = JSPCorePlugin.getDefault().getBundle().getSymbolicName();
 	private IValidator fMessageOriginator;
+	private IPreferencesService fPreferencesService = null;
+	private IScopeContext[] fScopes = null;
+	private int fSeverityMissingRequiredAttribute = IMessage.HIGH_SEVERITY;
+	private int fSeverityNonEmptyInlineTag = IMessage.NORMAL_SEVERITY;
+	private int fSeverityUnknownAttribute = IMessage.NORMAL_SEVERITY;
+
 	private HashSet fTaglibPrefixes = new HashSet();
 
 	public JSPActionValidator() {
@@ -67,6 +87,21 @@
 		this.fMessageOriginator = validator;
 	}
 
+	private void checkNonEmptyInlineTag(IDOMElement element, CMElementDeclaration cmElementDecl, IReporter reporter, IFile file, IStructuredDocument document) {
+		if (cmElementDecl.getContentType() == CMElementDeclaration.EMPTY && element.getChildNodes().getLength() > 0) {
+			String msgText = NLS.bind(JSPCoreMessages.JSPActionValidator_0, element.getNodeName());
+			LocalizedMessage message = new LocalizedMessage(fSeverityNonEmptyInlineTag, msgText, file);
+			int start = element.getStartOffset();
+			int length = element.getStartEndOffset() - start;
+			int lineNo = document.getLineOfOffset(start);
+			message.setLineNo(lineNo);
+			message.setOffset(start);
+			message.setLength(length);
+
+			reporter.addMessage(fMessageOriginator, message);
+		}
+	}
+
 	private void checkRequiredAttributes(IDOMElement element, CMNamedNodeMap attrMap, IReporter reporter, IFile file, IStructuredDocument document, IStructuredDocumentRegion documentRegion) {
 		Iterator it = attrMap.iterator();
 		CMAttributeDeclaration attr = null;
@@ -75,20 +110,50 @@
 			if (attr.getUsage() == CMAttributeDeclaration.REQUIRED) {
 				Attr a = element.getAttributeNode(attr.getAttrName());
 				if (a == null) {
-					String msgText = NLS.bind(HTMLCoreMessages.Undefined_attribute_name___ERROR_, attr.getAttrName());
-					LocalizedMessage message = new LocalizedMessage(fSeverityMissingRequiredAttribute, msgText, file);
-					int start = element.getStartOffset();
-					int length = element.getStartEndOffset() - start;
-					int lineNo = document.getLineOfOffset(start);
-					message.setLineNo(lineNo);
-					message.setOffset(start);
-					message.setLength(length);
-
-					reporter.addMessage(fMessageOriginator, message);
+					// Attribute may be defined using a jsp:attribute action
+					if (!checkJSPAttributeAction(element, attr)) {
+						String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_5, attr.getAttrName());
+						LocalizedMessage message = new LocalizedMessage(fSeverityMissingRequiredAttribute, msgText, file);
+						int start = element.getStartOffset();
+						int length = element.getStartEndOffset() - start;
+						int lineNo = document.getLineOfOffset(start);
+						message.setLineNo(lineNo);
+						message.setOffset(start);
+						message.setLength(length);
+	
+						reporter.addMessage(fMessageOriginator, message);
+					}
 				}
 			}
 		}
 	}
+	
+	/**
+	 * Checks for jsp:attribute actions of <code>element</code> to see if they
+	 * satisfy the required attribute <code>attr</code>
+	 * 
+	 * @param element The element with a required attribute
+	 * @param attr The required attribute
+	 * @return <code>true</code> if a jsp:attribute action has the name of
+	 * the required attribute <code>attr</code>; <code>false</code> otherwise.
+	 */
+	private boolean checkJSPAttributeAction(IDOMElement element, CMAttributeDeclaration attr) {
+		if (element != null && attr != null) {
+			NodeList elements = element.getElementsByTagName("jsp:attribute"); //$NON-NLS-1$
+			String neededAttrName = attr.getNodeName();
+			for (int i = 0; i < elements.getLength(); i++) {
+				Element childElement = (Element) elements.item(i);
+				/*
+				 * Get the name attribute of jsp:attribute and compare its
+				 * value to the required attribute name
+				 */
+				if (neededAttrName.equals(childElement.getAttribute("name"))) {//$NON-NLS-1$
+					return true;
+				}
+			}
+		}
+		return false;
+	}
 
 	private boolean checkUnknownAttributes(IDOMElement element, CMNamedNodeMap cmAttrs, IReporter reporter, IFile file, IStructuredDocument document, IStructuredDocumentRegion documentRegion) {
 		boolean foundjspattribute = false;
@@ -101,8 +166,8 @@
 				// No attr declaration was found. That is, the attr name is
 				// undefined.
 				// but not regard it as undefined name if it includes JSP
-				if (!hasJSPRegion(((IDOMNode) a).getNameRegion())) {
-					String msgText = NLS.bind(HTMLCoreMessages.Undefined_attribute_name___ERROR_, a.getName());
+				if (!hasJSPRegion(((IDOMNode) a).getNameRegion()) && fSeverityUnknownAttribute != ValidationMessage.IGNORE) {
+					String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_6, a.getName());
 					LocalizedMessage message = new LocalizedMessage(fSeverityUnknownAttribute, msgText, file);
 					int start = ((IDOMAttr) a).getNameRegionStartOffset();
 					int length = ((IDOMAttr) a).getNameRegionEndOffset() - start;
@@ -126,6 +191,21 @@
 		fTaglibPrefixes.clear();
 	}
 
+	int getMessageSeverity(String key) {
+		int sev = fPreferencesService.getInt(PREFERENCE_NODE_QUALIFIER, key, IMessage.NORMAL_SEVERITY, fScopes);
+		switch (sev) {
+			case ValidationMessage.ERROR :
+				return IMessage.HIGH_SEVERITY;
+			case ValidationMessage.WARNING :
+				return IMessage.NORMAL_SEVERITY;
+			case ValidationMessage.INFORMATION :
+				return IMessage.LOW_SEVERITY;
+			case ValidationMessage.IGNORE :
+				return ValidationMessage.IGNORE;
+		}
+		return IMessage.NORMAL_SEVERITY;
+	}
+
 	private String getStartTagName(IStructuredDocumentRegion sdr) {
 		String name = new String();
 		ITextRegionList subRegions = sdr.getRegions();
@@ -154,11 +234,13 @@
 
 			// add all taglib prefixes
 			TLDCMDocumentManager manager = TaglibController.getTLDCMDocumentManager(document);
-			List trackers = manager.getTaglibTrackers();
-			for (Iterator it = trackers.iterator(); it.hasNext();) {
-				TaglibTracker tracker = (TaglibTracker) it.next();
-				String prefix = tracker.getPrefix();
-				fTaglibPrefixes.add(prefix);
+			if (manager != null) {
+				List trackers = manager.getTaglibTrackers();
+				for (Iterator it = trackers.iterator(); it.hasNext();) {
+					TaglibTracker tracker = (TaglibTracker) it.next();
+					String prefix = tracker.getPrefix();
+					fTaglibPrefixes.add(prefix);
+				}
 			}
 		}
 		return fTaglibPrefixes;
@@ -187,6 +269,22 @@
 		return result;
 	}
 
+	private void loadPreferences(IFile file) {
+		fScopes = new IScopeContext[]{new InstanceScope(), new DefaultScope()};
+
+		fPreferencesService = Platform.getPreferencesService();
+		if (file != null && file.isAccessible()) {
+			ProjectScope projectScope = new ProjectScope(file.getProject());
+			if (projectScope.getNode(PREFERENCE_NODE_QUALIFIER).getBoolean(JSPCorePreferenceNames.VALIDATION_USE_PROJECT_SETTINGS, false)) {
+				fScopes = new IScopeContext[]{projectScope, new InstanceScope(), new DefaultScope()};
+			}
+		}
+
+		fSeverityMissingRequiredAttribute = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_ACTIONS_SEVERITY_MISSING_REQUIRED_ATTRIBUTE);
+		fSeverityNonEmptyInlineTag = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_ACTIONS_SEVERITY_NON_EMPTY_INLINE_TAG);
+		fSeverityUnknownAttribute = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_ACTIONS_SEVERITY_UNKNOWN_ATTRIBUTE);
+	}
+
 	void performValidation(IFile f, IReporter reporter, IStructuredModel model) {
 		fTaglibPrefixes.clear();
 		int length = model.getStructuredDocument().getLength();
@@ -194,6 +292,7 @@
 	}
 
 	protected void performValidation(IFile f, IReporter reporter, IStructuredModel model, IRegion validateRegion) {
+		loadPreferences(f);
 		IStructuredDocument sDoc = model.getStructuredDocument();
 
 		// iterate all document regions
@@ -218,6 +317,7 @@
 			}
 			region = region.getNext();
 		}
+		unloadPreferences();
 	}
 
 	private void processDirective(IReporter reporter, IFile file, IStructuredModel model, IStructuredDocumentRegion documentRegion) {
@@ -230,20 +330,33 @@
 				if (cmElement != null) {
 					CMNamedNodeMap cmAttributes = cmElement.getAttributes();
 
+					CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(cmAttributes);
+					List nodes = query.getAvailableContent(element, cmElement, ModelQuery.INCLUDE_ATTRIBUTES);
+					for (int k = 0; k < nodes.size(); k++) {
+						CMNode cmnode = (CMNode) nodes.get(k);
+						if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
+							allAttributes.put(cmnode);
+						}
+					}
+					cmAttributes = allAttributes;
+
 					boolean foundjspattribute = checkUnknownAttributes(element, cmAttributes, reporter, file, model.getStructuredDocument(), documentRegion);
 					// required attributes could be hidden in jsp regions in
 					// tags, so if jsp regions were detected, do not check for
 					// missing required attributes
-					if (!foundjspattribute)
+					if (!foundjspattribute && fSeverityMissingRequiredAttribute != ValidationMessage.IGNORE)
 						checkRequiredAttributes(element, cmAttributes, reporter, file, model.getStructuredDocument(), documentRegion);
+
+					if (fSeverityNonEmptyInlineTag != ValidationMessage.IGNORE)
+						checkNonEmptyInlineTag(element, cmElement, reporter, file, model.getStructuredDocument());
 				}
 			}
 		}
 	}
 
-	public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
-		reporter.removeAllMessages(this);
-		super.validate(helper, reporter);
+	private void unloadPreferences() {
+		fPreferencesService = null;
+		fScopes = null;
 	}
 
 	protected void validateFile(IFile f, IReporter reporter) {
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPBatchValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPBatchValidator.java
index f6e7a24..d4dde9f 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPBatchValidator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPBatchValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * Copyright (c) 2006, 2008 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
@@ -17,7 +17,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Locale;
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
@@ -50,6 +49,9 @@
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.utils.StringUtils;
+import org.eclipse.wst.validation.AbstractValidator;
+import org.eclipse.wst.validation.ValidationResult;
+import org.eclipse.wst.validation.ValidationState;
 import org.eclipse.wst.validation.internal.ConfigurationManager;
 import org.eclipse.wst.validation.internal.ProjectConfiguration;
 import org.eclipse.wst.validation.internal.ValidationRegistryReader;
@@ -60,16 +62,15 @@
 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.IValidatorJob;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 
 /**
- * Performs some common JSP validation tasks
+ * Performs JSP validation tasks for batch validation. The individual
+ * validator classes will still be used for source validation.
  */
-public final class JSPBatchValidator implements IValidatorJob, IExecutableExtension {
+public final class JSPBatchValidator extends AbstractValidator implements IValidatorJob, IExecutableExtension {
 	class JSPFileVisitor implements IResourceProxyVisitor {
 
 		private List fFiles = new ArrayList();
-		private IContentType[] fContentTypes = null;
 		private IReporter fReporter = null;
 
 		public JSPFileVisitor(IReporter reporter) {
@@ -80,48 +81,6 @@
 			return (IFile[]) fFiles.toArray(new IFile[fFiles.size()]);
 		}
 
-		/**
-		 * Gets list of content types this visitor is interested in
-		 * 
-		 * @return All JSP-related content types
-		 */
-		private IContentType[] getValidContentTypes() {
-			if (fContentTypes == null) {
-				// currently "hard-coded" to be jsp & jspf
-				fContentTypes = new IContentType[]{Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP), Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSPFRAGMENT)};
-				if (fAdditionalContentTypesIDs != null) {
-					List allTypes = new ArrayList(Arrays.asList(fContentTypes));
-					for (int i = 0; i < fAdditionalContentTypesIDs.length; i++) {
-						IContentType type = Platform.getContentTypeManager().getContentType(fAdditionalContentTypesIDs[i]);
-						if (type != null) {
-							allTypes.add(type);
-						}
-					}
-					fContentTypes = (IContentType[]) allTypes.toArray(new IContentType[allTypes.size()]);
-				}
-			}
-			return fContentTypes;
-		}
-
-		/**
-		 * Checks if fileName is some type of JSP (including JSP fragments)
-		 * 
-		 * @param fileName
-		 * @return true if filename indicates some type of JSP, false
-		 *         otherwise
-		 */
-		private boolean isJSPType(String fileName) {
-			boolean valid = false;
-
-			IContentType[] types = getValidContentTypes();
-			int i = 0;
-			while (i < types.length && !valid) {
-				valid = types[i].isAssociatedWith(fileName);
-				++i;
-			}
-			return valid;
-		}
-
 		public boolean visit(IResourceProxy proxy) throws CoreException {
 
 			// check validation
@@ -130,88 +89,94 @@
 
 			if (proxy.getType() == IResource.FILE) {
 
-				if (isJSPType(proxy.getName())) {
+				if (isJSPType(proxy.getName()) && proxy.isAccessible()) {
 					IFile file = (IFile) proxy.requestResource();
-					if (file.exists()) {
+					if (DEBUG)
+						System.out.println("(+) JSPValidator adding file: " + file.getName()); //$NON-NLS-1$
+					fFiles.add(file);
 
-						if (DEBUG)
-							System.out.println("(+) JSPValidator adding file: " + file.getName()); //$NON-NLS-1$
-						fFiles.add(file);
-
-						// don't search deeper for files
-						return false;
-					}
+					// don't search deeper for files
+					return false;
 				}
 			}
 			return true;
 		}
 	}
 
-
-	class LocalizedMessage extends Message {
-
-		private String _message = null;
-
-		public LocalizedMessage(int severity, String messageText) {
-			this(severity, messageText, null);
-		}
-
-		public LocalizedMessage(int severity, String messageText, IResource targetObject) {
-			this(severity, messageText, (Object) targetObject);
-		}
-
-		public LocalizedMessage(int severity, String messageText, Object targetObject) {
-			super(null, severity, null);
-			setLocalizedMessage(messageText);
-			setTargetObject(targetObject);
-		}
-
-		private String getLocalizedText() {
-			return _message;
-		}
-
-		public String getText() {
-			return getLocalizedText();
-		}
-
-		public String getText(ClassLoader cl) {
-			return getLocalizedText();
-		}
-
-		public String getText(Locale l) {
-			return getLocalizedText();
-		}
-
-		public String getText(Locale l, ClassLoader cl) {
-			return getLocalizedText();
-		}
-
-		public void setLocalizedMessage(String message) {
-			_message = message;
-		}
-	}
-
-	private static final String PLUGIN_ID_JSP_CORE = "org.eclipse.jst.jsp.core"; //$NON-NLS-1$
-
 	// for debugging
 	static final boolean DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspvalidator")).booleanValue(); //$NON-NLS-1$
 
-	private IContentType fJSPFContentType = null;
+	private static final String PLUGIN_ID_JSP_CORE = "org.eclipse.jst.jsp.core"; //$NON-NLS-1$
 
-	private JSPDirectiveValidator directiveValidator = new JSPDirectiveValidator(this);
-	private JSPELValidator elValidator = new JSPELValidator(this);
-	private JSPJavaValidator jspJavaValidator = new JSPJavaValidator(this);
-	private JSPActionValidator fJSPActionValidator = new JSPActionValidator(this);
+	/**
+	 * Gets current validation project configuration based on current project
+	 * (which is based on current document)
+	 * 
+	 * @return ProjectConfiguration
+	 */
+	static private ProjectConfiguration getProjectConfiguration(IFile file) {
+		ProjectConfiguration projectConfiguration = null;
+		if (file != null) {
+			IProject project = file.getProject();
+			if (project != null) {
+				try {
+					projectConfiguration = ConfigurationManager.getManager().getProjectConfiguration(project);
+				}
+				catch (InvocationTargetException e) {
+					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
+				}
+			}
+		}
+
+		return projectConfiguration;
+	}
+
+	/**
+	 * Checks if validator is enabled according in Validation preferences
+	 * 
+	 * @param vmd
+	 * @return
+	 */
+	static boolean isBatchValidatorPreferenceEnabled(IFile file) {
+		if (file == null) {
+			return true;
+		}
+
+		boolean enabled = true;
+		ProjectConfiguration configuration = getProjectConfiguration(file);
+		if (configuration != null) {
+			org.eclipse.wst.validation.internal.ValidatorMetaData metadata = ValidationRegistryReader.getReader().getValidatorMetaData(JSPBatchValidator.class.getName());
+			if (configuration != null && metadata != null) {
+				if (!configuration.isBuildEnabled(metadata) && !configuration.isManualEnabled(metadata))
+					enabled = false;
+			}
+		}
+		return enabled;
+	}
 
 	String fAdditionalContentTypesIDs[] = null;
 
+	private IContentType[] fContentTypes = null;
+
+	private JSPDirectiveValidator fJSPDirectiveValidator = new JSPDirectiveValidator(this);
+
+	private JSPELValidator fJSPELValidator = new JSPELValidator(this);
+
+	private IContentType fJSPFContentType = null;
+
+	private JSPJavaValidator fJSPJavaValidator = new JSPJavaValidator(this);
+
+	private JSPActionValidator fJSPActionValidator = new JSPActionValidator(this);
+
+
 	public void cleanup(IReporter reporter) {
-		directiveValidator.cleanup(reporter);
-		elValidator.cleanup(reporter);
-		jspJavaValidator.cleanup(reporter);
+		fJSPDirectiveValidator.cleanup(reporter);
+		fJSPELValidator.cleanup(reporter);
+		fJSPJavaValidator.cleanup(reporter);
 		fJSPActionValidator.cleanup(reporter);
 	}
 
+
 	void doValidate(IValidationContext helper, IReporter reporter) throws ValidationException {
 		String[] uris = helper.getURIs();
 		if (uris.length > 0) {
@@ -221,7 +186,7 @@
 				currentFile = wsRoot.getFile(new Path(uris[i]));
 				if (currentFile != null && currentFile.exists()) {
 					if (shouldValidate(currentFile) && fragmentCheck(currentFile)) {
-						Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, NLS.bind(JSPCoreMessages.MESSAGE_JSP_VALIDATING_MESSAGE_UI_, new String[]{currentFile.getFullPath().toString()}));
+						Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, currentFile.getFullPath().toString().substring(1));
 						reporter.displaySubtask(this, message);
 						validateFile(currentFile, reporter);
 					}
@@ -231,10 +196,13 @@
 			}
 		}
 		else {
-
 			// if uris[] length 0 -> validate() gets called for each project
 			if (helper instanceof IWorkbenchContext) {
 				IProject project = ((IWorkbenchContext) helper).getProject();
+
+				Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, NLS.bind(JSPCoreMessages.JSPBatchValidator_0, project.getFullPath()));
+				reporter.displaySubtask(this, message);
+
 				JSPFileVisitor visitor = new JSPFileVisitor(reporter);
 				try {
 					// collect all jsp files for the project
@@ -248,7 +216,7 @@
 				for (int i = 0; i < files.length && !reporter.isCancelled(); i++) {
 					if (shouldValidate(files[i]) && fragmentCheck(files[i])) {
 
-						IMessage message = new LocalizedMessage(IMessage.LOW_SEVERITY, NLS.bind(JSPCoreMessages.MESSAGE_JSP_VALIDATING_MESSAGE_UI_, new String[]{files[i].getFullPath().toString()}));
+						message = new LocalizedMessage(IMessage.LOW_SEVERITY, files[i].getFullPath().toString().substring(1));
 						reporter.displaySubtask(this, message);
 
 						validateFile(files[i], reporter);
@@ -288,7 +256,6 @@
 		return shouldValidate;
 	}
 
-
 	/**
 	 * Returns JSP fragment content type
 	 * 
@@ -315,49 +282,26 @@
 	}
 
 	/**
-	 * Checks if validator is enabled according in Validation preferences
+	 * Gets list of content types this visitor is interested in
 	 * 
-	 * @param vmd
-	 * @return
+	 * @return All JSP-related content types
 	 */
-	static boolean isBatchValidatorPreferenceEnabled(IFile file) {
-		if (file == null) {
-			return true;
-		}
-
-		boolean enabled = true;
-		ProjectConfiguration configuration = getProjectConfiguration(file);
-		if (configuration != null) {
-			org.eclipse.wst.validation.internal.ValidatorMetaData metadata = ValidationRegistryReader.getReader().getValidatorMetaData(JSPBatchValidator.class.getName());
-			if (configuration != null && metadata != null) {
-				if (!configuration.isBuildEnabled(metadata) && !configuration.isManualEnabled(metadata))
-					enabled = false;
+	private IContentType[] getValidContentTypes() {
+		if (fContentTypes == null) {
+			// currently "hard-coded" to be jsp & jspf
+			fContentTypes = new IContentType[]{Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP), Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSPFRAGMENT)};
+			if (fAdditionalContentTypesIDs != null) {
+				List allTypes = new ArrayList(Arrays.asList(fContentTypes));
+				for (int i = 0; i < fAdditionalContentTypesIDs.length; i++) {
+					IContentType type = Platform.getContentTypeManager().getContentType(fAdditionalContentTypesIDs[i]);
+					if (type != null) {
+						allTypes.add(type);
+					}
+				}
+				fContentTypes = (IContentType[]) allTypes.toArray(new IContentType[allTypes.size()]);
 			}
 		}
-		return enabled;
-	}
-
-	/**
-	 * Gets current validation project configuration based on current project
-	 * (which is based on current document)
-	 * 
-	 * @return ProjectConfiguration
-	 */
-	static private ProjectConfiguration getProjectConfiguration(IFile file) {
-		ProjectConfiguration projectConfiguration = null;
-		if (file != null) {
-			IProject project = file.getProject();
-			if (project != null) {
-				try {
-					projectConfiguration = ConfigurationManager.getManager().getProjectConfiguration(project);
-				}
-				catch (InvocationTargetException e) {
-					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-				}
-			}
-		}
-
-		return projectConfiguration;
+		return fContentTypes;
 	}
 
 	/**
@@ -405,13 +349,31 @@
 		return isFragment;
 	}
 
+	/**
+	 * Checks if fileName is some type of JSP (including JSP fragments)
+	 * 
+	 * @param fileName
+	 * @return true if filename indicates some type of JSP, false otherwise
+	 */
+	private boolean isJSPType(String fileName) {
+		boolean valid = false;
+
+		IContentType[] types = getValidContentTypes();
+		int i = 0;
+		while (i < types.length && !valid) {
+			valid = types[i].isAssociatedWith(fileName);
+			++i;
+		}
+		return valid;
+	}
+
 	private void performValidation(IFile f, IReporter reporter, IStructuredModel model) {
 		if (!reporter.isCancelled())
-			directiveValidator.performValidation(f, reporter, model.getStructuredDocument());
+			fJSPJavaValidator.performValidation(f, reporter, model);
 		if (!reporter.isCancelled())
-			elValidator.performValidation(f, reporter, model.getStructuredDocument());
+			fJSPDirectiveValidator.performValidation(f, reporter, model.getStructuredDocument());
 		if (!reporter.isCancelled())
-			jspJavaValidator.performValidation(f, reporter, model);
+			fJSPELValidator.performValidation(f, reporter, model.getStructuredDocument());
 		if (!reporter.isCancelled())
 			fJSPActionValidator.performValidation(f, reporter, model);
 	}
@@ -452,15 +414,19 @@
 	 * @param reporter
 	 */
 	void validateFile(IFile f, IReporter reporter) {
+		try {
+			f.refreshLocal(IResource.DEPTH_ZERO, new NullProgressMonitor());
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
 		IStructuredModel model = null;
 		try {
-			// get jsp model, get translation
+			// get JSP model on behalf of all JSP validators
 			model = StructuredModelManager.getModelManager().getModelForRead(f);
 			if (!reporter.isCancelled() && model != null) {
-				if (model instanceof IDOMModel) {
-					reporter.removeAllMessages(this, f);
-					performValidation(f, reporter, model);
-				}
+				reporter.removeAllMessages(this, f);
+				performValidation(f, reporter, model);
 			}
 		}
 		catch (IOException e) {
@@ -476,8 +442,7 @@
 	}
 
 	public IStatus validateInJob(final IValidationContext helper, final IReporter reporter) throws ValidationException {
-		IStatus status = Status.OK_STATUS;
-		Job currentJob = Platform.getJobManager().currentJob();
+		Job currentJob = Job.getJobManager().currentJob();
 		ISchedulingRule rule = null;
 		if (currentJob != null) {
 			rule = currentJob.getRule();
@@ -490,7 +455,6 @@
 				catch (ValidationException e) {
 					throw new CoreException(new Status(IStatus.ERROR, PLUGIN_ID_JSP_CORE, 0, PLUGIN_ID_JSP_CORE, e));
 				}
-
 			}
 		};
 		try {
@@ -502,6 +466,30 @@
 			}
 			throw new ValidationException(new LocalizedMessage(IMessage.ERROR_AND_WARNING, e.getMessage()), e);
 		}
-		return status;
+		return Status.OK_STATUS;
+	}
+
+	public ValidationResult validate(final IResource resource, int kind, ValidationState state, IProgressMonitor monitor) {
+		if (resource.getType() != IResource.FILE)
+			return null;
+		ValidationResult result = new ValidationResult();
+		final IReporter reporter = result.getReporter(monitor);
+		IWorkspaceRunnable validationRunnable = new IWorkspaceRunnable() {
+			public void run(IProgressMonitor monitor) throws CoreException {
+				validateFile((IFile) resource, reporter);
+			}
+		};
+		Job currentJob = Job.getJobManager().currentJob();
+		ISchedulingRule rule = null;
+		if (currentJob != null) {
+			rule = currentJob.getRule();
+		}
+		try {
+			JavaCore.run(validationRunnable, rule, new NullProgressMonitor());
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
+		return result;
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPContentValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPContentValidator.java
new file mode 100644
index 0000000..fd9a126
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPContentValidator.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.validation;
+
+import java.io.IOException;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jst.jsp.core.internal.Logger;
+import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeConstants;
+import org.eclipse.wst.html.core.internal.validate.HTMLValidationAdapterFactory;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
+
+/**
+ * This validator validates the contents of the content type of the JSP, like
+ * the HTML regions in a JSP with content type="text/html"
+ */
+public class JSPContentValidator extends JSPValidator {
+	/*
+	 * Copied from HTMLValidator
+	 */
+	private boolean hasHTMLFeature(IDOMDocument document) {
+		DocumentTypeAdapter adapter = (DocumentTypeAdapter) document.getAdapterFor(DocumentTypeAdapter.class);
+		if (adapter == null)
+			return false;
+		return adapter.hasFeature(HTMLDocumentTypeConstants.HTML);
+	}
+
+	/*
+	 * Copied from HTMLValidator
+	 */
+	private HTMLValidationReporter getReporter(IReporter reporter, IFile file, IDOMModel model) {
+		return new HTMLValidationReporter(this, reporter, file, model);
+	}
+
+	/*
+	 * Mostly copied from HTMLValidator
+	 */
+	private void validate(IReporter reporter, IFile file, IDOMModel model) {
+		if (file == null || model == null)
+			return; // error
+		IDOMDocument document = model.getDocument();
+		if (document == null)
+			return; // error
+
+		// This validator currently only handles validating HTML content in
+		// JSP
+		if (hasHTMLFeature(document)) {
+			INodeAdapterFactory factory = HTMLValidationAdapterFactory.getInstance();
+			ValidationAdapter adapter = (ValidationAdapter) factory.adapt(document);
+			if (adapter == null)
+				return; // error
+
+			HTMLValidationReporter rep = getReporter(reporter, file, model);
+			rep.clear();
+			adapter.setReporter(rep);
+			adapter.validate(document);
+		}
+	}
+
+	protected void validateFile(IFile f, IReporter reporter) {
+		IStructuredModel model = null;
+		try {
+			model = StructuredModelManager.getModelManager().getModelForRead(f);
+			if (!reporter.isCancelled() && model instanceof IDOMModel) {
+				reporter.removeAllMessages(this, f);
+				validate(reporter, f, (IDOMModel) model);
+			}
+		}
+		catch (IOException e) {
+			Logger.logException(e);
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
+		finally {
+			if (model != null)
+				model.releaseFromRead();
+		}
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java
index 0dcb03f..687e966 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPDirectiveValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -7,232 +7,319 @@
  * 
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.validation;
 
-import java.io.IOException;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Locale;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ProjectScope;
 import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
+import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
 import org.eclipse.jst.jsp.core.internal.Logger;
+import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
 import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
+import org.eclipse.jst.jsp.core.internal.util.FacetModuleCoreSupport;
+import org.eclipse.jst.jsp.core.taglib.ITaglibRecord;
+import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.html.core.internal.contentmodel.JSP20Namespace;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
 import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 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;
 
 import com.ibm.icu.text.Collator;
 
 /**
- * Checks for: - duplicate taglib prefix values - reserved taglib prefix
- * values
- * 
+ * Checks for: - duplicate taglib prefix values and reserved taglib prefix
+ * values in the same file
  */
-public class JSPDirectiveValidator extends JSPValidator implements ISourceValidator {
-	private static final boolean DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspvalidator")).booleanValue(); //$NON-NLS-1$
+public class JSPDirectiveValidator extends JSPValidator {
+	/**
+	 * 
+	 */
+	private static final String PREFERENCE_NODE_QUALIFIER = JSPCorePlugin.getDefault().getBundle().getSymbolicName();
 
 	private static Collator collator = Collator.getInstance(Locale.US);
-	private HashMap fReservedPrefixes = new HashMap();
-	private HashMap fDuplicatePrefixes = new HashMap();
-	private IDocument fDocument;
+
+	private static final boolean DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspvalidator")).booleanValue(); //$NON-NLS-1$
 
 	private IValidator fMessageOriginator;
-	private IFile fFile;
-	private boolean fEnableSourceValidation = true;
+	private IEclipsePreferences fPreferences = null;
 
-	public JSPDirectiveValidator(){
-		fReservedPrefixes.put("jsp", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		fReservedPrefixes.put("jspx", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		fReservedPrefixes.put("java", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		fReservedPrefixes.put("javax", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
-		fReservedPrefixes.put("servlet", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
-		fReservedPrefixes.put("sun", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
-		fReservedPrefixes.put("sunw", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
-		
-		this.fMessageOriginator = this;
+	private IPreferencesService fPreferencesService = null;
+	private HashMap fPrefixValueRegionToDocumentRegionMap = new HashMap();
+	private IJavaProject fProject = null;
+	private HashMap fReservedPrefixes = new HashMap();
+	private IScopeContext[] fScopes = null;
+	private int fSeverityIncludeFileMissing = -1;
+	private int fSeverityIncludeFileNotSpecified = -1;
+	private int fSeveritySuperClassNotFound = -1;
+	private int fSeverityTagdirUnresolvableURI = -1;
+	private int fSeverityTaglibDuplicatePrefixWithDifferentURIs = -1;
+
+	private int fSeverityTaglibDuplicatePrefixWithSameURIs = -1;
+	private int fSeverityTaglibMissingPrefix = -1;
+
+	private int fSeverityTaglibMissingURI = -1;
+
+
+	private int fSeverityTaglibUnresolvableURI = -1;
+
+	private HashMap fTaglibPrefixesInUse = new HashMap();
+
+	public JSPDirectiveValidator() {
+		initReservedPrefixes();
+		fMessageOriginator = this;
 	}
 
-
-	public JSPDirectiveValidator(IValidator validator){
-		fReservedPrefixes.put("jsp", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		fReservedPrefixes.put("jspx", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		fReservedPrefixes.put("java", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		fReservedPrefixes.put("javax", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
-		fReservedPrefixes.put("servlet", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
-		fReservedPrefixes.put("sun", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
-		fReservedPrefixes.put("sunw", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
+	public JSPDirectiveValidator(IValidator validator) {
+		initReservedPrefixes();
 		this.fMessageOriginator = validator;
 	}
-	/**
-	 * batch validation call
-	 */
-	protected void validateFile(IFile f, IReporter reporter) {
-		// for batch validation
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getModelForRead(f);
-			if (sModel != null) {
-				/* remove old messages (compatibility requirement) */
-				reporter.removeAllMessages(fMessageOriginator, f);
-				performValidation(f, reporter, sModel.getStructuredDocument());
+
+	public void cleanup(IReporter reporter) {
+		super.cleanup(reporter);
+		fTaglibPrefixesInUse.clear();
+		fPrefixValueRegionToDocumentRegionMap.clear();
+	}
+
+	private void collectTaglibPrefix(IStructuredDocumentRegion documentRegion, ITextRegion valueRegion, String taglibPrefix) {
+		fPrefixValueRegionToDocumentRegionMap.put(valueRegion, documentRegion);
+
+		Object o = fTaglibPrefixesInUse.get(taglibPrefix);
+		if (o == null) {
+			// prefix doesn't exist, remember it
+			fTaglibPrefixesInUse.put(taglibPrefix, valueRegion);
+		}
+		else {
+			List regionList = null;
+			// already a List
+			if (o instanceof List) {
+				regionList = (List) o;
 			}
-		}
-		catch (IOException e) {
-			Logger.logException(e);
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
+			/*
+			 * a single value region, create a new List and add previous
+			 * valueRegion
+			 */
+			else {
+				regionList = new ArrayList();
+				regionList.add(o);
+				fTaglibPrefixesInUse.put(taglibPrefix, regionList);
+			}
+			regionList.add(valueRegion);
 		}
 	}
 
+	int getMessageSeverity(String key) {
+		int sev = fPreferencesService.getInt(PREFERENCE_NODE_QUALIFIER, key, IMessage.NORMAL_SEVERITY, fScopes);
+		switch (sev) {
+			case ValidationMessage.ERROR :
+				return IMessage.HIGH_SEVERITY;
+			case ValidationMessage.WARNING :
+				return IMessage.NORMAL_SEVERITY;
+			case ValidationMessage.INFORMATION :
+				return IMessage.LOW_SEVERITY;
+			case ValidationMessage.IGNORE :
+				return ValidationMessage.IGNORE;
+		}
+		return IMessage.NORMAL_SEVERITY;
+	}
+	private void initReservedPrefixes() {
+		fReservedPrefixes.put("jsp", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		fReservedPrefixes.put("jspx", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		fReservedPrefixes.put("java", ""); //$NON-NLS-1$ //$NON-NLS-2$
+		fReservedPrefixes.put("javax", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
+		fReservedPrefixes.put("servlet", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
+		fReservedPrefixes.put("sun", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
+		fReservedPrefixes.put("sunw", ""); //$NON-NLS-1$ //$NON-NLS-2$ 
+	}
 
+	private boolean isReservedTaglibPrefix(String name) {
+		return fReservedPrefixes.get(name) != null;
+	}
+	
+	private void loadPreferences(IFile file) {
+		fScopes = new IScopeContext[]{new InstanceScope(), new DefaultScope()};
+
+		fPreferencesService = Platform.getPreferencesService();
+		if (file != null && file.isAccessible()) {
+			ProjectScope projectScope = new ProjectScope(file.getProject());
+			if (projectScope.getNode(PREFERENCE_NODE_QUALIFIER).getBoolean(JSPCorePreferenceNames.VALIDATION_USE_PROJECT_SETTINGS, false)) {
+				fScopes = new IScopeContext[]{projectScope, new InstanceScope(), new DefaultScope()};
+			}
+		}
+
+		fSeverityIncludeFileMissing = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_INCLUDE_FILE_NOT_FOUND);
+		fSeverityIncludeFileNotSpecified = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_INCLUDE_NO_FILE_SPECIFIED);
+		fSeverityTaglibDuplicatePrefixWithDifferentURIs = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_DUPLICATE_PREFIXES_DIFFERENT_URIS);
+		fSeverityTaglibDuplicatePrefixWithSameURIs = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_DUPLICATE_PREFIXES_SAME_URIS);
+		fSeverityTaglibMissingPrefix = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_MISSING_PREFIX);
+		fSeverityTaglibMissingURI = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_MISSING_URI_OR_TAGDIR);
+		fSeverityTaglibUnresolvableURI = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_UNRESOLVABLE_URI_OR_TAGDIR);
+		fSeverityTagdirUnresolvableURI = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_TAGLIB_UNRESOLVABLE_URI_OR_TAGDIR);
+		fSeveritySuperClassNotFound = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_DIRECTIVE_PAGE_SUPERCLASS_NOT_FOUND);
+
+	}
+	
 	protected void performValidation(IFile f, IReporter reporter, IStructuredDocument sDoc) {
+		loadPreferences(f);
+		
+		
+		setProject(f.getProject());
 		/*
 		 * when validating an entire file need to clear dupes or else you're
 		 * comparing between files
 		 */
-		fDuplicatePrefixes.clear();
+		fPrefixValueRegionToDocumentRegionMap.clear();
+		fTaglibPrefixesInUse.clear();
 
-		// need to set this for partial validate call to work
-		fDocument = sDoc;
 		// iterate all document regions
-		IStructuredDocumentRegion region = sDoc
-				.getFirstStructuredDocumentRegion();
+		IStructuredDocumentRegion region = sDoc.getFirstStructuredDocumentRegion();
 		while (region != null && !reporter.isCancelled()) {
 			// only checking directives
 			if (region.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				validateDirective(reporter, f, sDoc, region);
+				processDirective(reporter, f, sDoc, region);
 			}
 			region = region.getNext();
 		}
-		fDuplicatePrefixes.clear();
-		fDocument = null;
+
+		if (!reporter.isCancelled()) {
+			reportTaglibDuplicatePrefixes(f, reporter, sDoc);
+		}
+
+		fPrefixValueRegionToDocumentRegionMap.clear();
+		fTaglibPrefixesInUse.clear();
+		setProject(null);
+		unloadPreferences();
 	}
 
-	public void connect(IDocument document) {
-		fDuplicatePrefixes.clear();
-		fDocument = document;
+	private void processDirective(IReporter reporter, IFile file, IStructuredDocument sDoc, IStructuredDocumentRegion documentRegion) {
+		String directiveName = getDirectiveName(documentRegion);
+		// we only care about taglib directive
+		if (directiveName.equals("taglib")) { //$NON-NLS-1$
+			processTaglibDirective(reporter, file, sDoc, documentRegion);
+		}
+		else if (directiveName.equals("include")) { //$NON-NLS-1$
+			processIncludeDirective(reporter, file, sDoc, documentRegion);
+		}
+		else if (directiveName.equals("page")) { //$NON-NLS-1$
+			processPageDirective(reporter, file, sDoc, documentRegion);
+		}
+	}
 
-		IStructuredModel model = null;
-		IFile file = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-			if (model != null) {
-				String baseLocation = model.getBaseLocation();
-				// The baseLocation may be a path on disk or relative to the
-				// workspace root. Don't translate on-disk paths to
-				// in-workspace resources.
-				IPath basePath = new Path(baseLocation);
-				if (basePath.segmentCount() > 1) {
-					file = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
-					/*
-					 * If the IFile doesn't  exist, make sure it's not
-					 * returned
-					 */
-					if (!file.exists())
-						file = null;
+	private void processIncludeDirective(IReporter reporter, IFile file, IStructuredDocument sDoc, IStructuredDocumentRegion documentRegion) {
+		ITextRegion fileValueRegion = getAttributeValueRegion(documentRegion, JSP11Namespace.ATTR_NAME_FILE);
+		if (fileValueRegion != null) {
+			// file specified
+			String fileValue = documentRegion.getText(fileValueRegion);
+			fileValue = StringUtils.stripQuotes(fileValue);
+
+			if (fileValue.length() == 0 && fSeverityIncludeFileNotSpecified != ValidationMessage.IGNORE) {
+				// file value is specified but empty
+				String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_3, JSP11Namespace.ATTR_NAME_FILE);
+				LocalizedMessage message = new LocalizedMessage(fSeverityIncludeFileNotSpecified, msgText, file);
+				int start = documentRegion.getStartOffset(fileValueRegion);
+				int length = fileValueRegion.getTextLength();
+				int lineNo = sDoc.getLineOfOffset(start);
+				message.setLineNo(lineNo);
+				message.setOffset(start);
+				message.setLength(length);
+
+				reporter.addMessage(fMessageOriginator, message);
+			}
+			else if (fSeverityIncludeFileMissing != ValidationMessage.IGNORE) {
+				IPath testPath = FacetModuleCoreSupport.resolve(file.getFullPath(), fileValue);
+				if (testPath.segmentCount() > 1) {
+					IFile testFile = file.getWorkspace().getRoot().getFile(testPath);
+					if (!testFile.isAccessible()) {
+						// File not found
+						String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_4, new String[]{fileValue, testPath.toString()});
+						LocalizedMessage message = new LocalizedMessage(fSeverityIncludeFileMissing, msgText, file);
+						int start = documentRegion.getStartOffset(fileValueRegion);
+						int length = fileValueRegion.getTextLength();
+						int lineNo = sDoc.getLineOfOffset(start);
+						message.setLineNo(lineNo);
+						message.setOffset(start);
+						message.setLength(length);
+
+						reporter.addMessage(fMessageOriginator, message);
+					}
 				}
 			}
 		}
-		finally {
-			if (model != null) {
-				model.releaseFromRead();
-			}
-		}
-		fFile = file;
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=199175
-		fEnableSourceValidation = (fFile != null && fDocument instanceof IStructuredDocument && JSPBatchValidator.isBatchValidatorPreferenceEnabled(fFile) && shouldReallyValidate(fFile));
-		if(DEBUG) {
-			Logger.log(Logger.INFO, getClass().getName() + " enablement for source validation: " + fEnableSourceValidation); //$NON-NLS-1$
+		else if (fSeverityIncludeFileNotSpecified != ValidationMessage.IGNORE) {
+			// file is not specified at all
+			String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_3, JSP11Namespace.ATTR_NAME_FILE);
+			LocalizedMessage message = new LocalizedMessage(fSeverityIncludeFileNotSpecified, msgText, file);
+			int start = documentRegion.getStartOffset();
+			int length = documentRegion.getTextLength();
+			int lineNo = sDoc.getLineOfOffset(start);
+			message.setLineNo(lineNo);
+			message.setOffset(start);
+			message.setLength(length);
+
+			reporter.addMessage(fMessageOriginator, message);
 		}
 	}
 
-	public void disconnect(IDocument document) {
-		fDuplicatePrefixes.clear();
-		fDocument = null;
-		fFile = null;
-	}
-	
 	/**
-	 * for as you type validation (partial document)
+	 * @param reporter
+	 * @param file
+	 * @param doc
+	 * @param documentRegion
 	 */
-	public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
-		if(fEnableSourceValidation) {
-			if(DEBUG) {
-				Logger.log(Logger.INFO, getClass().getName() + " revalidating " + dirtyRegion); //$NON-NLS-1$
-			}
-			validate(dirtyRegion, helper, reporter, fFile);
-		}
-	}
+	private void processPageDirective(IReporter reporter, IFile file, IStructuredDocument doc, IStructuredDocumentRegion documentRegion) {
+		ITextRegion superclassValueRegion = getAttributeValueRegion(documentRegion, JSP11Namespace.ATTR_NAME_EXTENDS);
+		if (superclassValueRegion != null) {
+			// file specified
+			String superclassName = documentRegion.getText(superclassValueRegion);
+			superclassName = StringUtils.stripQuotes(superclassName);
 
-	private void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter, IFile file) {
-		// check for restricted and duplicate prefixes
-		IStructuredDocument sDoc = (IStructuredDocument) fDocument;
-		IStructuredDocumentRegion[] regions = sDoc.getStructuredDocumentRegions(dirtyRegion.getOffset(), dirtyRegion.getLength());
-		for (int i = 0; i < regions.length; i++) {
-			// only checking directives
-			if (regions[i].getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				validateDirective(reporter, file, sDoc, regions[i]);
-			}
-		}
-	}
-
-	private void validateDirective(IReporter reporter, IFile file, IStructuredDocument sDoc, IStructuredDocumentRegion sdRegion) {
-		// we only care about taglib directive
-		if (getDirectiveName(sdRegion).equals("taglib")) { //$NON-NLS-1$
-			ITextRegion valueRegion = getAttributeValueRegion(sdRegion, JSP11Namespace.ATTR_NAME_PREFIX);
-			if (valueRegion == null)
-				return;
-
-			String taglibPrefix = sdRegion.getText(valueRegion);
-			int start = sdRegion.getStartOffset(valueRegion);
-			// length before stripquotes
-			int length = valueRegion.getTextLength();
-			taglibPrefix = StringUtils.stripQuotes(taglibPrefix);
-
-			ITextRegion uriValueRegion = getAttributeValueRegion(sdRegion, "uri"); //$NON-NLS-1$
-			String taglibURI = StringUtils.stripQuotes(sdRegion.getText(uriValueRegion));
-
-			LocalizedMessage message = null;
-
-			// check for errors
-			// use file if available (for markers)
-			if (isReservedPrefix(taglibPrefix)) {
-				int sev = IMessage.HIGH_SEVERITY;
-				String msgText = JSPCoreMessages.JSPDirectiveValidator_0 + taglibPrefix + "'"; //$NON-NLS-2$ //$NON-NLS-1$
-				message = (file == null ? new LocalizedMessage(sev, msgText) : new LocalizedMessage(sev, msgText, file));
-			}
-			else if (isDuplicatePrefix(sdRegion, taglibPrefix, taglibURI)) {
-				int sev = IMessage.NORMAL_SEVERITY;
-				String msgText = JSPCoreMessages.JSPDirectiveValidator_2 + taglibPrefix + "'"; //$NON-NLS-2$ //$NON-NLS-1$
-				message = (file == null ? new LocalizedMessage(sev, msgText) : new LocalizedMessage(sev, msgText, file));
+			IType superClass = null;
+			if (superclassName != null && superclassName.length() > 0 && fProject != null && fProject.exists()) {
+				try {
+					superClass = fProject.findType(superclassName.trim(), new NullProgressMonitor());
+				}
+				catch (JavaModelException e) {
+					Logger.logException(e);
+				}
 			}
 
-			// if there's a message, there was an error found
-			if (message != null) {
-				int lineNo = sDoc.getLineOfOffset(start);
+			if (superClass == null && fSeveritySuperClassNotFound != ValidationMessage.IGNORE) {
+				// file value is specified but empty
+				String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_8, superclassName);
+				LocalizedMessage message = new LocalizedMessage(fSeveritySuperClassNotFound, msgText, file);
+				int start = documentRegion.getStartOffset(superclassValueRegion);
+				int length = superclassValueRegion.getTextLength();
+				int lineNo = doc.getLineOfOffset(start);
 				message.setLineNo(lineNo);
 				message.setOffset(start);
 				message.setLength(length);
@@ -242,42 +329,252 @@
 		}
 	}
 
-	private boolean isDuplicatePrefix(IStructuredDocumentRegion region, String taglibPrefix, String uri) {
-		boolean dupe = false;
-		IStructuredDocumentRegion existingTaglibDirective = (IStructuredDocumentRegion) fDuplicatePrefixes.get(taglibPrefix);
-		if (existingTaglibDirective == null) {
-			// prefix doesn't exist, not a dupe
-			fDuplicatePrefixes.put(taglibPrefix, region);
-		}
-		else {
-			if (existingTaglibDirective.isDeleted()) {
-				// region was deleted, replace w/ new region
-				// not a dupe
-				fDuplicatePrefixes.put(taglibPrefix, region);
-			}
-			else if (region != existingTaglibDirective) {
-				/*
-				 * region exists and it's not this one it's a dupe
-				 * 
-				 * 203711 - taglib declarations in JSP fragments
-				 */
-				ITextRegion oldURIRegion = getAttributeValueRegion(existingTaglibDirective, "uri");
-				String oldURI = StringUtils.stripQuotes(region.getText(oldURIRegion));
-				if (collator.compare(uri, oldURI) != 0) {
-					dupe = true;
+	private void processTaglibDirective(IReporter reporter, IFile file, IStructuredDocument sDoc, IStructuredDocumentRegion documentRegion) {
+		ITextRegion prefixValueRegion = null;
+		ITextRegion uriValueRegion = getAttributeValueRegion(documentRegion, JSP11Namespace.ATTR_NAME_URI);
+		ITextRegion tagdirValueRegion = getAttributeValueRegion(documentRegion, JSP20Namespace.ATTR_NAME_TAGDIR);
+		if (uriValueRegion != null) {
+			// URI is specified
+			String uri = documentRegion.getText(uriValueRegion);
+
+			if (file != null) {
+				uri = StringUtils.stripQuotes(uri);
+				if (uri.length() > 0) {
+					ITaglibRecord tld = TaglibIndex.resolve(file.getFullPath().toString(), uri, false);
+					if (tld == null && fSeverityTaglibUnresolvableURI != ValidationMessage.IGNORE) {
+						// URI specified but does not resolve
+						String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_1, uri);
+						LocalizedMessage message = new LocalizedMessage(fSeverityTaglibUnresolvableURI, msgText, file);
+						int start = documentRegion.getStartOffset(uriValueRegion);
+						int length = uriValueRegion.getTextLength();
+						int lineNo = sDoc.getLineOfOffset(start);
+						message.setLineNo(lineNo);
+						message.setOffset(start);
+						message.setLength(length);
+
+						message.setAttribute("PROBLEM_ID", new Integer(611));
+
+						reporter.addMessage(fMessageOriginator, message);
+					}
+				}
+				else if (fSeverityTaglibMissingURI != ValidationMessage.IGNORE) {
+					// URI specified but empty string
+					String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_3, JSP11Namespace.ATTR_NAME_URI);
+					LocalizedMessage message = new LocalizedMessage(fSeverityTaglibMissingURI, msgText, file);
+					int start = documentRegion.getStartOffset(uriValueRegion);
+					int length = uriValueRegion.getTextLength();
+					int lineNo = sDoc.getLineOfOffset(start);
+					message.setLineNo(lineNo);
+					message.setOffset(start);
+					message.setLength(length);
+
+					reporter.addMessage(fMessageOriginator, message);
 				}
 			}
 		}
-		return dupe;
+		else if (tagdirValueRegion != null) {
+			// URI is specified
+			String tagdir = documentRegion.getText(tagdirValueRegion);
 
+			if (file != null) {
+				tagdir = StringUtils.stripQuotes(tagdir);
+				if (tagdir.length() <= 0 && fSeverityTaglibMissingURI != ValidationMessage.IGNORE) {
+					// tagdir specified but empty string
+					String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_3, JSP20Namespace.ATTR_NAME_TAGDIR);
+					LocalizedMessage message = new LocalizedMessage(fSeverityTaglibMissingURI, msgText, file);
+					int start = documentRegion.getStartOffset(tagdirValueRegion);
+					int length = tagdirValueRegion.getTextLength();
+					int lineNo = sDoc.getLineOfOffset(start);
+					message.setLineNo(lineNo);
+					message.setOffset(start);
+					message.setLength(length);
+
+					reporter.addMessage(fMessageOriginator, message);
+				}
+				else if (TaglibIndex.resolve(file.getFullPath().toString(), tagdir, false) == null && fSeverityTagdirUnresolvableURI != ValidationMessage.IGNORE) {
+					// URI specified but does not resolve
+					String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_1, tagdir);
+					LocalizedMessage message = new LocalizedMessage(fSeverityTaglibUnresolvableURI, msgText, file);
+					int start = documentRegion.getStartOffset(tagdirValueRegion);
+					int length = tagdirValueRegion.getTextLength();
+					int lineNo = sDoc.getLineOfOffset(start);
+					message.setLineNo(lineNo);
+					message.setOffset(start);
+					message.setLength(length);
+
+					reporter.addMessage(fMessageOriginator, message);
+				}
+			}
+		}
+		else if (fSeverityTaglibMissingURI != ValidationMessage.IGNORE) {
+			// URI not specified or empty string
+			String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_7, new String[]{JSP20Namespace.ATTR_NAME_TAGDIR, JSP11Namespace.ATTR_NAME_URI});
+			LocalizedMessage message = new LocalizedMessage(fSeverityTaglibMissingURI, msgText, file);
+			int start = documentRegion.getStartOffset();
+			int length = documentRegion.getTextLength();
+			int lineNo = sDoc.getLineOfOffset(start);
+			message.setLineNo(lineNo);
+			message.setOffset(start);
+			message.setLength(length);
+
+			reporter.addMessage(fMessageOriginator, message);
+		}
+
+		prefixValueRegion = getAttributeValueRegion(documentRegion, JSP11Namespace.ATTR_NAME_PREFIX);
+		if (prefixValueRegion != null) {
+			// prefix specified
+			String taglibPrefix = documentRegion.getText(prefixValueRegion);
+			taglibPrefix = StringUtils.stripQuotes(taglibPrefix);
+
+			collectTaglibPrefix(documentRegion, prefixValueRegion, taglibPrefix);
+
+			if (isReservedTaglibPrefix(taglibPrefix)) {
+				// prefix is a reserved prefix
+				String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_0, taglibPrefix);
+				int sev = IMessage.HIGH_SEVERITY;
+				LocalizedMessage message = (file == null ? new LocalizedMessage(sev, msgText) : new LocalizedMessage(sev, msgText, file));
+				int start = documentRegion.getStartOffset(prefixValueRegion);
+				int length = prefixValueRegion.getTextLength();
+				int lineNo = sDoc.getLineOfOffset(start);
+				message.setLineNo(lineNo);
+				message.setOffset(start);
+				message.setLength(length);
+
+				reporter.addMessage(fMessageOriginator, message);
+			}
+			if (taglibPrefix.length() == 0 && fSeverityTaglibMissingPrefix != ValidationMessage.IGNORE) {
+				// prefix is specified but empty
+				String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_3, JSP11Namespace.ATTR_NAME_PREFIX);
+				LocalizedMessage message = new LocalizedMessage(fSeverityTaglibMissingPrefix, msgText, file);
+				int start = documentRegion.getStartOffset(prefixValueRegion);
+				int length = prefixValueRegion.getTextLength();
+				int lineNo = sDoc.getLineOfOffset(start);
+				message.setLineNo(lineNo);
+				message.setOffset(start);
+				message.setLength(length);
+
+				reporter.addMessage(fMessageOriginator, message);
+			}
+		}
+		else if (fSeverityTaglibMissingPrefix != ValidationMessage.IGNORE) {
+			// prefix is not specified
+			String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_3, JSP11Namespace.ATTR_NAME_PREFIX);
+			LocalizedMessage message = new LocalizedMessage(fSeverityTaglibMissingPrefix, msgText, file);
+			int start = documentRegion.getStartOffset();
+			int length = documentRegion.getTextLength();
+			int lineNo = sDoc.getLineOfOffset(start);
+			message.setLineNo(lineNo);
+			message.setOffset(start);
+			message.setLength(length);
+
+			reporter.addMessage(fMessageOriginator, message);
+		}
 	}
 
-	public void cleanup(IReporter reporter) {
-		super.cleanup(reporter);
-		fDuplicatePrefixes.clear();
+	private void reportTaglibDuplicatePrefixes(IFile file, IReporter reporter, IStructuredDocument document) {
+		if (fSeverityTaglibDuplicatePrefixWithDifferentURIs == ValidationMessage.IGNORE && fSeverityTaglibDuplicatePrefixWithSameURIs == ValidationMessage.IGNORE)
+			return;
+
+		String[] prefixes = (String[]) fTaglibPrefixesInUse.keySet().toArray(new String[0]);
+		for (int prefixNumber = 0; prefixNumber < prefixes.length; prefixNumber++) {
+			int severity = fSeverityTaglibDuplicatePrefixWithSameURIs;
+
+			Object o = fTaglibPrefixesInUse.get(prefixes[prefixNumber]);
+			/*
+			 * Only care if it's a List (because there was more than one
+			 * directive with that prefix) and if we're supposed to report
+			 * duplicates
+			 */
+			if (o instanceof List) {
+				List valueRegions = (List) o;
+				String uri = null;
+				for (int regionNumber = 0; regionNumber < valueRegions.size(); regionNumber++) {
+					IStructuredDocumentRegion documentRegion = (IStructuredDocumentRegion) fPrefixValueRegionToDocumentRegionMap.get(valueRegions.get(regionNumber));
+					ITextRegion uriValueRegion = getAttributeValueRegion(documentRegion, JSP11Namespace.ATTR_NAME_URI);
+					if (uriValueRegion == null) {
+						uriValueRegion = getAttributeValueRegion(documentRegion, JSP20Namespace.ATTR_NAME_TAGDIR);
+					}
+					if (uriValueRegion != null) {
+						String uri2 = StringUtils.stripQuotes(documentRegion.getText(uriValueRegion));
+						if (uri == null) {
+							uri = uri2;
+						}
+						else {
+							if (collator.compare(uri, uri2) != 0) {
+								severity = fSeverityTaglibDuplicatePrefixWithDifferentURIs;
+							}
+						}
+					}
+				}
+
+				String msgText = NLS.bind(JSPCoreMessages.JSPDirectiveValidator_2, prefixes[prefixNumber]); //$NON-NLS-2$ //$NON-NLS-1$
+
+				// Report an error in all directives using this prefix
+				for (int regionNumber = 0; regionNumber < valueRegions.size(); regionNumber++) {
+
+					ITextRegion valueRegion = (ITextRegion) valueRegions.get(regionNumber);
+					IStructuredDocumentRegion documentRegion = (IStructuredDocumentRegion) fPrefixValueRegionToDocumentRegionMap.get(valueRegion);
+					LocalizedMessage message = (file == null ? new LocalizedMessage(severity, msgText) : new LocalizedMessage(severity, msgText, file));
+
+					// if there's a message, there was an error found
+					int start = documentRegion.getStartOffset(valueRegion);
+					int length = valueRegion.getTextLength();
+					int lineNo = document.getLineOfOffset(start);
+					message.setLineNo(lineNo);
+					message.setOffset(start);
+					message.setLength(length);
+
+					reporter.addMessage(fMessageOriginator, message);
+				}
+			}
+		}
 	}
 
-	private boolean isReservedPrefix(String name) {
-		return fReservedPrefixes.get(name) != null;
+	/**
+	 * @param project
+	 */
+	private void setProject(IProject project) {
+		boolean useProject = false;
+		if (project != null) {
+			fProject = JavaCore.create(project);
+			fPreferences = new ProjectScope(fProject.getProject()).getNode(PREFERENCE_NODE_QUALIFIER);
+			useProject = fPreferences.getBoolean(HTMLCorePreferenceNames.USE_PROJECT_SETTINGS, false);
+		}
+		else {
+			fProject = null;
+		}
+
+		if (!useProject) {
+			fPreferences = new InstanceScope().getNode(PREFERENCE_NODE_QUALIFIER);
+		}
+	}
+
+	private void unloadPreferences() {
+		fPreferencesService = null;
+		fScopes = null;
+	}
+
+	/**
+	 * batch validation call
+	 */
+	protected void validateFile(IFile f, IReporter reporter) {
+		if (DEBUG) {
+			Logger.log(Logger.INFO, getClass().getName() + " validating: " + f); //$NON-NLS-1$
+		}
+
+		IStructuredModel sModel = null;
+		try {
+			sModel = StructuredModelManager.getModelManager().getModelForRead(f);
+			if (sModel != null && !reporter.isCancelled()) {
+				performValidation(f, reporter, sModel.getStructuredDocument());
+			}
+		}
+		catch (Exception e) {
+			Logger.logException(e);
+		}
+		finally {
+			if (sModel != null)
+				sModel.releaseFromRead();
+		}
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPELValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPELValidator.java
index b35b0bb..8fb17de 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPELValidator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPELValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 BEA Systems and others.
+ Copyright (c) 2005, 2008 BEA Systems 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
@@ -14,18 +14,20 @@
 import java.util.Iterator;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
+import org.eclipse.core.resources.ProjectScope;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
+import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
 import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.java.jspel.JSPELParser;
 import org.eclipse.jst.jsp.core.internal.java.jspel.ParseException;
 import org.eclipse.jst.jsp.core.internal.java.jspel.Token;
 import org.eclipse.jst.jsp.core.internal.java.jspel.TokenMgrError;
+import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
@@ -33,91 +35,42 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
+import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
 import org.eclipse.wst.validation.internal.core.Message;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 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;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 
-public class JSPELValidator extends JSPValidator implements ISourceValidator {
-	private static final boolean DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspvalidator")).booleanValue(); //$NON-NLS-1$	
+
+public class JSPELValidator extends JSPValidator {
+	private static final boolean DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspvalidator")).booleanValue(); //$NON-NLS-1$		
+	private static final String PREFERENCE_NODE_QUALIFIER = JSPCorePlugin.getDefault().getBundle().getSymbolicName();
 
 	private IValidator fMessageOriginator;
-	private IDocument fDocument;
-	private IFile fFile;
-	private boolean fEnableSourceValidation = false;
 
-	public JSPELValidator(){
+	public JSPELValidator() {
 		this.fMessageOriginator = this;
 	}
-	public JSPELValidator(IValidator validator){
+
+	public JSPELValidator(IValidator validator) {
 		this.fMessageOriginator = validator;
 	}
-	
 
-	public void connect(IDocument document) {
-		fDocument = document;
-
-		IStructuredModel model = null;
-		IFile file = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-			if (model != null) {
-				String baseLocation = model.getBaseLocation();
-				// The baseLocation may be a path on disk or relative to the
-				// workspace root. Don't translate on-disk paths to
-				// in-workspace resources.
-				IPath basePath = new Path(baseLocation);
-				if (basePath.segmentCount() > 1) {
-					file = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
-					/*
-					 * If the IFile doesn't  exist, make sure it's not
-					 * returned
-					 */
-					if (!file.exists())
-						file = null;
-				}
-			}
+	protected void validateFile(IFile file, IReporter reporter) {
+		if (DEBUG) {
+			Logger.log(Logger.INFO, getClass().getName() + " validating: " + file); //$NON-NLS-1$
 		}
-		finally {
-			if (model != null) {
-				model.releaseFromRead();
-			}
-		}
-		fFile = file;
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=199175
-		fEnableSourceValidation = (fDocument instanceof IStructuredDocument && JSPBatchValidator.isBatchValidatorPreferenceEnabled(fFile) && shouldReallyValidate(fFile));
-		if(DEBUG) {
-			Logger.log(Logger.INFO, getClass().getName() + " enablement for source validation: " + fEnableSourceValidation); //$NON-NLS-1$
-		}
-	}
 
-	public void disconnect(IDocument document) {
-		fDocument = null;
-		fFile = null;
-	}
-
-	public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
-		if(fEnableSourceValidation) {
-			if(DEBUG) {
-				Logger.log(Logger.INFO, getClass().getName() + " revalidating"); //$NON-NLS-1$
-			}
-			performValidation(fFile, reporter, (IStructuredDocument) fDocument);
-		}
-	}
-
-	protected void validateFile(IFile file, IReporter reporter) {		
 		IStructuredModel model = null;
 		try {
 			model = StructuredModelManager.getModelManager().getModelForRead(file);
-			if (!reporter.isCancelled()) {
-				reporter.removeAllMessages(fMessageOriginator, file);
+			if (!reporter.isCancelled() && model != null) {
 				performValidation(file, reporter, model.getStructuredDocument());
 			}
 		}
 		catch (Exception e) {
+			Logger.logException(e);
 		}
 		finally {
 			if (null != model)
@@ -125,7 +78,43 @@
 		}
 	}
 
+	private IPreferencesService fPreferencesService = null;
+	private IScopeContext[] fScopes = null;
+
+	private void loadPreferences(IFile file) {
+		fScopes = new IScopeContext[]{new InstanceScope(), new DefaultScope()};
+
+		fPreferencesService = Platform.getPreferencesService();
+		if (file != null && file.isAccessible()) {
+			ProjectScope projectScope = new ProjectScope(file.getProject());
+			if (projectScope.getNode(PREFERENCE_NODE_QUALIFIER).getBoolean(JSPCorePreferenceNames.VALIDATION_USE_PROJECT_SETTINGS, false)) {
+				fScopes = new IScopeContext[]{projectScope, new InstanceScope(), new DefaultScope()};
+			}
+		}
+	}
+	
+	int getMessageSeverity(String key) {
+		int sev = fPreferencesService.getInt(PREFERENCE_NODE_QUALIFIER, key, IMessage.NORMAL_SEVERITY, fScopes);
+		switch (sev) {
+			case ValidationMessage.ERROR :
+				return IMessage.HIGH_SEVERITY;
+			case ValidationMessage.WARNING :
+				return IMessage.NORMAL_SEVERITY;
+			case ValidationMessage.INFORMATION :
+				return IMessage.LOW_SEVERITY;
+			case ValidationMessage.IGNORE :
+				return ValidationMessage.IGNORE;
+		}
+		return IMessage.NORMAL_SEVERITY;
+	}
+	
+	private void unloadPreferences() {
+		fPreferencesService = null;
+		fScopes = null;
+	}
+
 	protected void performValidation(IFile file, IReporter reporter, IStructuredDocument structuredDoc) {
+		loadPreferences(file);
 		IStructuredDocumentRegion curNode = structuredDoc.getFirstStructuredDocumentRegion();
 		while (null != curNode && !reporter.isCancelled()) {
 			if (curNode.getType() != DOMRegionContext.XML_COMMENT_TEXT && curNode.getType() != DOMRegionContext.XML_CDATA_TEXT && curNode.getType() != DOMRegionContext.UNDEFINED) {
@@ -133,8 +122,9 @@
 			}
 			curNode = curNode.getNext();
 		}
+		unloadPreferences();
 	}
-	
+
 	protected void validateRegionContainer(ITextRegionCollection container, IReporter reporter, IFile file) {
 		ITextRegionCollection containerRegion = container;
 		Iterator regions = containerRegion.getRegions().iterator();
@@ -163,20 +153,26 @@
 			elParser.Expression();
 		}
 		catch (ParseException e) {
-			Token curTok = e.currentToken;
-			int problemStartOffset = contentStart + curTok.beginColumn;
-			Message message = new LocalizedMessage(IMessage.NORMAL_SEVERITY, JSPCoreMessages.JSPEL_Syntax);
-			message.setOffset(problemStartOffset);
-			message.setLength(curTok.endColumn - curTok.beginColumn + 1);
-			message.setTargetObject(file);
-			reporter.addMessage(fMessageOriginator, message);
+			int sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_EL_SYNTAX);
+			if (sev != ValidationMessage.IGNORE) {
+				Token curTok = e.currentToken;
+				int problemStartOffset = contentStart + curTok.beginColumn;
+				Message message = new LocalizedMessage(sev, JSPCoreMessages.JSPEL_Syntax);
+				message.setOffset(problemStartOffset);
+				message.setLength(curTok.endColumn - curTok.beginColumn + 1);
+				message.setTargetObject(file);
+				reporter.addMessage(fMessageOriginator, message);
+			}
 		}
 		catch (TokenMgrError te) {
-			Message message = new LocalizedMessage(IMessage.NORMAL_SEVERITY, JSPCoreMessages.JSPEL_Token);
-			message.setOffset(contentStart);
-			message.setLength(contentLength);
-			message.setTargetObject(file);
-			reporter.addMessage(fMessageOriginator, message);
+			int sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_EL_LEXER);
+			if (sev != ValidationMessage.IGNORE) {
+				Message message = new LocalizedMessage(IMessage.NORMAL_SEVERITY, JSPCoreMessages.JSPEL_Token);
+				message.setOffset(contentStart);
+				message.setLength(contentLength);
+				message.setTargetObject(file);
+				reporter.addMessage(fMessageOriginator, message);
+			}
 		}
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPJavaValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPJavaValidator.java
index a15dbe9..b01860f 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPJavaValidator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPJavaValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * Copyright (c) 2006, 2008 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
  *     
@@ -15,227 +15,99 @@
 import java.util.List;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.resources.ProjectScope;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jdt.core.compiler.IProblem;
 import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.Position;
 import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
 import org.eclipse.jst.jsp.core.internal.Logger;
+import org.eclipse.jst.jsp.core.internal.java.IJSPProblem;
 import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapterFactory;
 import org.eclipse.jst.jsp.core.internal.java.JSPTranslationExtension;
+import org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP;
+import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.operations.IWorkbenchContext;
+import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 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;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 
-public class JSPJavaValidator extends JSPValidator implements ISourceValidator {
+public class JSPJavaValidator extends JSPValidator {
 	private static final boolean DEBUG = Boolean.valueOf(Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspvalidator")).booleanValue(); //$NON-NLS-1$
-	public ISchedulingRule getSchedulingRule(IValidationContext helper) {
-		if (helper instanceof IWorkbenchContext) {
-			/*
-			 * Wrap validation inside of a JavaModelOperation to collapse
-			 * event notification. For this reason, we use a single build rule
-			 * when running batch validation.
-			 */
-			return ResourcesPlugin.getWorkspace().getRuleFactory().buildRule();
-		}
-		/*
-		 * For other kinds of validation, use no specific rule
-		 */
-		return null;
-	}
-
 	private IValidator fMessageOriginator;
-	private IStructuredModel fModel;
-	private IFile fFile;
-	private boolean fEnableSourceValidation;
+
+	private IPreferencesService fPreferencesService = null;
+	private static final String PREFERENCE_NODE_QUALIFIER = JSPCorePlugin.getDefault().getBundle().getSymbolicName();
+	private IScopeContext[] fScopes = null;
 
 	public JSPJavaValidator() {
 		this.fMessageOriginator = this;
 	}
 
-	void performValidation(IFile f, IReporter reporter, IStructuredModel model) {
-		IDOMModel domModel = (IDOMModel) model;
-
-		setupAdapterFactory(domModel);
-		IDOMDocument xmlDoc = domModel.getDocument();
-		JSPTranslationAdapter translationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
-		JSPTranslation translation = translationAdapter.getJSPTranslation();
-
-		if (!reporter.isCancelled()) {
-			translation.setProblemCollectingActive(true);
-			translation.reconcileCompilationUnit();
-			List problems = translation.getProblems();
-			// add new messages
-			for (int i = 0; i < problems.size() && !reporter.isCancelled(); i++) {
-				IMessage m = createMessageFromProblem((IProblem) problems.get(i), f, translation, domModel.getStructuredDocument());
-				if (m != null)
-					reporter.addMessage(fMessageOriginator, m);
-			}
-		}
-	}
-
 	public JSPJavaValidator(IValidator validator) {
 		this.fMessageOriginator = validator;
 	}
 
-	public void connect(IDocument document) {
-		IFile file = null;
-		try {
-			fModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (fModel != null) {
-				String baseLocation = fModel.getBaseLocation();
-				// The baseLocation may be a path on disk or relative to the
-				// workspace root. Don't translate on-disk paths to
-				// in-workspace resources.
-				IPath basePath = new Path(baseLocation);
-				if (basePath.segmentCount() > 1) {
-					file = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
-					/*
-					 * If the IFile doesn't exist, make sure it's not returned
+	/**
+	 * Assumed the message offset is an indirect position. In other words, an
+	 * error from an included file.
+	 * 
+	 * @param m
+	 * @param translation
+	 */
+	private void adjustIndirectPosition(IMessage m, IJSPTranslation translation) {
+
+		if (!(translation instanceof JSPTranslationExtension))
+			return;
+
+		IDocument jspDoc = ((JSPTranslationExtension) translation).getJspDocument();
+		if (!(jspDoc instanceof IStructuredDocument))
+			return;
+
+		IStructuredDocument sDoc = (IStructuredDocument) jspDoc;
+		IStructuredDocumentRegion[] regions = sDoc.getStructuredDocumentRegions(0, m.getOffset() + m.getLength());
+		// iterate backwards until you hit the include directive
+		for (int i = regions.length - 1; i >= 0; i--) {
+			IStructuredDocumentRegion region = regions[i];
+			if (region.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
+				if (getDirectiveName(region).equals("include")) { //$NON-NLS-1$
+					ITextRegion fileValueRegion = getAttributeValueRegion(region, "file"); //$NON-NLS-1$
+					if (fileValueRegion != null) {
+						m.setOffset(region.getStartOffset(fileValueRegion));
+						m.setLength(fileValueRegion.getTextLength());
+					}
+					else {
+						m.setOffset(region.getStartOffset());
+						m.setLength(region.getTextLength());
+					}
+					/**
+					 * Bug 219761 - Syntax error reported at wrong location
+					 * (don't forget to adjust the line number, too)
 					 */
-					if (!file.exists())
-						file = null;
+					m.setLineNo(sDoc.getLineOfOffset(m.getOffset()) + 1);
+					break;
 				}
 			}
 		}
-		finally {
-			if (fModel != null) {
-				fModel.releaseFromRead();
-			}
-		}
-		fFile = file;
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=199175
-		fEnableSourceValidation = (fFile != null && fModel != null && JSPBatchValidator.isBatchValidatorPreferenceEnabled(fFile) && shouldReallyValidate(fFile));
-		if(DEBUG) {
-			Logger.log(Logger.INFO, getClass().getName() + " enablement for source validation: " + fEnableSourceValidation); //$NON-NLS-1$
-		}
-	}
-
-	public void disconnect(IDocument document) {
-		fModel = null;
-		fFile = null;
-	}
-
-	public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
-		if(fEnableSourceValidation) {
-			if(DEBUG) {
-				Logger.log(Logger.INFO, getClass().getName() + " validating "); //$NON-NLS-1$
-			}
-			performValidation(fFile, reporter, fModel);
-		}
-	}
-
-	public void validate(final IValidationContext helper, final IReporter reporter) throws ValidationException {
-		/*
-		 * Use the current Job's rule for the JavaModelOperation
-		 */
-		Job currentJob = Platform.getJobManager().currentJob();
-		ISchedulingRule rule = null;
-		if (currentJob != null) {
-			rule = currentJob.getRule();
-		}
-
-		IWorkspaceRunnable validationRunnable = new IWorkspaceRunnable() {
-			public void run(IProgressMonitor monitor) throws CoreException {
-				doValidate(helper, reporter);
-			}
-		};
-		try {
-			JavaCore.run(validationRunnable, rule, new NullProgressMonitor());
-		}
-		catch (CoreException e) {
-			// we're only allowed to throw a ValidationException here
-			if (e.getCause() instanceof ValidationException) {
-				throw (ValidationException) e.getCause();
-			}
-			throw new ValidationException(new LocalizedMessage(IMessage.ERROR_AND_WARNING, e.getMessage()), e);
-		}
-	}
-
-	void doValidate(IValidationContext helper, IReporter reporter) throws CoreException {
-		try {
-			super.validate(helper, reporter);
-		}
-		catch (ValidationException e) {
-			// we're only allowed to throw a CoreException within the runnable
-			String pluginId = JSPCorePlugin.getDefault().getBundle().getSymbolicName();
-			throw new CoreException(new Status(IStatus.ERROR, pluginId, 0, pluginId, e));
-		}
 	}
 
 	/**
-	 * Validate one file. It's assumed that the file has JSP content type.
-	 * 
-	 * @param f
-	 * @param reporter
-	 */
-	protected void validateFile(IFile f, IReporter reporter) {
-		IStructuredModel model = null;
-		try {
-			// get jsp model, get translation
-			if (!reporter.isCancelled()) {
-				model = StructuredModelManager.getModelManager().getModelForRead(f);
-				if (model instanceof IDOMModel) {
-					reporter.removeAllMessages(fMessageOriginator, f);
-					performValidation(f, reporter, model);
-				}
-			}
-		}
-		catch (IOException e) {
-			Logger.logException(e);
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-		finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-	}
-
-	/**
-	 * When loading model from a file, you need to explicitly add adapter
-	 * factory.
-	 * 
-	 * @param sm
-	 */
-	private void setupAdapterFactory(IStructuredModel sm) {
-		if (sm.getFactoryRegistry().getFactoryFor(IJSPTranslation.class) == null) {
-			JSPTranslationAdapterFactory factory = new JSPTranslationAdapterFactory();
-			sm.getFactoryRegistry().addFactory(factory);
-		}
-	}
-
-	/**
-	 * Creates an IMessage from an IProblem
+	 * Creates an IMessage from asn IProblem
 	 * 
 	 * @param problem
 	 * @param f
@@ -244,34 +116,112 @@
 	 * @return message representation of the problem, or null if it could not
 	 *         create one
 	 */
-	private IMessage createMessageFromProblem(IProblem problem, IFile f, JSPTranslation translation, IStructuredDocument structuredDoc) {
-		int sev = problem.isError() ? IMessage.HIGH_SEVERITY : IMessage.NORMAL_SEVERITY;
-		int sourceStart = translation.getJspOffset(problem.getSourceStart());
-		int sourceEnd = translation.getJspOffset(problem.getSourceEnd());
-		if (sourceStart == -1) {
-			int problemID = problem.getID();
-			/* RATLC00304792 / BUG199053
-			 * 
-			 * Quoting IProblem doc: "When a problem is tagged as Internal, it
-			 * means that no change other than a local source code change can
-			 * fix the corresponding problem." Assuming that our generated
-			 * code is correct, that should reduce the reported problems to
-			 * those the user can correct.
-			 */
-			if (((problemID & IProblem.Internal) != 0) && ((problemID & IProblem.Syntax) != 0)) {
-				// Attach to the last code scripting section
-				Position[] jspPositions = (Position[]) translation.getJsp2JavaMap().keySet().toArray(new Position[translation.getJsp2JavaMap().size()]);
-				for (int i = 0; i < jspPositions.length; i++) {
-					sourceStart = Math.max(sourceStart, jspPositions[i].getOffset());
+	private IMessage createMessageFromProblem(IProblem problem, IFile f, IJSPTranslation translation, IStructuredDocument structuredDoc) {
+		int sev = -1;
+		int sourceStart = -1;
+		int sourceEnd = -1;
+
+		if (problem instanceof IJSPProblem) {
+			sourceStart = problem.getSourceStart();
+			sourceEnd = problem.getSourceEnd();
+			switch (((IJSPProblem) problem).getEID()) {
+				case IJSPProblem.TEIClassNotFound :
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TEI_CLASS_NOT_FOUND);
+					break;
+				case IJSPProblem.TEIValidationMessage :
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TEI_VALIDATION_MESSAGE);
+					break;
+				case IJSPProblem.TEIClassNotInstantiated :
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TEI_CLASS_NOT_INSTANTIATED);
+					break;
+				case IJSPProblem.TEIClassMisc :
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TEI_CLASS_RUNTIME_EXCEPTION);
+					break;
+				case IJSPProblem.TagClassNotFound :
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_TRANSLATION_TAG_HANDLER_CLASS_NOT_FOUND);
+					break;
+				case IJSPProblem.UseBeanInvalidID :
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_TRANSLATION_USEBEAN_INVALID_ID);
+					break;
+				case IJSPProblem.UseBeanMissingTypeInfo :
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_TRANSLATION_USBEAN_MISSING_TYPE_INFO);
+					break;
+				case IJSPProblem.UseBeanAmbiguousType :
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_TRANSLATION_USEBEAN_AMBIGUOUS_TYPE_INFO);
+					break;
+				default :
+					sev = problem.isError() ? IMessage.HIGH_SEVERITY : (problem.isWarning() ? IMessage.NORMAL_SEVERITY : ValidationMessage.IGNORE);
+
+			}
+		}
+		else {
+			sourceStart = translation.getJspOffset(problem.getSourceStart());
+			sourceEnd = translation.getJspOffset(problem.getSourceEnd());
+			switch (problem.getID()) {
+				case IProblem.LocalVariableIsNeverUsed : {
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_JAVA_LOCAL_VARIABLE_NEVER_USED);
 				}
-				IMessage m = new LocalizedMessage(sev, problem.getMessage(), f);
-				m.setOffset(sourceStart);
-				m.setLength(1);
-				return m;
+					break;
+				case IProblem.NullLocalVariableReference : {
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_JAVA_NULL_LOCAL_VARIABLE_REFERENCE);
+				}
+					break;
+				case IProblem.ArgumentIsNeverUsed : {
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_JAVA_ARGUMENT_IS_NEVER_USED);
+				}
+					break;
+				case IProblem.PotentialNullLocalVariableReference : {
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_JAVA_POTENTIAL_NULL_LOCAL_VARIABLE_REFERENCE);
+				}
+					break;
+				case IProblem.UnusedImport : {
+					sev = getMessageSeverity(JSPCorePreferenceNames.VALIDATION_JAVA_UNUSED_IMPORT);
+				}
+					break;
+
+				default : {
+					if (problem.isError()) {
+						sev = IMessage.HIGH_SEVERITY;
+					}
+					else {
+						sev = IMessage.NORMAL_SEVERITY;
+					}
+				}
+					if (sev == ValidationMessage.IGNORE) {
+						return null;
+					}
+
+					/* problems without JSP positions are in generated code */
+					if (sourceStart == -1) {
+						int problemID = problem.getID();
+						/*
+						 * Quoting IProblem doc: "When a problem is tagged as
+						 * Internal, it means that no change other than a
+						 * local source code change can fix the corresponding
+						 * problem." Assuming that our generated code is
+						 * correct, that should reduce the reported problems
+						 * to those the user can correct.
+						 */
+						if (((problemID & IProblem.Internal) != 0) && ((problemID & IProblem.Syntax) != 0) && translation instanceof JSPTranslation) {
+							// Attach to the last code scripting section
+							JSPTranslation jspTranslation = ((JSPTranslation) translation);
+							Position[] jspPositions = (Position[]) jspTranslation.getJsp2JavaMap().keySet().toArray(new Position[jspTranslation.getJsp2JavaMap().size()]);
+							for (int i = 0; i < jspPositions.length; i++) {
+								sourceStart = Math.max(sourceStart, jspPositions[i].getOffset());
+							}
+							IMessage m = new LocalizedMessage(sev, problem.getMessage(), f);
+							m.setOffset(sourceStart);
+							m.setLength(1);
+							return m;
+						}
+						else {
+							return null;
+						}
+					}
 			}
-			else {
-				return null;
-			}
+		}
+		if (sev == ValidationMessage.IGNORE) {
+			return null;
 		}
 
 		// line number for marker starts @ 1
@@ -294,36 +244,99 @@
 		return m;
 	}
 
-	/**
-	 * Assumed the message offset is an indirect position. In other words, an
-	 * error from an included file.
-	 * 
-	 * @param m
-	 * @param translation
-	 */
-	private void adjustIndirectPosition(IMessage m, JSPTranslation translation) {
+	int getMessageSeverity(String key) {
+		int sev = fPreferencesService.getInt(PREFERENCE_NODE_QUALIFIER, key, IMessage.NORMAL_SEVERITY, fScopes);
+		switch (sev) {
+			case ValidationMessage.ERROR :
+				return IMessage.HIGH_SEVERITY;
+			case ValidationMessage.WARNING :
+				return IMessage.NORMAL_SEVERITY;
+			case ValidationMessage.INFORMATION :
+				return IMessage.LOW_SEVERITY;
+			case ValidationMessage.IGNORE :
+				return ValidationMessage.IGNORE;
+		}
+		return IMessage.NORMAL_SEVERITY;
+	}
 
-		if (!(translation instanceof JSPTranslationExtension))
-			return;
+	private void loadPreferences(IFile file) {
+		fScopes = new IScopeContext[]{new InstanceScope(), new DefaultScope()};
 
-		IDocument jspDoc = ((JSPTranslationExtension) translation).getJspDocument();
-		if (!(jspDoc instanceof IStructuredDocument))
-			return;
+		fPreferencesService = Platform.getPreferencesService();
+		if (file != null && file.isAccessible()) {
+			ProjectScope projectScope = new ProjectScope(file.getProject());
+			if (projectScope.getNode(PREFERENCE_NODE_QUALIFIER).getBoolean(JSPCorePreferenceNames.VALIDATION_USE_PROJECT_SETTINGS, false)) {
+				fScopes = new IScopeContext[]{projectScope, new InstanceScope(), new DefaultScope()};
+			}
+		}
+	}
 
-		IStructuredDocument sDoc = (IStructuredDocument) jspDoc;
-		IStructuredDocumentRegion[] regions = sDoc.getStructuredDocumentRegions(0, m.getOffset() + m.getLength());
-		// iterate backwards until you hit the include directive
-		for (int i = regions.length - 1; i >= 0; i--) {
+	void performValidation(IFile f, IReporter reporter, IStructuredModel model) {
+		if (model instanceof IDOMModel) {
+			IDOMModel domModel = (IDOMModel) model;
+			ModelHandlerForJSP.ensureTranslationAdapterFactory(domModel);
 
-			IStructuredDocumentRegion region = regions[i];
-			if (region.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-				if (getDirectiveName(region).equals("include")) { //$NON-NLS-1$
-					ITextRegion fileValueRegion = getAttributeValueRegion(region, "file"); //$NON-NLS-1$
-					m.setOffset(region.getStartOffset(fileValueRegion));
-					m.setLength(fileValueRegion.getTextLength());
-					break;
+			IDOMDocument xmlDoc = domModel.getDocument();
+			JSPTranslationAdapter translationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
+			IJSPTranslation translation = translationAdapter.getJSPTranslation();
+
+			if (!reporter.isCancelled()) {
+				loadPreferences(f);
+
+				translation.setProblemCollectingActive(true);
+				translation.reconcileCompilationUnit();
+				List problems = translation.getProblems();
+				// add new messages
+				for (int i = 0; i < problems.size() && !reporter.isCancelled(); i++) {
+					IProblem problem = (IProblem) problems.get(i);
+					if (problem.getID() != IProblem.Task) {
+						IMessage m = createMessageFromProblem(problem, f, translation, domModel.getStructuredDocument());
+						if (m != null)
+							reporter.addMessage(fMessageOriginator, m);
+					}
 				}
 			}
 		}
+		unloadPreferences();
+	}
+
+	private void unloadPreferences() {
+		fPreferencesService = null;
+		fScopes = null;
+	}
+
+	/**
+	 * Validate one file. It's assumed that the file has JSP content type.
+	 * 
+	 * @param f
+	 * @param reporter
+	 */
+	protected void validateFile(IFile f, IReporter reporter) {
+		if (DEBUG) {
+			Logger.log(Logger.INFO, getClass().getName() + " validating: " + f); //$NON-NLS-1$
+		}
+
+		IStructuredModel model = null;
+		try {
+			// get jsp model, get tranlsation
+			model = StructuredModelManager.getModelManager().getModelForRead(f);
+			if (!reporter.isCancelled() && model != null) {
+				// get jsp model, get translation
+				if (model instanceof IDOMModel) {
+					reporter.removeAllMessages(fMessageOriginator, f);
+					performValidation(f, reporter, model);
+				}
+			}
+		}
+		catch (IOException e) {
+			Logger.logException(e);
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
+		finally {
+			if (model != null)
+				model.releaseFromRead();
+		}
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPValidator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPValidator.java
index a34fd6a..1ecbf45 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPValidator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/JSPValidator.java
@@ -1,13 +1,12 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.internal.validation;
 
@@ -25,6 +24,7 @@
 import org.eclipse.core.resources.IWorkspaceRoot;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
@@ -33,15 +33,16 @@
 import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.core.runtime.content.IContentType;
 import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jst.jsp.core.internal.JSPCoreMessages;
 import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.contentproperties.JSPFContentProperties;
 import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
 import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
+import org.eclipse.wst.validation.AbstractValidator;
+import org.eclipse.wst.validation.ValidationResult;
+import org.eclipse.wst.validation.ValidationState;
 import org.eclipse.wst.validation.internal.core.Message;
 import org.eclipse.wst.validation.internal.core.ValidationException;
 import org.eclipse.wst.validation.internal.operations.IWorkbenchContext;
@@ -54,7 +55,7 @@
 /**
  * Performs some common JSP validation tasks
  */
-public class JSPValidator implements IValidatorJob {
+public class JSPValidator extends AbstractValidator implements IValidatorJob {
 
 	private static final String PLUGIN_ID_JSP_CORE = "org.eclipse.jst.jsp.core"; //$NON-NLS-1$
 	private IContentType fJSPFContentType = null;
@@ -142,6 +143,7 @@
 
 		/**
 		 * Gets list of content types this visitor is interested in
+		 * 
 		 * @return All JSP-related content types
 		 */
 		private IContentType[] getValidContentTypes() {
@@ -151,15 +153,17 @@
 			}
 			return fContentTypes;
 		}
-		
+
 		/**
 		 * Checks if fileName is some type of JSP (including JSP fragments)
+		 * 
 		 * @param fileName
-		 * @return true if filename indicates some type of JSP, false otherwise
+		 * @return true if filename indicates some type of JSP, false
+		 *         otherwise
 		 */
 		private boolean isJSPType(String fileName) {
 			boolean valid = false;
-			
+
 			IContentType[] types = getValidContentTypes();
 			int i = 0;
 			while (i < types.length && !valid) {
@@ -179,14 +183,16 @@
 		IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
 		if (uris.length > 0) {
 			IFile currentFile = null;
+
 			for (int i = 0; i < uris.length && !reporter.isCancelled(); i++) {
+				// might be called with just project path?
 				currentFile = wsRoot.getFile(new Path(uris[i]));
 				if (currentFile != null && currentFile.exists()) {
-					if(shouldValidate(currentFile) && fragmentCheck(currentFile)) {
+					if (shouldValidate(currentFile) && fragmentCheck(currentFile)) {
 
-					    Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, NLS.bind(JSPCoreMessages.MESSAGE_JSP_VALIDATING_MESSAGE_UI_, new String[]{currentFile.getFullPath().toString()}));
-					    reporter.displaySubtask(this, message);
-					    
+						Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, uris[i]);
+						reporter.displaySubtask(this, message);
+
 						validateFile(currentFile, reporter);
 					}
 					if (DEBUG)
@@ -195,10 +201,10 @@
 			}
 		}
 		else {
-			
+
 			// if uris[] length 0 -> validate() gets called for each project
-			if(helper instanceof IWorkbenchContext) {
-				
+			if (helper instanceof IWorkbenchContext) {
+
 				IProject project = ((IWorkbenchContext) helper).getProject();
 				JSPFileVisitor visitor = new JSPFileVisitor(reporter);
 				try {
@@ -211,11 +217,11 @@
 				}
 				IFile[] files = visitor.getFiles();
 				for (int i = 0; i < files.length && !reporter.isCancelled(); i++) {
-					if(shouldValidate(files[i]) && fragmentCheck(files[i])) {
-						
-					    Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, NLS.bind(JSPCoreMessages.MESSAGE_JSP_VALIDATING_MESSAGE_UI_, new String[]{files[i].getFullPath().toString()}));
-					    reporter.displaySubtask(this, message);
-					    
+					if (shouldValidate(files[i]) && fragmentCheck(files[i])) {
+						int percent = (i * 100) / files.length + 1;
+						Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, percent + "% " + files[i].getFullPath().toString());
+						reporter.displaySubtask(this, message);
+
 						validateFile(files[i], reporter);
 					}
 					if (DEBUG)
@@ -234,7 +240,16 @@
 	protected void validateFile(IFile f, IReporter reporter) {
 		// subclasses should implement (for batch validation)
 	}
-	
+
+	public ValidationResult validate(final IResource resource, int kind, ValidationState state, IProgressMonitor monitor) {
+		if (resource.getType() != IResource.FILE)
+			return null;
+		ValidationResult result = new ValidationResult();
+		final IReporter reporter = result.getReporter(monitor);
+		validateFile((IFile) resource, reporter);
+		return result;
+	}
+
 	/**
 	 * 
 	 * @param sdr
@@ -245,29 +260,30 @@
 		ITextRegionList subRegions = sdr.getRegions();
 		for (int j = 0; j < subRegions.size(); j++) {
 			ITextRegion subRegion = subRegions.get(j);
-			if(subRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
+			if (subRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
 				name = sdr.getText(subRegion);
 				break;
 			}
 		}
 		return name;
 	}
-	
+
 	/**
 	 * 
 	 * @param sdr
 	 * @param attrName
-	 * @return the ITextRegion for the attribute value of the given attribute name, case sensitive, null if no matching attribute is found
+	 * @return the ITextRegion for the attribute value of the given attribute
+	 *         name, case sensitive, null if no matching attribute is found
 	 */
 	protected ITextRegion getAttributeValueRegion(IStructuredDocumentRegion sdr, String attrName) {
 		ITextRegion valueRegion = null;
 		ITextRegionList subRegions = sdr.getRegions();
 		for (int i = 0; i < subRegions.size(); i++) {
 			ITextRegion subRegion = subRegions.get(i);
-			if(subRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME && sdr.getText(subRegion).equals(attrName)) {
-				for(int j=i; j<subRegions.size(); j++) {
+			if (subRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME && sdr.getText(subRegion).equals(attrName)) {
+				for (int j = i; j < subRegions.size(); j++) {
 					subRegion = subRegions.get(j);
-					if(subRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+					if (subRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
 						valueRegion = subRegion;
 						break;
 					}
@@ -277,17 +293,17 @@
 		}
 		return valueRegion;
 	}
-	
+
 	protected String getAttributeValue(IStructuredDocumentRegion sdr, String attrName) {
 		ITextRegion r = getAttributeValueRegion(sdr, attrName);
-		if(r != null)
+		if (r != null)
 			return sdr.getText(r).trim();
 		return ""; //$NON-NLS-1$
 	}
 
 	/**
-	 * Determines if file is jsp fragment or not (does a deep, 
-	 * indepth check, looking into contents of file)
+	 * Determines if file is jsp fragment or not (does a deep, indepth check,
+	 * looking into contents of file)
 	 * 
 	 * @param file
 	 *            assumes file is not null and exists
@@ -297,16 +313,16 @@
 		boolean isFragment = false;
 		InputStream is = null;
 		try {
-				IContentDescription contentDescription = file.getContentDescription();
-				// it can be null
-				if (contentDescription == null) {
-					is = file.getContents();
-					contentDescription = Platform.getContentTypeManager().getDescriptionFor(is, file.getName(), new QualifiedName[]{IContentDescription.CHARSET});
-				}
-				if (contentDescription != null) {
-					String fileCtId = contentDescription.getContentType().getId();
-					isFragment = (fileCtId != null && ContentTypeIdForJSP.ContentTypeID_JSPFRAGMENT.equals(fileCtId));
-				}
+			IContentDescription contentDescription = file.getContentDescription();
+			// it can be null
+			if (contentDescription == null) {
+				is = file.getContents();
+				contentDescription = Platform.getContentTypeManager().getDescriptionFor(is, file.getName(), new QualifiedName[]{IContentDescription.CHARSET});
+			}
+			if (contentDescription != null) {
+				String fileCtId = contentDescription.getContentType().getId();
+				isFragment = (fileCtId != null && ContentTypeIdForJSP.ContentTypeID_JSPFRAGMENT.equals(fileCtId));
+			}
 		}
 		catch (IOException e) {
 			// ignore, assume it's invalid JSP
@@ -326,7 +342,7 @@
 		}
 		return isFragment;
 	}
-	
+
 	private boolean shouldValidate(IFile file) {
 		IResource resource = file;
 		do {
@@ -338,16 +354,6 @@
 		while ((resource.getType() & IResource.PROJECT) == 0);
 		return true;
 	}
-	
-	/**
-	 * Returns whether or not JSP validation should really run
-	 * @param file
-	 * @return true if should really validate. false otherwise
-	 */
-	boolean shouldReallyValidate(IFile file) {
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=199175
-		return (shouldValidate(file) && fragmentCheck(file));
-	}
 
 	// for debugging
 	static final boolean DEBUG;
@@ -355,16 +361,16 @@
 		String value = Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspvalidator"); //$NON-NLS-1$
 		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
 	}
-	 
+
 	/**
-	 * Checks if file is a jsp fragment or not.  If so, check if the 
-	 * fragment should be validated or not.
+	 * Checks if file is a jsp fragment or not. If so, check if the fragment
+	 * should be validated or not.
 	 * 
 	 * @param file
 	 *            Assumes shouldValidate was already called on file so it
 	 *            should not be null and does exist
-	 * @return false if file is a fragment and it should not be validated, 
-	 * true otherwise
+	 * @return false if file is a fragment and it should not be validated,
+	 *         true otherwise
 	 */
 	private boolean fragmentCheck(IFile file) {
 		boolean shouldValidate = true;
@@ -373,8 +379,8 @@
 			// get preference for validate jsp fragments
 			boolean shouldValidateFragments = Boolean.valueOf(JSPFContentProperties.getProperty(JSPFContentProperties.VALIDATE_FRAGMENTS, file, true)).booleanValue();
 			/*
-			 * if jsp fragments should not be validated, check if file is really
-			 * jsp fragment
+			 * if jsp fragments should not be validated, check if file is
+			 * really jsp fragment
 			 */
 			if (!shouldValidateFragments) {
 				boolean isFragment = isFragment(file);
@@ -383,9 +389,10 @@
 		}
 		return shouldValidate;
 	}
-	
+
 	/**
 	 * Returns JSP fragment content type
+	 * 
 	 * @return jspf content type
 	 */
 	private IContentType getJSPFContentType() {
@@ -394,19 +401,19 @@
 		}
 		return fJSPFContentType;
 	}
-	 
-	 public ISchedulingRule getSchedulingRule(IValidationContext helper) {
+
+	public ISchedulingRule getSchedulingRule(IValidationContext helper) {
 		return null;
 	}
-	 
-	 public IStatus validateInJob(IValidationContext helper, IReporter reporter) throws ValidationException {
+
+	public IStatus validateInJob(IValidationContext helper, IReporter reporter) throws ValidationException {
 		IStatus status = Status.OK_STATUS;
-		try{
+		try {
 			validate(helper, reporter);
 		}
-		catch (ValidationException e){
+		catch (ValidationException e) {
 			Logger.logException(e);
-			status = new Status(IStatus.ERROR, PLUGIN_ID_JSP_CORE, IStatus.ERROR, e.getLocalizedMessage(),  e);
+			status = new Status(IStatus.ERROR, PLUGIN_ID_JSP_CORE, IStatus.ERROR, e.getLocalizedMessage(), e);
 		}
 		return status;
 	}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/LocalizedMessage.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/LocalizedMessage.java
new file mode 100644
index 0000000..7bd2f31
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/validation/LocalizedMessage.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.validation;
+
+import java.util.Locale;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.wst.validation.internal.core.Message;
+
+/**
+ * Simple implementation of Message all validators in package can use.
+ */
+class LocalizedMessage extends Message {
+	private String _message = null;
+
+	public LocalizedMessage(int severity, String messageText) {
+		this(severity, messageText, null);
+	}
+
+	public LocalizedMessage(int severity, String messageText, IResource targetObject) {
+		this(severity, messageText, (Object) targetObject);
+	}
+
+	public LocalizedMessage(int severity, String messageText, Object targetObject) {
+		super(null, severity, null);
+		setLocalizedMessage(messageText);
+		setTargetObject(targetObject);
+	}
+
+	public void setLocalizedMessage(String message) {
+		_message = message;
+	}
+
+	public String getLocalizedMessage() {
+		return _message;
+	}
+
+	public String getText() {
+		return getLocalizedMessage();
+	}
+
+	public String getText(ClassLoader cl) {
+		return getLocalizedMessage();
+	}
+
+	public String getText(Locale l) {
+		return getLocalizedMessage();
+	}
+
+	public String getText(Locale l, ClassLoader cl) {
+		return getLocalizedMessage();
+	}
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/jspel/ELProblem.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/jspel/ELProblem.java
index 599903d..cb548c0 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/jspel/ELProblem.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/jspel/ELProblem.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 BEA Systems and others.
+ * Copyright (c) 2005, 2006 BEA Systems 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
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/jspel/IJSPELTranslator.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/jspel/IJSPELTranslator.java
index 17562e3..55e8460 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/jspel/IJSPELTranslator.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/jspel/IJSPELTranslator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 BEA Systems and others.
+ * Copyright (c) 2005, 2006 BEA Systems 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
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IJarRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IJarRecord.java
index 00055f4..6416473 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IJarRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IJarRecord.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * 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
  *     
@@ -35,6 +35,7 @@
 	public String getShortName();
 
 	/**
+	 * @deprecated - use the descriptor's URI value
 	 * @return Returns the uri.
 	 */
 	String getURI();
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITLDRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITLDRecord.java
index 7c1923c..395d3b1 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITLDRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITLDRecord.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * 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
  *     
@@ -34,6 +34,7 @@
 	String getShortName();
 
 	/**
+	 * @deprecated - use the descriptor's URI value
 	 * @return Returns the uri.
 	 */
 	String getURI();
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITagDirRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITagDirRecord.java
index 7684180..af20861 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITagDirRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITagDirRecord.java
@@ -1,16 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2007 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.taglib;
 
+import org.eclipse.core.runtime.IPath;
+
 /**
  * A record representing a folder of .tag/.tagx files
  * <p>
@@ -20,5 +22,8 @@
  * @since 1.0
  */
 public interface ITagDirRecord extends ITaglibRecord {
-
+	/**
+	 * @return Returns the path within the workspace to this directory.
+	 */
+	IPath getPath();
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibDescriptor.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibDescriptor.java
new file mode 100644
index 0000000..dfba477
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibDescriptor.java
@@ -0,0 +1,56 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *     
+ *******************************************************************************/
+package org.eclipse.jst.jsp.core.taglib;
+
+/**
+ * A representation of information within a tag library descriptor. Provides
+ * much of the high-level information expressed by the descriptor.
+ * <p>
+ * This interface is not intended to be implemented by clients.
+ * </p>
+ * 
+ * @since 1.2
+ */
+public interface ITaglibDescriptor {
+	/**
+	 * @return the description value of this tag library
+	 */
+	String getDescription();
+	/**
+	 * @return the display name value of this tag library
+	 */
+	String getDisplayName();
+	/**
+	 * @return the stated required JSP version of this tag library
+	 */
+	String getJSPVersion();
+	/**
+	 * @return a URL string to the large icon for this tag library
+	 */
+	String getLargeIcon();
+	/**
+	 * @return the stated short name for this tag library
+	 */
+	String getShortName();
+	/**
+	 * @return a URL string to the small icon for this tag library
+	 */
+	String getSmallIcon();
+	/**
+	 * @return the stated version of this tag library if specified
+	 */
+	String getTlibVersion();
+	/**
+	 * @return a URI pointing to this tag library's descriptor, or null
+	 */
+	String getURI();
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexDelta.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexDelta.java
new file mode 100644
index 0000000..14b3bb8
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexDelta.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.taglib;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * Describes changes to the known records within the TaglibIndex.
+ * <p>
+ * This interface is not intended to be implemented by clients.
+ * </p>
+ * 
+ * @since 1.2
+ */
+public interface ITaglibIndexDelta {
+
+	/**
+	 * Status constant indicating that the record has been added. Note that an
+	 * added taglib record delta has no children, as they are all implicitely
+	 * added.
+	 */
+	public int ADDED = 1;
+	/**
+	 * Status constant indicating that the record has been changed, as
+	 * described by the change flags.
+	 */
+	public int CHANGED = 4;
+	/**
+	 * Status constant indicating that the record has been removed. Note that
+	 * a removed taglib element delta has no children, as they are all
+	 * implicitely removed.
+	 */
+	public int REMOVED = 2;
+
+
+	/**
+	 * Returns deltas for the affected (added, removed, or changed) records.
+	 * 
+	 * @return
+	 */
+	ITaglibIndexDelta[] getAffectedChildren();
+
+	/**
+	 * @return the type of change, one of ADDED, CHANGED, or REMOVED
+	 */
+	int getKind();
+	
+	/**
+	 * @return the IProject in which this delta originated
+	 */
+	IProject getProject();
+
+
+	/**
+	 * @return the record that was changed
+	 */
+	ITaglibRecord getTaglibRecord();
+
+	/**
+	 * Accepts the given visitor. The only kinds of index deltas visited are
+	 * <code>ADDED</code>, <code>REMOVED</code>, and
+	 * <code>CHANGED</code>. The visitor's <code>visit</code> method is
+	 * called with this index delta if applicable. If the visitor returns
+	 * <code>true</code>, the resource delta's children are also visited.
+	 * 
+	 * @param visitor
+	 *            the visitor
+	 * @exception CoreException
+	 *                if the visitor failed with this exception.
+	 * @see IResourceDeltaVisitor#visit(ITaglibIndexDeltaVisitor)
+	 */
+	// public void accept(ITaglibIndexDeltaVisitor visitor);
+}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexListener.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexListener.java
index 0c28ff5..b81027e 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexListener.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibIndexListener.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2007 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
@@ -11,20 +11,22 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.taglib;
 
-
 /**
  * A listener for changes in the index's records.
- * 
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
+ * 
+ * @since 1.2
  */
 public interface ITaglibIndexListener {
 
 	/**
-	 * Notifies this listener that an ITaglibRecordEvent has occurred
+	 * Notifies this listener that a change in the TaglibIndex, described by
+	 * an ITaglibIndexDelta, has occurred
 	 * 
-	 * @param event
+	 * @param delta
+	 *            the delta of changes
 	 */
-	void indexChanged(ITaglibRecordEvent event);
+	void indexChanged(ITaglibIndexDelta delta);
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecord.java
index 28c6975..5cb6462 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ITaglibRecord.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * 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
  *     
@@ -72,4 +72,6 @@
 	 * @see #URL
 	 */
 	int getRecordType();
+	
+	ITaglibDescriptor getDescriptor();
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IURLRecord.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IURLRecord.java
index bc7861d..e974d36 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IURLRecord.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/IURLRecord.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * 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 License v1.0
+ * 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
  *     
@@ -37,6 +37,7 @@
 	String getShortName();
 
 	/**
+	 * @deprecated - use the descriptor's URI value
 	 * @return Returns the uri specified within this TLD's contents.
 	 */
 	String getURI();
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
index d9d4ff4..6c24aca 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/ProjectDescription.java
@@ -11,6 +11,7 @@
  *******************************************************************************/
 package org.eclipse.jst.jsp.core.taglib;
 
+import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
@@ -36,6 +37,9 @@
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipException;
+import java.util.zip.ZipFile;
 
 import org.eclipse.core.filebuffers.FileBuffers;
 import org.eclipse.core.resources.IContainer;
@@ -53,6 +57,8 @@
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.jobs.ILock;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jdt.core.IClasspathContainer;
 import org.eclipse.jdt.core.IClasspathEntry;
 import org.eclipse.jdt.core.IJavaElement;
@@ -66,9 +72,12 @@
 import org.eclipse.jst.jsp.core.internal.Logger;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP11TLDNames;
 import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.JSP12TLDNames;
+import org.eclipse.jst.jsp.core.internal.contenttype.DeploymentDescriptorPropertyCache;
 import org.eclipse.jst.jsp.core.internal.util.DocumentProvider;
+import org.eclipse.jst.jsp.core.internal.util.FacetModuleCoreSupport;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
 import org.eclipse.wst.sse.core.internal.util.JarUtilities;
+import org.eclipse.wst.sse.core.utils.StringUtils;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
 import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
 import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
@@ -86,6 +95,8 @@
 		public boolean visit(IResourceDelta delta) throws CoreException {
 			IResource resource = delta.getResource();
 			if (resource.getType() == IResource.FILE) {
+				if (delta.getKind() == IResourceDelta.CHANGED && (delta.getFlags() == IResourceDelta.ENCODING || delta.getFlags() == IResourceDelta.MARKERS))
+					return true;
 				if (resource.getName().endsWith(".tld")) { //$NON-NLS-1$
 					if (delta.getKind() == IResourceDelta.REMOVED) {
 						removeTLD(resource);
@@ -102,12 +113,12 @@
 						updateJAR(resource, delta.getKind());
 					}
 				}
-				else if (resource.getName().endsWith(".tag") || resource.getName().endsWith(".tagx")) { //$NON-NLS-1$ //$NON-NLS-2$
+				else if ("tag".equalsIgnoreCase(resource.getFileExtension()) || "tagx".equalsIgnoreCase(resource.getFileExtension())) { //$NON-NLS-1$ //$NON-NLS-2$
 					if (delta.getKind() == IResourceDelta.REMOVED) {
-						removeTagDir(resource);
+						removeTag(resource);
 					}
 					else {
-						updateTagDir(resource, delta.getKind());
+						updateTag(resource, delta.getKind());
 					}
 				}
 				else if (resource.getName().equals(WEB_XML) && resource.getParent().getName().equals(WEB_INF)) {
@@ -125,38 +136,46 @@
 
 	class Indexer implements IResourceProxyVisitor {
 		public boolean visit(IResourceProxy proxy) throws CoreException {
+			boolean visitMembers = true;
 			if (proxy.getType() == IResource.FILE) {
 				if (proxy.getName().endsWith(".tld")) { //$NON-NLS-1$
-					updateTLD(proxy.requestResource(), ITaglibRecordEvent.ADDED);
+					updateTLD(proxy.requestResource(), ITaglibIndexDelta.ADDED);
 				}
 				else if (proxy.getName().endsWith(".jar")) { //$NON-NLS-1$
-					updateJAR(proxy.requestResource(), ITaglibRecordEvent.ADDED);
+					updateJAR(proxy.requestResource(), ITaglibIndexDelta.ADDED);
 				}
 				else if (proxy.getName().endsWith(".tag") || proxy.getName().endsWith(".tagx")) { //$NON-NLS-1$ //$NON-NLS-2$
-					updateTagDir(proxy.requestResource(), ITaglibRecordEvent.ADDED);
+					updateTagDir(proxy.requestResource().getParent(), ITaglibIndexDelta.ADDED);
+					// any folder with these files will create a record for
+					// that folder in one pass
+					visitMembers = false;
 				}
 				else if (proxy.getName().equals(WEB_XML) && proxy.requestResource().getParent().getName().equals(WEB_INF)) {
-					updateWebXML(proxy.requestResource(), ITaglibRecordEvent.ADDED);
+					updateWebXML(proxy.requestResource(), ITaglibIndexDelta.ADDED);
 				}
 			}
 			String name = proxy.getName();
-			return name.length() != 0 && name.charAt(0) != '.';
+			return name.length() != 0 && name.charAt(0) != '.' && visitMembers;
 		}
 	}
 
 	static class JarRecord implements IJarRecord {
 		boolean has11TLD;
-		boolean isMappedInWebXML;
-
 		TaglibInfo info;
+
+		boolean isExported = true;
+		boolean isMappedInWebXML;
 		IPath location;
 		List urlRecords;
-		boolean isExported = true;
 
 		public boolean equals(Object obj) {
 			if (!(obj instanceof JarRecord))
 				return false;
-			return ((JarRecord) obj).location.equals(location) && ((JarRecord) obj).has11TLD == has11TLD;
+			return ((JarRecord) obj).location.equals(location) && ((JarRecord) obj).has11TLD == has11TLD && ((JarRecord) obj).info.equals(info);
+		}
+
+		public ITaglibDescriptor getDescriptor() {
+			return info != null ? info : new TaglibInfo();
 		}
 
 		/**
@@ -188,21 +207,27 @@
 			return info.uri;
 		}
 
-		/**
-		 * 
-		 */
 		public List getURLRecords() {
 			return urlRecords;
 		}
 
 		public String toString() {
-			return "JarRecord: " + location + " <-> " + urlRecords; //$NON-NLS-1$ //$NON-NLS-2$
+			StringBuffer s = new StringBuffer("JarRecord: ");//$NON-NLS-1$ 
+			s.append(location);
+			if (urlRecords.size() > 0) {
+				s.append('\n');//$NON-NLS-1$ 
+				for (int i = 0; i < urlRecords.size(); i++) {
+					s.append(urlRecords.get(i));
+					s.append('\n');//$NON-NLS-1$ 
+				}
+			}
+			return s.toString();
 		}
 	}
 
 	static class TagDirRecord implements ITagDirRecord {
-		IPath location;
-		String shortName;
+		TaglibInfo info;
+		IPath path;
 		// a List holding Strings of .tag and .tagx filenames relative to the
 		// tagdir's location
 		List tags = new ArrayList(0);
@@ -210,14 +235,20 @@
 		public boolean equals(Object obj) {
 			if (!(obj instanceof TagDirRecord))
 				return false;
-			return ((TagDirRecord) obj).location.equals(location);
+			return ((TagDirRecord) obj).path.equals(path) && ((TagDirRecord) obj).info.equals(info);
 		}
 
-		/**
-		 * @return Returns the location.
+		public ITaglibDescriptor getDescriptor() {
+			return info != null ? info : (info = new TaglibInfo());
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.jst.jsp.core.taglib.ITagDirRecord#getPath()
 		 */
-		public IPath getLocation() {
-			return location;
+		public IPath getPath() {
+			return path;
 		}
 
 		public int getRecordType() {
@@ -225,84 +256,78 @@
 		}
 
 		/**
-		 * @return Returns the shortName.
-		 */
-		public String getShortName() {
-			return shortName;
-		}
-
-		/**
 		 * @return Returns the tags.
 		 */
-		public String[] getTags() {
+		public String[] getTagFilenames() {
 			return (String[]) tags.toArray(new String[tags.size()]);
 		}
 
 		public String toString() {
-			return "TagdirRecord: " + location + " <-> " + shortName; //$NON-NLS-1$ //$NON-NLS-2$
+			return "TagdirRecord: " + path + " <-> " + info.shortName; //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}
 
 	/**
 	 * A brief representation of the information in a TLD.
 	 */
-	static class TaglibInfo {
+	static class TaglibInfo implements ITaglibDescriptor {
 		// extract only when asked?
-		String description;
-
-		float jspVersion;
-		String largeIcon;
-		String shortName;
-		String smallIcon;
-		String tlibVersion;
-		String uri;
+		String description = "";
+		String displayName = "";
+		String jspVersion = "";
+		String largeIcon = "";
+		String shortName = "";
+		String smallIcon = "";
+		String tlibVersion = "";
+		String uri = "";
 
 		public TaglibInfo() {
 			super();
 		}
 
+		public boolean equals(Object obj) {
+			if (!(obj instanceof TaglibInfo))
+				return false;
+			return ((TaglibInfo) obj).jspVersion == jspVersion && ((TaglibInfo) obj).description.equals(description) && ((TaglibInfo) obj).largeIcon.equals(largeIcon) && ((TaglibInfo) obj).shortName.equals(shortName) && ((TaglibInfo) obj).smallIcon.equals(smallIcon) && ((TaglibInfo) obj).tlibVersion.equals(tlibVersion) && ((TaglibInfo) obj).uri.equals(uri);
+		}
+
+		public String getDescription() {
+			return description;
+		}
+
+		public String getDisplayName() {
+			return displayName;
+		}
+
+		public String getJSPVersion() {
+			return jspVersion;
+		}
+
+		public String getLargeIcon() {
+			return largeIcon;
+		}
+
+		public String getShortName() {
+			return shortName;
+		}
+
+		public String getSmallIcon() {
+			return smallIcon;
+		}
+
+		public String getTlibVersion() {
+			return tlibVersion;
+		}
+
+		public String getURI() {
+			return uri;
+		}
+
 		public String toString() {
 			return "TaglibInfo|" + shortName + "|" + tlibVersion + "|" + smallIcon + "|" + largeIcon + "|" + jspVersion + "|" + uri + "|" + description; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
 		}
 	}
 
-	class TaglibRecordEvent implements ITaglibRecordEvent {
-		ITaglibRecord fTaglibRecord = null;
-		int fType = -1;
-
-		TaglibRecordEvent(ITaglibRecord record, int type) {
-			fTaglibRecord = record;
-			fType = type;
-		}
-
-		public ITaglibRecord getTaglibRecord() {
-			return fTaglibRecord;
-		}
-
-		public int getType() {
-			return fType;
-		}
-
-		public String toString() {
-			String string = fTaglibRecord.toString();
-			switch (fType) {
-				case ITaglibRecordEvent.ADDED :
-					string = " ADDED (" + string + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case ITaglibRecordEvent.CHANGED :
-					string = " CHANGED (" + string + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case ITaglibRecordEvent.REMOVED :
-					string = " REMOVED (" + string + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				default :
-					string = " other:" + fType + " (" + string + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-			}
-			return string;
-		}
-	}
-
 	static class TLDRecord implements ITLDRecord {
 		TaglibInfo info;
 		IPath path;
@@ -310,7 +335,11 @@
 		public boolean equals(Object obj) {
 			if (!(obj instanceof TLDRecord))
 				return false;
-			return ((TLDRecord) obj).path.equals(path) && ((TLDRecord) obj).getURI().equals(getURI());
+			return ((TLDRecord) obj).path.equals(path) && ((TLDRecord) obj).getURI().equals(getURI()) && ((TLDRecord) obj).info.equals(info);
+		}
+
+		public ITaglibDescriptor getDescriptor() {
+			return info != null ? info : new TaglibInfo();
 		}
 
 		public IPath getPath() {
@@ -344,8 +373,8 @@
 	static class URLRecord implements IURLRecord {
 		String baseLocation;
 		TaglibInfo info;
-		URL url;
 		boolean isExported = true;
+		URL url;
 
 		public URLRecord() {
 			super();
@@ -354,13 +383,17 @@
 		public boolean equals(Object obj) {
 			if (!(obj instanceof URLRecord))
 				return false;
-			return ((URLRecord) obj).baseLocation.equals(baseLocation) && ((URLRecord) obj).url.equals(url);
+			return ((URLRecord) obj).baseLocation.equals(baseLocation) && ((URLRecord) obj).url.equals(url) && ((URLRecord) obj).info.equals(info);
 		}
 
 		public String getBaseLocation() {
 			return baseLocation;
 		}
 
+		public ITaglibDescriptor getDescriptor() {
+			return info != null ? info : new TaglibInfo();
+		}
+
 		public int getRecordType() {
 			return ITaglibRecord.URL;
 		}
@@ -391,7 +424,7 @@
 		}
 
 		public String toString() {
-			return "URLRecord: " + baseLocation + " <-> " + getURI(); //$NON-NLS-1$ //$NON-NLS-2$
+			return "URLRecord: (exported=" + isExported + ") " + baseLocation + " <-> " + getURI(); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}
 
@@ -403,7 +436,7 @@
 		public boolean equals(Object obj) {
 			if (!(obj instanceof WebXMLRecord))
 				return false;
-			return ((WebXMLRecord) obj).path.equals(path);
+			return ((WebXMLRecord) obj).path.equals(path) && ((WebXMLRecord) obj).info.equals(info);
 		}
 
 		/**
@@ -430,25 +463,29 @@
 		}
 
 		public String toString() {
-			return "WebXMLRecord: " + path + " " + tldRecords; //$NON-NLS-1$ //$NON-NLS-2$
+			StringBuffer s = new StringBuffer("WebXMLRecord: ");//$NON-NLS-1$ 
+			s.append(path);
+			if (tldRecords.size() > 0) {
+				s.append('\n');//$NON-NLS-1$ 
+				for (int i = 0; i < tldRecords.size(); i++) {
+					s.append(tldRecords.get(i));
+					s.append('\n');//$NON-NLS-1$ 
+				}
+			}
+			return s.toString();
 		}
 	}
 
 	static boolean _debugIndexCreation = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/taglib/indexcreation")); //$NON-NLS-1$ //$NON-NLS-2$
 	static boolean _debugIndexTime = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.core/taglib/indextime")); //$NON-NLS-1$ //$NON-NLS-2$
 
+	private static final String BUILDPATH_DIRTY = "BUILDPATH_DIRTY"; //$NON-NLS-1$
+	private static final String BUILDPATH_ENTRIES = "BUILDPATH_ENTRIES"; //$NON-NLS-1$
+	private static final String BUILDPATH_PROJECT = "BUILDPATH_PROJECT"; //$NON-NLS-1$
+	private static final String SAVE_FORMAT_VERSION = "Tag Library Index 1.0.3"; //$NON-NLS-1$
 	private static final String WEB_INF = "WEB-INF"; //$NON-NLS-1$
 	private static final IPath WEB_INF_PATH = new Path(WEB_INF);
-	private static final String BUILDPATH_PROJECT = "BUILDPATH_PROJECT"; //$NON-NLS-1$
 	private static final String WEB_XML = "web.xml"; //$NON-NLS-1$
-	private static final String SAVE_FORMAT_VERSION = "Tag Library Index 1.0.1"; //$NON-NLS-1$
-	private static final String BUILDPATH_DIRTY = "BUILDPATH_DIRTY"; //$NON-NLS-1$
-
-	/*
-	 * Records active JARs on the classpath. Taglib descriptors should be
-	 * usable, but the jars by themselves are not.
-	 */
-	Hashtable fClasspathJars;
 
 	/**
 	 * Notes that the build path information is stale. Some operations can now
@@ -457,6 +494,24 @@
 	boolean fBuildPathIsDirty = false;
 
 	/**
+	 * Count of entries on the build path. Primary use case is for classpath
+	 * containers that add an entry. Without notification (3.3), we can only
+	 * check after-the-fact.
+	 */
+	int fBuildPathEntryCount = 0;
+
+	/**
+	 * A cached copy of all of the records createable from the XMLCatalog.
+	 */
+	private Collection fCatalogRecords;
+
+	/*
+	 * Records active JARs on the classpath. Taglib descriptors should be
+	 * usable, but the jars by themselves are not.
+	 */
+	Hashtable fClasspathJars;
+
+	/**
 	 * A set of the projects that are in this project's build path.
 	 * Lookups/enumerations will be redirected to the corresponding
 	 * ProjectDescription instances
@@ -466,24 +521,28 @@
 	// holds references by URI to JARs
 	Hashtable fClasspathReferences;
 
-	// this table is special in that it holds tables of references according
-	// to local roots
+	/*
+	 * this table is special in that it holds tables of references according
+	 * to local roots
+	 */
 	Hashtable fImplicitReferences;
 
 	Hashtable fJARReferences;
 
 	IProject fProject;
 
+	private String fSaveStateFilename;
+
 	Hashtable fTagDirReferences;
 
 	Hashtable fTLDReferences;
 
 	IResourceDeltaVisitor fVisitor;
-
 	Hashtable fWebXMLReferences;
 
+	ILock LOCK = Job.getJobManager().newLock();
+
 	private long time0;
-	private String fSaveStateFilename;
 
 	ProjectDescription(IProject project, String saveStateFile) {
 		super();
@@ -533,6 +592,7 @@
 	void addBuildPathReferences(Map references, List projectsProcessed, boolean exportedOnly) {
 		ensureUpTodate();
 
+		// Add the build path references that are exported from this project
 		Enumeration keys = fClasspathReferences.keys();
 		while (keys.hasMoreElements()) {
 			Object key = keys.nextElement();
@@ -550,14 +610,15 @@
 		for (int i = 0; i < buildpathProjects.length; i++) {
 			if (!projectsProcessed.contains(buildpathProjects[i]) && buildpathProjects[i].isAccessible()) {
 				projectsProcessed.add(buildpathProjects[i]);
-				ProjectDescription description = TaglibIndex._instance.createDescription(buildpathProjects[i]);
+				ProjectDescription description = TaglibIndex.getInstance().createDescription(buildpathProjects[i]);
 				description.addBuildPathReferences(references, projectsProcessed, true);
-				
+
 				/*
-				 * 183756 - JSP Validation Cannot Find Tag Library Descriptor
-				 * in Referenced Projects
+				 * 199843 (183756) - JSP Validation Cannot Find Tag Library
+				 * Descriptor in Referenced Projects
 				 * 
-				 * Add any TLD records having URI values from projects on the build path
+				 * Add any TLD records having URI values from projects on the
+				 * build path
 				 */
 				Map[] rootReferences = (Map[]) description.fImplicitReferences.values().toArray(new Map[description.fImplicitReferences.size()]);
 				for (int j = 0; j < rootReferences.length; j++) {
@@ -586,6 +647,18 @@
 		fClasspathReferences = new Hashtable(0);
 	}
 
+	private void closeJarFile(ZipFile file) {
+		if (file == null)
+			return;
+		try {
+			file.close();
+		}
+		catch (IOException ioe) {
+			// no cleanup can be done
+			Logger.logException("TaglibIndex: Could not close zip file " + file.getName(), ioe); //$NON-NLS-1$
+		}
+	}
+
 	/**
 	 * @param catalogEntry
 	 *            a XML catalog entry pointing to a .jar or .tld file
@@ -664,48 +737,48 @@
 			catch (Exception e1) {
 				Logger.logException("Exception reading TLD contributed to the XML Catalog", e1);
 			}
-			
-			if(tldStream != null) {	
-			int c;
-			ByteArrayOutputStream buffer = new ByteArrayOutputStream();
-			// array dim restriction?
-			byte bytes[] = new byte[2048];
-			try {
-				while ((c = tldStream.read(bytes)) >= 0) {
-					buffer.write(bytes, 0, c);
-				}
-				cachedContents = new ByteArrayInputStream(buffer.toByteArray());
-			}
-			catch (IOException ioe) {
-				// no cleanup can be done
-			}
-			finally {
+
+			if (tldStream != null) {
+				int c;
+				ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+				// array dim restriction?
+				byte bytes[] = new byte[2048];
 				try {
-					tldStream.close();
+					while ((c = tldStream.read(bytes)) >= 0) {
+						buffer.write(bytes, 0, c);
+					}
+					cachedContents = new ByteArrayInputStream(buffer.toByteArray());
+				}
+				catch (IOException ioe) {
+					// no cleanup can be done
+				}
+				finally {
+					try {
+						tldStream.close();
+					}
+					catch (IOException e) {
+					}
+				}
+
+				URLRecord urlRecord = null;
+				TaglibInfo info = extractInfo(urlString, cachedContents);
+				if (info != null) {
+					/*
+					 * the record's reported URI should match the catalog
+					 * entry's "key" so replace the detected value
+					 */
+					info.uri = uri;
+					urlRecord = new URLRecord();
+					urlRecord.info = info;
+					urlRecord.baseLocation = urlString;
+					urlRecord.url = url; //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				try {
+					cachedContents.close();
 				}
 				catch (IOException e) {
 				}
-			}
-
-			URLRecord urlRecord = null;
-			TaglibInfo info = extractInfo(urlString, cachedContents);
-			if (info != null) {
-				/*
-				 * the record's reported URI should match the catalog entry's
-				 * "key" so replace the detected value
-				 */
-				info.uri = uri;
-				urlRecord = new URLRecord();
-				urlRecord.info = info;
-				urlRecord.baseLocation = urlString;
-				urlRecord.url = url; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			try {
-				cachedContents.close();
-			}
-			catch (IOException e) {
-			}
-			record = urlRecord;
+				record = urlRecord;
 			}
 		}
 		return record;
@@ -716,42 +789,73 @@
 	 * @return
 	 */
 	private JarRecord createJARRecord(IResource jar) {
-		return createJARRecord(jar.getLocation().toString());
+		IPath location = jar.getLocation();
+		JarRecord jarRecord = null;
+		if (location != null) {
+			jarRecord = createJARRecord(location.toString());
+		}
+		else if (jar.getLocationURI() != null) {
+			jarRecord = createJARRecord(jar.getLocationURI().toString());
+		}
+		return jarRecord;
 	}
 
 	private JarRecord createJARRecord(String fileLocation) {
 		JarRecord record = new JarRecord();
+		record.info = new TaglibInfo();
 		record.location = new Path(fileLocation);
 		record.urlRecords = new ArrayList(0);
-		record.info = new TaglibInfo();
 		return record;
 	}
 
 	/**
 	 * @return
 	 */
-	TagDirRecord createTagdirRecord(IResource tagFile) {
-		IContainer tagdir = tagFile.getParent();
-		String tagdirLocation = tagdir.getFullPath().toString();
-		TagDirRecord record = (TagDirRecord) fTagDirReferences.get(tagdirLocation);
-		if (record == null) {
-			record = new TagDirRecord();
-			record.location = tagdir.getFullPath();
-			// JSP 2.0 section 8.4.3
-			if (tagdir.getName().equals("tags")) //$NON-NLS-1$
-				record.shortName = "tags"; //$NON-NLS-1$
-			else {
-				IPath tagdirPath = tagdir.getFullPath();
-				String[] segments = tagdirPath.segments();
-				for (int i = 1; record.shortName == null && i < segments.length; i++) {
-					if (segments[i - 1].equals("WEB-INF") && segments[i].equals("tags")) { //$NON-NLS-1$ //$NON-NLS-2$
-						IPath tagdirLocalPath = tagdirPath.removeFirstSegments(i + 1);
-						record.shortName = tagdirLocalPath.toString().replace('/', '-');
-					}
+	private TagDirRecord createTagdirRecord(IFolder tagdir) {
+		IPath tagdirPath = tagdir.getFullPath();
+		TagDirRecord record = new TagDirRecord();
+		record.path = tagdir.getFullPath();
+		record.info = new TaglibInfo();
+		// 8.4.3
+		if (tagdir.getName().equals("tags")) //$NON-NLS-1$
+			record.info.shortName = "tags"; //$NON-NLS-1$
+		else {
+			boolean determined = false;
+			IPath path = tagdirPath;
+			String[] segments = path.segments();
+			for (int i = 1; i < segments.length; i++) {
+				if (segments[i - 1].equals("WEB-INF") && segments[i].equals("tags")) { //$NON-NLS-1$ //$NON-NLS-2$
+					IPath tagdirLocalPath = path.removeFirstSegments(i + 1);
+					record.info.shortName = StringUtils.replace(tagdirLocalPath.toString(), "/", "-");
+					determined = true;
 				}
 			}
-
+			if (!determined) {
+				record.info.shortName = StringUtils.replace(tagdirPath.toString(), "/", "-");
+			}
 		}
+		// 8.4.3
+		record.info.tlibVersion = "1.0";
+		record.info.description = "";
+		record.info.displayName = "";
+		record.info.smallIcon = "";
+		record.info.largeIcon = "";
+
+		try {
+			IResource[] tagfiles = tagdir.members();
+			for (int i = 0; i < tagfiles.length; i++) {
+				if (tagfiles[i].getType() != IResource.FILE)
+					continue;
+				String extension = tagfiles[i].getFileExtension();
+				if (extension != null && (extension.equals("tag") || extension.equals("tagx"))) {
+					record.tags.add(tagfiles[i].getName());
+				}
+			}
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+		}
+
 		return record;
 	}
 
@@ -764,7 +868,7 @@
 		record.path = tld.getFullPath();
 		InputStream contents = null;
 		try {
-			if (tld.getLocation() != null) {
+			if (tld.isAccessible()) {
 				contents = ((IFile) tld).getContents(true);
 				String basePath = tld.getFullPath().toString();
 				TaglibInfo info = extractInfo(basePath, contents);
@@ -790,9 +894,33 @@
 	}
 
 	private void ensureUpTodate() {
-		if (fBuildPathIsDirty) {
-			indexClasspath();
-			fBuildPathIsDirty = false;
+		try {
+			LOCK.acquire();
+
+			if (!fBuildPathIsDirty) {
+				/*
+				 * Double-check that the number of build path entries has not
+				 * changed. This should cover most cases such as when a
+				 * library is added into or removed from a container.
+				 */
+				try {
+					IJavaProject jproject = JavaCore.create(fProject);
+					if (jproject != null && jproject.exists()) {
+						IClasspathEntry[] entries = jproject.getResolvedClasspath(true);
+						fBuildPathIsDirty = (fBuildPathEntryCount != entries.length);
+					}
+				}
+				catch (JavaModelException e) {
+					Logger.logException(e);
+				}
+			}
+			if (fBuildPathIsDirty) {
+				indexClasspath();
+				fBuildPathIsDirty = false;
+			}
+		}
+		finally {
+			LOCK.release();
 		}
 	}
 
@@ -820,13 +948,11 @@
 					else if (child.getNodeName().equals(JSP12TLDNames.DESCRIPTION) || child.getNodeName().equals(JSP11TLDNames.INFO)) {
 						info.description = getTextContents(child);
 					}
+					else if (child.getNodeName().equals(JSP12TLDNames.DISPLAY_NAME)) {
+						info.displayName = getTextContents(child);
+					}
 					else if (child.getNodeName().equals(JSP12TLDNames.JSP_VERSION) || child.getNodeName().equals(JSP11TLDNames.JSPVERSION)) {
-						try {
-							info.jspVersion = Float.parseFloat(getTextContents(child));
-						}
-						catch (NumberFormatException e) {
-							info.jspVersion = 1;
-						}
+						info.jspVersion = getTextContents(child);
 					}
 					else if (child.getNodeName().equals(JSP12TLDNames.TLIB_VERSION) || child.getNodeName().equals(JSP11TLDNames.TLIBVERSION)) {
 						info.tlibVersion = getTextContents(child);
@@ -844,52 +970,124 @@
 		return info;
 	}
 
-	synchronized List getAvailableTaglibRecords(IPath path) {
+	List getAvailableTaglibRecords(IPath path) {
 		ensureUpTodate();
+		Collection records = null;
+		try {
+			float jspVersion = DeploymentDescriptorPropertyCache.getInstance().getJSPVersion(path);
+			LOCK.acquire();
 
-		Collection implicitReferences = new HashSet(getImplicitReferences(path.toString()).values());
-		List records = new ArrayList(fTLDReferences.size() + fTagDirReferences.size() + fJARReferences.size() + fWebXMLReferences.size());
-		records.addAll(fTLDReferences.values());
-		records.addAll(fTagDirReferences.values());
-		records.addAll(_getJSP11AndWebXMLJarReferences(fJARReferences.values()));
-		records.addAll(implicitReferences);
-
-		Map buildPathReferences = new HashMap();
-		List projectsProcessed = new ArrayList(fClasspathProjects.size() + 1);
-		projectsProcessed.add(fProject);
-		addBuildPathReferences(buildPathReferences, projectsProcessed, false);
-		records.addAll(buildPathReferences.values());
-
-		ICatalog defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-		if (defaultCatalog != null) {
-			// Process default catalog
-			ICatalogEntry[] entries = defaultCatalog.getCatalogEntries();
-			for (int entry = 0; entry < entries.length; entry++) {
-				ITaglibRecord record = createCatalogRecord(entries[entry]);
-				records.add(record);
+			Collection implicitReferences = new HashSet(getImplicitReferences(path.toString()).values());
+			records = new ArrayList(fTLDReferences.size() + fTagDirReferences.size() + fJARReferences.size() + fWebXMLReferences.size());
+			records.addAll(fTLDReferences.values());
+			if (jspVersion >= 1.1) {
+				records.addAll(_getJSP11AndWebXMLJarReferences(fJARReferences.values()));
 			}
 
-			// Process declared OASIS nextCatalogs catalog
-			INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs();
-			for (int nextCatalog = 0; nextCatalog < nextCatalogs.length; nextCatalog++) {
-				ICatalog catalog = nextCatalogs[nextCatalog].getReferencedCatalog();
-				ICatalogEntry[] entries2 = catalog.getCatalogEntries();
-				for (int entry = 0; entry < entries2.length; entry++) {
-					String uri = entries2[entry].getURI();
-					if (uri != null) {
-						uri = uri.toLowerCase(Locale.US);
-						if (uri.endsWith((".jar")) || uri.endsWith((".tld"))) {
-							ITaglibRecord record = createCatalogRecord(entries2[entry]);
-							if(record != null) {
-								records.add(record);
-							}
+			if (jspVersion >= 1.2) {
+				records.addAll(implicitReferences);
+
+				Map buildPathReferences = new HashMap();
+				List projectsProcessed = new ArrayList(fClasspathProjects.size() + 1);
+				projectsProcessed.add(fProject);
+				addBuildPathReferences(buildPathReferences, projectsProcessed, false);
+				records.addAll(buildPathReferences.values());
+			}
+			if (jspVersion >= 2.0) {
+				records.addAll(fTagDirReferences.values());
+			}
+
+			records.addAll(getCatalogRecords());
+		}
+		finally {
+			LOCK.release();
+		}
+		return new ArrayList(records);
+	}
+
+	/**
+	 * Provides a stream to a local copy of the input or null if not possible
+	 */
+	private InputStream getCachedInputStream(ZipFile zipFile, ZipEntry zipEntry) {
+		InputStream cache = null;
+		if (zipFile != null) {
+			if (zipEntry != null) {
+				InputStream entryInputStream = null;
+				try {
+					entryInputStream = zipFile.getInputStream(zipEntry);
+				}
+				catch (IOException ioExc) {
+					Logger.logException("Taglib Index: " + zipFile.getName(), ioExc); //$NON-NLS-1$
+				}
+
+				if (entryInputStream != null) {
+					int c;
+					ByteArrayOutputStream buffer = null;
+					if (zipEntry.getSize() > 0) {
+						buffer = new ByteArrayOutputStream((int) zipEntry.getSize());
+					}
+					else {
+						buffer = new ByteArrayOutputStream();
+					}
+					// array dim restriction?
+					byte bytes[] = new byte[2048];
+					try {
+						while ((c = entryInputStream.read(bytes)) >= 0) {
+							buffer.write(bytes, 0, c);
+						}
+						cache = new ByteArrayInputStream(buffer.toByteArray());
+					}
+					catch (IOException ioe) {
+						// no cleanup can be done
+					}
+					finally {
+						try {
+							entryInputStream.close();
+						}
+						catch (IOException e) {
 						}
 					}
 				}
 			}
 		}
 
-		return records;
+		return cache;
+	}
+
+	private Collection getCatalogRecords() {
+		if (fCatalogRecords == null) {
+			List records = new ArrayList();
+			ICatalog defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
+			if (defaultCatalog != null) {
+				// Process default catalog
+				ICatalogEntry[] entries = defaultCatalog.getCatalogEntries();
+				for (int entry = 0; entry < entries.length; entry++) {
+					ITaglibRecord record = createCatalogRecord(entries[entry]);
+					records.add(record);
+				}
+
+				// Process declared OASIS nextCatalogs catalog
+				INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs();
+				for (int nextCatalog = 0; nextCatalog < nextCatalogs.length; nextCatalog++) {
+					ICatalog catalog = nextCatalogs[nextCatalog].getReferencedCatalog();
+					ICatalogEntry[] entries2 = catalog.getCatalogEntries();
+					for (int entry = 0; entry < entries2.length; entry++) {
+						String uri = entries2[entry].getURI();
+						if (uri != null) {
+							uri = uri.toLowerCase(Locale.US);
+							if (uri.endsWith((".jar")) || uri.endsWith((".tld"))) {
+								ITaglibRecord record = createCatalogRecord(entries2[entry]);
+								if (record != null) {
+									records.add(record);
+								}
+							}
+						}
+					}
+				}
+			}
+			fCatalogRecords = records;
+		}
+		return fCatalogRecords;
 	}
 
 	/**
@@ -908,6 +1106,7 @@
 	/**
 	 * @param basePath
 	 * @return the applicable Web context root path, if one exists
+	 * @deprecated
 	 */
 	IPath getLocalRoot(IPath basePath) {
 		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
@@ -1017,33 +1216,19 @@
 		IJavaElement element = delta.getElement();
 		if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT && ((IPackageFragmentRoot) element).isArchive()) {
 			time0 = System.currentTimeMillis();
-			String libPath = null;
+			if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT && ((IPackageFragmentRoot) element).isExternal()) {
+			}
+			String libLocation = null;
 			int taglibRecordEventKind = -1;
-			if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) > 0) {
-				taglibRecordEventKind = ITaglibRecordEvent.ADDED;
+			if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) > 0 || (delta.getFlags() & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) > 0 || (delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) > 0) {
+				taglibRecordEventKind = ITaglibIndexDelta.ADDED;
 				IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(element.getPath());
-				if (file.exists())
-					libPath = file.getLocation().toString();
+				if (file.isAccessible() && file.getLocation() != null)
+					libLocation = file.getLocation().toString();
 				else
-					libPath = element.getPath().toString();
+					libLocation = element.getPath().toString();
 			}
-			else if ((delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) > 0) {
-				taglibRecordEventKind = ITaglibRecordEvent.REMOVED;
-				IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(element.getPath());
-				if (file.getLocation() != null)
-					libPath = file.getLocation().toString();
-				else
-					libPath = element.getPath().toString();
-			}
-			else if ((delta.getFlags() & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) > 0) {
-				taglibRecordEventKind = ITaglibRecordEvent.CHANGED;
-				IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(element.getPath());
-				if (file.exists())
-					libPath = file.getLocation().toString();
-				else
-					libPath = element.getPath().toString();
-			}
-			if (libPath != null) {
+			if (libLocation != null) {
 				boolean fragmentisExported = true;
 				try {
 					IClasspathEntry rawClasspathEntry = ((IPackageFragmentRoot) element).getRawClasspathEntry();
@@ -1053,14 +1238,20 @@
 					 * it's been deleted and whether it's exported won't
 					 * really matter
 					 */
-					if(rawClasspathEntry != null) {
+					if (rawClasspathEntry != null) {
 						fragmentisExported = rawClasspathEntry.isExported();
 					}
 				}
 				catch (JavaModelException e) {
 					Logger.logException("Problem handling build path entry for " + element.getPath(), e); //$NON-NLS-1$
 				}
-				updateClasspathLibrary(libPath, taglibRecordEventKind, fragmentisExported);
+				if ((delta.getFlags() & IJavaElementDelta.F_ADDED_TO_CLASSPATH) > 0) {
+					fBuildPathEntryCount++;
+				}
+				else if ((delta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) > 0) {
+					fBuildPathEntryCount--;
+				}
+				updateClasspathLibrary(libLocation, taglibRecordEventKind, fragmentisExported);
 			}
 			if (_debugIndexTime)
 				Logger.log(Logger.INFO, "processed build path delta for " + fProject.getName() + "(" + element.getPath() + ") in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
@@ -1092,13 +1283,14 @@
 		fClasspathProjects.clear();
 		fClasspathReferences.clear();
 		fClasspathJars.clear();
+		fBuildPathEntryCount = 0;
 
 		IJavaProject javaProject = JavaCore.create(fProject);
 		/*
 		 * If the Java nature isn't present (or something else is wrong),
 		 * don't check the build path.
 		 */
-		if (javaProject.exists()) {
+		if (javaProject != null && javaProject.exists()) {
 			indexClasspath(javaProject);
 		}
 		// else {
@@ -1125,29 +1317,26 @@
 				break;
 			case IClasspathEntry.CPE_LIBRARY : {
 				/*
-				 * Track all libs now since required projects are consulted
-				 * for their build path jars separately
+				 * Ignore libs in required projects that are not exported
 				 */
-					IPath libPath = entry.getPath();
-					if (!fClasspathJars.containsKey(libPath.toString())) {
-						File systemFile = libPath.toFile();
-						// Can't handle folders
-						if (systemFile.isFile() && systemFile.exists()) {
-							updateClasspathLibrary(libPath.toString(), ITaglibRecordEvent.ADDED, entry.isExported());
-						}
-						else if (libPath.segmentCount() > 1) {
-							/*
-							 * Note: .jars on the classpath inside of the
-							 * project will have duplicate entries in the JAR
-							 * references table that will e returned to
-							 * getAvailableTaglibRecords().
-							 */
-							IFile libFile = ResourcesPlugin.getWorkspace().getRoot().getFile(libPath);
-							if (libFile != null && libFile.getType() == IResource.FILE && libFile.exists() && libFile.getLocation() != null) {
-								updateClasspathLibrary(libFile.getLocation().toString(), ITaglibRecordEvent.ADDED, entry.isExported());
-							}
+				IPath libPath = entry.getPath();
+				if (!fClasspathJars.containsKey(libPath.toString())) {
+					if (libPath.toFile().exists()) {
+						updateClasspathLibrary(libPath.toString(), ITaglibIndexDelta.ADDED, entry.isExported());
+					}
+					else {
+						/*
+						 * Note: .jars on the classpath inside of the project
+						 * will have duplicate entries in the JAR references
+						 * table that will e returned to
+						 * getAvailableTaglibRecords().
+						 */
+						IFile libFile = ResourcesPlugin.getWorkspace().getRoot().getFile(libPath);
+						if (libFile != null && libFile.exists()) {
+							updateClasspathLibrary(libFile.getLocation().toString(), ITaglibIndexDelta.ADDED, entry.isExported());
 						}
 					}
+				}
 			}
 				break;
 			case IClasspathEntry.CPE_PROJECT : {
@@ -1166,7 +1355,7 @@
 			case IClasspathEntry.CPE_VARIABLE : {
 				IPath libPath = JavaCore.getResolvedVariablePath(entry.getPath());
 				if (libPath != null) {
-					File file = new File(libPath.toOSString());
+					File file = libPath.toFile();
 
 					// file in filesystem
 					if (file.exists() && !file.isDirectory()) {
@@ -1194,7 +1383,7 @@
 	 * records.length; i++) {
 	 * fClasspathReferences.remove(records[i].getURI()); }
 	 * TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record,
-	 * ITaglibRecordEvent.REMOVED)); } }
+	 * ITaglibIndexDelta.REMOVED)); } }
 	 */
 
 	/**
@@ -1208,6 +1397,7 @@
 		if (project.equals(fProject)) {
 			try {
 				IClasspathEntry[] entries = javaProject.getResolvedClasspath(true);
+				fBuildPathEntryCount = entries.length;
 				for (int i = 0; i < entries.length; i++) {
 					indexClasspath(entries[i]);
 				}
@@ -1236,44 +1426,56 @@
 		if (record != null) {
 			URLRecord[] records = (URLRecord[]) record.getURLRecords().toArray(new URLRecord[0]);
 			for (int i = 0; i < records.length; i++) {
-				TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(records[i], ITaglibRecordEvent.REMOVED));
+				TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, records[i], ITaglibIndexDelta.REMOVED));
 				getImplicitReferences(jar.getFullPath().toString()).remove(records[i].getURI());
 			}
 			if (record.has11TLD) {
-				TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, ITaglibRecordEvent.REMOVED));
+				TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, ITaglibIndexDelta.REMOVED));
 			}
 		}
 	}
 
-	void removeTagDir(IResource tagFile) {
-		// IContainer tagdir = tagFile.getParent();
-		// String tagdirLocation = tagdir.getFullPath().toString();
-		// fTagDirReferences.remove(tagdirLocation);
+	void removeTag(IResource resource) {
+		TagDirRecord record = (TagDirRecord) fTagDirReferences.get(resource.getParent().getFullPath().toString());
+		if (record != null) {
+			record.tags.remove(resource.getName());
+			TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, ITaglibIndexDelta.CHANGED));
+		}
+	}
+
+	void removeTagDir(IResource tagdir) {
+		IPath tagdirPath = tagdir.getFullPath();
+		if (_debugIndexCreation)
+			Logger.log(Logger.INFO, "removing record for " + tagdirPath); //$NON-NLS-1$
+		ITaglibRecord record = (ITaglibRecord) fTagDirReferences.remove(tagdirPath.toString());
+		if (record != null) {
+			TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, ITaglibIndexDelta.REMOVED));
+		}
 	}
 
 	void removeTLD(IResource tld) {
 		if (_debugIndexCreation)
 			Logger.log(Logger.INFO, "removing record for " + tld.getFullPath()); //$NON-NLS-1$
-		TLDRecord record = (TLDRecord) fTLDReferences.remove(tld.getFullPath());
+		TLDRecord record = (TLDRecord) fTLDReferences.remove(tld.getFullPath().toString());
 		if (record != null) {
 			if (record.getURI() != null) {
 				getImplicitReferences(tld.getFullPath().toString()).remove(record.getURI());
 			}
-			TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, ITaglibRecordEvent.REMOVED));
+			TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, ITaglibIndexDelta.REMOVED));
 		}
 	}
 
 	void removeWebXML(IResource webxml) {
 		if (_debugIndexCreation)
 			Logger.log(Logger.INFO, "removing records for " + webxml.getFullPath()); //$NON-NLS-1$
-		WebXMLRecord record = (WebXMLRecord) fWebXMLReferences.remove(webxml.getLocation().toString());
+		WebXMLRecord record = (WebXMLRecord) fWebXMLReferences.remove(webxml.getFullPath().toString());
 		if (record != null) {
 			TLDRecord[] records = (TLDRecord[]) record.getTLDRecords().toArray(new TLDRecord[0]);
 			for (int i = 0; i < records.length; i++) {
 				if (_debugIndexCreation)
 					Logger.log(Logger.INFO, "removed record for " + records[i].getURI() + "@" + records[i].path); //$NON-NLS-1$ //$NON-NLS-2$
 				getImplicitReferences(webxml.getFullPath().toString()).remove(records[i].getURI());
-				TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(records[i], ITaglibRecordEvent.REMOVED));
+				TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, records[i], ITaglibIndexDelta.REMOVED));
 			}
 		}
 	}
@@ -1288,89 +1490,117 @@
 
 		ITaglibRecord record = null;
 		String path = null;
+		try {
+			float jspVersion = DeploymentDescriptorPropertyCache.getInstance().getJSPVersion(new Path(basePath));
 
-		/**
-		 * Workaround for problem in URIHelper; uris starting with '/' are
-		 * returned as-is.
-		 */
-		if (reference.startsWith("/")) { //$NON-NLS-1$
-			path = getLocalRoot(basePath) + reference;
-		}
-		else {
-			path = URIHelper.normalize(reference, basePath, getLocalRoot(basePath));
-		}
-		// order dictated by JSP spec 2.0 section 7.2.3
-		// if (record == null) {
-		// record = (ITaglibRecord) fWebXMLReferences.get(path);
-		// }
-		if (record == null) {
+			/**
+			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=196177 Support
+			 * resolution in flexible projects
+			 */
+			IPath resourcePath = FacetModuleCoreSupport.resolve(new Path(basePath), reference);
+			if (resourcePath.segmentCount() > 1) {
+				if (resourcePath.toString().toLowerCase(Locale.US).endsWith(".tld")) { //$NON-NLS-1$ 
+					IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(resourcePath);
+					if (file.isAccessible()) {
+						path = resourcePath.toString();
+					}
+				}
+				else if (resourcePath.toString().toLowerCase(Locale.US).endsWith(".jar")) { //$NON-NLS-1$ 
+					IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(resourcePath);
+					if (file.isAccessible()) {
+						path = resourcePath.toString();
+					}
+				}
+			}
+
+			LOCK.acquire();
+
+			/**
+			 * Workaround for problem in URIHelper; uris starting with '/' are
+			 * returned as-is.
+			 */
+			if (path == null) {
+				if (reference.startsWith("/")) { //$NON-NLS-1$
+					path = getLocalRoot(basePath) + reference;
+				}
+				else {
+					path = URIHelper.normalize(reference, basePath, getLocalRoot(basePath));
+				}
+			}
+
+			// order dictated by JSP spec 2.0 section 7.2.3
 			record = (ITaglibRecord) fJARReferences.get(path);
+
 			// only if 1.1 TLD was found
-			if (record instanceof JarRecord && !((JarRecord) record).has11TLD) {
+			if (jspVersion < 1.1 || (record instanceof JarRecord && !((JarRecord) record).has11TLD)) {
 				record = null;
 			}
-		}
-		if (record == null) {
-			record = (ITaglibRecord) fTLDReferences.get(path);
-		}
-		if (record == null) {
-			record = (ITaglibRecord) getImplicitReferences(basePath).get(reference);
-		}
+			if (record == null) {
+				record = (ITaglibRecord) fTLDReferences.get(path);
+			}
+			if (record == null && jspVersion >= 1.2) {
+				record = (ITaglibRecord) getImplicitReferences(basePath).get(reference);
+			}
 
 
-		if (record == null) {
-			record = (ITaglibRecord) fTagDirReferences.get(path);
-		}
+			if (record == null && jspVersion >= 2.0) {
+				record = (ITaglibRecord) fTagDirReferences.get(path);
+			}
 
-		if (record == null) {
-			record = (ITaglibRecord) fClasspathReferences.get(reference);
-		}
-		if (record == null) {
-			Map buildPathReferences = new HashMap();
-			List projectsProcessed = new ArrayList(fClasspathProjects.size() + 1);
-			projectsProcessed.add(fProject);
-			addBuildPathReferences(buildPathReferences, projectsProcessed, false);
-			record = (ITaglibRecord) buildPathReferences.get(reference);
-		}
+			if (record == null && jspVersion >= 1.2) {
+				record = (ITaglibRecord) fClasspathReferences.get(reference);
+			}
+			if (record == null && jspVersion >= 1.2) {
+				Map buildPathReferences = new HashMap();
+				List projectsProcessed = new ArrayList(fClasspathProjects.size() + 1);
+				projectsProcessed.add(fProject);
+				addBuildPathReferences(buildPathReferences, projectsProcessed, false);
+				record = (ITaglibRecord) buildPathReferences.get(reference);
+			}
 
-		// Check the XML Catalog
-		if (record == null) {
-			ICatalog catalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-			if (catalog != null) {
-				String resolvedString = null;
-				try {
-					// Check as system reference first
-					resolvedString = catalog.resolveSystem(reference);
-					// Check as URI
-					if (resolvedString == null || resolvedString.trim().length() == 0) {
-						resolvedString = catalog.resolveURI(reference);
+			// Check the XML Catalog
+			if (record == null) {
+				ICatalog catalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
+				if (catalog != null) {
+					String resolvedString = null;
+					try {
+						// Check as system reference first
+						resolvedString = catalog.resolveSystem(reference);
+						// Check as URI
+						if (resolvedString == null || resolvedString.trim().length() == 0) {
+							resolvedString = catalog.resolveURI(reference);
+						}
+						// Check as public ID
+						if (resolvedString == null || resolvedString.trim().length() == 0) {
+							resolvedString = catalog.resolvePublic(reference, basePath);
+						}
 					}
-					// Check as public ID
-					if (resolvedString == null || resolvedString.trim().length() == 0) {
-						resolvedString = catalog.resolvePublic(reference, basePath);
+					catch (Exception e) {
+						Logger.logException(e);
+					}
+					if (resolvedString != null && resolvedString.trim().length() > 0) {
+						record = createCatalogRecord(reference, resolvedString);
 					}
 				}
-				catch (Exception e) {
-					Logger.logException(e);
-				}
-				if (resolvedString != null && resolvedString.trim().length() > 0) {
-					record = createCatalogRecord(reference, resolvedString);
+			}
+
+			/*
+			 * If no records were found and no local-root applies, check ALL
+			 * of the web.xml files as a fallback
+			 */
+			if (record == null && fProject.getFullPath().toString().equals(getLocalRoot(basePath))) {
+				WebXMLRecord[] webxmls = (WebXMLRecord[]) fWebXMLReferences.values().toArray(new WebXMLRecord[0]);
+				for (int i = 0; i < webxmls.length; i++) {
+					if (record != null)
+						continue;
+					record = (ITaglibRecord) getImplicitReferences(webxmls[i].path.toString()).get(reference);
 				}
 			}
 		}
-
-		// If no records were found and no local-root applies, check ALL of
-		// the web.xml files as a fallback
-		if (record == null && fProject.getFullPath().toString().equals(getLocalRoot(basePath))) {
-			WebXMLRecord[] webxmls = (WebXMLRecord[]) fWebXMLReferences.values().toArray(new WebXMLRecord[0]);
-			for (int i = 0; i < webxmls.length; i++) {
-				if (record != null)
-					continue;
-				record = (ITaglibRecord) getImplicitReferences(webxmls[i].path.toString()).get(reference);
-			}
+		finally {
+			LOCK.release();
 		}
 
-
 		return record;
 	}
 
@@ -1378,6 +1608,7 @@
 	 * Restores any saved reference tables
 	 */
 	private void restoreReferences() {
+		final boolean notifyOnRestoration = true;
 		if (TaglibIndex.ENABLED) {
 			// resources first
 			index();
@@ -1388,10 +1619,11 @@
 			File savedState = new File(fSaveStateFilename);
 			if (savedState.exists()) {
 				Reader reader = null;
-				try {				
+				try {
 					time0 = System.currentTimeMillis();
-					reader = new InputStreamReader(new FileInputStream(savedState), "utf16");
-					// use a string buffer temporarily to reduce string creation
+					reader = new InputStreamReader(new BufferedInputStream(new FileInputStream(savedState)), "UTF-16"); //$NON-NLS-1$ 
+					// use a string buffer temporarily to reduce string
+					// creation
 					StringBuffer buffer = new StringBuffer();
 					char array[] = new char[2048];
 					int charsRead = 0;
@@ -1400,7 +1632,7 @@
 							buffer.append(array, 0, charsRead);
 						}
 					}
-					
+
 					IDocument doc = new org.eclipse.jface.text.Document();
 					doc.set(buffer.toString());
 					int lines = doc.getNumberOfLines();
@@ -1411,7 +1643,7 @@
 						if (SAVE_FORMAT_VERSION.equals(lineText.trim())) {
 							IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
 
-							for (int i = 1; i < lines; i++) {
+							for (int i = 1; i < lines && !fBuildPathIsDirty; i++) {
 								line = doc.getLineInformation(i);
 								lineText = doc.get(line.getOffset(), line.getLength());
 								StringTokenizer toker = new StringTokenizer(lineText, "|"); //$NON-NLS-1$
@@ -1426,8 +1658,8 @@
 											libraryLocation = libraryLocation + "|" + toker.nextToken(); //$NON-NLS-1$ //$NON-NLS-2$
 										}
 										libraryLocation = libraryLocation.trim();
-										if (libraryRecord != null) {
-											TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(libraryRecord, ITaglibRecordEvent.ADDED));
+										if (libraryRecord != null && notifyOnRestoration) {
+											TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, libraryRecord, ITaglibIndexDelta.ADDED));
 										}
 										// Create a new JarRecord
 										libraryRecord = createJARRecord(libraryLocation);
@@ -1454,8 +1686,8 @@
 													}
 													catch (MalformedURLException e) {
 														/*
-														 * don't create a
-														 * record for this URL
+														 * don't record this
+														 * URI
 														 */
 														Logger.logException(e);
 													}
@@ -1470,7 +1702,9 @@
 
 										fClasspathJars.put(libraryLocation, libraryRecord);
 									}
-									else if ("URL".equalsIgnoreCase(tokenType)) { //$NON-NLS-1$
+									else if ("URL".equalsIgnoreCase(tokenType) && libraryRecord != null) { //$NON-NLS-1$
+										// relies on a previously declared JAR
+										// record
 										boolean exported = Boolean.valueOf(toker.nextToken()).booleanValue();
 										// make the rest the URL
 										String urlString = toker.nextToken();
@@ -1538,31 +1772,26 @@
 											}
 										}
 									}
-									// last since only occurs once
+									// last since they occur once
 									else if (BUILDPATH_DIRTY.equalsIgnoreCase(tokenType)) {
 										fBuildPathIsDirty = Boolean.valueOf(toker.nextToken()).booleanValue();
 									}
+									else if (BUILDPATH_ENTRIES.equalsIgnoreCase(tokenType)) {
+										fBuildPathEntryCount = Integer.valueOf(toker.nextToken()).intValue();
+									}
 								}
-								if (libraryRecord != null) {
-									TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(libraryRecord, ITaglibRecordEvent.ADDED));
+								if (libraryRecord != null && notifyOnRestoration) {
+									TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, libraryRecord, ITaglibIndexDelta.ADDED));
 								}
 							}
 							restored = true;
 						}
 						else {
-							Logger.log(Logger.INFO, "Tag Library Index: different cache format found, was \"" + lineText + "\", supports \"" + SAVE_FORMAT_VERSION + "\", reindexing"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+							Logger.log(Logger.INFO, "Tag Library Index: different cache format found, was \"" + lineText + "\", supports \"" + SAVE_FORMAT_VERSION + "\", reindexing build path"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 						}
 					}
-					else if (_debugIndexTime) {
-						if (restored) {
-							Logger.log(Logger.WARNING, "no lines in (no cache file?) " + fSaveStateFilename); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-					}
-					if (_debugIndexTime) {
-						if (restored) {
-							Logger.log(Logger.INFO, "time spent reloading " + fProject.getName() + " build path: " + (System.currentTimeMillis() - time0)); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-					}
+					if (_debugIndexTime)
+						Logger.log(Logger.INFO, "time spent reloading " + fProject.getName() + " build path: " + (System.currentTimeMillis() - time0)); //$NON-NLS-1$ //$NON-NLS-2$
 				}
 				catch (Exception e) {
 					restored = false;
@@ -1600,18 +1829,20 @@
 
 		/**
 		 * <pre>
-		 *                  		 1.0.1
-		 *                  		 Save classpath information (| is field delimiter)
-		 *                  		 Jars are saved as &quot;JAR:&quot;+ has11TLD + jar path 
-		 *                  		 URLRecords as &quot;URL:&quot;+URL
+		 *                     		 1.0.1
+		 *                     		 Save classpath information (| is field delimiter)
+		 *                     		 Jars are saved as &quot;JAR:&quot;+ has11TLD + jar path 
+		 *                     		 URLRecords as &quot;URL:&quot;+URL
 		 * </pre>
 		 */
 		try {
-			writer = new OutputStreamWriter(new FileOutputStream(fSaveStateFilename), "utf16"); //$NON-NLS-1$
+			writer = new OutputStreamWriter(new FileOutputStream(fSaveStateFilename), "UTF-16"); //$NON-NLS-1$
 			writer.write(SAVE_FORMAT_VERSION);
 			writer.write('\n'); //$NON-NLS-1$
 			writer.write(BUILDPATH_DIRTY + "|" + fBuildPathIsDirty); //$NON-NLS-1$
 			writer.write('\n'); //$NON-NLS-1$
+			writer.write(BUILDPATH_ENTRIES + "|" + fBuildPathEntryCount); //$NON-NLS-1$
+			writer.write('\n'); //$NON-NLS-1$
 
 			IProject[] projects = (IProject[]) fClasspathProjects.toArray(new IProject[0]);
 			for (int i = 0; i < projects.length; i++) {
@@ -1661,64 +1892,84 @@
 
 	void setBuildPathIsDirty() {
 		fBuildPathIsDirty = true;
-		if (_debugIndexCreation)
-			Logger.log(Logger.INFO, "marked build path dirty for " + fProject.getName() + ": " + (System.currentTimeMillis() - time0)); //$NON-NLS-1$
+		if (_debugIndexTime)
+			Logger.log(Logger.INFO, "marking build path information for " + fProject.getName() + " as dirty"); //$NON-NLS-1$
 	}
 
 	void updateClasspathLibrary(String libraryLocation, int deltaKind, boolean isExported) {
 		JarRecord libraryRecord = null;
-		if (deltaKind == ITaglibRecordEvent.REMOVED || deltaKind == ITaglibRecordEvent.CHANGED) {
+		if (deltaKind == ITaglibIndexDelta.REMOVED || deltaKind == ITaglibIndexDelta.CHANGED) {
 			libraryRecord = (JarRecord) fClasspathJars.remove(libraryLocation);
 			if (libraryRecord != null) {
 				IURLRecord[] urlRecords = (IURLRecord[]) libraryRecord.urlRecords.toArray(new IURLRecord[0]);
 				for (int i = 0; i < urlRecords.length; i++) {
-					fClasspathReferences.remove(urlRecords[i].getURI());
+					ITaglibRecord record = (ITaglibRecord) fClasspathReferences.remove(urlRecords[i].getURI());
+					if (record != null) {
+						TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, ITaglibIndexDelta.REMOVED));
+					}
 				}
 			}
 		}
-		if (deltaKind == ITaglibRecordEvent.ADDED || deltaKind == ITaglibRecordEvent.CHANGED) {
-			String[] entries = JarUtilities.getEntryNames(libraryLocation);
-
+		if (deltaKind == ITaglibIndexDelta.ADDED || deltaKind == ITaglibIndexDelta.CHANGED) {
 			libraryRecord = createJARRecord(libraryLocation);
 			libraryRecord.isExported = isExported;
 			fClasspathJars.put(libraryLocation, libraryRecord);
-			for (int i = 0; i < entries.length; i++) {
-				if (entries[i].endsWith(".tld")) { //$NON-NLS-1$
-					if (entries[i].equals(JarUtilities.JSP11_TAGLIB)) {
-						libraryRecord.has11TLD = true;
-					}
-					InputStream contents = JarUtilities.getInputStream(libraryLocation, entries[i]);
-					if (contents != null) {
-						TaglibInfo info = extractInfo(libraryLocation, contents);
 
-						if (info != null && info.uri != null && info.uri.length() > 0) {
-							URLRecord urlRecord = new URLRecord();
-							urlRecord.info = info;
-							urlRecord.baseLocation = libraryLocation;
-							try {
-								urlRecord.isExported = isExported;
-								urlRecord.url = new URL("jar:file:" + libraryLocation + "!/" + entries[i]); //$NON-NLS-1$ //$NON-NLS-2$
-								libraryRecord.urlRecords.add(urlRecord);
-								fClasspathReferences.put(urlRecord.getURI(), urlRecord);
-								if (_debugIndexCreation)
-									Logger.log(Logger.INFO, "created record for " + urlRecord.getURI() + "@" + urlRecord.getURL()); //$NON-NLS-1$ //$NON-NLS-2$
+			ZipFile jarfile = null;
+			try {
+				jarfile = new ZipFile(libraryLocation);
+				Enumeration entries = jarfile.entries();
+				while (entries.hasMoreElements()) {
+					ZipEntry z = (ZipEntry) entries.nextElement();
+					if (!z.isDirectory()) {
+						if (z.getName().toLowerCase(Locale.US).endsWith(".tld")) { //$NON-NLS-1$
+							if (z.getName().equals(JarUtilities.JSP11_TAGLIB)) {
+								libraryRecord.has11TLD = true;
 							}
-							catch (MalformedURLException e) {
-								// don't record this URI
-								Logger.logException(e);
+							InputStream contents = getCachedInputStream(jarfile, z);
+							if (contents != null) {
+								TaglibInfo info = extractInfo(libraryLocation, contents);
+
+								if (info != null && info.uri != null && info.uri.length() > 0) {
+									URLRecord urlRecord = new URLRecord();
+									urlRecord.info = info;
+									urlRecord.baseLocation = libraryLocation;
+									try {
+										urlRecord.isExported = isExported;
+										urlRecord.url = new URL("jar:file:" + libraryLocation + "!/" + z.getName()); //$NON-NLS-1$ //$NON-NLS-2$
+										libraryRecord.urlRecords.add(urlRecord);
+										TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, urlRecord, deltaKind));
+										fClasspathReferences.put(urlRecord.getURI(), urlRecord);
+										if (_debugIndexCreation)
+											Logger.log(Logger.INFO, "created record for " + urlRecord.getURI() + "@" + urlRecord.getURL()); //$NON-NLS-1$ //$NON-NLS-2$
+									}
+									catch (MalformedURLException e) {
+										// don't record this URI
+										Logger.logException(e);
+									}
+								}
+								try {
+									contents.close();
+								}
+								catch (IOException e) {
+								}
 							}
 						}
-						try {
-							contents.close();
-						}
-						catch (IOException e) {
-						}
 					}
 				}
 			}
+			catch (ZipException zExc) {
+				Logger.log(Logger.WARNING, "Taglib Index ZipException: " + libraryLocation + " " + zExc.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
+			}
+			catch (IOException ioExc) {
+				Logger.log(Logger.WARNING, "Taglib Index IOException: " + libraryLocation + " " + ioExc.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
+			}
+			finally {
+				closeJarFile(jarfile);
+			}
 		}
 		if (libraryRecord != null) {
-			TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(libraryRecord, deltaKind));
+			TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, libraryRecord, deltaKind));
 		}
 	}
 
@@ -1726,7 +1977,11 @@
 		if (_debugIndexCreation)
 			Logger.log(Logger.INFO, "creating records for JAR " + jar.getFullPath()); //$NON-NLS-1$
 
-		String jarLocationString = jar.getLocation().toString();
+		String jarLocationString = null;
+		if (jar.getLocation() != null)
+			jarLocationString = jar.getLocation().toString();
+		else
+			jarLocationString = jar.getLocationURI().toString();
 		String[] entries = JarUtilities.getEntryNames(jar);
 		JarRecord jarRecord = createJARRecord(jar);
 		fJARReferences.put(jar.getFullPath().toString(), jarRecord);
@@ -1746,8 +2001,15 @@
 						try {
 							record.url = new URL("jar:file:" + jarLocationString + "!/" + entries[i]); //$NON-NLS-1$ //$NON-NLS-2$
 							jarRecord.urlRecords.add(record);
+
+							int taglibDeltaKind = ITaglibIndexDelta.ADDED;
+							Hashtable table = getImplicitReferences(jar.getFullPath().toString());
+							if (table != null && table.get(record.getURI()) != null) {
+								taglibDeltaKind = ITaglibIndexDelta.CHANGED;
+							}
+
 							getImplicitReferences(jar.getFullPath().toString()).put(record.getURI(), record);
-							TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, ITaglibRecordEvent.ADDED));
+							TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, taglibDeltaKind));
 							if (_debugIndexCreation)
 								Logger.log(Logger.INFO, "created record for " + record.getURI() + "@" + record.getURL()); //$NON-NLS-1$ //$NON-NLS-2$
 						}
@@ -1768,23 +2030,50 @@
 			}
 		}
 		if (jarRecord.has11TLD) {
-			TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(jarRecord, deltaKind));
+			TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, jarRecord, deltaKind));
 		}
 	}
 
-	void updateTagDir(IResource tagFile, int deltaKind) {
-		return;
+
+	void updateTag(IResource resource, int kind) {
+		TagDirRecord record = (TagDirRecord) fTagDirReferences.get(resource.getParent().getFullPath().toString());
+		if (record == null) {
+			record = createTagdirRecord((IFolder) resource.getParent());
+			fTagDirReferences.put(resource.getParent().getFullPath().toString(), record);
+			TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, ITaglibIndexDelta.ADDED));
+		}
+		else {
+			if (!record.tags.contains(resource.getName())) {
+				record.tags.add(resource.getName());
+			}
+			TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, ITaglibIndexDelta.CHANGED));
+		}
+	}
+
+	void updateTagDir(IResource tagdirResource, int deltaKind) {
 		/**
-		 * Make sure the tag file is n a WEB-INF/tags folder because of the
-		 * shortname computation requirements
+		 * 8.4.1: tag files are loose files under /WEB-INF/tags
 		 */
-		// if ((tagFile.getType() & IResource.FOLDER) > 0 ||
-		// tagFile.getFullPath().toString().indexOf("WEB-INF/tags") < 0)
-		// return;
-		// TagDirRecord record = createTagdirRecord(tagFile);
-		// if (record != null) {
-		// record.tags.add(tagFile.getName());
-		// }
+		if ((tagdirResource.getType() & IResource.FOLDER) != 0) {
+			if (_debugIndexCreation)
+				Logger.log(Logger.INFO, "creating record for directory " + tagdirResource.getFullPath()); //$NON-NLS-1$
+			TagDirRecord record = (TagDirRecord) fTagDirReferences.get(tagdirResource.getFullPath().toString());
+			if (record == null) {
+				record = createTagdirRecord((IFolder) tagdirResource);
+				fTagDirReferences.put(tagdirResource.getFullPath().toString(), record);
+				TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, deltaKind));
+			}
+			else {
+
+			}
+		}
+		/**
+		 * 8.4.1: tag files can also be packaged in the /META-INF/tags folder
+		 * of a jar in /WEB-INF/lib/ (8.4.2: but must be mentioned in a .tld)
+		 */
+		else {
+			// these tags are merely surfaced when the TLD is modelled
+		}
 	}
 
 	void updateTLD(IResource tld, int deltaKind) {
@@ -1795,7 +2084,7 @@
 		if (record.getURI() != null) {
 			getImplicitReferences(tld.getFullPath().toString()).put(record.getURI(), record);
 		}
-		TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, deltaKind));
+		TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, deltaKind));
 	}
 
 	void updateWebXML(IResource webxml, int deltaKind) {
@@ -1853,28 +2142,31 @@
 					 * 
 					 * Also support mappings to .jar files
 					 */
-					if (resource.getFileExtension().equalsIgnoreCase(("jar"))) { //$NON-NLS-1$
+					if ("jar".equalsIgnoreCase(resource.getFileExtension())) { //$NON-NLS-1$
 						JarRecord jarRecord = createJARRecord(resource);
 						String[] entries = JarUtilities.getEntryNames(resource);
 						for (int jEntry = 0; jEntry < entries.length; jEntry++) {
 							if (entries[jEntry].endsWith(".tld")) { //$NON-NLS-1$
 								if (entries[jEntry].equals(JarUtilities.JSP11_TAGLIB)) {
 									jarRecord.has11TLD = true;
-								}
-								InputStream contents = JarUtilities.getInputStream(resource, entries[jEntry]);
-								if (contents != null) {
-									TaglibInfo info = extractInfo(resource.getFullPath().toString(), contents);
-									jarRecord.info = info;
-								}
-								try {
-									contents.close();
-								}
-								catch (IOException e) {
+									InputStream contents = JarUtilities.getInputStream(resource, entries[jEntry]);
+									if (contents != null) {
+										TaglibInfo info = extractInfo(resource.getFullPath().toString(), contents);
+										jarRecord.info = info;
+										try {
+											contents.close();
+										}
+										catch (IOException e) {
+										}
+									}
 								}
 							}
 						}
 						record = jarRecord;
 						// the stored URI should reflect the web.xml's value
+						if (jarRecord.info == null) {
+							jarRecord.info = new TaglibInfo();
+						}
 						jarRecord.info.uri = taglibUri;
 						jarRecord.isMappedInWebXML = true;
 						if (_debugIndexCreation)
@@ -1888,9 +2180,11 @@
 						if (_debugIndexCreation)
 							Logger.log(Logger.INFO, "created web.xml record for " + taglibUri + "@" + tldRecord.getPath()); //$NON-NLS-1$ //$NON-NLS-2$
 					}
-					webxmlRecord.tldRecords.add(record);
-					getImplicitReferences(webxml.getFullPath().toString()).put(taglibUri, record);
-					TaglibIndex.fireTaglibRecordEvent(new TaglibRecordEvent(record, deltaKind));
+					if (record != null) {
+						webxmlRecord.tldRecords.add(record);
+						getImplicitReferences(webxml.getFullPath().toString()).put(taglibUri, record);
+						TaglibIndex.getInstance().addDelta(new TaglibIndexDelta(fProject, record, deltaKind));
+					}
 				}
 			}
 		}
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
index 8c32cf7..4836346 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndex.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005,2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,6 +12,7 @@
 package org.eclipse.jst.jsp.core.taglib;
 
 import java.io.File;
+import java.lang.ref.Reference;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Hashtable;
@@ -34,6 +35,7 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.jobs.ILock;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jdt.core.ElementChangedEvent;
 import org.eclipse.jdt.core.IElementChangedListener;
 import org.eclipse.jdt.core.IJavaElement;
@@ -68,8 +70,12 @@
 				return;
 			try {
 				LOCK.acquire();
+				if (_debugEvents) {
+					Logger.log(Logger.INFO, "TaglibIndex responding to:" + event); //$NON-NLS-1$
+				}
 				projectsIndexed.clear();
 				elementChanged(event.getDelta(), true);
+				fireCurrentDelta(event);
 			}
 			finally {
 				LOCK.release();
@@ -96,19 +102,28 @@
 				else {
 					IJavaElementDelta[] deltas = delta.getAffectedChildren();
 					if (deltas.length == 0) {
-						/*
-						 * If project is being deleted or closed, remove the
-						 * stored description
-						 */
 						if (delta.getKind() == IJavaElementDelta.REMOVED || (delta.getFlags() & IJavaElementDelta.F_CLOSED) != 0) {
-							IProject project = ((IJavaProject) element).getProject();
-							removeDescription(project);
+							/*
+							 * If the project is being deleted or closed, just
+							 * remove the description
+							 */
+							IJavaProject proj = (IJavaProject) element;
+							ProjectDescription description = (ProjectDescription) fProjectDescriptions.remove(proj.getProject());
+							if (description != null) {
+								if (_debugIndexCreation) {
+									Logger.log(Logger.INFO, "removing index of " + description.fProject.getName()); //$NON-NLS-1$
+								}
+								// removing the index file ensures that we
+								// don't get stale data if the project is
+								// reopened
+								removeIndex(proj.getProject());
+							}
 						}
-						/*
-						 * (else) Without the classpath changing, there's
-						 * nothing else to do
-						 */
 					}
+					/*
+					 * (else) Without the classpath changing, there's nothing
+					 * else to do
+					 */
 					else {
 						for (int i = 0; i < deltas.length; i++) {
 							elementChanged(deltas[i], false);
@@ -180,6 +195,9 @@
 				return;
 			try {
 				LOCK.acquire();
+				if (_debugEvents) {
+					Logger.log(Logger.INFO, "TaglibIndex responding to:" + event + "\n" + event.getDelta()); //$NON-NLS-2$ //$NON-NLS-1$
+				}
 				switch (event.getType()) {
 					case IResourceChangeEvent.PRE_CLOSE :
 					case IResourceChangeEvent.PRE_DELETE : {
@@ -188,7 +206,7 @@
 							IResourceDelta[] deltas = new IResourceDelta[]{event.getDelta()};
 							IProject[] projects = null;
 
-							if (deltas != null && deltas.length > 0) {
+							if (deltas.length > 0) {
 								IResource resource = null;
 								if (deltas[0] != null) {
 									resource = deltas[0].getResource();
@@ -221,7 +239,13 @@
 									if (_debugIndexCreation) {
 										Logger.log(Logger.INFO, "TaglibIndex noticed " + projects[i].getName() + " is about to be deleted/closed"); //$NON-NLS-1$ //$NON-NLS-2$
 									}
-									removeDescription(projects[i]);
+									ProjectDescription description = (ProjectDescription) fProjectDescriptions.remove(projects[i]);
+									if (description != null) {
+										if (_debugIndexCreation) {
+											Logger.log(Logger.INFO, "removing index of " + description.fProject.getName()); //$NON-NLS-1$
+										}
+										description.clear();
+									}
 								}
 							}
 						}
@@ -235,7 +259,7 @@
 							IResourceDelta[] deltas = new IResourceDelta[]{event.getDelta()};
 							IProject[] projects = null;
 
-							if (deltas != null && deltas.length > 0) {
+							if (deltas.length > 0) {
 								IResource resource = null;
 								if (deltas[0] != null) {
 									resource = deltas[0].getResource();
@@ -265,6 +289,8 @@
 									}
 								}
 								for (int i = 0; i < projects.length; i++) {
+									if (deltas[i].getKind() == IResourceDelta.CHANGED && (deltas[i].getFlags() == IResourceDelta.ENCODING || deltas[i].getFlags() == IResourceDelta.MARKERS))
+										continue;
 									try {
 										if (deltas[i] != null && deltas[i].getKind() != IResourceDelta.REMOVED && projects[i].isAccessible()) {
 											ProjectDescription description = getDescription(projects[i]);
@@ -276,7 +302,13 @@
 											if (_debugIndexCreation) {
 												Logger.log(Logger.INFO, "TaglibIndex noticed " + projects[i].getName() + " was removed or is no longer accessible"); //$NON-NLS-1$ //$NON-NLS-2$
 											}
-											removeDescription(projects[i]);
+											ProjectDescription description = (ProjectDescription) fProjectDescriptions.remove(projects[i]);
+											if (description != null) {
+												if (_debugIndexCreation) {
+													Logger.log(Logger.INFO, "removing index of " + description.fProject.getName()); //$NON-NLS-1$
+												}
+												description.clear();
+											}
 										}
 									}
 									catch (CoreException e) {
@@ -290,6 +322,8 @@
 						}
 					}
 				}
+
+				fireCurrentDelta(event);
 			}
 			finally {
 				LOCK.release();
@@ -305,7 +339,9 @@
 
 	static final boolean _debugResolution = "true".equals(Platform.getDebugOption("org.eclipse.jst.jsp.core/taglib/resolve")); //$NON-NLS-1$ //$NON-NLS-2$
 
-	static TaglibIndex _instance;
+	static TaglibIndex _instance = new TaglibIndex();
+
+	private boolean initialized;
 
 	private static final CRC32 checksumCalculator = new CRC32();
 
@@ -313,7 +349,7 @@
 	private static final String DIRTY = "DIRTY";
 	static boolean ENABLED = false;
 
-	static ILock LOCK = Platform.getJobManager().newLock();
+	static ILock LOCK = Job.getJobManager().newLock();
 
 	/**
 	 * NOT API.
@@ -322,32 +358,47 @@
 	 *            the listener to be added
 	 */
 	public static void addTaglibIndexListener(ITaglibIndexListener listener) {
-		try {
-			LOCK.acquire();
-			if (_instance != null)
-				_instance.internalAddTaglibIndexListener(listener);
-		}
-		finally {
-			LOCK.release();
-		}
+		if (getInstance().isInitialized())
+			getInstance().internalAddTaglibIndexListener(listener);
 	}
 
-	static void fireTaglibRecordEvent(ITaglibRecordEvent event) {
+	static void fireTaglibDelta(ITaglibIndexDelta delta) {
 		if (_debugEvents) {
-			Logger.log(Logger.INFO, "TaglibIndex fired event:" + event); //$NON-NLS-1$
+			Logger.log(Logger.INFO, "TaglibIndex fired delta:" + delta + " [" + delta.getAffectedChildren().length + "]\n" + ((TaglibIndexDelta) delta).trigger); //$NON-NLS-1$
 		}
 		/*
 		 * Flush any shared cache entries, the TaglibControllers should handle
 		 * updating their documents as needed.
 		 */
-		TLDCMDocumentManager.getSharedDocumentCache().remove(TLDCMDocumentManager.getUniqueIdentifier(event.getTaglibRecord()));
+		ITaglibIndexDelta[] deltas = delta.getAffectedChildren();
+		for (int i = 0; i < deltas.length; i++) {
+			ITaglibRecord taglibRecord = deltas[i].getTaglibRecord();
+			if (taglibRecord != null) {
+				Object uniqueIdentifier = TLDCMDocumentManager.getUniqueIdentifier(taglibRecord);
+				if (uniqueIdentifier != null) {
+					TLDCMDocumentManager.getSharedDocumentCache().remove(uniqueIdentifier);
+				}
+				else {
+					Logger.log(Logger.ERROR, "identifier for " + taglibRecord + " was null");
+				}
+			}
+		}
+		synchronized (TLDCMDocumentManager.getSharedDocumentCache()) {
+			Iterator values = TLDCMDocumentManager.getSharedDocumentCache().values().iterator();
+			while (values.hasNext()) {
+				Object o = values.next();
+				if (o instanceof Reference) {
+					values.remove();
+				}
+			}
+		}
 
-		if (_instance != null) {
+		if (_instance.isInitialized()) {
 			ITaglibIndexListener[] listeners = _instance.fTaglibIndexListeners;
 			if (listeners != null) {
-				for (int i = 0; i < listeners.length; i++) {
+				for (int j = 0; j < listeners.length; j++) {
 					try {
-						listeners[i].indexChanged(event);
+						listeners[j].indexChanged(delta);
 					}
 					catch (Exception e) {
 						Logger.log(Logger.WARNING, e.getMessage());
@@ -357,31 +408,29 @@
 		}
 	}
 
+
 	/**
 	 * Finds all of the visible ITaglibRecords for the given path in the
 	 * workspace. Taglib mappings from web.xml files are only visible to paths
 	 * within the web.xml's corresponding web content folder.
-	 * <p>
-	 * Values defined within the XML Catalog will not be returned.
-	 * </p>
 	 * 
 	 * @param fullPath -
 	 *            a path within the workspace
 	 * @return All of the visible ITaglibRecords from the given path.
 	 */
 	public static ITaglibRecord[] getAvailableTaglibRecords(IPath fullPath) {
-		try {
-			LOCK.acquire();
-			ITaglibRecord[] records = null;
-			if (_instance != null)
-				records = _instance.internalGetAvailableTaglibRecords(fullPath);
-			else
-				records = new ITaglibRecord[0];
-			return records;
+		if (!_instance.isInitialized()) {
+			return new ITaglibRecord[0];
 		}
-		finally {
-			LOCK.release();
+		ITaglibRecord[] records = null;
+		if (getInstance().isInitialized()) {
+			records = getInstance().internalGetAvailableTaglibRecords(fullPath);
 		}
+		else {
+			records = new ITaglibRecord[0];
+		}
+		getInstance().fireCurrentDelta("enumerate: " + fullPath); //$NON-NLS-1$
+		return records;
 	}
 
 	/**
@@ -393,21 +442,23 @@
 	 * @param path -
 	 *            a path under the web-app root
 	 * @return the IPath considered to be the web-app's root for the given
-	 *         path
+	 *         path or null if one could not be determined
 	 */
 	public static IPath getContextRoot(IPath path) {
 		try {
 			LOCK.acquire();
-			return _instance.internalGetContextRoot(path);
+			if (getInstance().isInitialized()) {
+				return getInstance().internalGetContextRoot(path);
+			}
 		}
 		finally {
 			LOCK.release();
 		}
+		return null;
 	}
 
-	private String getState() {
-		String state = JSPCorePlugin.getDefault().getPluginPreferences().getString(TaglibIndex.class.getName());
-		return state;
+	public static TaglibIndex getInstance() {
+		return _instance;
 	}
 
 	/**
@@ -417,14 +468,10 @@
 	 *            the listener to be removed
 	 */
 	public static void removeTaglibIndexListener(ITaglibIndexListener listener) {
-		try {
-			LOCK.acquire();
-			if (_instance != null)
-				_instance.internalRemoveTaglibIndexListener(listener);
-		}
-		finally {
-			LOCK.release();
-		}
+		if (!getInstance().isInitialized())
+			return;
+		if (getInstance().isInitialized())
+			getInstance().internalRemoveTaglibIndexListener(listener);
 	}
 
 	/**
@@ -447,14 +494,10 @@
 	 */
 	public static ITaglibRecord resolve(String basePath, String reference, boolean crossProjects) {
 		ITaglibRecord result = null;
-		try {
-			LOCK.acquire();
-			if (_instance != null)
-				result = _instance.internalResolve(basePath, reference, crossProjects);
+		if (getInstance().isInitialized()) {
+			result = getInstance().internalResolve(basePath, reference, crossProjects);
 		}
-		finally {
-			LOCK.release();
-		}
+		getInstance().fireCurrentDelta("resolve: " + reference); //$NON-NLS-1$
 		if (_debugResolution) {
 			if (result == null) {
 				Logger.log(Logger.INFO, "TaglibIndex could not resolve \"" + reference + "\" from " + basePath); //$NON-NLS-1$ //$NON-NLS-2$
@@ -472,6 +515,8 @@
 					}
 						break;
 					case (ITaglibRecord.TAGDIR) : {
+						ITagDirRecord record = (ITagDirRecord) result;
+						Logger.log(Logger.INFO, "TaglibIndex resolved " + basePath + ":" + reference + " = " + record.getPath()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 					}
 						break;
 					case (ITaglibRecord.URL) : {
@@ -486,6 +531,339 @@
 	}
 
 	/**
+	 * Instructs the index to stop listening for resource and classpath
+	 * changes, and to forget all information about the workspace.
+	 */
+	public static void shutdown() {
+		try {
+			LOCK.acquire();
+			if (_instance.isInitialized()) {
+				_instance.stop();
+			}
+		}
+		finally {
+			LOCK.release();
+		}
+	}
+
+	/**
+	 * Instructs the index to begin listening for resource and classpath
+	 * changes.
+	 */
+	public static void startup() {
+		boolean shuttingDown = !Platform.isRunning() || Platform.getBundle(OSGI_FRAMEWORK_ID).getState() == Bundle.STOPPING;
+		if (!shuttingDown) {
+			try {
+				LOCK.acquire();
+				ENABLED = !"false".equalsIgnoreCase(System.getProperty(TaglibIndex.class.getName())); //$NON-NLS-1$
+				getInstance().initializeInstance();
+			}
+			finally {
+				LOCK.release();
+			}
+		}
+	}
+
+	private ClasspathChangeListener fClasspathChangeListener = null;
+
+	private TaglibIndexDelta fCurrentTopLevelDelta = null;
+
+	Map fProjectDescriptions = null;
+
+	private ResourceChangeListener fResourceChangeListener;
+
+	private ITaglibIndexListener[] fTaglibIndexListeners = null;
+
+	/** symbolic name for OSGI framework */
+	private final static String OSGI_FRAMEWORK_ID = "org.eclipse.osgi"; //$NON-NLS-1$
+
+	private TaglibIndex() {
+		super();
+	}
+
+	private void initializeInstance() {
+
+		if (isInitialized())
+			return;
+		try {
+			LOCK.acquire();
+			/*
+			 * check again, just incase it was initialized on another thread,
+			 * while we were waiting for the lock
+			 */
+			if (!isInitialized()) {
+				/*
+				 * Only consider a crash if a value exists and is DIRTY (not a
+				 * new workspace)
+				 */
+				if (DIRTY.equalsIgnoreCase(getState())) {
+					Logger.log(Logger.ERROR, "A workspace crash was detected. The previous session did not exit normally. Not using saved taglib indexes."); //$NON-NLS-3$
+					removeIndexes(false);
+				}
+
+				fProjectDescriptions = new Hashtable();
+				fResourceChangeListener = new ResourceChangeListener();
+				fClasspathChangeListener = new ClasspathChangeListener();
+				if (ENABLED) {
+					ResourcesPlugin.getWorkspace().addResourceChangeListener(fResourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+					JavaCore.addElementChangedListener(fClasspathChangeListener);
+				}
+				setIntialized(true);
+			}
+		}
+		finally {
+			LOCK.release();
+		}
+	}
+
+	/**
+	 * Adds the given delta as a child to an overall delta
+	 * 
+	 * @param delta
+	 */
+	void addDelta(ITaglibIndexDelta delta) {
+		ensureDelta(delta.getProject()).addChildDelta(delta);
+	}
+
+	/**
+	 * Based on org.eclipse.jdt.internal.core.search.indexing.IndexManager
+	 * 
+	 * @param containerPath
+	 * @return
+	 */
+	String computeIndexLocation(IPath containerPath) {
+		String fileName = computeIndexName(containerPath);
+		if (_debugIndexCreation)
+			Logger.log(Logger.INFO, "-> index name for " + containerPath + " is " + fileName); //$NON-NLS-1$ //$NON-NLS-2$
+		String indexLocation = getTaglibIndexStateLocation().append(fileName).toOSString();
+		return indexLocation;
+	}
+
+	String computeIndexName(IPath containerPath) {
+		checksumCalculator.reset();
+		checksumCalculator.update(containerPath.toOSString().getBytes());
+		// use ".dat" so we're not confused with JDT indexes
+		String fileName = Long.toString(checksumCalculator.getValue()) + ".dat"; //$NON-NLS-1$
+		return fileName;
+	}
+
+	/**
+	 * @param project
+	 * @return
+	 */
+	ProjectDescription createDescription(IProject project) {
+		ProjectDescription description = null;
+		try {
+			LOCK.acquire();
+			description = (ProjectDescription) fProjectDescriptions.get(project);
+			if (description == null) {
+				// Once we've started indexing, we're dirty again
+				if (fProjectDescriptions.isEmpty()) {
+					setState(DIRTY);
+				}
+				description = new ProjectDescription(project, computeIndexLocation(project.getFullPath()));
+				fProjectDescriptions.put(project, description);
+			}
+		}
+		finally {
+			LOCK.release();
+		}
+		return description;
+	}
+
+	/**
+	 * Ensures that a delta exists for holding index change information
+	 */
+	private TaglibIndexDelta ensureDelta(IProject project) {
+		/*
+		 * The first delta to be added will determine which project the
+		 * top-level delta will contain.
+		 */
+		if (fCurrentTopLevelDelta == null) {
+			fCurrentTopLevelDelta = new TaglibIndexDelta(project, null, ITaglibIndexDelta.CHANGED);
+		}
+		return fCurrentTopLevelDelta;
+	}
+
+	void fireCurrentDelta(Object trigger) {
+		if (fCurrentTopLevelDelta != null) {
+			fCurrentTopLevelDelta.trigger = trigger;
+			ITaglibIndexDelta delta = fCurrentTopLevelDelta;
+			fCurrentTopLevelDelta = null;
+			fireTaglibDelta(delta);
+		}
+	}
+
+	/**
+	 * A check to see if the OSGI framework is shutting down.
+	 * 
+	 * @return true if the System Bundle is stopped (ie. the framework is
+	 *         shutting down)
+	 */
+	boolean frameworkIsShuttingDown() {
+		// in the Framework class there's a note:
+		// set the state of the System Bundle to STOPPING.
+		// this must be done first according to section 4.19.2 from the OSGi
+		// R3 spec.
+		boolean shuttingDown = !Platform.isRunning() || Platform.getBundle(OSGI_FRAMEWORK_ID).getState() == Bundle.STOPPING;
+		return shuttingDown;
+	}
+
+	ProjectDescription getDescription(IProject project) {
+		ProjectDescription description = null;
+		if (isInitialized()) {
+			description = (ProjectDescription) fProjectDescriptions.get(project);
+		}
+		return description;
+	}
+
+	private String getState() {
+		String state = JSPCorePlugin.getDefault().getPluginPreferences().getString(TaglibIndex.class.getName());
+		return state;
+	}
+
+	private IPath getTaglibIndexStateLocation() {
+		return JSPCorePlugin.getDefault().getStateLocation().append("taglibindex/");
+	}
+
+	private void internalAddTaglibIndexListener(ITaglibIndexListener listener) {
+		try {
+			LOCK.acquire();
+			if (fTaglibIndexListeners == null) {
+				fTaglibIndexListeners = new ITaglibIndexListener[]{listener};
+			}
+			else {
+				List listeners = new ArrayList(Arrays.asList(fTaglibIndexListeners));
+				if (!listeners.contains(listener)) {
+					listeners.add(listener);
+				}
+				fTaglibIndexListeners = (ITaglibIndexListener[]) listeners.toArray(new ITaglibIndexListener[0]);
+			}
+		}
+		finally {
+			LOCK.release();
+		}
+	}
+
+	private ITaglibRecord[] internalGetAvailableTaglibRecords(IPath path) {
+		ITaglibRecord[] records = new ITaglibRecord[0];
+		if (path.segmentCount() > 0) {
+			IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0));
+			if (project.isAccessible()) {
+				ProjectDescription description = createDescription(project);
+				List availableRecords = description.getAvailableTaglibRecords(path);
+
+				// ICatalog catalog =
+				// XMLCorePlugin.getDefault().getDefaultXMLCatalog();
+				// while (catalog != null) {
+				// ICatalogEntry[] entries = catalog.getCatalogEntries();
+				// for (int i = 0; i < entries.length; i++) {
+				// // System.out.println(entries[i].getURI());
+				// }
+				// INextCatalog[] nextCatalogs = catalog.getNextCatalogs();
+				// for (int i = 0; i < nextCatalogs.length; i++) {
+				// ICatalogEntry[] entries2 =
+				// nextCatalogs[i].getReferencedCatalog().getCatalogEntries();
+				// for (int j = 0; j < entries2.length; j++) {
+				// // System.out.println(entries2[j].getURI());
+				// }
+				// }
+				// }
+
+				records = (ITaglibRecord[]) availableRecords.toArray(records);
+			}
+		}
+		return records;
+	}
+
+	private IPath internalGetContextRoot(IPath path) {
+		IFile baseResource = FileBuffers.getWorkspaceFileAtLocation(path);
+		if (baseResource != null && baseResource.getProject().isAccessible()) {
+			IProject project = baseResource.getProject();
+			ProjectDescription description = getInstance().createDescription(project);
+			IPath rootPath = description.getLocalRoot(baseResource.getFullPath());
+			return rootPath;
+		}
+		// try to handle out-of-workspace paths
+		IPath root = path.makeAbsolute();
+		while (root.segmentCount() > 0 && !root.isRoot())
+			root = root.removeLastSegments(1);
+		return root;
+	}
+
+	private void internalRemoveTaglibIndexListener(ITaglibIndexListener listener) {
+		try {
+			LOCK.acquire();
+			if (fTaglibIndexListeners != null) {
+				List listeners = new ArrayList(Arrays.asList(fTaglibIndexListeners));
+				listeners.remove(listener);
+				fTaglibIndexListeners = (ITaglibIndexListener[]) listeners.toArray(new ITaglibIndexListener[0]);
+			}
+		}
+		finally {
+			LOCK.release();
+		}
+	}
+
+	private ITaglibRecord internalResolve(String basePath, final String reference, boolean crossProjects) {
+		IProject project = null;
+		ITaglibRecord resolved = null;
+
+		Path baseIPath = new Path(basePath);
+		IResource baseResource = FileBuffers.getWorkspaceFileAtLocation(baseIPath);
+
+		if (baseResource == null) {
+			IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
+			// Try the base path as a folder first
+			if (baseIPath.segmentCount() > 1) {
+				baseResource = workspaceRoot.getFolder(baseIPath);
+			}
+			// If not a folder, then try base path as a file
+			if (baseResource != null && !baseResource.exists() && baseIPath.segmentCount() > 1) {
+				baseResource = workspaceRoot.getFile(baseIPath);
+			}
+			if (baseResource == null && baseIPath.segmentCount() == 1) {
+				baseResource = workspaceRoot.getProject(baseIPath.segment(0));
+			}
+		}
+
+		if (baseResource == null) {
+			/*
+			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=116529
+			 * 
+			 * This method produces a less accurate result, but doesn't
+			 * require that the file exist yet.
+			 */
+			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(baseIPath);
+			if (files.length > 0)
+				baseResource = files[0];
+		}
+		if (baseResource != null) {
+			project = ResourcesPlugin.getWorkspace().getRoot().getProject(baseIPath.segment(0));
+			if (project.isAccessible()) {
+				ProjectDescription description = createDescription(project);
+				resolved = description.resolve(basePath, reference);
+			}
+		}
+
+		return resolved;
+	}
+
+	boolean isIndexAvailable() {
+		return _instance.isInitialized() && ENABLED;
+	}
+
+	/**
+	 * Removes index file for the given project.
+	 */
+	private void removeIndex(IProject project) {
+		File indexFile = new File(computeIndexLocation(project.getFullPath()));
+		if (indexFile.exists()) {
+			indexFile.delete();
+		}
+	}
+
+	/**
 	 * Removes index files. Used for maintenance and keeping the index folder
 	 * a manageable size.
 	 * 
@@ -525,247 +903,6 @@
 		}
 	}
 
-	/**
-	 * Instructs the index to stop listening for resource and classpath
-	 * changes, and to forget all information about the workspace.
-	 */
-	public static synchronized void shutdown() {
-		try {
-			LOCK.acquire();
-			if (_instance != null) {
-				_instance.stop();
-			}
-			_instance = null;
-		}
-		finally {
-			LOCK.release();
-		}
-	}
-
-	/**
-	 * Instructs the index to begin listening for resource and classpath
-	 * changes.
-	 */
-	public static synchronized void startup() {
-		try {
-			LOCK.acquire();
-			ENABLED = !"false".equalsIgnoreCase(System.getProperty(TaglibIndex.class.getName())); //$NON-NLS-1$
-			_instance = new TaglibIndex();
-		}
-		finally {
-			LOCK.release();
-		}
-	}
-
-	private ClasspathChangeListener fClasspathChangeListener = null;
-
-	Map fProjectDescriptions;
-
-	private ResourceChangeListener fResourceChangeListener;
-
-	private ITaglibIndexListener[] fTaglibIndexListeners = null;
-	/** symbolic name for OSGI framework */
-	private final String OSGI_FRAMEWORK_ID = "org.eclipse.osgi"; //$NON-NLS-1$
-
-	private TaglibIndex() {
-		super();
-
-		/*
-		 * Only consider a crash if a value exists and is DIRTY (not a new
-		 * workspace)
-		 */
-		if (DIRTY.equalsIgnoreCase(getState())) {
-			Logger.log(Logger.WARNING, "A workspace crash was detected. The previous session did not exit normally. Not using saved tag library indexes"); //$NON-NLS-3$
-			removeIndexes(false);
-		}
-
-		fProjectDescriptions = new Hashtable();
-		fResourceChangeListener = new ResourceChangeListener();
-		fClasspathChangeListener = new ClasspathChangeListener();
-		if (ENABLED) {
-			ResourcesPlugin.getWorkspace().addResourceChangeListener(fResourceChangeListener, IResourceChangeEvent.POST_CHANGE);
-			JavaCore.addElementChangedListener(fClasspathChangeListener);
-		}
-	}
-
-	/**
-	 * Based on org.eclipse.jdt.internal.core.search.indexing.IndexManager
-	 * 
-	 * @param containerPath
-	 * @return
-	 */
-	String computeIndexLocation(IPath containerPath) {
-		String fileName = computeIndexName(containerPath);
-		if (_debugIndexCreation)
-			Logger.log(Logger.INFO, "-> index name for " + containerPath + " is " + fileName); //$NON-NLS-1$ //$NON-NLS-2$
-		String indexLocation = getTaglibIndexStateLocation().append(fileName).toOSString();
-		return indexLocation;
-	}
-
-	String computeIndexName(IPath containerPath) {
-		checksumCalculator.reset();
-		checksumCalculator.update(containerPath.toOSString().getBytes());
-		// use ".dat" so we're not confused with JDT indexes
-		String fileName = Long.toString(checksumCalculator.getValue()) + ".dat"; //$NON-NLS-1$
-		return fileName;
-	}
-
-	/**
-	 * @param project
-	 * @return
-	 */
-	ProjectDescription createDescription(IProject project) {
-		ProjectDescription description = null;
-		description = (ProjectDescription) fProjectDescriptions.get(project);
-		if (description == null) {
-			// Once we've started indexing, we're dirty again
-			if (fProjectDescriptions.isEmpty()) {
-				setState(DIRTY);
-			}
-			description = new ProjectDescription(project, computeIndexLocation(project.getFullPath()));
-			fProjectDescriptions.put(project, description);
-		}
-		return description;
-	}
-
-	/**
-	 * A check to see if the OSGI framework is shutting down.
-	 * 
-	 * @return true if the System Bundle is stopped (ie. the framework is
-	 *         shutting down)
-	 */
-	boolean frameworkIsShuttingDown() {
-		// in the Framework class there's a note:
-		// set the state of the System Bundle to STOPPING.
-		// this must be done first according to section 4.19.2 from the OSGi
-		// R3 spec.
-		boolean shuttingDown = !Platform.isRunning() || Platform.getBundle(OSGI_FRAMEWORK_ID).getState() == Bundle.STOPPING;
-		return shuttingDown;
-	}
-
-	ProjectDescription getDescription(IProject project) {
-		ProjectDescription description = null;
-		description = (ProjectDescription) fProjectDescriptions.get(project);
-		return description;
-	}
-
-	private IPath getTaglibIndexStateLocation() {
-		return JSPCorePlugin.getDefault().getStateLocation().append("taglibindex/");
-	}
-
-	private void internalAddTaglibIndexListener(ITaglibIndexListener listener) {
-		if (fTaglibIndexListeners == null) {
-			fTaglibIndexListeners = new ITaglibIndexListener[]{listener};
-		}
-		else {
-			List listeners = new ArrayList(Arrays.asList(fTaglibIndexListeners));
-			listeners.add(listener);
-			fTaglibIndexListeners = (ITaglibIndexListener[]) listeners.toArray(new ITaglibIndexListener[0]);
-		}
-	}
-
-	private ITaglibRecord[] internalGetAvailableTaglibRecords(IPath path) {
-		ITaglibRecord[] records = new ITaglibRecord[0];
-		if (path.segmentCount() > 0) {
-			IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(path.segment(0));
-			if(project.isAccessible()) {
-				ProjectDescription description = createDescription(project);
-				List availableRecords = description.getAvailableTaglibRecords(path);
-	
-				// ICatalog catalog =
-				// XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-				// while (catalog != null) {
-				// ICatalogEntry[] entries = catalog.getCatalogEntries();
-				// for (int i = 0; i < entries.length; i++) {
-				// // System.out.println(entries[i].getURI());
-				// }
-				// INextCatalog[] nextCatalogs = catalog.getNextCatalogs();
-				// for (int i = 0; i < nextCatalogs.length; i++) {
-				// ICatalogEntry[] entries2 =
-				// nextCatalogs[i].getReferencedCatalog().getCatalogEntries();
-				// for (int j = 0; j < entries2.length; j++) {
-				// // System.out.println(entries2[j].getURI());
-				// }
-				// }
-				// }
-	
-				records = (ITaglibRecord[]) availableRecords.toArray(records);
-			}
-		}
-		return records;
-	}
-
-	private IPath internalGetContextRoot(IPath path) {
-		IFile baseResource = FileBuffers.getWorkspaceFileAtLocation(path);
-		if (baseResource != null) {
-			IProject project = baseResource.getProject();
-			ProjectDescription description = _instance.createDescription(project);
-			IPath rootPath = description.getLocalRoot(baseResource.getFullPath());
-			return rootPath;
-		}
-		// try to handle out-of-workspace paths
-		IPath root = path;
-		while (root != null && !root.isRoot())
-			root = root.removeLastSegments(1);
-		if (root == null)
-			root = path;
-		return root;
-	}
-
-	private void internalRemoveTaglibIndexListener(ITaglibIndexListener listener) {
-		if (fTaglibIndexListeners != null) {
-			List listeners = new ArrayList(Arrays.asList(fTaglibIndexListeners));
-			listeners.remove(listener);
-			fTaglibIndexListeners = (ITaglibIndexListener[]) listeners.toArray(new ITaglibIndexListener[0]);
-		}
-	}
-
-	private ITaglibRecord internalResolve(String basePath, final String reference, boolean crossProjects) {
-		IProject project = null;
-		ITaglibRecord resolved = null;
-
-		Path baseIPath = new Path(basePath);
-		IResource baseResource = FileBuffers.getWorkspaceFileAtLocation(baseIPath);
-
-		if (baseResource == null) {
-			IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
-			// Try the base path as a folder first
-			if (baseResource == null && baseIPath.segmentCount() > 1) {
-				baseResource = workspaceRoot.getFolder(baseIPath);
-			}
-			// If not a folder, then try base path as a file
-			if (baseResource != null && !baseResource.exists() && baseIPath.segmentCount() > 1) {
-				baseResource = workspaceRoot.getFile(baseIPath);
-			}
-			if (baseResource == null && baseIPath.segmentCount() == 1) {
-				baseResource = workspaceRoot.getProject(baseIPath.segment(0));
-			}
-		}
-
-		if (baseResource == null) {
-			/*
-			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=116529
-			 * 
-			 * This method produces a less accurate result, but doesn't
-			 * require that the file exist yet.
-			 */
-			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(baseIPath);
-			if (files.length > 0)
-				baseResource = files[0];
-		}
-		if (baseResource != null && baseResource.isAccessible()) {
-			project = baseResource.getProject();
-			ProjectDescription description = createDescription(project);
-			resolved = description.resolve(basePath, reference);
-		}
-
-		return resolved;
-	}
-
-	boolean isIndexAvailable() {
-		return _instance != null && ENABLED;
-	}
-
 	private void setState(String state) {
 		if (!state.equals(getState())) {
 			JSPCorePlugin.getDefault().getPluginPreferences().setValue(TaglibIndex.class.getName(), state);
@@ -774,35 +911,37 @@
 	}
 
 	private void stop() {
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(fResourceChangeListener);
-		JavaCore.removeElementChangedListener(fClasspathChangeListener);
+		if (isInitialized()) {
+			ResourcesPlugin.getWorkspace().removeResourceChangeListener(fResourceChangeListener);
+			JavaCore.removeElementChangedListener(fClasspathChangeListener);
 
-		/*
-		 * Clearing the existing saved states helps prune dead data from the
-		 * index folder.
-		 */
-		removeIndexes(true);
+			/*
+			 * Clearing the existing saved states helps prune dead data from
+			 * the index folder.
+			 */
+			removeIndexes(true);
 
-		Iterator i = fProjectDescriptions.values().iterator();
-		while (i.hasNext()) {
-			ProjectDescription description = (ProjectDescription) i.next();
-			description.saveReferences();
+			Iterator i = fProjectDescriptions.values().iterator();
+			while (i.hasNext()) {
+				ProjectDescription description = (ProjectDescription) i.next();
+				description.saveReferences();
+			}
+
+			fProjectDescriptions.clear();
+
+			setState(CLEAN);
+			fProjectDescriptions = null;
+			fResourceChangeListener = null;
+			fClasspathChangeListener = null;
+			setIntialized(false);
 		}
-
-		fProjectDescriptions.clear();
-
-		setState(CLEAN);
 	}
 
-	void removeDescription(IProject project) {
-		ProjectDescription description = (ProjectDescription) fProjectDescriptions.remove(project);
-		if (description != null) {
-			if (_debugIndexCreation) {
-				Logger.log(Logger.INFO, "removing index of " + description.fProject.getName()); //$NON-NLS-1$
-			}
-			description.setBuildPathIsDirty();
-			description.clear();
-			description.saveReferences();
-		}
+	private boolean isInitialized() {
+		return initialized;
+	}
+
+	private void setIntialized(boolean intialized) {
+		this.initialized = intialized;
 	}
 }
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndexDelta.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndexDelta.java
new file mode 100644
index 0000000..fc14d8b
--- /dev/null
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/taglib/TaglibIndexDelta.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2007 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.taglib;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.core.resources.IProject;
+
+public class TaglibIndexDelta implements ITaglibIndexDelta {
+	private Collection fChildren;
+	private int fExplicitKind = -1;
+	private int fImplicitKind = -1;
+	private IProject fProject;
+	private ITaglibRecord fTaglibRecord = null;
+	long time;
+	Object trigger = null;
+
+	TaglibIndexDelta(IProject project, ITaglibRecord record, int kind) {
+		fProject = project;
+		fTaglibRecord = record;
+		fExplicitKind = kind;
+		time = System.currentTimeMillis();
+	}
+
+	void addChildDelta(ITaglibIndexDelta delta) {
+		if (fChildren == null)
+			fChildren = new ArrayList();
+		fChildren.add(delta);
+		fImplicitKind = -1;
+	}
+
+	private int computeKind() {
+		int added = 0;
+		int removed = 0;
+
+		ITaglibIndexDelta[] children = (ITaglibIndexDelta[]) fChildren.toArray(new ITaglibIndexDelta[fChildren.size()]);
+		for (int i = 0; i < children.length; i++) {
+			int kind = children[i].getKind();
+			if (kind == ITaglibIndexDelta.ADDED)
+				added++;
+			if (kind == ITaglibIndexDelta.REMOVED)
+				removed++;
+			if (added > 0 && removed > 0)
+				break;
+		}
+		if (added > 0 && removed > 0) {
+			return ITaglibIndexDelta.CHANGED;
+		}
+		else if (added > 0) {
+			return ITaglibIndexDelta.ADDED;
+		}
+		else if (removed > 0) {
+			return ITaglibIndexDelta.REMOVED;
+		}
+		else {
+			return ITaglibIndexDelta.CHANGED;
+		}
+	}
+
+	public ITaglibIndexDelta[] getAffectedChildren() {
+		if (fChildren == null) {
+			return new ITaglibIndexDelta[0];
+		}
+		return (ITaglibIndexDelta[]) fChildren.toArray(new ITaglibIndexDelta[fChildren.size()]);
+	}
+
+	public int getKind() {
+		if (fChildren == null) {
+			return fExplicitKind;
+		}
+		if (fImplicitKind == -1) {
+			fImplicitKind = computeKind();
+		}
+		return fImplicitKind;
+	}
+
+	public IProject getProject() {
+		return fProject;
+	}
+
+	public ITaglibRecord getTaglibRecord() {
+		return fTaglibRecord;
+	}
+
+	public long getTime() {
+		return time;
+	}
+
+	public Object getTrigger() {
+		return trigger;
+	}
+
+	public String toString() {
+		if (fTaglibRecord != null) {
+			String string = fTaglibRecord.toString();
+			int kind = getKind();
+			switch (kind) {
+				case ITaglibIndexDelta.ADDED :
+					string = " ADDED (" + string + ")"; //$NON-NLS-1$ //$NON-NLS-2$
+					break;
+				case ITaglibIndexDelta.CHANGED :
+					string = " CHANGED (" + string + ")"; //$NON-NLS-1$ //$NON-NLS-2$
+					break;
+				case ITaglibIndexDelta.REMOVED :
+					string = " REMOVED (" + string + ")"; //$NON-NLS-1$ //$NON-NLS-2$
+					break;
+				default :
+					string = " other:" + kind + " (" + string + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+					break;
+			}
+			return string;
+		}
+		else {
+			StringBuffer buffer = new StringBuffer();
+			int kind = getKind();
+			switch (kind) {
+				case ITaglibIndexDelta.ADDED :
+					buffer.append("TaglibIndexDelta(" + fProject + "):ADDED\n"); //$NON-NLS-1$
+					break;
+				case ITaglibIndexDelta.CHANGED :
+					buffer.append("TaglibIndexDelta(" + fProject + "):CHANGED\n"); //$NON-NLS-1$
+					break;
+				case ITaglibIndexDelta.REMOVED :
+					buffer.append("TaglibIndexDelta(" + fProject + "):REMOVED\n"); //$NON-NLS-1$
+					break;
+			}
+			ITaglibIndexDelta[] children = getAffectedChildren();
+			for (int i = 0; i < children.length; i++) {
+				buffer.append('\t');
+				buffer.append(children[i].toString());
+				if (i < children.length - 1) {
+					buffer.append('\n');
+				}
+			}
+			return buffer.toString();
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/text/IJSPPartitions.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/text/IJSPPartitions.java
index 8a37aac..dae4c3d 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/text/IJSPPartitions.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/text/IJSPPartitions.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
 package org.eclipse.jst.jsp.core.text;
 
 
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/css/core/internal/parser/JSPedCSSSourceParser.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/css/core/internal/parser/JSPedCSSSourceParser.java
index 6279c67..762a8a4 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/css/core/internal/parser/JSPedCSSSourceParser.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/css/core/internal/parser/JSPedCSSSourceParser.java
@@ -1,14 +1,14 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/package org.eclipse.jst.jsp.css.core.internal.parser;
+ *******************************************************************************/
+package org.eclipse.jst.jsp.css.core.internal.parser;
 
 import org.eclipse.jst.jsp.css.core.internal.parserz.JSPedCSSRegionContexts;
 import org.eclipse.wst.css.core.internal.parser.CSSRegionUtil;
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/css/core/internal/parser/JSPedCSSTokenizer.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/css/core/internal/parser/JSPedCSSTokenizer.java
index cdb75fd..ddb22e7 100644
--- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/css/core/internal/parser/JSPedCSSTokenizer.java
+++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/css/core/internal/parser/JSPedCSSTokenizer.java
@@ -1,7 +1,7 @@
-/* The following code was generated by JFlex 1.4.1 on 06/04/30 15:49 */
+/* The following code was generated by JFlex 1.4.1 on 7/22/08 10:30 AM */
 
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -28,7 +28,8 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4.1
- * on 06/04/30 15:49 from the specification file
+ * on 7/22/08 10:30 AM from the specification file
+ * <tt>D:/workspaces/wtp301/workspace/org.eclipse.jst.jsp.core/DevTimeSupport/CSSJSPParser/JSPedCSSTokenizer.flex</tt>
  */
 public class JSPedCSSTokenizer implements JSPedCSSRegionContexts, ICSSTokenizer {
 
@@ -1290,7 +1291,9 @@
 						break;
 					}
 				}
-				if (context == CSS_JSP_SCRIPTLET){
+				// [236008] - Should not try and consider the token a
+				// comment unless  a comment was started
+				if (context == CSS_JSP_SCRIPTLET && nextTokenType == CSS_JSP_COMMENT){
 					while (nextTokenType != CSS_JSP_COMMENT_END) {
 //						text.append(yytext());
 						textLength += yylength();
diff --git a/bundles/org.eclipse.jst.jsp.ui/.classpath b/bundles/org.eclipse.jst.jsp.ui/.classpath
deleted file mode 100644
index cb01053..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.jst.jsp.ui/.cvsignore b/bundles/org.eclipse.jst.jsp.ui/.cvsignore
deleted file mode 100644
index d00c268..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-jspeditor.jar
-temp.folder
-org.eclipse.jst.jsp.ui_6.0.0.jar
-build.xml
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.jst.jsp.ui/.options b/bundles/org.eclipse.jst.jsp.ui/.options
deleted file mode 100644
index 7174d60..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.options
+++ /dev/null
@@ -1,2 +0,0 @@
-org.eclipse.jst.jsp.ui/debug/jspcontentassist=false
-org.eclipse.jst.jsp.ui/projectionperf=false
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/.project b/bundles/org.eclipse.jst.jsp.ui/.project
deleted file mode 100644
index 2d42e46..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jst.jsp.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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 4e75d34..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:49 EDT 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 782e417..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,80 +0,0 @@
-#Sun Apr 16 17:23:39 EDT 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=ignore

-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.annotationSuperInterface=warning

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

-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore

-org.eclipse.jdt.core.compiler.problem.deprecation=ignore

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

-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore

-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

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

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

-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore

-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error

-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error

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

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

-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore

-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error

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

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled

-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=error

-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore

-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.missingOverrideAnnotation=ignore

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

-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error

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

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

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

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled

-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error

-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning

-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore

-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

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

-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning

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

-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error

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

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

-org.eclipse.jdt.core.compiler.problem.unusedImport=error

-org.eclipse.jdt.core.compiler.problem.unusedLabel=error

-org.eclipse.jdt.core.compiler.problem.unusedLocal=error

-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=error

-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

-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.jst.jsp.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index ef2ac65..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:39 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index c59368c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index f724958..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Sun Apr 16 14:05:29 EDT 2006
-compilers.p.build=0
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 56a7162..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,65 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.jst.jsp.ui; singleton:=true
-Bundle-Version: 1.1.102.v200805300730
-Bundle-Activator: org.eclipse.jst.jsp.ui.internal.JSPUIPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.jst.jsp.ui,
- org.eclipse.jst.jsp.ui.internal;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.autoedit;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.breakpointproviders;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.contentassist;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.contentproperties.ui;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.derived;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.editor;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.format;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.hyperlink;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.java.refactoring;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.java.search;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.java.search.ui;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.preferences;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.preferences.ui;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.projection;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.registry;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.style;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.style.java;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.style.jspel;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.taginfo;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.templates;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.text;x-internal:=true,
- org.eclipse.jst.jsp.ui.internal.wizard;x-internal:=true,
- org.eclipse.jst.jsp.ui.views.contentoutline
-Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jface.text;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.editors;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.sse.ui;bundle-version="[1.0.101,1.1.0)",
- org.eclipse.wst.html.ui;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.wst.css.ui;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.wst.xml.ui;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.jst.jsp.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.html.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.css.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.jdt.ui;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jdt.core;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.debug.core;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jdt.debug;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.search;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ltk.core.refactoring;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ltk.ui.refactoring;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.ui.ide;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.javascript.ui;bundle-version="[1.0.0,1.1.0)",
- org.eclipse.ui.views;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
- com.ibm.icu;bundle-version="[3.4.4,3.5.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)"
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.jst.jsp.ui/about.html b/bundles/org.eclipse.jst.jsp.ui/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" 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 ("Redistributor") 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 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.jst.jsp.ui/build.properties b/bundles/org.eclipse.jst.jsp.ui/build.properties
deleted file mode 100644
index 6b33ae3..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/build.properties
+++ /dev/null
@@ -1,21 +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
-###############################################################################
-source.. = src/
-bin.includes = .,\
-               templates/,\
-               plugin.xml,\
-               META-INF/,\
-               icons/,\
-               plugin.properties,\
-               about.html
-bin.excludes = @dot/**,\
-               temp.folder/**
-src.includes = build.properties
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/dtool16/newjsp_wiz.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/dtool16/newjsp_wiz.gif
deleted file mode 100644
index 5ff9b39..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/dtool16/newjsp_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/etool16/newjsp_wiz.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/etool16/newjsp_wiz.gif
deleted file mode 100644
index 14944ac..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/etool16/newjsp_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/class_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/class_obj.gif
deleted file mode 100644
index c00118d..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/class_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/default_co.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/default_co.gif
deleted file mode 100644
index 49a1461..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/default_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_default_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_default_obj.gif
deleted file mode 100644
index 6929d3d..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_default_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_private_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_private_obj.gif
deleted file mode 100644
index 1fe064e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_private_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_protected_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_protected_obj.gif
deleted file mode 100644
index 3377b1e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_protected_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_public_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_public_obj.gif
deleted file mode 100644
index d4cb425..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/field_public_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_default_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_default_obj.gif
deleted file mode 100644
index 4244a7f..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_default_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_private_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_private_obj.gif
deleted file mode 100644
index 7392f19..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_private_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_protected_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_protected_obj.gif
deleted file mode 100644
index 5105577..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_protected_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_public_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_public_obj.gif
deleted file mode 100644
index e4c2a83..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerclass_public_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_default_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_default_obj.gif
deleted file mode 100644
index ab1b576..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_default_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_private_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_private_obj.gif
deleted file mode 100644
index a1cbff3..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_private_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_protected_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_protected_obj.gif
deleted file mode 100644
index f58eef0..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_protected_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_public_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_public_obj.gif
deleted file mode 100644
index 2ebc46e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/innerinterface_public_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/localvariable_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/localvariable_obj.gif
deleted file mode 100644
index 8adce95..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/localvariable_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/package_obj.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/package_obj.gif
deleted file mode 100644
index 131c28d..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/package_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/private_co.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/private_co.gif
deleted file mode 100644
index 5b881d8..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/private_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/protected_co.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/protected_co.gif
deleted file mode 100644
index cd83b96..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/protected_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/public.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/public.gif
deleted file mode 100644
index 7d24707..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/public.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/public_co.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/public_co.gif
deleted file mode 100644
index a9af5d5..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/public_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/sourceEditor.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/sourceEditor.gif
deleted file mode 100644
index 75ebdb8..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/sourceEditor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-generic.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-generic.gif
deleted file mode 100644
index 65f516e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-generic.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-jsp.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-jsp.gif
deleted file mode 100644
index 4084602..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-jsp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-template.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-template.gif
deleted file mode 100644
index 5d1f81b..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/obj16/tag-template.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/full/wizban/newjspfile_wiz.gif b/bundles/org.eclipse.jst.jsp.ui/icons/full/wizban/newjspfile_wiz.gif
deleted file mode 100644
index 972597b..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/full/wizban/newjspfile_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspdecl.gif b/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspdecl.gif
deleted file mode 100644
index 35f48ef..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspdecl.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspexp.gif b/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspexp.gif
deleted file mode 100644
index ab4d74b..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspexp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspincl.gif b/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspincl.gif
deleted file mode 100644
index 2584c31..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspincl.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspscr.gif b/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspscr.gif
deleted file mode 100644
index 1753b96..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jspscr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jsptaglib.gif b/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jsptaglib.gif
deleted file mode 100644
index cb55e33..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/jsptaglib.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/tag-generic.gif b/bundles/org.eclipse.jst.jsp.ui/icons/snippets/tag-generic.gif
deleted file mode 100644
index 5e7fb33..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/tag-generic.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/tag-jsp.gif b/bundles/org.eclipse.jst.jsp.ui/icons/snippets/tag-jsp.gif
deleted file mode 100644
index ea4de33..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/icons/snippets/tag-jsp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.jst.jsp.ui/plugin.properties b/bundles/org.eclipse.jst.jsp.ui/plugin.properties
deleted file mode 100644
index 310de73..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/plugin.properties
+++ /dev/null
@@ -1,84 +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
-###############################################################################
-providerName=Eclipse.org
-pluginName=SSE JSP Source Editor
-JSP_Source_Page_Editor.name=JSP Editor
-CSS_JSP_Source_Page_Editor.name=CSS JSP Editor
-JSP_Files.name=JSP Files
-JSP_Source.name=JSP Source
-JSP_Templates.name=JSP Templates
-JSP_Styles.name=JSP Styles
-
-# Snippets contributions for helping with JSP syntax
-jsp_scriptlet=<%..%> scriptlet
-jsp_scr_content=<%  %>
-jsp_hidden_comment=<%--..--%> comment
-jsp_hidden_comment_content=<%--  --%>
-jsp_declaration=<%!..%> declaration
-jsp_declaration_content=<%!  %>
-jsp_expression=<%=..%> expression
-jsp_expression_content=<%=  %>
-jsp_include_directive=include directive
-jsp_include_directive_content=<%@ include file="" %>
-jsp_page_directive=page directive
-jsp_page_directive_content=<%@ page contentType="text/html; charset=" %>
-jsp_taglib_directive=taglib directive
-jsp_taglib_directive_content=<%@ taglib uri="${uri}" prefix="${prefix}" %>
-jsp_taglib_directive_uri=URI to the containing JAR file or taglib descriptor (.tld)
-jsp_taglib_directive_prefix=Namespace prefix for tags from this library
-JSPFragmentContentSettings.name=JSP Fragment
-command.jsp.refactor.rename.name=Rename
-command.jsp.refactor.rename.description=Rename a Java Element
-command.jsp.refactor.move.name=Move
-command.jsp.refactor.move.description=Move a Java Element to another package
-scope.structured.text.editor.jsp.name=Editing JSP Source
-scope.structured.text.editor.jsp.description=Editing JSP Source
-JSP_Type_Rename_Participant_Extension_Element.name=JSP Type Rename Participant
-JSP_Method_Rename_Participant_Extension_Element.name=JSP Method Rename Participant
-JSP_Package_Rename_Participant_Extension_Element.name=JSP Package Rename Participant
-JSP_Type_Move_Participant_Extension_Element.name=JSP Type Move Participant
-All_JSP_context_type_Extension_Element.name=All JSP
-JSP_New_context_type_Extension_Element.name=New JSP
-JSP_Tag_context_type_Extension_Element.name=JSP Tag
-JSP_Attribute_context_type_Extension_Element.name=JSP Attribute
-JSP_Attribute_value_context_type_Extension_Element.name=JSP Attribute value
-JSP_Query_Participant_Extension_Element.name=JSP Query Participant
-JSP_Extension_Element.label=JSP
-#org.eclipse.ui.newWizards extension point
-_UI_WIZARD_NAME = JSP
-_UI_WIZARD_CREATE_NEW_FILE = Create a new JavaServer Page
-##
-AddTask.label=Add &Task...
-AddTask.tooltip=Add Task...
-AddBookmark.label=Add Boo&kmark...
-AddBookmark.tooltip=Add Bookmark...
-SelectRuler.label=Select Ruler
-## EL Error Message
-##
-CleanupDocument_label=Cleanup Document...
-CleanupDocument_tooltip=Cleanup Document
-ToggleComment_label=Toggle Comment
-ToggleComment_tooltip=Toggle Comment
-AddBlockComment_label=Add Block Comment
-AddBlockComment_tooltip=Add Block Comment
-RemoveBlockComment_label=Remove Block Comment
-RemoveBlockComment_tooltip=Remove Block Comment
-FindOccurrences_label=Occurrences in File
-RenameElement_label=Rename
-MoveElement_label=Move
-StructureSelectEnclosing_label=Enclosing Element
-StructureSelectEnclosing_tooltip=Expand selection to include enclosing element
-StructureSelectNext_label=Next Element
-StructureSelectNext_tooltip=Expand selection to include next sibling
-StructureSelectPrevious_label=Previous Element
-StructureSelectPrevious_tooltip=Expand selection to include previous sibling
-StructureSelectHistory_label=Restore Last Selection
-StructureSelectHistory_tooltip=Restore last selection
diff --git a/bundles/org.eclipse.jst.jsp.ui/plugin.xml b/bundles/org.eclipse.jst.jsp.ui/plugin.xml
deleted file mode 100644
index 9a6a6dd..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/plugin.xml
+++ /dev/null
@@ -1,680 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-	<extension point="org.eclipse.ui.editors">
-		<editor
-			name="%JSP_Source_Page_Editor.name"
-			icon="$nl$/icons//full/obj16/sourceEditor.gif"
-			extensions="jsp, jsf, jspf, jspx, tag, tagf"
-			contributorClass="org.eclipse.jst.jsp.ui.internal.editor.ActionContributorJSP"
-			class="org.eclipse.wst.sse.ui.StructuredTextEditor"
-			symbolicFontName="org.eclipse.wst.sse.ui.textfont"
-			id="org.eclipse.jst.jsp.core.jspsource.source">
-			<contentTypeBinding
-				contentTypeId="org.eclipse.jst.jsp.core.jspsource" />
-		</editor>
-		<editor
-			name="%CSS_JSP_Source_Page_Editor.name"
-			icon="$nl$/icons//full/obj16/sourceEditor.gif"
-			contributorClass="org.eclipse.jst.jsp.ui.internal.editor.ActionContributorJSP"
-			class="org.eclipse.wst.sse.ui.StructuredTextEditor"
-			symbolicFontName="org.eclipse.wst.sse.ui.textfont"
-			id="org.eclipse.jst.jsp.core.cssjspsource.source">
-			<contentTypeBinding
-				contentTypeId="org.eclipse.jst.jsp.core.cssjspsource" />
-			<contentTypeBinding
-				contentTypeId="org.eclipse.jst.jsp.core.cssjspfragmentsource" />
-		</editor>
-	</extension>
-
-	<extension point="org.eclipse.wst.sse.ui.editorConfiguration">
-		<sourceViewerConfiguration
-			class="org.eclipse.jst.jsp.ui.StructuredTextViewerConfigurationJSP"
-			target="org.eclipse.jst.jsp.core.jspsource" />
-		<contentOutlineConfiguration
-			class="org.eclipse.jst.jsp.ui.views.contentoutline.JSPContentOutlineConfiguration"
-			target="org.eclipse.jst.jsp.core.jspsource" />
-		<propertySheetConfiguration
-			class="org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration"
-			target="org.eclipse.jst.jsp.core.jspsource" />
-		<provisionalConfiguration
-			type="sourceeditingtexttools"
-			class="org.eclipse.jst.jsp.ui.internal.editor.JSPSourceEditingTextTools"
-			target="org.eclipse.jst.jsp.core.jspsource" />
-		<provisionalConfiguration
-			type="characterpairmatcher"
-			class="org.eclipse.jst.jsp.ui.internal.text.JSPDocumentRegionEdgeMatcher"
-			target="org.eclipse.jst.jsp.core.jspsource" />
-		<provisionalConfiguration
-			type="structuredtextfoldingprovider"
-			class="org.eclipse.jst.jsp.ui.internal.projection.StructuredTextFoldingProviderJSP"
-			target="org.eclipse.jst.jsp.core.jspsource" />
-		<provisionalDefinition
-			type="preferencepages"
-			value="org.eclipse.wst.sse.ui.preferences.jsp, org.eclipse.wst.sse.ui.preferences.jsp.source, org.eclipse.wst.sse.ui.preferences.jsp.templates, org.eclipse.wst.sse.ui.preferences.jsp.styles"
-			target="org.eclipse.jst.jsp.core.jspsource" />
-		<provisionalDefinition
-			type="showintarget"
-			value="org.eclipse.jdt.ui.PackageExplorer"
-			target="org.eclipse.jst.jsp.core.jspsource" />
-	</extension>
-
-	<extension point="org.eclipse.wst.sse.ui.sourcevalidation">
-		<validator
-			scope="partial"
-			class="org.eclipse.wst.xml.ui.internal.validation.MarkupValidator"
-			id="org.eclipse.jst.jsp.ui.internal.validation.markupvalidator">
-			<contentTypeIdentifier
-				id="org.eclipse.jst.jsp.core.jspsource">
-				<partitionType id="org.eclipse.jst.jsp.JSP_DIRECTIVE"/>
-				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT"/>
-				<partitionType id="org.eclipse.wst.sse.ST_DEFAULT"/>
-			</contentTypeIdentifier>
-		</validator>
-		<validator
-			scope="partial"
-			class="org.eclipse.wst.html.internal.validation.HTMLValidator"
-			id="org.eclipse.jst.jsp.ui.internal.validation.htmlsyntaxvalidator">
-			<contentTypeIdentifier
-				id="org.eclipse.jst.jsp.core.jspsource">
-				<partitionType id="org.eclipse.wst.html.HTML_DEFAULT"/>
-				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT"/>
-				<partitionType id="org.eclipse.wst.sse.ST_DEFAULT"/>
-			</contentTypeIdentifier>
-		</validator>
-		<validator
-			scope="partial"
-			class="org.eclipse.jst.jsp.ui.internal.validation.JSPActionSourceValidator"
-			id="org.eclipse.jst.jsp.ui.internal.validation.jspactionvalidator">
-			<contentTypeIdentifier
-				id="org.eclipse.jst.jsp.core.jspsource">
-				<partitionType id="org.eclipse.jst.jsp.DEFAULT_JSP">
-				</partitionType>
-				<partitionType id="org.eclipse.jst.jsp.JSP_DIRECTIVE">
-				</partitionType>
-			</contentTypeIdentifier>
-		</validator>
-	</extension>
-	<extension
-		point="org.eclipse.wst.sse.ui.adapterFactoryDescription">
-		<adapterFactoryDescription
-			class="org.eclipse.jst.jsp.ui.internal.registry.AdapterFactoryProviderForJSP">
-			<contentType id="org.eclipse.jst.jsp.core.jspsource" />
-		</adapterFactoryDescription>
-	</extension>
-
-	<extension
-		point="org.eclipse.core.filebuffers.annotationModelCreation">
-		<factory
-			contentTypeId="org.eclipse.jst.jsp.core.jspsource"
-			class="org.eclipse.wst.sse.ui.internal.StructuredResourceMarkerAnnotationModelFactory" />
-	</extension>
-
-	<extension point="org.eclipse.ui.preferencePages">
-
-		<!--======================================================================================-->
-		<!-- JSP PREFERENCE PAGES                                                                 -->
-		<!--======================================================================================-->
-		<page
-			name="%JSP_Files.name"
-			category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
-			class="org.eclipse.jst.jsp.ui.internal.preferences.ui.JSPFilesPreferencePage"
-			id="org.eclipse.wst.sse.ui.preferences.jsp" />
-
-		<page
-			name="%JSP_Source.name"
-			category="org.eclipse.wst.sse.ui.preferences.jsp"
-			class="org.eclipse.jst.jsp.ui.internal.preferences.ui.JSPSourcePreferencePage"
-			id="org.eclipse.wst.sse.ui.preferences.jsp.source" />
-
-		<page
-			name="%JSP_Templates.name"
-			category="org.eclipse.wst.sse.ui.preferences.jsp"
-			class="org.eclipse.jst.jsp.ui.internal.preferences.ui.JSPTemplatePreferencePage"
-			id="org.eclipse.wst.sse.ui.preferences.jsp.templates" />
-
-		<page
-			name="%JSP_Styles.name"
-			category="org.eclipse.wst.sse.ui.preferences.jsp"
-			class="org.eclipse.jst.jsp.ui.internal.preferences.ui.JSPColorPage"
-			id="org.eclipse.wst.sse.ui.preferences.jsp.styles" />
-
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- FOR JSP/JAVA RENAME PARTICIPATION                                                    -->
-	<!--======================================================================================-->
-	<extension
-		point="org.eclipse.ltk.core.refactoring.renameParticipants">
-		<renameParticipant
-			name="%JSP_Type_Rename_Participant_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.java.refactoring.JSPTypeRenameParticipant"
-			id="org.eclipse.jst.jsp.ui.java.refactoring.JSPTypeRenameParticipant">
-			<enablement>
-				<with variable="affectedNatures">
-					<iterate operator="or">
-						<equals value="org.eclipse.jdt.core.javanature" />
-
-					</iterate>
-				</with>
-				<with variable="element">
-					<instanceof value="org.eclipse.jdt.core.IType" />
-
-				</with>
-			</enablement>
-		</renameParticipant>
-
-		<renameParticipant
-			name="%JSP_Method_Rename_Participant_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.java.refactoring.JSPMethodRenameParticipant"
-			id="org.eclipse.jst.jsp.ui.java.refactoring.JSPMethodRenameParticipant">
-			<enablement>
-				<with variable="affectedNatures">
-					<iterate operator="or">
-						<equals value="org.eclipse.jdt.core.javanature" />
-
-					</iterate>
-				</with>
-				<with variable="element">
-					<instanceof value="org.eclipse.jdt.core.IMethod" />
-
-				</with>
-			</enablement>
-		</renameParticipant>
-
-		<renameParticipant
-			name="%JSP_Package_Rename_Participant_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.java.refactoring.JSPPackageRenameParticipant"
-			id="org.eclipse.jst.jsp.ui.java.refactoring.JSPPackageRenameParticipant">
-			<enablement>
-				<with variable="affectedNatures">
-					<iterate operator="or">
-						<equals value="org.eclipse.jdt.core.javanature" />
-
-					</iterate>
-				</with>
-				<with variable="element">
-					<instanceof
-						value="org.eclipse.jdt.core.IPackageFragment" />
-
-				</with>
-			</enablement>
-		</renameParticipant>
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- FOR JSP/JAVA MOVE PARTICIPATION                                                      -->
-	<!--======================================================================================-->
-	<extension
-		point="org.eclipse.ltk.core.refactoring.moveParticipants">
-
-		<moveParticipant
-			id="org.eclipse.jst.jsp.ui.java.refactoring.JSPTypeMoveParticipant"
-			name="%JSP_Type_Move_Participant_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.java.refactoring.JSPTypeMoveParticipant">
-			<enablement>
-				<with variable="affectedNatures">
-					<iterate operator="or">
-						<equals value="org.eclipse.jdt.core.javanature" />
-					</iterate>
-				</with>
-				<with variable="element">
-					<instanceof value="org.eclipse.jdt.core.IType" />
-
-				</with>
-			</enablement>
-		</moveParticipant>
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- for breakpoint                                                                       -->
-	<!--======================================================================================-->
-	<extension point="org.eclipse.wst.sse.ui.breakpoint">
-		<breakpointContribution id="org.eclipse.jst.jsp.ui.providers">
-			<!-- 
-				<provider
-				extensions="jsp, jspf, jsf"
-				class="org.eclipse.jst.jsp.ui.internal.breakpointproviders.JavaStratumBreakpointProvider"
-				id="org.eclipse.jst.jsp.ui.internal.breakpointproviders.JavaStratumBreakpointProvider">
-				</provider>
-			-->
-			<provider
-				contentTypes="org.eclipse.jst.jsp.core.jspsource"
-				id="org.eclipse.jst.jsp.ui.internal.breakpointproviders.JavaStratumBreakpointProvider">
-				<class class="org.eclipse.jst.jsp.ui.internal.breakpointproviders.JavaStratumBreakpointProvider">
-					<parameter name="org.eclipse.jst.jsp.core.jspsource" value="*jsp,jsp_servlet._*"/>
-					<parameter name="org.eclipse.jst.jsp.core.tagsource" value="*tag,*tagx,tag._*,tagx._*"/>
-				</class>
-			</provider>
-		</breakpointContribution>
-	</extension>
-
-
-	<!--======================================================================================-->
-	<!-- Snippet View contributions                                                           -->
-	<!--======================================================================================-->
-	<extension
-		point="org.eclipse.wst.common.snippets.SnippetContributions">
-		<category
-			label="%JSP_Extension_Element.label"
-			smallicon="icons/snippets/tag-jsp.gif"
-			id="org.eclipse.jst.jsp.ui.category0"
-			contenttypes="org.eclipse.jst.jsp.core.jspsource">
-			<item
-				label="%jsp_hidden_comment"
-				smallicon="icons/snippets/tag-generic.gif"
-				id="org.eclipse.jst.jsp.ui.jsp_hidden_comment">
-				<content>%jsp_hidden_comment_content</content>
-			</item>
-			<item
-				label="%jsp_scriptlet"
-				smallicon="icons/snippets/jspscr.gif"
-				id="org.eclipse.jst.jsp.ui.jsp_scriptlet">
-				<content>%jsp_scr_content</content>
-			</item>
-			<item
-				label="%jsp_expression"
-				smallicon="icons/snippets/jspexp.gif"
-				id="org.eclipse.jst.jsp.ui.jsp_expression">
-				<content>%jsp_expression_content</content>
-			</item>
-			<item
-				label="%jsp_declaration"
-				smallicon="icons/snippets/jspdecl.gif"
-				id="org.eclipse.jst.jsp.ui.jsp_declaration">
-				<content>%jsp_declaration_content</content>
-			</item>
-			<item
-				label="%jsp_include_directive"
-				smallicon="icons/snippets/jspincl.gif"
-				id="org.eclipse.jst.jsp.ui.jsp_include_directive">
-				<content>%jsp_include_directive_content</content>
-			</item>
-			<item
-				label="%jsp_page_directive"
-				id="org.eclipse.jst.jsp.ui.jsp_page_directive">
-				<content>%jsp_page_directive_content</content>
-			</item>
-			<item
-				label="%jsp_taglib_directive"
-				smallicon="icons/snippets/jsptaglib.gif"
-				id="org.eclipse.jst.jsp.ui.jsp_taglib_directive">
-				<content>%jsp_taglib_directive_content</content>
-				<variable
-					description="%jsp_taglib_directive_uri"
-					id="uri" />
-
-				<variable
-					default="mylib"
-					description="%jsp_taglib_directive_prefix"
-					id="prefix" />
-
-			</item>
-		</category>
-	</extension>
-
-	<!-- Editor actionsets -->
-	<extension point="org.eclipse.ui.actionSetPartAssociations">
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.edit.text.actionSet.annotationNavigation">
-			<part id="org.eclipse.jst.jsp.core.jspsource.source" />
-		</actionSetPartAssociation>
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.NavigateActionSet">
-			<part id="org.eclipse.jst.jsp.core.jspsource.source" />
-		</actionSetPartAssociation>
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- JSP Editor specific actions                                                          -->
-	<!--======================================================================================-->
-	<extension point="org.eclipse.ui.commands">
-		<!-- rename refactor -->
-		<command
-			name="%command.jsp.refactor.rename.name"
-			description="%command.jsp.refactor.rename.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.jst.jsp.ui.refactor.rename" />
-
-		<!-- move refactor -->
-		<command
-			name="%command.jsp.refactor.move.name"
-			description="%command.jsp.refactor.move.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.jst.jsp.ui.refactor.move" />
-	</extension>
-	
-	<!-- Keybinding scope for jsp source editor -->
-	<extension point="org.eclipse.ui.contexts">
-		<context
-			name="%scope.structured.text.editor.jsp.name"
-			parentId="org.eclipse.ui.textEditorScope"
-			description="%scope.structured.text.editor.jsp.description"
-			id="org.eclipse.jst.jsp.ui.structured.text.editor.jsp.scope">
-		</context>
-	</extension>
-	
-	<!-- Keybindings for jsp source editor -->
-	<extension point="org.eclipse.ui.bindings">
-	    <!--  win32:  M1=CTRL, M2=SHIFT, M3=ALT -->
-		<!-- rename refactor -->
-		<key
-			sequence="M2+M3+R"
-			contextId="org.eclipse.jst.jsp.ui.structured.text.editor.jsp.scope"
-			commandId="org.eclipse.jst.jsp.ui.refactor.rename"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-
-		<!-- move refactor -->
-		<key
-			sequence="M2+M3+V"
-			contextId="org.eclipse.jst.jsp.ui.structured.text.editor.jsp.scope"
-			commandId="org.eclipse.jst.jsp.ui.refactor.move"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- Templates                                                                            -->
-	<!--======================================================================================-->
-	<extension point="org.eclipse.ui.editors.templates">
-		<contextType
-			name="%All_JSP_context_type_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.templates.TemplateContextTypeJSP"
-			id="jsp_all" />
-
-		<contextType
-			name="%JSP_New_context_type_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.templates.TemplateContextTypeJSP"
-			id="jsp_new" />
-
-		<contextType
-			name="%JSP_Tag_context_type_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.templates.TemplateContextTypeJSP"
-			id="jsp_tag" />
-
-		<contextType
-			name="%JSP_Attribute_context_type_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.templates.TemplateContextTypeJSP"
-			id="jsp_attribute" />
-
-		<contextType
-			name="%JSP_Attribute_value_context_type_Extension_Element.name"
-			class="org.eclipse.jst.jsp.ui.internal.templates.TemplateContextTypeJSP"
-			id="jsp_attribute_value" />
-
-		<include
-			file="templates/jspdefault-templates.xml"
-			translations="$nl$/templates/jspdefault-templates.properties" />
-
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- queryParticipant to participate in java seraches                                     -->
-	<!--======================================================================================-->
-	<extension point="org.eclipse.jdt.ui.queryParticipants">
-		<queryParticipant
-			name="%JSP_Query_Participant_Extension_Element.name"
-			nature="org.eclipse.jdt.core.javanature"
-			class="org.eclipse.jst.jsp.ui.internal.java.search.ui.JSPQueryParticipant"
-			id="org.eclipse.jst.jsp.ui.java.search.ui.JSPQueryParticipant" />
-
-	</extension>
-	<!-- initialize xml ui preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.jst.jsp.ui.internal.preferences.JSPUIPreferenceInitializer" />
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- Document provider for ExternalFileEditorInput                                        -->
-	<!--======================================================================================-->
-	<extension point="org.eclipse.ui.editors.documentProviders">
-		<provider
-			inputTypes="org.eclipse.jst.jsp.ui.internal.hyperlink.ExternalFileEditorInput"
-			class="org.eclipse.ui.editors.text.TextFileDocumentProvider"
-			id="org.eclipse.jst.jsp.ui.internal.ExternalFileDocumentProvider" />
-
-	</extension>
-
-	<!-- New JSP wizard -->
-	<extension point="org.eclipse.ui.newWizards">
-		<wizard
-			id="org.eclipse.jst.jsp.ui.internal.wizard.NewJSPWizard"
-			name="%_UI_WIZARD_NAME"
-			class="org.eclipse.jst.jsp.ui.internal.wizard.NewJSPWizard"
-			category="org.eclipse.wst.web.ui"
-			icon="$nl$/icons/full/etool16/newjsp_wiz.gif">
-			<description>%_UI_WIZARD_CREATE_NEW_FILE</description>
-			<selection class="org.eclipse.core.resources.IResource" />
-		</wizard>
-	</extension>
-
-	<!-- Add new JSP wizard to J2EE Project Navigator -->
-	<extension
-		id="org.eclipse.jst.jsp.commonWizard.newJSP"
-		point="org.eclipse.ui.navigator.navigatorContent">
-		<commonWizard
-        menuGroupId="org.eclipse.wst.web.ui"
-        type="new"
-        wizardId="org.eclipse.jst.jsp.ui.internal.wizard.NewJSPWizard">
-			<enablement>
-				<or>
-					<adapt type="org.eclipse.core.resources.IResource">
-						<test
-							property="org.eclipse.wst.common.project.facet.core.projectFacet"
-							value="jst.web"/>
-					</adapt>
-				</or>
-			</enablement>
-		</commonWizard>
-	</extension>
-
-	<extension point="org.eclipse.ui.popupMenus">
-		<viewerContribution
-			targetID="org.eclipse.jst.jsp.core.jspsource.source.RulerContext"
-			id="org.eclipse.ui.texteditor.ruler.context.actions">
-			<action
-				label="%AddTask.label"
-				helpContextId="org.eclipse.ui.AddTask_action_context"
-				class="org.eclipse.ui.texteditor.TaskRulerAction"
-				tooltip="%AddTask.tooltip"
-				menubarPath="additions"
-				id="org.eclipse.ui.texteditor.TaskRulerAction" />
-
-			<action
-				label="%AddBookmark.label"
-				helpContextId="org.eclipse.ui.bookmark_action_context"
-				class="org.eclipse.ui.texteditor.BookmarkRulerAction"
-				tooltip="%AddBookmark.tooltip"
-				menubarPath="additions"
-				id="org.eclipse.ui.texteditor.BookmarkRulerAction" />
-
-		</viewerContribution>
-	</extension>
-
-	<extension point="org.eclipse.ui.editorActions">
-		<editorContribution
-			id="org.eclipse.jst.jsp.core.jspsource.source.editorActions"
-			targetID="org.eclipse.jst.jsp.core.jspsource.source">
-			<action
-				id="CleanupDocument"
-				label="%CleanupDocument_label"
-				definitionId="org.eclipse.wst.sse.ui.cleanup.document"
-				tooltip="%CleanupDocument_tooltip"
-				class="org.eclipse.wst.html.ui.internal.edit.ui.CleanupActionHTMLDelegate"
-				actionID="CleanupDocument">
-			</action>
-			<action
-				id="ToggleComment"
-				label="%ToggleComment_label"
-				definitionId="org.eclipse.wst.sse.ui.toggle.comment"
-				tooltip="%ToggleComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.ToggleCommentActionXMLDelegate"
-				actionID="ToggleComment">
-			</action>
-			<action
-				id="AddBlockComment"
-				label="%AddBlockComment_label"
-				definitionId="org.eclipse.wst.sse.ui.add.block.comment"
-				tooltip="%AddBlockComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.AddBlockCommentActionXMLDelegate"
-				actionID="AddBlockComment">
-			</action>
-			<action
-				id="RemoveBlockComment"
-				label="%RemoveBlockComment_label"
-				definitionId="org.eclipse.wst.sse.ui.remove.block.comment"
-				tooltip="%RemoveBlockComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.RemoveBlockCommentActionXMLDelegate"
-				actionID="RemoveBlockComment">
-			</action>
-			<action
-				id="RenameElement"
-				label="%RenameElement_label"
-				definitionId="org.eclipse.jst.jsp.ui.refactor.rename"
-				class="org.eclipse.jst.jsp.ui.internal.java.refactoring.JSPRenameElementActionDelegate"
-				actionID="RenameElement">
-			</action>
-			<action
-				id="MoveElement"
-				label="%MoveElement_label"
-				definitionId="org.eclipse.jst.jsp.ui.refactor.move"
-				class="org.eclipse.jst.jsp.ui.internal.java.refactoring.JSPMoveElementActionDelegate"
-				actionID="MoveElement">
-			</action>
-			<action
-				id="FindOccurrences"
-				label="%FindOccurrences_label"
-				definitionId="org.eclipse.wst.sse.ui.search.find.occurrences"
-				class="org.eclipse.jst.jsp.ui.internal.java.search.JSPFindOccurrencesActionDelegate"
-				actionID="FindOccurrences">
-			</action>
-			<action
-				id="StructureSelectEnclosing"
-				label="%StructureSelectEnclosing_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.enclosing"
-				tooltip="%StructureSelectEnclosing_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectEnclosingXMLActionDelegate"
-				actionID="StructureSelectEnclosing">
-			</action>
-			<action
-				id="StructureSelectNext"
-				label="%StructureSelectNext_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.next"
-				tooltip="%StructureSelectNext_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectNextXMLActionDelegate"
-				actionID="StructureSelectNext">
-			</action>
-			<action
-				id="StructureSelectPrevious"
-				label="%StructureSelectPrevious_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.previous"
-				tooltip="%StructureSelectPrevious_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectPreviousXMLActionDelegate"
-				actionID="StructureSelectPrevious">
-			</action>
-			<action
-				id="StructureSelectHistory"
-				label="%StructureSelectHistory_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.last"
-				tooltip="%StructureSelectHistory_tooltip"
-				class="org.eclipse.wst.sse.ui.internal.selection.StructuredSelectHistoryActionDelegate"
-				actionID="StructureSelectHistory">
-			</action>
-		</editorContribution>
-        <editorContribution
-            targetID="org.eclipse.jst.jsp.core.jspsource.source"
-            id="org.eclipse.jst.jsp.core.jspsource.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>
-	<!-- JSP Fragment Property Page -->
-	<extension point="org.eclipse.ui.propertyPages">
-		<!-- for j2ee web project -->
-		<page
-			objectClass="org.eclipse.core.resources.IProject"
-			adaptable="true"
-			name="%JSPFragmentContentSettings.name"
-			class="org.eclipse.jst.jsp.ui.internal.contentproperties.ui.ProjectJSPFContentSettingsPropertyPage"
-			id="org.eclipse.jst.jsp.ui.internal.contentproperties.ProjectJSPFContentSettingsPropertyPage">
-         	<enabledWhen>
-               	<and>
-					<adapt type="org.eclipse.core.resources.IProject">
-						<or> 
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.wst.common.project.facet.core.projectFacet"
-								value="jst.web" />
-						</or>
-					</adapt>
-				</and> 
-			</enabledWhen>
-		</page>
-		<page
-			objectClass="org.eclipse.core.resources.IFile"
-			adaptable="true"
-			name="%JSPFragmentContentSettings.name"
-			class="org.eclipse.jst.jsp.ui.internal.contentproperties.ui.JSPFContentSettingsPropertyPage"
-			id="org.eclipse.jst.jsp.ui.internal.contentproperties.JSPFContentSettingsPropertyPage">
-         	<enabledWhen>
-               	<and>
-					<adapt type="org.eclipse.core.resources.IFile">
-						<or> 
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.core.resources.contentTypeId"
-								value="org.eclipse.jst.jsp.core.jspfragmentsource" />
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.core.resources.contentTypeId"
-								value="org.eclipse.jst.jsp.core.cssjspfragmentsource" />
-						</or>
-					</adapt>
-				</and> 
-			</enabledWhen>
-		</page>
-	</extension>	
-	<!--  jsp-for-css editor configurations -->		
-	<extension point="org.eclipse.wst.sse.ui.editorConfiguration">
-		<contentOutlineConfiguration
-			class="org.eclipse.wst.css.ui.views.contentoutline.CSSContentOutlineConfiguration"
-			target="org.eclipse.jst.jsp.core.cssjspsource" />
-		<sourceViewerConfiguration
-			class="org.eclipse.wst.css.ui.StructuredTextViewerConfigurationCSS"
-			target="org.eclipse.jst.jsp.core.cssjspsource" />
-		<propertySheetConfiguration
-			class="org.eclipse.jst.jsp.css.ui.internal.views.properties.JSPedCSSPropertySheetConfiguration"
-			target="org.eclipse.jst.jsp.core.cssjspsource" />
-		<provisionalConfiguration
-			type="characterpairmatcher"
-			class="org.eclipse.wst.css.ui.internal.text.CSSDocumentRegionEdgeMatcher"
-			target="org.eclipse.jst.jsp.core.cssjspsource" />
-		<provisionalConfiguration
-			type="structuredtextfoldingprovider"
-			class="org.eclipse.wst.css.ui.internal.projection.StructuredTextFoldingProviderCSS"
-			target="org.eclipse.jst.jsp.core.cssjspsource" />
-		<provisionalDefinition
-			type="preferencepages"
-			value="org.eclipse.wst.sse.ui.preferences.css, org.eclipse.wst.sse.ui.preferences.css.source, org.eclipse.wst.css.ui.preferences.templates, org.eclipse.wst.sse.ui.preferences.css.styles"
-			target="org.eclipse.jst.jsp.core.cssjspsource" />
-	</extension>
-		<extension
-		point="org.eclipse.wst.sse.ui.adapterFactoryDescription">
-		<adapterFactoryDescription
-			class="org.eclipse.jst.jsp.css.ui.internal.registry.AdapterFactoryProviderJSPedCSS">
-			<contentType id="org.eclipse.jst.jsp.core.cssjspsource" />
-		</adapterFactoryDescription>
-	</extension>
-</plugin>
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/properties/JSPedCSSPropertySource.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/properties/JSPedCSSPropertySource.java
deleted file mode 100644
index 09c7828..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/properties/JSPedCSSPropertySource.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.css.ui.internal.properties;
-
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.css.ui.internal.properties.CSSPropertySource;
-
-
-
-public class JSPedCSSPropertySource extends CSSPropertySource {
-
-	public JSPedCSSPropertySource(ICSSNode target) {
-		super(target);
-	}
-	
-	public void setPropertyValue(Object name, Object value) {
-		// workaround to avoid DOMException: if value contains jsp element, nothing happen.
-		String v = value.toString();
-		if (v.indexOf("${") != -1 || v.indexOf("<%=") != -1){
-			IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-			String title = JSPUIMessages.Title_InvalidValue; //$NON-NLS-1$
-			String message = JSPUIMessages.Message_InvalidValue; //$NON-NLS-1$
-			MessageDialog.openWarning(window.getShell(), title, message);
-			return;
-		}
-		super.setPropertyValue(name, value);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/registry/AdapterFactoryProviderJSPedCSS.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/registry/AdapterFactoryProviderJSPedCSS.java
deleted file mode 100644
index 809e87b..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/registry/AdapterFactoryProviderJSPedCSS.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.css.ui.internal.registry;
-
-import org.eclipse.jst.jsp.css.core.internal.modelhandler.ModelHandlerForJSPedCSS;
-import org.eclipse.wst.css.ui.internal.registry.AdapterFactoryProviderCSS;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IDocumentTypeHandler;
-
-public class AdapterFactoryProviderJSPedCSS extends AdapterFactoryProviderCSS {
-
-
-	public boolean isFor(IDocumentTypeHandler contentTypeDescription) {
-		return (contentTypeDescription instanceof ModelHandlerForJSPedCSS);
-	}
-
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/views/properties/JSPedCSSPropertySheetConfiguration.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/views/properties/JSPedCSSPropertySheetConfiguration.java
deleted file mode 100644
index 7403816..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/css/ui/internal/views/properties/JSPedCSSPropertySheetConfiguration.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.css.ui.internal.views.properties;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jst.jsp.css.ui.internal.properties.JSPedCSSPropertySource;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-public class JSPedCSSPropertySheetConfiguration extends PropertySheetConfiguration {
-	private class CSSPropertySheetRefreshAdapter implements INodeAdapter {
-		public boolean isAdapterForType(Object type) {
-			return false;
-		}
-
-		public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-			if (fPropertySheetPage != null) {
-				getPropertiesRefreshJob().addPropertySheetPage(fPropertySheetPage);
-			}
-		}
-	}
-
-	private class CSSPropertySourceProvider implements IPropertySourceProvider {
-		private IPropertySource fPropertySource = null;
-		private ICSSNode fSource = null;
-
-		public IPropertySource getPropertySource(Object object) {
-			if (fSource != null && object.equals(fSource)) {
-				return fPropertySource;
-			}
-
-			if (object instanceof ICSSNode) {
-				fSource = (ICSSNode)object;
-				fPropertySource = new JSPedCSSPropertySource(fSource);
-			}
-			else {
-				fSource = null;
-				fPropertySource = null;
-			}
-			return fPropertySource;
-		}
-	}
-
-	private class PropertiesRefreshJob extends UIJob {
-		public static final int UPDATE_DELAY = 200;
-
-		private Set propertySheetPages = null;
-
-		public PropertiesRefreshJob() {
-			super(XMLUIMessages.JFaceNodeAdapter_1);
-			setSystem(true);
-			setPriority(Job.SHORT);
-			propertySheetPages = new HashSet(1);
-		}
-
-		void addPropertySheetPage(IPropertySheetPage page) {
-			propertySheetPages.add(page);
-			schedule(UPDATE_DELAY);
-		}
-
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-			Object[] pages = propertySheetPages.toArray();
-			propertySheetPages.clear();
-
-			for (int i = 0; i < pages.length; i++) {
-				PropertySheetPage page = (PropertySheetPage) pages[i];
-				if (page.getControl() != null && !page.getControl().isDisposed()) {
-					page.refresh();
-				}
-			}
-
-			return Status.OK_STATUS;
-		}
-	}
-
-	private PropertiesRefreshJob fPropertiesRefreshJob = null;
-
-	IPropertySheetPage fPropertySheetPage;
-
-	private IPropertySourceProvider fPropertySourceProvider = null;
-
-	private INodeAdapter fRefreshAdapter = new CSSPropertySheetRefreshAdapter();
-
-	private INodeNotifier[] fSelectedNotifiers;
-
-	/**
-	 * Create new instance of CSSPropertySheetConfiguration
-	 */
-	public JSPedCSSPropertySheetConfiguration() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	public ISelection getInputSelection(IWorkbenchPart selectingPart, ISelection selection) {
-		// remove UI refresh adapters
-		if (fSelectedNotifiers != null) {
-			for (int i = 0; i < fSelectedNotifiers.length; i++) {
-				fSelectedNotifiers[i].removeAdapter(fRefreshAdapter);
-			}
-			fSelectedNotifiers = null;
-		}
-
-		ISelection preferredSelection = super.getInputSelection(selectingPart, selection);
-		if (preferredSelection instanceof IStructuredSelection) {
-			Object[] selectedObjects = new Object[((IStructuredSelection) selection).size()];
-			System.arraycopy(((IStructuredSelection) selection).toArray(), 0, selectedObjects, 0, selectedObjects.length);
-			for (int i = 0; i < selectedObjects.length; i++) {
-				if (selectedObjects[i] instanceof ICSSNode) {
-					ICSSNode node = (ICSSNode) selectedObjects[i];
-					while (node.getNodeType() == ICSSNode.PRIMITIVEVALUE_NODE || node.getNodeType() == ICSSNode.STYLEDECLITEM_NODE) {
-						node = node.getParentNode();
-						selectedObjects[i] = node;
-					}
-				}
-			}
-
-			/*
-			 * Add UI refresh adapters and remember notifiers for later
-			 * removal
-			 */
-			if (selectedObjects.length > 0) {
-				List selectedNotifiers = new ArrayList(1);
-				for (int i = 0; i < selectedObjects.length; i++) {
-					if (selectedObjects[i] instanceof INodeNotifier) {
-						selectedNotifiers.add(selectedObjects[i]);
-						((INodeNotifier) selectedObjects[i]).addAdapter(fRefreshAdapter);
-					}
-				}
-				fSelectedNotifiers = (INodeNotifier[]) selectedNotifiers.toArray(new INodeNotifier[selectedNotifiers.size()]);
-			}
-			preferredSelection = new StructuredSelection(selectedObjects);
-		}
-		return preferredSelection;
-	}
-
-	PropertiesRefreshJob getPropertiesRefreshJob() {
-		if (fPropertiesRefreshJob == null) {
-			fPropertiesRefreshJob = new PropertiesRefreshJob();
-		}
-		return fPropertiesRefreshJob;
-	}
-
-	public IPropertySourceProvider getPropertySourceProvider(IPropertySheetPage page) {
-		if (fPropertySourceProvider == null) {
-			fPropertySourceProvider = new CSSPropertySourceProvider();
-			fPropertySheetPage = page;
-		}
-		return fPropertySourceProvider;
-	}
-
-	public void unconfigure() {
-		super.unconfigure();
-		if (fSelectedNotifiers != null) {
-			for (int i = 0; i < fSelectedNotifiers.length; i++) {
-				fSelectedNotifiers[i].removeAdapter(fRefreshAdapter);
-			}
-			fSelectedNotifiers = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/StructuredTextViewerConfigurationJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/StructuredTextViewerConfigurationJSP.java
deleted file mode 100644
index 6b9473c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/StructuredTextViewerConfigurationJSP.java
+++ /dev/null
@@ -1,441 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jdt.ui.PreferenceConstants;
-import org.eclipse.jdt.ui.text.IJavaPartitions;
-import org.eclipse.jdt.ui.text.JavaSourceViewerConfiguration;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.ITextDoubleClickStrategy;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.formatter.IContentFormatter;
-import org.eclipse.jface.text.formatter.MultiPassContentFormatter;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.information.IInformationPresenter;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.jst.jsp.core.internal.text.StructuredTextPartitionerForJSP;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.jst.jsp.ui.internal.autoedit.AutoEditStrategyForTabs;
-import org.eclipse.jst.jsp.ui.internal.autoedit.StructuredAutoEditStrategyJSP;
-import org.eclipse.jst.jsp.ui.internal.contentassist.JSPContentAssistProcessor;
-import org.eclipse.jst.jsp.ui.internal.contentassist.JSPELContentAssistProcessor;
-import org.eclipse.jst.jsp.ui.internal.contentassist.JSPJavaContentAssistProcessor;
-import org.eclipse.jst.jsp.ui.internal.contentassist.NoRegionContentAssistProcessorForJSP;
-import org.eclipse.jst.jsp.ui.internal.format.FormattingStrategyJSPJava;
-import org.eclipse.jst.jsp.ui.internal.hyperlink.JSPJavaHyperlinkDetector;
-import org.eclipse.jst.jsp.ui.internal.hyperlink.TaglibHyperlinkDetector;
-import org.eclipse.jst.jsp.ui.internal.hyperlink.XMLHyperlinkDetector;
-import org.eclipse.jst.jsp.ui.internal.style.LineStyleProviderForJSP;
-import org.eclipse.jst.jsp.ui.internal.style.java.LineStyleProviderForJava;
-import org.eclipse.jst.jsp.ui.internal.style.jspel.LineStyleProviderForJSPEL;
-import org.eclipse.jst.jsp.ui.internal.taginfo.JSPInformationProvider;
-import org.eclipse.jst.jsp.ui.internal.taginfo.JSPJavaJavadocHoverProcessor;
-import org.eclipse.jst.jsp.ui.internal.taginfo.JSPJavaJavadocInformationProvider;
-import org.eclipse.jst.jsp.ui.internal.taginfo.JSPTagInfoHoverProcessor;
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
-import org.eclipse.wst.css.core.text.ICSSPartitions;
-import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.html.ui.StructuredTextViewerConfigurationHTML;
-import org.eclipse.wst.sse.core.text.IStructuredPartitions;
-import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.format.StructuredFormattingStrategy;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
-
-/**
- * Configuration for a source viewer which shows JSP content.
- * <p>
- * Clients can subclass and override just those methods which must be specific
- * to their needs.
- * </p>
- * 
- * @see org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration
- * @since 1.0
- */
-public class StructuredTextViewerConfigurationJSP extends StructuredTextViewerConfiguration {
-	/*
-	 * One instance per configuration because not sourceviewer-specific and
-	 * it's a String array
-	 */
-	private String[] fConfiguredContentTypes;
-	/*
-	 * One instance per configuration
-	 */
-	private LineStyleProvider fLineStyleProviderForJava;
-	/*
-	 * One instance per configuration
-	 */
-	private LineStyleProvider fLineStyleProviderForJSP;
-	/*
-	 * One instance per configuration
-	 */
-	private LineStyleProvider fLineStyleProviderForJSPEL;
-	private StructuredTextViewerConfiguration fHTMLSourceViewerConfiguration;
-	private JavaSourceViewerConfiguration fJavaSourceViewerConfiguration;
-	private StructuredTextViewerConfiguration fXMLSourceViewerConfiguration;
-
-	/**
-	 * Create new instance of StructuredTextViewerConfigurationJSP
-	 */
-	public StructuredTextViewerConfigurationJSP() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.SourceViewerConfiguration#getAutoEditStrategies(org.eclipse.jface.text.source.ISourceViewer,
-	 *      java.lang.String)
-	 */
-	public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType) {
-		IAutoEditStrategy[] strategies = null;
-
-		if (contentType == IXMLPartitions.XML_DEFAULT) {
-			// xml autoedit strategies
-			strategies = getXMLSourceViewerConfiguration().getAutoEditStrategies(sourceViewer, contentType);
-		}
-		else if (contentType == IJSPPartitions.JSP_CONTENT_JAVA) {
-			// jsp java autoedit strategies
-			List allStrategies = new ArrayList(0);
-
-			IAutoEditStrategy[] javaStrategies = getJavaSourceViewerConfiguration().getAutoEditStrategies(sourceViewer, IJavaPartitions.JAVA_PARTITIONING);
-			for (int i = 0; i < javaStrategies.length; i++) {
-				allStrategies.add(javaStrategies[i]);
-			}
-			// be sure this is added last, after others, so it can modify
-			// results from earlier steps.
-			// add auto edit strategy that handles when tab key is pressed
-			allStrategies.add(new AutoEditStrategyForTabs());
-
-			strategies = (IAutoEditStrategy[]) allStrategies.toArray(new IAutoEditStrategy[allStrategies.size()]);
-		}
-		else if (contentType == IHTMLPartitions.HTML_DEFAULT || contentType == IHTMLPartitions.HTML_DECLARATION) {
-			// html and jsp autoedit strategies
-			List allStrategies = new ArrayList(0);
-
-			// add the jsp autoedit strategy first then add all html's
-			allStrategies.add(new StructuredAutoEditStrategyJSP());
-
-			IAutoEditStrategy[] htmlStrategies = getHTMLSourceViewerConfiguration().getAutoEditStrategies(sourceViewer, contentType);
-			for (int i = 0; i < htmlStrategies.length; i++) {
-				allStrategies.add(htmlStrategies[i]);
-			}
-
-			strategies = (IAutoEditStrategy[]) allStrategies.toArray(new IAutoEditStrategy[allStrategies.size()]);
-		}
-		else {
-			// default autoedit strategies
-			List allStrategies = new ArrayList(0);
-
-			IAutoEditStrategy[] superStrategies = super.getAutoEditStrategies(sourceViewer, contentType);
-			for (int i = 0; i < superStrategies.length; i++) {
-				allStrategies.add(superStrategies[i]);
-			}
-
-			// be sure this is added last, after others, so it can modify
-			// results from earlier steps.
-			// add auto edit strategy that handles when tab key is pressed
-			allStrategies.add(new AutoEditStrategyForTabs());
-
-			strategies = (IAutoEditStrategy[]) allStrategies.toArray(new IAutoEditStrategy[allStrategies.size()]);
-		}
-
-		return strategies;
-	}
-
-	public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
-		if (fConfiguredContentTypes == null) {
-			/*
-			 * A little bit of cheating because assuming html's configured
-			 * content types will add default, unknown, and all xml configured
-			 * content types
-			 */
-			String[] htmlTypes = getHTMLSourceViewerConfiguration().getConfiguredContentTypes(sourceViewer);
-			String[] jspTypes = StructuredTextPartitionerForJSP.getConfiguredContentTypes();
-			fConfiguredContentTypes = new String[htmlTypes.length + jspTypes.length];
-
-			int index = 0;
-			System.arraycopy(htmlTypes, 0, fConfiguredContentTypes, index, htmlTypes.length);
-			System.arraycopy(jspTypes, 0, fConfiguredContentTypes, index += htmlTypes.length, jspTypes.length);
-		}
-
-		return fConfiguredContentTypes;
-	}
-
-	protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
-		IContentAssistProcessor[] processors = null;
-
-		if (partitionType == IHTMLPartitions.SCRIPT) {
-			// HTML JavaScript
-			IContentAssistant htmlContentAssistant = getHTMLSourceViewerConfiguration().getContentAssistant(sourceViewer);
-			IContentAssistProcessor processor = htmlContentAssistant.getContentAssistProcessor(IHTMLPartitions.SCRIPT);
-			processors = new IContentAssistProcessor[]{processor};
-		}
-		else if (partitionType == ICSSPartitions.STYLE) {
-			// HTML CSS
-			IContentAssistant htmlContentAssistant = getHTMLSourceViewerConfiguration().getContentAssistant(sourceViewer);
-			IContentAssistProcessor processor = htmlContentAssistant.getContentAssistProcessor(ICSSPartitions.STYLE);
-			processors = new IContentAssistProcessor[]{processor};
-		}
-		// // jspcontentassistprocessor handles this?
-		// else if ((partitionType == IHTMLPartitionTypes.HTML_DEFAULT) ||
-		// (partitionType == IHTMLPartitionTypes.HTML_COMMENT)) {
-		// processors = new IContentAssistProcessor[]{new
-		// HTMLContentAssistProcessor()};
-		// }
-		else if ((partitionType == IXMLPartitions.XML_DEFAULT) || (partitionType == IHTMLPartitions.HTML_DEFAULT) || (partitionType == IHTMLPartitions.HTML_COMMENT) || (partitionType == IJSPPartitions.JSP_DEFAULT) || (partitionType == IJSPPartitions.JSP_DIRECTIVE) || (partitionType == IJSPPartitions.JSP_CONTENT_DELIMITER) || (partitionType == IJSPPartitions.JSP_CONTENT_JAVASCRIPT) || (partitionType == IJSPPartitions.JSP_COMMENT)) {
-			// jsp
-			processors = new IContentAssistProcessor[]{new JSPContentAssistProcessor()};
-		}
-		else if ((partitionType == IXMLPartitions.XML_CDATA) || (partitionType == IJSPPartitions.JSP_CONTENT_JAVA)) {
-			// jsp java
-			processors = new IContentAssistProcessor[]{new JSPJavaContentAssistProcessor()};
-		}
-		else if (partitionType == IJSPPartitions.JSP_DEFAULT_EL) {
-			// jsp el
-			processors = new IContentAssistProcessor[]{new JSPELContentAssistProcessor()};
-		}
-		else if (partitionType == IStructuredPartitions.UNKNOWN_PARTITION) {
-			// unknown
-			processors = new IContentAssistProcessor[]{new NoRegionContentAssistProcessorForJSP()};
-		}
-
-		return processors;
-	}
-
-	public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {
-		MultiPassContentFormatter formatter = new MultiPassContentFormatter(getConfiguredDocumentPartitioning(sourceViewer), IXMLPartitions.XML_DEFAULT);
-
-		formatter.setMasterStrategy(new StructuredFormattingStrategy(new HTMLFormatProcessorImpl()));
-		formatter.setSlaveStrategy(new FormattingStrategyJSPJava(), IJSPPartitions.JSP_CONTENT_JAVA);
-
-		return formatter;
-	}
-
-	public ITextDoubleClickStrategy getDoubleClickStrategy(ISourceViewer sourceViewer, String contentType) {
-		ITextDoubleClickStrategy strategy = null;
-
-		// html or javascript
-		if (contentType == IHTMLPartitions.HTML_DEFAULT || contentType == IHTMLPartitions.SCRIPT)
-			strategy = getHTMLSourceViewerConfiguration().getDoubleClickStrategy(sourceViewer, contentType);
-		else if (contentType == IJSPPartitions.JSP_CONTENT_JAVA || contentType == IJSPPartitions.JSP_CONTENT_JAVASCRIPT)
-			// JSP Java or JSP JavaScript
-			strategy = getJavaSourceViewerConfiguration().getDoubleClickStrategy(sourceViewer, contentType);
-		else if (contentType == IJSPPartitions.JSP_DEFAULT)
-			// JSP (just treat like html)
-			strategy = getHTMLSourceViewerConfiguration().getDoubleClickStrategy(sourceViewer, IHTMLPartitions.HTML_DEFAULT);
-		else
-			strategy = super.getDoubleClickStrategy(sourceViewer, contentType);
-
-		return strategy;
-	}
-
-	private StructuredTextViewerConfiguration getHTMLSourceViewerConfiguration() {
-		if (fHTMLSourceViewerConfiguration == null) {
-			fHTMLSourceViewerConfiguration = new StructuredTextViewerConfigurationHTML();
-		}
-		return fHTMLSourceViewerConfiguration;
-	}
-
-	public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
-		if (fPreferenceStore == null)
-			return null;
-		if (sourceViewer == null || !fPreferenceStore.getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_HYPERLINKS_ENABLED))
-			return null;
-
-		List allDetectors = new ArrayList(0);
-		allDetectors.add(new JSPJavaHyperlinkDetector());
-		allDetectors.add(new TaglibHyperlinkDetector());
-		allDetectors.add(new XMLHyperlinkDetector());
-
-		IHyperlinkDetector[] superDetectors = super.getHyperlinkDetectors(sourceViewer);
-		for (int m = 0; m < superDetectors.length; m++) {
-			IHyperlinkDetector detector = superDetectors[m];
-			if (!allDetectors.contains(detector)) {
-				allDetectors.add(detector);
-			}
-		}
-		return (IHyperlinkDetector[]) allDetectors.toArray(new IHyperlinkDetector[0]);
-	}
-
-	public String[] getIndentPrefixes(ISourceViewer sourceViewer, String contentType) {
-		String[] indentations = null;
-
-		if (contentType == IXMLPartitions.XML_DEFAULT)
-			indentations = getXMLSourceViewerConfiguration().getIndentPrefixes(sourceViewer, contentType);
-		else
-			indentations = getHTMLSourceViewerConfiguration().getIndentPrefixes(sourceViewer, contentType);
-
-		return indentations;
-	}
-
-	protected IInformationProvider getInformationProvider(ISourceViewer sourceViewer, String partitionType) {
-		IInformationProvider provider = null;
-		if (partitionType == IHTMLPartitions.HTML_DEFAULT) {
-			// HTML
-			IInformationPresenter htmlPresenter = getHTMLSourceViewerConfiguration().getInformationPresenter(sourceViewer);
-			provider = htmlPresenter.getInformationProvider(IHTMLPartitions.HTML_DEFAULT);
-		}
-		else if (partitionType == IHTMLPartitions.SCRIPT) {
-			// HTML JavaScript
-			IInformationPresenter htmlPresenter = getHTMLSourceViewerConfiguration().getInformationPresenter(sourceViewer);
-			provider = htmlPresenter.getInformationProvider(IHTMLPartitions.SCRIPT);
-		}
-		else if (partitionType == IXMLPartitions.XML_DEFAULT) {
-			// XML
-			IInformationPresenter xmlPresenter = getXMLSourceViewerConfiguration().getInformationPresenter(sourceViewer);
-			provider = xmlPresenter.getInformationProvider(IXMLPartitions.XML_DEFAULT);
-		}
-		else if ((partitionType == IJSPPartitions.JSP_DEFAULT) || (partitionType == IJSPPartitions.JSP_DIRECTIVE)) {
-			// JSP tags
-			provider = new JSPInformationProvider();
-		}
-		else if (partitionType == IJSPPartitions.JSP_CONTENT_JAVA) {
-			// JSP java
-			provider = new JSPJavaJavadocInformationProvider();
-		}
-		return provider;
-	}
-
-	private JavaSourceViewerConfiguration getJavaSourceViewerConfiguration() {
-		if (fJavaSourceViewerConfiguration == null) {
-			IPreferenceStore store = PreferenceConstants.getPreferenceStore();
-			/*
-			 * NOTE: null text editor is being passed to
-			 * JavaSourceViewerConfiguration because
-			 * StructuredTextViewerConfiguration does not know current editor.
-			 * this is okay because editor is not needed in the cases we are
-			 * using javasourceviewerconfiguration.
-			 */
-			fJavaSourceViewerConfiguration = new JavaSourceViewerConfiguration(JavaUI.getColorManager(), store, null, IJavaPartitions.JAVA_PARTITIONING);
-		}
-		return fJavaSourceViewerConfiguration;
-	}
-
-	public LineStyleProvider[] getLineStyleProviders(ISourceViewer sourceViewer, String partitionType) {
-		LineStyleProvider[] providers = null;
-
-		if (partitionType == IHTMLPartitions.HTML_DEFAULT || partitionType == IHTMLPartitions.HTML_COMMENT || partitionType == IHTMLPartitions.HTML_DECLARATION) {
-			providers = getHTMLSourceViewerConfiguration().getLineStyleProviders(sourceViewer, IHTMLPartitions.HTML_DEFAULT);
-		}
-		else if (partitionType == IHTMLPartitions.SCRIPT || partitionType == IJSPPartitions.JSP_CONTENT_JAVASCRIPT) {
-			providers = getHTMLSourceViewerConfiguration().getLineStyleProviders(sourceViewer, IHTMLPartitions.SCRIPT);
-		}
-		else if (partitionType == ICSSPartitions.STYLE) {
-			providers = getHTMLSourceViewerConfiguration().getLineStyleProviders(sourceViewer, ICSSPartitions.STYLE);
-		}
-		else if (partitionType == IXMLPartitions.XML_DEFAULT || partitionType == IXMLPartitions.XML_CDATA || partitionType == IXMLPartitions.XML_COMMENT || partitionType == IXMLPartitions.XML_DECLARATION || partitionType == IXMLPartitions.XML_PI) {
-			providers = getXMLSourceViewerConfiguration().getLineStyleProviders(sourceViewer, IXMLPartitions.XML_DEFAULT);
-		}
-		else if (partitionType == IJSPPartitions.JSP_CONTENT_JAVA) {
-			providers = new LineStyleProvider[]{getLineStyleProviderForJava()};
-		}
-		else if (partitionType == IJSPPartitions.JSP_DEFAULT_EL) {
-			providers = new LineStyleProvider[]{getLineStyleProviderForJSPEL()};
-		}
-		else if (partitionType == IJSPPartitions.JSP_COMMENT || partitionType == IJSPPartitions.JSP_CONTENT_DELIMITER || partitionType == IJSPPartitions.JSP_DEFAULT || partitionType == IJSPPartitions.JSP_DIRECTIVE) {
-			providers = new LineStyleProvider[]{getLineStyleProviderForJSP()};
-		}
-
-		return providers;
-	}
-
-	private LineStyleProvider getLineStyleProviderForJava() {
-		if (fLineStyleProviderForJava == null) {
-			fLineStyleProviderForJava = new LineStyleProviderForJava();
-		}
-		return fLineStyleProviderForJava;
-	}
-
-	private LineStyleProvider getLineStyleProviderForJSP() {
-		if (fLineStyleProviderForJSP == null) {
-			fLineStyleProviderForJSP = new LineStyleProviderForJSP();
-		}
-		return fLineStyleProviderForJSP;
-	}
-
-	private LineStyleProvider getLineStyleProviderForJSPEL() {
-		if (fLineStyleProviderForJSPEL == null) {
-			fLineStyleProviderForJSPEL = new LineStyleProviderForJSPEL();
-		}
-		return fLineStyleProviderForJSPEL;
-	}
-
-	public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType, int stateMask) {
-		ITextHover hover = null;
-
-		if (contentType == IHTMLPartitions.HTML_DEFAULT || contentType == IHTMLPartitions.SCRIPT) {
-			// html and javascript regions
-			hover = getHTMLSourceViewerConfiguration().getTextHover(sourceViewer, contentType, stateMask);
-		}
-		else if (contentType == IXMLPartitions.XML_DEFAULT) {
-			// xml regions
-			hover = getXMLSourceViewerConfiguration().getTextHover(sourceViewer, contentType, stateMask);
-		}
-		else if ((contentType == IJSPPartitions.JSP_DEFAULT) || (contentType == IJSPPartitions.JSP_DIRECTIVE) || (contentType == IJSPPartitions.JSP_CONTENT_JAVA)) {
-			TextHoverManager manager = SSEUIPlugin.getDefault().getTextHoverManager();
-			TextHoverManager.TextHoverDescriptor[] hoverDescs = manager.getTextHovers();
-			int i = 0;
-			while (i < hoverDescs.length && hover == null) {
-				if (hoverDescs[i].isEnabled() && EditorUtility.computeStateMask(hoverDescs[i].getModifierString()) == stateMask) {
-					String hoverType = hoverDescs[i].getId();
-					if (TextHoverManager.COMBINATION_HOVER.equalsIgnoreCase(hoverType)) {
-						if ((contentType == IJSPPartitions.JSP_DEFAULT) || (contentType == IJSPPartitions.JSP_DIRECTIVE)) {
-							// JSP
-							hover = manager.createBestMatchHover(new JSPTagInfoHoverProcessor());
-						}
-						else {
-							// JSP Java
-							hover = manager.createBestMatchHover(new JSPJavaJavadocHoverProcessor());
-						}
-					}
-					else if (TextHoverManager.DOCUMENTATION_HOVER.equalsIgnoreCase(hoverType)) {
-						if ((contentType == IJSPPartitions.JSP_DEFAULT) || (contentType == IJSPPartitions.JSP_DIRECTIVE)) {
-							// JSP
-							hover = new JSPTagInfoHoverProcessor();
-						}
-						else {
-							// JSP Java
-							hover = new JSPJavaJavadocHoverProcessor();
-						}
-					}
-				}
-				i++;
-			}
-		}
-
-		// no appropriate text hovers found, try super
-		if (hover == null)
-			hover = super.getTextHover(sourceViewer, contentType, stateMask);
-		return hover;
-	}
-
-	private StructuredTextViewerConfiguration getXMLSourceViewerConfiguration() {
-		if (fXMLSourceViewerConfiguration == null) {
-			fXMLSourceViewerConfiguration = new StructuredTextViewerConfigurationXML();
-		}
-		return fXMLSourceViewerConfiguration;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/IActionConstantsJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/IActionConstantsJSP.java
deleted file mode 100644
index a400780..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/IActionConstantsJSP.java
+++ /dev/null
@@ -1,19 +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.ui.internal;
-
-/**
- * @author pavery
- */
-public interface IActionConstantsJSP {
-	public final static String ACTION_NAME_RENAME_ELEMENT = "RenameElement"; //$NON-NLS-1$
-	public final static String ACTION_NAME_MOVE_ELEMENT = "MoveElement"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/IActionDefinitionIdsJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/IActionDefinitionIdsJSP.java
deleted file mode 100644
index f90607e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/IActionDefinitionIdsJSP.java
+++ /dev/null
@@ -1,21 +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.ui.internal;
-
-import org.eclipse.jdt.ui.actions.IJavaEditorActionDefinitionIds;
-
-/**
- * @author pavery
- */
-public interface IActionDefinitionIdsJSP {
-	public final static String RENAME_ELEMENT = IJavaEditorActionDefinitionIds.RENAME_ELEMENT;
-	public final static String MOVE_ELEMENT = IJavaEditorActionDefinitionIds.MOVE_ELEMENT;
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIMessages.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIMessages.java
deleted file mode 100644
index 338b245..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIMessages.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.jst.jsp.ui.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by JSP UI
- * 
- * @plannedfor 1.0
- */
-public class JSPUIMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jst.jsp.ui.internal.JSPUIPluginResources";//$NON-NLS-1$
-	private static ResourceBundle fResourceBundle;
-	
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, JSPUIMessages.class);
-	}
-
-	public static ResourceBundle getResourceBundle() {
-		try {
-			if (fResourceBundle == null)
-				fResourceBundle = ResourceBundle.getBundle(BUNDLE_NAME);
-		}
-		catch (MissingResourceException x) {
-			fResourceBundle = null;
-		}
-		return fResourceBundle;
-	}
-
-	public static String Sample_JSP_doc;
-	public static String JSP_Delimiters_UI_;
-	public static String Refactor_label;
-	public static String RenameElement_label; // resource bundle
-	public static String MoveElement_label; // resource bundle
-	public static String MoveElementWizard;
-	public static String OK;
-	public static String JSP_changes;
-	public static String ActionContributorJSP_0;
-	public static String JSPRenameElementAction_0;
-	public static String JSPMoveElementAction_0;
-	public static String BasicRefactorSearchRequestor_0;
-	public static String BasicRefactorSearchRequestor_1;
-	public static String BasicRefactorSearchRequestor_2;
-	public static String BasicRefactorSearchRequestor_3;
-	public static String BasicRefactorSearchRequestor_4;
-	public static String BasicRefactorSearchRequestor_5;
-	public static String BasicRefactorSearchRequestor_6;
-	public static String _UI_WIZARD_NEW_TITLE;
-	public static String _UI_WIZARD_NEW_HEADING;
-	public static String _UI_WIZARD_NEW_DESCRIPTION;
-	public static String _ERROR_FILENAME_MUST_END_JSP;
-	public static String _WARNING_FILE_MUST_BE_INSIDE_JAVA_PROJECT;
-	public static String _WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT;
-	public static String ResourceGroup_nameExists;
-	public static String NewJSPTemplatesWizardPage_0;
-	public static String NewJSPTemplatesWizardPage_1;
-	public static String NewJSPTemplatesWizardPage_2;
-	public static String NewJSPTemplatesWizardPage_3;
-	public static String NewJSPTemplatesWizardPage_4;
-	public static String NewJSPTemplatesWizardPage_5;
-	public static String NewJSPTemplatesWizardPage_6;
-	public static String ToggleComment_label; // resource bundle
-	public static String ToggleComment_tooltip; // resource bundle
-	public static String ToggleComment_description; // resource bundle
-	public static String AddBlockComment_label; // resource bundle
-	public static String AddBlockComment_tooltip; // resource bundle
-	public static String AddBlockComment_description; // resource bundle
-	public static String RemoveBlockComment_label; // resource bundle
-	public static String RemoveBlockComment_tooltip; // resource bundle
-	public static String RemoveBlockComment_description; // resource bundle
-	public static String CleanupDocument_label; // resource bundle
-	public static String CleanupDocument_tooltip; // resource bundle
-	public static String CleanupDocument_description; // resource bundle
-	public static String FindOccurrences_label;	// resource bundle
-	public static String OccurrencesSearchQuery_0;
-	public static String OccurrencesSearchQuery_2;
-	public static String Override_method_in;
-	public static String Creating_files_encoding;
-	public static String Content_Assist_not_availab_UI_;
-	public static String Java_Content_Assist_is_not_UI_;
-	public static String JSPSourcePreferencePage_0;
-	public static String JSPSourcePreferencePage_1;
-	public static String JSPSourcePreferencePage_2;
-	public static String JSPColorPage_jsp_content;
-	public static String JSPFilesPreferencePage_0;
-	public static String JSPFilesPreferencePage_1;
-	public static String JSPFContentSettingsPropertyPage_0;
-	public static String JSPFContentSettingsPropertyPage_1;
-	public static String JSPFContentSettingsPropertyPage_2;
-	public static String JSPFContentSettingsPropertyPage_3;
-	public static String JSPFContentSettingsPropertyPage_4;
-	public static String ProjectJSPFContentSettingsPropertyPage_0;
-	public static String Title_InvalidValue;
-	public static String Message_InvalidValue;
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPlugin.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPlugin.java
deleted file mode 100644
index 8aaeba0..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPlugin.java
+++ /dev/null
@@ -1,98 +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.ui.internal;
-
-import java.io.IOException;
-
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.jst.jsp.ui.internal.preferences.JSPUIPreferenceNames;
-import org.eclipse.jst.jsp.ui.internal.templates.TemplateContextTypeIdsJSP;
-import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry;
-import org.eclipse.ui.editors.text.templates.ContributionTemplateStore;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryImpl;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class JSPUIPlugin extends AbstractUIPlugin {
-	public final static String ID = "org.eclipse.jst.jsp.ui"; //$NON-NLS-1$
-
-	protected static JSPUIPlugin instance = null;	
-	
-	/**
-	 * The template store for the jsp editor. 
-	 */
-	private TemplateStore fTemplateStore;
-	
-	/** 
-	 * The template context type registry for the jsp editor. 
-	 */
-	private ContextTypeRegistry fContextTypeRegistry;
-
-	public JSPUIPlugin() {
-		super();
-		instance = this;
-	}
-
-	public static JSPUIPlugin getDefault() {
-		return instance;
-	}
-
-	public synchronized static JSPUIPlugin getInstance() {
-		return instance;
-	}
-
-	public AdapterFactoryRegistry getAdapterFactoryRegistry() {
-		return AdapterFactoryRegistryImpl.getInstance();
-
-	}
-
-	/**
-	 * Returns the template store for the jsp editor templates.
-	 * 
-	 * @return the template store for the jsp editor templates
-	 */
-	public TemplateStore getTemplateStore() {
-		if (fTemplateStore == null) {
-			fTemplateStore= new ContributionTemplateStore(getTemplateContextRegistry(), getPreferenceStore(), JSPUIPreferenceNames.TEMPLATES_KEY);
-
-			try {
-				fTemplateStore.load();
-			} catch (IOException e) {
-				Logger.logException(e);
-			}
-		}		
-		return fTemplateStore;
-	}
-	
-	/**
-	 * Returns the template context type registry for the jsp plugin.
-	 * 
-	 * @return the template context type registry for the jsp plugin
-	 */
-	public ContextTypeRegistry getTemplateContextRegistry() {
-		if (fContextTypeRegistry == null) {
-			ContributionContextTypeRegistry registry = new ContributionContextTypeRegistry();
-			registry.addContextType(TemplateContextTypeIdsJSP.ALL);
-			registry.addContextType(TemplateContextTypeIdsJSP.NEW);
-			registry.addContextType(TemplateContextTypeIdsJSP.TAG);
-			registry.addContextType(TemplateContextTypeIdsJSP.ATTRIBUTE);
-			registry.addContextType(TemplateContextTypeIdsJSP.ATTRIBUTE_VALUE);
-			
-			fContextTypeRegistry= registry;
-		}
-
-		return fContextTypeRegistry;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPluginResources.properties b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPluginResources.properties
deleted file mode 100644
index 85cfe32..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/JSPUIPluginResources.properties
+++ /dev/null
@@ -1,87 +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
-###############################################################################
-## The following line is a sample JSP document.  Please translate only the following parts:
-## Use below tags ONLY for JSP 1.1
-## Welcome!
-## Use below tags ONLY for JSP 1.2
-## Welcome!
-Sample_JSP_doc=<%@ page \n\tlanguage=\"java\" \n\tcontentType=\"text/html; charset=ISO-8859-1\"\n%>\n<jsp:include flush=\"true\" page=\"titleBar.jsp\"/>\n\n<%-- Use below tags ONLY for JSP 1.1 --%>\n<%\n\tSystem.out.println(\"Welcome!\");\n%>\n<%-- Use below tags ONLY for JSP 1.2 --%>\n<jsp:scriptlet>\n\tSystem.out.println(\"Welcome!\");\n</jsp:scriptlet>
-JSP_Delimiters_UI_=JSP Delimiters
-Refactor_label=Refactor
-RenameElement_label=Rename
-MoveElement_label=Move
-MoveElementWizard=Move the selected elements
-#
-OK=OK
-JSP_changes=JSP changes
-ActionContributorJSP_0=Refa&ctor
-JSPRenameElementAction_0=Editor selection does not resolve to a renamable Java element
-JSPMoveElementAction_0=Editor selection does not resolve to movable Java elements
-BasicRefactorSearchRequestor_0=JSP Rename
-BasicRefactorSearchRequestor_1=in file: {0} line: {1}
-BasicRefactorSearchRequestor_2=Move Type ''{0}'' to package ''{1}''
-BasicRefactorSearchRequestor_3=Rename Method ''{0}'' to ''{1}''
-BasicRefactorSearchRequestor_4=Rename Type ''{0}'' to ''{1}''
-BasicRefactorSearchRequestor_5=Rename Package ''{0}'' to ''{1}''
-BasicRefactorSearchRequestor_6=JSP Rename Change
-#
-_UI_WIZARD_NEW_TITLE = New JavaServer Page
-_UI_WIZARD_NEW_HEADING = JavaServer Page
-_UI_WIZARD_NEW_DESCRIPTION = Create a new JavaServer Page.
-_ERROR_FILENAME_MUST_END_JSP = The file name must end in one of the following extensions {0}. 
-_WARNING_FILE_MUST_BE_INSIDE_JAVA_PROJECT = JavaServer Pages created in projects that do not support Java might not work as expected. 
-_WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT = Files created outside of the Web Content folder will not be included in your deployed Web application. 
-ResourceGroup_nameExists = The same name already exists.
-NewJSPTemplatesWizardPage_0=Select JSP Template
-NewJSPTemplatesWizardPage_1=Select a template as initial content in the JSP page.
-NewJSPTemplatesWizardPage_2=Name
-NewJSPTemplatesWizardPage_3=Description
-NewJSPTemplatesWizardPage_4=Use JSP Template
-NewJSPTemplatesWizardPage_5=Preview
-NewJSPTemplatesWizardPage_6=Templates are 'New JSP' templates found in the <a>JSP Templates</a> preference page.
-# Copied from sse.ui
-CleanupDocument_label=Cleanup Document...
-CleanupDocument_tooltip=Cleanup Document
-CleanupDocument_description=Cleanup Document
-ToggleComment_label=Toggle Comment
-ToggleComment_tooltip=Toggle Comment
-ToggleComment_description=Toggle Comment
-AddBlockComment_label=Add Block Comment
-AddBlockComment_tooltip=Add Block Comment
-AddBlockComment_description=Add Block Comment
-RemoveBlockComment_label=Remove Block Comment
-RemoveBlockComment_tooltip=Remove Block Comment
-RemoveBlockComment_description=Remove Block Comment
-FindOccurrences_label=Occurrences in File
-OccurrencesSearchQuery_0={0} - {1} Occurrences in {2}
-OccurrencesSearchQuery_2=file
-Content_Assist_not_availab_UI_=Content Assist not available at the current location
-Java_Content_Assist_is_not_UI_=Java Content Assist is not available for the current cursor location
-#
-Override_method_in=Override method in '
-Creating_files_encoding=Creating files encoding preference
-#
-JSPSourcePreferencePage_0=JSP Source preferences are based on the content within the JSP.
-JSPSourcePreferencePage_1=See <a>''{0}''</a> for JSP with HTML content.
-JSPSourcePreferencePage_2=See <a>''{0}''</a> for JSP with XML content.
-JSPColorPage_jsp_content=JSP Content
-JSPFilesPreferencePage_0=Validating files
-JSPFilesPreferencePage_1=Validate JSP fragments
-# JSP Fragments
-JSPFContentSettingsPropertyPage_0=none
-JSPFContentSettingsPropertyPage_1=The properties used instead of the page directive that cannot be specified in JSP fragment files.  The project setting is used if you specify "none."
-JSPFContentSettingsPropertyPage_2=Language:
-JSPFContentSettingsPropertyPage_3=Content Type:
-JSPFContentSettingsPropertyPage_4=Enable specific setting:
-ProjectJSPFContentSettingsPropertyPage_0=The properties for J2EE Web projects act as "project" default to be looked up when no properties are specified for a particular JSP fragment file.
-# CSS JSP
-Title_InvalidValue=Invalid Value
-Message_InvalidValue=Invalid property value.
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/Logger.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/Logger.java
deleted file mode 100644
index 7ae423c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/Logger.java
+++ /dev/null
@@ -1,144 +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.ui.internal;
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-/**
- * Small convenience class to log messages to plugin's log file and also, if desired,
- * the console. This class should only be used by classes in this plugin. Other
- * plugins should make their own copy, with appropriate ID.
- */
-public class Logger {
-	private static final String PLUGIN_ID = "org.eclipse.jst.jsp.ui"; //$NON-NLS-1$
-
-	private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
-
-	public static final int OK = IStatus.OK; // 0
-	public static final int INFO = IStatus.INFO; // 1
-	public static final int WARNING = IStatus.WARNING; // 2
-	public static final int ERROR = IStatus.ERROR; // 4
-
-	public static final int OK_DEBUG = 200 + OK;
-	public static final int INFO_DEBUG = 200 + INFO;
-	public static final int WARNING_DEBUG = 200 + WARNING;
-	public static final int ERROR_DEBUG = 200 + ERROR;
-
-	/**
-	 * Adds message to log.
-	 * @param level severity level of the message (OK, INFO, WARNING, ERROR, OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
-	 * @param message text to add to the log
-	 * @param exception exception thrown
-	 */
-	protected static void _log(int level, String message, Throwable exception) {
-		if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
-			if (!isDebugging())
-				return;
-		}
-
-		int severity = IStatus.OK;
-		switch (level) {
-			case INFO_DEBUG :
-			case INFO :
-				severity = IStatus.INFO;
-				break;
-			case WARNING_DEBUG :
-			case WARNING :
-				severity = IStatus.WARNING;
-				break;
-			case ERROR_DEBUG :
-			case ERROR :
-				severity = IStatus.ERROR;
-		}
-		message = (message != null) ? message : "null"; //$NON-NLS-1$
-		Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		if (bundle != null) 
-			Platform.getLog(bundle).log(statusObj);
-	}
-
-	/**
-	 * Prints message to log if category matches /debug/tracefilter option.
-	 * @param message text to print
-	 * @param category category of the message, to be compared with /debug/tracefilter
-	 */
-	protected static void _trace(String category, String message, Throwable exception) {
-		if (isTracing(category)) {
-			message = (message != null) ? message : "null"; //$NON-NLS-1$
-			Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
-			Bundle bundle = Platform.getBundle(PLUGIN_ID);
-			if (bundle != null) 
-				Platform.getLog(bundle).log(statusObj);
-		}
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-
-	/**
-	 * Determines if currently tracing a category
-	 * @param category
-	 * @return true if tracing category, false otherwise
-	 */
-	public static boolean isTracing(String category) {
-		if (!isDebugging())
-			return false;
-
-		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
-		if (traceFilter != null) {
-			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				String cat = tokenizer.nextToken().trim();
-				if (category.equals(cat)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static void log(int level, String message) {
-		_log(level, message, null);
-	}
-
-	public static void log(int level, String message, Throwable exception) {
-		_log(level, message, exception);
-	}
-
-	public static void logException(String message, Throwable exception) {
-		_log(ERROR, message, exception);
-	}
-
-	public static void logException(Throwable exception) {
-		_log(ERROR, exception.getMessage(), exception);
-	}
-
-	public static void traceException(String category, String message, Throwable exception) {
-		_trace(category, message, exception);
-	}
-
-	public static void traceException(String category, Throwable exception) {
-		_trace(category, exception.getMessage(), exception);
-	}
-
-	public static void trace(String category, String message) {
-		_trace(category, message, null);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/autoedit/AutoEditStrategyForTabs.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/autoedit/AutoEditStrategyForTabs.java
deleted file mode 100644
index 8379c9e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/autoedit/AutoEditStrategyForTabs.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.ui.internal.autoedit;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.ConfigurableLineTracker;
-import org.eclipse.jface.text.DocumentCommand;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ILineTracker;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorExtension3;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-
-/**
- * AutoEditStrategy to handle characters inserted when Tab key is pressed
- */
-public class AutoEditStrategyForTabs implements IAutoEditStrategy {
-	private final String TAB_CHARACTER = "\t"; //$NON-NLS-1$
-
-	public void customizeDocumentCommand(IDocument document, DocumentCommand command) {
-		// if not in smart insert mode just ignore
-		if (!isSmartInsertMode())
-			return;
-
-		// spaces for tab character
-		if (command.length == 0 && command.text != null && command.text.length() > 0 && command.text.indexOf(TAB_CHARACTER) != -1)
-			smartInsertForTab(command, document);
-	}
-
-	/**
-	 * Insert spaces for tabs
-	 * 
-	 * @param command
-	 */
-	private void smartInsertForTab(DocumentCommand command, IDocument document) {
-		// tab key was pressed. now check preferences to see if need to insert
-		// spaces instead of tab
-		int indentationWidth = getIndentationWidth();
-		if (indentationWidth > -1) {
-			String originalText = command.text;
-			StringBuffer newText = new StringBuffer(originalText);
-
-			// determine where in line this command begins
-			int lineOffset = -1;
-			try {
-				IRegion lineInfo = document.getLineInformationOfOffset(command.offset);
-				lineOffset = command.offset - lineInfo.getOffset();
-			} catch (BadLocationException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-
-			ILineTracker lineTracker = getLineTracker(document, originalText);
-
-			int startIndex = 0;
-			int index = newText.indexOf(TAB_CHARACTER);
-			while (index != -1) {
-				String indent = getIndentString(indentationWidth, lineOffset, lineTracker, index);
-
-				// replace \t character with spaces
-				newText.replace(index, index + 1, indent);
-				if (lineTracker != null) {
-					try {
-						lineTracker.replace(index, 1, indent);
-					} catch (BadLocationException e) {
-						// if something goes wrong with replacing text, just
-						// reset to current string
-						lineTracker.set(newText.toString());
-						Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-					}
-				}
-
-				startIndex = index + indent.length();
-				index = newText.indexOf(TAB_CHARACTER, startIndex);
-			}
-			command.text = newText.toString();
-		}
-	}
-
-	/**
-	 * Calculate number of spaces for next tab stop
-	 */
-	private String getIndentString(int indentationWidth, int lineOffset, ILineTracker lineTracker, int index) {
-		int indentSize = indentationWidth;
-		int offsetInLine = -1;
-		if (lineTracker != null) {
-			try {
-				IRegion lineInfo = lineTracker.getLineInformationOfOffset(index);
-				if (lineInfo.getOffset() == 0 && lineOffset > -1)
-					offsetInLine = lineOffset + index;
-				else
-					offsetInLine = index - lineInfo.getOffset();
-			} catch (BadLocationException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		} else {
-			if (lineOffset > -1) {
-				offsetInLine = lineOffset + index;
-			}
-		}
-		if (offsetInLine > -1 && indentationWidth > 0) {
-			int remainder = offsetInLine % indentationWidth;
-			indentSize = indentationWidth - remainder;
-		}
-
-		StringBuffer indent = new StringBuffer();
-		for (int i = 0; i < indentSize; i++)
-			indent.append(' ');
-		return indent.toString();
-	}
-
-	/**
-	 * Set up a line tracker for text within command if text is multi-line
-	 */
-	private ILineTracker getLineTracker(IDocument document, String originalText) {
-		ConfigurableLineTracker lineTracker = null;
-		int[] delims = TextUtilities.indexOf(document.getLegalLineDelimiters(), originalText, 0);
-		if (delims[0] != -1 || delims[1] != -1) {
-			lineTracker = new ConfigurableLineTracker(document.getLegalLineDelimiters());
-			lineTracker.set(originalText);
-		}
-		return lineTracker;
-	}
-
-	/**
-	 * Return true if active editor is in smart insert mode, false otherwise
-	 * 
-	 * @return
-	 */
-	private boolean isSmartInsertMode() {
-		boolean isSmartInsertMode = false;
-
-		ITextEditor textEditor = null;
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				IEditorPart editor = page.getActiveEditor();
-				if (editor != null) {
-					if (editor instanceof ITextEditor)
-						textEditor = (ITextEditor) editor;
-					else
-						textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
-				}
-			}
-		}
-
-		// check if smart insert mode
-		if (textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT)
-			isSmartInsertMode = true;
-		return isSmartInsertMode;
-	}
-
-	/**
-	 * Returns indentation width if using spaces for indentation, -1 otherwise
-	 * 
-	 * @return
-	 */
-	private int getIndentationWidth() {
-		int width = -1;
-
-		Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
-		if (HTMLCorePreferenceNames.SPACE.equals(preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR)))
-			width = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
-
-		return width;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/autoedit/StructuredAutoEditStrategyJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/autoedit/StructuredAutoEditStrategyJSP.java
deleted file mode 100644
index 26688c6..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/autoedit/StructuredAutoEditStrategyJSP.java
+++ /dev/null
@@ -1,104 +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.ui.internal.autoedit;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentCommand;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorExtension3;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-public class StructuredAutoEditStrategyJSP implements IAutoEditStrategy {
-	public void customizeDocumentCommand(IDocument document, DocumentCommand command) {
-		Object textEditor = getActiveTextEditor();
-		if (!(textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT))
-			return;
-
-		IStructuredModel model = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-
-			if (model != null) {
-				if (command.text != null) {
-					if (command.text.equals("%")) { //$NON-NLS-1$
-						// scriptlet - add end %>
-						IDOMNode node = (IDOMNode) model.getIndexedRegion(command.offset);
-						if (prefixedWith(document, command.offset, "<") && !node.getSource().endsWith("%>")) { //$NON-NLS-1$ //$NON-NLS-2$
-							command.text += " %>"; //$NON-NLS-1$
-							command.shiftsCaret = false;
-							command.caretOffset = command.offset + 1;
-							command.doit = false;
-						}
-					}
-					if (command.text.equals("{")) { //$NON-NLS-1$
-						IDOMNode node = (IDOMNode) model.getIndexedRegion(command.offset);
-						if ((prefixedWith(document, command.offset, "$") || prefixedWith(document, command.offset, "#")) && //$NON-NLS-1$ //$NON-NLS-2$
-									!node.getSource().endsWith("}")) { //$NON-NLS-1$ //$NON-NLS-2$
-							command.text += " }"; //$NON-NLS-1$
-							command.shiftsCaret = false;
-							command.caretOffset = command.offset + 1;
-							command.doit = false;
-						}
-					}
-				}
-			}
-		}
-		finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-	}
-
-	/**
-	 * Return the active text editor if possible, otherwise the active editor
-	 * part.
-	 * 
-	 * @return
-	 */
-	private Object getActiveTextEditor() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				IEditorPart editor = page.getActiveEditor();
-				if (editor != null) {
-					if (editor instanceof ITextEditor)
-						return editor;
-					ITextEditor textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
-					if (textEditor != null)
-						return textEditor;
-					return editor;
-				}
-			}
-		}
-		return null;
-	}
-
-	private boolean prefixedWith(IDocument document, int offset, String string) {
-
-		try {
-			return document.getLength() >= string.length() && document.get(offset - string.length(), string.length()).equals(string);
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-			return false;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/AbstractBreakpointProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/AbstractBreakpointProvider.java
deleted file mode 100644
index f074770..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/AbstractBreakpointProvider.java
+++ /dev/null
@@ -1,268 +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.ui.internal.breakpointproviders;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.provisional.IDOMSourceEditingTextTools;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Abstract breakpoint provider class which implements breakpoint provider
- * interface.
- * 
- * This is a temporary class for JavaBreakpointProvider and
- * JavaScriptBreakpointProvider, and should be refactored to separate Java and
- * JavaScript parts.
- */
-public abstract class AbstractBreakpointProvider implements IBreakpointProvider {
-
-	protected static final int END_OF_LINE = -1;
-	protected static final int JAVA = 1;
-	protected static final int JAVASCRIPT = 2;
-	private static final String[] JAVASCRIPT_LANGUAGE_KEYS = new String[]{"javascript", "javascript1.0", "javascript1.1_3", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				"javascript1.2", "javascript1.3", "javascript1.4", "javascript1.5", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				"javascript1.6", "jscript", "sashscript"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	private static final String JSP_DIRECTIVE_PAGE = "jsp:directive.page"; //$NON-NLS-1$
-
-	protected static final int NO_VALID_CONTENT = -2;
-	protected static final int UNSUPPORTED = 0;
-
-	protected static boolean contains(String[] haystack, String needle) {
-		for (int i = 0; i < haystack.length; i++) {
-			if (haystack[i].equals(needle)) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * Return the page language
-	 */
-	protected static int getPageLanguage(Document doc) {
-		if (doc == null)
-			return UNSUPPORTED;
-
-		NodeList pageDirectives = doc.getElementsByTagName(JSP_DIRECTIVE_PAGE);
-		// Search for first language directive
-		for (int i = 0; i < pageDirectives.getLength(); i++) {
-			Node child = pageDirectives.item(i);
-			Node languageAttr = child.getAttributes().getNamedItem("language"); //$NON-NLS-1$
-			if (languageAttr != null) {
-				String pageLanguage = languageAttr.getNodeValue();
-				if (pageLanguage == null || pageLanguage.length() == 0)
-					return UNSUPPORTED;
-				pageLanguage = pageLanguage.toLowerCase();
-				if (contains(JAVASCRIPT_LANGUAGE_KEYS, pageLanguage))
-					return JAVASCRIPT;
-				else if (pageLanguage.equals("java"))//$NON-NLS-1$
-					return JAVA;
-				else
-					return UNSUPPORTED;
-			}
-		}
-		return JAVA; // Java is default if no language directive
-	}
-
-	/*
-	 * Search the RegionContainer's regions looking for JSP content. If valid
-	 * content is found, return the position >= 0 If no valid content is
-	 * found, return NO_VALID_CONTENT. If a region starts after the line's
-	 * endOffset, return END_OF_LINE.
-	 */
-	private static int getValidRegionPosition(IStructuredModel model, ITextRegionCollection regionContainer, int startOffset, int endOffset) {
-
-		ITextRegionList regions = regionContainer.getRegions();
-		for (int i = 0; i < regions.size(); i++) {
-			ITextRegion region = regions.get(i);
-			if (region instanceof ITextRegionCollection) {
-				int validPosition = getValidRegionPosition(model, (ITextRegionCollection) region, startOffset, endOffset);
-				if (validPosition == END_OF_LINE || validPosition >= 0)
-					return validPosition;
-			}
-			else {
-				// region must be at least partially on selected line
-				if (regionContainer.getEndOffset(region) > startOffset) {
-
-					int regionStartOffset = regionContainer.getStartOffset(region);
-					// if region starts after line's endOffset, we're done
-					// searching
-					if (regionStartOffset > endOffset)
-						return END_OF_LINE;
-
-					// If region is JSP content, make sure the language is
-					// Java not Javascript by
-					// checking the content assist adapter's type.
-					if (region.getType().equals(DOMJSPRegionContexts.JSP_CONTENT)) {
-						// DWM: this logic is not incorrect ... given changes
-						// to adapters, etc.
-						// but probably don't need anything here, since both
-						// Java and JavaScript
-						// are supported in V5.
-
-						// nsd_TODO: verify this!!!
-
-						// INodeNotifier notifier =
-						// (INodeNotifier)model.getNode(region.getStartOffset());
-						// IAdapterFactory factory =
-						// model.getFactoryRegistry().getFactoryFor(ContentAssistAdapter.class);
-						// if(factory instanceof
-						// HTMLContentAssistAdapterFactory) {
-						// INodeAdapter adapter =
-						// ((HTMLContentAssistAdapterFactory)factory).createAdapter(notifier,
-						// region);
-						// if(adapter != null && adapter instanceof
-						// JSPJavaContentAssistAdapter)
-
-						if (regionStartOffset > startOffset)
-							return regionStartOffset;
-						else
-							return startOffset;
-						// }
-					}
-					// a custom tag, jsp:useBean, getproperty or setproperty
-					// statement is also a valid breakpoint location
-					else if (region.getType().equals(DOMRegionContext.XML_TAG_NAME) && (isCustomTagRegion(model.getIndexedRegion(regionStartOffset)) || regionContainer.getText(region).equals(JSP12Namespace.ElementName.USEBEAN) || regionContainer.getText(region).equals(JSP12Namespace.ElementName.GETPROPERTY) || regionContainer.getText(region).equals(JSP12Namespace.ElementName.SETPROPERTY))) {
-
-						if (regionStartOffset > startOffset)
-							return regionStartOffset;
-						else
-							return startOffset;
-					}
-					else {
-						// Defect #241090, the Text Nodes inside of JSP
-						// scriptlets, expressions, and declarations are valid
-						// breakpoint-able locations
-						boolean isCodeNode = false;
-						IndexedRegion node = model.getIndexedRegion(regionStartOffset);
-						if (node != null && node instanceof Node) {
-							Node domNode = (Node) node;
-							Node root = domNode.getOwnerDocument().getDocumentElement();
-							if (root != null && root.getNodeName().equals(JSP12Namespace.ElementName.ROOT) && domNode.getNodeType() == Node.TEXT_NODE && domNode.getParentNode() != null) {
-								String parentName = domNode.getParentNode().getNodeName();
-								isCodeNode = parentName.equals(JSP12Namespace.ElementName.SCRIPTLET) || parentName.equals(JSP12Namespace.ElementName.EXPRESSION) || parentName.equals(JSP12Namespace.ElementName.DECLARATION);
-							}
-						}
-						if (isCodeNode) {
-							if (regionStartOffset > startOffset)
-								return regionStartOffset;
-							else
-								return startOffset;
-						}
-					}
-				}
-			}
-		}
-		return NO_VALID_CONTENT;
-	}
-
-	private static boolean isCustomTagRegion(IndexedRegion node) {
-
-		if (node instanceof Element) {
-			Element xmlElement = (Element) node;
-			ModelQuery mq = ModelQueryUtil.getModelQuery(xmlElement.getOwnerDocument());
-			CMElementDeclaration decl = mq.getCMElementDeclaration(xmlElement);
-			if (decl instanceof CMNodeWrapper) {
-				CMNode cmNode = ((CMNodeWrapper) decl).getOriginNode();
-				return cmNode instanceof TLDElementDeclaration;
-			}
-		}
-		return false;
-	}
-
-	private ISourceEditingTextTools fSourceEditingTextTools;
-
-
-	protected IResource getEditorInputResource(IEditorInput input) {
-		IResource resource = (IResource) input.getAdapter(IFile.class);
-		if (resource == null) {
-			resource = (IResource) input.getAdapter(IResource.class);
-		}
-		return resource;
-	}
-
-	public ISourceEditingTextTools getSourceEditingTextTools() {
-		return fSourceEditingTextTools;
-	}
-
-	protected int getValidPosition(IDocument idoc, int lineNumber) {
-		if (!(getSourceEditingTextTools() instanceof IDOMSourceEditingTextTools)) {
-			return NO_VALID_CONTENT;
-		}
-		if (idoc == null)
-			return NO_VALID_CONTENT;
-
-		int startOffset, endOffset;
-		try {
-			startOffset = idoc.getLineOffset(lineNumber - 1);
-			endOffset = idoc.getLineOffset(lineNumber) - 1;
-
-			if (idoc == null)
-				return NO_VALID_CONTENT;
-			String lineText = idoc.get(startOffset, endOffset - startOffset).trim();
-
-			// blank lines or lines with only an open or close brace or
-			// scriptlet tag cannot have a breakpoint
-			if (lineText.equals("") || lineText.equals("{") || //$NON-NLS-2$//$NON-NLS-1$
-						lineText.equals("}") || lineText.equals("<%"))//$NON-NLS-2$//$NON-NLS-1$
-				return NO_VALID_CONTENT;
-		}
-		catch (BadLocationException e) {
-			return NO_VALID_CONTENT;
-		}
-
-		IStructuredDocumentRegion flatNode = ((IStructuredDocument) idoc).getRegionAtCharacterOffset(startOffset);
-		// go through the node's regions looking for JSP content
-		// until reaching the end of the line
-		while (flatNode != null) {
-			int validPosition = getValidRegionPosition(((IDOMDocument) ((IDOMSourceEditingTextTools) getSourceEditingTextTools()).getDOMDocument()).getModel(), flatNode, startOffset, endOffset);
-
-			if (validPosition == END_OF_LINE)
-				return NO_VALID_CONTENT;
-
-			if (validPosition >= 0)
-				return validPosition;
-
-			flatNode = flatNode.getNext();
-		}
-		return NO_VALID_CONTENT;
-	}
-
-	public void setSourceEditingTextTools(ISourceEditingTextTools sourceEditingTextTools) {
-		fSourceEditingTextTools = sourceEditingTextTools;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaBreakpointProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaBreakpointProvider.java
deleted file mode 100644
index f436070..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaBreakpointProvider.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.breakpointproviders;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.debug.core.JDIDebugModel;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.xml.ui.internal.provisional.IDOMSourceEditingTextTools;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * A BreakpointProvider supporting server-side Java as a JSP language
- * 
- * @deprecated
- */
-public class JavaBreakpointProvider extends AbstractBreakpointProvider {
-
-	/*
-	 * @param res @return String
-	 */
-	private static final String getTypeName(IResource res) {
-		IPath path = res.getFullPath();
-		// Assume under Web Content folder if more than 2 segments
-		if (path.segmentCount() > 2) {
-			path = path.removeFirstSegments(2);
-		}
-		else {
-			path = path.removeFirstSegments(1);
-		}
-		String typeName = path.toString().replace(IPath.SEPARATOR, '.');
-		if (res.getFileExtension() != null) {
-			typeName = typeName.substring(0, typeName.lastIndexOf('.'));
-		}
-		return typeName;
-	}
-
-
-
-	public IStatus addBreakpoint(IDocument document, IEditorInput input, int lineNumber, int offset) throws CoreException {
-		int pos = getValidPosition(document, lineNumber);
-		if (pos != NO_VALID_CONTENT) {
-			IResource res = getEditorInputResource(input);
-			if (res != null) {
-				String typeName = getTypeName(res);
-				try {
-					JDIDebugModel.createLineBreakpoint(res, typeName, lineNumber, pos, pos, 0, true, null);
-				}
-				catch (CoreException e) {
-					return e.getStatus();
-				}
-			}
-		}
-		return new Status(IStatus.OK, JSPUIPlugin.ID, IStatus.OK, JSPUIMessages.OK, null); //$NON-NLS-1$
-	}
-
-	public boolean canAddBreakpoint(IDocument document, IEditorInput input, Node node, int lineNumber, int offset) {
-		IResource res = input instanceof IFileEditorInput ? ((IFileEditorInput) input).getFile() : null;
-		Document doc = null;
-		if (getSourceEditingTextTools() instanceof IDOMSourceEditingTextTools) {
-			doc = ((IDOMSourceEditingTextTools) getSourceEditingTextTools()).getDOMDocument();
-		}
-
-		return res != null && !isBreakpointExist(res, lineNumber) && isValidPosition(document, lineNumber) && (getPageLanguage(doc) == JAVA);
-	}
-
-	public IResource getResource(IEditorInput input) {
-		return getEditorInputResource(input);
-	}
-
-	/*
-	 * @param res @param lineNumber @return boolean
-	 */
-	private boolean isBreakpointExist(IResource res, int lineNumber) {
-		try {
-			return JDIDebugModel.lineBreakpointExists(getTypeName(res), lineNumber) != null;
-		}
-		catch (CoreException e) {
-			return false;
-		}
-	}
-
-	/*
-	 * @param doc @param idoc @param lineNumber @return boolean
-	 */
-	private boolean isValidPosition(IDocument idoc, int lineNumber) {
-		return getValidPosition(idoc, lineNumber) != NO_VALID_CONTENT;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaScriptBreakpointProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaScriptBreakpointProvider.java
deleted file mode 100644
index d32295c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaScriptBreakpointProvider.java
+++ /dev/null
@@ -1,81 +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.ui.internal.breakpointproviders;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.ui.IEditorInput;
-import org.w3c.dom.Document;
-
-/**
- * A IBreakpointProvider supporting server-side JavaScript as a JSP language
- * 
- */
-public class JavaScriptBreakpointProvider extends AbstractBreakpointProvider {
-	public boolean canAddBreakpoint(IDocument document, IEditorInput input, int lineNumber, int offset) {
-		IResource res = getEditorInputResource(input);
-		Document doc = null;
-		return res != null && !isBreakpointExist(res, lineNumber) && isValidPosition(document, lineNumber) && (getPageLanguage(doc) != JAVA);
-	}
-
-
-	public IStatus addBreakpoint(IDocument document, IEditorInput input, int lineNumber, int offset) {
-		int pos = getValidPosition(document, lineNumber);
-		if (pos != NO_VALID_CONTENT && canAddBreakpoint(document, input, lineNumber, offset)) {
-			IResource res = getEditorInputResource(input);
-			if (res != null) {
-				new JavascriptLineBreakpoint(res, lineNumber, pos, pos);
-			}
-		}
-		return new Status(IStatus.OK, JSPUIPlugin.ID, IStatus.OK, JSPUIMessages.OK, null); //$NON-NLS-1$
-	}
-
-	/*
-	 * @param res @param lineNumber @return boolean
-	 */
-	private boolean isBreakpointExist(IResource res, int lineNumber) {
-		IBreakpointManager manager = DebugPlugin.getDefault().getBreakpointManager();
-		IBreakpoint[] breakpoints = manager.getBreakpoints();
-		for (int i = 0; i < breakpoints.length; i++) {
-			if (!(breakpoints[i] instanceof JavascriptLineBreakpoint))
-				continue;
-			JavascriptLineBreakpoint breakpoint = (JavascriptLineBreakpoint) breakpoints[i];
-			try {
-				if (breakpoint.getResource().equals(res) && breakpoint.getLineNumber() == lineNumber) {
-					return true;
-				}
-			}
-			catch (CoreException e) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * @param doc @param idoc @param lineNumber @return boolean
-	 */
-	private boolean isValidPosition(IDocument idoc, int lineNumber) {
-		return getValidPosition(idoc, lineNumber) != NO_VALID_CONTENT;
-	}
-
-	public IResource getResource(IEditorInput input) {
-		return getEditorInputResource(input);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaStratumBreakpointProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaStratumBreakpointProvider.java
deleted file mode 100644
index 789a2d7..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavaStratumBreakpointProvider.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.breakpointproviders;
-
-import java.util.HashMap;
-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.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.jdt.debug.core.JDIDebugModel;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.wst.sse.ui.internal.StructuredResourceMarkerAnnotationModel;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider;
-
-/**
- * A IBreakpointProvider supporting JSP breakpoints for a Non-Java Language
- * Source JSP page
- */
-public class JavaStratumBreakpointProvider implements IBreakpointProvider, IExecutableExtension {
-	private static final String DEFAULT_CLASS_PATTERN = "*jsp,jsp_servlet._*";
-	private Object fData = null;
-
-	public IStatus addBreakpoint(IDocument document, IEditorInput input, int editorLineNumber, int offset) throws CoreException {
-		// check if there is a valid position to set breakpoint
-		int pos = getValidPosition(document, editorLineNumber);
-		IStatus status = null;
-		if (pos >= 0) {
-			IResource res = getResourceFromInput(input);
-			if (res != null) {
-				String path = null;
-				IBreakpoint point = JDIDebugModel.createStratumBreakpoint(res, "JSP", res.getName(), path, getClassPattern(res), editorLineNumber, pos, pos, 0, true, null); //$NON-NLS-1$
-				if (point == null) {
-					status = new Status(IStatus.ERROR, JSPUIPlugin.ID, IStatus.ERROR, "unsupported input type", null); //$NON-NLS-1$
-				}
-			}
-			else if (input instanceof IStorageEditorInput) {
-				// For non-resources, use the workspace root and a coordinated
-				// attribute that is used to
-				// prevent unwanted (breakpoint) markers from being loaded
-				// into the editors.
-				res = ResourcesPlugin.getWorkspace().getRoot();
-				String id = input.getName();
-				if (input instanceof IStorageEditorInput && ((IStorageEditorInput) input).getStorage() != null && ((IStorageEditorInput) input).getStorage().getFullPath() != null) {
-					id = ((IStorageEditorInput) input).getStorage().getFullPath().toString();
-				}
-				Map attributes = new HashMap();
-				attributes.put(StructuredResourceMarkerAnnotationModel.SECONDARY_ID_KEY, id);
-				String path = null;
-				IBreakpoint point = JDIDebugModel.createStratumBreakpoint(res, "JSP", input.getName(), path, getClassPattern(res), editorLineNumber, pos, pos, 0, true, attributes); //$NON-NLS-1$
-				if (point == null) {
-					status = new Status(IStatus.ERROR, JSPUIPlugin.ID, IStatus.ERROR, "unsupported input type", null); //$NON-NLS-1$
-				}
-			}
-		}
-		else {
-			status = new Status(IStatus.INFO, JSPUIPlugin.ID, IStatus.INFO, "", null); //$NON-NLS-1$
-		}
-		if (status == null) {
-			status = new Status(IStatus.OK, JSPUIPlugin.ID, IStatus.OK, JSPUIMessages.OK, null);
-		}
-		return status;
-	}
-
-	private String getClassPattern(IResource resource) {
-		if (resource != null) {
-			String shortName = resource.getName();
-			String extension = resource.getFileExtension();
-			if (extension != null && extension.length() < shortName.length()) {
-				shortName = shortName.substring(0, shortName.length() - extension.length() - 1);
-			}
-			if (fData instanceof String && fData.toString().length() > 0) {
-				/*
-				 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=154475
-				 */
-				return fData + ",_" + shortName;
-			}
-			else if (fData instanceof Map && resource.isAccessible() && resource.getType() == IResource.FILE) {
-				IContentType[] types = Platform.getContentTypeManager().findContentTypesFor(resource.getName());
-				if (types.length == 0) {
-					// if failed to find quickly, be more aggressive
-					IContentDescription d = null;
-					try {
-						// optimized description lookup, might not succeed
-						d = ((IFile) resource).getContentDescription();
-						if (d != null) {
-							types = new IContentType[]{d.getContentType()};
-						}
-					}
-					catch (CoreException e) {
-						/*
-						 * should not be possible given the accessible and
-						 * file type check above
-						 */
-					}
-				}
-				// wasn't found earlier
-				if (types == null) {
-					types = Platform.getContentTypeManager().findContentTypesFor(resource.getName());
-				}
-				StringBuffer patternBuffer = new StringBuffer("_" + shortName);
-				for (int i = 0; i < types.length; i++) {
-					Object pattern = ((Map) fData).get(types[i].getId());
-					if (pattern != null) {
-						patternBuffer.append(","); //$NON-NLS-1$
-						patternBuffer.append(pattern);
-					}
-				}
-				return patternBuffer.toString();
-			}
-		}
-		return DEFAULT_CLASS_PATTERN;
-	}
-
-	public IResource getResource(IEditorInput input) {
-		return getResourceFromInput(input);
-	}
-
-	private IResource getResourceFromInput(IEditorInput input) {
-		IResource resource = (IResource) input.getAdapter(IFile.class);
-		if (resource == null) {
-			resource = (IResource) input.getAdapter(IResource.class);
-		}
-		return resource;
-	}
-
-	/**
-	 * Finds a valid position somewhere on lineNumber in document, idoc, where
-	 * a breakpoint can be set and returns that position. -1 is returned if a
-	 * position could not be found.
-	 * 
-	 * @param idoc
-	 * @param editorLineNumber
-	 * @return position to set breakpoint or -1 if no position could be found
-	 */
-	private int getValidPosition(IDocument idoc, int editorLineNumber) {
-		int result = -1;
-		if (idoc != null) {
-
-			int startOffset = 0;
-			int endOffset = 0;
-			try {
-				IRegion line = idoc.getLineInformation(editorLineNumber - 1);
-				startOffset = line.getOffset();
-				endOffset = Math.max(line.getOffset(), line.getOffset() + line.getLength());
-
-				String lineText = idoc.get(startOffset, endOffset - startOffset).trim();
-
-				// blank lines or lines with only an open or close brace or
-				// scriptlet tag cannot have a breakpoint
-				if (lineText.equals("") || lineText.equals("{") || //$NON-NLS-1$ //$NON-NLS-2$
-							lineText.equals("}") || lineText.equals("<%")) //$NON-NLS-1$ //$NON-NLS-2$
-				{
-					result = -1;
-				}
-				else {
-					// get all partitions for current line
-					ITypedRegion[] partitions = null;
-
-					partitions = idoc.computePartitioning(startOffset, endOffset - startOffset);
-
-
-					for (int i = 0; i < partitions.length; ++i) {
-						String type = partitions[i].getType();
-						// if found jsp java content, jsp directive tags,
-						// custom
-						// tags,
-						// return that position
-						if (type == IJSPPartitions.JSP_CONTENT_JAVA || type == IJSPPartitions.JSP_DIRECTIVE) {
-							result = partitions[i].getOffset();
-						}
-					}
-				}
-			}
-			catch (BadLocationException e) {
-				result = -1;
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
-	 *      java.lang.String, java.lang.Object)
-	 */
-	public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
-		fData = data;
-	}
-
-	public void setSourceEditingTextTools(ISourceEditingTextTools tools) {
-		// not used
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavascriptLineBreakpoint.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavascriptLineBreakpoint.java
deleted file mode 100644
index 68580d9..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/breakpointproviders/JavascriptLineBreakpoint.java
+++ /dev/null
@@ -1,64 +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
- *******************************************************************************/
-/*
- * Created on Jul 20, 2003
- *
- * To change the template for this generated file go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-package org.eclipse.jst.jsp.ui.internal.breakpointproviders;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * @author davidw
- * 
- * To change the template for this generated type comment go to
- * Window>Preferences>Java>Code Generation>Code and Comments
- */
-public class JavascriptLineBreakpoint {
-
-	/**
-	 * @param res
-	 * @param lineNumber
-	 * @param pos
-	 * @param pos1
-	 */
-	public JavascriptLineBreakpoint(IResource res, int lineNumber, int pos, int pos1) {
-
-		// TODO Should be deleted? Along with calling class?
-	}
-
-	/**
-	 * 
-	 */
-	public JavascriptLineBreakpoint() {
-		super();
-	}
-
-	/**
-	 * 
-	 */
-	public IResource getResource() throws CoreException {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 * @return
-	 */
-	public int getLineNumber() {
-		// TODO Auto-generated method stub
-		return 0;
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/AutoImportProposal.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/AutoImportProposal.java
deleted file mode 100644
index a4d8c14..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/AutoImportProposal.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class AutoImportProposal extends JSPCompletionProposal {
-	
-	// the import string, no quotes or colons
-	String fImportDeclaration;
-	
-	public AutoImportProposal(String importDeclaration, String replacementString, int replacementOffset, int replacementLength, int cursorPosition, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo, int relevance, boolean updateReplacementLengthOnValidate) {
-		super(replacementString, replacementOffset, replacementLength, cursorPosition, image, displayString, contextInformation, additionalProposalInfo, relevance, updateReplacementLengthOnValidate);
-		setImportDeclaration(importDeclaration);
-	}
-	
-	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-		super.apply(viewer, trigger, stateMask, offset);
-		addImportDeclaration(viewer);
-	}
-	/**
-	 * adds the import declaration to the document in the viewer in the appropriate position
-	 * @param viewer
-	 */
-	private void addImportDeclaration(ITextViewer viewer) {
-		
-		IDocument doc = viewer.getDocument();
-		
-		// calculate once and pass along
-		boolean isXml = isXmlFormat(doc);
-		
-		int insertPosition = getInsertPosition(doc, isXml);
-		String insertText = createImportDeclaration(doc, isXml);
-		InsertEdit insert = new InsertEdit(insertPosition, insertText);
-		try {
-			insert.apply(doc);
-		}
-		catch (MalformedTreeException e) {
-			Logger.logException(e);
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-		
-		// make sure the cursor position after is correct
-		setCursorPosition(getCursorPosition() + insertText.length());
-	}
-	/**
-	 * 
-	 * @param doc
-	 * @param isXml
-	 * @return position after <jsp:root> if xml, otherwise right before the document element
-	 */
-	private int getInsertPosition(IDocument doc, boolean isXml) {
-		int pos = 0;
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(doc);
-		try {
-			if(sModel != null) {
-				if(sModel instanceof IDOMModel) {
-					IDOMDocument documentNode = ((IDOMModel)sModel).getDocument();
-					Node docElement = documentNode.getDocumentElement();
-					if(docElement != null && docElement instanceof IDOMElement) {
-						IStructuredDocumentRegion sdRegion = ((IDOMElement)docElement).getFirstStructuredDocumentRegion();
-						if(isXml) {
-							// insert right after document element
-							pos = sdRegion.getEndOffset();
-						}
-						else {
-							// insert before document element
-							pos = sdRegion.getStartOffset();
-						}
-					}
-				}
-			}
-		}
-		finally {
-			if(sModel != null)
-				sModel.releaseFromRead();
-		}
-		return pos;
-	}
-	/**
-	 * 
-	 * @param doc
-	 * @return true if this document is xml-jsp syntax, otherwise false
-	 */
-	private boolean isXmlFormat(IDocument doc) {
-		boolean isXml = false;
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(doc);
-		try {
-			if(sModel != null) {
-				if(!isXml) {
-					if(sModel instanceof IDOMModel) {
-						IDOMDocument documentNode = ((IDOMModel)sModel).getDocument();
-						Element docElement = documentNode.getDocumentElement();
-						isXml = docElement != null && ((docElement.getNodeName().equals("jsp:root")) || ((((IDOMNode) docElement).getStartStructuredDocumentRegion() == null && ((IDOMNode) docElement).getEndStructuredDocumentRegion() == null))); //$NON-NLS-1$
-					}
-				}				
-			}
-		}
-		finally {
-			if(sModel != null)
-				sModel.releaseFromRead();
-		}
-		return isXml;
-	}
-	/**
-	 * 
-	 * @param doc
-	 * @param isXml
-	 * @return appropriate import declaration string depending if document is xml or not
-	 */
-	private String createImportDeclaration(IDocument doc, boolean isXml) {
-		String delim = (doc instanceof IStructuredDocument) ? ((IStructuredDocument)doc).getLineDelimiter() : TextUtilities.getDefaultLineDelimiter(doc);
-		if(isXml)
-			return delim + "<jsp:directive.page import=\""+getImportDeclaration()+"\"/>"; //$NON-NLS-1$ //$NON-NLS-2$
-		return "<%@page import=\"" + getImportDeclaration() + "\"%>" + delim; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	public String getImportDeclaration() {
-		return fImportDeclaration;
-	}
-	public void setImportDeclaration(String importDeclaration) {
-		fImportDeclaration = importDeclaration;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/BeanInfoProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/BeanInfoProvider.java
deleted file mode 100644
index 63ded69..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/BeanInfoProvider.java
+++ /dev/null
@@ -1,442 +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.ui.internal.contentassist;
-
-import java.beans.Introspector;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.jdt.core.Flags;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.ITypeHierarchy;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-
-/**
- * Navigates the IJavaProject classpath (incl. source) on a given resource and infers bean properties
- * given a fully qualified beanname. Bean properties can be retrieved using:
- * <code>getRuntimeProperties(IResource baseResource, String typeName)</code>
- * 
- * @plannedfor 1.0
- */
-public class BeanInfoProvider implements IBeanInfoProvider {
-
-	public class JavaPropertyDescriptor implements IJavaPropertyDescriptor {
-		String fType = null;
-		String fName = null;
-		boolean fReadable = true;
-		boolean fWritable = true;
-
-		public JavaPropertyDescriptor(String name, String type, boolean readable, boolean writable) {
-			fName = name;
-			fType = type;
-			fReadable = readable;
-			fWritable = writable;
-		}
-
-		public String getDeclaredType() {
-			return fType;
-		}
-
-		public String getDisplayName() {
-			return fName;
-		}
-
-		public String getName() {
-			return fName;
-		}
-
-		public boolean getReadable() {
-			return fReadable;
-		}
-
-		public boolean getWriteable() {
-			return fWritable;
-		}
-	}
-
-	// looks up encoded type (see Class.getName), and gives you a displayable string
-	private HashMap fEncodedTypeMap = null;
-	// to avoid repeat properties from showing up
-	private HashSet fRepeatMethods = null;
-
-	public BeanInfoProvider() {
-		fRepeatMethods = new HashSet();
-	}
-
-	/**
-	 * Returns the inferred properties of a bean based on the project from the baseResource,
-	 * and the fully qualified name of the bean.
-	 * 
-	 * @param baseResource the base resource where the bean is being used
-	 * @param typeName the <i>fully qualified</i> type name (eg. javax.swing.JButton) of the bean
-	 */
-	public IJavaPropertyDescriptor[] getRuntimeProperties(IResource baseResource, String typeName) {
-		IJavaProject javaProject = JavaCore.create(baseResource.getProject());
-		QualifiedName typeQualifiedName = getTypeQualifiedName(typeName);
-		List getMethodResults = new ArrayList();
-		List isMethodResults = new ArrayList();
-		List setMethodResults = new ArrayList();
-		List descriptorResults = new ArrayList();
-		try {
-			IType type = javaProject.findType(typeQualifiedName.getQualifier() + "." + typeQualifiedName.getLocalName()); //$NON-NLS-1$
-			// type must exist
-			if(type != null) {
-				ITypeHierarchy hierarchy = type.newTypeHierarchy(null);
-				IType[] supers = hierarchy.getAllSuperclasses(type);
-	
-				IMethod[] methods = type.getMethods();
-				// iterate the bean's methods
-				for (int i = 0; i < methods.length; i++)
-					acceptMethod(getMethodResults, isMethodResults, setMethodResults, methods[i]);
-				// the bean hierarchy's methods
-				for (int i = 0; i < supers.length; i++) {
-					methods = supers[i].getMethods();
-					for (int j = 0; j < methods.length; j++)
-						acceptMethod(getMethodResults, isMethodResults, setMethodResults, methods[j]);
-				}
-				adaptMethodsToPropertyDescriptors(getMethodResults, isMethodResults, setMethodResults, descriptorResults);
-			}
-		}
-		catch (JavaModelException jmex) {
-			Logger.logException("Problem navigating JavaProject in BeanInfoProvider", jmex); //$NON-NLS-1$
-		}
-
-		IJavaPropertyDescriptor[] finalResults = new IJavaPropertyDescriptor[descriptorResults.size()];
-		System.arraycopy(descriptorResults.toArray(), 0, finalResults, 0, descriptorResults.size());
-		return finalResults;
-	}
-
-	/**
-	 * Retrieves the necessary information from method declaration lists, creates and fills a list of JavaPropertyDescriptors.
-	 * @param getMethods
-	 * @param isMethods
-	 * @param setMethods
-	 * @param descriptorResults
-	 */
-	private void adaptMethodsToPropertyDescriptors(List getMethods, List isMethods, List setMethods, List descriptors) throws JavaModelException {
-		List readable = new ArrayList();
-		HashMap types = new HashMap();
-
-		// iterate through get* and is* methods, updating 'readable' list and 'types' map
-		filterGetMethods(getMethods, readable, types);
-		filterIsMethods(isMethods, readable, types);
-
-		// iterate set* methods, checking overlap w/ readable
-		Iterator it = setMethods.iterator();
-		IMethod temp = null;
-		String name = ""; //$NON-NLS-1$
-		String type = ""; //$NON-NLS-1$
-		String[] encodedParams = null;
-		String returnType = ""; //$NON-NLS-1$
-		String param0 = ""; //$NON-NLS-1$
-
-		while (it.hasNext()) {
-			temp = (IMethod) it.next();
-			name = createPropertyNameFromMethod(temp);
-			// invalid naming convention
-			if (name == null)
-				continue;
-
-			returnType = getDecodedTypeName(temp.getReturnType());
-			// setter should have no return type
-			if (!returnType.equals("void")) //$NON-NLS-1$
-				continue;
-
-			// need to get type from parameter
-			encodedParams = temp.getParameterTypes();
-			if (encodedParams != null && encodedParams.length > 0) {
-				if (encodedParams.length > 1) {
-					// multiple params
-					param0 = getDecodedTypeName(encodedParams[0]);
-					if (!param0.equals("int")) //$NON-NLS-1$
-						// not a valid indexed property
-						continue;
-					
-					type = getDecodedTypeName(encodedParams[1]);
-				}
-				else {
-					// one param, regular setter
-					if (isArray(encodedParams[0]))
-						type = getDecodedTypeName(encodedParams[0]);
-				}
-			}
-
-			if (readable.contains(name)) {
-				// writable and readable
-				if (!fRepeatMethods.contains(name)) {
-					descriptors.add(new JavaPropertyDescriptor(name, (String) types.get(name), true, true));
-					readable.remove(name);
-					fRepeatMethods.add(name);
-				}
-			}
-			else {
-				// wasn't readable, just writable
-				String[] params = temp.getParameterTypes();
-				// can't be setProperty if no parameters
-				if (!(params.length > 0))
-					continue;
-				if (!fRepeatMethods.contains(name)) {
-					type = getDecodedTypeName(params[0]);
-					descriptors.add(new JavaPropertyDescriptor(name, type, false, true));
-					fRepeatMethods.add(name);
-				}
-			}
-		}
-		// add leftover from readable, get* and is* methods (readable = true, writable = false)
-		it = readable.iterator();
-		while (it.hasNext()) {
-			name = (String) it.next();
-			if (!fRepeatMethods.contains(name)) {
-				descriptors.add(new JavaPropertyDescriptor(name, (String) types.get(name), true, false));
-				fRepeatMethods.add(name);
-			}
-		}
-	}
-
-	private void filterGetMethods(List getMethods, List readable, HashMap types) throws JavaModelException {
-		IMethod temp;
-		String name;
-		String encodedReturnType;
-		String returnType;
-		Iterator it = getMethods.iterator();
-		String[] encodedParams;
-		String paramType;
-		// iterate get* methods
-		while (it.hasNext()) {
-			temp = (IMethod) it.next();
-			name = createPropertyNameFromMethod(temp);
-			// invalid bean naming convention
-			if (name == null)
-				continue;
-
-			encodedReturnType = temp.getReturnType();
-			returnType = getDecodedTypeName(encodedReturnType);
-
-			//  can't get be a getProperty if returns void
-			if (returnType.equals("void")) //$NON-NLS-1$
-				continue;
-
-			// check params in case it's indexed propety
-			encodedParams = temp.getParameterTypes();
-			if (encodedParams != null && encodedParams.length == 1) {
-				paramType = getDecodedTypeName(encodedParams[0]);
-				// syntax is > Type getter(int);
-				if (!paramType.equals("int")) { //$NON-NLS-1$
-					//it's not an indexed property
-					continue;
-				}
-				// it is indexed, prop type is an ARRAY
-				returnType += "[]"; //$NON-NLS-1$
-			}
-
-			readable.add(name);
-			types.put(name, returnType);
-		}
-
-	}
-
-	private void filterIsMethods(List isMethodResults, List readable, HashMap types) throws JavaModelException {
-		IMethod temp;
-		String name;
-		String encodedReturnType;
-		String returnType;
-		String[] encodedParams;
-		String paramType;
-		// iterate is* methods
-		Iterator it = isMethodResults.iterator();
-		while (it.hasNext()) {
-			temp = (IMethod) it.next();
-			name = createPropertyNameFromMethod(temp);
-			// invalid bean naming convention
-			if (name == null)
-				continue;
-			encodedReturnType = temp.getReturnType();
-			returnType = getDecodedTypeName(encodedReturnType);
-
-			// isProperty only valid for boolean
-			if (!returnType.equals("boolean")) //$NON-NLS-1$
-				continue;
-
-			// check params in case it's indexed propety
-			encodedParams = temp.getParameterTypes();
-			if (encodedParams != null && encodedParams.length == 1) {
-				paramType = getDecodedTypeName(encodedParams[0]);
-				// syntax is > Type getter(int);
-				if (!paramType.equals("int")) { //$NON-NLS-1$
-					//it's not a valid indexed property
-					continue;
-				}
-			}
-
-			readable.add(name);
-			types.put(name, returnType);
-		}
-	}
-
-	/**
-	 * Pass in a get*|set*|is* method and it will return an inferred property name using <code>Introspector.decapitalize(String)</code>
-	 * @param temp
-	 * @return an inferred property name based on the IMethod name, null if the name is not valid according to bean spec
-	 */
-	private String createPropertyNameFromMethod(IMethod temp) {
-		String name = temp.getElementName();
-		if (name.startsWith("is")) //$NON-NLS-1$
-			name = Introspector.decapitalize(name.substring(2));
-		else
-			// must be get or set
-			name = Introspector.decapitalize(name.substring(3));
-		return name;
-	}
-
-	/**
-	 * Initial filtering of methods.  Checks prefix if it's valid length.  If the prefix is "get" the  method name 
-	 * is placed in the getMethodResults List.  If the prefix is "is", the name is added to the isMethodResults list.  If the
-	 * prefix is "set", it's added to the setMethodResultsList.
-	 * 
-	 * @param getMethodResults
-	 * @param isMethodResults
-	 * @param setMethodResults
-	 * @param method
-	 */
-	private void acceptMethod(List getMethodResults, List isMethodResults, List setMethodResults, IMethod method) throws JavaModelException {
-		if (!fRepeatMethods.contains(method.getElementName())) {
-			fRepeatMethods.add(method.getElementName());
-			int flags = method.getFlags();
-			String methodName = method.getElementName();
-			if (Flags.isPublic(flags)) {
-				if (methodName.length() > 3 && methodName.startsWith("get")) //$NON-NLS-1$
-					getMethodResults.add(method);
-				else if (methodName.length() > 2 && methodName.startsWith("is")) //$NON-NLS-1$
-					isMethodResults.add(method);
-				else if (methodName.length() > 3 && methodName.startsWith("set")) //$NON-NLS-1$
-					setMethodResults.add(method);
-			}
-		}
-	}
-
-	/**
-	 * @param typeName
-	 * @return a Qualified name with the package as the qualifier, and class name as LocalName
-	 */
-	private QualifiedName getTypeQualifiedName(String typeName) {
-		StringTokenizer st = new StringTokenizer(typeName, ".", false); //$NON-NLS-1$
-		int length = st.countTokens();
-		int count = 0;
-		StringBuffer root = new StringBuffer();
-		while (count++ < length - 1) {
-			root.append(st.nextToken());
-			if (count < length - 1)
-				root.append('.');
-		}
-		return new QualifiedName(root.toString(), st.nextToken());
-	}
-
-	/**
-	 * Checks if encodedTypeName is an array
-	 * @param encodedTypeName
-	 * @return true if encodedTypeName is an array, false otherwise.
-	 */
-	private boolean isArray(String encodedTypeName) {
-		if (encodedTypeName != null && encodedTypeName.length() > 0) {
-			if (encodedTypeName.charAt(0) == '[')
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the decoded (displayable) name fo the type.
-	 * Either a primitive type (int, long, float...) Object (String)
-	 * @param type
-	 * @return decoded name for the encoded string
-	 */
-	private String getDecodedTypeName(String encoded) {
-		HashMap map = getEncodedTypeMap();
-
-		StringBuffer decoded = new StringBuffer();
-		char BRACKET = '[';
-		String BRACKETS = "[]"; //$NON-NLS-1$
-		char identifier = ' ';
-		int last = 0;
-		// count brackets
-		while (encoded.indexOf(BRACKET, last) != -1) {
-			last++;
-		}
-		identifier = encoded.charAt(last);
-		Object primitiveType = map.get(String.valueOf(identifier));
-		// L > binary type name, Q > source type name
-		if (identifier == 'L' || identifier == 'Q') {
-			// handle object
-			String classname = encoded.substring(last + 1, encoded.length() - 1);
-			decoded.append(classname);
-		}
-		else if (primitiveType != null) {
-			// handle primitive type (from IField.getSignature())
-			decoded.append((String) primitiveType);
-		}
-		else {
-			// handle primitive type (from Class.getName())
-			decoded.append(encoded);
-		}
-		// handle arrays
-		if (last > 0) {
-			for (int i = 0; i < last; i++) {
-				decoded.append(BRACKETS);
-			}
-		}
-		return decoded.toString();
-	}
-
-	/**
-	 *	from Class.getName() javadoc
-	 *	also see Signature in jdt.core api
-	 *<pre>
-	 *			B            byte
-	 *			C            char
-	 *			D            double
-	 *			F            float
-	 *			I            int
-	 *			J            long
-	 *			Lclassname;  class or interface
-	 *			Qsourcename; source
-	 *			S            short
-	 *			Z            boolean
-	 *			V	   		 void
-	 *</pre>
-	 *
-	 * @return the "encoding letter" to "type" map.
-	 */
-	private HashMap getEncodedTypeMap() {
-		if (fEncodedTypeMap == null) {
-			fEncodedTypeMap = new HashMap();
-			fEncodedTypeMap.put("B", "byte"); //$NON-NLS-1$ //$NON-NLS-2$
-			fEncodedTypeMap.put("C", "char"); //$NON-NLS-1$ //$NON-NLS-2$
-			fEncodedTypeMap.put("D", "double"); //$NON-NLS-1$ //$NON-NLS-2$
-			fEncodedTypeMap.put("F", "float"); //$NON-NLS-1$ //$NON-NLS-2$
-			fEncodedTypeMap.put("I", "int"); //$NON-NLS-1$ //$NON-NLS-2$
-			fEncodedTypeMap.put("J", "long"); //$NON-NLS-1$ //$NON-NLS-2$
-			fEncodedTypeMap.put("S", "short"); //$NON-NLS-1$ //$NON-NLS-2$
-			fEncodedTypeMap.put("Z", "boolean"); //$NON-NLS-1$ //$NON-NLS-2$
-			fEncodedTypeMap.put("V", "void"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return fEncodedTypeMap;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/CustomTemplateProposal.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/CustomTemplateProposal.java
deleted file mode 100644
index c580bd4..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/CustomTemplateProposal.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateProposal;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceCompletionProposal;
-
-/**
- * Purpose of this class is to make the additional proposal info into content
- * fit for an HTML viewer (by escaping characters)
- * 
- * @plannedfor 1.0
- */
-class CustomTemplateProposal extends TemplateProposal implements IRelevanceCompletionProposal {
-	// copies of this class exist in:
-	// org.eclipse.jst.jsp.ui.internal.contentassist
-	// org.eclipse.wst.html.ui.internal.contentassist
-	// org.eclipse.wst.xml.ui.internal.contentassist
-
-	public CustomTemplateProposal(Template template, TemplateContext context, IRegion region, Image image, int relevance) {
-		super(template, context, region, image, relevance);
-	}
-
-	public String getAdditionalProposalInfo() {
-		String additionalInfo = super.getAdditionalProposalInfo();
-		return StringUtils.convertToHTMLContent(additionalInfo);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/IBeanInfoProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/IBeanInfoProvider.java
deleted file mode 100644
index 7487e3c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/IBeanInfoProvider.java
+++ /dev/null
@@ -1,20 +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.ui.internal.contentassist;
-
-import org.eclipse.core.resources.IResource;
-
-/**
- * @plannedfor 1.0
- */
-public interface IBeanInfoProvider {
-	IJavaPropertyDescriptor[] getRuntimeProperties(IResource baseResource, String typeName);
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/IJavaPropertyDescriptor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/IJavaPropertyDescriptor.java
deleted file mode 100644
index 1606a2e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/IJavaPropertyDescriptor.java
+++ /dev/null
@@ -1,27 +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.ui.internal.contentassist;
-
-/**
- * @plannedfor 1.0
- */
-public interface IJavaPropertyDescriptor {
-
-	String getDeclaredType();
-
-	String getDisplayName();
-
-	String getName();
-
-	boolean getReadable();
-
-	boolean getWriteable();
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProcessor.java
deleted file mode 100644
index 73d1e50..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProcessor.java
+++ /dev/null
@@ -1,285 +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.ui.internal.contentassist;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.osgi.framework.Bundle;
-
-
-/**
- * @plannedfor 1.0
- */
-public class JSPCompletionProcessor implements IContentAssistProcessor, IReleasable {
-	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value = Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jsptranslation"); //$NON-NLS-1$
-		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
-	private static final String JDT_CORE_PLUGIN_ID = "org.eclipse.jdt.core"; //$NON-NLS-1$
-
-	protected int fJspSourcePosition, fJavaPosition;
-	protected String fErrorMessage = null;
-	protected StructuredTextViewer fViewer = null;
-	private JSPTranslationAdapter fTranslationAdapter = null;
-
-	/**
-	 * Returns a list of completion proposals based on the specified location
-	 * within the document that corresponds to the current cursor position
-	 * within the text viewer.
-	 * 
-	 * @param viewer
-	 *            the viewer whose document is used to compute the proposals
-	 * @param documentPosition
-	 *            an offset within the document for which completions should
-	 *            be computed
-	 * @return an array of completion proposals or <code>null</code> if no
-	 *         proposals are possible
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int pos) {
-		initialize(pos);
-
-		JSPProposalCollector collector = null;
-		
-		IDOMModel xmlModel = null;
-		try {
-			if (viewer instanceof StructuredTextViewer)
-				fViewer = (StructuredTextViewer) viewer;
-
-			xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(fViewer.getDocument());
-
-			IDOMDocument xmlDoc = xmlModel.getDocument();
-			if (fTranslationAdapter == null)
-				fTranslationAdapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
-			if (fTranslationAdapter != null) {
-
-				JSPTranslation translation = fTranslationAdapter.getJSPTranslation();
-				fJavaPosition = translation.getJavaOffset(getDocumentPosition());
-
-				if (DEBUG)
-					System.out.println(debug(translation));
-
-				try {
-
-					ICompilationUnit cu = translation.getCompilationUnit();
-
-					// can't get java proposals w/out a compilation unit
-					// or without a valid position
-					if (cu == null || -1 == fJavaPosition)
-						return new ICompletionProposal[0];
-					
-					collector = getProposalCollector(cu, translation);
-					synchronized (cu) {
-						cu.codeComplete(fJavaPosition, collector, null);
-					}
-				}
-				catch (CoreException coreEx) {
-					// a possible Java Model Exception due to not being a Web
-					// (Java) Project
-					coreEx.printStackTrace();
-				}
-			}
-		}
-		catch (Exception exc) {
-			exc.printStackTrace();
-			// throw out exceptions on code assist.
-		}
-		finally {
-			if (xmlModel != null) {
-				xmlModel.releaseFromRead();
-			}
-		}
-		ICompletionProposal[] results = new ICompletionProposal[0];
-		if(collector != null) {
-			results = collector.getJSPCompletionProposals();
-			if (results == null || results.length < 1)
-				fErrorMessage = JSPUIMessages.Java_Content_Assist_is_not_UI_;
-		}
-		return results;
-	}
-	
-	protected JSPProposalCollector getProposalCollector(ICompilationUnit cu, JSPTranslation translation) {
-		return new JSPProposalCollector(cu, translation);
-	}
-	
-	/**
-	 * For debugging translation mapping only.
-	 * 
-	 * @param translation
-	 */
-	private String debug(JSPTranslation translation) {
-		StringBuffer debugString = new StringBuffer();
-		HashMap jsp2java = translation.getJsp2JavaMap();
-		String javaText = translation.getJavaText();
-		String jspText = fViewer.getDocument().get();
-		debugString.append("[jsp2JavaMap in JSPCompletionProcessor]\r\n"); //$NON-NLS-1$
-		debugString.append("jsp cursor position >> " + fViewer.getTextWidget().getCaretOffset() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-		Iterator it = jsp2java.keySet().iterator();
-		while (it.hasNext()) {
-			try {
-				Position jspPos = (Position) it.next();
-				Position javaPos = (Position) jsp2java.get(jspPos);
-				debugString.append("jsp > " + jspPos.offset + ":" + jspPos.length + ":" + jspText.substring(jspPos.offset, jspPos.offset + jspPos.length) + ":\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				debugString.append("java > " + javaPos.offset + ":" + javaPos.length + ":" + javaText.substring(javaPos.offset, javaPos.offset + javaPos.length) + ":\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				debugString.append("-------------------------------------------------\n"); //$NON-NLS-1$
-			}
-			catch (Exception e) {
-				// eat exceptions, it's only for debug
-			}
-		}
-		return debugString.toString();
-	}
-
-	/**
-	 * Returns information about possible contexts based on the specified
-	 * location within the document that corresponds to the current cursor
-	 * position within the text viewer.
-	 * 
-	 * @param viewer
-	 *            the viewer whose document is used to compute the possible
-	 *            contexts
-	 * @param documentPosition
-	 *            an offset within the document for which context information
-	 *            should be computed
-	 * @return an array of context information objects or <code>null</code>
-	 *         if no context could be found
-	 */
-	public org.eclipse.jface.text.contentassist.IContextInformation[] computeContextInformation(org.eclipse.jface.text.ITextViewer viewer, int documentOffset) {
-		return null;
-	}
-
-	/**
-	 * Returns a string of characters which when pressed should automatically
-	 * display content-assist proposals.
-	 * 
-	 * @return string of characters
-	 */
-	public java.lang.String getAutoProposalInvocationCharacters() {
-		return null;
-	}
-
-	/**
-	 * Returns a string of characters which when pressed should automatically
-	 * display a content-assist tip.
-	 * 
-	 * @return string of characters
-	 */
-	public java.lang.String getAutoTipInvocationCharacters() {
-		return null;
-	}
-
-	/**
-	 * Returns the characters which when entered by the user should
-	 * automatically trigger the presentation of possible completions.
-	 * 
-	 * @return the auto activation characters for completion proposal or
-	 *         <code>null</code> if no auto activation is desired
-	 */
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		return null;
-	}
-
-	/**
-	 * Returns the characters which when entered by the user should
-	 * automatically trigger the presentation of context information.
-	 * 
-	 * @return the auto activation characters for presenting context
-	 *         information or <code>null</code> if no auto activation is
-	 *         desired
-	 */
-	public char[] getContextInformationAutoActivationCharacters() {
-		return null;
-	}
-
-	/**
-	 * Returns a validator used to determine when displayed context
-	 * information should be dismissed. May only return <code>null</code> if
-	 * the processor is incapable of computing context information.
-	 * 
-	 * @return a context information validator, or <code>null</code> if the
-	 *         processor is incapable of computing context information
-	 */
-	public org.eclipse.jface.text.contentassist.IContextInformationValidator getContextInformationValidator() {
-		return null;
-	}
-
-	protected int getDocumentPosition() {
-		return fJspSourcePosition;
-	}
-
-	public String getErrorMessage() {
-		// TODO: get appropriate error message
-		// if (fCollector.getErrorMessage() != null &&
-		// fCollector.getErrorMessage().length() > 0)
-		// return fCollector.getErrorMessage();
-		return fErrorMessage;
-	}
-
-	/**
-	 * Initialize the code assist processor.
-	 */
-	protected void initialize(int pos) {
-		initializeJavaPlugins();
-
-		fJspSourcePosition = pos;
-		fErrorMessage = null;
-	}
-
-	/**
-	 * Initialize the Java Plugins that the JSP processor requires.
-	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=143765
-	 * We should not call "start", because that will cause that 
-	 * state to be remembered, and re-started automatically during 
-	 * the next boot up sequence. 
-	 * 
-	 * ISSUE: we may be able to get rid of this all together, in future, 
-	 * since 99% we probably have already used some JDT class by the time 
-	 * we need JDT to be active ... but ... this is the safest fix for 
-	 * this point in 1.5 stream. Next release, let's just remove this, 
-	 * re-discover what ever bug this was fixing (if any) and if there is 
-	 * one, then we'll either put back in, as is, or come up with a 
-	 * more appropriate fix. 
-	 * 
-	 */
-	protected void initializeJavaPlugins() {
-		try {
-			Bundle bundle = Platform.getBundle(JDT_CORE_PLUGIN_ID);
-			bundle.loadClass("dummyClassNameThatShouldNeverExist");
-		}
-		catch (ClassNotFoundException e) {
-			// this is the expected result, we just want to 
-			// nudge the bundle to be sure its activated. 
-		}
-	}
-
-	public void release() {
-		fTranslationAdapter = null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java
deleted file mode 100644
index 0229d51..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPCompletionProposal.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-
-/**
- * Implements IJavaCompletionProposal for use with JSPProposalCollector.
- *
- * @plannedfor 1.0
- */
-public class JSPCompletionProposal extends CustomCompletionProposal implements IJavaCompletionProposal  {
-
-	/*
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=124483
-	 * 
-	 * This is a wrapped proposal so we don't need to 
-	 * make "slow" calls to the java proposal up front, only when needed
-	 * for example, getAdditionalInfo() reads external javadoc, and it makes
-	 * no sense
-	 */ 
-	ICompletionProposal fJavaCompletionProposal = null;
-	
-	public JSPCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, Image image, String displayString, IContextInformation contextInformation, String additionalProposalInfo, int relevance, boolean updateReplacementLengthOnValidate) {
-		super(replacementString, replacementOffset, replacementLength, cursorPosition, image, displayString, contextInformation, additionalProposalInfo, relevance, updateReplacementLengthOnValidate);
-	}
-	
-	/**
-	 * Sets cursor position after applying.
-	 */
-	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-		super.apply(viewer, trigger, stateMask, offset);
-	}
-
-	final public ICompletionProposal getJavaCompletionProposal() {
-		return fJavaCompletionProposal;
-	}
-
-	final public void setJavaCompletionProposal(ICompletionProposal javaCompletionProposal) {
-		fJavaCompletionProposal = javaCompletionProposal;
-	}
-	
-	public String getAdditionalProposalInfo() {
-		
-		String additionalInfo = super.getAdditionalProposalInfo();
-		ICompletionProposal javaProposal = getJavaCompletionProposal();
-		if(javaProposal != null)
-			additionalInfo = javaProposal.getAdditionalProposalInfo();
-		
-		return additionalInfo;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPContentAssistProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPContentAssistProcessor.java
deleted file mode 100644
index ff39bb5..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPContentAssistProcessor.java
+++ /dev/null
@@ -1,1273 +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.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveAdapter;
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveAdapterFactory;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImageHelper;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImages;
-import org.eclipse.jst.jsp.ui.internal.preferences.JSPUIPreferenceNames;
-import org.eclipse.jst.jsp.ui.internal.templates.TemplateContextTypeIdsJSP;
-import org.eclipse.wst.css.ui.internal.contentassist.CSSContentAssistProcessor;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocumentFactory;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.html.core.internal.contentmodel.JSPCMDocument;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.html.ui.internal.contentassist.HTMLContentAssistProcessor;
-import org.eclipse.wst.javascript.ui.internal.common.contentassist.JavaScriptContentAssistProcessor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.ltk.parser.BlockMarker;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.text.IStructuredPartitions;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceCompletionProposal;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceConstants;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAction;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.parser.XMLSourceParser;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocType;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMDocumentTracker;
-import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper;
-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.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-import org.eclipse.wst.xml.ui.internal.contentassist.AbstractContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
-import org.eclipse.wst.xml.ui.internal.contentassist.NonValidatingModelQueryAction;
-import org.eclipse.wst.xml.ui.internal.contentassist.ProposalComparator;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentAssistUtilities;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLRelevanceConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Adds proposals not normally covered by the generic behavior with the
- * content model
- * 
- * @plannedfor 1.0
- */
-public class JSPContentAssistProcessor extends AbstractContentAssistProcessor {
-
-	protected int depthCount = 0;
-	protected ITextViewer fViewer = null;
-	protected boolean useEmbeddedResults = true;
-	protected boolean isInternalAdapter = false;
-	protected HashMap fNameToProcessorMap = null;
-	protected HashMap fPartitionToProcessorMap = null;
-	private final ICompletionProposal[] EMPTY_PROPOSAL_SET = new ICompletionProposal[0];
-	private JSPTemplateCompletionProcessor fTemplateProcessor = null;
-	private List fTemplateContexts = new ArrayList();
-
-	public JSPContentAssistProcessor() {
-		super();
-		initNameToProcessorMap();
-		initPartitionToProcessorMap();
-	}
-
-	/**
-	 * init map for extra content assist processors (useBean,
-	 * get/setProperty). points [tagname > processor]
-	 */
-	protected void initNameToProcessorMap() {
-		fNameToProcessorMap = new HashMap();
-		JSPPropertyContentAssistProcessor jspPropertyCAP = new JSPPropertyContentAssistProcessor();
-		fNameToProcessorMap.put(JSP11Namespace.ElementName.SETPROPERTY, jspPropertyCAP);
-		fNameToProcessorMap.put(JSP11Namespace.ElementName.GETPROPERTY, jspPropertyCAP);
-		fNameToProcessorMap.put(JSP11Namespace.ElementName.USEBEAN, new JSPUseBeanContentAssistProcessor());
-	}
-
-	/**
-	 * int map that points [partition > processor]. This takes place of
-	 * embedded adapters for now.
-	 */
-	protected void initPartitionToProcessorMap() {
-		fPartitionToProcessorMap = new HashMap();
-		HTMLContentAssistProcessor htmlProcessor = new HTMLContentAssistProcessor();
-		JSPJavaContentAssistProcessor jspJavaProcessor = new JSPJavaContentAssistProcessor();
-		XMLContentAssistProcessor xmlProcessor = new XMLContentAssistProcessor();
-		JavaScriptContentAssistProcessor javascriptProcessor = new JavaScriptContentAssistProcessor();
-
-		fPartitionToProcessorMap.put(IHTMLPartitions.HTML_DEFAULT, htmlProcessor);
-		fPartitionToProcessorMap.put(IXMLPartitions.XML_DEFAULT, xmlProcessor);
-		fPartitionToProcessorMap.put(IStructuredPartitions.DEFAULT_PARTITION, htmlProcessor);
-		fPartitionToProcessorMap.put(IJSPPartitions.JSP_DEFAULT, jspJavaProcessor);
-		fPartitionToProcessorMap.put(IJSPPartitions.JSP_DIRECTIVE, xmlProcessor);
-		fPartitionToProcessorMap.put(IHTMLPartitions.HTML_COMMENT, htmlProcessor);
-		fPartitionToProcessorMap.put(IJSPPartitions.JSP_CONTENT_JAVASCRIPT, javascriptProcessor);
-		fPartitionToProcessorMap.put(IJSPPartitions.JSP_DEFAULT_EL, jspJavaProcessor);
-		fPartitionToProcessorMap.put(IHTMLPartitions.SCRIPT, javascriptProcessor); // default
-		// to
-		// javascript
-		// for
-		// all
-		// script
-	}
-
-	protected void addCommentProposal(ContentAssistRequest contentAssistRequest) {
-		// do nothing
-	}
-
-	protected void addDocTypeProposal(ContentAssistRequest contentAssistRequest) {
-		// do nothing
-	}
-
-	protected void addEmptyDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsJSP.NEW);
-
-		super.addEmptyDocumentProposals(contentAssistRequest);
-		addTagInsertionProposals(contentAssistRequest, 0);
-	}
-
-	protected void addEndTagNameProposals(ContentAssistRequest contentAssistRequest) {
-		// do nothing
-	}
-
-	protected void addPCDATAProposal(String nodeName, ContentAssistRequest contentAssistRequest) {
-		// do nothing
-	}
-
-	protected void addStartDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		// do nothing
-	}
-
-	protected void addTagCloseProposals(ContentAssistRequest contentAssistRequest) {
-		// do nothing
-	}
-
-	protected void addXMLProposal(ContentAssistRequest contentAssistRequest) {
-		// do nothing
-	}
-
-	protected void addEndTagProposals(ContentAssistRequest contentAssistRequest) {
-		// do nothing
-	}
-
-	protected void addAttributeNameProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsJSP.ATTRIBUTE);
-	}
-
-	/**
-	 * add proposals for tags in attribute values
-	 */
-	protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsJSP.ATTRIBUTE_VALUE);
-
-		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-
-		// add JSP extra proposals from JSPBeanInfoContentAssistProcessor
-		// JSPPropertyContentAssistProcessor
-
-		// 2.1
-		// get results from JSPUseBean and JSPProperty here
-		// (look up processor in a map based on node name)
-		JSPDummyContentAssistProcessor extraProcessor = (JSPDummyContentAssistProcessor) fNameToProcessorMap.get(node.getNodeName());
-		if (extraProcessor != null && contentAssistRequest != null) {
-			extraProcessor.addAttributeValueProposals(contentAssistRequest);
-		}
-
-		ModelQuery mq = ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-		if (mq != null) {
-			CMDocument doc = mq.getCorrespondingCMDocument(node);
-			// this shouldn't have to have the prefix coded in
-			if (doc instanceof JSPCMDocument || doc instanceof CMNodeWrapper || node.getNodeName().startsWith("jsp:")) //$NON-NLS-1$
-				return;
-		}
-
-		// Find the attribute name for which this position should have a value
-		IStructuredDocumentRegion open = node.getFirstStructuredDocumentRegion();
-		ITextRegionList openRegions = open.getRegions();
-		int i = openRegions.indexOf(contentAssistRequest.getRegion());
-		if (i < 0)
-			return;
-		ITextRegion nameRegion = null;
-		while (i >= 0) {
-			nameRegion = openRegions.get(i--);
-			if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-				break;
-		}
-
-		String attributeName = null;
-		if (nameRegion != null)
-			attributeName = open.getText(nameRegion);
-		String currentValue = null;
-		if (attributeName != null)
-			currentValue = node.getAttributes().getNamedItem(attributeName).getNodeValue();
-
-		// on an empty value, add all the JSP and taglib tags
-		if ((contentAssistRequest.getRegion().getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS && contentAssistRequest.getReplacementLength() == 0) || (contentAssistRequest.getRegion().getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && (currentValue == null || currentValue.length() == 0))) {
-			List rejectElements = new ArrayList();
-			rejectElements.add(JSP12Namespace.ElementName.SCRIPTLET);
-			rejectElements.add(JSP12Namespace.ElementName.EXPRESSION);
-			rejectElements.add(JSP12Namespace.ElementName.DECLARATION);
-			rejectElements.add(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
-			rejectElements.add(JSP12Namespace.ElementName.DIRECTIVE_PAGE);
-			rejectElements.add(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
-			rejectElements.add(JSP12Namespace.ElementName.FALLBACK);
-			rejectElements.add(JSP12Namespace.ElementName.USEBEAN);
-			rejectElements.add(JSP12Namespace.ElementName.SETPROPERTY);
-			rejectElements.add(JSP12Namespace.ElementName.FORWARD);
-			rejectElements.add(JSP12Namespace.ElementName.PLUGIN);
-			rejectElements.add(JSP12Namespace.ElementName.FALLBACK);
-			rejectElements.add(JSP12Namespace.ElementName.PARAMS);
-
-			List additionalElements = getAdditionalChildren(new ArrayList(), node, -1);
-			for (i = 0; i < additionalElements.size(); i++) {
-				CMElementDeclaration ed = (CMElementDeclaration) additionalElements.get(i);
-				if (rejectElements.contains(ed.getNodeName()))
-					continue;
-				String tagname = getContentGenerator().getRequiredName(node, ed);
-				StringBuffer contents = new StringBuffer("\""); //$NON-NLS-1$
-				getContentGenerator().generateTag(node, ed, contents);
-				contents.append('"');
-				CustomCompletionProposal proposal = new CustomCompletionProposal(contents.toString(), contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), contents.length(), JSPEditorPluginImageHelper.getInstance().getImage(JSPEditorPluginImages.IMG_OBJ_TAG_GENERIC), tagname, null, null, XMLRelevanceConstants.R_JSP_ATTRIBUTE_VALUE);
-				contentAssistRequest.addProposal(proposal);
-			}
-		}
-
-		else if (contentAssistRequest.getRegion().getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-			try {
-				// Create a new model for Content Assist to operate on. This
-				// will simulate
-				// a full Document and then adjust the offset numbers in the
-				// list of results.
-				IStructuredModel internalModel = null;
-				IModelManager mmanager = StructuredModelManager.getModelManager();
-				internalModel = mmanager.createUnManagedStructuredModelFor(ContentTypeIdForJSP.ContentTypeID_JSP);
-				IDOMNode xmlNode = null;
-				IDOMModel xmlOuterModel = null;
-				if (contentAssistRequest.getNode() instanceof IDOMNode) {
-					xmlNode = (IDOMNode) contentAssistRequest.getNode();
-					xmlOuterModel = xmlNode.getModel();
-					internalModel.setResolver(xmlOuterModel.getResolver());
-					internalModel.setBaseLocation(xmlOuterModel.getBaseLocation());
-				}
-				String contents = StringUtils.strip(contentAssistRequest.getText());
-				if (xmlNode != null && contents != null) {
-					int additionalShifts = 0;
-					// Be sure that custom tags from taglibs also show up
-					// by
-					// adding taglib declarations to the internal model.
-					TLDCMDocumentManager mgr = TaglibController.getTLDCMDocumentManager(xmlOuterModel.getStructuredDocument());
-					if (mgr != null) {
-						List trackers = mgr.getCMDocumentTrackers(contentAssistRequest.getReplacementBeginPosition());
-						if (trackers != null) {
-							for (i = 0; i < trackers.size(); i++) {
-								CMDocumentTracker tracker = (CMDocumentTracker) trackers.get(i);
-								String declaration = tracker.getStructuredDocumentRegion().getText();
-								if (declaration != null) {
-									contents = declaration + contents;
-									additionalShifts += declaration.length();
-								}
-							}
-						}
-					}
-					// Also copy any jsp:useBean tags so that
-					// jsp:[gs]etProperty will function
-					Document doc = null;
-					if (contentAssistRequest.getNode().getNodeType() == Node.DOCUMENT_NODE)
-						doc = (Document) node;
-					else
-						doc = node.getOwnerDocument();
-					NodeList useBeans = doc.getElementsByTagName(JSP12Namespace.ElementName.USEBEAN);
-					for (int k = 0; k < useBeans.getLength(); k++) {
-						IDOMNode useBean = (IDOMNode) useBeans.item(k);
-						if (useBean.getStartOffset() < contentAssistRequest.getReplacementBeginPosition()) {
-							StringBuffer useBeanText = new StringBuffer("<jsp:useBean"); //$NON-NLS-1$
-							for (int j = 0; j < useBean.getAttributes().getLength(); j++) {
-								Attr attr = (Attr) useBean.getAttributes().item(j);
-								useBeanText.append(' ');
-								useBeanText.append(attr.getName());
-								useBeanText.append("=\""); //$NON-NLS-1$
-								useBeanText.append(attr.getValue());
-								useBeanText.append('"');
-							}
-							useBeanText.append("/>"); //$NON-NLS-1$
-							additionalShifts += useBeanText.length();
-							contents = useBeanText.toString() + contents;
-						}
-					}
-					internalModel.getStructuredDocument().set(contents);
-					int internalOffset = 0;
-					boolean quoted = false;
-					// if quoted, use position inside and shift by one
-					if (contentAssistRequest.getMatchString().length() > 0 && (contentAssistRequest.getMatchString().charAt(0) == '\'' || contentAssistRequest.getMatchString().charAt(0) == '"')) {
-						internalOffset = contentAssistRequest.getMatchString().length() - 1 + additionalShifts;
-						quoted = true;
-					}
-					// if unquoted, use position inside
-					else if (contentAssistRequest.getMatchString().length() > 0 && contentAssistRequest.getMatchString().charAt(0) == '<')
-						internalOffset = contentAssistRequest.getMatchString().length() + additionalShifts;
-					else
-						internalOffset = contentAssistRequest.getReplacementBeginPosition() - contentAssistRequest.getStartOffset() + additionalShifts;
-					depthCount++;
-					IndexedRegion internalNode = null;
-					int tmpOffset = internalOffset;
-					while (internalNode == null && tmpOffset >= 0)
-						internalNode = internalModel.getIndexedRegion(tmpOffset--);
-
-					if (internalModel.getFactoryRegistry() != null) {
-						// set up the internal model
-						if (internalModel.getFactoryRegistry().getFactoryFor(PageDirectiveAdapter.class) == null) {
-							internalModel.getFactoryRegistry().addFactory(new PageDirectiveAdapterFactory());
-						}
-						PageDirectiveAdapter outerEmbeddedTypeAdapter = (PageDirectiveAdapter) xmlOuterModel.getDocument().getAdapterFor(PageDirectiveAdapter.class);
-						PageDirectiveAdapter internalEmbeddedTypeAdapter = (PageDirectiveAdapter) ((INodeNotifier) ((Node) internalNode).getOwnerDocument()).getAdapterFor(PageDirectiveAdapter.class);
-						internalEmbeddedTypeAdapter.setEmbeddedType(outerEmbeddedTypeAdapter.getEmbeddedType());
-					}
-
-					AdapterFactoryRegistry adapterRegistry = JSPUIPlugin.getDefault().getAdapterFactoryRegistry();
-					Iterator adapterList = adapterRegistry.getAdapterFactories();
-					// And all those appropriate for this particular type
-					// of content
-					while (adapterList.hasNext()) {
-						try {
-							AdapterFactoryProvider provider = (AdapterFactoryProvider) adapterList.next();
-							if (provider.isFor(internalModel.getModelHandler())) {
-								provider.addAdapterFactories(internalModel);
-							}
-						}
-						catch (Exception e) {
-							Logger.logException(e);
-						}
-					}
-
-					/**
-					 * the internal adapter does all the real work of using
-					 * the JSP content model to form proposals
-					 */
-					ICompletionProposal[] results = null;
-					depthCount--;
-					if (results != null) {
-						for (i = 0; i < results.length; i++) {
-							contentAssistRequest.addProposal(new CustomCompletionProposal(((CustomCompletionProposal) results[i]).getReplacementString(), ((CustomCompletionProposal) results[i]).getReplacementOffset() - additionalShifts + contentAssistRequest.getStartOffset() + (quoted ? 1 : 0), ((CustomCompletionProposal) results[i]).getReplacementLength(), ((CustomCompletionProposal) results[i]).getCursorPosition(), results[i].getImage(), results[i].getDisplayString(), ((CustomCompletionProposal) results[i]).getContextInformation(), ((CustomCompletionProposal) results[i]).getAdditionalProposalInfo(), (results[i] instanceof IRelevanceCompletionProposal) ? ((IRelevanceCompletionProposal) results[i]).getRelevance() : IRelevanceConstants.R_NONE));
-						}
-					}
-				}
-			}
-			catch (Exception e) {
-				Logger.logException("Error in embedded JSP Content Assist", e); //$NON-NLS-1$
-			}
-		}
-
-
-	}
-
-	private List getAdditionalChildren(List elementDecls, Node node, int childIndex) {
-		if (node instanceof IDOMNode) {
-			/*
-			 * find the location of the intended insertion as it will give us
-			 * the correct offset for checking position dependent CMDocuments
-			 */
-			int textInsertionOffset = 0;
-			NodeList children = node.getChildNodes();
-			if (children.getLength() >= childIndex && childIndex >= 0) {
-				Node nodeAlreadyAtIndex = children.item(childIndex);
-				if (nodeAlreadyAtIndex instanceof IDOMNode)
-					textInsertionOffset = ((IDOMNode) nodeAlreadyAtIndex).getEndOffset();
-			}
-			else {
-				textInsertionOffset = ((IDOMNode) node).getStartOffset();
-			}
-			TLDCMDocumentManager mgr = TaglibController.getTLDCMDocumentManager(((IDOMNode) node).getStructuredDocument());
-			if (mgr != null) {
-				List moreCMDocuments = mgr.getCMDocumentTrackers(textInsertionOffset);
-				if (moreCMDocuments != null) {
-					for (int i = 0; i < moreCMDocuments.size(); i++) {
-						CMDocument doc = (CMDocument) moreCMDocuments.get(i);
-						CMNamedNodeMap elements = doc.getElements();
-						if (elements != null) {
-							for (int j = 0; j < elements.getLength(); j++) {
-								CMElementDeclaration ed = (CMElementDeclaration) elements.item(j);
-								elementDecls.add(ed);
-							}
-						}
-					}
-				}
-			}
-
-			// get position dependent CMDocuments and insert their tags as
-			// proposals
-
-			ModelQueryAdapter mqAdapter = null;
-			if (node.getNodeType() == Node.DOCUMENT_NODE)
-				mqAdapter = (ModelQueryAdapter) ((IDOMNode) node).getAdapterFor(ModelQueryAdapter.class);
-			else
-				mqAdapter = (ModelQueryAdapter) ((IDOMNode) node.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
-
-			if (mqAdapter != null) {
-				CMDocument doc = mqAdapter.getModelQuery().getCorrespondingCMDocument(node);
-				if (doc != null) {
-
-					CMDocument JCMDoc = HTMLCMDocumentFactory.getCMDocument(CMDocType.JSP11_DOC_TYPE);
-					CMNamedNodeMap jspelements = JCMDoc.getElements();
-
-					if (jspelements != null) {
-						List rejectElements = new ArrayList();
-
-						// determine if the document is in XML form
-						Document domDoc = null;
-						if (node.getNodeType() == Node.DOCUMENT_NODE)
-							domDoc = (Document) node;
-						else
-							domDoc = node.getOwnerDocument();
-						
-						// Show XML tag forms of JSP markers if jsp:root is
-						// the document element OR it's HTML but
-						// isn't really in the text.
-						// If the document isn't strictly XML, pull out the
-						// XML tag forms it is xml format
-						rejectElements.add(JSP12Namespace.ElementName.SCRIPTLET);
-						rejectElements.add(JSP12Namespace.ElementName.EXPRESSION);
-						rejectElements.add(JSP12Namespace.ElementName.DECLARATION);
-						rejectElements.add(JSP12Namespace.ElementName.DIRECTIVE_INCLUDE);
-						rejectElements.add(JSP12Namespace.ElementName.DIRECTIVE_PAGE);
-						rejectElements.add(JSP12Namespace.ElementName.TEXT);
-						rejectElements.add(JSP12Namespace.ElementName.DIRECTIVE_TAGLIB);
-							
-						if (isXMLFormat(domDoc)) {
-
-							// jsp actions
-							rejectElements.add(JSP12Namespace.ElementName.FALLBACK);
-							rejectElements.add(JSP12Namespace.ElementName.USEBEAN);
-							rejectElements.add(JSP12Namespace.ElementName.GETPROPERTY);
-							rejectElements.add(JSP12Namespace.ElementName.SETPROPERTY);
-							rejectElements.add(JSP12Namespace.ElementName.INCLUDE);
-							rejectElements.add(JSP12Namespace.ElementName.FORWARD);
-							rejectElements.add(JSP12Namespace.ElementName.PLUGIN);
-							rejectElements.add(JSP12Namespace.ElementName.FALLBACK);
-							rejectElements.add(JSP12Namespace.ElementName.PARAM);
-							rejectElements.add(JSP12Namespace.ElementName.PARAMS);
-						}
-						
-						
-						// don't show jsp:root if a document element already
-						// exists
-						Element docElement = domDoc.getDocumentElement();
-						if (docElement != null && ((docElement.getNodeName().equals("jsp:root")) || ((((IDOMNode) docElement).getStartStructuredDocumentRegion() != null || ((IDOMNode) docElement).getEndStructuredDocumentRegion() != null)))) //$NON-NLS-1$
-							rejectElements.add(JSP12Namespace.ElementName.ROOT);
-
-						for (int j = 0; j < jspelements.getLength(); j++) {
-							CMElementDeclaration ed = (CMElementDeclaration) jspelements.item(j);
-							if (rejectElements.contains(ed.getNodeName()))
-								continue;
-							elementDecls.add(ed);
-						}
-					
-					}
-				}
-			}
-		}
-		return elementDecls;
-	}
-
-	protected List getAvailableChildrenAtIndex(Element parent, int index, int validityChecking) {
-		List list = new ArrayList();
-		List additionalElements = getAdditionalChildren(new ArrayList(), parent, index);
-		for (int i = 0; i < additionalElements.size(); i++) {
-			ModelQueryAction insertAction = new NonValidatingModelQueryAction((CMElementDeclaration) additionalElements.get(i), ModelQueryAction.INSERT, 0, parent.getChildNodes().getLength(), null);
-			list.add(insertAction);
-		}
-
-		// add allowed children of implicit tags that don't already exist
-		NodeList children = parent.getChildNodes();
-		List childNames = new ArrayList();
-		if (children != null) {
-			for (int i = 0; i < children.getLength(); i++) {
-				Node child = children.item(i);
-				if (child.getNodeType() == Node.ELEMENT_NODE)
-					childNames.add(child.getNodeName().toLowerCase());
-			}
-		}
-		List allActions = new ArrayList();
-		Iterator iterator = list.iterator();
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(parent.getOwnerDocument());
-		while (iterator.hasNext()) {
-			ModelQueryAction action = (ModelQueryAction) iterator.next();
-			allActions.add(action);
-			if (action.getCMNode() instanceof HTMLElementDeclaration) {
-				HTMLElementDeclaration ed = (HTMLElementDeclaration) action.getCMNode();
-				String ommission = (String) ed.getProperty(HTMLCMProperties.OMIT_TYPE);
-				if (!childNames.contains(ed.getNodeName().toLowerCase()) && ((ommission != null) && (ommission.equals(HTMLCMProperties.Values.OMIT_BOTH)))) {
-					List implicitValidActions = new ArrayList();
-					modelQuery.getInsertActions(parent, ed, 0, ModelQuery.INCLUDE_CHILD_NODES, ModelQuery.VALIDITY_NONE, implicitValidActions);
-					if (implicitValidActions != null) {
-						Iterator implicitValidActionsIterator = implicitValidActions.iterator();
-						while (implicitValidActionsIterator.hasNext()) {
-							ModelQueryAction insertAction = new NonValidatingModelQueryAction(((ModelQueryAction) implicitValidActionsIterator.next()).getCMNode(), ModelQueryAction.INSERT, 0, parent.getChildNodes().getLength(), null);
-							allActions.add(insertAction);
-						}
-					}
-				}
-			}
-		}
-		return allActions;
-	}
-
-	protected List getAvailableRootChildren(Document document, int childIndex) {
-		List list = new ArrayList();
-		if (!isXMLFormat(document))
-			getAdditionalChildren(list, document, childIndex);
-		return list;
-	}
-
-	protected void init() {
-		super.init();
-	}
-
-	public void setErrorMessage(String errorMessage) {
-		if (depthCount == 0)
-			fErrorMessage = errorMessage;
-	}
-
-	/**
-	 * This method is acting as a "catch all" for pulling together content
-	 * assist proposals from different Processors when document partitioning
-	 * alone couldn't determine definitively what content assist should show
-	 * up at that particular position in the document
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(ITextViewer,
-	 *      int)
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentPosition) {
-		fTemplateContexts.clear();
-
-		IStructuredDocumentRegion sdRegion = ContentAssistUtils.getStructuredDocumentRegion((StructuredTextViewer) viewer, documentPosition);
-		fViewer = viewer;
-		ICompletionProposal[] jspResults = EMPTY_PROPOSAL_SET;
-		ICompletionProposal[] embeddedResults = EMPTY_PROPOSAL_SET;
-
-		// check the actual partition type
-		String partitionType = getPartitionType((StructuredTextViewer) viewer, documentPosition);
-		IStructuredDocument structuredDocument = (IStructuredDocument) viewer.getDocument();
-
-		IStructuredDocumentRegion fn = structuredDocument.getRegionAtCharacterOffset(documentPosition);
-
-		// ////////////////////////////////////////////////////////////////////////////
-		// ANOTHER WORKAROUND UNTIL PARTITIONING TAKES CARE OF THIS
-		// check for xml-jsp tags...
-		if (partitionType == IJSPPartitions.JSP_DIRECTIVE && fn != null) {
-			IStructuredDocumentRegion possibleXMLJSP = ((fn.getType() == DOMRegionContext.XML_CONTENT) && fn.getPrevious() != null) ? fn.getPrevious() : fn;
-			ITextRegionList regions = possibleXMLJSP.getRegions();
-			if (regions.size() > 1) {
-				// check bounds cases
-				ITextRegion xmlOpenOrClose = regions.get(0);
-				if (xmlOpenOrClose.getType() == DOMRegionContext.XML_TAG_OPEN && documentPosition == possibleXMLJSP.getStartOffset()) {
-					// do regular jsp content assist
-				}
-				else if (xmlOpenOrClose.getType() == DOMRegionContext.XML_END_TAG_OPEN && documentPosition > possibleXMLJSP.getStartOffset()) {
-					// do regular jsp content assist
-				}
-				else {
-					// possible xml-jsp
-					ITextRegion nameRegion = regions.get(1);
-					String name = possibleXMLJSP.getText(nameRegion);
-					if (name.equals("jsp:scriptlet") || name.equals("jsp:expression") || name.equals("jsp:declaration")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						return getJSPJavaCompletionProposals(viewer, documentPosition);
-					}
-				}
-			}
-		}
-
-		// ////////////////////////////////////////////////////////////////////////////
-		// ** THIS IS A TEMP FIX UNTIL PARTITIONING TAKES CARE OF THIS...
-		// check for XML-JSP in a <script> region
-		if (partitionType == IJSPPartitions.JSP_CONTENT_JAVASCRIPT || partitionType == IHTMLPartitions.SCRIPT) {
-			// fn should be block text
-			IStructuredDocumentRegion decodedSDRegion = decodeScriptBlock(fn.getFullText());
-			// System.out.println("decoded > " +
-			// blockOfText.substring(decodedSDRegion.getStartOffset(),
-			// decodedSDRegion.getEndOffset()));
-			if (decodedSDRegion != null) {
-				IStructuredDocumentRegion sdr = decodedSDRegion;
-				while (sdr != null) {
-					// System.out.println("sdr " + sdr.getType());
-					// System.out.println("sdr > " +
-					// blockOfText.substring(sdr.getStartOffset(),
-					// sdr.getEndOffset()));
-					if (sdr.getType() == DOMJSPRegionContexts.JSP_CONTENT) {
-						if (documentPosition >= fn.getStartOffset() + sdr.getStartOffset() && documentPosition <= fn.getStartOffset() + sdr.getEndOffset()) {
-							return getJSPJavaCompletionProposals(viewer, documentPosition);
-						}
-					}
-					else if (sdr.getType() == DOMRegionContext.XML_TAG_NAME) {
-						if (documentPosition > fn.getStartOffset() + sdr.getStartOffset() && documentPosition < fn.getStartOffset() + sdr.getEndOffset()) {
-							return EMPTY_PROPOSAL_SET;
-						}
-						else if (documentPosition == fn.getStartOffset() + sdr.getEndOffset() && sdr.getNext() != null && sdr.getNext().getType() == DOMJSPRegionContexts.JSP_CONTENT) {
-							// the end of an open tag <script>
-							// <jsp:scriptlet>| blah </jsp:scriptlet>
-							return getJSPJavaCompletionProposals(viewer, documentPosition);
-						}
-						else if (documentPosition == fn.getStartOffset() + sdr.getStartOffset() && sdr.getPrevious() != null && sdr.getPrevious().getType() == DOMRegionContext.XML_TAG_NAME) {
-							return getJSPJavaCompletionProposals(viewer, documentPosition);
-						}
-					}
-					sdr = sdr.getNext();
-				}
-			}
-		}
-		// /////////////////////////////////////////////////////////////////////////
-		// check special JSP delimiter cases
-		if (fn != null && partitionType == IJSPPartitions.JSP_CONTENT_DELIMITER) {
-			IStructuredDocumentRegion fnDelim = fn;
-
-			// if it's a nested JSP region, need to get the correct
-			// StructuredDocumentRegion
-			// not sure why this check was there...
-			// if (fnDelim.getType() == XMLRegionContext.BLOCK_TEXT) {
-			Iterator blockRegions = fnDelim.getRegions().iterator();
-			ITextRegion temp = null;
-			ITextRegionContainer trc;
-			while (blockRegions.hasNext()) {
-				temp = (ITextRegion) blockRegions.next();
-				// we hit a nested
-				if (temp instanceof ITextRegionContainer) {
-					trc = (ITextRegionContainer) temp;
-					// it's in this region
-					if (documentPosition >= trc.getStartOffset() && documentPosition < trc.getEndOffset()) {
-						Iterator nestedJSPRegions = trc.getRegions().iterator();
-						while (nestedJSPRegions.hasNext()) {
-							temp = (ITextRegion) nestedJSPRegions.next();
-							if (XMLContentAssistUtilities.isJSPOpenDelimiter(temp.getType()) && documentPosition == trc.getStartOffset(temp)) {
-								// HTML content assist
-								// we actually want content assist for the
-								// previous type of region,
-								// well get those proposals from the embedded
-								// adapter
-								if (documentPosition > 0) {
-									partitionType = getPartitionType((StructuredTextViewer) viewer, documentPosition - 1);
-									break;
-								}
-							}
-							else if (XMLContentAssistUtilities.isJSPCloseDelimiter(temp.getType()) && documentPosition == trc.getStartOffset(temp)) {
-								// JSP content assist
-								return getJSPJavaCompletionProposals(viewer, documentPosition);
-							}
-						}
-					}
-				}
-				// }
-			}
-
-			// take care of XML-JSP delimter cases
-			if (XMLContentAssistUtilities.isXMLJSPDelimiter(fnDelim)) {
-				// since it's a delimiter, we know it's a ITextRegionContainer
-				ITextRegion firstRegion = fnDelim.getRegions().get(0);
-				if (fnDelim.getStartOffset() == documentPosition && (firstRegion.getType() == DOMRegionContext.XML_TAG_OPEN)) {
-					// |<jsp:scriptlet> </jsp:scriptlet>
-					// (pa) commented out so that we get regular behavior JSP
-					// macros etc...
-					// return getHTMLCompletionProposals(viewer,
-					// documentPosition);
-				}
-				else if (fnDelim.getStartOffset() == documentPosition && (firstRegion.getType() == DOMRegionContext.XML_END_TAG_OPEN)) {
-					// <jsp:scriptlet> |</jsp:scriptlet>
-					// check previous partition type to see if it's JAVASCRIPT
-					// if it is, we're just gonna let the embedded JAVASCRIPT
-					// adapter get the proposals
-					if (documentPosition > 0) {
-						String checkType = getPartitionType((StructuredTextViewer) viewer, documentPosition - 1);
-						if (checkType != IJSPPartitions.JSP_CONTENT_JAVASCRIPT) { // this
-							// check
-							// is
-							// failing
-							// for
-							// XML-JSP
-							// (region
-							// is
-							// not
-							// javascript...)
-							return getJSPJavaCompletionProposals(viewer, documentPosition);
-						}
-						partitionType = IJSPPartitions.JSP_CONTENT_JAVASCRIPT;
-					}
-				}
-				else if ((firstRegion.getType() == DOMRegionContext.XML_TAG_OPEN) && documentPosition >= fnDelim.getEndOffset()) {
-					// anything else inbetween
-					return getJSPJavaCompletionProposals(viewer, documentPosition);
-				}
-			}
-			else if (XMLContentAssistUtilities.isJSPDelimiter(fnDelim)) {
-				// the delimiter <%, <%=, <%!, ...
-				if (XMLContentAssistUtilities.isJSPCloseDelimiter(fnDelim)) {
-					if (documentPosition == fnDelim.getStartOffset()) {
-						// check previous partition type to see if it's
-						// JAVASCRIPT
-						// if it is, we're just gonna let the embedded
-						// JAVASCRIPT adapter get the proposals
-						if (documentPosition > 0) {
-							String checkType = getPartitionType((StructuredTextViewer) viewer, documentPosition - 1);
-							if (checkType != IJSPPartitions.JSP_CONTENT_JAVASCRIPT) {
-								return getJSPJavaCompletionProposals(viewer, documentPosition);
-							}
-							partitionType = IJSPPartitions.JSP_CONTENT_JAVASCRIPT;
-						}
-					}
-				}
-				else if (XMLContentAssistUtilities.isJSPOpenDelimiter(fnDelim)) {
-					// if it's the first position of open delimiter
-					// use embedded HTML results
-					if (documentPosition == fnDelim.getStartOffset()) {
-						embeddedResults = getHTMLCompletionProposals(viewer, documentPosition);
-					}
-					else if (documentPosition == fnDelim.getEndOffset()) {
-						// it's at the EOF <%|
-						return getJSPJavaCompletionProposals(viewer, documentPosition);
-					}
-				}
-			}
-		}
-
-		// need to check if it's JSP region inside of CDATA w/ no region
-		// <![CDATA[ <%|%> ]]>
-		// or a comment region
-		// <!-- <% |%> -->
-		if (fn != null && (fn.getType() == DOMRegionContext.XML_CDATA_TEXT || fn.getType() == DOMRegionContext.XML_COMMENT_TEXT)) {
-			if (fn instanceof ITextRegionContainer) {
-				Object[] cdataRegions = fn.getRegions().toArray();
-				ITextRegion r = null;
-				ITextRegion jspRegion = null;
-				for (int i = 0; i < cdataRegions.length; i++) {
-					r = (ITextRegion) cdataRegions[i];
-					if (r instanceof ITextRegionContainer) {
-						// CDATA embedded container, or comment container
-						Object[] jspRegions = ((ITextRegionContainer) r).getRegions().toArray();
-						for (int j = 0; j < jspRegions.length; j++) {
-							jspRegion = (ITextRegion) jspRegions[j];
-							if (jspRegion.getType() == DOMJSPRegionContexts.JSP_CLOSE) {
-								if (sdRegion.getStartOffset(jspRegion) == documentPosition)
-									return getJSPJavaCompletionProposals(viewer, documentPosition);
-							}
-						}
-					}
-				}
-
-			}
-		}
-
-		// check if it's in an attribute value, if so, don't add CDATA
-		// proposal
-		ITextRegion attrContainer = (fn != null) ? fn.getRegionAtCharacterOffset(documentPosition) : null;
-		if (attrContainer != null && attrContainer instanceof ITextRegionContainer) {
-			if (attrContainer.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				// test location of the cursor
-				// return null if it's in the middle of an open/close
-				// delimeter
-				Iterator attrRegions = ((ITextRegionContainer) attrContainer).getRegions().iterator();
-				ITextRegion testRegion = null;
-				while (attrRegions.hasNext()) {
-					testRegion = (ITextRegion) attrRegions.next();
-					// need to check for other valid attribute regions
-					if (XMLContentAssistUtilities.isJSPOpenDelimiter(testRegion.getType())) {
-						if (!(((ITextRegionContainer) attrContainer).getEndOffset(testRegion) <= documentPosition))
-							return EMPTY_PROPOSAL_SET;
-					}
-					else if (XMLContentAssistUtilities.isJSPCloseDelimiter(testRegion.getType())) {
-						if (!(((ITextRegionContainer) attrContainer).getStartOffset(testRegion) >= documentPosition))
-							return EMPTY_PROPOSAL_SET;
-					}
-				}
-				// TODO: handle non-Java code such as nested tags
-				if (testRegion.getType().equals(DOMJSPRegionContexts.JSP_CONTENT))
-					return getJSPJavaCompletionProposals(viewer, documentPosition);
-				return EMPTY_PROPOSAL_SET;
-			}
-		}
-
-		IContentAssistProcessor p = (IContentAssistProcessor) fPartitionToProcessorMap.get(partitionType);
-		if (p != null) {
-			embeddedResults = p.computeCompletionProposals(viewer, documentPosition);
-			// get bean methods, objects, and constants if there are any...
-			if (partitionType == IJSPPartitions.JSP_CONTENT_JAVASCRIPT || partitionType == IHTMLPartitions.SCRIPT) {
-				ICompletionProposal[] beanResults = getJSPJavaBeanProposals(viewer, documentPosition);
-				if (beanResults != null && beanResults.length > 0) {
-					ICompletionProposal[] added = new ICompletionProposal[beanResults.length + embeddedResults.length];
-					System.arraycopy(beanResults, 0, added, 0, beanResults.length);
-					System.arraycopy(embeddedResults, 0, added, beanResults.length, embeddedResults.length);
-					embeddedResults = added;
-				}
-			}
-		}
-		else {
-			// the partition type is probably not mapped
-		}
-
-		// fix for:
-		// HTML content assist give JSP tags in between empty script tags
-		if (!(p instanceof JavaScriptContentAssistProcessor || p instanceof CSSContentAssistProcessor)) {
-			fTemplateContexts.clear();
-			jspResults = super.computeCompletionProposals(viewer, documentPosition);
-		}
-		if (useEmbeddedResults) {
-			if (embeddedResults != null && embeddedResults.length > 0) {
-				List results = new ArrayList();
-				for (int i = 0; i < embeddedResults.length; i++)
-					results.add(embeddedResults[i]);
-				if (jspResults != null) {
-					for (int i = 0; i < jspResults.length; i++)
-						results.add(jspResults[i]);
-				}
-				jspResults = new ICompletionProposal[results.size()];
-				Collections.sort(results, new ProposalComparator());
-				for (int i = 0; i < results.size(); i++)
-					jspResults[i] = (ICompletionProposal) results.get(i);
-
-			}
-		}
-		if (jspResults == null)
-			jspResults = EMPTY_PROPOSAL_SET;
-		setErrorMessage(jspResults.length == 0 ? UNKNOWN_CONTEXT : null);
-
-		// fix for:
-		// check for |<%-- --%> first position of jsp comment
-		if (partitionType == IJSPPartitions.JSP_COMMENT) {
-			if (sdRegion.getStartOffset() == documentPosition) {
-				ICompletionProposal[] htmlResults = getHTMLCompletionProposals(viewer, documentPosition);
-				jspResults = merge(jspResults, htmlResults);
-			}
-		}
-
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=86656
-		if (partitionType == IJSPPartitions.JSP_DIRECTIVE) {
-			ICompletionProposal[] importProposals = getImportProposals(viewer, documentPosition);
-			if (importProposals.length > 0)
-				jspResults = merge(jspResults, importProposals);
-		}
-		return jspResults;
-	}
-
-	private ICompletionProposal[] getImportProposals(ITextViewer viewer, int documentPosition) {
-		List importProposals = new ArrayList();
-		ICompletionProposal[] proposals = getJSPJavaCompletionProposals(viewer, documentPosition);
-		for (int i = 0; i < proposals.length; i++) {
-			if (proposals[i] instanceof JSPCompletionProposal) {
-
-				ICompletionProposal importProposal = adjustImportProposal((JSPCompletionProposal) proposals[i]);
-				importProposals.add(importProposal);
-			}
-		}
-		return (ICompletionProposal[]) importProposals.toArray(new ICompletionProposal[importProposals.size()]);
-	}
-
-
-	private ICompletionProposal adjustImportProposal(JSPCompletionProposal importProposal) {
-
-		// just need to remove the ";"
-		// and adjust offsets for the change
-		String newReplace = importProposal.getReplacementString().replaceAll(";", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		importProposal.setReplacementString(newReplace);
-
-		String newDisplay = importProposal.getDisplayString().replaceAll(";", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		importProposal.setDisplayString(newDisplay);
-
-		int newReplacementLength = importProposal.getReplacementLength() - 1;
-		importProposal.setReplacementLength(newReplacementLength);
-
-		int newCursorPosition = importProposal.getCursorPosition() - 1;
-		importProposal.setCursorPosition(newCursorPosition);
-
-		return importProposal;
-	}
-
-	/**
-	 * Adds 2 arrays of ICompletionProposals and sorts them with a
-	 * ProposalComparator.
-	 * 
-	 * @param jspResults
-	 * @param htmlResults
-	 * @return
-	 */
-	private ICompletionProposal[] merge(ICompletionProposal[] jspResults, ICompletionProposal[] htmlResults) {
-		List results = new ArrayList();
-		List jsps = Arrays.asList(jspResults);
-		List htmls = Arrays.asList(htmlResults);
-
-		results.addAll(jsps);
-		results.addAll(htmls);
-
-		Collections.sort(results, new ProposalComparator());
-		return (ICompletionProposal[]) results.toArray(new ICompletionProposal[results.size()]);
-	}
-
-	/*
-	 * This method will return JSPJava Proposals that are relevant to any java
-	 * beans that in scope at the documentPosition
-	 * 
-	 * TODO (pa) are taglib vars getting filtered?
-	 * 
-	 * @param viewer @param documentPosition @return ICompletionProposal[]
-	 */
-	private ICompletionProposal[] getJSPJavaBeanProposals(ITextViewer viewer, int documentPosition) {
-		ICompletionProposal[] regularJSPResults = getJSPJavaCompletionProposals(viewer, documentPosition);
-		Vector filteredProposals = new Vector();
-		ICompletionProposal[] finalResults = EMPTY_PROPOSAL_SET;
-		for (int i = 0; i < regularJSPResults.length; i++) {
-			ICompletionProposal test = regularJSPResults[i];
-
-			System.out.println("proposal > " + test.getDisplayString()); //$NON-NLS-1$
-			System.out.println("relevance > " + ((CustomCompletionProposal) test).getRelevance()); //$NON-NLS-1$
-
-			if (isRelevanceAllowed(((CustomCompletionProposal) test).getRelevance())) {
-				filteredProposals.add(test);
-			}
-		}
-		if (filteredProposals.size() > 0) {
-			finalResults = new ICompletionProposal[filteredProposals.size()];
-			Iterator it = filteredProposals.iterator();
-			int j = 0;
-			while (it.hasNext()) {
-				finalResults[j++] = (ICompletionProposal) it.next();
-			}
-		}
-		return finalResults;
-	}
-
-	// These are the only things I'm allowing for use bean if the language is
-	// JAVASCRIPT
-	// I'm filtering based on JavaContentAssistProposal relevance
-	//
-	// 485 > method that belongs to the bean
-	// 486 > bean object
-	// 386 > bean CONSTANT
-	private boolean isRelevanceAllowed(int relevance) {
-		return (relevance == 485 || relevance == 486 || relevance == 326);
-	}
-
-
-	/**
-	 * 
-	 * @param viewer
-	 * @param documentPosition
-	 * @return ICompletionProposal[]
-	 */
-	private ICompletionProposal[] getHTMLCompletionProposals(ITextViewer viewer, int documentPosition) {
-
-		IContentAssistProcessor p = (IContentAssistProcessor) fPartitionToProcessorMap.get(IHTMLPartitions.HTML_DEFAULT);
-		return p.computeCompletionProposals(viewer, documentPosition);
-	}
-
-	/**
-	 * 
-	 * @param viewer
-	 * @param documentPosition
-	 * @return ICompletionProposal[]
-	 */
-	protected ICompletionProposal[] getJSPJavaCompletionProposals(ITextViewer viewer, int documentPosition) {
-		JSPJavaContentAssistProcessor p = (JSPJavaContentAssistProcessor) fPartitionToProcessorMap.get(IJSPPartitions.JSP_DEFAULT);
-		return p.computeCompletionProposals(viewer, documentPosition);
-	}
-
-	/**
-	 * @param viewer
-	 * @param documentPosition
-	 * @return String
-	 */
-	protected String getPartitionType(StructuredTextViewer viewer, int documentPosition) {
-		String partitionType = null;
-		try {
-			partitionType = TextUtilities.getContentType(viewer.getDocument(), IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING, viewer.modelOffset2WidgetOffset(documentPosition), false);
-		}
-		catch (BadLocationException e) {
-			partitionType = IDocument.DEFAULT_CONTENT_TYPE;
-		}
-		return partitionType;
-	}
-
-	/*
-	 * ** TEMP WORKAROUND FOR CMVC 241882 Takes a String and blocks out
-	 * jsp:scriptlet, jsp:expression, and jsp:declaration @param blockText
-	 * @return
-	 */
-	private IStructuredDocumentRegion decodeScriptBlock(String blockText) {
-		XMLSourceParser parser = new XMLSourceParser();
-		// use JSP_CONTENT for region type
-		parser.addBlockMarker(new BlockMarker("jsp:scriptlet", null, DOMJSPRegionContexts.JSP_CONTENT, false, false)); //$NON-NLS-1$
-		parser.addBlockMarker(new BlockMarker("jsp:expression", null, DOMJSPRegionContexts.JSP_CONTENT, false, false)); //$NON-NLS-1$
-		parser.addBlockMarker(new BlockMarker("jsp:declaration", null, DOMJSPRegionContexts.JSP_CONTENT, false, false)); //$NON-NLS-1$
-		parser.reset(blockText);
-		return parser.getDocumentRegions();
-	}
-
-	/*
-	 * @see ContentAssistAdapter#computeContextInformation(ITextViewer, int,
-	 *      IndexedRegion)
-	 */
-	public IContextInformation[] computeContextInformation(ITextViewer viewer, int documentOffset, IndexedRegion indexedNode) {
-		return super.computeContextInformation(viewer, documentOffset);
-	}
-
-	/*
-	 * @see ContentAssistAdapter#getContextInformationAutoActivationCharacters()
-	 */
-	public char[] getContextInformationAutoActivationCharacters() {
-		return super.getContextInformationAutoActivationCharacters();
-	}
-
-
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		IPreferenceStore store = JSPUIPlugin.getDefault().getPreferenceStore();
-		String key = JSPUIPreferenceNames.AUTO_PROPOSE_CODE;
-
-		String chars = store.getString(key);
-		return (chars != null) ? chars.toCharArray() : new char[0];
-	}
-
-	/*
-	 * @see ContentAssistAdapter#getContextInformationValidator()
-	 */
-	public IContextInformationValidator getContextInformationValidator() {
-		return super.getContextInformationValidator();
-	}
-
-	protected boolean isXMLFormat(Document doc) {
-		if (doc == null)
-			return false;
-		Element docElement = doc.getDocumentElement();
-		return docElement != null && ((docElement.getNodeName().equals("jsp:root")) || ((((IDOMNode) docElement).getStartStructuredDocumentRegion() == null && ((IDOMNode) docElement).getEndStructuredDocumentRegion() == null))); //$NON-NLS-1$
-	}
-
-	/*
-	 * @see ContentAssistAdapter#release()
-	 */
-	public void release() {
-		super.release();
-		// release *ContentAssistProcessors in maps
-		// CMVC 254023
-		releasePartitionToProcessorMap();
-		releaseNameToProcessorMap();
-	}
-
-	protected void releasePartitionToProcessorMap() {
-		releaseMap(fPartitionToProcessorMap);
-	}
-
-	protected void releaseNameToProcessorMap() {
-		releaseMap(fNameToProcessorMap);
-	}
-
-	protected void releaseMap(HashMap map) {
-		if (map != null) {
-			if (!map.isEmpty()) {
-				Iterator it = map.keySet().iterator();
-				Object key = null;
-				while (it.hasNext()) {
-					key = it.next();
-					if (map.get(key) instanceof IReleasable) {
-						((IReleasable) map.get(key)).release();
-					}
-				}
-			}
-			map.clear();
-			map = null;
-		}
-	}
-
-	/**
-	 * @see AbstractContentAssistProcessor#computeCompletionProposals(int,
-	 *      String, ITextRegion, IDOMNode, IDOMNode)
-	 */
-	protected ContentAssistRequest computeCompletionProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
-
-		ContentAssistRequest request = super.computeCompletionProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-		IStructuredDocumentRegion sdRegion = ContentAssistUtils.getStructuredDocumentRegion((StructuredTextViewer) fTextViewer, documentPosition);
-
-		Document doc = null;
-		if (xmlnode != null) {
-			if (xmlnode.getNodeType() == Node.DOCUMENT_NODE)
-				doc = (Document) xmlnode;
-			else
-				doc = xmlnode.getOwnerDocument();
-		}
-		String[] directiveNames = {"page", "include", "taglib"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		// suggest JSP Expression inside of XML comments
-		if (completionRegion.getType() == DOMRegionContext.XML_COMMENT_TEXT && !isXMLFormat(doc)) {
-			if (request == null)
-				request = newContentAssistRequest(treeNode, xmlnode, sdRegion, completionRegion, documentPosition, 0, ""); //$NON-NLS-1$
-			request.addProposal(new CustomCompletionProposal("<%=  %>", documentPosition, 0, 4, JSPEditorPluginImageHelper.getInstance().getImage(JSPEditorPluginImages.IMG_OBJ_TAG_GENERIC), "jsp:expression", null, "&lt;%= %&gt;", XMLRelevanceConstants.R_JSP)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-		// handle proposals in and around JSP_DIRECTIVE_OPEN and
-		// JSP_DIRECTIVE_NAME
-		else if ((completionRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN && documentPosition >= sdRegion.getTextEndOffset(completionRegion)) || (completionRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME && documentPosition <= sdRegion.getTextEndOffset(completionRegion))) {
-			if (completionRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) {
-				if (request == null)
-					request = newContentAssistRequest(xmlnode, xmlnode, sdRegion, completionRegion, documentPosition, 0, matchString);
-				Iterator regions = sdRegion.getRegions().iterator();
-				String nameString = null;
-				int begin = request.getReplacementBeginPosition();
-				int length = request.getReplacementLength();
-				while (regions.hasNext()) {
-					ITextRegion region = (ITextRegion) regions.next();
-					if (region.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-						nameString = sdRegion.getText(region);
-						begin = sdRegion.getStartOffset(region);
-						length = region.getTextLength();
-						break;
-					}
-				}
-				if (nameString == null)
-					nameString = ""; //$NON-NLS-1$
-				for (int i = 0; i < directiveNames.length; i++) {
-					if (directiveNames[i].startsWith(nameString) || documentPosition <= begin)
-						request.addProposal(new CustomCompletionProposal(directiveNames[i], begin, length, directiveNames[i].length(), JSPEditorPluginImageHelper.getInstance().getImage(JSPEditorPluginImages.IMG_OBJ_TAG_GENERIC), directiveNames[i], null, null, XMLRelevanceConstants.R_JSP));
-				}
-			}
-			else { // by default, JSP_DIRECTIVE_NAME
-				if (request == null)
-					request = newContentAssistRequest(xmlnode, xmlnode, sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), completionRegion.getTextLength(), matchString);
-				for (int i = 0; i < directiveNames.length; i++) {
-					if (directiveNames[i].startsWith(matchString))
-						request.addProposal(new CustomCompletionProposal(directiveNames[i], request.getReplacementBeginPosition(), request.getReplacementLength(), directiveNames[i].length(), JSPEditorPluginImageHelper.getInstance().getImage(JSPEditorPluginImages.IMG_OBJ_TAG_GENERIC), directiveNames[i], null, null, XMLRelevanceConstants.R_JSP));
-				}
-			}
-		}
-		else if ((completionRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME && documentPosition > sdRegion.getTextEndOffset(completionRegion)) || (completionRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE && documentPosition <= sdRegion.getStartOffset(completionRegion))) {
-			if (request == null)
-				request = computeAttributeProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			super.addTagCloseProposals(request);
-			// CMVC 274033, this is being added for all <jsp:* tags
-			// in addAttributeNameProposals(contentAssistRequest)
-			// super.addAttributeNameProposals(request);
-		}
-		// no name?: <%@ %>
-		else if (completionRegion.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE && documentPosition <= sdRegion.getStartOffset(completionRegion)) {
-			if (request != null)
-				request = computeAttributeProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			Iterator regions = sdRegion.getRegions().iterator();
-			String nameString = null;
-			while (regions.hasNext()) {
-				ITextRegion region = (ITextRegion) regions.next();
-				if (region.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-					nameString = sdRegion.getText(region);
-					break;
-				}
-			}
-			if (nameString == null) {
-				for (int i = 0; i < directiveNames.length; i++) {
-					request.addProposal(new CustomCompletionProposal(directiveNames[i], request.getReplacementBeginPosition(), request.getReplacementLength(), directiveNames[i].length(), JSPEditorPluginImageHelper.getInstance().getImage(JSPEditorPluginImages.IMG_OBJ_TAG_GENERIC), directiveNames[i], null, null, XMLRelevanceConstants.R_JSP));
-				}
-			}
-		}
-
-		// bug115927 use original document position for all/any region templates
-		addTemplates(request, TemplateContextTypeIdsJSP.ALL, documentPosition);
-		return request;
-	}
-
-	private JSPTemplateCompletionProcessor getTemplateCompletionProcessor() {
-		if (fTemplateProcessor == null) {
-			fTemplateProcessor = new JSPTemplateCompletionProcessor();
-		}
-		return fTemplateProcessor;
-	}
-
-	/**
-	 * Adds templates to the list of proposals
-	 * 
-	 * @param contentAssistRequest
-	 * @param context
-	 */
-	private void addTemplates(ContentAssistRequest contentAssistRequest, String context) {
-		addTemplates(contentAssistRequest, context, contentAssistRequest.getReplacementBeginPosition());
-	}
-	
-	/**
-	 * Adds templates to the list of proposals
-	 * 
-	 * @param contentAssistRequest
-	 * @param context
-	 */
-	private void addTemplates(ContentAssistRequest contentAssistRequest, String context, int startOffset) {
-		if (contentAssistRequest == null)
-			return;
-
-		// if already adding template proposals for a certain context type, do
-		// not add again
-		if (!fTemplateContexts.contains(context)) {
-			fTemplateContexts.add(context);
-			boolean useProposalList = !contentAssistRequest.shouldSeparate();
-
-			if (getTemplateCompletionProcessor() != null) {
-				getTemplateCompletionProcessor().setContextType(context);
-				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, startOffset);
-				for (int i = 0; i < proposals.length; ++i) {
-					if (useProposalList)
-						contentAssistRequest.addProposal(proposals[i]);
-					else
-						contentAssistRequest.addMacro(proposals[i]);
-				}
-			}
-		}
-	}
-	
-	protected void addEntityProposals(ContentAssistRequest contentAssistRequest, int documentPosition, ITextRegion completionRegion, IDOMNode treeNode) {
-		// ignore
-	}
-
-	protected void addTagInsertionProposals(ContentAssistRequest contentAssistRequest, int childPosition) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsJSP.TAG);
-
-		super.addTagInsertionProposals(contentAssistRequest, childPosition);
-		if (isInternalAdapter)
-			useEmbeddedResults = false;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPDummyContentAssistProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPDummyContentAssistProcessor.java
deleted file mode 100644
index 19f2aa5..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPDummyContentAssistProcessor.java
+++ /dev/null
@@ -1,304 +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.ui.internal.contentassist;
-
-import java.util.List;
-import java.util.Properties;
-import java.util.Vector;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.contentassist.AbstractContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentModelGenerator;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * This class is a "null" version of AbstractContentAssistProcessor
- * 
- * @plannedfor 1.0
- */
-public class JSPDummyContentAssistProcessor extends AbstractContentAssistProcessor {
-	protected void addAttributeNameProposals(ContentAssistRequest contentAssistRequest) {
-		super.addAttributeNameProposals(contentAssistRequest);
-	}
-
-	protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest) {
-		super.addAttributeValueProposals(contentAssistRequest);
-	}
-
-
-	protected void addCommentProposal(ContentAssistRequest contentAssistRequest) {
-		super.addCommentProposal(contentAssistRequest);
-	}
-
-
-	protected void addContent(List contentList, CMContent content) {
-		super.addContent(contentList, content);
-	}
-
-
-	protected void addDocTypeProposal(ContentAssistRequest contentAssistRequest) {
-		super.addDocTypeProposal(contentAssistRequest);
-	}
-
-
-	protected void addEmptyDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		super.addEmptyDocumentProposals(contentAssistRequest);
-	}
-
-
-	protected void addEndTagNameProposals(ContentAssistRequest contentAssistRequest) {
-		super.addEndTagNameProposals(contentAssistRequest);
-	}
-
-
-	protected void addEndTagProposals(ContentAssistRequest contentAssistRequest) {
-		super.addEndTagProposals(contentAssistRequest);
-	}
-
-
-	protected void addEntityProposals(ContentAssistRequest contentAssistRequest, int documentPosition, ITextRegion completionRegion, IDOMNode treeNode) {
-		super.addEntityProposals(contentAssistRequest, documentPosition, completionRegion, treeNode);
-	}
-
-
-	protected void addEntityProposals(Vector proposals, Properties map, String key, int nodeOffset, IStructuredDocumentRegion parent, ITextRegion completionRegion) {
-		super.addEntityProposals(proposals, map, key, nodeOffset, parent, completionRegion);
-	}
-
-
-	protected void addPCDATAProposal(String nodeName, ContentAssistRequest contentAssistRequest) {
-		super.addPCDATAProposal(nodeName, contentAssistRequest);
-	}
-
-
-	protected void addStartDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		super.addStartDocumentProposals(contentAssistRequest);
-	}
-
-
-	protected void addTagCloseProposals(ContentAssistRequest contentAssistRequest) {
-		super.addTagCloseProposals(contentAssistRequest);
-	}
-
-
-	protected void addTagInsertionProposals(ContentAssistRequest contentAssistRequest, int childPosition) {
-		super.addTagInsertionProposals(contentAssistRequest, childPosition);
-	}
-
-
-	protected void addTagNameProposals(ContentAssistRequest contentAssistRequest, int childPosition) {
-		super.addTagNameProposals(contentAssistRequest, childPosition);
-	}
-
-	protected boolean attributeInList(IDOMNode node, Node parent, CMNode cmnode) {
-		return super.attributeInList(node, parent, cmnode);
-	}
-
-
-	protected boolean beginsWith(String aString, String prefix) {
-		return super.beginsWith(aString, prefix);
-	}
-
-
-	protected ContentAssistRequest computeAttributeProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeAttributeProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-
-	protected ContentAssistRequest computeAttributeValueProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeAttributeValueProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-
-	protected ContentAssistRequest computeCompletionProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
-		return super.computeCompletionProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-	}
-
-
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) {
-		return super.computeCompletionProposals(viewer, documentOffset);
-	}
-
-
-	protected ContentAssistRequest computeContentProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeContentProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IContextInformation[] computeContextInformation(ITextViewer viewer, int documentOffset) {
-		return super.computeContextInformation(viewer, documentOffset);
-	}
-
-	protected ContentAssistRequest computeEndTagOpenProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeEndTagOpenProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-
-	protected ICompletionProposal[] computeEntityReferenceProposals(int documentPosition, ITextRegion completionRegion, IDOMNode treeNode) {
-		return super.computeEntityReferenceProposals(documentPosition, completionRegion, treeNode);
-	}
-
-	protected ContentAssistRequest computeEqualsProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeEqualsProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-	protected ContentAssistRequest computeStartDocumentProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeStartDocumentProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-	protected ContentAssistRequest computeTagCloseProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeTagCloseProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-	protected ContentAssistRequest computeTagNameProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeTagNameProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-	protected ContentAssistRequest computeTagOpenProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		return super.computeTagOpenProposals(documentPosition, matchString, completionRegion, nodeAtOffset, node);
-	}
-
-	protected String getAdditionalInfo(CMNode parentOrOwner, CMNode cmnode) {
-		return super.getAdditionalInfo(parentOrOwner, cmnode);
-	}
-
-	protected List getAvailableChildrenAtIndex(Element parent, int index, int validityChecking) {
-		return super.getAvailableChildrenAtIndex(parent, index, validityChecking);
-	}
-
-	protected List getAvailableRootChildren(Document document, int childIndex) {
-		return super.getAvailableRootChildren(document, childIndex);
-	}
-
-	protected CMElementDeclaration getCMElementDeclaration(Node node) {
-		return super.getCMElementDeclaration(node);
-	}
-
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		return super.getCompletionProposalAutoActivationCharacters();
-	}
-
-	protected ITextRegion getCompletionRegion(int offset, IStructuredDocumentRegion flatNode) {
-		return super.getCompletionRegion(offset, flatNode);
-	}
-
-	protected ITextRegion getCompletionRegion(int documentPosition, Node domnode) {
-		return super.getCompletionRegion(documentPosition, domnode);
-	}
-
-	public XMLContentModelGenerator getContentGenerator() {
-		return super.getContentGenerator();
-	}
-
-	public char[] getContextInformationAutoActivationCharacters() {
-		return super.getContextInformationAutoActivationCharacters();
-	}
-
-	public IContextInformationValidator getContextInformationValidator() {
-		return super.getContextInformationValidator();
-	}
-
-	protected int getElementPosition(Node child) {
-		return super.getElementPosition(child);
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getErrorMessage()
-	 */
-	public String getErrorMessage() {
-		return super.getErrorMessage();
-	}
-
-	protected String getMatchString(IStructuredDocumentRegion parent, ITextRegion aRegion, int offset) {
-		return super.getMatchString(parent, aRegion, offset);
-	}
-
-	protected ITextRegion getNameRegion(IStructuredDocumentRegion flatNode) {
-		return super.getNameRegion(flatNode);
-	}
-
-
-	protected List getPossibleDataTypeValues(Node node, CMAttributeDeclaration ad) {
-		return super.getPossibleDataTypeValues(node, ad);
-	}
-
-
-	protected String getRequiredName(Node parentOrOwner, CMNode cmnode) {
-		return super.getRequiredName(parentOrOwner, cmnode);
-	}
-
-	protected String getRequiredText(Node parentOrOwner, CMAttributeDeclaration attrDecl) {
-		return super.getRequiredText(parentOrOwner, attrDecl);
-	}
-
-	protected String getRequiredText(Node parentOrOwner, CMElementDeclaration elementDecl) {
-		return super.getRequiredText(parentOrOwner, elementDecl);
-	}
-
-	protected List getValidChildElementDeclarations(Element parent, int childPosition, int kindOfAction) {
-		return super.getValidChildElementDeclarations(parent, childPosition, kindOfAction);
-	}
-
-	protected void init() {
-		super.init();
-	}
-
-	protected boolean isCloseRegion(ITextRegion region) {
-		return super.isCloseRegion(region);
-	}
-
-	protected boolean isNameRegion(ITextRegion region) {
-		return super.isNameRegion(region);
-	}
-
-	protected boolean isQuote(String string) {
-		return super.isQuote(string);
-	}
-
-	protected Properties mapToProperties(CMNamedNodeMap map) {
-		return super.mapToProperties(map);
-	}
-
-	public void setErrorMessage(String errorMessage) {
-		super.setErrorMessage(errorMessage);
-	}
-
-	protected void setErrorMessage(String errorMessage, String append) {
-		super.setErrorMessage(errorMessage, append);
-	}
-
-	protected void setErrorMessage(String errorMessage, String prepend, String append) {
-		super.setErrorMessage(errorMessage, prepend, append);
-	}
-
-	protected boolean stringsEqual(String a, String b) {
-		return super.stringsEqual(a, b);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELCompletionProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELCompletionProcessor.java
deleted file mode 100644
index 0ef4b79..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELCompletionProcessor.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-
-public class JSPELCompletionProcessor extends JSPCompletionProcessor {
-	protected JSPProposalCollector getProposalCollector(ICompilationUnit cu, JSPTranslation translation) {
-		return new JSPELProposalCollector(cu, translation);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELContentAssistProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELContentAssistProcessor.java
deleted file mode 100644
index 0d717f2..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELContentAssistProcessor.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.CMDocumentImpl;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDFunction;
-import org.eclipse.jst.jsp.core.internal.java.jspel.ASTExpression;
-import org.eclipse.jst.jsp.core.internal.java.jspel.ASTFunctionInvocation;
-import org.eclipse.jst.jsp.core.internal.java.jspel.FindFunctionInvocationVisitor;
-import org.eclipse.jst.jsp.core.internal.java.jspel.JSPELParser;
-import org.eclipse.jst.jsp.core.internal.java.jspel.JSPELParserConstants;
-import org.eclipse.jst.jsp.core.internal.java.jspel.JSPELParserTokenManager;
-import org.eclipse.jst.jsp.core.internal.java.jspel.ParseException;
-import org.eclipse.jst.jsp.core.internal.java.jspel.SimpleCharStream;
-import org.eclipse.jst.jsp.core.internal.java.jspel.Token;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-public class JSPELContentAssistProcessor extends JSPJavaContentAssistProcessor {
-	protected char elCompletionProposalAutoActivationCharacters[] = new char[]{'.', ':'};
-
-	protected JSPCompletionProcessor getJspCompletionProcessor() {
-		if (fJspCompletionProcessor == null) {
-			fJspCompletionProcessor = new JSPELCompletionProcessor();
-		}
-		return fJspCompletionProcessor;
-	}
-
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentPosition) {
-
-
-		// get results from JSP completion processor
-		fJspCompletionProcessor = getJspCompletionProcessor();
-		ICompletionProposal[] results = fJspCompletionProcessor.computeCompletionProposals(viewer, documentPosition);
-		fErrorMessage = fJspCompletionProcessor.getErrorMessage();
-		if (results.length == 0 && (fErrorMessage == null || fErrorMessage.length() == 0)) {
-			fErrorMessage = UNKNOWN_CONTEXT;
-		}
-
-		IStructuredDocumentRegion flat = ContentAssistUtils.getStructuredDocumentRegion((StructuredTextViewer) viewer, documentPosition);
-		
-		if (flat != null) {
-			ITextRegion cursorRegion = flat.getRegionAtCharacterOffset(documentPosition);
-			if (DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE == cursorRegion.getType()) {
-				ITextRegionContainer container = (ITextRegionContainer) cursorRegion;
-				cursorRegion = container.getRegionAtCharacterOffset(documentPosition);
-				if (cursorRegion.getType() == DOMJSPRegionContexts.JSP_EL_CONTENT) {
-					String elText = container.getText(cursorRegion).trim();
-					String prefix = getPrefix(documentPosition - container.getStartOffset(cursorRegion) - 1, elText);
-					if (null != prefix) {
-						List proposals = getFunctionProposals(prefix, (StructuredTextViewer) viewer, documentPosition);
-						results = new ICompletionProposal[proposals.size()];
-						proposals.toArray(results);
-					}
-				}
-			}
-		}
-
-
-		return results;
-	}
-
-	protected String getPrefix(int relativePosition, String elText) {
-		java.io.StringReader reader = new java.io.StringReader(elText);
-		JSPELParserTokenManager scanner = new JSPELParserTokenManager(new SimpleCharStream(reader, 1, 1));
-		Token curToken = null, lastIdentifier = null;
-		while (JSPELParserConstants.EOF != (curToken = scanner.getNextToken()).kind) {
-			if (JSPELParserConstants.COLON == curToken.kind && curToken.endColumn == relativePosition && null != lastIdentifier) {
-				return (lastIdentifier.image);
-			}
-
-			if (JSPELParserConstants.IDENTIFIER == curToken.kind) {
-				lastIdentifier = curToken;
-			}
-			else {
-				lastIdentifier = null;
-			}
-		}
-		return null;
-	}
-
-	protected ASTFunctionInvocation getInvocation(int relativePosition, String elText) {
-		FindFunctionInvocationVisitor visitor = new FindFunctionInvocationVisitor(relativePosition);
-		JSPELParser parser = JSPELParser.createParser(elText);
-		try {
-			ASTExpression expression = parser.Expression();
-			return (ASTFunctionInvocation) expression.jjtAccept(visitor, null);
-		}
-		catch (ParseException e) { /* parse exception = no completion */
-		}
-		return (null);
-	}
-
-
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		return elCompletionProposalAutoActivationCharacters;
-	}
-
-	protected List getFunctionProposals(String prefix, StructuredTextViewer viewer, int offset) {
-		TLDCMDocumentManager docMgr = TaglibController.getTLDCMDocumentManager(viewer.getDocument());
-		ArrayList completionList = new ArrayList();
-		if (docMgr == null)
-			return null;
-
-		Iterator taglibs = docMgr.getCMDocumentTrackers(offset).iterator();
-		while (taglibs.hasNext()) {
-			TaglibTracker tracker = (TaglibTracker) taglibs.next();
-			if (tracker.getPrefix().equals(prefix)) {
-				CMDocumentImpl doc = (CMDocumentImpl) tracker.getDocument();
-
-				List functions = doc.getFunctions();
-				for (Iterator it = functions.iterator(); it.hasNext();) {
-					TLDFunction function = (TLDFunction) it.next();
-					CustomCompletionProposal proposal = new CustomCompletionProposal(function.getName() + "()", //$NON-NLS-1$
-								offset, 0, function.getName().length() + 1, null, function.getName() + " - " + function.getSignature(), null, null, 1); //$NON-NLS-1$
-
-					completionList.add(proposal);
-				}
-			}
-		}
-		return completionList;
-	}
-
-
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELProposalCollector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELProposalCollector.java
deleted file mode 100644
index 2efe5ec..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPELProposalCollector.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import org.eclipse.jdt.core.CompletionProposal;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.swt.graphics.Image;
-
-public class JSPELProposalCollector extends JSPProposalCollector {
-
-	public JSPELProposalCollector(ICompilationUnit cu, JSPTranslation translation) {
-		super(cu, translation);
-	}
-
-	protected IJavaCompletionProposal createJavaCompletionProposal(CompletionProposal proposal) {
-		JSPCompletionProposal jspProposal = null;
-		
-		if(null == proposal || null == proposal.getName())
-			return(null);
-		
-		String rawName = new String(proposal.getName());
-		String completion = null;
-		
-		if(proposal.getKind() == CompletionProposal.METHOD_REF && proposal.findParameterNames(null).length == 0) {
-			if(rawName.length() > 3 && rawName.startsWith("get")) { //$NON-NLS-1$
-				completion = rawName.substring(3,4).toLowerCase() + rawName.substring(4, rawName.length());
-			} else {
-				return null;
-			}
-			
-			// java offset
-			int offset = proposal.getReplaceStart() + 1;
-			
-			// replacement length
-			int length = proposal.getReplaceEnd() - offset + 1;
-			
-			// translate offset from Java > JSP
-			offset = getTranslation().getJspOffset(offset);
-			
-			// cursor position after must be calculated
-			int positionAfter = offset + completion.length();
-				
-			// from java proposal
-			IJavaCompletionProposal javaProposal = super.createJavaCompletionProposal(proposal);
-			Image image = null;
-			String longDisplayString = javaProposal.getDisplayString();
-			int fistSpaceIndex = longDisplayString.indexOf(' ');
-			String shortDisplayString = longDisplayString;
-			
-			if(fistSpaceIndex != -1) {
-				shortDisplayString = longDisplayString.substring(fistSpaceIndex);
-			}
-				
-			String displayString = completion + " " + shortDisplayString; //$NON-NLS-1$
-			IContextInformation contextInformation = javaProposal.getContextInformation();
-			String additionalInfo = javaProposal.getAdditionalProposalInfo();
-			int relevance = javaProposal.getRelevance();
-			
-			boolean updateLengthOnValidate = true;
-			
-			jspProposal = new JSPCompletionProposal(completion, offset, length, positionAfter, image, displayString, contextInformation, additionalInfo, relevance, updateLengthOnValidate);
-			
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124483
-			// set wrapped java proposal so additional info can be calculated on demand
-			jspProposal.setJavaCompletionProposal(javaProposal);
-			
-			return jspProposal;
-		} else {
-			return null;
-		}
-	}
-
-//	protected void acceptMethod(char[] declaringTypePackageName, char[] declaringTypeName, char[] name, char[][] parameterPackageNames, char[][] parameterTypeNames, char[][] parameterNames, char[] returnTypePackageName, char[] returnTypeName, char[] completionName, int modifiers, int start, int end, int relevance) {
-//		String rawName = String.valueOf(name);
-//		if(parameterNames.length == 0 && rawName.length() > 3 && rawName.startsWith("get"))
-//		{
-//			String mangledName = rawName.substring(3,4).toLowerCase() + rawName.substring(4, rawName.length());
-//			super.acceptField(declaringTypePackageName, declaringTypeName, mangledName.toCharArray(), returnTypePackageName, returnTypeName, mangledName.toCharArray(), modifiers, start, end, relevance);
-//		}
-//	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPJavaContentAssistProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPJavaContentAssistProcessor.java
deleted file mode 100644
index 69f2f51..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPJavaContentAssistProcessor.java
+++ /dev/null
@@ -1,239 +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.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IDocumentPartitioner;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLRelevanceConstants;
-import org.eclipse.wst.xml.ui.internal.util.SharedXMLEditorPluginImageHelper;
-
-/**
- * @plannedfor 1.0
- */
-public class JSPJavaContentAssistProcessor implements IContentAssistProcessor, IReleasable {
-	protected char completionProposalAutoActivationCharacters[] = new char[]{'.'};
-	protected char contextInformationAutoActivationCharacters[] = null;
-	protected static final String UNKNOWN_CONTEXT = JSPUIMessages.Content_Assist_not_availab_UI_;
-	protected String fErrorMessage = null;
-	protected JSPCompletionProcessor fJspCompletionProcessor = null;
-
-	public JSPJavaContentAssistProcessor() {
-		super();
-	}
-
-	/**
-	 * Return a list of proposed code completions based on the
-	 * specified location within the document that corresponds
-	 * to the current cursor position within the text-editor control.
-	 *
-	 * @param documentPosition a location within the document
-	 * @return an array of code-assist items 
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentPosition) {
-
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt((StructuredTextViewer) viewer, documentPosition);
-
-		// get results from JSP completion processor	
-		fJspCompletionProcessor = getJspCompletionProcessor();
-		ICompletionProposal[] results = fJspCompletionProcessor.computeCompletionProposals(viewer, documentPosition);
-		fErrorMessage = fJspCompletionProcessor.getErrorMessage();
-		if (results.length == 0 && (fErrorMessage == null || fErrorMessage.length() == 0)) {
-			fErrorMessage = UNKNOWN_CONTEXT;
-		}
-
-		IDOMNode xNode = null;
-		IStructuredDocumentRegion flat = null;
-		if (treeNode instanceof IDOMNode) {
-			xNode = (IDOMNode) treeNode;
-			flat = xNode.getFirstStructuredDocumentRegion();
-			if (flat != null && flat.getType() == DOMJSPRegionContexts.JSP_CONTENT) {
-				flat = flat.getPrevious();
-			}
-		}
-
-		// this is in case it's a <%@, it will be a region container...
-		ITextRegion openRegion = null;
-		if (flat != null && flat instanceof ITextRegionContainer) {
-			ITextRegionList v = ((ITextRegionContainer) flat).getRegions();
-			if (v.size() > 0)
-				openRegion = v.get(0);
-		}
-
-		// ADD CDATA PROPOSAL IF IT'S AN XML-JSP TAG  
-		if (flat != null && flat.getType() != DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN && flat.getType() != DOMJSPRegionContexts.JSP_DECLARATION_OPEN && flat.getType() != DOMJSPRegionContexts.JSP_EXPRESSION_OPEN && flat.getType() != DOMRegionContext.BLOCK_TEXT && (openRegion != null && openRegion.getType() != DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) && !inAttributeRegion(flat, documentPosition)) {
-
-			// determine if cursor is before or after selected range
-			int adjustedDocPosition = documentPosition;
-			int realCaretPosition = viewer.getTextWidget().getCaretOffset();
-			int selectionLength = viewer.getSelectedRange().y;
-			if (documentPosition > realCaretPosition) {
-				adjustedDocPosition -= selectionLength;
-			}
-
-			CustomCompletionProposal cdataProposal = createCDATAProposal(adjustedDocPosition, selectionLength);
-			ICompletionProposal[] newResults = new ICompletionProposal[results.length + 1];
-			System.arraycopy(results, 0, newResults, 0, results.length);
-			newResults[results.length] = cdataProposal;
-			results = newResults;
-		}
-
-		// (pa) ** this is code in progress...
-		// add ending %> proposal for non closed JSP tags
-		//		String tagText = flat.getText();
-		//		// TODO need a much better compare (using constants?)
-		//		if(tagText.equals("<%") || tagText.equals("<%=") || tagText.equals("<%!"));
-		//		{
-		//			ICompletionProposal testah = ContentAssistUtils.computeJSPEndTagProposal(viewer,documentPosition, treeNode, "<%" , SharedXMLEditorPluginImageHelper.IMG_OBJ_TAG_GENERIC);
-		//			if(testah != null)
-		//			{
-		//				ICompletionProposal[] newResults = new ICompletionProposal[results.length + 1];
-		//				System.arraycopy( results, 0, newResults, 0, results.length);
-		//				newResults[results.length] = testah;
-		//				results = newResults;
-		//			}
-		//		}
-
-		return results;
-	}
-
-	private CustomCompletionProposal createCDATAProposal(int adjustedDocPosition, int selectionLength) {
-		return new CustomCompletionProposal("<![CDATA[]]>", //$NON-NLS-1$
-					adjustedDocPosition, selectionLength, // should be the selection length
-					9, SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_CDATASECTION), 
-					"CDATA Section", //$NON-NLS-1$
-					null, null, XMLRelevanceConstants.R_CDATA);
-	}
-
-	private boolean inAttributeRegion(IStructuredDocumentRegion flat, int documentPosition) {
-		ITextRegion attrContainer = flat.getRegionAtCharacterOffset(documentPosition);
-		if (attrContainer != null && attrContainer instanceof ITextRegionContainer) {
-			if (attrContainer.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Returns the characters which when entered by the user should
-	 * automatically trigger the presentation of possible completions.
-	 *
-	 * @return the auto activation characters for completion proposal or <code>null</code>
-	 *		if no auto activation is desired
-	 */
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		return completionProposalAutoActivationCharacters;
-	}
-
-	/**
-	 * Returns the characters which when entered by the user should
-	 * automatically trigger the presentation of context information.
-	 *
-	 * @return the auto activation characters for presenting context information
-	 *		or <code>null</code> if no auto activation is desired
-	 */
-	public char[] getContextInformationAutoActivationCharacters() {
-		return contextInformationAutoActivationCharacters;
-	}
-
-	/**
-	 * Return the reason why computeProposals was not able to find any completions.
-	 *
-	 * @return an error message
-	 *   or null if no error occurred
-	 */
-	public String getErrorMessage() {
-		return fErrorMessage;
-	}
-
-	/**
-	 * @see ContentAssistAdapter#release()
-	 */
-	public void release() {
-		if (fJspCompletionProcessor != null) {
-			fJspCompletionProcessor.release();
-			fJspCompletionProcessor = null;
-		}
-	}
-
-	/**
-	 * 
-	 */
-	protected JSPCompletionProcessor getJspCompletionProcessor() {
-		if (fJspCompletionProcessor == null) {
-			fJspCompletionProcessor = new JSPCompletionProcessor();
-		}
-		return fJspCompletionProcessor;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(org.eclipse.jface.text.ITextViewer, int)
-	 */
-	public IContextInformation[] computeContextInformation(ITextViewer viewer, int documentOffset) {
-		List results = new ArrayList();
-		// need to compute context info here, if it's JSP, call java computer
-		IDocument doc = viewer.getDocument();
-		IDocumentPartitioner dp = null;
-		if(doc instanceof IDocumentExtension3) {
-			dp = ((IDocumentExtension3)doc).getDocumentPartitioner(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
-		}
-		if(dp != null) {
-			//IDocumentPartitioner dp = viewer.getDocument().getDocumentPartitioner();
-			String type = dp.getPartition(documentOffset).getType();
-			if (type == IJSPPartitions.JSP_DEFAULT || type == IJSPPartitions.JSP_CONTENT_JAVA) {
-				// get context info from completion results...
-				ICompletionProposal[] proposals = computeCompletionProposals(viewer, documentOffset);
-				for (int i = 0; i < proposals.length; i++) {
-					IContextInformation ci = proposals[i].getContextInformation();
-					if (ci != null)
-						results.add(ci);
-				}
-			}
-		}
-		return (IContextInformation[]) results.toArray(new IContextInformation[results.size()]);
-	}
-
-	/**
-	 * Returns a validator used to determine when displayed context information
-	 * should be dismissed. May only return <code>null</code> if the processor is
-	 * incapable of computing context information.
-	 *
-	 * @return a context information validator, or <code>null</code> if the processor
-	 * 			is incapable of computing context information
-	 */
-	public IContextInformationValidator getContextInformationValidator() {
-		return new JavaParameterListValidator();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPPropertyContentAssistProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPPropertyContentAssistProcessor.java
deleted file mode 100644
index 4e8719c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPPropertyContentAssistProcessor.java
+++ /dev/null
@@ -1,259 +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.ui.internal.contentassist;
-
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImageHelper;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImages;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLRelevanceConstants;
-import org.eclipse.wst.xml.ui.internal.util.SharedXMLEditorPluginImageHelper;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * This class computes attribute value completion proposals for &lt;jsp:[gs]etProperty&gt; tags.
- * @plannedfor 1.0
- */
-public class JSPPropertyContentAssistProcessor extends JSPDummyContentAssistProcessor {
-	public JSPPropertyContentAssistProcessor() {
-		super();
-	}
-
-	protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest) {
-		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-
-		// Find the attribute name for which this position should have a value
-		IStructuredDocumentRegion open = node.getFirstStructuredDocumentRegion();
-		ITextRegionList openRegions = open.getRegions();
-		int i = openRegions.indexOf(contentAssistRequest.getRegion());
-		if (i < 0)
-			return;
-
-		// get the attribute in question (first attr name to the left of the cursor)
-		ITextRegion attrNameRegion = null;
-		String attributeName = null;
-		while (i >= 0) {
-			attrNameRegion = openRegions.get(i--);
-			if (attrNameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-				break;
-		}
-		if (attrNameRegion != null)
-			attributeName = open.getText(attrNameRegion);
-
-		// determine get or set
-		ITextRegion tagNameRegion = null;
-		boolean isGetProperty = true;
-		for (int j = 0; j < openRegions.size(); j++) {
-			tagNameRegion = openRegions.get(j);
-			if (tagNameRegion.getType() == DOMRegionContext.XML_TAG_NAME && open.getText(tagNameRegion).trim().equals("jsp:setProperty")) { //$NON-NLS-1$
-				isGetProperty = false;
-				break;
-			}
-		}
-
-		String currentValue = null;
-		if (contentAssistRequest.getRegion().getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-			currentValue = contentAssistRequest.getText();
-		else
-			currentValue = ""; //$NON-NLS-1$
-		String matchString = null;
-		// fixups since the matchString computations don't care if there are quotes around the value
-		if (currentValue.length() > StringUtils.strip(currentValue).length() && (currentValue.startsWith("\"") || currentValue.startsWith("'")) && contentAssistRequest.getMatchString().length() > 0) //$NON-NLS-1$ //$NON-NLS-2$
-			matchString = currentValue.substring(1, contentAssistRequest.getMatchString().length());
-		else
-			matchString = currentValue.substring(0, contentAssistRequest.getMatchString().length());
-
-		// for now we ignore complicated values such as jsp embedded in an attribute
-		boolean existingComplicatedValue = contentAssistRequest.getRegion() != null && contentAssistRequest.getRegion() instanceof ITextRegionContainer;
-		if (existingComplicatedValue) {
-			contentAssistRequest.getProposals().clear();
-			contentAssistRequest.getMacros().clear();
-		}
-		else {
-			if (attributeName.equals(JSP11Namespace.ATTR_NAME_NAME)) {
-				addBeanNameProposals(contentAssistRequest, node, matchString);
-			}
-			else if (attributeName.equals(JSP11Namespace.ATTR_NAME_PROPERTY)) {
-				addBeanPropertyProposals(contentAssistRequest, node, isGetProperty, matchString);
-			}
-		}
-	}
-
-	private void addBeanPropertyProposals(ContentAssistRequest contentAssistRequest, IDOMNode node, boolean isGetProperty, String matchString) {
-		// assumes that the node is the [gs]etProperty tag
-		String useBeanName = ((Element) node).getAttribute(JSP11Namespace.ATTR_NAME_NAME);
-		// properties can only be provided if a class/type/beanName has been declared
-		if (useBeanName != null && useBeanName.length() > 0) {
-			NodeList useBeans = node.getOwnerDocument().getElementsByTagName(JSP11Namespace.ElementName.USEBEAN);
-			if (useBeans != null) {
-				String typeName = null;
-				for (int j = 0; j < useBeans.getLength(); j++) {
-					if (useBeans.item(j).getNodeType() != Node.ELEMENT_NODE)
-						continue;
-					Element useBean = (Element) useBeans.item(j);
-					if (useBean instanceof IndexedRegion && ((IndexedRegion) useBean).getStartOffset() < node.getStartOffset()) {
-						if (useBean.getAttribute(JSP11Namespace.ATTR_NAME_ID).equals(useBeanName)) {
-							typeName = useBean.getAttribute(JSP11Namespace.ATTR_NAME_CLASS);
-							if (typeName == null || typeName.length() < 1) {
-								typeName = useBean.getAttribute(JSP11Namespace.ATTR_NAME_TYPE);
-							}
-							if (typeName == null || typeName.length() < 1) {
-								typeName = useBean.getAttribute(JSP11Namespace.ATTR_NAME_BEAN_NAME);
-							}
-						}
-					}
-				}
-				if (typeName != null && typeName.length() > 0) {
-					// find the class/type/beanName definition and obtain the list of properties
-					IBeanInfoProvider provider = new BeanInfoProvider();
-					IResource resource = getResource(contentAssistRequest);
-					IJavaPropertyDescriptor[] descriptors = provider.getRuntimeProperties(resource, typeName);
-					CustomCompletionProposal proposal = null;
-					String displayString = ""; //$NON-NLS-1$
-					for (int j = 0; j < descriptors.length; j++) {
-						IJavaPropertyDescriptor pd = descriptors[j];
-						// check whether it's get or set kinda property
-						if (pd.getReadable() && isGetProperty || pd.getWriteable() && !isGetProperty) {
-							// filter attr value name
-							if (matchString.length() == 0 || pd.getName().toLowerCase().startsWith(matchString.toLowerCase())) {
-								displayString = pd.getDisplayName();
-								if (pd.getDeclaredType() != null && pd.getDeclaredType().length() > 0)
-									displayString += " - " + pd.getDeclaredType(); //$NON-NLS-1$
-								proposal = new CustomCompletionProposal("\"" + pd.getName() + "\"", //$NON-NLS-1$ //$NON-NLS-2$
-											contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), pd.getName().length() + 2, SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_ATTRIBUTE),
-											displayString, null, pd.getDeclaredType(), XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
-								contentAssistRequest.addProposal(proposal);
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	private void addBeanNameProposals(ContentAssistRequest contentAssistRequest, IDOMNode node, String matchString) {
-		// will not catch useBeans specified using other than actual DOM Nodes
-		NodeList useBeans = node.getOwnerDocument().getElementsByTagName(JSP11Namespace.ElementName.USEBEAN);
-		if (useBeans != null) {
-			String id = ""; //$NON-NLS-1$
-			String displayString = null;
-			String classOrType = null;
-			String imageName = JSPEditorPluginImages.IMG_OBJ_CLASS_OBJ;
-			for (int j = 0; j < useBeans.getLength(); j++) {
-				if (useBeans.item(j).getNodeType() != Node.ELEMENT_NODE)
-					continue;
-				Element useBean = (Element) useBeans.item(j);
-				if (useBean instanceof IndexedRegion && ((IndexedRegion) useBean).getStartOffset() < node.getStartOffset()) {
-					id = StringUtils.strip(useBean.getAttribute(JSP11Namespace.ATTR_NAME_ID));
-					displayString = null;
-					classOrType = null;
-					imageName = JSPEditorPluginImages.IMG_OBJ_CLASS_OBJ;
-					// set the Image based on whether the class, type, or beanName attribute is present
-					classOrType = useBean.getAttribute(JSP11Namespace.ATTR_NAME_CLASS);
-					if (classOrType == null || classOrType.length() < 1) {
-						classOrType = useBean.getAttribute(JSP11Namespace.ATTR_NAME_TYPE);
-						imageName = JSPEditorPluginImages.IMG_OBJ_PUBLIC;
-					}
-					if (classOrType == null || classOrType.length() < 1) {
-						classOrType = useBean.getAttribute(JSP11Namespace.ATTR_NAME_BEAN_NAME);
-						imageName = JSPEditorPluginImages.IMG_OBJ_PUBLIC;
-					}
-					if (classOrType != null && classOrType.length() > 0)
-						displayString = id + " - " + classOrType; //$NON-NLS-1$
-					else
-						displayString = id;
-
-					// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=2341
-					if(id != null) {
-					    // filter
-						if (matchString.length() == 0 || id.startsWith(matchString)) {
-							CustomCompletionProposal proposal = new CustomCompletionProposal("\"" + id + "\"", //$NON-NLS-1$ //$NON-NLS-2$
-										contentAssistRequest.getReplacementBeginPosition(), 
-                                        contentAssistRequest.getReplacementLength(), 
-                                        id.length() + 2, 
-                                        JSPEditorPluginImageHelper.getInstance().getImage(imageName), 
-                                        displayString, 
-                                        null, 
-                                        null, 
-                                        XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
-							contentAssistRequest.addProposal(proposal);
-						}
-					}
-				}
-			}
-		}
-	}
-	
-	/**
-	 * Returns project request is in
-	 * 
-	 * @param request
-	 * @return
-	 */
-	private IResource getResource(ContentAssistRequest request) {
-		IResource resource = null;
-		String baselocation = null;
-
-		if (request != null) {
-			IStructuredDocumentRegion region = request.getDocumentRegion();
-			if (region != null) {
-				IDocument document = region.getParentDocument();
-				IStructuredModel model = null;
-				try {
-					model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-					if (model != null) {
-						baselocation = model.getBaseLocation();
-					}
-				} finally {
-					if (model != null)
-						model.releaseFromRead();
-				}
-			}
-		}
-
-		if (baselocation != null) {
-			// copied from JSPTranslationAdapter#getJavaProject
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			IPath filePath = new Path(baselocation);
-			IFile file = null;
-
-			if (filePath.segmentCount() > 1) {
-				file = root.getFile(filePath);
-			}
-			if (file != null) {
-				resource = file.getProject();
-			}
-		}
-		return resource;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPProposalCollector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPProposalCollector.java
deleted file mode 100644
index fe6a3df..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPProposalCollector.java
+++ /dev/null
@@ -1,209 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jdt.core.CompletionProposal;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.Signature;
-import org.eclipse.jdt.ui.text.java.CompletionProposalCollector;
-import org.eclipse.jdt.ui.text.java.CompletionProposalComparator;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Passed into ICodeComplete#codeComplete(int offset, CompletionRequestor requestor).
- * Adapts IJavaCompletionProposals to JSPCompletion proposals.
- * This includes:
- *  - translating offsets
- *  - "fixing" up display strings
- *  - filtering some unwanted proposals
- *
- * @plannedfor 1.0
- */
-public class JSPProposalCollector extends CompletionProposalCollector {
-
-	private JSPTranslation fTranslation;
-	private Comparator fComparator;
-	
-	public JSPProposalCollector(ICompilationUnit cu, JSPTranslation translation) {
-		super(cu);
-	
-		if(translation == null)
-			throw new IllegalArgumentException("JSPTranslation cannot be null"); //$NON-NLS-1$
-		
-		fTranslation = translation;
-	}
-
-	/**
-	 * Ensures that we only return JSPCompletionProposals.
-	 * @return an array of JSPCompletionProposals
-	 */
-	public JSPCompletionProposal[] getJSPCompletionProposals() {
-		List results = new ArrayList();
-		IJavaCompletionProposal[] javaProposals = getJavaCompletionProposals();
-		// need to filter out non JSPCompletionProposals
-		// because their offsets haven't been translated
-		for (int i = 0; i < javaProposals.length; i++) {
-			if(javaProposals[i] instanceof JSPCompletionProposal)
-				results.add(javaProposals[i]);
-		}
-		Collections.sort(results, getComparator());
-		return (JSPCompletionProposal[])results.toArray(new JSPCompletionProposal[results.size()]);
-	}
-	
-	private Comparator getComparator() {
-		if(fComparator == null)
-			fComparator = new CompletionProposalComparator();
-		return fComparator;
-	}
-	
-	/**
-	 * Overridden to:
-	 *  - translate Java -> JSP offsets
-	 *  - fix cursor-position-after
-	 *  - fix mangled servlet name in display string
-	 *  - remove unwanted proposals (servlet constructor)
-	 */
-	protected IJavaCompletionProposal createJavaCompletionProposal(CompletionProposal proposal) {
-		
-		JSPCompletionProposal jspProposal = null;
-		
-		// ignore constructor proposals (they're not relevant for our JSP proposal list)
-		if(!proposal.isConstructor()) {
-			
-			if(proposal.getKind() == CompletionProposal.TYPE_REF) {
-				String signature = String.valueOf(proposal.getDeclarationSignature());
-				String completion = String.valueOf(proposal.getCompletion());
-				if(completion.indexOf(signature) != -1) {
-					jspProposal = createAutoImportProposal(proposal);			
-				}
-			}
-			
-			// default behavior
-			if(jspProposal == null)
-				jspProposal = createJspProposal(proposal);		
-		}
-		return jspProposal;
-	}
-
-	
-	
-	private JSPCompletionProposal createAutoImportProposal(CompletionProposal proposal) {
-		
-		JSPCompletionProposal jspProposal = null;
-
-		String signature = new String(proposal.getDeclarationSignature());
-		String completion = new String(proposal.getCompletion());
-		
-		// it's fully qualified so we should
-		// add an import statement
-		// create an autoimport proposal
-		String newCompletion = completion.replaceAll(signature + ".", ""); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		// java offset
-		int offset = proposal.getReplaceStart();
-		// replacement length
-		int length = proposal.getReplaceEnd() - offset;
-		// translate offset from Java > JSP
-		offset = fTranslation.getJspOffset(offset);
-		// cursor position after must be calculated
-		int positionAfter = calculatePositionAfter(proposal, newCompletion, offset);
-		
-		// from java proposal
-		IJavaCompletionProposal javaProposal = super.createJavaCompletionProposal(proposal);
-		proposal.getDeclarationSignature();
-		Image image = javaProposal.getImage();
-		String displayString = javaProposal.getDisplayString();
-		displayString = getTranslation().fixupMangledName(displayString);
-		IContextInformation contextInformation = javaProposal.getContextInformation();
-		// don't do this, it's slow
-		// String additionalInfo = javaProposal.getAdditionalProposalInfo();
-		int relevance = javaProposal.getRelevance();
-		
-		boolean updateLengthOnValidate = true;
-		
-		jspProposal = new AutoImportProposal(completion, newCompletion, offset, length, positionAfter, image, displayString, contextInformation, null, relevance, updateLengthOnValidate);
-		
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124483
-		// set wrapped java proposal so additional info can be calculated on demand
-		jspProposal.setJavaCompletionProposal(javaProposal);
-		
-		return jspProposal;
-	}
-
-	private JSPCompletionProposal createJspProposal(CompletionProposal proposal) {
-		
-		JSPCompletionProposal jspProposal;
-		String completion = String.valueOf(proposal.getCompletion());
-		// java offset
-		int offset = proposal.getReplaceStart();
-		// replacement length
-		int length = proposal.getReplaceEnd() - offset;
-		// translate offset from Java > JSP
-		offset = fTranslation.getJspOffset(offset);
-		// cursor position after must be calculated
-		int positionAfter = calculatePositionAfter(proposal, completion, offset);
-		
-		// from java proposal
-		IJavaCompletionProposal javaProposal = super.createJavaCompletionProposal(proposal);
-		proposal.getDeclarationSignature();
-		Image image = javaProposal.getImage();
-		String displayString = javaProposal.getDisplayString();
-		displayString = getTranslation().fixupMangledName(displayString);
-		IContextInformation contextInformation = javaProposal.getContextInformation();
-		// String additionalInfo = javaProposal.getAdditionalProposalInfo();
-		int relevance = javaProposal.getRelevance();
-		
-		boolean updateLengthOnValidate = true;
-		
-		jspProposal = new JSPCompletionProposal(completion, offset, length, positionAfter, image, displayString, contextInformation, null, relevance, updateLengthOnValidate);
-		
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=124483
-		// set wrapped java proposal so additional info can be calculated on demand
-		jspProposal.setJavaCompletionProposal(javaProposal);
-		
-		return jspProposal;
-	}
-
-	/**
-	 * Cacluates the where the cursor should be after applying this proposal.
-	 * eg. method(|) if the method proposal chosen had params.
-	 * 
-	 * @param proposal
-	 * @param completion
-	 * @param currentCursorOffset
-	 * @return
-	 */
-	private int calculatePositionAfter(CompletionProposal proposal, String completion, int currentCursorOffset) {
-		// calculate cursor position after
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=118398
-		//int positionAfter = currentCursorOffset+completion.length();
-		int positionAfter = completion.length();
-		
-		int kind = proposal.getKind();
-		
-		// may need better logic here...
-		// put cursor inside parenthesis if there's params
-		// only checking for any kind of declaration
-		if(kind == CompletionProposal.ANONYMOUS_CLASS_DECLARATION || kind == CompletionProposal.METHOD_DECLARATION || kind == CompletionProposal.POTENTIAL_METHOD_DECLARATION || kind == CompletionProposal.METHOD_REF) {
-			String[] params = Signature.getParameterTypes(String.valueOf(proposal.getSignature()));
-			if(completion.length() > 0 && params.length > 0)
-				positionAfter--;
-		}
-		return positionAfter;
-	}
-	
-	static char[] getTypeTriggers() {
-		return TYPE_TRIGGERS;
-	}
-
-	public JSPTranslation getTranslation() {
-		return fTranslation;
-	}
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPTemplateCompletionProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPTemplateCompletionProcessor.java
deleted file mode 100644
index 753a206..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPTemplateCompletionProcessor.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateException;
-import org.eclipse.jface.text.templates.TemplateProposal;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImageHelper;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImages;
-import org.eclipse.swt.graphics.Image;
-
-/**
- * Completion processor for JSP Templates. Most of the work is already done by
- * the JSP Content Assist processor, so by the time the
- * JSPTemplateCompletionProcessor is asked for content assist proposals, the
- * jsp content assist processor has already set the context type for
- * templates.
- */
-class JSPTemplateCompletionProcessor extends TemplateCompletionProcessor {
-	private static final class ProposalComparator implements Comparator {
-		public int compare(Object o1, Object o2) {
-			return ((TemplateProposal) o2).getRelevance() - ((TemplateProposal) o1).getRelevance();
-		}
-	}
-
-	private static final Comparator fgProposalComparator = new ProposalComparator();
-	private String fContextTypeId = null;
-
-	/*
-	 * Copied from super class except instead of calling createContext(viewer,
-	 * region) call createContext(viewer, region, offset) instead
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
-
-		ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
-
-		// adjust offset to end of normalized selection
-		if (selection.getOffset() == offset)
-			offset = selection.getOffset() + selection.getLength();
-
-		String prefix = extractPrefix(viewer, offset);
-		Region region = new Region(offset - prefix.length(), prefix.length());
-		TemplateContext context = createContext(viewer, region, offset);
-		if (context == null)
-			return new ICompletionProposal[0];
-
-		// name of the selection variables {line, word}_selection
-		context.setVariable("selection", selection.getText()); // //$NON-NLS-1$
-
-		Template[] templates = getTemplates(context.getContextType().getId());
-
-		List matches = new ArrayList();
-		for (int i = 0; i < templates.length; i++) {
-			Template template = templates[i];
-			try {
-				context.getContextType().validate(template.getPattern());
-			}
-			catch (TemplateException e) {
-				continue;
-			}
-			if (template.matches(prefix, context.getContextType().getId()))
-				matches.add(createProposal(template, context, (IRegion) region, getRelevance(template, prefix)));
-		}
-
-		Collections.sort(matches, fgProposalComparator);
-
-		return (ICompletionProposal[]) matches.toArray(new ICompletionProposal[matches.size()]);
-	}
-
-	/**
-	 * Creates a concrete template context for the given region in the
-	 * document. This involves finding out which context type is valid at the
-	 * given location, and then creating a context of this type. The default
-	 * implementation returns a <code>SmartReplaceTemplateContext</code> for
-	 * the context type at the given location. This takes the offset at which
-	 * content assist was invoked into consideration.
-	 * 
-	 * @param viewer
-	 *            the viewer for which the context is created
-	 * @param region
-	 *            the region into <code>document</code> for which the
-	 *            context is created
-	 * @param offset
-	 *            the original offset where content assist was invoked
-	 * @return a template context that can handle template insertion at the
-	 *         given location, or <code>null</code>
-	 */
-	private TemplateContext createContext(ITextViewer viewer, IRegion region, int offset) {
-		// pretty much same code as super.createContext except create
-		// SmartReplaceTemplateContext
-		TemplateContextType contextType = getContextType(viewer, region);
-		if (contextType != null) {
-			IDocument document = viewer.getDocument();
-			return new ReplaceNameTemplateContext(contextType, document, region.getOffset(), region.getLength(), offset);
-		}
-		return null;
-	}
-
-	protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) {
-		return new CustomTemplateProposal(template, context, region, getImage(template), relevance);
-	}
-
-	protected TemplateContextType getContextType(ITextViewer viewer, IRegion region) {
-		TemplateContextType type = null;
-
-		ContextTypeRegistry registry = getTemplateContextRegistry();
-		if (registry != null)
-			type = registry.getContextType(fContextTypeId);
-
-		return type;
-	}
-
-	protected Image getImage(Template template) {
-		// just return the same image for now
-		return JSPEditorPluginImageHelper.getInstance().getImage(JSPEditorPluginImages.IMG_OBJ_TAG_JSP);
-	}
-
-	private ContextTypeRegistry getTemplateContextRegistry() {
-		return JSPUIPlugin.getDefault().getTemplateContextRegistry();
-	}
-
-	protected Template[] getTemplates(String contextTypeId) {
-		Template templates[] = null;
-
-		TemplateStore store = getTemplateStore();
-		if (store != null)
-			templates = store.getTemplates(contextTypeId);
-
-		return templates;
-	}
-
-	private TemplateStore getTemplateStore() {
-		return JSPUIPlugin.getDefault().getTemplateStore();
-	}
-
-	void setContextType(String contextTypeId) {
-		fContextTypeId = contextTypeId;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPUseBeanContentAssistProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPUseBeanContentAssistProcessor.java
deleted file mode 100644
index 15db25d..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JSPUseBeanContentAssistProcessor.java
+++ /dev/null
@@ -1,173 +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.ui.internal.contentassist;
-
-
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
-
-/**
- * @plannedfor 1.0
- */
-public class JSPUseBeanContentAssistProcessor extends JSPDummyContentAssistProcessor {
-
-	public JSPUseBeanContentAssistProcessor() {
-		super();
-	}
-
-	protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest) {
-
-		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-
-		// Find the attribute name for which this position should have a value
-		IStructuredDocumentRegion open = node.getFirstStructuredDocumentRegion();
-		ITextRegionList openRegions = open.getRegions();
-		int i = openRegions.indexOf(contentAssistRequest.getRegion());
-		if (i < 0)
-			return;
-		ITextRegion nameRegion = null;
-		while (i >= 0) {
-			nameRegion = openRegions.get(i--);
-			if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-				break;
-		}
-
-		String attributeName = null;
-		if (nameRegion != null)
-			attributeName = open.getText(nameRegion);
-
-		String currentValue = null;
-		if (contentAssistRequest.getRegion().getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-			currentValue = contentAssistRequest.getText();
-		else
-			currentValue = ""; //$NON-NLS-1$
-		String matchString = null;
-		// fixups
-		int start = contentAssistRequest.getReplacementBeginPosition();
-		int length = contentAssistRequest.getReplacementLength();
-		if (currentValue.length() > StringUtils.strip(currentValue).length() && (currentValue.startsWith("\"") || currentValue.startsWith("'")) //$NON-NLS-1$ //$NON-NLS-2$
-					&& contentAssistRequest.getMatchString().length() > 0) {
-			matchString = currentValue.substring(1, contentAssistRequest.getMatchString().length());
-			start++;
-			length = matchString.length();
-		} else
-			matchString = currentValue.substring(0, contentAssistRequest.getMatchString().length());
-		boolean existingComplicatedValue = contentAssistRequest.getRegion() != null && contentAssistRequest.getRegion() instanceof ITextRegionContainer;
-		if (existingComplicatedValue) {
-			contentAssistRequest.getProposals().clear();
-			contentAssistRequest.getMacros().clear();
-		} else {
-			if (attributeName.equals(JSP11Namespace.ATTR_NAME_CLASS)) {
-				// class is the concrete implementation class
-				IResource resource = getResource(contentAssistRequest);
-				ICompletionProposal[] classProposals = JavaTypeFinder.getClassProposals(resource, start, length);
-				if (classProposals != null) {
-					for (int j = 0; j < classProposals.length; j++) {
-						JavaTypeCompletionProposal proposal = (JavaTypeCompletionProposal) classProposals[j];
-						if (matchString.length() == 0 || proposal.getQualifiedName().toLowerCase().startsWith(matchString.toLowerCase()) || proposal.getShortName().toLowerCase().startsWith(matchString.toLowerCase()))
-							contentAssistRequest.addProposal(proposal);
-					}
-				}
-			} else if (attributeName.equals(JSP11Namespace.ATTR_NAME_TYPE)) {
-				// type is the more general type for the bean
-				// which means it may be an interface
-				IResource resource = getResource(contentAssistRequest);
-				ICompletionProposal[] typeProposals = JavaTypeFinder.getTypeProposals(resource, start, length);
-				if (typeProposals != null) {
-					for (int j = 0; j < typeProposals.length; j++) {
-						JavaTypeCompletionProposal proposal = (JavaTypeCompletionProposal) typeProposals[j];
-						if (matchString.length() == 0 || proposal.getQualifiedName().toLowerCase().startsWith(matchString.toLowerCase()) || proposal.getShortName().toLowerCase().startsWith(matchString.toLowerCase()))
-							contentAssistRequest.addProposal(proposal);
-					}
-				}
-			} else if (attributeName.equals(JSP11Namespace.ATTR_NAME_BEAN_NAME)) {
-				IResource resource = getResource(contentAssistRequest);
-				ICompletionProposal[] beanNameProposals = JavaTypeFinder.getBeanProposals(resource, start, length);
-				if (beanNameProposals != null) {
-					for (int j = 0; j < beanNameProposals.length; j++) {
-						if (beanNameProposals[j] instanceof CustomCompletionProposal) {
-							JavaTypeCompletionProposal proposal = (JavaTypeCompletionProposal) beanNameProposals[j];
-							if (matchString.length() == 0 || proposal.getDisplayString().toLowerCase().startsWith(matchString.toLowerCase()))
-								contentAssistRequest.addProposal(proposal);
-						} else if (beanNameProposals[j] instanceof JavaTypeCompletionProposal) {
-							JavaTypeCompletionProposal proposal = (JavaTypeCompletionProposal) beanNameProposals[j];
-							if (matchString.length() == 0 || proposal.getQualifiedName().toLowerCase().startsWith(matchString.toLowerCase()) || proposal.getShortName().toLowerCase().startsWith(matchString.toLowerCase()))
-								contentAssistRequest.addProposal(proposal);
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns project request is in
-	 * 
-	 * @param request
-	 * @return
-	 */
-	private IResource getResource(ContentAssistRequest request) {
-		IResource resource = null;
-		String baselocation = null;
-
-		if (request != null) {
-			IStructuredDocumentRegion region = request.getDocumentRegion();
-			if (region != null) {
-				IDocument document = region.getParentDocument();
-				IStructuredModel model = null;
-				try {
-					model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-					if (model != null) {
-						baselocation = model.getBaseLocation();
-					}
-				} finally {
-					if (model != null)
-						model.releaseFromRead();
-				}
-			}
-		}
-
-		if (baselocation != null) {
-			// copied from JSPTranslationAdapter#getJavaProject
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			IPath filePath = new Path(baselocation);
-			IFile file = null;
-
-			if (filePath.segmentCount() > 1) {
-				file = root.getFile(filePath);
-			}
-			if (file != null) {
-				resource = file.getProject();
-			}
-		}
-		return resource;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaParameterListValidator.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaParameterListValidator.java
deleted file mode 100644
index 3eb1f56..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaParameterListValidator.java
+++ /dev/null
@@ -1,216 +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.ui.internal.contentassist;
-
-import org.eclipse.jface.text.Assert;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.TextPresentation;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationPresenter;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-
-
-/**
- * @plannedfor 1.0
- */
-public class JavaParameterListValidator implements IContextInformationValidator, IContextInformationPresenter {
-    
-    private int fPosition;
-    private ITextViewer fViewer;
-    private IContextInformation fInformation;
-    
-    private int fCurrentParameter;
-    
-    /**
-     * @see IContextInformationValidator#install(IContextInformation, ITextViewer, int)
-     * @see IContextInformationPresenter#install(IContextInformation, ITextViewer, int)
-     */
-    public void install(IContextInformation info, ITextViewer viewer, int documentPosition) {
-        fPosition= documentPosition;
-        fViewer= viewer;
-        fInformation= info;
-        
-        fCurrentParameter= -1;
-    }
-    
-    private int getCommentEnd(IDocument d, int pos, int end) throws BadLocationException {
-        while (pos < end) {
-            char curr= d.getChar(pos);
-            pos++;
-            if (curr == '*') {
-                if (pos < end && d.getChar(pos) == '/') {
-                    return pos + 1;
-                }
-            }
-        }
-        return end;
-    }
-
-    private int getStringEnd(IDocument d, int pos, int end, char ch) throws BadLocationException {
-        while (pos < end) {
-            char curr= d.getChar(pos);
-            pos++;
-            if (curr == '\\') {
-                // ignore escaped characters
-                pos++;
-            } else if (curr == ch) {
-                return pos;
-            }
-        }
-        return end;
-    }
-    
-    private int getCharCount(IDocument document, int start, int end, char increment, char decrement, boolean considerNesting) throws BadLocationException {
-        
-        Assert.isTrue((increment != 0 || decrement != 0) && increment != decrement);
-        
-        int nestingLevel= 0;
-        int charCount= 0;
-        while (start < end) {
-            char curr= document.getChar(start++);
-            switch (curr) {
-                case '/':
-                    if (start < end) {
-                        char next= document.getChar(start);
-                        if (next == '*') {
-                            // a comment starts, advance to the comment end
-                            start= getCommentEnd(document, start + 1, end);
-                        } else if (next == '/') {
-                            // '//'-comment: nothing to do anymore on this line 
-                            start= end;
-                        }
-                    }
-                    break;
-                case '*':
-                    if (start < end) {
-                        char next= document.getChar(start);
-                        if (next == '/') {
-                            // we have been in a comment: forget what we read before
-                            charCount= 0;
-                            ++ start;
-                        }
-                    }
-                    break;
-                case '"':
-                case '\'':
-                    start= getStringEnd(document, start, end, curr);
-                    break;
-                default:
-                    
-                    if (considerNesting) {
-                        
-                        if ('(' == curr)
-                            ++ nestingLevel;
-                        else if (')' == curr)
-                            -- nestingLevel;
-                            
-                        if (nestingLevel != 0)
-                            break;
-                    }
-                    
-                    if (increment != 0) {
-                        if (curr == increment)
-                            ++ charCount;
-                    }
-                    
-                    if (decrement != 0) {
-                        if (curr == decrement)
-                            -- charCount;
-                    }
-            }
-        }
-        
-        return charCount;
-    }
-    
-    /**
-     * @see IContextInformationValidator#isContextInformationValid(int)
-     */
-    public boolean isContextInformationValid(int position) {        
-        
-        try {
-            if (position < fPosition)
-                return false;
-                
-            IDocument document= fViewer.getDocument();
-            IRegion line= document.getLineInformationOfOffset(fPosition);
-            
-            if (position < line.getOffset() || position >= document.getLength())
-                return false;
-                
-            return (getCharCount(document, fPosition, position, '(', ')', false) >= 0);
-            
-        } catch (BadLocationException x) {
-            return false;
-        }
-    }
-    
-    /**
-     * @see IContextInformationPresenter#updatePresentation(int, TextPresentation)
-     */
-    public boolean updatePresentation(int position, TextPresentation presentation) {
-        
-        int currentParameter= -1;
-        
-        try {
-            currentParameter= getCharCount(fViewer.getDocument(), fPosition, position, ',', (char) 0, true);
-        } catch (BadLocationException x) {
-            return false;
-        }
-        
-        if (fCurrentParameter != -1) {
-            if (currentParameter == fCurrentParameter)
-                return false;
-        }
-        
-        presentation.clear();
-        fCurrentParameter= currentParameter;
-        
-        String s= fInformation.getInformationDisplayString();
-        int start= 0;
-        int occurrences= 0;
-        while (occurrences < fCurrentParameter) {
-            int found= s.indexOf(',', start);
-            if (found == -1)
-                break;
-            start= found + 1;
-            ++ occurrences;
-        }
-        
-        if (occurrences < fCurrentParameter) {
-            presentation.addStyleRange(new StyleRange(0, s.length(), null, null, SWT.NORMAL));
-            return true;
-        }
-        
-        if (start == -1)
-            start= 0;
-        
-        int end= s.indexOf(',', start);
-        if (end == -1)
-            end= s.length();
-            
-        if (start > 0)  
-            presentation.addStyleRange(new StyleRange(0, start, null, null, SWT.NORMAL));
-        
-        if (end > start)
-            presentation.addStyleRange(new StyleRange(start, end - start, null, null, SWT.BOLD));
-        
-        if (end < s.length())
-            presentation.addStyleRange(new StyleRange(end, s.length() - end, null, null, SWT.NORMAL));
-            
-        return true;
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeCompletionProposal.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeCompletionProposal.java
deleted file mode 100644
index d8b4de7..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeCompletionProposal.java
+++ /dev/null
@@ -1,300 +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.ui.internal.contentassist;
-
-
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceCompletionProposal;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-/**
- * An implementation of ICompletionProposal whose values can be
- * read after creation.
- * 
- * @plannedfor 1.0
- */
-public class JavaTypeCompletionProposal extends CustomCompletionProposal implements IRelevanceCompletionProposal {
-
-	private int fCursorPosition = 0;
-	private String fLocalDisplayString;
-	private String fShortName;
-	private String fQualifiedName;
-	private String fContainerName;
-
-	public JavaTypeCompletionProposal(String replacementString, int replacementOffset, int replacementLength, String qualifiedName, Image image, String typeName, String containerName,  int relevence,  boolean updateReplacementLengthOnValidate) {
-		super(replacementString, replacementOffset, replacementLength, qualifiedName.length() + 2, image, 
-                (containerName != null && containerName.length() > 0) ? typeName + " - " + containerName : typeName, null, null, relevence, true); //$NON-NLS-1$
-		// CMVC 243817, superclass was comparing incorrect display string in validate method...
-		//super(replacementString, replacementOffset, replacementLength, image, (containerName != null && containerName.length() > 0)? typeName + " - " + containerName:typeName/*qualifiedName*/, relevence);
-		fShortName = typeName;
-		fQualifiedName = qualifiedName;
-		fContainerName = containerName;
-		fCursorPosition = fQualifiedName.length() + 2;
-		//fProposalInfo = proposalInfo;
-		if (containerName != null && containerName.length() > 0)
-			fLocalDisplayString = typeName + " - " + containerName; //$NON-NLS-1$
-		else
-			fLocalDisplayString = typeName;
-	}
-
-	public String getDisplayString() {
-		return fLocalDisplayString;
-	}
-
-	public int getCursorPosition() {
-		return fCursorPosition;
-	}
-
-	public void setCursorPosition(int cursorPosition) {
-		super.setCursorPosition(cursorPosition);
-		fCursorPosition = cursorPosition;
-	}
-
-	public String getQualifiedName() {
-		return fQualifiedName;
-	}
-
-	public String getAdditionalProposalInfo() {
-		//		String info = super.getAdditionalProposalInfo();
-		//		if (info == null || info.length() == 0 && fProposalInfo != null)
-		//			return fProposalInfo.getInfo();
-		//		return info;
-		return null; // unexplained NPE
-	}
-
-	public String getShortName() {
-		return fShortName;
-	}
-
-	protected String getImport(IStructuredDocumentRegion flatNode) {
-		ITextRegionList regions = flatNode.getRegions();
-		String importSpec = null;
-		boolean isImport = false;
-		for (int i = 0; i < regions.size(); i++) {
-			ITextRegion region = regions.get(i);
-			if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				if (flatNode.getText(region).equals(JSP11Namespace.ATTR_NAME_IMPORT)) {
-					isImport = true;
-				}
-				else {
-					isImport = false;
-				}
-			}
-			else if (isImport && region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				importSpec = flatNode.getText(region);
-			}
-		}
-		return importSpec;
-	}
-
-	/**
-	 * Add an import page directive for the current type name
-	 */
-	protected int applyImport(IStructuredDocument model) {
-		// if the type is in the default package or java.lang, skip it
-		if (fContainerName == null || fContainerName.length() == 0 || fContainerName.equals("java.lang")) //$NON-NLS-1$
-			return 0;
-		// collect page directives and store their import values
-		List imports = new ArrayList();
-		IStructuredDocumentRegion node = model.getFirstStructuredDocumentRegion();
-
-		// use the last position of a page directive as a hint as to where to add
-		// a new one
-		int hint = 0;
-		// watch for jsp:root so that we use the right XML/JSP format for the directive
-		boolean useXML = false;
-
-		while (node != null) {
-			// Can't just look for all StructuredDocumentRegions starting with JSP_DIRECTIVE_OPEN
-			// since the XML form is required, too
-			ITextRegionList regions = node.getRegions();
-			if (regions.size() > 1) {
-				ITextRegion name = regions.get(1);
-				// verify that this is a JSP directive
-				if (name.getType() == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-					// verify that this is a *page* directive
-					if (node.getText(name).equals(JSP11Namespace.ATTR_NAME_PAGE) || node.getText(name).equals(JSP12Namespace.ElementName.DIRECTIVE_PAGE)) {
-						if (node.getEndOffset() < getReplacementOffset())
-							hint = node.getEndOffset();
-						String importSpec = getImport(node);
-						if (importSpec != null) {
-							imports.add(importSpec);
-						}
-					}
-				}
-				else {
-					// if this is a jsp:root tag, use the XML form
-					useXML = useXML || name.getType() == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME;
-				}
-			}
-			node = node.getNext();
-		}
-
-		// evaluate requirements for a "new" import directive
-		boolean needsImport = !importHandles(fQualifiedName, imports);
-		int adjustmentLength = 0;
-		// insert "new" import directive
-		if (needsImport) {
-			String directive = null;
-
-			// vary the XML behavior
-			if (useXML) {
-				directive = "<jsp:directive.page import=\"" + fQualifiedName + "\"/>"; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			else {
-				directive = "<%@ page import=\"" + fQualifiedName + "\" %>"; //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-			try {
-				IRegion line = model.getLineInformationOfOffset(hint);
-				boolean prependNewLine = line.getOffset() + line.getLength() == hint;
-				boolean appendNewLine = hint == 0;
-				if (prependNewLine)
-					directive = model.getLineDelimiter() + directive;
-				if (appendNewLine)
-					directive = directive + model.getLineDelimiter();
-				adjustmentLength = directive.length();
-			}
-			catch (BadLocationException e) {
-				// ignore
-			}
-
-			try {
-				model.replace(hint, 0, directive);
-
-			}
-			catch (BadLocationException e) {
-				// Not that we should ever get a BLE, but if so, our
-				// replacement offset from the Content Assist call should
-				// work
-				try {
-					model.replace(getReplacementOffset(), 0, directive);
-					adjustmentLength = directive.length();
-				}
-				catch (BadLocationException e2) {
-					// now what?
-				}
-			}
-		}
-		return adjustmentLength;
-	}
-
-	/**
-	 * See if the import specification is a wildcard import, and if so, that
-	 * it applies to the given type.
-	 */
-	protected boolean isWildcardMatch(String importSpec, String type) {
-		int specLength = importSpec.length();
-		if (importSpec.endsWith("*") && specLength > 2 && type.length() >= specLength) { //$NON-NLS-1$
-			// pull out the package name including the final '.'
-			String container = importSpec.substring(0, specLength - 1);
-			// verify that the type is in the container's hierarchy and that
-			// there are no other package separators afterwards
-			if (type.startsWith(container) && type.indexOf('.', specLength - 1) < 0) {
-				// container matches
-				return true;
-			}
-		}
-		return false;
-	}
-
-	protected boolean importHandles(String type, List listOfImports) {
-		Iterator imports = listOfImports.iterator();
-		while (imports.hasNext()) {
-			String importSpec = StringUtils.strip(imports.next().toString());
-			if (importSpec.equals(type) || isWildcardMatch(importSpec, type))
-				return true;
-		}
-		return false;
-	}
-
-	public void apply(IDocument document, char trigger, int offset) {
-		// If we have a parsed IStructuredDocument, insert the short name instead of the
-		// fully qualified name and a import page directive if
-		// needed.  Do the import first so the cursor goes to the right location
-		// and we don't surprise the user.
-
-		boolean addShortForm = false; //document instanceof IStructuredDocument && fContainerName != null && fContainerName.length() > 0;
-		if (addShortForm) {
-			setReplacementString('"' + fShortName + '"');
-			int importLength = applyImport((IStructuredDocument) document);
-			setReplacementOffset(getReplacementOffset() + importLength);
-		}
-
-		setCursorPosition(getReplacementString().length());
-		super.apply(document, trigger, offset);
-
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension1#apply(org.eclipse.jface.text.ITextViewer, char, int, int)
-	 */
-	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-		// CMVC 243815
-		// (pa) this is overridden to get around replacement length modification
-		// which is done in the super (since eclipse 2.1)
-		apply(viewer.getDocument(), trigger, offset);
-	}
-
-	// code is borrowed from JavaCompletionProposal
-	protected boolean startsWith(IDocument document, int offset, String word) {
-		int wordLength = word == null ? 0 : word.length();
-		if (offset > getReplacementOffset() + wordLength)
-			return false;
-
-		try {
-			int length = offset - getReplacementOffset();
-			// CMVC 243817
-			// slightly modified to be a little more flexible for attribute value string matching..
-			String start = StringUtils.stripQuotes(document.get(getReplacementOffset(), length));
-			return word.toLowerCase().startsWith(start.toLowerCase()) || fQualifiedName.toLowerCase().startsWith(start.toLowerCase());
-			//return word.substring(0, length).equalsIgnoreCase(start);
-		}
-		catch (BadLocationException x) {
-			// ignore
-		}
-
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposal#validate(org.eclipse.jface.text.IDocument, int, org.eclipse.jface.text.DocumentEvent)
-	 //	 */
-	//	public boolean validate(IDocument document, int offset, org.eclipse.jface.text.DocumentEvent event) {
-	//		return super.validate(document, offset, event);
-	//	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.internal.ui.text.java.JavaCompletionProposal#selected(org.eclipse.jface.text.ITextViewer, boolean)
-	 */
-	public void selected(ITextViewer viewer, boolean smartToggle) {
-		// (pa) we currently don't use smart toggle...
-		super.selected(viewer, false);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeFinder.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeFinder.java
deleted file mode 100644
index b3120d6..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeFinder.java
+++ /dev/null
@@ -1,134 +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.ui.internal.contentassist;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.search.IJavaSearchConstants;
-import org.eclipse.jdt.core.search.IJavaSearchScope;
-import org.eclipse.jdt.core.search.SearchEngine;
-import org.eclipse.jdt.core.search.SearchPattern;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceConstants;
-
-/**
- * @plannedfor 1.0
- */
-public class JavaTypeFinder {
-
-	public static ICompletionProposal[] getBeanProposals(IResource resource, int replacementStart, int replacementLength) {
-		ICompletionProposal[] typeProposals = getTypeProposals(resource, replacementStart, replacementLength);
-		ICompletionProposal[] serialProposals = getSerializedProposals(resource, replacementStart, replacementLength);
-		ICompletionProposal[] beanProposals = new ICompletionProposal[typeProposals.length + serialProposals.length];
-
-		int i;
-		for (i = 0; i < serialProposals.length; i++) {
-			beanProposals[i] = serialProposals[i];
-		}
-		for (i = serialProposals.length; i < serialProposals.length + typeProposals.length; i++) {
-			beanProposals[i] = typeProposals[i - serialProposals.length];
-		}
-		return beanProposals;
-	}
-
-	private static void getMembers(IContainer container, List membersList) {
-		try {
-			IResource[] members = container.members(true);
-			if (members != null) {
-				for (int i = 0; i < members.length; i++) {
-					if (members[i].getType() == IResource.FILE)
-						membersList.add(members[i]);
-					else if (members[i].getType() == IResource.FOLDER)
-						getMembers((IContainer) members[i], membersList);
-				}
-			}
-		}
-		catch (CoreException e) {
-			// do nothing
-		}
-	}
-
-	private static ICompletionProposal[] getSerializedProposals(IResource resource, int replacementStart, int replacementLength) {
-		List names = new ArrayList();
-		List resources = new ArrayList();
-		getMembers(resource.getProject(), resources);
-		IResource memberResource = null;
-		for (int i = 0; i < resources.size(); i++) {
-			memberResource = (IResource) resources.get(i);
-			if (memberResource.getType() == IResource.FILE && memberResource.getName().endsWith(".ser")) { //$NON-NLS-1$
-				String path = URIHelper.normalize(memberResource.getFullPath().toString(), resource.getFullPath().toString(), resource.getProject().getFullPath().toString());
-				if (path != null) {
-					names.add(new CustomCompletionProposal("\"" + path + "\"", //$NON-NLS-1$ //$NON-NLS-2$
-								replacementStart, replacementLength, path.length() + 2, null, path, null, null, IRelevanceConstants.R_NONE));
-				}
-			}
-		}
-		return (ICompletionProposal[]) names.toArray(new ICompletionProposal[names.size()]);
-	}
-
-	/**
-	 *
-	 * @param resource
-	 * @param replacementStart
-	 * @param replacementLength
-	 * @param searchFor IJavaSearchConstants.TYPE, IJavaSearchConstants.CLASS
-	 * @return
-	 */
-	private static ICompletionProposal[] findProposals(IResource resource, int replacementStart, int replacementLength, int searchFor, boolean ignoreAbstractClasses) {
-
-		JavaTypeNameRequestor requestor = new JavaTypeNameRequestor();
-		requestor.setJSPOffset(replacementStart);
-		requestor.setReplacementLength(replacementLength);
-		requestor.setIgnoreAbstractClasses(ignoreAbstractClasses);
-
-		try {
-			IJavaElement[] elements = new IJavaElement[]{getJavaProject(resource)};
-			IJavaSearchScope scope = SearchEngine.createJavaSearchScope(elements);
-			new SearchEngine().searchAllTypeNames(null, null, SearchPattern.R_PATTERN_MATCH | SearchPattern.R_PREFIX_MATCH, searchFor, scope, requestor, IJavaSearchConstants.WAIT_UNTIL_READY_TO_SEARCH, null);
-
-		}
-		catch (CoreException exc) {
-			Logger.logException(exc);
-		}
-		catch (Exception exc) { 
-			// JavaModel
-			Logger.logException(exc);
-		}
-		return requestor.getProposals();
-	}
-
-	public static ICompletionProposal[] getTypeProposals(IResource resource, int replacementStart, int replacementLength) {
-		return findProposals(resource, replacementStart, replacementLength, IJavaSearchConstants.TYPE, false);
-	}
-	
-	public static ICompletionProposal[] getClassProposals(IResource resource, int replacementStart, int replacementLength) {
-		return findProposals(resource, replacementStart, replacementLength, IJavaSearchConstants.CLASS, true);
-	}
-
-	private static IJavaProject getJavaProject(IResource resource) {
-		IProject proj = resource.getProject();
-		IJavaProject javaProject = JavaCore.create(proj);
-		return javaProject;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeNameRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeNameRequestor.java
deleted file mode 100644
index c254d14..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/JavaTypeNameRequestor.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jdt.core.CompletionProposal;
-import org.eclipse.jdt.core.Flags;
-import org.eclipse.jdt.core.Signature;
-import org.eclipse.jdt.core.search.TypeNameRequestor;
-import org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImageHelper;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.javascript.ui.internal.common.contentassist.IRelevanceConstants;
-
-/**
- * Use w/ JDT search engine to find all type names.
- * Creates proposals from matches reported.
- *
- * @plannedfor 1.0
- */
-public class JavaTypeNameRequestor extends TypeNameRequestor {
-	
-	private int fJSPOffset = -1;
-	private int fReplacementLength = -1;
-	private List fProposals = new ArrayList();
-	private boolean fIgnoreAbstractClasses = false;
-	
-	private CompletionProposalLabelProvider fLabelProvider = new CompletionProposalLabelProvider();
-	
-	public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path) {
-
-        int offset = getJSPOffset();
-        int length = getReplacementLength();
-		
-		// somehow offset or length was set incorrectly
-		if(offset == -1 || length == -1)
-			return;
-		// ignore abstract classes?
-		if(ignoreAbstractClasses() && Flags.isAbstract(modifiers))
-			return;
-		
-		Image image = calculateImage(modifiers);
-		
-        String containerNameString = new String(packageName);
-        String typeNameString = String.valueOf(simpleTypeName);
-			
-        // containername can be null
-        String fullName = concatenateName(containerNameString, typeNameString);
-
-        String simpleName = Signature.getSimpleName(fullName);
-        StringBuffer buf = new StringBuffer(simpleName);
-        String typeQualifier = Signature.getQualifier(fullName);
-        if (typeQualifier.length() > 0) {
-            buf.append(" - "); //$NON-NLS-1$
-            buf.append(typeQualifier);
-        }
-		
-        JavaTypeCompletionProposal proposal = new JavaTypeCompletionProposal(fullName, offset, length, fullName, image, typeNameString, typeQualifier, IRelevanceConstants.R_NONE, true);
-        proposal.setTriggerCharacters(JSPProposalCollector.getTypeTriggers());
-		fProposals.add(proposal);
-	}
-
-
-	private Image calculateImage(int modifiers) {
-		CompletionProposal p = CompletionProposal.create(CompletionProposal.TYPE_REF, getJSPOffset());
-		p.setFlags(modifiers);
-		
-		//https://bugs.eclipse.org/bugs/show_bug.cgi?id=102206
-		char[] sig = new char[]{Signature.C_UNRESOLVED};
-		p.setSignature(sig);
-		
-		ImageDescriptor descriptor = fLabelProvider.createImageDescriptor(p);
-		Image image = JSPEditorPluginImageHelper.getInstance().getImage(descriptor);
-		return image;
-	}
-	
-    /**
-     * Concatenates two names. Uses a dot for separation. Both strings can be
-     * empty or <code>null</code>.
-     */
-    public String concatenateName(String name1, String name2) {
-        StringBuffer buf = new StringBuffer();
-        if (name1 != null && name1.length() > 0) {
-            buf.append(name1);
-        }
-        if (name2 != null && name2.length() > 0) {
-            if (buf.length() > 0) {
-                buf.append('.');
-            }
-            buf.append(name2);
-        }
-        return buf.toString();
-    }
-	
-	int getJSPOffset() {
-		return fJSPOffset;
-	}
-
-	void setJSPOffset(int offset) {
-		fJSPOffset = offset;
-	}
-
-	int getReplacementLength() {
-		return fReplacementLength;
-	}
-
-	void setReplacementLength(int replacementLength) {
-		fReplacementLength = replacementLength;
-	}
-	void setIgnoreAbstractClasses(boolean ignore) {
-		fIgnoreAbstractClasses = ignore;
-	}
-	boolean ignoreAbstractClasses() {
-		return fIgnoreAbstractClasses;
-	}
-	
-	JavaTypeCompletionProposal[] getProposals() {
-		return (JavaTypeCompletionProposal[])fProposals.toArray(new JavaTypeCompletionProposal[fProposals.size()]);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/NoRegionContentAssistProcessorForJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/NoRegionContentAssistProcessorForJSP.java
deleted file mode 100644
index d322938..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/NoRegionContentAssistProcessorForJSP.java
+++ /dev/null
@@ -1,96 +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.ui.internal.contentassist;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.html.ui.internal.contentassist.NoRegionContentAssistProcessorForHTML;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.text.IStructuredPartitions;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-
-/**
- * @plannedfor 1.0
- */
-public class NoRegionContentAssistProcessorForJSP extends NoRegionContentAssistProcessorForHTML {
-
-	private String[] fJSPContexts = null;
-
-	public NoRegionContentAssistProcessorForJSP() {
-		super();
-		initJSPContexts();
-	}
-
-	/* 
-	 * @see org.eclipse.wst.html.ui.internal.contentassist.NoRegionContentAssistProcessorForHTML#initPartitionToProcessorMap()
-	 */
-	protected void initPartitionToProcessorMap() {
-		super.initPartitionToProcessorMap();
-		IContentAssistProcessor jspContentAssistProcessor = new JSPContentAssistProcessor();
-
-		// JSP
-		addPartitionProcessor(IStructuredPartitions.DEFAULT_PARTITION, jspContentAssistProcessor);
-		addPartitionProcessor(IXMLPartitions.XML_DEFAULT, jspContentAssistProcessor);
-		addPartitionProcessor(IHTMLPartitions.HTML_DEFAULT, jspContentAssistProcessor);
-		addPartitionProcessor(IHTMLPartitions.HTML_COMMENT, jspContentAssistProcessor);
-		addPartitionProcessor(IJSPPartitions.JSP_DEFAULT, jspContentAssistProcessor);
-		addPartitionProcessor(IJSPPartitions.JSP_DIRECTIVE, jspContentAssistProcessor);
-		addPartitionProcessor(IJSPPartitions.JSP_CONTENT_DELIMITER, jspContentAssistProcessor);
-		addPartitionProcessor(IJSPPartitions.JSP_CONTENT_JAVASCRIPT, jspContentAssistProcessor);
-
-		IContentAssistProcessor jspJavaContentAssistProcessor = new JSPJavaContentAssistProcessor();
-		addPartitionProcessor(IJSPPartitions.JSP_CONTENT_JAVA, jspJavaContentAssistProcessor);
-
-	}
-
-	protected void initNameToProcessorMap() {
-		super.initNameToProcessorMap();
-		JSPPropertyContentAssistProcessor jspPropertyCAP = new JSPPropertyContentAssistProcessor();
-		addNameProcessor(JSP11Namespace.ElementName.SETPROPERTY, jspPropertyCAP);
-		addNameProcessor(JSP11Namespace.ElementName.GETPROPERTY, jspPropertyCAP);
-		addNameProcessor(JSP11Namespace.ElementName.USEBEAN, new JSPUseBeanContentAssistProcessor());
-	}
-
-	private void initJSPContexts() {
-		fJSPContexts = new String[]{DOMJSPRegionContexts.JSP_CLOSE, DOMJSPRegionContexts.JSP_CONTENT, DOMJSPRegionContexts.JSP_DECLARATION_OPEN, DOMJSPRegionContexts.JSP_EXPRESSION_OPEN, DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN};
-	}
-
-	/**
-	 * Quick check to see if context (String) should map to
-	 * JSPContentAssistProcessor.
-	 * 
-	 * @param context
-	 * @return if it's a JSP Region (for which we need JSP Content assist)
-	 */
-	private boolean isJSPRegion(IStructuredDocumentRegion sdRegion) {
-		String context = sdRegion.getType();
-		for (int i = 0; i < fJSPContexts.length; i++) {
-			if (context == fJSPContexts[i])
-				return true;
-		}
-		return false;
-	}
-
-	protected IContentAssistProcessor guessContentAssistProcessor(ITextViewer viewer, int documentOffset) {
-		IContentAssistProcessor p = super.guessContentAssistProcessor(viewer, documentOffset);
-		if (p == null) {
-			IStructuredDocumentRegion sdRegion = ((IStructuredDocument) viewer.getDocument()).getRegionAtCharacterOffset(documentOffset);
-			if (isJSPRegion(sdRegion))
-				p = getPartitionProcessor(IJSPPartitions.JSP_CONTENT_JAVA);
-		}
-		return p;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/ReplaceNameTemplateContext.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/ReplaceNameTemplateContext.java
deleted file mode 100644
index 1f4e9d1..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentassist/ReplaceNameTemplateContext.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.contentassist;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.templates.DocumentTemplateContext;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateException;
-
-/**
- * Just like DocumentTemplateContext except if an insert offset is passed in,
- * during evaluation, the "prefix" before the template will be checked to see
- * if it matches the template name. If so, overwrite the template name.
- * Otherwise, just insert the template at the insert offset location (by not
- * overwriting the prefix text)
- */
-public class ReplaceNameTemplateContext extends DocumentTemplateContext {
-	private int fInsertOffset = -1;
-
-	/**
-	 * Creates a document template context.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param offset
-	 *            the offset of the document region
-	 * @param length
-	 *            the length of the document region
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length) {
-		this(type, document, new Position(offset, length));
-	}
-
-	/**
-	 * Creates a document template context. The supplied <code>Position</code>
-	 * will be queried to compute the <code>getStart</code> and
-	 * <code>getEnd</code> methods, which will therefore answer updated
-	 * position data if it is registered with the document.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param position
-	 *            the position describing the area of the document which forms
-	 *            the template context
-	 * @since 3.1
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, Position position) {
-		super(type, document, position);
-	}
-
-	/**
-	 * Creates a document template context.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param offset
-	 *            the offset of the document region
-	 * @param length
-	 *            the length of the document region
-	 * @param insertOffset
-	 *            the offset of the document region where insert was
-	 *            originally requested
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length, int insertOffset) {
-		this(type, document, new Position(offset, length));
-		fInsertOffset = insertOffset;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.templates.TemplateContext#evaluate(org.eclipse.jface.text.templates.Template)
-	 */
-	public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException {
-		TemplateBuffer buffer = super.evaluate(template);
-		if (buffer != null) {
-			if (fInsertOffset > -1 && fInsertOffset > getStart()) {
-				String prefix = getDocument().get(getStart(), fInsertOffset - getStart());
-				if (!template.getName().startsWith(prefix)) {
-					// generate a new buffer that actually contains the
-					// text that was going to be overwritten
-					buffer = new TemplateBuffer(prefix + buffer.getString(), buffer.getVariables());
-				}
-			}
-		}
-		return buffer;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentproperties/ui/JSPFContentSettingsPropertyPage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentproperties/ui/JSPFContentSettingsPropertyPage.java
deleted file mode 100644
index 37a418c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentproperties/ui/JSPFContentSettingsPropertyPage.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.contentproperties.ui;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jst.jsp.core.internal.contentproperties.JSPFContentProperties;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.jst.jsp.ui.internal.editor.IHelpContextIds;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PropertyPage;
-
-/**
- * JSP Fragment Property Page
- */
-public class JSPFContentSettingsPropertyPage extends PropertyPage {
-	private static final String SELECT_NONE = JSPUIMessages.JSPFContentSettingsPropertyPage_0;
-
-	// TODO: Figure out what to do with these strings/variables
-	private String[] fLanguages = {SELECT_NONE, "java", //$NON-NLS-1$
-				"javascript"}; //$NON-NLS-1$
-	private String[] fContentTypes = {SELECT_NONE, "application/xhtml+xml", //$NON-NLS-1$
-				"application/xml", //$NON-NLS-1$
-				"text/html", //$NON-NLS-1$
-				"text/xml",  //$NON-NLS-1$
-				"text/css"}; //$NON-NLS-1$
-
-	private class ButtonListener extends SelectionAdapter {
-		public void widgetSelected(SelectionEvent e) {
-			boolean specific = fSpecificSetting.getSelection();
-			updateButtons(specific);
-		}
-	}
-
-	private Combo fLanguageCombo;
-	private Combo fContentTypeCombo;
-	private Button fValidateFragments;
-	Button fSpecificSetting;
-	private SelectionListener fSpecificListener;
-
-	public JSPFContentSettingsPropertyPage() {
-		super();
-		setDescription(JSPUIMessages.JSPFContentSettingsPropertyPage_1);
-	}
-
-	private Composite createComposite(Composite parent, int numColumns) {
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		// GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		composite.setLayout(layout);
-
-		// GridData
-		GridData data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		composite.setLayoutData(data);
-
-		return composite;
-	}
-
-	protected Control createContents(Composite parent) {
-		Composite propertyPage = createComposite(parent, 2);
-
-		// fragment language control
-		Text languageLabel = new Text(propertyPage, SWT.READ_ONLY);
-		languageLabel.setText(JSPUIMessages.JSPFContentSettingsPropertyPage_2);
-		fLanguageCombo = new Combo(propertyPage, SWT.NONE);
-		GridData data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		fLanguageCombo.setLayoutData(data);
-		fLanguageCombo.setItems(fLanguages);
-
-		// fragment content type control
-		Text contentTypeLabel = new Text(propertyPage, SWT.READ_ONLY);
-		contentTypeLabel.setText(JSPUIMessages.JSPFContentSettingsPropertyPage_3);
-		fContentTypeCombo = new Combo(propertyPage, SWT.NONE);
-		data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		fContentTypeCombo.setLayoutData(data);
-		fContentTypeCombo.setItems(fContentTypes);
-
-		// create separator
-		Label label = new Label(propertyPage, SWT.SEPARATOR | SWT.HORIZONTAL);
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = 2;
-		data.verticalSpan = 8;
-		label.setLayoutData(data);
-
-		// specific setting
-		fSpecificSetting = new Button(propertyPage, SWT.CHECK | SWT.LEFT);
-		fSpecificSetting.setText(JSPUIMessages.JSPFContentSettingsPropertyPage_4);
-		data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalSpan = 2;
-		fSpecificSetting.setLayoutData(data);
-
-		fSpecificListener = new ButtonListener();
-		fSpecificSetting.addSelectionListener(fSpecificListener);
-
-		// validate file
-		fValidateFragments = new Button(propertyPage, SWT.CHECK | SWT.LEFT);
-		fValidateFragments.setText(JSPUIMessages.JSPFilesPreferencePage_1);
-		data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalSpan = 2;
-		data.horizontalIndent = 5;
-		fValidateFragments.setLayoutData(data);
-
-		initializeValues();
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(propertyPage, IHelpContextIds.JSP_FRAGMENT_HELPID);
-		return propertyPage;
-	}
-
-	void updateButtons(boolean enabled) {
-		fSpecificSetting.setSelection(enabled);
-		fValidateFragments.setEnabled(enabled);
-	}
-
-	/**
-	 * Get the resource this properties page is for
-	 * 
-	 * @return IResource for this properties page or null if there is no
-	 *         IResource
-	 */
-	private IResource getResource() {
-		IResource resource = null;
-		if (getElement() instanceof IResource) {
-			resource = (IResource) getElement();
-		}
-		return resource;
-	}
-
-	private void initializeValues() {
-		String language = JSPFContentProperties.getProperty(JSPFContentProperties.JSPLANGUAGE, getResource(), false);
-		if (language == null || language.length() == 0) {
-			// if null, use none
-			language = SELECT_NONE;
-		}
-		/*
-		 * If item is already part of combo, select it. Otherwise, add to the
-		 * combobox.
-		 */
-		int index = fLanguageCombo.indexOf(language);
-		if (index > -1)
-			fLanguageCombo.select(index);
-		else
-			fLanguageCombo.setText(language);
-
-		String contentType = JSPFContentProperties.getProperty(JSPFContentProperties.JSPCONTENTTYPE, getResource(), false);
-		if (contentType == null || contentType.length() == 0) {
-			// if null, use none
-			contentType = SELECT_NONE;
-		}
-		/*
-		 * If item is already part of combo, select it. Otherwise, add to the
-		 * combobox.
-		 */
-		index = fContentTypeCombo.indexOf(contentType);
-		if (index > -1)
-			fContentTypeCombo.select(index);
-		else
-			fContentTypeCombo.setText(contentType);
-
-		String validate = JSPFContentProperties.getProperty(JSPFContentProperties.VALIDATE_FRAGMENTS, getResource(), false);
-		String validate2 = JSPFContentProperties.getProperty(JSPFContentProperties.VALIDATE_FRAGMENTS, getResource(), true);
-		if (validate == null || validate.length() == 0) {
-			updateButtons(false);
-			fValidateFragments.setSelection(Boolean.valueOf(validate2).booleanValue());
-		}
-		else {
-			updateButtons(true);
-			fValidateFragments.setSelection(Boolean.valueOf(validate).booleanValue());
-		}
-	}
-
-	protected void performDefaults() {
-		int index = fLanguageCombo.indexOf(SELECT_NONE);
-		if (index > -1)
-			fLanguageCombo.select(index);
-
-		index = fContentTypeCombo.indexOf(SELECT_NONE);
-		if (index > -1)
-			fContentTypeCombo.select(index);
-
-		updateButtons(false);
-		fValidateFragments.setSelection(true);
-
-		super.performDefaults();
-	}
-
-	public boolean performOk() {
-		try {
-			// save the fragment language
-			String language = fLanguageCombo.getText();
-			if (language == null || language.length() == 0 || language.equalsIgnoreCase(SELECT_NONE)) {
-				// if none, use null
-				language = null;
-			}
-			JSPFContentProperties.setProperty(JSPFContentProperties.JSPLANGUAGE, getResource(), language);
-
-			// save fragment content type
-			String contentType = fContentTypeCombo.getText();
-			if (contentType == null || contentType.length() == 0 || contentType.equalsIgnoreCase(SELECT_NONE)) {
-				// if none, use null
-				contentType = null;
-			}
-			JSPFContentProperties.setProperty(JSPFContentProperties.JSPCONTENTTYPE, getResource(), contentType);
-
-			String validate = null;
-			if (fSpecificSetting.getSelection()) {
-				validate = Boolean.toString(fValidateFragments.getSelection());
-			}
-			JSPFContentProperties.setProperty(JSPFContentProperties.VALIDATE_FRAGMENTS, getResource(), validate);
-		}
-		catch (CoreException e) {
-			// maybe in future, let user know there was a problem saving file
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-
-		return super.performOk();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentproperties/ui/ProjectJSPFContentSettingsPropertyPage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentproperties/ui/ProjectJSPFContentSettingsPropertyPage.java
deleted file mode 100644
index 31976b6..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/contentproperties/ui/ProjectJSPFContentSettingsPropertyPage.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.contentproperties.ui;
-
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-
-public class ProjectJSPFContentSettingsPropertyPage extends JSPFContentSettingsPropertyPage {
-	public ProjectJSPFContentSettingsPropertyPage() {
-		setDescription(JSPUIMessages.ProjectJSPFContentSettingsPropertyPage_0);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/derived/SingleCharReader.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/derived/SingleCharReader.java
deleted file mode 100644
index eb98e20..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/derived/SingleCharReader.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.ui.internal.derived;
-
-import java.io.IOException;
-import java.io.Reader;
-
-/*
- * Copied from org.eclipse.jdt.internal.corext.javadoc.SingleCharReader.
- * Modification was made to fix statement unnecessarily nested within else
- * clause warning in read(..).
- */
-public abstract class SingleCharReader extends Reader {
-
-	/**
-	 * @see Reader#read()
-	 */
-	public abstract int read() throws IOException;
-
-	/**
-	 * @see Reader#read(char[],int,int)
-	 */
-	public int read(char cbuf[], int off, int len) throws IOException {
-		int end = off + len;
-		for (int i = off; i < end; i++) {
-			int ch = read();
-			if (ch == -1) {
-				if (i == off) {
-					return -1;
-				}
-				return i - off;
-			}
-			cbuf[i] = (char) ch;
-		}
-		return len;
-	}
-
-	/**
-	 * @see Reader#ready()
-	 */
-	public boolean ready() throws IOException {
-		return true;
-	}
-
-	/**
-	 * Gets the content as a String
-	 */
-	public String getString() throws IOException {
-		StringBuffer buf = new StringBuffer();
-		int ch;
-		while ((ch = read()) != -1) {
-			buf.append((char) ch);
-		}
-		return buf.toString();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/ActionContributorJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/ActionContributorJSP.java
deleted file mode 100644
index de4af96..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/ActionContributorJSP.java
+++ /dev/null
@@ -1,94 +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.ui.internal.editor;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jdt.ui.actions.RefactorActionGroup;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jst.jsp.ui.internal.IActionConstantsJSP;
-import org.eclipse.jst.jsp.ui.internal.IActionDefinitionIdsJSP;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.RetargetTextEditorAction;
-import org.eclipse.wst.html.ui.internal.edit.ui.ActionContributorHTML;
-import org.eclipse.wst.sse.ui.internal.actions.StructuredTextEditorActionConstants;
-
-/**
- * ActionContributorJSP
- * 
- * This class should not be used inside multi page editor's
- * ActionBarContributor, since cascaded init() call from the
- * ActionBarContributor will causes exception and it leads to lose whole
- * toolbars.
- * 
- * Instead, use SourcePageActionContributor for source page contributor of
- * multi page editor.
- * 
- * Note that this class is still valid for single page editor.
- */
-public class ActionContributorJSP extends ActionContributorHTML {
-
-	private RetargetTextEditorAction renameElementAction = null;
-	private RetargetTextEditorAction moveElementAction = null;
-	private IMenuManager refactorMenu = null;
-
-	private static final String[] EDITOR_IDS = {"org.eclipse.jst.jsp.core.jspsource.source", "org.eclipse.wst.sse.ui.StructuredTextEditor"}; //$NON-NLS-1$ //$NON-NLS-2$
-
-	public ActionContributorJSP() {
-		super();
-
-		ResourceBundle bundle = JSPUIMessages.getResourceBundle();
-		this.renameElementAction = new RetargetTextEditorAction(bundle, IActionConstantsJSP.ACTION_NAME_RENAME_ELEMENT + StructuredTextEditorActionConstants.DOT);
-		this.renameElementAction.setActionDefinitionId(IActionDefinitionIdsJSP.RENAME_ELEMENT);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.renameElementAction, IHelpContextIds.JSP_REFACTORRENAME_HELPID);
-
-		this.moveElementAction = new RetargetTextEditorAction(bundle, IActionConstantsJSP.ACTION_NAME_MOVE_ELEMENT + StructuredTextEditorActionConstants.DOT);
-		this.moveElementAction.setActionDefinitionId(IActionDefinitionIdsJSP.MOVE_ELEMENT);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this.moveElementAction, IHelpContextIds.JSP_REFACTORMOVE_HELPID);
-
-		// the refactor menu, add the menu itself to add all refactor actions
-		this.refactorMenu = new MenuManager(JSPUIMessages.ActionContributorJSP_0, RefactorActionGroup.MENU_ID); //$NON-NLS-1$
-		refactorMenu.add(this.renameElementAction);
-		refactorMenu.add(this.moveElementAction);
-	}
-
-
-	protected String[] getExtensionIDs() {
-		return EDITOR_IDS;
-	}
-
-
-	protected void addToMenu(IMenuManager menu) {
-		super.addToMenu(menu);
-
-		menu.insertAfter(IWorkbenchActionConstants.M_EDIT, this.refactorMenu);
-	}
-
-
-	public void setActiveEditor(IEditorPart activeEditor) {
-
-		super.setActiveEditor(activeEditor);
-		this.renameElementAction.setAction(getAction(getTextEditor(getActiveEditorPart()), IActionConstantsJSP.ACTION_NAME_RENAME_ELEMENT));
-		this.moveElementAction.setAction(getAction(getTextEditor(getActiveEditorPart()), IActionConstantsJSP.ACTION_NAME_MOVE_ELEMENT));
-	}
-
-
-	public void setViewerSpecificContributionsEnabled(boolean enabled) {
-
-		super.setViewerSpecificContributionsEnabled(enabled);
-		this.renameElementAction.setEnabled(enabled);
-		this.moveElementAction.setEnabled(enabled);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/IHelpContextIds.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/IHelpContextIds.java
deleted file mode 100644
index 4cec591..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/IHelpContextIds.java
+++ /dev/null
@@ -1,53 +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.ui.internal.editor;
-
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-
-/**
- * Help context ids for the JSP Source Editor.
- * <p>
- * This interface contains constants only; it is not intended to be
- * implemented.
- * </p>
- * 
- */
-public interface IHelpContextIds {
-	// org.eclipse.jst.jsp.ui.
-	public static final String PREFIX = JSPUIPlugin.ID + "."; //$NON-NLS-1$
-
-
-	// // figured out on the fly
-	// // JSP Source page editor
-	// public static final String JSP_SOURCEVIEW_HELPID =
-	// ContentTypeIdForJSP.ContentTypeID_JSP +"_source_HelpId"; //$NON-NLS-1$
-
-	// JSP Files Preference page
-	public static final String JSP_PREFWEBX_FILES_HELPID = PREFIX + "webx0050"; //$NON-NLS-1$
-	// JSP Styles Preference page
-	public static final String JSP_PREFWEBX_STYLES_HELPID = PREFIX + "webx0051"; //$NON-NLS-1$
-	// JSP Templates Preference page
-	public static final String JSP_PREFWEBX_TEMPLATES_HELPID = PREFIX + "webx0052"; //$NON-NLS-1$
-
-
-	// JSP Fragment Property Page
-	public static final String JSP_FRAGMENT_HELPID = PREFIX + "jspf1000"; //$NON-NLS-1$
-
-	// JSP Source Editor Context Menu
-	// Refactor Rename
-	public static final String JSP_REFACTORRENAME_HELPID = PREFIX + "jspr0010"; //$NON-NLS-1$
-
-	// Refactor Move
-	public static final String JSP_REFACTORMOVE_HELPID = PREFIX + "jspr0020"; //$NON-NLS-1$
-
-	// JSP New File Wizard - Template Page
-	public static final String JSP_NEWWIZARD_TEMPLATE_HELPID = PREFIX + "jspw0010"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPEditorPluginImageHelper.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPEditorPluginImageHelper.java
deleted file mode 100644
index b659b9b..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPEditorPluginImageHelper.java
+++ /dev/null
@@ -1,179 +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.ui.internal.editor;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-
-/**
- * Helper class to handle images provided by this plug-in.
- * 
- * NOTE: For internal use only. For images used externally, please use the
- * Shared***ImageHelper class instead.
- * 
- * @author amywu
- */
-public class JSPEditorPluginImageHelper {
-	private final String PLUGINID = JSPUIPlugin.ID;
-	private static JSPEditorPluginImageHelper instance = null;
-
-	//	 save a descriptor for each image
-	private HashMap fImageDescRegistry = null;
-
-	/**
-	 * Gets the instance.
-	 * 
-	 * @return Returns a JSPEditorPluginImageHelper
-	 */
-	public synchronized static JSPEditorPluginImageHelper getInstance() {
-		if (instance == null)
-			instance = new JSPEditorPluginImageHelper();
-		return instance;
-	}
-
-	/**
-	 * Retrieves the image associated with resource from the image registry.
-	 * If the image cannot be retrieved, attempt to find and load the image at
-	 * the location specified in resource.
-	 * 
-	 * @param resource
-	 *            the image to retrieve
-	 * @return Image the image associated with resource or null if one could
-	 *         not be found
-	 */
-	public Image getImage(String resource) {
-		Image image = getImageRegistry().get(resource);
-		if (image == null) {
-			// create an image
-			image = createImage(resource);
-		}
-		return image;
-	}
-   
-    /**
-     * Retrieves the Image associated with ImageDescriptor from the image
-     * descriptor registry. If the Image cannot be retrieved, it is created
-     * from the ImageDescriptor
-     * 
-     * @param resource
-     *            the image descriptor to retrieve
-     * @return Image the associated with the ImageDescriptor or
-     *         the default "missing" image descriptor if one could not be
-     *         found
-     */
-    public Image getImage(ImageDescriptor descriptor) {
-        if (descriptor == null)
-            descriptor= ImageDescriptor.getMissingImageDescriptor();
-            
-        Image result= (Image)getImageDescriptorRegistry().get(descriptor);
-        if (result != null)
-            return result;
-        
-        result= descriptor.createImage();
-        if (result != null)
-            getImageDescriptorRegistry().put(descriptor, result);
-        return result;
-    }
-
-	/**
-	 * Retrieves the image descriptor associated with resource from the image
-	 * descriptor registry. If the image descriptor cannot be retrieved,
-	 * attempt to find and load the image descriptor at the location specified
-	 * in resource.
-	 * 
-	 * @param resource
-	 *            the image descriptor to retrieve
-	 * @return ImageDescriptor the image descriptor assocated with resource or
-	 *         the default "missing" image descriptor if one could not be
-	 *         found
-	 */
-	public ImageDescriptor getImageDescriptor(String resource) {
-		ImageDescriptor imageDescriptor = null;
-		Object o = getImageDescriptorRegistry().get(resource);
-		if (o == null) {
-			//create a descriptor
-			imageDescriptor = createImageDescriptor(resource);
-		}
-		else {
-			imageDescriptor = (ImageDescriptor) o;
-		}
-		return imageDescriptor;
-	}
-
-	/**
-	 * Returns the image descriptor registry for this plugin.
-	 * 
-	 * @return HashMap - image descriptor registry for this plugin
-	 */
-	private HashMap getImageDescriptorRegistry() {
-		if (fImageDescRegistry == null)
-			fImageDescRegistry = new HashMap();
-		return fImageDescRegistry;
-	}
-
-	/**
-	 * Returns the image registry for this plugin.
-	 * 
-	 * @return ImageRegistry - image registry for this plugin
-	 */
-	private ImageRegistry getImageRegistry() {
-		return JFaceResources.getImageRegistry();
-	}
-
-	/**
-	 * Creates an image from the given resource and adds the image to the
-	 * image registry.
-	 * 
-	 * @param resource
-	 * @return Image
-	 */
-	private Image createImage(String resource) {
-		ImageDescriptor desc = getImageDescriptor(resource);
-		Image image = null;
-		
-		if (desc != null) {
-			image = desc.createImage();
-			// dont add the missing image descriptor image to the image registry
-			if (!desc.equals(ImageDescriptor.getMissingImageDescriptor()))
-				getImageRegistry().put(resource, image);
-		}
-		return image;
-	}
-
-	/**
-	 * Creates an image descriptor from the given imageFilePath and adds the
-	 * image descriptor to the image descriptor registry. If an image
-	 * descriptor could not be created, the default "missing" image descriptor
-	 * is returned but not added to the image descriptor registry.
-	 * 
-	 * @param imageFilePath
-	 * @return ImageDescriptor image descriptor for imageFilePath or default
-	 *         "missing" image descriptor if resource could not be found
-	 */
-	private ImageDescriptor createImageDescriptor(String imageFilePath) {
-		ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(PLUGINID, imageFilePath);
-		if (imageDescriptor != null) {
-			getImageDescriptorRegistry().put(imageFilePath, imageDescriptor);
-		}
-		else {
-			imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
-		}
-
-		return imageDescriptor;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPEditorPluginImages.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPEditorPluginImages.java
deleted file mode 100644
index d86c04b..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPEditorPluginImages.java
+++ /dev/null
@@ -1,48 +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.ui.internal.editor;
-
-/**
- * Bundle of most images used by the JSP Editor plug-in.
- */
-public class JSPEditorPluginImages { 	
-	public static final String IMG_OBJ_CLASS_OBJ = "icons/full/obj16/class_obj.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_GENERIC = "icons/full/obj16/tag-generic.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_JSP = "icons/full/obj16/tag-jsp.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_TEMPLATE = "icons/full/obj16/tag-template.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_PUBLIC = "icons/full/obj16/public.gif";			//$NON-NLS-1$
-    
-    public static final String FIELD_PROTECTED_OBJ = "icons/full/obj16/field_protected_obj.gif"; //$NON-NLS-1$
-    public static final String FIELD_PUBLIC_OBJ = "icons/full/obj16/field_public_obj.gif"; //$NON-NLS-1$
-    public static final String FIELD_DEFAULT_OBJ= "icons/full/obj16/field_default_obj.gif"; //$NON-NLS-1$
-    public static final String FIELD_PRIVATE_OBJ = "icons/full/obj16/field_private_obj.gif"; //$NON-NLS-1$
-    
-    public static final String DEFAULT_CO = "icons/full/obj16/default_co.gif"; //$NON-NLS-1$
-    public static final String PROTECTED_CO = "icons/full/obj16/protected_co.gif"; //$NON-NLS-1$
-    public static final String PUBLIC_CO = "icons/full/obj16/public_co.gif"; //$NON-NLS-1$
-    public static final String PRIVATE_CO = "icons/full/obj16/private_co.gif"; //$NON-NLS-1$
-    
-    public static final String INNERCLASS_DEFAULT_OBJ= "icons/full/obj16/innerclass_default_obj.gif"; //$NON-NLS-1$
-    public static final String INNERCLASS_PRIVATE_OBJ = "icons/full/obj16/innerclass_private_obj.gif"; //$NON-NLS-1$
-    public static final String INNERCLASS_PROTECTED_OBJ = "icons/full/obj16/innerclass_protected_obj.gif"; //$NON-NLS-1$
-    public static final String INNERCLASS_PUBLIC_OBJ = "icons/full/obj16/innerclass_public_obj.gif"; //$NON-NLS-1$
-    
-    public static final String INNERINTERFACE_DEFAULT_OBJ = "icons/full/obj16/innerinterface_default_obj.gif"; //$NON-NLS-1$
-    public static final String INNERINTERFACE_PRIVATE_OBJ = "icons/full/obj16/innerinterface_private_obj.gif"; //$NON-NLS-1$
-    public static final String INNERINTERFACE_PROTECTED_OBJ = "icons/full/obj16/innerinterface_protected_obj.gif"; //$NON-NLS-1$
-    public static final String INNERINTERFACE_PUBLIC_OBJ = "icons/full/obj16/innerinterface_public_obj.gif"; //$NON-NLS-1$
-    
-    public static final String PACKAGE_OBJ = "icons/full/obj16/package_obj.gif"; //$NON-NLS-1$
-    
-    public static final String LOCAL_VARIABLE_OBJ = "icons/full/obj16/localvariable_obj.gif"; //$NON-NLS-1$
-    
-    public static final String IMG_OBJ_WIZBAN_NEWJSPFILE = "icons/full/wizban/newjspfile_wiz.gif"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPSourceEditingTextTools.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPSourceEditingTextTools.java
deleted file mode 100644
index d31cb31..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/editor/JSPSourceEditingTextTools.java
+++ /dev/null
@@ -1,62 +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.ui.internal.editor;
-
-
-
-import org.eclipse.jst.jsp.core.internal.document.PageDirectiveAdapter;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP12Namespace;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.ui.internal.provisional.XMLSourceEditingTextTools;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * Implements ISourceEditingTextTools interface
- */
-public class JSPSourceEditingTextTools extends XMLSourceEditingTextTools {
-
-	public String getPageLanguage(Node node) {
-		String language = null;
-		Document doc = null;
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			doc = (Document) node;
-		}
-		else {
-			doc = node.getOwnerDocument();
-		}
-		if (doc != null) {
-			if (doc instanceof IDOMDocument) {
-				PageDirectiveAdapter adapter = (PageDirectiveAdapter) ((IDOMDocument) doc).getAdapterFor(PageDirectiveAdapter.class);
-				if (adapter != null)
-					language = adapter.getLanguage();
-			}
-			else {
-				// iterate through all of the page directives
-				NodeList pageDirectives = doc.getElementsByTagName(JSP12Namespace.ElementName.DIRECTIVE_PAGE);
-				for (int i = 0; i < pageDirectives.getLength(); i++) {
-					Element pageDirective = (Element) pageDirectives.item(i);
-					String langValue = pageDirective.getAttribute(JSP11Namespace.ATTR_NAME_LANGUAGE);
-					// last one to declare a language wins
-					if (langValue != null)
-						language = langValue;
-				}
-			}
-		}
-		// if no language was specified anywhere, assume Java
-		if (language == null)
-			language = JSP11Namespace.ATTR_VALUE_JAVA;
-		return language;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/format/FormattingStrategyJSPJava.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/format/FormattingStrategyJSPJava.java
deleted file mode 100644
index 2c9b02d..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/format/FormattingStrategyJSPJava.java
+++ /dev/null
@@ -1,110 +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.ui.internal.format;
-
-import java.util.LinkedList;
-import java.util.Map;
-
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.ToolFactory;
-import org.eclipse.jdt.core.formatter.CodeFormatter;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.TypedPosition;
-import org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy;
-import org.eclipse.jface.text.formatter.FormattingContextProperties;
-import org.eclipse.jface.text.formatter.IFormattingContext;
-import org.eclipse.jst.jsp.core.internal.Logger;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationUtil;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.text.edits.TextEdit;
-
-
-public class FormattingStrategyJSPJava extends ContextBasedFormattingStrategy {
-
-	/** Documents to be formatted by this strategy */
-	private final LinkedList fDocuments = new LinkedList();
-	/** Partitions to be formatted by this strategy */
-	private final LinkedList fPartitions = new LinkedList();
-	JSPTranslation translation = null;
-
-	/**
-	 * Creates a new java formatting strategy.
-	 */
-	public FormattingStrategyJSPJava() {
-		super();
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#format()
-	 */
-	public void format() {
-		super.format();
-
-		final IDocument document = (IDocument) fDocuments.removeFirst();
-		final TypedPosition partition = (TypedPosition) fPartitions.removeFirst();
-
-		if (document != null && partition != null) {
-			try {
-
-				JSPTranslationUtil translationUtil = new JSPTranslationUtil(document);
-				ICompilationUnit cu = translationUtil.getCompilationUnit();
-				if (cu != null) {
-					String cuSource = cu.getSource();
-					TextEdit textEdit = formatString(CodeFormatter.K_COMPILATION_UNIT, cuSource, 0, TextUtilities.getDefaultLineDelimiter(document), getPreferences());
-
-					TextEdit jspEdit = translationUtil.getTranslation().getJspEdit(textEdit);
-					if (jspEdit != null && jspEdit.hasChildren())
-						jspEdit.apply(document);
-				}
-
-			}
-			catch (MalformedTreeException exception) {
-				Logger.logException(exception);
-			}
-			catch (BadLocationException exception) {
-				// Can only happen on concurrent document modification - log
-				// and bail out
-				Logger.logException(exception);
-			}
-			catch (JavaModelException exception) {
-				Logger.logException(exception);
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStarts(org.eclipse.jface.text.formatter.IFormattingContext)
-	 */
-	public void formatterStarts(final IFormattingContext context) {
-		super.formatterStarts(context);
-
-		fPartitions.addLast(context.getProperty(FormattingContextProperties.CONTEXT_PARTITION));
-		fDocuments.addLast(context.getProperty(FormattingContextProperties.CONTEXT_MEDIUM));
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStops()
-	 */
-	public void formatterStops() {
-		super.formatterStops();
-
-		fPartitions.clear();
-		fDocuments.clear();
-	}
-
-	public TextEdit formatString(int kind, String string, int indentationLevel, String lineSeparator, Map options) {
-		return ToolFactory.createCodeFormatter(options).format(kind, string, 0, string.length(), indentationLevel, lineSeparator);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/ExternalFileEditorInput.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/ExternalFileEditorInput.java
deleted file mode 100644
index 4b50266..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/ExternalFileEditorInput.java
+++ /dev/null
@@ -1,160 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.editors.text.ILocationProvider;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * EditorInput for external files. Copied from
- * org.eclipse.ui.internal.editors.text.JavaFileEditorInput
- */
-class ExternalFileEditorInput implements IEditorInput, ILocationProvider {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-	
-	/**
-	 * The workbench adapter which simply provides the label.
-	 * 
-	 * @see  Eclipse 3.1
-	 */
-	private class WorkbenchAdapter implements IWorkbenchAdapter {
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object o) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-		 */
-		public ImageDescriptor getImageDescriptor(Object object) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
-		 */
-		public String getLabel(Object o) {
-			return ((ExternalFileEditorInput) o).getName();
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object o) {
-			return null;
-		}
-	}
-
-	private File fFile;
-	private WorkbenchAdapter fWorkbenchAdapter = new WorkbenchAdapter();
-
-	public ExternalFileEditorInput(File file) {
-		super();
-		fFile = file;
-		fWorkbenchAdapter = new WorkbenchAdapter();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return fFile.exists();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return fFile.getName();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return fFile.getAbsolutePath();
-	}
-
-	/*
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		if (ILocationProvider.class.equals(adapter))
-			return this;
-		if (IWorkbenchAdapter.class.equals(adapter))
-			return fWorkbenchAdapter;
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/*
-	 * @see org.eclipse.ui.editors.text.ILocationProvider#getPath(java.lang.Object)
-	 */
-	public IPath getPath(Object element) {
-		if (element instanceof ExternalFileEditorInput) {
-			ExternalFileEditorInput input = (ExternalFileEditorInput) element;
-			return Path.fromOSString(input.fFile.getAbsolutePath());
-		}
-		return null;
-	}
-	
-    /*
-     * @see org.eclipse.ui.IPathEditorInput#getPath()
-     * @since 3.1
-     */
-    public IPath getPath() {
-        return Path.fromOSString(fFile.getAbsolutePath());
-    }
-
-	/*
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o == this)
-			return true;
-
-		if (o instanceof ExternalFileEditorInput) {
-			ExternalFileEditorInput input = (ExternalFileEditorInput) o;
-			return fFile.equals(input.fFile);
-		}
-		
-        if (o instanceof IPathEditorInput) {
-            IPathEditorInput input= (IPathEditorInput)o;
-            return getPath().equals(input.getPath());
-        }
-
-		return false;
-	}
-
-	/*
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return fFile.hashCode();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/ExternalFileHyperlink.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/ExternalFileHyperlink.java
deleted file mode 100644
index f25d937..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/ExternalFileHyperlink.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import java.io.File;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * Hyperlink for external files.
- */
-class ExternalFileHyperlink implements IHyperlink {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-	
-	private IRegion fHyperlinkRegion;
-	private File fHyperlinkFile;
-
-	public ExternalFileHyperlink(IRegion region, File file) {
-		fHyperlinkFile = file;
-		fHyperlinkRegion = region;
-	}
-	
-	public IRegion getHyperlinkRegion() {
-		return fHyperlinkRegion;
-	}
-
-	public String getTypeLabel() {
-		return null;
-	}
-
-	public String getHyperlinkText() {
-		return null;
-	}
-
-	public void open() {
-		if (fHyperlinkFile != null) {
-			IEditorInput input = new ExternalFileEditorInput(fHyperlinkFile);
-			IEditorDescriptor descriptor;
-			try {
-				descriptor = IDE.getEditorDescriptor(input.getName(), true);
-				if (descriptor != null) {
-					IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-					IDE.openEditor(page, input, descriptor.getId(), true);
-				}
-			}
-			catch (PartInitException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/JSPJavaHyperlink.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/JSPJavaHyperlink.java
deleted file mode 100644
index 539f959..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/JSPJavaHyperlink.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * Hyperlink for JSP Java elements
- */
-class JSPJavaHyperlink implements IHyperlink {
-	private IRegion fRegion;
-	private IJavaElement fElement;
-
-	public JSPJavaHyperlink(IRegion region, IJavaElement element) {
-		fRegion = region;
-		fElement = element;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkRegion()
-	 */
-	public IRegion getHyperlinkRegion() {
-		return fRegion;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel()
-	 */
-	public String getTypeLabel() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText()
-	 */
-	public String getHyperlinkText() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#open()
-	 */
-	public void open() {
-		try {
-			IEditorPart editor = JavaUI.openInEditor(fElement);
-			if (editor != null) {
-				JavaUI.revealInEditor(editor, fElement);
-			}
-		}
-		catch (Exception e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/JSPJavaHyperlinkDetector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/JSPJavaHyperlinkDetector.java
deleted file mode 100644
index d89caf0..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/JSPJavaHyperlinkDetector.java
+++ /dev/null
@@ -1,237 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.IField;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.ILocalVariable;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.ISourceRange;
-import org.eclipse.jdt.core.ISourceReference;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-/**
- * Detects hyperlinks in JSP Java content
- */
-public class JSPJavaHyperlinkDetector implements IHyperlinkDetector {
-
-	private IHyperlink createHyperlink(IJavaElement element, IRegion region, IDocument document) {
-		IHyperlink link = null;
-		if (region != null) {
-			// open local variable in the JSP file...
-			if (element instanceof ISourceReference) {
-				IFile file = null;
-				int jspOffset = 0;
-				IStructuredModel sModel = null;
-
-				// try to locate the file in the workspace
-				try {
-					sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-					if (sModel != null) {
-						String uriString = sModel.getResolver().getFileBaseLocation();
-						file = getFile(uriString);
-					}
-				}
-				finally {
-					if (sModel != null)
-						sModel.releaseFromRead();
-				}
-
-				// get Java range, translate coordinate to JSP
-
-				try {
-					ISourceRange range = null;
-					IJSPTranslation jspTranslation = getJSPTranslation(document);
-					if (jspTranslation != null) {
-						// link to local variable definitions
-						if (element instanceof ILocalVariable) {
-							range = ((ILocalVariable) element).getNameRange();
-						}
-						// linking to fields of the same compilation unit
-						else if (element.getElementType() == IJavaElement.FIELD) {
-							Object cu = ((IField) element).getCompilationUnit();
-							if (cu != null && cu.equals(jspTranslation.getCompilationUnit()))
-								range = ((ISourceReference) element).getSourceRange();
-						}
-						// linking to methods of the same compilation unit
-						else if (element.getElementType() == IJavaElement.METHOD) {
-							Object cu = ((IMethod) element).getCompilationUnit();
-							if (cu != null && cu.equals(jspTranslation.getCompilationUnit()))
-								range = ((ISourceReference) element).getSourceRange();
-						}
-					}
-
-					if (range != null && file != null) {
-						jspOffset = jspTranslation.getJspOffset(range.getOffset());
-						if (jspOffset >= 0) {
-							link = new WorkspaceFileHyperlink(region, file, new Region(jspOffset, range.getLength()));
-						}
-					}
-				}
-				catch (JavaModelException jme) {
-					Logger.log(Logger.WARNING_DEBUG, jme.getMessage(), jme);
-				}
-			}
-			if (link == null) {
-				link = new JSPJavaHyperlink(region, element);
-			}
-		}
-		return link;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlinkDetector#detectHyperlinks(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion, boolean)
-	 */
-	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
-		List hyperlinks = new ArrayList(0);
-
-		if (region != null && textViewer != null) {
-			IDocument document = textViewer.getDocument();
-
-			// check and make sure this is a valid Java type
-			JSPTranslation jspTranslation = getJSPTranslation(document);
-			if (jspTranslation != null) {
-				// check if we are in JSP Java content
-				int javaOffset = jspTranslation.getJavaOffset(region.getOffset());
-				if (javaOffset > -1) {
-					// check that we are not in indirect Java content (like
-					// included files)
-					if (!jspTranslation.isIndirect(javaOffset)) {
-						// get Java elements
-						IJavaElement[] elements = jspTranslation.getElementsFromJspRange(region.getOffset(), region.getOffset() + region.getLength());
-						if (elements != null && elements.length > 0) {
-							// create a JSPJavaHyperlink for each Java element
-							for (int i = 0; i < elements.length; ++i) {
-								IJavaElement element = elements[i];
-
-								// find hyperlink range for Java element
-								IRegion hyperlinkRegion = selectWord(document, region.getOffset());
-								IHyperlink link = createHyperlink(element, hyperlinkRegion, document);
-								if (link != null) {
-									hyperlinks.add(link);
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-
-		if (hyperlinks.size() == 0)
-			return null;
-		return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]);
-	}
-
-	/**
-	 * Returns an IFile from the given uri if possible, null if cannot find
-	 * file from uri.
-	 * 
-	 * @param fileString
-	 *            file system path
-	 * @return returns IFile if fileString exists in the workspace
-	 */
-	private IFile getFile(String fileString) {
-		IFile file = null;
-
-		if (fileString != null) {
-			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(fileString));
-			for (int i = 0; i < files.length && file == null; i++)
-				if (files[i].exists())
-					file = files[i];
-		}
-
-		return file;
-	}
-	/**
-	 * Get JSP translation object
-	 * 
-	 * @return JSPTranslation if one exists, null otherwise
-	 */
-	private JSPTranslation getJSPTranslation(IDocument document) {
-		JSPTranslation translation = null;
-
-		IDOMModel xmlModel = null;
-		try {
-			xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (xmlModel != null) {
-				IDOMDocument xmlDoc = xmlModel.getDocument();
-				JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
-				if (adapter != null) {
-					translation = adapter.getJSPTranslation();
-				}
-			}
-		}
-		finally {
-			if (xmlModel != null)
-				xmlModel.releaseFromRead();
-		}
-		return translation;
-	}
-
-	/**
-	 * Java always selects word when defining region
-	 * 
-	 * @param document
-	 * @param anchor
-	 * @return IRegion
-	 */
-	private IRegion selectWord(IDocument document, int anchor) {
-
-		try {
-			int offset = anchor;
-			char c;
-
-			while (offset >= 0) {
-				c = document.getChar(offset);
-				if (!Character.isJavaIdentifierPart(c))
-					break;
-				--offset;
-			}
-
-			int start = offset;
-
-			offset = anchor;
-			int length = document.getLength();
-
-			while (offset < length) {
-				c = document.getChar(offset);
-				if (!Character.isJavaIdentifierPart(c))
-					break;
-				++offset;
-			}
-
-			int end = offset;
-
-			if (start == end)
-				return new Region(start, 0);
-
-			return new Region(start + 1, end - start - 1);
-
-		}
-		catch (BadLocationException x) {
-			return null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibHyperlinkDetector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibHyperlinkDetector.java
deleted file mode 100644
index ae634a7..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibHyperlinkDetector.java
+++ /dev/null
@@ -1,221 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.URLHyperlink;
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.jst.jsp.core.taglib.ITLDRecord;
-import org.eclipse.jst.jsp.core.taglib.ITaglibRecord;
-import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Detects hyperlinks for taglibs.
- */
-public class TaglibHyperlinkDetector implements IHyperlinkDetector {
-	private final String HTTP_PROTOCOL = "http://";//$NON-NLS-1$
-
-	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
-		IHyperlink hyperlink = null;
-
-		if (textViewer != null && region != null) {
-			IDocument doc = textViewer.getDocument();
-			if (doc != null) {
-				try {
-					// check if jsp tag/directive first
-					ITypedRegion partition = TextUtilities.getPartition(doc, IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING, region.getOffset(), false);
-					if (partition != null && partition.getType() == IJSPPartitions.JSP_DIRECTIVE) {
-						// check if jsp taglib directive
-						Node currentNode = getCurrentNode(doc, region.getOffset());
-						if (currentNode != null && currentNode.getNodeType() == Node.ELEMENT_NODE && JSP11Namespace.ElementName.DIRECTIVE_TAGLIB.equalsIgnoreCase(currentNode.getNodeName())) {
-							// get the uri attribute
-							Attr taglibNode = ((Element) currentNode).getAttributeNode(JSP11Namespace.ATTR_NAME_URI);
-							ITaglibRecord reference = TaglibIndex.resolve(getBaseLocationForTaglib(doc), taglibNode.getValue(), false);
-							if (reference != null) {
-								// handle taglibs
-								switch (reference.getRecordType()) {
-									case (ITaglibRecord.TLD) : {
-										ITLDRecord record = (ITLDRecord) reference;
-										String uriString = record.getPath().toString();
-										IRegion hyperlinkRegion = getHyperlinkRegion(taglibNode);
-										hyperlink = createHyperlink(uriString, hyperlinkRegion, doc, taglibNode);
-									}
-										break;
-									case (ITaglibRecord.JAR) :
-									case (ITaglibRecord.URL) : {
-										IRegion hyperlinkRegion = getHyperlinkRegion(taglibNode);
-										hyperlink = new TaglibJarUriHyperlink(hyperlinkRegion, reference);
-									}
-								}
-							}
-						}
-					}
-				}
-				catch (BadLocationException e) {
-					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-				}
-			}
-		}
-		if (hyperlink != null)
-			return new IHyperlink[]{hyperlink};
-		return null;
-	}
-
-	/**
-	 * Get the base location from the current model (if within workspace,
-	 * location is relative to workspace, otherwise, file system path)
-	 */
-	private String getBaseLocationForTaglib(IDocument document) {
-		String baseLoc = null;
-
-		// get the base location from the current model
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (sModel != null) {
-				baseLoc = sModel.getBaseLocation();
-			}
-		}
-		finally {
-			if (sModel != null) {
-				sModel.releaseFromRead();
-			}
-		}
-		return baseLoc;
-	}
-
-	// the below methods were copied from URIHyperlinkDetector
-
-	private IRegion getHyperlinkRegion(Node node) {
-		IRegion hyperRegion = null;
-
-		if (node != null) {
-			short nodeType = node.getNodeType();
-			if (nodeType == Node.DOCUMENT_TYPE_NODE) {
-				// handle doc type node
-				IDOMNode docNode = (IDOMNode) node;
-				hyperRegion = new Region(docNode.getStartOffset(), docNode.getEndOffset() - docNode.getStartOffset());
-			}
-			else if (nodeType == Node.ATTRIBUTE_NODE) {
-				// handle attribute nodes
-				IDOMAttr att = (IDOMAttr) node;
-				// do not include quotes in attribute value region
-				int regOffset = att.getValueRegionStartOffset();
-				ITextRegion valueRegion = att.getValueRegion();
-				if (valueRegion != null) {
-					int regLength = valueRegion.getTextLength();
-					String attValue = att.getValueRegionText();
-					if (StringUtils.isQuoted(attValue)) {
-						++regOffset;
-						regLength = regLength - 2;
-					}
-					hyperRegion = new Region(regOffset, regLength);
-				}
-			}
-		}
-		return hyperRegion;
-	}
-
-	/**
-	 * Returns an IFile from the given uri.
-	 * 
-	 * @param fileString
-	 *            workspace-relative path to an existing file in the workspace
-	 * @return returns existing IFile
-	 */
-	private IFile getFile(String fileString) {
-		/*
-		 * Note at this point, fileString is already guaranteed to be pointing
-		 * to an existing file in the workspace, so we can just call getFile.
-		 */
-		return ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fileString));
-	}
-
-	/**
-	 * Create the appropriate hyperlink
-	 * 
-	 * @param uriString
-	 * @param hyperlinkRegion
-	 * @return IHyperlink
-	 */
-	private IHyperlink createHyperlink(String uriString, IRegion hyperlinkRegion, IDocument document, Node node) {
-		IHyperlink link = null;
-
-		if (uriString != null) {
-			String temp = uriString.toLowerCase();
-			if (temp.startsWith(HTTP_PROTOCOL)) {
-				// this is a URLHyperlink since this is a web address
-				link = new URLHyperlink(hyperlinkRegion, uriString);
-			}
-
-			// try to locate the file in the workspace
-			IFile file = getFile(uriString);
-			if (file != null) {
-				// this is a WorkspaceFileHyperlink since file exists in
-				// workspace
-				link = new WorkspaceFileHyperlink(hyperlinkRegion, file);
-			}
-			else {
-				// this is an ExternalFileHyperlink since file does not exist
-				// in workspace
-				File externalFile = new File(uriString);
-				link = new ExternalFileHyperlink(hyperlinkRegion, externalFile);
-			}
-		}
-
-		return link;
-	}
-
-	/**
-	 * Returns the node the cursor is currently on in the document. null if no
-	 * node is selected
-	 * 
-	 * @param offset
-	 * @return Node either element, doctype, text, or null
-	 */
-	private Node getCurrentNode(IDocument document, int offset) {
-		// get the current node at the offset (returns either: element,
-		// doctype, text)
-		IndexedRegion inode = null;
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			inode = sModel.getIndexedRegion(offset);
-			if (inode == null)
-				inode = sModel.getIndexedRegion(offset - 1);
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-
-		if (inode instanceof Node) {
-			return (Node) inode;
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibJarHyperlink.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibJarHyperlink.java
deleted file mode 100644
index 6762926..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibJarHyperlink.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import java.io.File;
-import java.io.InputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * Hyperlink for taglib files in jars.
- */
-class TaglibJarHyperlink implements IHyperlink {
-	static class ZipStorage implements IStorage {
-		File fFile = null;
-		String fEntryName = null;
-
-		ZipStorage(File file, String entryName) {
-			fFile = file;
-			fEntryName = entryName;
-		}
-
-		public InputStream getContents() throws CoreException {
-			InputStream stream = null;
-			try {
-				ZipFile file = new ZipFile(fFile);
-				ZipEntry entry = file.getEntry(fEntryName);
-				stream = file.getInputStream(entry);
-			}
-			catch (Exception e) {
-				throw new CoreException(new Status(IStatus.ERROR, JSPUIPlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR, getFullPath().toString(), e));
-			}
-			return stream;
-		}
-
-		public IPath getFullPath() {
-			return new Path(fFile.getAbsolutePath() + IPath.SEPARATOR + fEntryName);
-		}
-
-		public String getName() {
-			return fEntryName;
-		}
-
-		public boolean isReadOnly() {
-			return true;
-		}
-
-		public Object getAdapter(Class adapter) {
-			return null;
-		}
-	}
-
-	private IRegion fRegion;
-	private IPath fZipFilePath;
-
-	public TaglibJarHyperlink(IRegion region, IPath zipFilePath) {
-		fRegion = region;
-		fZipFilePath = zipFilePath;
-	}
-
-	public IRegion getHyperlinkRegion() {
-		return fRegion;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel()
-	 */
-	public String getTypeLabel() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText()
-	 */
-	public String getHyperlinkText() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void open() {
-		IEditorInput input = new URLFileHyperlink.StorageEditorInput(new ZipStorage(fZipFilePath.toFile(), "META-INF/taglib.tld")); //$NON-NLS-1$
-		IEditorDescriptor descriptor;
-		try {
-			descriptor = IDE.getEditorDescriptor(input.getName());
-			if (descriptor != null) {
-				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-				IDE.openEditor(page, input, descriptor.getId(), true);
-			}
-		}
-		catch (PartInitException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibJarUriHyperlink.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibJarUriHyperlink.java
deleted file mode 100644
index 1cf7086..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/TaglibJarUriHyperlink.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jst.jsp.core.taglib.IJarRecord;
-import org.eclipse.jst.jsp.core.taglib.ITaglibRecord;
-import org.eclipse.jst.jsp.core.taglib.IURLRecord;
-
-/**
- * Hyperlink for taglib files in jars or specified by urls.
- */
-class TaglibJarUriHyperlink implements IHyperlink {
-	private IRegion fRegion;
-	private ITaglibRecord fTaglibRecord;
-	private IHyperlink fHyperlink;
-
-	public TaglibJarUriHyperlink(IRegion region, ITaglibRecord record) {
-		fRegion = region;
-		fTaglibRecord = record;
-	}
-
-	private IHyperlink getHyperlink() {
-		if (fHyperlink == null && fTaglibRecord != null) {
-			switch (fTaglibRecord.getRecordType()) {
-				case (ITaglibRecord.JAR) : {
-					IJarRecord record = (IJarRecord) fTaglibRecord;
-					fHyperlink = new TaglibJarHyperlink(fRegion, record.getLocation());
-				}
-					break;
-				case (ITaglibRecord.URL) : {
-					IURLRecord record = (IURLRecord) fTaglibRecord;
-					fHyperlink = new URLFileHyperlink(fRegion, record.getURL());
-				}
-			}
-		}
-		return fHyperlink;
-	}
-
-	public IRegion getHyperlinkRegion() {
-		IRegion region = null;
-
-		IHyperlink link = getHyperlink();
-		if (link != null) {
-			region = link.getHyperlinkRegion();
-		}
-		return region;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel()
-	 */
-	public String getTypeLabel() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText()
-	 */
-	public String getHyperlinkText() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void open() {
-		IHyperlink link = getHyperlink();
-		if (link != null) {
-			link.open();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/URLFileHyperlink.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/URLFileHyperlink.java
deleted file mode 100644
index 4ce016f..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/URLFileHyperlink.java
+++ /dev/null
@@ -1,161 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import java.io.InputStream;
-import java.net.URL;
-
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-
-/**
- * Hyperlink for URLs (opens in read-only mode)
- */
-class URLFileHyperlink implements IHyperlink {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-
-	static class StorageEditorInput implements IStorageEditorInput {
-		IStorage fStorage = null;
-
-		StorageEditorInput(IStorage storage) {
-			fStorage = storage;
-		}
-
-		public IStorage getStorage() throws CoreException {
-			return fStorage;
-		}
-
-		public boolean exists() {
-			return fStorage != null;
-		}
-
-		public ImageDescriptor getImageDescriptor() {
-			return null;
-		}
-
-		public String getName() {
-			return fStorage.getName();
-		}
-
-		public IPersistableElement getPersistable() {
-			return null;
-		}
-
-		public String getToolTipText() {
-			return fStorage.getFullPath() != null ? fStorage.getFullPath().toString() : fStorage.getName();
-		}
-
-		public Object getAdapter(Class adapter) {
-			return null;
-		}
-	}
-	
-	static class URLStorage implements IStorage {
-		URL fURL = null;
-
-		URLStorage(URL url) {
-			fURL = url;
-		}
-
-		public InputStream getContents() throws CoreException {
-			InputStream stream = null;
-			try {
-				stream = fURL.openStream();
-			}
-			catch (Exception e) {
-				throw new CoreException(new Status(IStatus.ERROR, JSPUIPlugin.getDefault().getBundle().getSymbolicName(), IStatus.ERROR, fURL.toString(), e));
-			}
-			return stream;
-		}
-
-		public IPath getFullPath() {
-			return new Path(fURL.toString());
-		}
-
-		public String getName() {
-			return new Path(fURL.getFile()).lastSegment();
-		}
-
-		public boolean isReadOnly() {
-			return true;
-		}
-
-		public Object getAdapter(Class adapter) {
-			return null;
-		}
-
-	}
-
-	private IRegion fRegion;
-	private URL fURL;
-
-	public URLFileHyperlink(IRegion region, URL url) {
-		fRegion = region;
-		fURL = url;
-	}
-
-	public IRegion getHyperlinkRegion() {
-		return fRegion;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel()
-	 */
-	public String getTypeLabel() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText()
-	 */
-	public String getHyperlinkText() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#open()
-	 */
-	public void open() {
-		if (fURL != null) {
-			IEditorInput input = new StorageEditorInput(new URLStorage(fURL));
-			IEditorDescriptor descriptor;
-			try {
-				descriptor = IDE.getEditorDescriptor(input.getName());
-				if (descriptor != null) {
-					IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-					IDE.openEditor(page, input, descriptor.getId(), true);
-				}
-			}
-			catch (PartInitException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/WorkspaceFileHyperlink.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/WorkspaceFileHyperlink.java
deleted file mode 100644
index 17aaa0a..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/WorkspaceFileHyperlink.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-/**
- * Hyperlink for files within the workspace. (As long as there is an IFile,
- * this can be used) Opens the default editor for the file.
- */
-class WorkspaceFileHyperlink implements IHyperlink {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-
-	private IRegion fRegion;
-	private IFile fFile;
-	private IRegion fHighlightRange;
-
-	public WorkspaceFileHyperlink(IRegion region, IFile file) {
-		fRegion = region;
-		fFile = file;
-	}
-
-	public WorkspaceFileHyperlink(IRegion region, IFile file, IRegion range) {
-		fRegion = region;
-		fFile = file;
-		fHighlightRange = range;
-	}
-
-	public IRegion getHyperlinkRegion() {
-		return fRegion;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel()
-	 */
-	public String getTypeLabel() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText()
-	 */
-	public String getHyperlinkText() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void open() {
-		if (fFile != null && fFile.exists()) {
-			try {
-				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-				IEditorPart editor = IDE.openEditor(page, fFile, true);
-				// highlight range in editor if possible
-				if (fHighlightRange != null && editor instanceof ITextEditor) {
-					((ITextEditor) editor).setHighlightRange(fHighlightRange.getOffset(), fHighlightRange.getLength(), true);
-				}
-			}
-			catch (PartInitException pie) {
-				Logger.log(Logger.WARNING_DEBUG, pie.getMessage(), pie);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/XMLHyperlinkDetector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/XMLHyperlinkDetector.java
deleted file mode 100644
index 3bee897..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/hyperlink/XMLHyperlinkDetector.java
+++ /dev/null
@@ -1,503 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.hyperlink;
-
-import java.io.File;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.URLHyperlink;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * Detects hyperlinks in XML tags. Includes detection in DOCTYPE and attribute
- * values. Resolves references to schemas, dtds, etc using the Common URI
- * Resolver.
- * 
- */
-public class XMLHyperlinkDetector implements IHyperlinkDetector {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-
-	private final String HTTP_PROTOCOL = "http://";//$NON-NLS-1$
-	private final String NO_NAMESPACE_SCHEMA_LOCATION = "noNamespaceSchemaLocation"; //$NON-NLS-1$
-	private final String SCHEMA_LOCATION = "schemaLocation"; //$NON-NLS-1$
-	private final String XMLNS = "xmlns"; //$NON-NLS-1$
-	private final String XSI_NAMESPACE_URI = "http://www.w3.org/2001/XMLSchema-instance"; //$NON-NLS-1$
-
-	/**
-	 * Create the appropriate hyperlink
-	 * 
-	 * @param uriString
-	 * @param hyperlinkRegion
-	 * @return IHyperlink
-	 */
-	private IHyperlink createHyperlink(String uriString, IRegion hyperlinkRegion, IDocument document, Node node) {
-		IHyperlink link = null;
-
-		if (isHttp(uriString)) {
-			link = new URLHyperlink(hyperlinkRegion, uriString);
-		}
-		else {
-			// try to locate the file in the workspace
-			File systemFile = getFileFromUriString(uriString);
-			if (systemFile != null) {
-				String systemPath = systemFile.getPath();
-				IFile file = getFile(systemPath);
-				if (file != null) {
-					// this is a WorkspaceFileHyperlink since file exists in
-					// workspace
-					link = new WorkspaceFileHyperlink(hyperlinkRegion, file);
-				}
-				else {
-					// this is an ExternalFileHyperlink since file does not
-					// exist in workspace
-					link = new ExternalFileHyperlink(hyperlinkRegion, systemFile);
-				}
-			}
-		}
-		return link;
-	}
-
-	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
-		// for now, only capable of creating 1 hyperlink
-		List hyperlinks = new ArrayList(0);
-
-		if (region != null && textViewer != null) {
-			IDocument document = textViewer.getDocument();
-			Node currentNode = getCurrentNode(document, region.getOffset());
-			if (currentNode != null) {
-				String uriString = null;
-				if (currentNode.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
-					// doctype nodes
-					uriString = getURIString(currentNode, document);
-				}
-				else if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
-					// element nodes
-					Attr currentAttr = getCurrentAttrNode(currentNode, region.getOffset());
-					if (currentAttr != null) {
-						// try to find link for current attribute
-						// resolve attribute value
-						uriString = getURIString(currentAttr, document);
-						// verify validity of uri string
-						if (uriString == null || !isValidURI(uriString))
-							// reset current attribute
-							currentAttr = null;
-					}
-					if (currentAttr == null) {
-						// try to find a linkable attribute within element
-						currentAttr = getLinkableAttr((Element) currentNode);
-						if (currentAttr != null) {
-							uriString = getURIString(currentAttr, document);
-						}
-					}
-					currentNode = currentAttr;
-				}
-				// try to create hyperlink from information gathered
-				if (uriString != null && currentNode != null && isValidURI(uriString)) {
-					IRegion hyperlinkRegion = getHyperlinkRegion(currentNode);
-					IHyperlink hyperlink = createHyperlink(uriString, hyperlinkRegion, document, currentNode);
-					if (hyperlink != null) {
-						hyperlinks.add(hyperlink);
-					}
-				}
-			}
-		}
-		if (hyperlinks.size() == 0)
-			return null;
-		return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]);
-	}
-
-	/**
-	 * Get the base location from the current model (local file system)
-	 */
-	private String getBaseLocation(IDocument document) {
-		String baseLoc = null;
-
-		// get the base location from the current model
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (sModel != null) {
-				IPath location = new Path(sModel.getBaseLocation());
-				if (location.toFile().exists()) {
-					baseLoc = location.toString();
-				}
-				else {
-					if (location.segmentCount() > 1)
-						baseLoc = ResourcesPlugin.getWorkspace().getRoot().getFile(location).getLocation().toString();
-					else
-						baseLoc = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(location).toString();
-				}
-			}
-		}
-		finally {
-			if (sModel != null) {
-				sModel.releaseFromRead();
-			}
-		}
-		return baseLoc;
-	}
-
-	/**
-	 * Get the CMElementDeclaration for an element
-	 * 
-	 * @param element
-	 * @return CMElementDeclaration
-	 */
-	private CMElementDeclaration getCMElementDeclaration(Element element) {
-		CMElementDeclaration ed = null;
-
-		ModelQuery mq = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-		if (mq != null) {
-			ed = mq.getCMElementDeclaration(element);
-		}
-		return ed;
-	}
-
-	/**
-	 * Returns the attribute node within node at offset
-	 * 
-	 * @param node
-	 * @param offset
-	 * @return Attr
-	 */
-	private Attr getCurrentAttrNode(Node node, int offset) {
-		if ((node instanceof IndexedRegion) && ((IndexedRegion) node).contains(offset) && (node.hasAttributes())) {
-			NamedNodeMap attrs = node.getAttributes();
-			// go through each attribute in node and if attribute contains
-			// offset, return that attribute
-			for (int i = 0; i < attrs.getLength(); ++i) {
-				// assumption that if parent node is of type IndexedRegion,
-				// then its attributes will also be of type IndexedRegion
-				IndexedRegion attRegion = (IndexedRegion) attrs.item(i);
-				if (attRegion.contains(offset)) {
-					return (Attr) attrs.item(i);
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the node the cursor is currently on in the document. null if no
-	 * node is selected
-	 * 
-	 * @param offset
-	 * @return Node either element, doctype, text, or null
-	 */
-	private Node getCurrentNode(IDocument document, int offset) {
-		// get the current node at the offset (returns either: element,
-		// doctype, text)
-		IndexedRegion inode = null;
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			inode = sModel.getIndexedRegion(offset);
-			if (inode == null)
-				inode = sModel.getIndexedRegion(offset - 1);
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-
-		if (inode instanceof Node) {
-			return (Node) inode;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns an IFile from the given uri if possible, null if cannot find
-	 * file from uri.
-	 * 
-	 * @param fileString
-	 *            file system path
-	 * @return returns IFile if fileString exists in the workspace
-	 */
-	private IFile getFile(String fileString) {
-		IFile file = null;
-
-		if (fileString != null) {
-			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(fileString));
-			for (int i = 0; i < files.length && file == null; i++)
-				if (files[i].exists())
-					file = files[i];
-		}
-
-		return file;
-	}
-
-	/**
-	 * Create a file from the given uri string
-	 * 
-	 * @param uriString -
-	 *            assumes uriString is not http://
-	 * @return File created from uriString if possible, null otherwise
-	 */
-	private File getFileFromUriString(String uriString) {
-		File file = null;
-		try {
-			// first just try to create a file directly from uriString as
-			// default in case create file from uri does not work
-			file = new File(uriString);
-
-			// try to create file from uri
-			URI uri = new URI(uriString);
-			file = new File(uri);
-		}
-		catch (Exception e) {
-			// if exception is thrown while trying to create File just ignore
-			// and file will be null
-		}
-		return file;
-	}
-
-	private IRegion getHyperlinkRegion(Node node) {
-		IRegion hyperRegion = null;
-
-		if (node != null) {
-			short nodeType = node.getNodeType();
-			if (nodeType == Node.DOCUMENT_TYPE_NODE) {
-				// handle doc type node
-				IDOMNode docNode = (IDOMNode) node;
-				hyperRegion = new Region(docNode.getStartOffset(), docNode.getEndOffset() - docNode.getStartOffset());
-			}
-			else if (nodeType == Node.ATTRIBUTE_NODE) {
-				// handle attribute nodes
-				IDOMAttr att = (IDOMAttr) node;
-				// do not include quotes in attribute value region
-				int regOffset = att.getValueRegionStartOffset();
-				ITextRegion valueRegion = att.getValueRegion();
-				if (valueRegion != null) {
-					int regLength = valueRegion.getTextLength();
-					String attValue = att.getValueRegionText();
-					if (StringUtils.isQuoted(attValue)) {
-						++regOffset;
-						regLength = regLength - 2;
-					}
-					hyperRegion = new Region(regOffset, regLength);
-				}
-			}
-		}
-		return hyperRegion;
-	}
-
-	/**
-	 * Attempts to find an attribute within element that is openable.
-	 * 
-	 * @param element -
-	 *            cannot be null
-	 * @return Attr attribute that can be used for open on, null if no
-	 *         attribute could be found
-	 */
-	private Attr getLinkableAttr(Element element) {
-		CMElementDeclaration ed = getCMElementDeclaration(element);
-		// get the list of attributes for this node
-		NamedNodeMap attrs = element.getAttributes();
-		for (int i = 0; i < attrs.getLength(); ++i) {
-			// check if this attribute is "openOn-able"
-			Attr att = (Attr) attrs.item(i);
-			if (isLinkableAttr(att, ed)) {
-				return att;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Find the location hint for the given namespaceURI if it exists
-	 * 
-	 * @param elementNode -
-	 *            cannot be null
-	 * @param namespaceURI -
-	 *            cannot be null
-	 * @return location hint (systemId) if it was found, null otherwise
-	 */
-	private String getLocationHint(Element elementNode, String namespaceURI) {
-		Attr schemaLocNode = elementNode.getAttributeNodeNS(XSI_NAMESPACE_URI, SCHEMA_LOCATION);
-		if (schemaLocNode != null) {
-			StringTokenizer st = new StringTokenizer(schemaLocNode.getValue());
-			while (st.hasMoreTokens()) {
-				String publicId = st.hasMoreTokens() ? st.nextToken() : null;
-				String systemId = st.hasMoreTokens() ? st.nextToken() : null;
-				// found location hint
-				if (namespaceURI.equalsIgnoreCase(publicId))
-					return systemId;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the URI string
-	 * 
-	 * @param node -
-	 *            assumes not null
-	 */
-	private String getURIString(Node node, IDocument document) {
-		String resolvedURI = null;
-		// need the base location, publicId, and systemId for URIResolver
-		String baseLoc = null;
-		String publicId = null;
-		String systemId = null;
-
-		short nodeType = node.getNodeType();
-		// handle doc type node
-		if (nodeType == Node.DOCUMENT_TYPE_NODE) {
-			baseLoc = getBaseLocation(document);
-			publicId = ((DocumentType) node).getPublicId();
-			systemId = ((DocumentType) node).getSystemId();
-		}
-		else if (nodeType == Node.ATTRIBUTE_NODE) {
-			// handle attribute node
-			Attr attrNode = (Attr) node;
-			String attrName = attrNode.getName();
-			String attrValue = attrNode.getValue();
-			attrValue = StringUtils.strip(attrValue);
-			if (attrValue != null && attrValue.length() > 0) {
-				baseLoc = getBaseLocation(document);
-
-				// handle schemaLocation attribute
-				String prefix = DOMNamespaceHelper.getPrefix(attrName);
-				String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attrName);
-				if ((XMLNS.equals(prefix)) || (XMLNS.equals(unprefixedName))) {
-					publicId = attrValue;
-					systemId = getLocationHint(attrNode.getOwnerElement(), publicId);
-					if (systemId == null) {
-						systemId = attrValue;
-					}
-				}
-				else if ((XSI_NAMESPACE_URI.equals(DOMNamespaceHelper.getNamespaceURI(attrNode))) && (SCHEMA_LOCATION.equals(unprefixedName))) {
-					// for now just use the first pair
-					// need to look into being more precise
-					StringTokenizer st = new StringTokenizer(attrValue);
-					publicId = st.hasMoreTokens() ? st.nextToken() : null;
-					systemId = st.hasMoreTokens() ? st.nextToken() : null;
-					// else check if xmlns publicId = value
-				}
-				else {
-					systemId = attrValue;
-				}
-			}
-		}
-
-		resolvedURI = resolveURI(baseLoc, publicId, systemId);
-		return resolvedURI;
-	}
-
-	/**
-	 * Returns true if this uriString is an http string
-	 * 
-	 * @param uriString
-	 * @return true if uriString is http string, false otherwise
-	 */
-	private boolean isHttp(String uriString) {
-		boolean isHttp = false;
-		if (uriString != null) {
-			String tempString = uriString.toLowerCase();
-			if (tempString.startsWith(HTTP_PROTOCOL))
-				isHttp = true;
-		}
-		return isHttp;
-	}
-
-	/**
-	 * Checks to see if the given attribute is openable. Attribute is openable
-	 * if it is a namespace declaration attribute or if the attribute value is
-	 * of type URI.
-	 * 
-	 * @param attr
-	 *            cannot be null
-	 * @param cmElement
-	 *            CMElementDeclaration associated with the attribute (can be
-	 *            null)
-	 * @return true if this attribute is "openOn-able" false otherwise
-	 */
-	private boolean isLinkableAttr(Attr attr, CMElementDeclaration cmElement) {
-		String attrName = attr.getName();
-		String prefix = DOMNamespaceHelper.getPrefix(attrName);
-		String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attrName);
-		// determine if attribute is namespace declaration
-		if ((XMLNS.equals(prefix)) || (XMLNS.equals(unprefixedName)))
-			return true;
-
-		// determine if attribute contains schema location
-		if ((XSI_NAMESPACE_URI.equals(DOMNamespaceHelper.getNamespaceURI(attr))) && ((SCHEMA_LOCATION.equals(unprefixedName)) || (NO_NAMESPACE_SCHEMA_LOCATION.equals(unprefixedName))))
-			return true;
-
-		// determine if attribute value is of type URI
-		if (cmElement != null) {
-			CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) cmElement.getAttributes().getNamedItem(attrName);
-			if ((attrDecl != null) && (attrDecl.getAttrType() != null) && (CMDataType.URI.equals(attrDecl.getAttrType().getDataTypeName()))) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Checks whether the given uriString is really pointing to a file
-	 * 
-	 * @param uriString
-	 * @return boolean
-	 */
-	private boolean isValidURI(String uriString) {
-		boolean isValid = false;
-
-		if (isHttp(uriString))
-			isValid = true;
-		else {
-			File file = getFileFromUriString(uriString);
-			if (file != null)
-				isValid = file.isFile();
-		}
-		return isValid;
-	}
-
-	/**
-	 * Resolves the given URI information
-	 * 
-	 * @param baseLocation
-	 * @param publicId
-	 * @param systemId
-	 * @return String resolved uri.
-	 */
-	private String resolveURI(String baseLocation, String publicId, String systemId) {
-		// dont resolve if there's nothing to resolve
-		if ((baseLocation == null) && (publicId == null) && (systemId == null))
-			return null;
-		return URIResolverPlugin.createResolver().resolve(baseLocation, publicId, systemId);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/BasicRefactorSearchRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/BasicRefactorSearchRequestor.java
deleted file mode 100644
index e505f4d..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/BasicRefactorSearchRequestor.java
+++ /dev/null
@@ -1,372 +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.ui.internal.java.refactoring;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.search.SearchDocument;
-import org.eclipse.jdt.core.search.SearchMatch;
-import org.eclipse.jdt.core.search.SearchRequestor;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.core.internal.java.search.JavaSearchDocumentDelegate;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.DocumentChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.text.edits.ReplaceEdit;
-import org.eclipse.text.edits.TextEdit;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyOperation;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.core.internal.document.DocumentReader;
-import org.eclipse.wst.sse.core.internal.encoding.CodedStreamCreator;
-
-/**
- * Creates document change(s) for an IJavaElement rename.
- * Changes are created for every type "match" in the workspace
- * @author pavery
- */
-public class BasicRefactorSearchRequestor extends SearchRequestor {
-	
-	/**
-	 * Workspace operation to perform save on model for updated documents.
-	 * Should only be done on models not open in an editor.
-	 */
-	private class SaveJspFileOp extends WorkspaceModifyOperation {
-		
-		private IDocument fJSPDoc = null;
-		private IFile fJSPFile = null;
-		
-		public SaveJspFileOp(IFile jspFile, IDocument jspDoc) {
-			this.fJSPDoc = jspDoc;
-			this.fJSPFile = jspFile;
-		}
-		
-		protected void execute(IProgressMonitor monitor) throws CoreException, InvocationTargetException, InterruptedException {
-			
-			// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3765
-			// save file w/ no intermediate model creation
-			
-			CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
-			Reader reader = new DocumentReader(this.fJSPDoc);
-			codedStreamCreator.set(this.fJSPFile, reader);
-			
-			ByteArrayOutputStream codedByteStream = null;
-			InputStream codedStream = null;
-			try {
-				codedByteStream = codedStreamCreator.getCodedByteArrayOutputStream();
-				codedStream = new ByteArrayInputStream(codedByteStream.toByteArray());
-				if (this.fJSPFile.exists())
-					this.fJSPFile.setContents(codedStream, true, true, null);
-				else
-					this.fJSPFile.create(codedStream, false, null);
-				
-			} catch (CoreException e) {
-				Logger.logException(e);
-			} catch (IOException e) {
-				Logger.logException(e);
-			}
-			finally {
-				try {
-					if(codedByteStream != null)
-						codedByteStream.close();
-					if(codedStream != null)
-						codedStream.close();
-				}
-				catch (IOException e){
-					// unlikely
-				}
-			}
-		}
-	}
-	// end inner class SaveJspFileOp
-	
-	/**
-	 * Change class that wraps a text edit on the jsp document
-	 */
-	private class RenameChange extends DocumentChange {
-
-		private TextEdit fEdit = null;
-		private IFile fJSPFile = null;
-		private IDocument fJSPDoc = null;
-		private String fDescription = JSPUIMessages.BasicRefactorSearchRequestor_0;
-		
-		public RenameChange(IFile jspFile, IDocument jspDoc, TextEdit edit, String description) {
-			super(JSPUIMessages.BasicRefactorSearchRequestor_6, jspDoc);
-			this.fEdit = edit;
-			this.fJSPFile = jspFile;
-			this.fJSPDoc = jspDoc;
-			this.fDescription = description;
-		}
-		
-		public RefactoringStatus isValid(IProgressMonitor pm)throws CoreException {
-			return new RefactoringStatus();
-		}
-		
-		public IDocument getPreviewDocument(IProgressMonitor pm) throws CoreException {
-			IDocument copyDoc = new Document(fJSPDoc.get());
-			try {
-				fEdit.apply(copyDoc);
-			}
-			catch (MalformedTreeException e) {
-				// ignore
-			}
-			catch (BadLocationException e) {
-				// ignore
-			}
-			return copyDoc;
-		}
-		
-		public Change perform(IProgressMonitor pm) throws CoreException {
-			RenameChange undoChange = null;
-			try {
-				
-				if(!isOpenInEditor(this.fJSPDoc)) {
-					// apply edit to JSP doc AND save model
-					undoChange = new RenameChange(this.fJSPFile, this.fJSPDoc, this.fEdit.apply(fJSPDoc), this.fDescription);
-					saveFile(this.fJSPFile, this.fJSPDoc);
-				}
-				else {
-					// just apply edit to JSP document
-					undoChange = new RenameChange(this.fJSPFile, this.fJSPDoc, this.fEdit.apply(fJSPDoc), this.fDescription);
-				}
-				
-			} catch (MalformedTreeException e) {
-				Logger.logException(e);
-			} catch (BadLocationException e) {
-				Logger.logException(e);
-			}
-			return undoChange;
-		}
-		
-		/**
-		 * Performed in an operation since it modifies resources in the workspace
-		 * @param jspDoc
-		 * @throws CoreException
-		 */
-		private void saveFile(IFile jspFile, IDocument jspDoc) {
-			
-			SaveJspFileOp op  = new SaveJspFileOp(jspFile, jspDoc);
-			
-			try {
-				op.run(JSPSearchSupport.getInstance().getProgressMonitor());
-			} catch (InvocationTargetException e) {
-				Logger.logException(e);
-			} catch (InterruptedException e) {
-				Logger.logException(e);
-			}
-		}
-
-		/**
-		 * Checks if a document is open in an editor
-		 * @param jspDoc
-		 * @return
-		 */
-		private boolean isOpenInEditor(IDocument jspDoc) {
-			IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
-			IWorkbenchWindow w = null;
-			for (int i = 0; i < windows.length; i++) {
-
-				w = windows[i];
-				IWorkbenchPage page = w.getActivePage();
-				if (page != null) {
-
-					IEditorReference[] references = page.getEditorReferences();
-					IEditorPart editor = null;
-					Object o = null;
-					IDocument doc = null;
-					for (int j = 0; j < references.length; j++) {
-
-						editor = references[j].getEditor(true);
-						// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3764
-						// use adapter to get ITextEditor (for things like
-						// page designer)
-						o = editor.getAdapter(ITextEditor.class);
-						if (o != null && o instanceof ITextEditor) {
-
-							doc = ((ITextEditor) o).getDocumentProvider().getDocument(editor.getEditorInput());
-							if (doc != null && doc.equals(jspDoc)) {
-								return true;
-							}
-						}
-					}
-				}
-			}
-			return false;
-		}
-
-		public String getName() {
-			return this.fDescription;
-		}
-		
-		public Object getModifiedElement() {
-			return getElement();
-		}
-	}
-	// end inner class RenameChange
-	
-	
-	/** The type being renamed (the old type)*/
-	IJavaElement fElement = null;
-	/** The new name of the type being renamed*/
-	private String fNewName = ""; //$NON-NLS-1$
-	/** maps a JSPSearchDocument path -> MultiTextEdit for the java file*/
-	private HashMap fSearchDocPath2JavaEditMap = null;
-	
-	public BasicRefactorSearchRequestor(IJavaElement element, String newName) {
-		this.fNewName = newName;
-		this.fElement = element;
-		this.fSearchDocPath2JavaEditMap = new HashMap();
-	}
-	
-	public IJavaElement getElement() {
-		return this.fElement;
-	}
-
-	/**
-	 * @return the new name for the Type
-	 */
-	public String getNewName() {
-		return this.fNewName;
-	}
-	
-	/**
-	 * @see org.eclipse.jdt.core.search.SearchRequestor#acceptSearchMatch(org.eclipse.jdt.core.search.SearchMatch)
-	 */
-	public void acceptSearchMatch(SearchMatch javaMatch) throws CoreException {
-		
-		String matchDocumentPath = javaMatch.getResource().getFullPath().toString();
-		SearchDocument searchDoc = JSPSearchSupport.getInstance().getSearchDocument(matchDocumentPath);
-	
-		if (searchDoc != null && searchDoc instanceof JavaSearchDocumentDelegate) {
-	
-			String renameText = getRenameText((JavaSearchDocumentDelegate)searchDoc, javaMatch);
-			
-			// add it for the correct document
-			addJavaEdit(searchDoc.getPath(), new ReplaceEdit(javaMatch.getOffset(), javaMatch.getLength(), renameText));
-		}
-	}
-	
-	/**
-	 * @param searchDoc
-	 * @return
-	 */
-	protected String getRenameText(JavaSearchDocumentDelegate searchDoc, SearchMatch javaMatch) {
-		return getNewName();
-	}
-
-	/**
-	 * Adds to the multi edit for a give java document.
-	 * @param javaDocument
-	 * @param javaEdit
-	 */
-	private void addJavaEdit(String searchDocPath, ReplaceEdit javaEdit) {
-		
-		Object o = this.fSearchDocPath2JavaEditMap.get(searchDocPath);
-		if(o != null) {
-
-			MultiTextEdit multi = (MultiTextEdit)o;
-			multi.addChild(javaEdit);
-		}
-		else {
-			// use a multi edit so doc position offsets get updated automatically
-			// when adding multiple child edits
-			MultiTextEdit multi = new MultiTextEdit();
-			multi.addChild(javaEdit);
-			this.fSearchDocPath2JavaEditMap.put(searchDocPath, multi);
-		}
-	}
-	
-	/**
-	 * 
-	 * @return all JSP changes for the search matches for the given Type
-	 */
-	public Change[] getChanges() {
-		
-		JSPSearchSupport support = JSPSearchSupport.getInstance();
-		List changes = new ArrayList();
-		Iterator keys = fSearchDocPath2JavaEditMap.keySet().iterator();
-		String searchDocPath = null;
-		SearchDocument delegate = null;
-		
-		while(keys.hasNext()) {
-			// create on the fly
-			searchDocPath = (String)keys.next();
-			MultiTextEdit javaEdit = (MultiTextEdit)fSearchDocPath2JavaEditMap.get(searchDocPath);
-			delegate = support.getSearchDocument(searchDocPath);
-			
-			if(delegate != null && delegate instanceof JavaSearchDocumentDelegate) {
-				JavaSearchDocumentDelegate javaDelegate = (JavaSearchDocumentDelegate)delegate;
-				changes.add(createChange(javaDelegate, javaDelegate.getJspTranslation().getJspEdit(javaEdit)));
-			}
-		}
-		return (Change[])changes.toArray(new Change[changes.size()]);
-	}
-	
-	private Change createChange(JavaSearchDocumentDelegate searchDoc, TextEdit edit) {
-		
-		IDocument doc = searchDoc.getJspTranslation().getJspDocument();
-		String file = searchDoc.getFile().getName();
-		String description = getDescription();
-		try {
-			// document lines are 0 based
-			String lineNumber = Integer.toString(doc.getLineOfOffset(edit.getOffset()) + 1);
-			description += " " + NLS.bind(JSPUIMessages.BasicRefactorSearchRequestor_1, new String[]{file, lineNumber}); //$NON-NLS-1$
-		} 
-		catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-		return new RenameChange(searchDoc.getFile(), doc, edit, description);
-	}
-	
-	// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3205
-	// only relevant for IType refactorings
-	protected boolean isFullyQualified(String matchText) {
-		if(getElement() instanceof IType) {
-			String pkg = ((IType)getElement()).getPackageFragment().getElementName();
-			return matchText.startsWith(pkg);
-		}
-		return false;
-	}
-
-	/**
-	 * Subclasses should override to better describe the change.
-	 * @return
-	 */
-	protected String getDescription() {
-		return ""; //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPJavaSelectionProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPJavaSelectionProvider.java
deleted file mode 100644
index 38f2dac..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPJavaSelectionProvider.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.java.refactoring;
-
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-class JSPJavaSelectionProvider {
-	static IJavaElement[] getSelection(ITextEditor textEditor) {
-		IJavaElement[] elements = null;
-
-		IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
-		ISelection selection = textEditor.getSelectionProvider().getSelection();
-		if (selection instanceof ITextSelection) {
-			ITextSelection textSelection = (ITextSelection) selection;
-			// get the JSP translation object for this editor's document
-			IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(document); 
-			try {
-				if (model instanceof IDOMModel) {
-					IDOMModel xmlModel = (IDOMModel)model;
-					IDOMDocument xmlDoc = xmlModel.getDocument();
-
-					JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
-					if (adapter != null) {
-						JSPTranslation translation = adapter.getJSPTranslation();
-						elements = translation.getElementsFromJspRange(textSelection.getOffset(), textSelection.getOffset() + textSelection.getLength());
-					}
-				}
-			}
-			finally {
-				if (model != null)
-					model.releaseFromRead();
-			}
-		}
-		if (elements == null) {
-			elements = new IJavaElement[0];
-		}
-		return elements;
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameChange.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameChange.java
deleted file mode 100644
index 485ff11..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameChange.java
+++ /dev/null
@@ -1,67 +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.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchScope;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-
-/**
- * @author pavery
- */
-public class JSPMethodRenameChange extends Change {
-
-	public static Change[] createChangesFor(IMethod method, String newName) {
-		JSPSearchSupport support = JSPSearchSupport.getInstance();
-		
-		// should be handled by JSPIndexManager
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3036
-		// support.indexWorkspaceAndWait();
-		
-		BasicRefactorSearchRequestor requestor = new JSPMethodRenameRequestor(method, newName);
-		support.searchRunnable(method, new JSPSearchScope(), requestor);
-
-		return requestor.getChanges();
-	}
-
-	public String getName() {
-		return JSPUIMessages.JSP_changes; //$NON-NLS-1$
-	}
-
-	public void initializeValidationData(IProgressMonitor pm) {
-		// pa_TODO implement
-		// must be implemented to decide correct value of isValid
-	}
-
-	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException {
-		// pa_TODO implement
-		// This method must ensure that the change object is still valid.
-		// This is in particular interesting when performing an undo change
-		// since the workspace could have changed since the undo change has
-		// been created.
-		return new RefactoringStatus();
-	}
-
-	public Change perform(IProgressMonitor pm) throws CoreException {
-		// pa_TODO return the "undo" change here
-		return null;
-	}
-
-	public Object getModifiedElement() {
-		// pa_TODO Auto-generated method stub
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameParticipant.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameParticipant.java
deleted file mode 100644
index edac9c8..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameParticipant.java
+++ /dev/null
@@ -1,80 +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
- *******************************************************************************/
-/*
- * Created on May 6, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-package org.eclipse.jst.jsp.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
-
-/**
- * @author pavery
- */
-public class JSPMethodRenameParticipant extends RenameParticipant {
-	
-	private IMethod fMethod = null;
-	
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
-	 */
-	protected boolean initialize(Object element) {
-		if(element instanceof IMethod) {
-			this.fMethod = (IMethod) element;
-			return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
-	 */
-	public String getName() {
-		String name = ""; //$NON-NLS-1$
-		if(this.fMethod != null) {
-			try {
-				name = this.fMethod.getSource();
-			} catch (JavaModelException e) {
-				Logger.logException(e);
-			}
-		}
-		return name;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
-	 */
-	public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public Change createChange(IProgressMonitor pm) throws CoreException {
-		Change[] changes = JSPMethodRenameChange.createChangesFor(this.fMethod, getArguments().getNewName());
-		CompositeChange multiChange = null; 
-			if(changes.length > 0)
-				multiChange  = new CompositeChange(JSPUIMessages.JSP_changes, changes); //$NON-NLS-1$
-		return multiChange;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameRequestor.java
deleted file mode 100644
index 6147208..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMethodRenameRequestor.java
+++ /dev/null
@@ -1,47 +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.ui.internal.java.refactoring;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.search.SearchMatch;
-import org.eclipse.jst.jsp.core.internal.java.search.JavaSearchDocumentDelegate;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-
-/**
- * @author pavery
- */
-public class JSPMethodRenameRequestor extends BasicRefactorSearchRequestor {
-	
-	public JSPMethodRenameRequestor(IJavaElement element, String newName) {
-		super(element, newName);
-	}
-	
-	protected String getRenameText(JavaSearchDocumentDelegate searchDoc, SearchMatch javaMatch) {
-		
-		String javaText = searchDoc.getJspTranslation().getJavaText();
-		String methodText = javaText.substring(javaMatch.getOffset(), javaMatch.getOffset() + javaMatch.getLength());
-		String methodSuffix = methodText.substring(methodText.indexOf("(")); //$NON-NLS-1$
-		return getNewName() + methodSuffix;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsp.ui.internal.java.refactoring.BasicRefactorSearchRequestor#getDescription()
-	 */
-	protected String getDescription() {
-		
-		String methodName = getElement().getElementName();
-		String newName = getNewName();
-		String description = MessageFormat.format(JSPUIMessages.BasicRefactorSearchRequestor_3, new String[]{methodName, newName}); //$NON-NLS-1$
-		return description;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMoveElementActionDelegate.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMoveElementActionDelegate.java
deleted file mode 100644
index b61d4bd..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPMoveElementActionDelegate.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.ui.internal.java.refactoring;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.wst.sse.ui.internal.util.PlatformStatusLineUtil;
-
-/**
- * An action delegate that launches JDT move element wizard
- * 
- * Still relies heavily on internal API
- * will change post 3.0 with public move support
- * https://bugs.eclipse.org/bugs/show_bug.cgi?id=61817 
- */
-public class JSPMoveElementActionDelegate implements IEditorActionDelegate, IActionDelegate2, IViewActionDelegate {
-	//private IEditorPart fEditor;
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		//fEditor = targetEditor;
-	}
-
-	public void dispose() {
-		// nulling out just in case
-		//fEditor = null;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(JSPUIMessages.MoveElement_label);
-			action.setToolTipText(JSPUIMessages.MoveElement_label);
-		}
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-
-	public void run(IAction action) {
-		
-		// no-op until we know how we're supposed to use this 
-		// eclipse 3.2M5
-		// public move support: https://bugs.eclipse.org/bugs/show_bug.cgi?id=61817
-		
-//		IJavaElement[] elements = getSelectedElements();
-//		if (elements.length > 0) {
-//
-//			// need to check if it's movable
-//			try {
-//				JavaMoveProcessor processor = JavaMoveProcessor.create(getResources(elements), elements);
-//				
-//				Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
-//				MoveRefactoring refactoring = new MoveRefactoring(processor);
-//
-//				RefactoringWizard wizard = createWizard(refactoring);
-//
-//				/*
-//				 * We want to get the shell from the refactoring dialog but
-//				 * it's not known at this point, so we pass the wizard and
-//				 * then, once the dialog is open, we will have access to its
-//				 * shell.
-//				 */
-//
-//				processor.setCreateTargetQueries(new CreateTargetQueries(wizard));
-//				processor.setReorgQueries(new ReorgQueries(wizard));
-//				// String openRefactoringWizMsg =
-//				// RefactoringMessages.getString("OpenRefactoringWizardAction.refactoring");
-//				// //$NON-NLS-1$
-//				String openRefactoringWizMsg = JSPUIMessages.MoveElementWizard; // "Move
-//																				// the
-//																				// selected
-//																				// elements";
-//																				// //$NON-NLS-1$
-//				new RefactoringStarter().activate(refactoring, wizard, parent, openRefactoringWizMsg, true);
-//
-//				PlatformStatusLineUtil.clearStatusLine();
-//
-//			}
-//			catch (JavaModelException e) {
-//				Logger.logException(e);
-//			}
-//		}
-//		else {
-//			PlatformStatusLineUtil.displayErrorMessage(JSPUIMessages.JSPMoveElementAction_0); //$NON-NLS-1$
-//		}
-		
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		PlatformStatusLineUtil.clearStatusLine();
-	}
-
-	public void init(IViewPart view) {
-		// do nothing
-	}
-
-
-	
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameChange.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameChange.java
deleted file mode 100644
index d15e089..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameChange.java
+++ /dev/null
@@ -1,68 +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.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchScope;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-
-/**
- * @author pavery
- */
-public class JSPPackageRenameChange extends Change {
-
-	public static Change[] createChangesFor(IPackageFragment pkg, String newName) {
-		JSPSearchSupport support = JSPSearchSupport.getInstance();
-		
-		// should be handled by JSPIndexManager
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3036
-		//support.indexWorkspaceAndWait();
-		
-		BasicRefactorSearchRequestor requestor = new JSPPackageRenameRequestor(pkg, newName);
-		support.searchRunnable(pkg, new JSPSearchScope(), requestor);
-
-		return requestor.getChanges();
-	}
-
-	public String getName() {
-		return JSPUIMessages.JSP_changes; //$NON-NLS-1$
-	}
-
-	public void initializeValidationData(IProgressMonitor pm) {
-		// pa_TODO implement
-		// must be implemented to decide correct value of isValid
-	}
-
-	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException {
-		// pa_TODO implement
-		// This method must ensure that the change object is still valid.
-		// This is in particular interesting when performing an undo change
-		// since the workspace could have changed since the undo change has
-		// been created.
-		return new RefactoringStatus();
-	}
-
-	public Change perform(IProgressMonitor pm) throws CoreException {
-		// TODO return the "undo" change here
-		return null;
-	}
-
-	public Object getModifiedElement() {
-		
-		//return this.pkg;
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameParticipant.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameParticipant.java
deleted file mode 100644
index 3903d39..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameParticipant.java
+++ /dev/null
@@ -1,74 +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.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
-
-/**
- * Remember to change the plugin.xml file if the name of this class changes.
- * 
- * @author pavery
- */
-public class JSPPackageRenameParticipant extends RenameParticipant {
-
-	private IPackageFragment fPkg = null;
-	
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
-	 */
-	protected boolean initialize(Object element) {
-		if(element instanceof IPackageFragment) {
-			this.fPkg = (IPackageFragment) element;
-			return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
-	 */
-	public String getName() {
-		String name = ""; //$NON-NLS-1$
-		if(this.fPkg != null) {
-			name = this.fPkg.getElementName();
-		}
-		return name;
-	}
-
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
-	 */
-	public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public Change createChange(IProgressMonitor pm) throws CoreException {
-		 Change[] changes = JSPPackageRenameChange.createChangesFor(this.fPkg, getArguments().getNewName());
-		 CompositeChange multiChange = null;
-		 if(changes.length > 0)
-			multiChange = new CompositeChange(JSPUIMessages.JSP_changes, changes); //$NON-NLS-1$
-	     return multiChange;
-	}
-	
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameRequestor.java
deleted file mode 100644
index 3cffa0c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPPackageRenameRequestor.java
+++ /dev/null
@@ -1,41 +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.ui.internal.java.refactoring;
-
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Overrides get description
- * @author pavery
- */
-public class JSPPackageRenameRequestor extends BasicRefactorSearchRequestor {
-	
-	/**
-	 * Element is the old package.  newName is the new package name.
-	 * @param element
-	 * @param newName
-	 */
-	public JSPPackageRenameRequestor(IJavaElement element, String newName) {
-		super(element, newName);
-	}
-	
-	/*
-	 * @see org.eclipse.jst.jsp.ui.internal.java.refactoring.BasicRefactorSearchRequestor#getDescription()
-	 */
-	protected String getDescription() {
-		String packageName = getElement().getElementName();
-		String newName = getNewName();
-		String description = NLS.bind(JSPUIMessages.BasicRefactorSearchRequestor_5, (new String[]{packageName, newName})); //$NON-NLS-1$
-		return description;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPRenameElementActionDelegate.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPRenameElementActionDelegate.java
deleted file mode 100644
index f487fc5..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPRenameElementActionDelegate.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMethod;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.ui.refactoring.RenameSupport;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.ui.internal.util.PlatformStatusLineUtil;
-
-/**
- * An action delegate that launches JDT rename element wizard
- */
-public class JSPRenameElementActionDelegate implements IEditorActionDelegate, IActionDelegate2, IViewActionDelegate {
-	private IEditorPart fEditor;
-	
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		fEditor = targetEditor;
-	}
-
-	public void dispose() {
-		// nulling out just in case
-		fEditor = null;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(JSPUIMessages.RenameElement_label);
-			action.setToolTipText(JSPUIMessages.RenameElement_label);
-		}
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-	
-	public void run(IAction action) {
-		IJavaElement element = getSelectedElement();
-		if(element != null) {
-			RenameSupport renameSupport = null;
-			try {
-				switch(element.getElementType()) {
-					case IJavaElement.TYPE:
-						renameSupport= RenameSupport.create((IType)element, element.getElementName(), RenameSupport.UPDATE_REFERENCES);
-						break;
-					case IJavaElement.METHOD:
-						renameSupport= RenameSupport.create((IMethod)element, element.getElementName(), RenameSupport.UPDATE_REFERENCES);
-						break;
-					case IJavaElement.PACKAGE_FRAGMENT:
-						renameSupport= RenameSupport.create((IPackageFragment)element, element.getElementName(), RenameSupport.UPDATE_REFERENCES);
-						break;
-				}
-				if(renameSupport != null) {
-					renameSupport.openDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
-					PlatformStatusLineUtil.clearStatusLine();
-				}
-			}
-			catch (CoreException e) {
-				Logger.logException(e);
-			}
-		}
-		else  {
-			PlatformStatusLineUtil.displayErrorMessage(JSPUIMessages.JSPRenameElementAction_0); //$NON-NLS-1$
-			PlatformStatusLineUtil.addOneTimeClearListener();
-		}
-	}
-	
-	public void selectionChanged(IAction action, ISelection selection) {
-		PlatformStatusLineUtil.clearStatusLine();
-	}
-
-	public void init(IViewPart view) {
-		// do nothing
-	}
-
-	private IJavaElement getSelectedElement() {
-		IJavaElement element = null;
-		if (fEditor instanceof ITextEditor) {
-			IJavaElement[] elements = JSPJavaSelectionProvider.getSelection((ITextEditor)fEditor);
-			if (elements.length == 1)
-				element = elements[0];
-		}
-		return element;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveChange.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveChange.java
deleted file mode 100644
index facd680..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveChange.java
+++ /dev/null
@@ -1,66 +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.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchScope;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-
-/**
- * @author pavery
- */
-public class JSPTypeMoveChange extends Change {
-
-	public static Change[] createChangesFor(IType type, String newName) {
-		
-		JSPSearchSupport support = JSPSearchSupport.getInstance();
-		// should be handled by JSPIndexManager
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3036
-		// support.indexWorkspaceAndWait();
-		
-		JSPTypeMoveRequestor requestor = new JSPTypeMoveRequestor(type, newName);
-		support.searchRunnable(type, new JSPSearchScope(), requestor);
-
-		return requestor.getChanges();
-	}
-
-	public String getName() {
-		return JSPUIMessages.JSP_changes; //$NON-NLS-1$
-	}
-
-	public void initializeValidationData(IProgressMonitor pm) {
-		// pa_TODO implement
-		// must be implemented to decide correct value of isValid
-	}
-
-	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException {
-		// pa_TODO implement
-		// This method must ensure that the change object is still valid.
-		// This is in particular interesting when performing an undo change
-		// since the workspace could have changed since the undo change has
-		// been created.
-		return new RefactoringStatus();
-	}
-
-	public Change perform(IProgressMonitor pm) throws CoreException {
-		// TODO return the "undo" change here
-		return null;
-	}
-
-	public Object getModifiedElement() {
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveParticipant.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveParticipant.java
deleted file mode 100644
index 40c80b1..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveParticipant.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.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.MoveParticipant;
-
-/**
- * @author pavery
- */
-public class JSPTypeMoveParticipant extends MoveParticipant {
-	
-	IType fType = null;
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
-	 */
-	protected boolean initialize(Object element) {
-		
-		if(element instanceof IType) {
-			this.fType = (IType)element;
-			return true;
-		}
-		return false;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
-	 */
-	public String getName() {
-		
-		String name = ""; //$NON-NLS-1$
-		if(this.fType != null)
-			name = this.fType.getElementName();
-		return name;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
-	 */
-	public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public Change createChange(IProgressMonitor pm) throws CoreException {
-		
-		if(pm != null && pm.isCanceled())
-			return null;
-		
-		CompositeChange multiChange = null; 
-		Object dest = getArguments().getDestination();
-		
-		if(dest instanceof IPackageFragment) {		
-			Change[] changes = JSPTypeMoveChange.createChangesFor(fType, ((IPackageFragment)dest).getElementName());
-			if(changes.length > 0)
-				multiChange = new CompositeChange(JSPUIMessages.JSP_changes, changes); //$NON-NLS-1$
-		}
-		return multiChange;
-	}
-	
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveRequestor.java
deleted file mode 100644
index edd02f2..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeMoveRequestor.java
+++ /dev/null
@@ -1,60 +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.ui.internal.java.refactoring;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.search.SearchMatch;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.search.JavaSearchDocumentDelegate;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-
-/**
- * @author pavery
- */
-public class JSPTypeMoveRequestor extends BasicRefactorSearchRequestor {
-
-	/**
-	 * @param element
-	 * @param newName
-	 */
-	public JSPTypeMoveRequestor(IJavaElement element, String newPackage) {
-		super(element, newPackage);
-	}
-	
-	protected String getRenameText(JavaSearchDocumentDelegate searchDoc, SearchMatch javaMatch) {
-		
-		String renameText = getElement().getElementName();
-
-		JSPTranslation trans = searchDoc.getJspTranslation();
-		String matchText = trans.getJavaText().substring(javaMatch.getOffset(), javaMatch.getOffset() + javaMatch.getLength());
-		
-		// if it's an import or jsp:useBean, we need to add the package name as well
-		if(trans.isImport(javaMatch.getOffset()) || trans.isUseBean(javaMatch.getOffset()) || isFullyQualified(matchText)) {
-			if(!getNewName().equals("")) //$NON-NLS-1$
-				// getNewName() is the pkg name
-				renameText = getNewName() + "." + renameText; //$NON-NLS-1$
-		}
-		return renameText;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsp.ui.internal.java.refactoring.BasicRefactorSearchRequestor#getDescription()
-	 */
-	protected String getDescription() {
-		
-		String typeName = getElement().getElementName();
-		String newName = getNewName();
-		String description = MessageFormat.format(JSPUIMessages.BasicRefactorSearchRequestor_2, new String[]{typeName, newName}); //$NON-NLS-1$
-		return description;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameChange.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameChange.java
deleted file mode 100644
index 99f1666..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameChange.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.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchScope;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-
-
-/**
- * @author pavery
- */
-public class JSPTypeRenameChange extends Change {
-
-	public static Change[] createChangesFor(IType type, String newName) {
-		JSPSearchSupport support = JSPSearchSupport.getInstance();
-		
-		// should be handled by JSPIndexManager
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3036
-		// support.indexWorkspaceAndWait();
-	
-		
-		JSPTypeRenameRequestor requestor = new JSPTypeRenameRequestor(type, newName);
-		support.searchRunnable(type, new JSPSearchScope(), requestor);
-
-		return requestor.getChanges();
-	}
-
-	public String getName() {
-		return JSPUIMessages.JSP_changes; //$NON-NLS-1$
-	}
-
-	public void initializeValidationData(IProgressMonitor pm) {
-		// pa_TODO implement
-		// must be implemented to decide correct value of isValid
-	}
-
-	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException {
-		// pa_TODO implement
-		// This method must ensure that the change object is still valid.
-		// This is in particular interesting when performing an undo change
-		// since the workspace could have changed since the undo change has
-		// been created.
-		return new RefactoringStatus();
-	}
-
-	public Change perform(IProgressMonitor pm) throws CoreException {
-		// TODO return the "undo" change here
-		return null;
-	}
-
-	public Object getModifiedElement() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameParticipant.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameParticipant.java
deleted file mode 100644
index e6a16de..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameParticipant.java
+++ /dev/null
@@ -1,80 +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.ui.internal.java.refactoring;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext;
-import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
-
-/**
- * Remember to change the plugin.xml file if the name of this class changes.
- * 
- * @author pavery
- */
-public class JSPTypeRenameParticipant extends RenameParticipant {
-
-	private IType fType = null;
-	
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#initialize(java.lang.Object)
-	 */
-	protected boolean initialize(Object element) {
-		if(element instanceof IType) {
-			this.fType = (IType) element;
-			return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
-	 */
-	public String getName() {
-		String name = ""; //$NON-NLS-1$
-		if(this.fType != null) {
-			try {
-				name = this.fType.getSource();
-			} catch (JavaModelException e) {
-				Logger.logException(e);
-			}
-		}
-		return name;
-	}
-
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
-	 */
-	public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public Change createChange(IProgressMonitor pm) throws CoreException {
-		Change[] changes =  JSPTypeRenameChange.createChangesFor(fType, getArguments().getNewName());
-		CompositeChange multiChange = null;
-		if(changes.length > 0)
-			multiChange = new CompositeChange(JSPUIMessages.JSP_changes, changes); //$NON-NLS-1$
-		return multiChange;
-	}
-	
-	
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameRequestor.java
deleted file mode 100644
index d93ccf7..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/refactoring/JSPTypeRenameRequestor.java
+++ /dev/null
@@ -1,63 +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.ui.internal.java.refactoring;
-
-import java.text.MessageFormat;
-
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.search.SearchMatch;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.search.JavaSearchDocumentDelegate;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-
-/**
- * Creates document change(s) for a type rename.
- * Changes are created for every type "match" in the workspace
- * @author pavery
- */
-public class JSPTypeRenameRequestor extends BasicRefactorSearchRequestor {
-
-	public JSPTypeRenameRequestor(IType type, String newName) {
-		super(type, newName);
-	}
-	
-	private IType getType() {
-		return (IType)getElement();
-	}
-	
-	protected String getRenameText(JavaSearchDocumentDelegate searchDoc, SearchMatch javaMatch) {
-		
-		String renameText = getNewName();
-		
-		String pkg = getType().getPackageFragment().getElementName();
-		JSPTranslation trans = searchDoc.getJspTranslation();
-		String matchText = trans.getJavaText().substring(javaMatch.getOffset(), javaMatch.getOffset() + javaMatch.getLength());
-		
-		// if it's an import or jsp:useBean or fully qualified type, we need to add the package name as well
-		if(trans.isImport(javaMatch.getOffset()) || /*trans.isUseBean(javaMatch.getOffset()) ||*/ isFullyQualified(matchText)) {
-			if(!pkg.equals("")) //$NON-NLS-1$
-				renameText = pkg + "." + renameText; //$NON-NLS-1$
-		}
-		return renameText;
-	}
-	
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jst.jsp.ui.internal.java.refactoring.BasicRefactorSearchRequestor#getDescription()
-	 */
-	protected String getDescription() {
-		
-		String typeName = getElement().getElementName();
-		String newName = getNewName();
-		String description = MessageFormat.format(JSPUIMessages.BasicRefactorSearchRequestor_4, new String[]{typeName, newName}); //$NON-NLS-1$
-		return description;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/BasicJSPSearchRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/BasicJSPSearchRequestor.java
deleted file mode 100644
index ae3dbc4..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/BasicJSPSearchRequestor.java
+++ /dev/null
@@ -1,141 +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.ui.internal.java.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.search.SearchDocument;
-import org.eclipse.jdt.core.search.SearchMatch;
-import org.eclipse.jdt.core.search.SearchParticipant;
-import org.eclipse.jdt.core.search.SearchRequestor;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.core.internal.java.search.JavaSearchDocumentDelegate;
-
-/**
- * Accepts matches from JSPSearchSupport.search(...) request.
- * Adapts the results from java to JSP and displays in the SearchResultView.
- * 
- * @author pavery
- */
-public class BasicJSPSearchRequestor extends SearchRequestor {
-
-	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value= Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspsearch"); //$NON-NLS-1$
-		DEBUG= value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-	
-	/**
-	 * Maps java search coordinates to corresponding JSP coordinates.
-	 * Adds the matches to the Search Results view.
-	 * @see org.eclipse.jdt.core.search.SearchRequestor#acceptSearchMatch(org.eclipse.jdt.core.search.SearchMatch)
-	 */
-	public void acceptSearchMatch(SearchMatch match) throws CoreException {
-
-		if(JSPSearchSupport.getInstance().isCanceled())
-			return;
-				
-		String matchDocumentPath = match.getResource().getFullPath().toString();
-		SearchDocument searchDoc = JSPSearchSupport.getInstance().getSearchDocument(matchDocumentPath);
-		
-		if (searchDoc != null && searchDoc instanceof JavaSearchDocumentDelegate) {
-			JavaSearchDocumentDelegate javaSearchDoc = (JavaSearchDocumentDelegate)searchDoc;
-			int jspStart = javaSearchDoc.getJspOffset(match.getOffset());
-			int jspEnd = javaSearchDoc.getJspOffset(match.getOffset() + match.getLength());
-
-			JSPTranslation trans = javaSearchDoc.getJspTranslation();
-			String jspText = trans.getJspText();
-			String javaText = javaSearchDoc.getJavaText();
-
-			if (DEBUG) 
-				displayDebugInfo(match, jspStart, jspEnd, jspText, javaText);
-		
-			if (jspStart > -1 && jspEnd > -1)
-				addSearchMatch(new Document(trans.getJspText()), javaSearchDoc.getFile(), jspStart, jspEnd, jspText);
-		}
-	}
-
-	/**
-	 * @param searchDoc
-	 * @param jspStart
-	 * @param jspEnd
-	 * @param jspTranslation
-	 * @param jspText
-	 * @throws CoreException
-	 */
-	protected void addSearchMatch(IDocument jspDocument, IFile jspFile, int jspStart, int jspEnd, String jspText) {
-		// implement in subclass
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jdt.core.search.SearchRequestor#beginReporting()
-	 */
-	public void beginReporting() {
-
-		if (DEBUG)
-			System.out.println("JSP Search requestor: beginReporting()"); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.jdt.core.search.SearchRequestor#endReporting()
-	 */
-	public void endReporting() {
-
-		if (DEBUG)
-			System.out.println("JSP Search requestor: endReporting()"); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.jdt.core.search.SearchRequestor#enterParticipant(org.eclipse.jdt.core.search.SearchParticipant)
-	 */
-	public void enterParticipant(SearchParticipant participant) {
-
-		if (DEBUG)
-			System.out.println("JSP Search requestor: enterParticipant()"); //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.jdt.core.search.SearchRequestor#exitParticipant(org.eclipse.jdt.core.search.SearchParticipant)
-	 */
-	public void exitParticipant(SearchParticipant participant) {
-
-		if (DEBUG)
-			System.out.println("JSP Search requestor: exitParticipant()"); //$NON-NLS-1$
-	}
-
-	/**
-	 * For debug.
-	 * @param origMatch
-	 * @param jspStart
-	 * @param jspEnd
-	 * @param jspText
-	 * @param javaText
-	 */
-	private void displayDebugInfo(SearchMatch origMatch, int jspStart, int jspEnd, String jspText, String javaText) {
-
-		if (origMatch == null || jspStart == -1 || jspEnd == -1 || jspEnd < jspStart || jspText == null || javaText == null)
-			return;
-
-		System.out.println("+-----------------------------------------+"); //$NON-NLS-1$
-		System.out.println("accept possible match [jspDoc: " + origMatch.getResource().getFullPath().toOSString() + " " + origMatch.getOffset() + ":" + origMatch.getOffset() + origMatch.getLength() + "]?"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		System.out.println("match info:"); //$NON-NLS-1$
-		System.out.println("the java text is:" + javaText.substring(origMatch.getOffset(), origMatch.getOffset() + origMatch.getLength())); //$NON-NLS-1$
-		System.out.println("java search match translates to jsp coords [start: " + jspStart + " end:" + jspEnd + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		System.out.println(" the jsp text is:" + jspText.substring(jspStart, jspEnd)); //$NON-NLS-1$
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPFindOccurrencesActionDelegate.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPFindOccurrencesActionDelegate.java
deleted file mode 100644
index 2eaeec0..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPFindOccurrencesActionDelegate.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.ui.internal.java.search;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.html.ui.internal.search.HTMLFindOccurrencesProcessor;
-import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesActionDelegate;
-
-/**
- * Sets up FindOccurrencesActionDelegate for jsp find occurrences processors
- */
-public class JSPFindOccurrencesActionDelegate extends FindOccurrencesActionDelegate {
-	private List fProcessors;
-
-	protected List getProcessors() {
-		if (fProcessors == null) {
-			fProcessors = new ArrayList();
-			HTMLFindOccurrencesProcessor htmlProcessor = new HTMLFindOccurrencesProcessor();
-			fProcessors.add(htmlProcessor);
-//			 temporary, workaround to disable function, since using the function 
-//			 can easily cause deadlock to occur.
-//					 See https://bugs.eclipse.org/bugs/show_bug.cgi?id=103662
-//			JSPFindOccurrencesProcessor jspProcessor = new JSPFindOccurrencesProcessor();
-//			fProcessors.add(jspProcessor);
-		}
-		return fProcessors;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPFindOccurrencesProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPFindOccurrencesProcessor.java
deleted file mode 100644
index 9ff15c3..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPFindOccurrencesProcessor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.ui.internal.java.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.jst.jsp.core.text.IJSPPartitions;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesProcessor;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-/**
- * Configures a FindOccurrencesProcessor with JSP partitions and regions
- */
-public class JSPFindOccurrencesProcessor extends FindOccurrencesProcessor {
-
-	protected String[] getPartitionTypes() {
-		return new String[]{IJSPPartitions.JSP_DEFAULT, IJSPPartitions.JSP_CONTENT_JAVA};
-	}
-
-	protected String[] getRegionTypes() {
-		return new String[]{DOMRegionContext.BLOCK_TEXT, DOMJSPRegionContexts.JSP_CONTENT};
-	}
-
-	protected ISearchQuery getSearchQuery(IFile file, IStructuredDocument document, String regionText, String regionType, ITextSelection textSelection) {
-		return new JSPSearchQuery(file, getJavaElement(document, textSelection));
-	}
-
-	private IJavaElement getJavaElement(IDocument document, ITextSelection textSelection) {
-		IJavaElement[] elements = getJavaElementsForCurrentSelection(document, textSelection);
-		return elements.length > 0 ? elements[0] : null;
-	}
-
-	/**
-	 * uses JSPTranslation to get currently selected Java elements.
-	 * 
-	 * @return currently selected IJavaElements
-	 */
-	private IJavaElement[] getJavaElementsForCurrentSelection(IDocument document, ITextSelection selection) {
-		IJavaElement[] elements = new IJavaElement[0];
-		// get JSP translation object for this viewer's document
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-		try {
-			if (model != null && model instanceof IDOMModel) {
-				IDOMDocument xmlDoc = ((IDOMModel) model).getDocument();
-				JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
-				if (adapter != null) {
-					JSPTranslation translation = adapter.getJSPTranslation();
-
-					// https://bugs.eclipse.org/bugs/show_bug.cgi?id=102211
-					elements = translation.getElementsFromJspRange(selection.getOffset(), selection.getOffset() + selection.getLength());
-				}
-			}
-		}
-		finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-		return elements;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPOccurrencesSearchResult.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPOccurrencesSearchResult.java
deleted file mode 100644
index f1d4f8e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPOccurrencesSearchResult.java
+++ /dev/null
@@ -1,29 +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.ui.internal.java.search;
-
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.wst.sse.ui.internal.search.OccurrencesSearchResult;
-
-/**
- * @author pavery
- */
-public class JSPOccurrencesSearchResult extends OccurrencesSearchResult {
-	
-	public JSPOccurrencesSearchResult(ISearchQuery query) {
-		super(query);
-	}
-	
-	public Match[] getMatches() {
-		return ((JSPSearchQuery)getQuery()).getMatches();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSearchQuery.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSearchQuery.java
deleted file mode 100644
index 5f96141..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSearchQuery.java
+++ /dev/null
@@ -1,117 +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.ui.internal.java.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.search.SearchDocument;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchScope;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.search.ui.ISearchResult;
-import org.eclipse.wst.sse.ui.internal.search.BasicSearchQuery;
-
-/**
- * Implementation of <code>ISearchQuery</code> for <code>IJavaElement</code>s in JSP files.
- * 
- * @author pavery
- */
-public class JSPSearchQuery extends BasicSearchQuery {
-	
-	/** the IJavaElement we are searching for in the file **/
-	private IJavaElement fElement = null;
-	
-	public JSPSearchQuery(IFile file, IJavaElement element) {
-		super(file);
-		this.fElement = element;
-	}
-	
-	public IJavaElement getJavaElement() {
-		return this.fElement;
-	}
-	
-	// for access by inner class
-	public JSPSearchQuery getInstance() {
-		return this;
-	}
-	
-	protected IStatus doQuery() {
-		
-		clearMatches();
-		
-		IStatus status = Status.OK_STATUS;
-		try {
-			JSPSearchSupport support = JSPSearchSupport.getInstance();
-			// index the file
-			SearchDocument delegate =  support.addJspFile(getFile());
-			
-			String scopePath = delegate.getPath();
-			JSPSearchScope singleFileScope = new JSPSearchScope(new String[]{getFile().getFullPath().toString(), scopePath});
-			
-			// perform a searchs
-			// by passing in this jsp search query, requstor can add matches
-			support.searchRunnable(getJavaElement(), singleFileScope, new JSPSingleFileSearchRequestor(getInstance()));
-		}
-		catch (Exception e){
-			status = new Status(IStatus.ERROR, "org.eclipse.wst.sse.ui", IStatus.OK, "", null); //$NON-NLS-1$	//$NON-NLS-2$
-		}
-		return status;
-	}
-	
-	/**
-	 * @see org.eclipse.search.ui.ISearchQuery#getLabel()
-	 */
-	public String getLabel() {
-		String[] args = {getSearchText(), getOccurrencesCountText(), getFilename()};
-		return NLS.bind(JSPUIMessages.OccurrencesSearchQuery_0, args);
-	}
-
-	private String getFilename() {
-		String filename = JSPUIMessages.OccurrencesSearchQuery_2;
-		if(getFile() != null)
-			filename = getFile().getName();
-		return filename;
-	}
-	
-	private String getOccurrencesCountText() {
-		String count = ""; //$NON-NLS-1$
-		// pa_TODO make dynamic
-		return count;
-	}
-
-	protected String getSearchText() {
-		return fElement.getElementName();
-	}
-	
-	public boolean canRerun() {
-		
-		return false;
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.ISearchQuery#canRunInBackground()
-	 */
-	public boolean canRunInBackground() {
-		return true;
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.ISearchQuery#getSearchResult()
-	 */
-	public ISearchResult getSearchResult() {
-		
-		return new JSPOccurrencesSearchResult(this);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSearchRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSearchRequestor.java
deleted file mode 100644
index 9dc8275..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSearchRequestor.java
+++ /dev/null
@@ -1,81 +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.ui.internal.java.search;
-
-import java.util.HashMap;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.ui.search.ISearchRequestor;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.search.ui.text.Match;
-
-
-/**
- * @author pavery
- */
-public class JSPSearchRequestor extends BasicJSPSearchRequestor {
-	
-	private ISearchRequestor fJavaRequestor = null;
-	
-	public JSPSearchRequestor() {
-		super();
-	}
-	
-	public JSPSearchRequestor(ISearchRequestor javaRequestor) {
-		// need to report matches to javaRequestor
-		this.fJavaRequestor = javaRequestor;
-	}
-	
-
-	protected void addSearchMatch(IDocument jspDocument, IFile jspFile, int jspStart, int jspEnd, String jspText) {
-		
-		if(!jspFile.exists())
-			return;
-
-		int lineNumber = -1;
-		try {
-			lineNumber = jspDocument.getLineOfOffset(jspStart);
-		} catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-		createSearchMarker(jspFile, jspStart, jspEnd, lineNumber);
-		
-		if(this.fJavaRequestor != null) {
-			Match match = new Match(jspFile, jspStart, jspEnd - jspStart);
-			this.fJavaRequestor.reportMatch(match);
-		}
-	}
-
-	/**
-	 * @param jspFile
-	 * @param jspStart
-	 * @param jspEnd
-	 */
-	private void createSearchMarker(IFile jspFile, int jspStart, int jspEnd, int lineNumber) {
-		
-		try {
-			IMarker marker = jspFile.createMarker(NewSearchUI.SEARCH_MARKER);
-			HashMap attributes = new HashMap(4);
-			attributes.put(IMarker.CHAR_START, new Integer(jspStart));
-			attributes.put(IMarker.CHAR_END, new Integer(jspEnd));
-			attributes.put(IMarker.LINE_NUMBER, new Integer(lineNumber));
-			marker.setAttributes(attributes);
-			
-		} catch (CoreException e) {
-			Logger.logException(e);
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSingleFileSearchRequestor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSingleFileSearchRequestor.java
deleted file mode 100644
index 4e35d83..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/JSPSingleFileSearchRequestor.java
+++ /dev/null
@@ -1,38 +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.ui.internal.java.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.IDocument;
-
-
-/**
- * <p>
- * Special requestor that adds search results for single file search
- * (Used for JSPFindOccurrences action).
- * It groups each match as it's own result.
- * </p>
- * 
- * @author pavery
- */
-public class JSPSingleFileSearchRequestor extends BasicJSPSearchRequestor {
-
-	private JSPSearchQuery fQuery = null;
-	
-	public JSPSingleFileSearchRequestor(JSPSearchQuery query) {
-		this.fQuery = query;
-	}
-	
-	protected void addSearchMatch(IDocument jspDocument, IFile jspFile, int jspStart, int jspEnd, String jspText) {
-		// add match to JSP query...
-		this.fQuery.addMatch(jspDocument, jspStart, jspEnd);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/ui/JSPMatchPresentation.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/ui/JSPMatchPresentation.java
deleted file mode 100644
index 74b1a26..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/ui/JSPMatchPresentation.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.ui.internal.java.search.ui;
-
-import org.eclipse.jdt.ui.search.IMatchPresentation;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.wst.sse.ui.internal.search.BasicSearchLabelProvider;
-
-/**
- * @author pavery
- */
-public class JSPMatchPresentation implements IMatchPresentation {
-
-	/**
-	 * @see org.eclipse.jdt.ui.search.IMatchPresentation#createLabelProvider()
-	 */
-	public ILabelProvider createLabelProvider() {
-		return new BasicSearchLabelProvider();
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.ui.search.IMatchPresentation#showMatch(org.eclipse.search.ui.text.Match, int, int, boolean)
-	 */
-	public void showMatch(Match match, int currentOffset, int currentLength, boolean activate) throws PartInitException {
-		// pa_TODO implement
-//		Object obj = match.getElement();
-		// show match in JSP editor
-		if(activate) {
-			// use show in target?
-		}
-		else {
-			// just select
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/ui/JSPQueryParticipant.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/ui/JSPQueryParticipant.java
deleted file mode 100644
index badbf18..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/java/search/ui/JSPQueryParticipant.java
+++ /dev/null
@@ -1,98 +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.ui.internal.java.search.ui;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.search.SearchPattern;
-import org.eclipse.jdt.core.search.SearchRequestor;
-import org.eclipse.jdt.ui.search.ElementQuerySpecification;
-import org.eclipse.jdt.ui.search.IMatchPresentation;
-import org.eclipse.jdt.ui.search.IQueryParticipant;
-import org.eclipse.jdt.ui.search.ISearchRequestor;
-import org.eclipse.jdt.ui.search.PatternQuerySpecification;
-import org.eclipse.jdt.ui.search.QuerySpecification;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchScope;
-import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport;
-import org.eclipse.jst.jsp.ui.internal.java.search.JSPSearchRequestor;
-
-/**
- * @author pavery 
- */
-public class JSPQueryParticipant implements IQueryParticipant {
-
-	// for debugging
-	private static final boolean DEBUG;
-	static {
-		String value= Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/jspsearch"); //$NON-NLS-1$
-		DEBUG= value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-	/**
-	 * @see org.eclipse.jdt.ui.search.IQueryParticipant#search(org.eclipse.jdt.ui.search.ISearchRequestor, org.eclipse.jdt.ui.search.QuerySpecification, org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void search(ISearchRequestor requestor, QuerySpecification querySpecification, IProgressMonitor monitor) throws CoreException {
-		
-		//indexIfNeeded();
-		
-		// do search based on the particular Java query
-		if(querySpecification instanceof ElementQuerySpecification) {
-			// element search (eg. from global find references in Java file)
-			ElementQuerySpecification elementQuery = (ElementQuerySpecification)querySpecification;
-			IJavaElement element = elementQuery.getElement();
-			
-			if(DEBUG)
-				System.out.println("JSP Query Participant searching on ELEMENT: " + element); //$NON-NLS-1$
-			
-			SearchRequestor jspRequestor = new JSPSearchRequestor(requestor);
-			
-			// pa_TODO need to adapt JavaSearchScope to a JSPSearchScope
-			JSPSearchSupport.getInstance().search(element, new JSPSearchScope(), jspRequestor);
-			
-		}
-		else if(querySpecification instanceof PatternQuerySpecification) {
-			
-			// pattern search (eg. from Java search page)
-			PatternQuerySpecification patternQuery = (PatternQuerySpecification)querySpecification;
-			String pattern = patternQuery.getPattern();
-			
-			if(DEBUG)
-				System.out.println("JSP Query Participant searching on PATTERN: " + pattern); //$NON-NLS-1$
-			
-			SearchRequestor jspRequestor = new JSPSearchRequestor(requestor);
-			
-			JSPSearchSupport.getInstance().search(pattern, 
-													new JSPSearchScope(), 
-													patternQuery.getSearchFor(), 
-													patternQuery.getLimitTo(), 
-													SearchPattern.R_PATTERN_MATCH, 
-													false, 
-													jspRequestor);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jdt.ui.search.IQueryParticipant#estimateTicks(org.eclipse.jdt.ui.search.QuerySpecification)
-	 */
-	public int estimateTicks(QuerySpecification data) {
-		// pa_TODO use project file counter from JSPSearchSupport...
-		return 0;
-	}
-
-	/**
-	 * @see org.eclipse.jdt.ui.search.IQueryParticipant#getUIParticipant()
-	 */
-	public IMatchPresentation getUIParticipant() {
-		return new JSPMatchPresentation();
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/JSPUIPreferenceInitializer.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/JSPUIPreferenceInitializer.java
deleted file mode 100644
index 7b2649a..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/JSPUIPreferenceInitializer.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.style.IStyleConstantsJSP;
-import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-/**
- * Sets default values for JSP UI preferences
- */
-public class JSPUIPreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = JSPUIPlugin.getDefault().getPreferenceStore();
-
-		// setting the same as HTML
-		store.setDefault(JSPUIPreferenceNames.AUTO_PROPOSE, true);
-		store.setDefault(JSPUIPreferenceNames.AUTO_PROPOSE_CODE, "<");//$NON-NLS-1$
-
-		// JSP Style Preferences
-		String NOBACKGROUNDBOLD = " | null | false"; //$NON-NLS-1$
-		String styleValue = ColorHelper.getColorString(127, 0, 127) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_NAME, styleValue);
-
-		styleValue = ColorHelper.getColorString(42, 0, 255) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE, styleValue);
-
-		styleValue = "null" + NOBACKGROUNDBOLD; //$NON-NLS-1$
-
-		// specified value is black; leaving as widget default
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS, styleValue);
-
-		styleValue = ColorHelper.getColorString(63, 95, 191) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.COMMENT_BORDER, styleValue);
-		store.setDefault(IStyleConstantsXML.COMMENT_TEXT, styleValue);
-
-		styleValue = ColorHelper.getColorString(0, 128, 128) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_BORDER, styleValue);
-
-		styleValue = ColorHelper.getColorString(63, 127, 127) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_NAME, styleValue);
-
-		styleValue = ColorHelper.getColorString(191, 95, 63) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsHTML.SCRIPT_AREA_BORDER, styleValue);
-
-		styleValue = "null" + NOBACKGROUNDBOLD; //$NON-NLS-1$
-		store.setDefault(IStyleConstantsJSP.JSP_CONTENT, styleValue);
-		
-		// set default new jsp file template to use in new file wizard
-		/*
-		 * Need to find template name that goes with default template id (name
-		 * may change for differnt language)
-		 */
-		String templateName = ""; //$NON-NLS-1$
-		Template template = JSPUIPlugin.getDefault().getTemplateStore().findTemplateById("org.eclipse.jst.jsp.ui.templates.jsphtml"); //$NON-NLS-1$
-		if (template != null)
-			templateName = template.getName();
-		store.setDefault(JSPUIPreferenceNames.NEW_FILE_TEMPLATE_NAME, templateName);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/JSPUIPreferenceNames.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/JSPUIPreferenceNames.java
deleted file mode 100644
index c185063..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/JSPUIPreferenceNames.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.preferences;
-
-/**
- * Preference keys for JSP UI
- */
-public class JSPUIPreferenceNames {
-	/**
-	 * A named preference that controls if code assist gets auto activated.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String AUTO_PROPOSE = getAutoProposeKey();
-
-	private static String getAutoProposeKey() {
-		return "autoPropose";//$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that holds the characters that auto activate code
-	 * assist.
-	 * <p>
-	 * Value is of type <code>String</code>. All characters that trigger
-	 * auto code assist.
-	 * </p>
-	 */
-	public static final String AUTO_PROPOSE_CODE = getAutoProposeCodeKey();
-
-	private static String getAutoProposeCodeKey() {
-		return "autoProposeCode";//$NON-NLS-1$
-	}
-
-	/**
-	 * The key to store customized templates.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String TEMPLATES_KEY = getTemplatesKey();
-
-	private static String getTemplatesKey() {
-		return "org.eclipse.wst.sse.ui.custom_templates"; //$NON-NLS-1$
-	}
-
-	/**
-	 * The key to store the last template name used in new JSP file wizard.
-	 * Template name is stored instead of template id because user-created
-	 * templates do not have template ids.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String NEW_FILE_TEMPLATE_NAME = "newFileTemplateName"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPColorPage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPColorPage.java
deleted file mode 100644
index 7e9eb80..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPColorPage.java
+++ /dev/null
@@ -1,167 +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.ui.internal.preferences.ui;
-
-import java.util.ArrayList;
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.editor.IHelpContextIds;
-import org.eclipse.jst.jsp.ui.internal.style.IStyleConstantsJSP;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore.OverlayKey;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.StyledTextColorPicker;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLColorPage;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-public class JSPColorPage extends XMLColorPage {
-
-	/**
-	 * Overridden to set up StyledTextColorPicker differently
-	 */
-	protected void createContentsForPicker(Composite parent) {
-		// create the color picker
-		fPicker = new JSPStyledTextColorPicker(parent, SWT.NULL);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		fPicker.setLayoutData(data);
-
-		fPicker.setPreferenceStore(fOverlayStore);
-		setupPicker(fPicker);
-
-		fPicker.setText(getSampleText());
-	}
-	
-	/**
-	 * Set up all the style preference keys in the overlay store
-	 */
-	protected OverlayKey[] createOverlayStoreKeys() {
-		ArrayList overlayKeys = new ArrayList();
-		
-		ArrayList styleList = new ArrayList();
-		initStyleList(styleList);
-		Iterator i = styleList.iterator();
-		while (i.hasNext()) {
-			overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, (String)i.next()));	
-		}
-
-		OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
-		overlayKeys.toArray(keys);
-		return keys;
-	}
-
-	public String getSampleText() {
-		return JSPUIMessages.Sample_JSP_doc; //$NON-NLS-1$ = "<%@ page \n\tlanguage=\"java\" \n\tcontentType=\"text/html; charset=ISO-8859-1\"\n%>\n<jsp:include flush=\"true\" page=\"titleBar.jsp\"/>\n\n<%-- Use below tags ONLY for JSP 1.1 --%>\n<%\n\tSystem.out.println(\"Welcome!\");\n%>\n<%-- Use below tags ONLY for JSP 1.2 --%>\n<jsp:scriptlet>\n\tSystem.out.println(\"Welcome!\");\n</jsp:scriptlet>"
-	}
-
-	protected void initContextStyleMap(Dictionary contextStyleMap) {
-
-		initCommonContextStyleMap(contextStyleMap);
-		contextStyleMap.remove(DOMRegionContext.XML_CONTENT); // leave content between tags alone
-		contextStyleMap.remove(DOMRegionContext.XML_DECLARATION_OPEN); // xml/html specific
-		contextStyleMap.remove(DOMRegionContext.XML_DECLARATION_CLOSE); // xml/html specific
-		contextStyleMap.remove(DOMRegionContext.XML_ELEMENT_DECLARATION); // xml/html specific
-		contextStyleMap.remove(DOMRegionContext.XML_ELEMENT_DECL_CLOSE); // xml/html specific
-
-		//	contextStyleMap.put(XMLJSPRegionContexts.JSP_CONTENT, HTMLColorManager.SCRIPT_AREA);
-		//	contextStyleMap.put(XMLJSPRegionContexts.BLOCK_TEXT, HTMLColorManager.SCRIPT_AREA);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_DECLARATION_OPEN, IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN, IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_EXPRESSION_OPEN, IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN, IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE, IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_CLOSE, IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_CONTENT, IStyleConstantsJSP.JSP_CONTENT);
-		
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_DIRECTIVE_NAME, IStyleConstantsXML.TAG_NAME);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_ROOT_TAG_NAME, IStyleConstantsXML.TAG_NAME);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_COMMENT_OPEN, IStyleConstantsXML.COMMENT_BORDER);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_COMMENT_TEXT, IStyleConstantsXML.COMMENT_TEXT);
-		contextStyleMap.put(DOMJSPRegionContexts.JSP_COMMENT_CLOSE, IStyleConstantsXML.COMMENT_BORDER);
-		
-		contextStyleMap.put(DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE, IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-		contextStyleMap.put(DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_SQUOTE, IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-	}
-
-	protected void initDescriptions(Dictionary descriptions) {
-		initCommonDescriptions(descriptions);
-		descriptions.remove(IStyleConstantsXML.XML_CONTENT); // leave content between tags alone
-		descriptions.remove(IStyleConstantsXML.DECL_BORDER); // xml/html specific
-		descriptions.put(IStyleConstantsHTML.SCRIPT_AREA_BORDER, JSPUIMessages.JSP_Delimiters_UI_); //$NON-NLS-1$ = "JSP Delimiters"
-		descriptions.put(IStyleConstantsJSP.JSP_CONTENT, JSPUIMessages.JSPColorPage_jsp_content);
-	}
-
-	protected void initStyleList(ArrayList list) {
-		initCommonStyleList(list);
-		list.remove(IStyleConstantsXML.XML_CONTENT); // leave content between tags alone
-		list.remove(IStyleConstantsXML.DECL_BORDER); // xml/html specific
-		list.add(IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		list.add(IStyleConstantsJSP.JSP_CONTENT);
-	}
-
-	protected void setupPicker(StyledTextColorPicker picker) {
-		IModelManager mmanager = StructuredModelManager.getModelManager();
-		picker.setParser(mmanager.createStructuredDocumentFor(ContentTypeIdForJSP.ContentTypeID_JSP).getParser());
-
-		// create descriptions for highlighting types
-		Dictionary descriptions = new Hashtable();
-		initDescriptions(descriptions);
-
-		// map region types to highlighting types
-		Dictionary contextStyleMap = new Hashtable();
-		initContextStyleMap(contextStyleMap);
-
-		ArrayList styleList = new ArrayList();
-		initStyleList(styleList);
-
-		picker.setContextStyleMap(contextStyleMap);
-		picker.setDescriptions(descriptions);
-		picker.setStyleList(styleList);
-
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		
-		Control c = super.createContents(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IHelpContextIds.JSP_PREFWEBX_STYLES_HELPID);
-		return c;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
-	 */
-	protected IPreferenceStore doGetPreferenceStore() {
-		return JSPUIPlugin.getDefault().getPreferenceStore();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.AbstractColorPage#savePreferences()
-	 */
-	protected void savePreferences() {
-		JSPUIPlugin.getDefault().savePluginPreferences();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPFilesPreferencePage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPFilesPreferencePage.java
deleted file mode 100644
index ffd71b7..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPFilesPreferencePage.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.preferences.ui;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
-import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.editor.IHelpContextIds;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.ui.internal.preferences.ui.HTMLFilesPreferencePage;
-
-public class JSPFilesPreferencePage extends HTMLFilesPreferencePage {
-	private Button fValidateFragments;
-
-	protected Preferences getModelPreferences() {
-		return JSPCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
-	 */
-	protected IPreferenceStore doGetPreferenceStore() {
-		return JSPUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	protected void doSavePreferenceStore() {
-		JSPCorePlugin.getDefault().savePluginPreferences(); // model
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Control c = super.createContents(parent);
-
-		Group g = createGroup((Composite) c, 1);
-		g.setText(JSPUIMessages.JSPFilesPreferencePage_0);
-		fValidateFragments = createCheckBox(g, JSPUIMessages.JSPFilesPreferencePage_1);
-		boolean validateFragments = getModelPreferences().getBoolean(JSPCorePreferenceNames.VALIDATE_FRAGMENTS);
-		fValidateFragments.setSelection(validateFragments);
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IHelpContextIds.JSP_PREFWEBX_FILES_HELPID);
-		
-		setSize((Composite)c);
-		return c;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.html.ui.preferences.ui.HTMLFilesPreferencePage#createContentsForLoadingGroup(org.eclipse.swt.widgets.Composite)
-	 */
-	protected void createContentsForLoadingGroup(Composite parent) {
-		// no loading preferences
-	}
-
-	protected IContentType getContentType() {
-		return Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.html.ui.preferences.ui.HTMLFilesPreferencePage#initializeValuesForLoadingGroup()
-	 */
-	protected void initializeValuesForLoadingGroup() {
-		// no loading preferences
-	}
-
-	protected void performDefaults() {
-		super.performDefaults();
-
-		boolean validateFragments = getModelPreferences().getDefaultBoolean(JSPCorePreferenceNames.VALIDATE_FRAGMENTS);
-		fValidateFragments.setSelection(validateFragments);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.html.ui.preferences.ui.HTMLFilesPreferencePage#performDefaultsForLoadingGroup()
-	 */
-	protected void performDefaultsForLoadingGroup() {
-		// no loading preferences
-	}
-
-	protected void storeValues() {
-		boolean validateFragments = fValidateFragments.getSelection();
-		getModelPreferences().setValue(JSPCorePreferenceNames.VALIDATE_FRAGMENTS, validateFragments);
-		super.storeValues();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.html.ui.preferences.ui.HTMLFilesPreferencePage#storeValuesForLoadingGroup()
-	 */
-	protected void storeValuesForLoadingGroup() {
-		// no loading preferences
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPSourcePreferencePage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPSourcePreferencePage.java
deleted file mode 100644
index 4830cda..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPSourcePreferencePage.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.preferences.ui;
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.dialogs.PreferenceLinkArea;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-public class JSPSourcePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
-	public void init(IWorkbench workbench) {
-		// do nothing
-	}
-
-	protected Control createContents(Composite parent) {
-		Composite composite = createScrolledComposite(parent);
-
-		Text label = new Text(composite, SWT.READ_ONLY);
-		label.setText(JSPUIMessages.JSPSourcePreferencePage_0);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-		data.horizontalIndent = 0;
-		label.setLayoutData(data);
-		
-		PreferenceLinkArea fileEditorsArea = new PreferenceLinkArea(composite, SWT.NONE, "org.eclipse.wst.html.ui.preferences.source", JSPUIMessages.JSPSourcePreferencePage_1,//$NON-NLS-1$
-					(IWorkbenchPreferenceContainer) getContainer(), null);
-
-		data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-		data.horizontalIndent = 5;
-		fileEditorsArea.getControl().setLayoutData(data);
-
-		PreferenceLinkArea contentTypeArea = new PreferenceLinkArea(composite, SWT.NONE, "org.eclipse.wst.sse.ui.preferences.xml.source", JSPUIMessages.JSPSourcePreferencePage_2,//$NON-NLS-1$
-					(IWorkbenchPreferenceContainer) getContainer(), null);
-
-		data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-		data.horizontalIndent = 5;
-		contentTypeArea.getControl().setLayoutData(data);
-		
-		setSize(composite);
-		return composite;
-	}
-
-	private Composite createScrolledComposite(Composite parent) {
-		// create scrollbars for this parent when needed
-		final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-		sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
-		Composite composite = createComposite(sc1);
-		sc1.setContent(composite);
-
-		// not calling setSize for composite will result in a blank composite,
-		// so calling it here initially
-		// setSize actually needs to be called after all controls are created,
-		// so scrolledComposite
-		// has correct minSize
-		setSize(composite);
-		return composite;
-	}
-
-	private void setSize(Composite composite) {
-		if (composite != null) {
-			// Note: The font is set here in anticipation that the class inheriting
-			//       this base class may add widgets to the dialog.   setSize
-			//       is assumed to be called just before we go live.
-			applyDialogFont(composite);
-			Point minSize = composite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			composite.setSize(minSize);
-			// set scrollbar composite's min size so page is expandable but
-			// has scrollbars when needed
-			if (composite.getParent() instanceof ScrolledComposite) {
-				ScrolledComposite sc1 = (ScrolledComposite) composite.getParent();
-				sc1.setMinSize(minSize);
-				sc1.setExpandHorizontal(true);
-				sc1.setExpandVertical(true);
-			}
-		}
-	}
-
-	private Composite createComposite(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		// GridLayout
-		GridLayout layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		composite.setLayout(layout);
-
-		// GridData
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalIndent = 0;
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		composite.setLayoutData(data);
-
-		composite.setFont(parent.getFont());
-		return composite;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPStyledTextColorPicker.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPStyledTextColorPicker.java
deleted file mode 100644
index 19bd809..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPStyledTextColorPicker.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.preferences.ui;
-
-import org.eclipse.jst.jsp.ui.internal.style.IStyleConstantsJSP;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.StyledTextColorPicker;
-
-/**
-* Overrides StyledTextColorPicker for special enablement behavior 
-* for JSPContent (only background settable)
-**/
-public class JSPStyledTextColorPicker extends StyledTextColorPicker {
-	
-	public JSPStyledTextColorPicker(Composite parent, int style) {
-		super(parent, style);
-	}
-	
-	/**
-	 * Activate controls based on the given local color type.
-	 * Overridden to disable foreground color, bold.
-	 */
-	protected void activate(String namedStyle) {
-		super.activate(namedStyle);
-		
-		if(namedStyle == IStyleConstantsJSP.JSP_CONTENT) {
-			fForeground.setEnabled(false);
-			fBold.setEnabled(false);
-			if (showItalic)
-				fItalic.setEnabled(false);
-			fForegroundLabel.setEnabled(false);	
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPTemplatePreferencePage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPTemplatePreferencePage.java
deleted file mode 100644
index e4151c3..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/preferences/ui/JSPTemplatePreferencePage.java
+++ /dev/null
@@ -1,58 +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.ui.internal.preferences.ui;
-
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.editor.IHelpContextIds;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.templates.TemplatePreferencePage;
-
-
-/**
- * Preference page for JSP templates
- */
-public class JSPTemplatePreferencePage extends TemplatePreferencePage {
-
-	public JSPTemplatePreferencePage() {
-		JSPUIPlugin jspEditorPlugin = JSPUIPlugin.getDefault();
-		
-		setPreferenceStore(jspEditorPlugin.getPreferenceStore());
-		setTemplateStore(jspEditorPlugin.getTemplateStore());
-		setContextTypeRegistry(jspEditorPlugin.getTemplateContextRegistry());
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-  	  boolean ok = super.performOk();
-  	  JSPUIPlugin.getDefault().savePluginPreferences();
-	  return ok;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.texteditor.templates.TemplatePreferencePage#isShowFormatterSetting()
-	 */
-	protected boolean isShowFormatterSetting() {
-		// template formatting has not been implemented
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite ancestor) {
-		Control c = super.createContents(ancestor);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IHelpContextIds.JSP_PREFWEBX_TEMPLATES_HELPID);
-		return c;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionAnnotationModelChanges.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionAnnotationModelChanges.java
deleted file mode 100644
index f1a58f1..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionAnnotationModelChanges.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.projection;
-
-import java.util.Map;
-
-import org.eclipse.jface.text.source.Annotation;
-import org.w3c.dom.Node;
-
-/**
- * Contains a set of projection model additions/deletions/modifications
- */
-class ProjectionAnnotationModelChanges {
-	// copies of this class located in:
-	// org.eclipse.wst.xml.ui.internal.projection
-	// org.eclipse.wst.css.ui.internal.projection
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-	private Node fNode;
-	private Annotation[] fDeletions;
-	private Map fAdditions;
-	private Annotation[] fModifications;
-
-	public ProjectionAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications) {
-		fNode = node;
-		fDeletions = deletions;
-		fAdditions = additions;
-		fModifications = modifications;
-	}
-
-	public Map getAdditions() {
-		return fAdditions;
-	}
-
-	public Annotation[] getDeletions() {
-		return fDeletions;
-	}
-
-	public Annotation[] getModifications() {
-		return fModifications;
-	}
-
-	public Node getNode() {
-		return fNode;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java
deleted file mode 100644
index 3612ec6..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.projection;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.w3c.dom.Node;
-
-public class ProjectionModelNodeAdapterFactoryHTML extends AbstractAdapterFactory {
-	// copies of this class located in:
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-
-	/**
-	 * List of projection viewers currently associated with this projection
-	 * model node adapter factory.
-	 */
-	private HashMap fProjectionViewers;
-
-	public ProjectionModelNodeAdapterFactoryHTML(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	public ProjectionModelNodeAdapterFactoryHTML(Object adapterKey) {
-		super(adapterKey);
-	}
-
-	public ProjectionModelNodeAdapterFactoryHTML() {
-		this(ProjectionModelNodeAdapterHTML.class);
-	}
-
-	/**
-	 * Actually creates an adapter for the parent of target if target is the
-	 * "adapt-able" node
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		if ((isActive()) && (target instanceof Node) && ((Node) target).getNodeType() == Node.ELEMENT_NODE) {
-			Node node = (Node) target;
-			if (isNodeProjectable(node)) {
-
-				// actually work with the parent node to listen for add,
-				// delete events
-				Node parent = node.getParentNode();
-				if (parent instanceof INodeNotifier) {
-					INodeNotifier parentNotifier = (INodeNotifier) parent;
-					ProjectionModelNodeAdapterHTML parentAdapter = (ProjectionModelNodeAdapterHTML) parentNotifier.getExistingAdapter(ProjectionModelNodeAdapterHTML.class);
-					if (parentAdapter == null) {
-						// create a new adapter for parent
-						parentAdapter = new ProjectionModelNodeAdapterHTML(this);
-						parentNotifier.addAdapter(parentAdapter);
-					}
-					// call update on parent because a new node has just been
-					// added
-					parentAdapter.updateAdapter(parent);
-				}
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns true if node is a node type able to fold
-	 * 
-	 * @param node
-	 * @return boolean true if node is projectable, false otherwise
-	 */
-	boolean isNodeProjectable(Node node) {
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			String tagName = node.getNodeName();
-			// node is only projectable if it is head, body, script, style,
-			// table, ul, ol tags
-			if (HTML40Namespace.ElementName.HEAD.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.BODY.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.SCRIPT.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.STYLE.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.TABLE.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.UL.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.OL.equalsIgnoreCase(tagName))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Return true if this factory is currently actively managing projection
-	 * 
-	 * @return
-	 */
-	boolean isActive() {
-		return (fProjectionViewers != null && !fProjectionViewers.isEmpty());
-	}
-
-	/**
-	 * Updates projection annotation model if document is not in flux.
-	 * Otherwise, queues up the changes to be applied when document is ready.
-	 * 
-	 * @param node
-	 * @param deletions
-	 * @param additions
-	 * @param modifications
-	 */
-	void queueAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications) {
-		queueAnnotationModelChanges(node, deletions, additions, modifications, null);
-	}
-
-	/**
-	 * Updates projection annotation model for a specific projection viewer if
-	 * document is not in flux. Otherwise, queues up the changes to be applied
-	 * when document is ready.
-	 * 
-	 * @param node
-	 * @param deletions
-	 * @param additions
-	 * @param modifications
-	 * @param viewer
-	 */
-	void queueAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications, ProjectionViewer viewer) {
-		// create a change object for latest change and add to queue
-		ProjectionAnnotationModelChanges newChange = new ProjectionAnnotationModelChanges(node, deletions, additions, modifications);
-		if (fProjectionViewers != null) {
-			if (viewer != null) {
-				ProjectionViewerInformation info = (ProjectionViewerInformation) fProjectionViewers.get(viewer);
-				if (info != null) {
-					info.queueAnnotationModelChanges(newChange);
-				}
-			}
-			else {
-				Iterator infos = fProjectionViewers.values().iterator();
-				while (infos.hasNext()) {
-					ProjectionViewerInformation info = (ProjectionViewerInformation) infos.next();
-					info.queueAnnotationModelChanges(newChange);
-				}
-			}
-		}
-	}
-
-	public void release() {
-		// go through every projectionviewer and call
-		// removeProjectionViewer(viewer);
-		if (fProjectionViewers != null) {
-			Iterator infos = fProjectionViewers.values().iterator();
-			while (infos.hasNext()) {
-				ProjectionViewerInformation info = (ProjectionViewerInformation) infos.next();
-				info.dispose();
-				infos.remove();
-			}
-			fProjectionViewers = null;
-		}
-		super.release();
-	}
-
-	/**
-	 * Adds viewer to list of projection viewers this factory is associated
-	 * with
-	 * 
-	 * @param viewer -
-	 *            assumes viewer's document and projection annotation model
-	 *            are not null
-	 */
-	void addProjectionViewer(ProjectionViewer viewer) {
-		// remove old entry if it exists
-		removeProjectionViewer(viewer);
-
-		if (fProjectionViewers == null) {
-			fProjectionViewers = new HashMap();
-		}
-
-		// create new object containing projection viewer and its info
-		ProjectionViewerInformation info = new ProjectionViewerInformation(viewer);
-		fProjectionViewers.put(viewer, info);
-		info.initialize();
-	}
-
-	/**
-	 * Removes the given viewer from the list of projection viewers this
-	 * factor is associated with
-	 * 
-	 * @param viewer
-	 */
-	void removeProjectionViewer(ProjectionViewer viewer) {
-		if (fProjectionViewers != null) {
-			// remove entry from list of viewers
-			ProjectionViewerInformation info = (ProjectionViewerInformation) fProjectionViewers.remove(viewer);
-			if (info != null) {
-				info.dispose();
-			}
-			// if removing last projection viewer, clear out everything
-			if (fProjectionViewers.isEmpty()) {
-				fProjectionViewers = null;
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterFactoryJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterFactoryJSP.java
deleted file mode 100644
index 911edfe..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterFactoryJSP.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.projection;
-
-import org.eclipse.jst.jsp.core.internal.provisional.JSP11Namespace;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.w3c.dom.Node;
-
-public class ProjectionModelNodeAdapterFactoryJSP extends ProjectionModelNodeAdapterFactoryHTML {
-	public ProjectionModelNodeAdapterFactoryJSP() {
-		this(ProjectionModelNodeAdapterJSP.class);
-	}
-
-	public ProjectionModelNodeAdapterFactoryJSP(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	public ProjectionModelNodeAdapterFactoryJSP(Object adapterKey) {
-		super(adapterKey);
-	}
-
-	/**
-	 * Actually creates an adapter for the parent of target if target is the
-	 * "adapt-able" node
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		if ((isActive()) && (target instanceof Node) && ((Node) target).getNodeType() == Node.ELEMENT_NODE) {
-			Node node = (Node) target;
-			if (isNodeProjectable(node)) {
-
-				// actually work with the parent node to listen for add,
-				// delete events
-				Node parent = node.getParentNode();
-				if (parent instanceof INodeNotifier) {
-					INodeNotifier parentNotifier = (INodeNotifier) parent;
-					ProjectionModelNodeAdapterJSP parentAdapter = (ProjectionModelNodeAdapterJSP) parentNotifier.getExistingAdapter(ProjectionModelNodeAdapterJSP.class);
-					if (parentAdapter == null) {
-						// create a new adapter for parent
-						parentAdapter = new ProjectionModelNodeAdapterJSP(this);
-						parentNotifier.addAdapter(parentAdapter);
-					}
-					// call update on parent because a new node has just been
-					// added
-					parentAdapter.updateAdapter(parent);
-				}
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns true if node is a node type able to fold
-	 * 
-	 * @param node
-	 * @return boolean true if node is projectable, false otherwise
-	 */
-	boolean isNodeProjectable(Node node) {
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			String tagName = node.getNodeName();
-			// node is only projectable if it is jsp scriptlet tag
-			if (JSP11Namespace.ElementName.SCRIPTLET.equalsIgnoreCase(tagName))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterHTML.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterHTML.java
deleted file mode 100644
index 97621b6..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterHTML.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.projection;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.projection.ProjectionAnnotation;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.w3c.dom.Node;
-
-/**
- * Updates projection annotation model with projection annotations for this
- * adapter node's children
- */
-public class ProjectionModelNodeAdapterHTML implements INodeAdapter {
-	// copies of this class located in:
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-	private final static boolean debugProjectionPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.html.ui/projectionperf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private class TagProjectionAnnotation extends ProjectionAnnotation {
-		private boolean fIsVisible = false; /* workaround for BUG85874 */
-		private Node fNode;
-
-		public TagProjectionAnnotation(Node node, boolean isCollapsed) {
-			super(isCollapsed);
-			fNode = node;
-		}
-
-		public Node getNode() {
-			return fNode;
-		}
-
-		public void setNode(Node node) {
-			fNode = node;
-		}
-
-		/**
-		 * Does not paint hidden annotations. Annotations are hidden when they
-		 * only span one line.
-		 * 
-		 * @see ProjectionAnnotation#paint(org.eclipse.swt.graphics.GC,
-		 *      org.eclipse.swt.widgets.Canvas,
-		 *      org.eclipse.swt.graphics.Rectangle)
-		 */
-		public void paint(GC gc, Canvas canvas, Rectangle rectangle) {
-			/* workaround for BUG85874 */
-			/*
-			 * only need to check annotations that are expanded because hidden
-			 * annotations should never have been given the chance to
-			 * collapse.
-			 */
-			if (!isCollapsed()) {
-				// working with rectangle, so line height
-				FontMetrics metrics = gc.getFontMetrics();
-				if (metrics != null) {
-					// do not draw annotations that only span one line and
-					// mark them as not visible
-					if ((rectangle.height / metrics.getHeight()) <= 1) {
-						fIsVisible = false;
-						return;
-					}
-				}
-			}
-			fIsVisible = true;
-			super.paint(gc, canvas, rectangle);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.text.source.projection.ProjectionAnnotation#markCollapsed()
-		 */
-		public void markCollapsed() {
-			/* workaround for BUG85874 */
-			// do not mark collapsed if annotation is not visible
-			if (fIsVisible)
-				super.markCollapsed();
-		}
-	}
-
-	// copies of this class located in:
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-
-	ProjectionModelNodeAdapterFactoryHTML fAdapterFactory;
-	private Map fTagAnnotations = new HashMap();
-
-	public ProjectionModelNodeAdapterHTML(ProjectionModelNodeAdapterFactoryHTML factory) {
-		fAdapterFactory = factory;
-	}
-
-	/**
-	 * Create a projection position from the given node. Able to get
-	 * projection position if node isNodeProjectable.
-	 * 
-	 * @param node
-	 * @return null if no projection position possible, a Position otherwise
-	 */
-	private Position createProjectionPosition(Node node) {
-		Position pos = null;
-		if (fAdapterFactory.isNodeProjectable(node) && node instanceof IndexedRegion) {
-			// IDocument document =
-			// fAdapterFactory.getProjectionViewer().getDocument();
-			// if (document != null) {
-			IndexedRegion inode = (IndexedRegion) node;
-			int start = inode.getStartOffset();
-			int end = inode.getEndOffset();
-			if (start >= 0 && start < end) {
-				// region-based
-				// extra line when collapsed, but no region
-				// increase when add newline
-				pos = new Position(start, end - start);
-				// try {
-				// // line-based
-				// // extra line when collapsed, but no region
-				// // increase when add newline
-				// IRegion startLineRegion =
-				// document.getLineInformationOfOffset(start);
-				// IRegion endLineRegion =
-				// document.getLineInformationOfOffset(end);
-				// int startOffset = startLineRegion.getOffset();
-				// int endOffset = endLineRegion.getOffset() +
-				// endLineRegion.getLength();
-				// if (endOffset > startOffset) {
-				// pos = new Position(startOffset, endOffset -
-				// startOffset);
-				// }
-				//
-				// // line-based
-				// // no extra line when collapsed, but region increase
-				// // when add newline
-				// int startLine = document.getLineOfOffset(start);
-				// int endLine = document.getLineOfOffset(end);
-				// if (endLine + 1 < document.getNumberOfLines()) {
-				// int offset = document.getLineOffset(startLine);
-				// int endOffset = document.getLineOffset(endLine + 1);
-				// pos = new Position(offset, endOffset - offset);
-				// }
-				// }
-				// catch (BadLocationException x) {
-				// Logger.log(Logger.WARNING_DEBUG, null, x);
-				// }
-			}
-		}
-		// }
-		return pos;
-	}
-
-	/**
-	 * Find TagProjectionAnnotation for node in the current list of projection
-	 * annotations for this adapter
-	 * 
-	 * @param node
-	 * @return TagProjectionAnnotation
-	 */
-	private TagProjectionAnnotation getExistingAnnotation(Node node) {
-		TagProjectionAnnotation anno = null;
-
-		if ((node != null) && (!fTagAnnotations.isEmpty())) {
-			Iterator it = fTagAnnotations.keySet().iterator();
-			while (it.hasNext() && anno == null) {
-				TagProjectionAnnotation a = (TagProjectionAnnotation) it.next();
-				Node n = a.getNode();
-				if (node.equals(n)) {
-					anno = a;
-				}
-			}
-		}
-		return anno;
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return type == ProjectionModelNodeAdapterHTML.class;
-	}
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// check if folding is even enabled, if not, just ignore notifyChanged
-		// events
-		if (!fAdapterFactory.isActive()) {
-			return;
-		}
-
-		if ((eventType == INodeNotifier.STRUCTURE_CHANGED) && (notifier instanceof Node)) {
-			updateAdapter((Node) notifier);
-		}
-	}
-
-	/**
-	 * Update the projection annotation of all the nodes that are children of
-	 * node
-	 * 
-	 * @param node
-	 */
-	void updateAdapter(Node node) {
-		updateAdapter(node, null);
-	}
-
-	/**
-	 * Update the projection annotation of all the nodes that are children of
-	 * node and adds all projection annotations to viewer (for newly added
-	 * viewers)
-	 * 
-	 * @param node
-	 * @param viewer
-	 */
-	void updateAdapter(Node node, ProjectionViewer viewer) {
-		long start = System.currentTimeMillis();
-
-		Map additions = new HashMap();
-		Map projectionAnnotations = new HashMap();
-
-		// go through immediate child nodes and figure out projection
-		// model annotations
-		if (node != null) {
-			Node childNode = node.getFirstChild();
-			while (childNode != null) {
-				Position newPos = createProjectionPosition(childNode);
-				if (newPos != null) {
-					TagProjectionAnnotation newAnnotation = new TagProjectionAnnotation(childNode, false);
-					TagProjectionAnnotation existing = getExistingAnnotation(childNode);
-					if (existing == null) {
-						// add to map containing all annotations for this
-						// adapter
-						projectionAnnotations.put(newAnnotation, newPos);
-						// add to map containing annotations to add
-						additions.put(newAnnotation, newPos);
-					}
-					else {
-						// add to map containing all annotations for this
-						// adapter
-						projectionAnnotations.put(existing, newPos);
-						// remove from map containing annotations to delete
-						fTagAnnotations.remove(existing);
-					}
-				}
-				childNode = childNode.getNextSibling();
-			}
-
-			// in the end, want to delete anything leftover in old list, add
-			// everything in additions, and update everything in
-			// projectionAnnotations
-			ProjectionAnnotation[] oldList = null;
-			if (!fTagAnnotations.isEmpty()) {
-				oldList = (ProjectionAnnotation[]) fTagAnnotations.keySet().toArray(new ProjectionAnnotation[0]);
-			}
-			ProjectionAnnotation[] modifyList = null;
-			if (!projectionAnnotations.isEmpty()) {
-				modifyList = (ProjectionAnnotation[]) projectionAnnotations.keySet().toArray(new ProjectionAnnotation[0]);
-			}
-
-			// specifically add all annotations to viewer
-			if (viewer != null && !projectionAnnotations.isEmpty()) {
-				fAdapterFactory.queueAnnotationModelChanges(node, null, projectionAnnotations, null, viewer);
-			}
-
-			// only update when there is something to update
-			if ((oldList != null && oldList.length > 0) || (!additions.isEmpty()) || (modifyList != null && modifyList.length > 0))
-				fAdapterFactory.queueAnnotationModelChanges(node, oldList, additions, modifyList);
-		}
-
-		// save new list of annotations
-		fTagAnnotations = projectionAnnotations;
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			String nodeName = node != null ? node.getNodeName() : "null"; //$NON-NLS-1$
-			System.out.println("ProjectionModelNodeAdapterHTML.updateAdapter (" + nodeName + "):" + (end - start)); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterJSP.java
deleted file mode 100644
index a195368..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionModelNodeAdapterJSP.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.projection;
-
-/**
- * Updates projection annotation model with projection annotations for this
- * adapter node's children
- */
-public class ProjectionModelNodeAdapterJSP extends ProjectionModelNodeAdapterHTML {
-	public ProjectionModelNodeAdapterJSP(ProjectionModelNodeAdapterFactoryJSP factory) {
-		super(factory);
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return type == ProjectionModelNodeAdapterJSP.class;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionViewerInformation.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionViewerInformation.java
deleted file mode 100644
index 5f84d1c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/ProjectionViewerInformation.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.projection;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-
-/**
- * Contains information about a projection viewer and also manages updating
- * the viewer's projection annotation model
- */
-class ProjectionViewerInformation {
-	// copies of this class located in:
-	// org.eclipse.wst.xml.ui.internal.projection
-	// org.eclipse.wst.css.ui.internal.projection
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-
-	/**
-	 * Listens to document to be aware of when to update the projection
-	 * annotation model.
-	 */
-	private class DocumentListener implements IDocumentListener {
-		private ProjectionViewerInformation fInfo;
-
-		public DocumentListener(ProjectionViewerInformation info) {
-			fInfo = info;
-		}
-
-		public void documentAboutToBeChanged(DocumentEvent event) {
-			IDocument document = event.getDocument();
-			if (fInfo.getDocument() == document) {
-				fInfo.setIsDocumentChanging(true);
-			}
-		}
-
-		public void documentChanged(DocumentEvent event) {
-			// register a post notification replace so that projection
-			// annotation model will be updated after all documentChanged
-			// listeners have been notified
-			IDocument document = event.getDocument();
-			if (document instanceof IDocumentExtension && fInfo.getDocument() == document) {
-				if (fInfo.hasChangesQueued())
-					((IDocumentExtension) document).registerPostNotificationReplace(this, new PostDocumentChangedListener(fInfo));
-			}
-		}
-	}
-
-	/**
-	 * Essentially a post document changed listener because it is called after
-	 * documentchanged has been fired.
-	 */
-	private class PostDocumentChangedListener implements IDocumentExtension.IReplace {
-		private ProjectionViewerInformation fInfo;
-
-		public PostDocumentChangedListener(ProjectionViewerInformation info) {
-			fInfo = info;
-		}
-
-		public void perform(IDocument document, IDocumentListener owner) {
-			fInfo.applyAnnotationModelChanges();
-			fInfo.setIsDocumentChanging(false);
-		}
-	}
-
-	/**
-	 * Projection annotation model current associated with this projection
-	 * viewer
-	 */
-	private ProjectionAnnotationModel fProjectionAnnotationModel;
-	/**
-	 * Document currently associated with this projection viewer
-	 */
-	private IDocument fDocument;
-	/**
-	 * Listener to fProjectionViewer's document
-	 */
-	private IDocumentListener fDocumentListener;
-	/**
-	 * Indicates whether or not document is in the middle of changing
-	 */
-	private boolean fIsDocumentChanging = false;
-	/**
-	 * List of projection annotation model changes that need to be applied
-	 */
-	private List fQueuedAnnotationChanges;
-
-	public ProjectionViewerInformation(ProjectionViewer viewer) {
-		fDocument = viewer.getDocument();
-		fProjectionAnnotationModel = viewer.getProjectionAnnotationModel();
-	}
-
-	IDocument getDocument() {
-		return fDocument;
-	}
-
-	private List getQueuedAnnotationChanges() {
-		if (fQueuedAnnotationChanges == null) {
-			fQueuedAnnotationChanges = new ArrayList();
-		}
-		return fQueuedAnnotationChanges;
-	}
-
-	void setIsDocumentChanging(boolean changing) {
-		fIsDocumentChanging = changing;
-	}
-
-	private boolean isDocumentChanging() {
-		return fIsDocumentChanging;
-	}
-
-	/**
-	 * Applies the pending projection annotation model changes to the
-	 * projection annotation model.
-	 */
-	void applyAnnotationModelChanges() {
-		List queuedChanges = getQueuedAnnotationChanges();
-		// go through all the pending annotation changes and apply
-		// them to
-		// the projection annotation model
-		while (!queuedChanges.isEmpty()) {
-			ProjectionAnnotationModelChanges changes = (ProjectionAnnotationModelChanges) queuedChanges.remove(0);
-			try {
-				fProjectionAnnotationModel.modifyAnnotations(changes.getDeletions(), changes.getAdditions(), changes.getModifications());
-			}
-			catch (Exception e) {
-				// if anything goes wrong, log it be continue
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-	}
-
-	/**
-	 * Returns true if there are annotation changes queued up, false otherwise
-	 * 
-	 * @return boolean
-	 */
-	boolean hasChangesQueued() {
-		return !getQueuedAnnotationChanges().isEmpty();
-	}
-
-	/**
-	 * Updates projection annotation model if document is not in flux.
-	 * Otherwise, queues up the changes to be applied when document is ready.
-	 */
-	public void queueAnnotationModelChanges(ProjectionAnnotationModelChanges newChange) {
-		/*
-		 * future_TODO: maybe improve by checking if annotation projection
-		 * model change already exists for node. if so, throw out old change.
-		 */
-		getQueuedAnnotationChanges().add(newChange);
-
-		// if document isn't changing, go ahead and apply it
-		if (!isDocumentChanging()) {
-			applyAnnotationModelChanges();
-		}
-	}
-
-	public void initialize() {
-		// add document listener
-		if (fDocumentListener == null) {
-			fDocumentListener = new DocumentListener(this);
-		}
-		getDocument().addDocumentListener(fDocumentListener);
-	}
-
-	public void dispose() {
-		// remove document listener
-		if (fDocumentListener != null) {
-			getDocument().removeDocumentListener(fDocumentListener);
-		}
-
-		// clear out list of queued changes since it may no longer
-		// be accurate
-		if (fQueuedAnnotationChanges != null) {
-			fQueuedAnnotationChanges.clear();
-			fQueuedAnnotationChanges = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/StructuredTextFoldingProviderJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/StructuredTextFoldingProviderJSP.java
deleted file mode 100644
index 12666af..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/projection/StructuredTextFoldingProviderJSP.java
+++ /dev/null
@@ -1,399 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.projection;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.jface.text.source.projection.IProjectionListener;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.internal.projection.IStructuredTextFoldingProvider;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * Updates the projection model of a structured model for JSP.
- */
-public class StructuredTextFoldingProviderJSP implements IStructuredTextFoldingProvider, IProjectionListener, ITextInputListener {
-	private final static boolean debugProjectionPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.jst.jsp.ui/projectionperf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private IDocument fDocument;
-	private ProjectionViewer fViewer;
-	private boolean fProjectionNeedsToBeEnabled = false;
-	/**
-	 * Maximum number of child nodes to add adapters to (limit for performance
-	 * sake)
-	 */
-	private final int MAX_CHILDREN = 10;
-	/**
-	 * Maximum number of sibling nodes to add adapters to (limit for
-	 * performance sake)
-	 */
-	private final int MAX_SIBLINGS = 1000;
-
-	/**
-	 * Adds an adapter to node and its children
-	 * 
-	 * @param node
-	 * @param childLevel
-	 */
-	private void addAdapterToNodeAndChildren(Node node, int childLevel) {
-		// stop adding initial adapters MAX_CHILDREN levels deep for
-		// performance sake
-		if (node instanceof INodeNotifier && childLevel < MAX_CHILDREN) {
-			INodeNotifier notifier = (INodeNotifier) node;
-
-			// try and get the adapter for the current node and update the
-			// adapter with projection information
-			ProjectionModelNodeAdapterJSP adapter = (ProjectionModelNodeAdapterJSP) notifier.getExistingAdapter(ProjectionModelNodeAdapterJSP.class);
-			if (adapter != null) {
-				adapter.updateAdapter(node, fViewer);
-			}
-			else {
-				// just call getadapter so the adapter is created and
-				// automatically initialized
-				notifier.getAdapterFor(ProjectionModelNodeAdapterJSP.class);
-			}
-			ProjectionModelNodeAdapterHTML adapter2 = (ProjectionModelNodeAdapterHTML) notifier.getExistingAdapter(ProjectionModelNodeAdapterHTML.class);
-			if (adapter2 != null) {
-				adapter2.updateAdapter(node);
-			}
-			else {
-				// just call getadapter so the adapter is created and
-				// automatically initialized
-				notifier.getAdapterFor(ProjectionModelNodeAdapterHTML.class);
-			}
-			int siblingLevel = 0;
-			Node nextChild = node.getFirstChild();
-			while (nextChild != null && siblingLevel < MAX_SIBLINGS) {
-				Node childNode = nextChild;
-				nextChild = childNode.getNextSibling();
-
-				addAdapterToNodeAndChildren(childNode, childLevel + 1);
-				++siblingLevel;
-			}
-		}
-	}
-
-	/**
-	 * Goes through every node and adds an adapter onto each for tracking
-	 * purposes
-	 */
-	private void addAllAdapters() {
-		long start = System.currentTimeMillis();
-
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					int startOffset = 0;
-					IndexedRegion startNode = sModel.getIndexedRegion(startOffset);
-					if (startNode instanceof Node) {
-						int siblingLevel = 0;
-						Node nextSibling = (Node) startNode;
-						while (nextSibling != null && siblingLevel < MAX_SIBLINGS) {
-							Node currentNode = nextSibling;
-							nextSibling = currentNode.getNextSibling();
-
-							addAdapterToNodeAndChildren(currentNode, 0);
-							++siblingLevel;
-						}
-					}
-				}
-			}
-			finally {
-				if (sModel != null) {
-					sModel.releaseFromRead();
-				}
-			}
-		}
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderJSP.addAllAdapters: " + (end - start)); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Get the ProjectionModelNodeAdapterFactoryHTML to use with this
-	 * provider.
-	 * 
-	 * @return ProjectionModelNodeAdapterFactoryHTML
-	 */
-	private ProjectionModelNodeAdapterFactoryHTML getAdapterFactoryHTML(boolean createIfNeeded) {
-		long start = System.currentTimeMillis();
-
-		ProjectionModelNodeAdapterFactoryHTML factory = null;
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					FactoryRegistry factoryRegistry = sModel.getFactoryRegistry();
-
-					// getting the projectionmodelnodeadapter for the first
-					// time
-					// so do some initializing
-					if (!factoryRegistry.contains(ProjectionModelNodeAdapterHTML.class) && createIfNeeded) {
-						ProjectionModelNodeAdapterFactoryHTML newFactory = new ProjectionModelNodeAdapterFactoryHTML();
-
-						// add factory to factory registry
-						factoryRegistry.addFactory(newFactory);
-
-						// add factory to propogating adapter
-						IDOMModel domModel = (IDOMModel) sModel;
-						Document document = domModel.getDocument();
-						PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) document).getAdapterFor(PropagatingAdapter.class);
-						if (propagatingAdapter != null) {
-							propagatingAdapter.addAdaptOnCreateFactory(newFactory);
-						}
-					}
-
-					// try and get the factory
-					factory = (ProjectionModelNodeAdapterFactoryHTML) factoryRegistry.getFactoryFor(ProjectionModelNodeAdapterHTML.class);
-				}
-			}
-			finally {
-				if (sModel != null)
-					sModel.releaseFromRead();
-			}
-		}
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderJSP.getAdapterFactoryHTML: " + (end - start)); //$NON-NLS-1$
-		}
-		return factory;
-	}
-
-	/**
-	 * Get the ProjectionModelNodeAdapterFactoryJSP to use with this provider.
-	 * 
-	 * @return ProjectionModelNodeAdapterFactoryJSP
-	 */
-	private ProjectionModelNodeAdapterFactoryJSP getAdapterFactoryJSP(boolean createIfNeeded) {
-		long start = System.currentTimeMillis();
-
-		ProjectionModelNodeAdapterFactoryJSP factory = null;
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					FactoryRegistry factoryRegistry = sModel.getFactoryRegistry();
-
-					// getting the projectionmodelnodeadapter for the first
-					// time
-					// so do some initializing
-					if (!factoryRegistry.contains(ProjectionModelNodeAdapterJSP.class) && createIfNeeded) {
-						ProjectionModelNodeAdapterFactoryJSP newFactory = new ProjectionModelNodeAdapterFactoryJSP();
-
-						// add factory to factory registry
-						factoryRegistry.addFactory(newFactory);
-
-						// add factory to propogating adapter
-						IDOMModel domModel = (IDOMModel) sModel;
-						Document document = domModel.getDocument();
-						PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) document).getAdapterFor(PropagatingAdapter.class);
-						if (propagatingAdapter != null) {
-							propagatingAdapter.addAdaptOnCreateFactory(newFactory);
-						}
-					}
-
-					// try and get the factory
-					factory = (ProjectionModelNodeAdapterFactoryJSP) factoryRegistry.getFactoryFor(ProjectionModelNodeAdapterJSP.class);
-				}
-			}
-			finally {
-				if (sModel != null)
-					sModel.releaseFromRead();
-			}
-		}
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderJSP.getAdapterFactoryJSP: " + (end - start)); //$NON-NLS-1$
-		}
-		return factory;
-	}
-
-	/**
-	 * Initialize this provider with the correct document. Assumes projection
-	 * is enabled. (otherwise, only install would have been called)
-	 */
-	public void initialize() {
-		if (!isInstalled())
-			return;
-
-		// clear out old info
-		projectionDisabled();
-
-		fDocument = fViewer.getDocument();
-
-		// set projection viewer on new document's adapter factory
-		if (fViewer.getProjectionAnnotationModel() != null) {
-			ProjectionModelNodeAdapterFactoryJSP factory = getAdapterFactoryJSP(true);
-			if (factory != null) {
-				factory.addProjectionViewer(fViewer);
-			}
-			ProjectionModelNodeAdapterFactoryHTML factory2 = getAdapterFactoryHTML(true);
-			if (factory2 != null) {
-				factory2.addProjectionViewer(fViewer);
-			}
-
-			addAllAdapters();
-		}
-		fProjectionNeedsToBeEnabled = false;
-	}
-
-	/**
-	 * Associate a ProjectionViewer with this IStructuredTextFoldingProvider
-	 * 
-	 * @param viewer -
-	 *            assumes not null
-	 */
-	public void install(ProjectionViewer viewer) {
-		// uninstall before trying to install new viewer
-		if (isInstalled()) {
-			uninstall();
-		}
-		fViewer = viewer;
-		fViewer.addProjectionListener(this);
-		fViewer.addTextInputListener(this);
-	}
-
-	private boolean isInstalled() {
-		return fViewer != null;
-	}
-
-	public void projectionDisabled() {
-		ProjectionModelNodeAdapterFactoryJSP factory = getAdapterFactoryJSP(false);
-		if (factory != null) {
-			factory.removeProjectionViewer(fViewer);
-		}
-		ProjectionModelNodeAdapterFactoryHTML factory2 = getAdapterFactoryHTML(false);
-		if (factory2 != null) {
-			factory2.removeProjectionViewer(fViewer);
-		}
-
-		// clear out all annotations
-		if (fViewer.getProjectionAnnotationModel() != null)
-			fViewer.getProjectionAnnotationModel().removeAllAnnotations();
-
-		removeAllAdapters();
-
-		fDocument = null;
-		fProjectionNeedsToBeEnabled = false;
-	}
-
-	public void projectionEnabled() {
-		initialize();
-	}
-
-	/**
-	 * Removes an adapter from node and its children
-	 * 
-	 * @param node
-	 * @param level
-	 */
-	private void removeAdapterFromNodeAndChildren(Node node, int level) {
-		if (node instanceof INodeNotifier) {
-			INodeNotifier notifier = (INodeNotifier) node;
-
-			// try and get the adapter for the current node and remove it
-			INodeAdapter adapter = notifier.getExistingAdapter(ProjectionModelNodeAdapterJSP.class);
-			if (adapter != null) {
-				notifier.removeAdapter(adapter);
-			}
-
-			INodeAdapter adapter2 = notifier.getExistingAdapter(ProjectionModelNodeAdapterHTML.class);
-			if (adapter2 != null) {
-				notifier.removeAdapter(adapter2);
-			}
-
-			Node nextChild = node.getFirstChild();
-			while (nextChild != null) {
-				Node childNode = nextChild;
-				nextChild = childNode.getNextSibling();
-
-				removeAdapterFromNodeAndChildren(childNode, level + 1);
-			}
-		}
-	}
-
-	/**
-	 * Goes through every node and removes adapter from each for cleanup
-	 * purposes
-	 */
-	private void removeAllAdapters() {
-		long start = System.currentTimeMillis();
-
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					int startOffset = 0;
-					IndexedRegion startNode = sModel.getIndexedRegion(startOffset);
-					if (startNode instanceof Node) {
-						Node nextSibling = (Node) startNode;
-						while (nextSibling != null) {
-							Node currentNode = nextSibling;
-							nextSibling = currentNode.getNextSibling();
-
-							removeAdapterFromNodeAndChildren(currentNode, 0);
-						}
-					}
-				}
-			}
-			finally {
-				if (sModel != null) {
-					sModel.releaseFromRead();
-				}
-			}
-		}
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderJSP.addAllAdapters: " + (end - start)); //$NON-NLS-1$
-		}
-	}
-
-	public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
-		// if folding is enabled and new document is going to be a totally
-		// different document, disable projection
-		if (fDocument != null && fDocument != newInput) {
-			// disable projection and disconnect everything
-			projectionDisabled();
-			fProjectionNeedsToBeEnabled = true;
-		}
-	}
-
-	public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
-		// if projection was previously enabled before input document changed
-		// and new document is different than old document
-		if (fProjectionNeedsToBeEnabled && fDocument == null && newInput != null) {
-			projectionEnabled();
-			fProjectionNeedsToBeEnabled = false;
-		}
-	}
-
-	/**
-	 * Disconnect this IStructuredTextFoldingProvider from projection viewer
-	 */
-	public void uninstall() {
-		if (isInstalled()) {
-			projectionDisabled();
-
-			fViewer.removeProjectionListener(this);
-			fViewer.removeTextInputListener(this);
-			fViewer = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/registry/AdapterFactoryProviderForJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/registry/AdapterFactoryProviderForJSP.java
deleted file mode 100644
index ec08c15..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/registry/AdapterFactoryProviderForJSP.java
+++ /dev/null
@@ -1,79 +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.ui.internal.registry;
-
-import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapterFactory;
-import org.eclipse.jst.jsp.core.internal.modelhandler.ModelHandlerForJSP;
-import org.eclipse.wst.html.ui.internal.contentoutline.JFaceNodeAdapterFactoryForHTML;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IDocumentTypeHandler;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider;
-import org.eclipse.wst.sse.ui.internal.util.Assert;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-public class AdapterFactoryProviderForJSP implements AdapterFactoryProvider {
-
-	/*
-	 * @see AdapterFactoryProvider#addAdapterFactories(IStructuredModel)
-	 */
-	public void addAdapterFactories(IStructuredModel structuredModel) {
-		// these are the main factories, on model's factory registry
-		addContentBasedFactories(structuredModel);
-		// -------
-		// Must update/add to propagating adapters here too
-		addPropagatingAdapters(structuredModel);
-	}
-
-	protected void addContentBasedFactories(IStructuredModel structuredModel) {
-		FactoryRegistry factoryRegistry = structuredModel.getFactoryRegistry();
-		Assert.isNotNull(factoryRegistry, "Program Error: client caller must ensure model has factory registry"); //$NON-NLS-1$
-		INodeAdapterFactory factory = null;
-		factory = factoryRegistry.getFactoryFor(IJFaceNodeAdapter.class);
-		if (factory == null) {
-			factory = new JFaceNodeAdapterFactoryForHTML(IJFaceNodeAdapter.class, true);
-			factoryRegistry.addFactory(factory);
-		}
-
-		factory = factoryRegistry.getFactoryFor(IJSPTranslation.class);
-		if (factory == null) {
-			factory = new JSPTranslationAdapterFactory();
-			factoryRegistry.addFactory(factory);
-		}
-	}
-
-	protected void addPropagatingAdapters(IStructuredModel structuredModel) {
-
-		if (structuredModel instanceof IDOMModel) {
-			IDOMModel xmlModel = (IDOMModel) structuredModel;
-			IDOMDocument document = xmlModel.getDocument();
-			PropagatingAdapter propagatingAdapter = (PropagatingAdapter) document.getAdapterFor(PropagatingAdapter.class);
-			if (propagatingAdapter != null) {
-				// what to do?
-			}
-		}
-	}
-
-	/*
-	 * @see AdapterFactoryProvider#isFor(ContentTypeDescription)
-	 */
-	public boolean isFor(IDocumentTypeHandler contentTypeDescription) {
-		return (contentTypeDescription instanceof ModelHandlerForJSP);
-	}
-
-	public void reinitializeFactories(IStructuredModel structuredModel) {
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/IStyleConstantsJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/IStyleConstantsJSP.java
deleted file mode 100644
index 2b81bf8..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/IStyleConstantsJSP.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.style;
-
-public interface IStyleConstantsJSP {
-	public static final String JSP_CONTENT = "jsp_content"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/LineStyleProviderForJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/LineStyleProviderForJSP.java
deleted file mode 100644
index 56bcc43..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/LineStyleProviderForJSP.java
+++ /dev/null
@@ -1,224 +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.ui.internal.style;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.provisional.style.AbstractLineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-public class LineStyleProviderForJSP extends AbstractLineStyleProvider implements LineStyleProvider{
-
-	private String fLanguage = null;
-
-	//    private static final String JAVA = "java"; //$NON-NLS-1$
-	//    private static final String[] JAVASCRIPT_LANGUAGE_KEYS = new String[] {
-	// "javascript", "javascript1.0", "javascript1.1_3", "javascript1.2",
-	// "javascript1.3", "javascript1.4", "javascript1.5", "javascript1.6",
-	// "jscript", "sashscript" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	// //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$
-	// //$NON-NLS-9$ //$NON-NLS-10$
-
-	public LineStyleProviderForJSP() {
-		super();
-	}
-
-	protected TextAttribute getAttributeFor(ITextRegion region) {
-		/**
-		 * a method to centralize all the "sytle rules" for regions
-		 */
-		TextAttribute result = null;
-		// not sure why this is coming through null, but just to catch it
-		if (region == null) {
-			result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.CDATA_TEXT);
-		}
-		else {
-
-			if (result == null) {
-				String type = region.getType();
-				if ((type == DOMJSPRegionContexts.JSP_SCRIPTLET_OPEN) || (type == DOMJSPRegionContexts.JSP_DECLARATION_OPEN) || (type == DOMJSPRegionContexts.JSP_EXPRESSION_OPEN) || (type == DOMJSPRegionContexts.JSP_DIRECTIVE_OPEN) || (type == DOMJSPRegionContexts.JSP_DIRECTIVE_CLOSE) || (type == DOMJSPRegionContexts.JSP_CLOSE)) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-				}
-				else if (type == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME || type == DOMJSPRegionContexts.JSP_ROOT_TAG_NAME) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_NAME);
-				}
-				else if ((type == DOMJSPRegionContexts.JSP_COMMENT_OPEN) || (type == DOMJSPRegionContexts.JSP_COMMENT_CLOSE)) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.COMMENT_BORDER);
-				}
-				else if (type == DOMJSPRegionContexts.JSP_COMMENT_TEXT) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.COMMENT_TEXT);
-				}
-				// ============ These are in common with XML --- (for XML form
-				// of tags)
-				//              Note: this assume's this provider is only called for
-				//              true JSP Nodes. If its called for others, then this will
-				//              cause their tag names to be highlighted too!
-				//              Further checks could be done to prevent that, but doesn't
-				//              seem worth it, since if adpaters factories are working
-				// right,
-				//              then wouldn't be needed.
-				else if (type == DOMRegionContext.XML_TAG_NAME) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_NAME);
-				}
-				else if ((type == DOMRegionContext.XML_TAG_OPEN) || (type == DOMRegionContext.XML_END_TAG_OPEN) || (type == DOMRegionContext.XML_TAG_CLOSE) || (type == DOMRegionContext.XML_EMPTY_TAG_CLOSE)) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_BORDER);
-				}
-				else if (type == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_ATTRIBUTE_NAME);
-				}
-				else if ((type == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) || (type == DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_DQUOTE) || (type == DOMJSPRegionContexts.XML_TAG_ATTRIBUTE_VALUE_SQUOTE)) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-				}
-				else if (type == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS);
-				}
-
-				// DMW: added 9/1/2002 Undefined color may need addjustment :)
-				else if (type == DOMRegionContext.UNDEFINED)
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.XML_CONTENT);
-
-				else if (type == DOMRegionContext.WHITE_SPACE)
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.XML_CONTENT);
-				// DMW added 8/30/2002 -- should provide JSP specific
-				// preference for "custom tag content" (both tag dependent,
-				// BLOCKED_TEXT, and not, XML CONTENT)
-				else if (type == DOMRegionContext.XML_CONTENT)
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.XML_CONTENT);
-				else if (type == DOMRegionContext.BLOCK_TEXT)
-					result = (TextAttribute) getTextAttributes().get(IStyleConstantsXML.CDATA_TEXT);
-			}
-		}
-		// default, return null to signal "not handled"
-		// in which case, other factories should be tried
-		return result;
-	}
-
-
-	protected IPreferenceStore getColorPreferences() {
-		return JSPUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	protected void loadColors() {
-		addTextAttribute(IStyleConstantsXML.TAG_NAME);
-		addTextAttribute(IStyleConstantsXML.TAG_BORDER);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_NAME);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS);
-		addTextAttribute(IStyleConstantsXML.COMMENT_BORDER);
-		addTextAttribute(IStyleConstantsXML.COMMENT_TEXT);
-		addTextAttribute(IStyleConstantsXML.CDATA_BORDER);
-		addTextAttribute(IStyleConstantsXML.CDATA_TEXT);
-		addTextAttribute(IStyleConstantsXML.DECL_BORDER);
-		addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID);
-		addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF);
-		addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF);
-		addTextAttribute(IStyleConstantsXML.DOCTYPE_NAME);
-		addTextAttribute(IStyleConstantsXML.PI_CONTENT);
-		addTextAttribute(IStyleConstantsXML.PI_BORDER);
-		addTextAttribute(IStyleConstantsXML.XML_CONTENT);
-		addTextAttribute(IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-	}
-
-	protected void handlePropertyChange(PropertyChangeEvent event) {
-		String styleKey = null;
-
-		if (event != null) {
-			String prefKey = event.getProperty();
-			// check if preference changed is a style preference
-			if (IStyleConstantsXML.TAG_NAME.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_NAME;
-			}
-			else if (IStyleConstantsXML.TAG_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_BORDER;
-			}
-			else if (IStyleConstantsXML.TAG_ATTRIBUTE_NAME.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_NAME;
-			}
-			else if (IStyleConstantsXML.TAG_ATTRIBUTE_VALUE.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_VALUE;
-			}
-			else if (IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS;
-			}
-			else if (IStyleConstantsXML.COMMENT_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.COMMENT_BORDER;
-			}
-			else if (IStyleConstantsXML.COMMENT_TEXT.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.COMMENT_TEXT;
-			}
-			else if (IStyleConstantsXML.CDATA_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.CDATA_BORDER;
-			}
-			else if (IStyleConstantsXML.CDATA_TEXT.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.CDATA_TEXT;
-			}
-			else if (IStyleConstantsXML.DECL_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DECL_BORDER;
-			}
-			else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID;
-			}
-			else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF;
-			}
-			else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF;
-			}
-			else if (IStyleConstantsXML.DOCTYPE_NAME.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DOCTYPE_NAME;
-			}
-			else if (IStyleConstantsXML.PI_CONTENT.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.PI_CONTENT;
-			}
-			else if (IStyleConstantsXML.PI_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.PI_BORDER;
-			}
-			else if (IStyleConstantsXML.XML_CONTENT.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.XML_CONTENT;
-			}
-			else if (IStyleConstantsHTML.SCRIPT_AREA_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsHTML.SCRIPT_AREA_BORDER;
-			}
-		}
-
-		if (styleKey != null) {
-			// overwrite style preference with new value
-			addTextAttribute(styleKey);
-			super.handlePropertyChange(event);
-		}
-	}
-
-	/**
-	 * Returns the language.
-	 * 
-	 * @return String
-	 */
-	public String getLanguage() {
-		return fLanguage;
-	}
-
-	/**
-	 * Sets the language.
-	 * 
-	 * @param language
-	 *            The language to set
-	 */
-	public void setLanguage(String language) {
-		this.fLanguage = language;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/IStyleConstantsJSPJava.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/IStyleConstantsJSPJava.java
deleted file mode 100644
index 9725028..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/IStyleConstantsJSPJava.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.ui.internal.style.java;
-
-public interface IStyleConstantsJSPJava {
-	String JAVA_KEYWORD = "keyword"; //$NON-NLS-1$
-	String JAVA_SINGLE_LINE_COMMENT = "single_line_comment"; //$NON-NLS-1$
-	String JAVA_STRING = "string"; //$NON-NLS-1$
-	String JAVA_DEFAULT = "default"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaCodeScanner.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaCodeScanner.java
deleted file mode 100644
index 528ed65..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaCodeScanner.java
+++ /dev/null
@@ -1,106 +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.ui.internal.style.java;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.rules.EndOfLineRule;
-import org.eclipse.jface.text.rules.IRule;
-import org.eclipse.jface.text.rules.IToken;
-import org.eclipse.jface.text.rules.MultiLineRule;
-import org.eclipse.jface.text.rules.SingleLineRule;
-import org.eclipse.jface.text.rules.Token;
-import org.eclipse.jface.text.rules.WordRule;
-
-/**
- * A Java code scanner.
- */
-class JavaCodeScanner extends org.eclipse.jface.text.rules.RuleBasedScanner {
-	private IToken fKeywordToken;
-	private IToken fTypeToken;
-	private IToken fStringToken;
-	private IToken fSingleLineCommentToken;
-	private IToken fDefaultToken;
-
-	private static String[] fgKeywords = {"abstract", //$NON-NLS-1$
-				"break", //$NON-NLS-1$
-				"case", "catch", "class", "continue", //$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				"default", "do", //$NON-NLS-2$//$NON-NLS-1$
-				"else", "extends", //$NON-NLS-2$//$NON-NLS-1$
-				"final", "finally", "for", //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				"if", "implements", "import", "instanceof", "interface", //$NON-NLS-5$//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				"native", "new", //$NON-NLS-2$//$NON-NLS-1$
-				"package", "private", "protected", "public", //$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				"return", //$NON-NLS-1$
-				"static", "super", "switch", "synchronized", //$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				"this", "throw", "throws", "transient", "try", //$NON-NLS-5$//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				"volatile", //$NON-NLS-1$
-				"while", //$NON-NLS-1$
-				"strictfp",//$NON-NLS-1$
-	};
-	private static String[] fgTypes = {"void", "boolean", "char", "byte", "short", "int", "long", "float", "double"};//$NON-NLS-9$//$NON-NLS-8$//$NON-NLS-7$//$NON-NLS-6$//$NON-NLS-5$//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-	private static String[] fgConstants = {"false", "null", "true"};//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-
-	/**
-	 * Creates a Java code scanner
-	 */
-	public JavaCodeScanner() {
-		super();
-	}
-	
-	public void initializeRules() {
-		List rules = new ArrayList();
-
-		// Add rule for multiple line comments.
-		rules.add(new MultiLineRule("/*", "*/", fSingleLineCommentToken));//$NON-NLS-1$ //$NON-NLS-2$
-
-		// Add rule for single line comments.
-		rules.add(new EndOfLineRule("//", fSingleLineCommentToken));//$NON-NLS-1$
-
-		// Add rule for strings and character constants.
-		rules.add(new SingleLineRule("\"", "\"", fStringToken, '\\'));//$NON-NLS-2$//$NON-NLS-1$
-		rules.add(new SingleLineRule("'", "'", fStringToken, '\\'));//$NON-NLS-2$//$NON-NLS-1$
-
-		// Add generic whitespace rule.
-		//rules.add(new WhitespaceRule(new JavaWhitespaceDetector()));
-
-		// Add word rule for keywords, types, and constants.
-		WordRule wordRule = new WordRule(new JavaWordDetector(), fDefaultToken);
-		for (int i = 0; i < fgKeywords.length; i++)
-			wordRule.addWord(fgKeywords[i], fKeywordToken);
-		for (int i = 0; i < fgTypes.length; i++)
-			wordRule.addWord(fgTypes[i], fTypeToken);
-		for (int i = 0; i < fgConstants.length; i++)
-			wordRule.addWord(fgConstants[i], fTypeToken);
-		rules.add(wordRule);
-
-
-		IRule[] result = new IRule[rules.size()];
-		rules.toArray(result);
-		setRules(result);
-	}
-	
-	public void setTokenData(String tokenKey, Object data) {
-		if (tokenKey == IStyleConstantsJSPJava.JAVA_KEYWORD) {
-			fKeywordToken = new Token(data);
-			fTypeToken = new Token(data);
-		} else if (tokenKey == IStyleConstantsJSPJava.JAVA_STRING) {
-			fStringToken = new Token(data);
-		} else if (tokenKey == IStyleConstantsJSPJava.JAVA_SINGLE_LINE_COMMENT) {
-			fSingleLineCommentToken = new Token(data);
-		} else if (tokenKey == IStyleConstantsJSPJava.JAVA_DEFAULT) {
-			fDefaultToken = new Token(data);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaColorProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaColorProvider.java
deleted file mode 100644
index d943561..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaColorProvider.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.ui.internal.style.java;
-
-import org.eclipse.jdt.ui.PreferenceConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * Colors used in the Java editor
- */
-public class JavaColorProvider {
-	
-	// people should not be setting these, even though they are currently not final
-	public static RGB MULTI_LINE_COMMENT = new RGB(128, 0, 0);
-	public static RGB SINGLE_LINE_COMMENT = new RGB(128, 128, 0);
-	public static RGB KEYWORD = new RGB(0, 0, 128);
-	public static RGB TYPE = new RGB(0, 0, 128);
-	public static RGB STRING = new RGB(0, 128, 0);
-	public static RGB DEFAULT = new RGB(0, 0, 0);
-	public static RGB JAVADOC_KEYWORD = new RGB(0, 128, 0);
-	public static RGB JAVADOC_TAG = new RGB(128, 128, 128);
-	public static RGB JAVADOC_LINK = new RGB(128, 128, 128);
-	public static RGB JAVADOC_DEFAULT = new RGB(0, 128, 128);
-	
-	public static int MULTI_LINE_COMMENT_BOLD = SWT.NORMAL;
-	public static int SINGLE_LINE_COMMENT_BOLD = SWT.NORMAL;
-	public static int KEYWORD_BOLD = SWT.BOLD;
-	public static int TYPE_BOLD = SWT.BOLD;
-	public static int STRING_BOLD = SWT.NORMAL;
-	public static int DEFAULT_BOLD = SWT.NORMAL;
-	public static int JAVADOC_KEYWORD_BOLD = SWT.BOLD;
-	public static int JAVADOC_TAG_BOLD = SWT.NORMAL;
-	public static int JAVADOC_LINK_BOLD = SWT.NORMAL;
-	public static int JAVADOC_DEFAULT_BOLD = SWT.NORMAL;
-	
-	private static JavaColorProvider fInstance = null;
-	
-	public static JavaColorProvider getInstance() {
-		if (fInstance == null) {
-			fInstance = new JavaColorProvider();
-		}
-		return fInstance;
-	}
-	
-	/**
-	 * Use colors from JDT plugin
-	 */
-	public void loadJavaColors() {
-		IPreferenceStore jdtStore = PreferenceConstants.getPreferenceStore();
-		MULTI_LINE_COMMENT = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR);
-		SINGLE_LINE_COMMENT = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR);
-		KEYWORD = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR);
-		TYPE = KEYWORD;
-		STRING = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_STRING_COLOR);
-		DEFAULT = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR);
-		JAVADOC_KEYWORD = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR);
-		JAVADOC_TAG = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR);
-		JAVADOC_LINK = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR);
-		JAVADOC_DEFAULT = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR);
-		
-		MULTI_LINE_COMMENT_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		SINGLE_LINE_COMMENT_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		KEYWORD_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		TYPE_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		STRING_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_STRING_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		DEFAULT_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		JAVADOC_TAG_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		JAVADOC_LINK_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		JAVADOC_DEFAULT_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD) ? SWT.BOLD : SWT.NORMAL;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaWhitespaceDetector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaWhitespaceDetector.java
deleted file mode 100644
index 381893e..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaWhitespaceDetector.java
+++ /dev/null
@@ -1,26 +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.ui.internal.style.java;
-
-
-
-/**
- * A java aware white space detector.
- */
-public class JavaWhitespaceDetector implements org.eclipse.jface.text.rules.IWhitespaceDetector {
-
-	/**
-	 * @see org.eclipse.jface.text.rules.IWhitespaceDetector#isWhitespace
-	 */
-	public boolean isWhitespace(char c) {
-		return Character.isWhitespace(c);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaWordDetector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaWordDetector.java
deleted file mode 100644
index 77fe762..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/JavaWordDetector.java
+++ /dev/null
@@ -1,32 +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.ui.internal.style.java;
-
-
-/**
- * A Java aware word detector.
- */
-public class JavaWordDetector implements org.eclipse.jface.text.rules.IWordDetector {
-
-	/**
-	 * @see org.eclipse.jface.text.rules.IWordDetector#isWordIdentifierPart
-	 */
-	public boolean isWordPart(char c) {
-		return Character.isJavaIdentifierPart(c);
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.rules.IWordDetector#isWordIdentifierStart
-	 */
-	public boolean isWordStart(char c) {
-		return Character.isJavaIdentifierStart(c);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/LineStyleProviderForJava.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/LineStyleProviderForJava.java
deleted file mode 100644
index a10936a..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/java/LineStyleProviderForJava.java
+++ /dev/null
@@ -1,347 +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.ui.internal.style.java;
-
-import java.util.Collection;
-import java.util.HashMap;
-
-import org.eclipse.jdt.ui.PreferenceConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.jface.text.rules.IToken;
-import org.eclipse.jface.text.rules.Token;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.style.IStyleConstantsJSP;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper;
-import org.eclipse.wst.sse.ui.internal.provisional.style.Highlighter;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-// Note: many of the methods in this class were based on (or copied from) those
-// found in the example Java Editor
-public class LineStyleProviderForJava implements LineStyleProvider{
-	private class PropertyChangeListener implements IPropertyChangeListener {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			// have to do it this way so others can override the method
-			handlePropertyChange(event);
-		}
-	}
-
-	private IDocument fDocument;
-	private Highlighter fHighlighter;
-	private boolean fIsInitialized = false;
-	private PropertyChangeListener fPreferenceListener = new PropertyChangeListener();
-	/** The scanner it uses */
-	private JavaCodeScanner fScanner;
-	/** Contains all text attributes pretaining to this line style provider */
-	private HashMap fTextAttributes = null;
-
-	public LineStyleProviderForJava() {
-		super();
-		fScanner = new JavaCodeScanner();
-	}
-
-	/**
-	 * Adds style information to the given text presentation.
-	 *
-	 * @param presentation the text presentation to be extended
-	 * @param offset the offset of the range to be styled
-	 * @param length the length of the range to be styled
-	 * @param attr the attribute describing the style of the range to be styled
-	 */
-	private void addRange(Collection presentation, int offset, int length, TextAttribute attr) {
-		// support for user defined backgroud for JSP scriptlet regions
-		String styleString = JSPUIPlugin.getDefault().getPreferenceStore().getString(IStyleConstantsJSP.JSP_CONTENT);
-		String[] prefs = ColorHelper.unpackStylePreferences(styleString);
-		Color bgColor = (prefs != null && prefs.length == 3 && prefs[1].startsWith("#") && Display.getCurrent() != null) //$NON-NLS-1$
-							? new Color(Display.getCurrent(), ColorHelper.toRGB(prefs[1]))
-							: attr.getBackground();
-							
-		presentation.add(new StyleRange(offset, length, attr.getForeground(), bgColor, attr.getStyle()));
-	}
-
-	/**
-	 * Looks up the colorKey in the preference store and adds the style
-	 * information to list of TextAttributes
-	 * 
-	 * @param colorKey
-	 */
-	private void addTextAttribute(String colorKey) {
-		if (getColorPreferences() != null) {
-			String prefString = getColorPreferences().getString(colorKey);
-			String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
-			if (stylePrefs != null) {
-				RGB foreground = ColorHelper.toRGB(stylePrefs[0]);
-				RGB background = ColorHelper.toRGB(stylePrefs[1]);
-				boolean bold = Boolean.valueOf(stylePrefs[2]).booleanValue();
-				getTextAttributes().put(colorKey, createTextAttribute(foreground, background, bold));
-			}
-		}
-	}
-	
-	/**
-	 * Looks up the colorKey in the preference store and adds the style
-	 * information to list of TextAttributes
-	 * 
-	 * @param colorKey
-	 */
-	private void addJavaTextAttribute(String colorKey) {
-		IPreferenceStore store = getJavaColorPreferences();
-		if (store != null && colorKey != null) { 
-			TextAttribute ta = null;
-			if (colorKey == IStyleConstantsJSPJava.JAVA_KEYWORD) {
-				// keyword
-				RGB foreground = PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR);
-				boolean bold = store.getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD);
-				boolean italics = store.getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC);
-				ta = createTextAttribute(foreground, null, bold, italics);
-			} else if (colorKey == IStyleConstantsJSPJava.JAVA_STRING) {
-				// string
-				RGB foreground = PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_STRING_COLOR);
-				boolean bold = store.getBoolean(PreferenceConstants.EDITOR_STRING_BOLD);
-				boolean italics = store.getBoolean(PreferenceConstants.EDITOR_STRING_ITALIC);
-				ta = createTextAttribute(foreground, null, bold, italics);
-			} else if (colorKey == IStyleConstantsJSPJava.JAVA_SINGLE_LINE_COMMENT) {
-				// single line comment
-				RGB foreground = PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR);
-				boolean bold = store.getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD);
-				boolean italics = store.getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_ITALIC);
-				ta = createTextAttribute(foreground, null, bold, italics);
-			} else if (colorKey == IStyleConstantsJSPJava.JAVA_DEFAULT) {
-				// default
-				RGB foreground = PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR);
-				boolean bold = store.getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD);
-				boolean italics = store.getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC);
-				ta = createTextAttribute(foreground, null, bold, italics);
-			}
-			if (ta != null) {
-				getTextAttributes().put(colorKey, ta);
-				fScanner.setTokenData(colorKey, ta);
-			}
-		}
-	}
-
-	private TextAttribute createTextAttribute(RGB foreground, RGB background, boolean bold) {
-		return new TextAttribute((foreground != null) ? EditorUtility.getColor(foreground) : null, (background != null) ? EditorUtility.getColor(background) : null, bold ? SWT.BOLD : SWT.NORMAL);
-	}
-	
-	private TextAttribute createTextAttribute(RGB foreground, RGB background, boolean bold, boolean italics) {
-		int style = bold ? SWT.BOLD : SWT.NORMAL;
-		if (italics)
-			style |= SWT.ITALIC;
-		
-		return new TextAttribute((foreground != null) ? EditorUtility.getColor(foreground) : null, (background != null) ? EditorUtility.getColor(background) : null, style);
-	}
-	
-	/**
-	 * Returns the hashtable containing all the text attributes for this line
-	 * style provider. Lazily creates a hashtable if one has not already been
-	 * created.
-	 * 
-	 * @return
-	 */
-	private HashMap getTextAttributes() {
-		if (fTextAttributes == null) {
-			fTextAttributes = new HashMap();
-			loadColors();
-		}
-		return fTextAttributes;
-	}
-	
-	/**
-	 * Returns a text attribute encoded in the given token. If the token's
-	 * data is not <code>null</code> and a text attribute it is assumed that
-	 * it is the encoded text attribute. It returns the default text attribute
-	 * if there is no encoded text attribute found.
-	 *
-	 * @param token the token whose text attribute is to be determined
-	 * @return the token's text attribute
-	 */
-	private TextAttribute getTokenTextAttribute(IToken token) {
-		TextAttribute ta = null;
-		
-		Object data = token.getData();
-		if (data instanceof TextAttribute)
-			ta = (TextAttribute)data;
-		else {
-			ta = (TextAttribute)getTextAttributes().get(IStyleConstantsJSPJava.JAVA_DEFAULT);
-		}
-		return ta; 
-	}
-	
-	public void init(IStructuredDocument document, Highlighter highlighter) {
-		fDocument = document;
-		fHighlighter = highlighter;
-		
-		if (fIsInitialized)
-			return;
-
-		registerPreferenceListener();
-
-		fIsInitialized = true;
-	}
-
-	private void loadColors() {
-		addTextAttribute(IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_NAME);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-		
-		addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_KEYWORD);
-		addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_STRING);
-		addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_SINGLE_LINE_COMMENT);
-		addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_DEFAULT);
-		
-		fScanner.initializeRules();
-	}
-
-	protected void handlePropertyChange(PropertyChangeEvent event) {
-		String styleKey = null;
-		String javaStyleKey = null;
-
-		if (event != null) {
-			String prefKey = event.getProperty();
-			// check if preference changed is a style preference
-			if (IStyleConstantsHTML.SCRIPT_AREA_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsHTML.SCRIPT_AREA_BORDER;
-			}
-			else if (IStyleConstantsXML.TAG_ATTRIBUTE_NAME.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_NAME;
-			}
-			else if (IStyleConstantsXML.TAG_ATTRIBUTE_VALUE.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_VALUE;
-			} else if (PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR.equals(prefKey) || (PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD.equals(prefKey))|| (PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC.equals(prefKey))) {
-				javaStyleKey = IStyleConstantsJSPJava.JAVA_KEYWORD;
-			} else if (PreferenceConstants.EDITOR_STRING_COLOR.equals(prefKey) || (PreferenceConstants.EDITOR_STRING_BOLD.equals(prefKey))|| (PreferenceConstants.EDITOR_STRING_ITALIC.equals(prefKey))) {
-				javaStyleKey = IStyleConstantsJSPJava.JAVA_STRING;
-			} else if (PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR.equals(prefKey) || (PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD.equals(prefKey))|| (PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_ITALIC.equals(prefKey))) {
-				javaStyleKey = IStyleConstantsJSPJava.JAVA_SINGLE_LINE_COMMENT;
-			} else if (PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR.equals(prefKey) || (PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD.equals(prefKey))|| (PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC.equals(prefKey))) {
-				javaStyleKey = IStyleConstantsJSPJava.JAVA_DEFAULT;
-			}
-		}
-
-		if (styleKey != null) {
-			// overwrite style preference with new value
-			addTextAttribute(styleKey);
-		}
-		if (javaStyleKey != null) {
-			// overwrite style preference with new value
-			addJavaTextAttribute(javaStyleKey);
-			fScanner.initializeRules();
-		}
-		if (styleKey != null || javaStyleKey != null) {
-			// force a full update of the text viewer
-			fHighlighter.refreshDisplay();
-		}
-	}
-
-	public boolean prepareRegions(ITypedRegion typedRegion, int ssssrequestedStart, int ssssrequestedLength, Collection holdResults) {
-		boolean result = true;
-		try {
-			// ideally, eventually, we'll have a "virtualDocument" we can 
-			// refer to, but for now ... we'll simple rescan the one region.
-			// use simple adjustment (since "sub-content" starts at 0
-			int offsetAdjustment = typedRegion.getOffset();
-			String content = fDocument.get(typedRegion.getOffset(), typedRegion.getLength());
-			IDocument document = new Document(content);
-
-			int lastStart = 0;
-			int length = 0;
-			IToken lastToken = Token.UNDEFINED;
-
-			int remainingLength = typedRegion.getLength();
-			fScanner.setRange(document, lastStart, remainingLength);
-
-			while (true) {
-
-				IToken token = fScanner.nextToken();
-
-				if (token.isEOF()) {
-					if (!lastToken.isUndefined() && length != 0)
-						addRange(holdResults, lastStart + offsetAdjustment, length, getTokenTextAttribute(lastToken));
-					break;
-				}
-
-				if (token.isWhitespace()) {
-					length += fScanner.getTokenLength();
-					continue;
-				}
-
-				if (lastToken.isUndefined()) {
-					lastToken = token;
-					length += fScanner.getTokenLength();
-					continue;
-				}
-
-				if (token != lastToken) {
-					addRange(holdResults, lastStart + offsetAdjustment, length, getTokenTextAttribute(lastToken));
-					lastToken = token;
-					lastStart = fScanner.getTokenOffset();
-					length = fScanner.getTokenLength();
-					continue;
-				}
-
-				length += fScanner.getTokenLength();
-			}
-		}
-		catch (BadLocationException e) {
-			// shouldn't happen, but we don't want it to stop other highlighting, if it does.
-			result = false;
-		}
-		return result;
-	}
-	
-	private void registerPreferenceListener() {
-		getColorPreferences().addPropertyChangeListener(fPreferenceListener);
-		getJavaColorPreferences().addPropertyChangeListener(fPreferenceListener);
-	}
-	
-	public void release() {
-		unregisterPreferenceManager();
-		if (fTextAttributes != null) {
-			fTextAttributes.clear();
-			fTextAttributes = null;
-		}
-	}
-
-	private void unregisterPreferenceManager() {
-		getColorPreferences().removePropertyChangeListener(fPreferenceListener);
-		getJavaColorPreferences().removePropertyChangeListener(fPreferenceListener);
-	}
-	
-	private IPreferenceStore getColorPreferences() {
-		return JSPUIPlugin.getDefault().getPreferenceStore();
-	}
-	
-	private IPreferenceStore getJavaColorPreferences() {
-		return PreferenceConstants.getPreferenceStore();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/IStyleConstantsJSPEL.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/IStyleConstantsJSPEL.java
deleted file mode 100644
index 5198842..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/IStyleConstantsJSPEL.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-
-package org.eclipse.jst.jsp.ui.internal.style.jspel;
-
-public interface IStyleConstantsJSPEL {
-	String EL_KEYWORD = "keyword"; //$NON-NLS-1$
-	String EL_DEFAULT = "default"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELCodeScanner.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELCodeScanner.java
deleted file mode 100644
index e7f7cc9..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELCodeScanner.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.style.jspel;
-
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.rules.IRule;
-import org.eclipse.jface.text.rules.IToken;
-import org.eclipse.jface.text.rules.Token;
-import org.eclipse.jface.text.rules.WhitespaceRule;
-import org.eclipse.jface.text.rules.WordRule;
-
-/**
- * A Java code scanner.
- */
-public class JSPELCodeScanner extends org.eclipse.jface.text.rules.RuleBasedScanner {
-	private IToken fKeywordToken;
-	private IToken fTypeToken;
-	private IToken fDefaultToken;
-	
-	private static String[] fgKeywords = {
-				"and", //$NON-NLS-1$
-				"did", //$NON-NLS-1$
-				"div", //$NON-NLS-1$
-				"empty", //$NON-NLS-1$
-				"eq", //$NON-NLS-1$
-				"ge", //$NON-NLS-1$
-				"gt", //$NON-NLS-1$
-				"or", //$NON-NLS-1$
-				"le", //$NON-NLS-1$
-				"lt", //$NON-NLS-1$
-				"mod", //$NON-NLS-1$
- 				"ne", //$NON-NLS-1$
- 				"not"  //$NON-NLS-1$
-	};
-	private static String[] fgConstants = {"false", "true"};//$NON-NLS-2$//$NON-NLS-1$
-
-	/**
-	 * Creates a Java code scanner
-	 */
-	public JSPELCodeScanner() {
-		super();
-	}
-	
-	public void initializeRules() {
-		List rules = new ArrayList();
-
-		// Add generic whitespace rule.
-		rules.add(new WhitespaceRule(new JSPELWhitespaceDetector()));
-
-		// Add word rule for keywords, types, and constants.
-		WordRule wordRule = new WordRule(new JSPELWordDetector(), fDefaultToken);
-		for (int i = 0; i < fgKeywords.length; i++)
-			wordRule.addWord(fgKeywords[i], fKeywordToken);
-		for (int i = 0; i < fgConstants.length; i++)
-			wordRule.addWord(fgConstants[i], fTypeToken);
-		rules.add(wordRule);
-
-		IRule[] result = new IRule[rules.size()];
-		rules.toArray(result);
-		setRules(result);
-	}
-	
-	public void setTokenData(String tokenKey, Object data) {
-		if (tokenKey == IStyleConstantsJSPEL.EL_KEYWORD) {
-			fKeywordToken = new Token(data);
-			fTypeToken = new Token(data);
-		} else if (tokenKey == IStyleConstantsJSPEL.EL_DEFAULT) {
-			fDefaultToken = new Token(data);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELColorProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELColorProvider.java
deleted file mode 100644
index 716071f..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELColorProvider.java
+++ /dev/null
@@ -1,102 +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.ui.internal.style.jspel;
-
-import org.eclipse.jdt.ui.PreferenceConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * Colors used in the Java editor
- */
-public class JSPELColorProvider {
-	
-	// people should not be setting these, even though they are currently not final
-	public static RGB MULTI_LINE_COMMENT = new RGB(128, 0, 0);
-	public static RGB SINGLE_LINE_COMMENT = new RGB(128, 128, 0);
-	public static RGB KEYWORD = new RGB(0, 0, 128);
-	public static RGB TYPE = new RGB(0, 0, 128);
-	public static RGB STRING = new RGB(0, 128, 0);
-	public static RGB DEFAULT = new RGB(0, 0, 0);
-	public static RGB JAVADOC_KEYWORD = new RGB(0, 128, 0);
-	public static RGB JAVADOC_TAG = new RGB(128, 128, 128);
-	public static RGB JAVADOC_LINK = new RGB(128, 128, 128);
-	public static RGB JAVADOC_DEFAULT = new RGB(0, 128, 128);
-	
-	public static int MULTI_LINE_COMMENT_BOLD = SWT.NORMAL;
-	public static int SINGLE_LINE_COMMENT_BOLD = SWT.NORMAL;
-	public static int KEYWORD_BOLD = SWT.BOLD;
-	public static int TYPE_BOLD = SWT.BOLD;
-	public static int STRING_BOLD = SWT.NORMAL;
-	public static int DEFAULT_BOLD = SWT.NORMAL;
-	public static int JAVADOC_KEYWORD_BOLD = SWT.BOLD;
-	public static int JAVADOC_TAG_BOLD = SWT.NORMAL;
-	public static int JAVADOC_LINK_BOLD = SWT.NORMAL;
-	public static int JAVADOC_DEFAULT_BOLD = SWT.NORMAL;
-	
-	/**
-	 * @deprecated all editors use same
-	 */
-	public static RGB EDITOR_BACKGROUND = new RGB(255, 255, 255);
-	/**
-	 * @deprecated all editors use same
-	 */
-	public static boolean EDITOR_CURRENT_LINE = true;
-	/**
-	 * @deprecated all editors use same
-	 */
-	public static RGB EDITOR_CURRENT_LINE_COLOR = new RGB(128, 128, 128);
-	
-	private static JSPELColorProvider fInstance = null;
-	
-	public static JSPELColorProvider getInstance() {
-		if (fInstance == null) {
-			fInstance = new JSPELColorProvider();
-		}
-		return fInstance;
-	}
-	
-	/**
-	 * Use colors from JDT plugin
-	 */
-	public void loadJavaColors() {
-		
-		IPreferenceStore jdtStore = PreferenceConstants.getPreferenceStore();
-		MULTI_LINE_COMMENT = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_COLOR);
-		SINGLE_LINE_COMMENT = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_COLOR);
-		KEYWORD = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR);
-		TYPE = KEYWORD;
-		STRING = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_STRING_COLOR);
-		DEFAULT = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR);
-		JAVADOC_KEYWORD = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVADOC_KEYWORD_COLOR);
-		JAVADOC_TAG = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVADOC_TAG_COLOR);
-		JAVADOC_LINK = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVADOC_LINKS_COLOR);
-		JAVADOC_DEFAULT = PreferenceConverter.getColor(jdtStore, PreferenceConstants.EDITOR_JAVADOC_DEFAULT_COLOR);
-		
-		MULTI_LINE_COMMENT_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_MULTI_LINE_COMMENT_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		SINGLE_LINE_COMMENT_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_SINGLE_LINE_COMMENT_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		KEYWORD_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		TYPE_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		STRING_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_STRING_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		DEFAULT_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		JAVADOC_TAG_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVADOC_TAG_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		JAVADOC_LINK_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVADOC_LINKS_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		JAVADOC_DEFAULT_BOLD = jdtStore.getBoolean(PreferenceConstants.EDITOR_JAVADOC_DEFAULT_BOLD) ? SWT.BOLD : SWT.NORMAL;
-		
-//		EDITOR_BACKGROUND = new RGB(255, 255, 255);
-		
-//		IPreferenceStore sseStore = SSEUIPlugin.getDefault().getPreferenceStore();
-//		EDITOR_CURRENT_LINE = sseStore.getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE);
-//		EDITOR_CURRENT_LINE_COLOR = PreferenceConverter.getColor(sseStore, AbstractDecoratedTextEditorPreferenceConstants.EDITOR_CURRENT_LINE_COLOR);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELWhitespaceDetector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELWhitespaceDetector.java
deleted file mode 100644
index 5c2345d..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELWhitespaceDetector.java
+++ /dev/null
@@ -1,26 +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.ui.internal.style.jspel;
-
-
-
-/**
- * A java aware white space detector.
- */
-public class JSPELWhitespaceDetector implements org.eclipse.jface.text.rules.IWhitespaceDetector {
-
-	/**
-	 * @see org.eclipse.jface.text.rules.IWhitespaceDetector#isWhitespace
-	 */
-	public boolean isWhitespace(char c) {
-		return Character.isWhitespace(c);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELWordDetector.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELWordDetector.java
deleted file mode 100644
index 4676e23..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/JSPELWordDetector.java
+++ /dev/null
@@ -1,32 +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.ui.internal.style.jspel;
-
-
-/**
- * A Java aware word detector.
- */
-public class JSPELWordDetector implements org.eclipse.jface.text.rules.IWordDetector {
-
-	/**
-	 * @see org.eclipse.jface.text.rules.IWordDetector#isWordIdentifierPart
-	 */
-	public boolean isWordPart(char c) {
-		return Character.isJavaIdentifierPart(c);
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.rules.IWordDetector#isWordIdentifierStart
-	 */
-	public boolean isWordStart(char c) {
-		return Character.isJavaIdentifierStart(c);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/LineStyleProviderForJSPEL.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/LineStyleProviderForJSPEL.java
deleted file mode 100644
index 8f000a0..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/style/jspel/LineStyleProviderForJSPEL.java
+++ /dev/null
@@ -1,333 +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.ui.internal.style.jspel;
-
-import java.util.Collection;
-import java.util.HashMap;
-
-import org.eclipse.jdt.ui.PreferenceConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.jface.text.rules.IToken;
-import org.eclipse.jface.text.rules.Token;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.style.IStyleConstantsJSP;
-import org.eclipse.jst.jsp.ui.internal.style.java.IStyleConstantsJSPJava;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper;
-import org.eclipse.wst.sse.ui.internal.provisional.style.Highlighter;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-// Note: many of the methods in this class were based on (or copied from)
-// those
-// found in the example Java Editor
-public class LineStyleProviderForJSPEL implements LineStyleProvider {
-	private class PropertyChangeListener implements IPropertyChangeListener {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			// have to do it this way so others can override the method
-			handlePropertyChange(event);
-		}
-	}
-
-	private IDocument fDocument;
-	private Highlighter fHighlighter;
-	private boolean fIsInitialized = false;
-	private PropertyChangeListener fPreferenceListener = new PropertyChangeListener();
-	/** The scanner it uses */
-	private JSPELCodeScanner fScanner;
-	/** Contains all text attributes pretaining to this line style provider */
-	private HashMap fTextAttributes = null;
-
-	public LineStyleProviderForJSPEL() {
-		super();
-		fScanner = new JSPELCodeScanner();
-	}
-
-	/**
-	 * Adds style information to the given text presentation.
-	 * 
-	 * @param presentation
-	 *            the text presentation to be extended
-	 * @param offset
-	 *            the offset of the range to be styled
-	 * @param length
-	 *            the length of the range to be styled
-	 * @param attr
-	 *            the attribute describing the style of the range to be styled
-	 */
-	private void addRange(Collection presentation, int offset, int length, TextAttribute attr) {
-		// support for user defined backgroud for JSP scriptlet regions
-		String styleString = JSPUIPlugin.getDefault().getPreferenceStore().getString(IStyleConstantsJSP.JSP_CONTENT);
-		String[] prefs = ColorHelper.unpackStylePreferences(styleString);
-		Color bgColor = (prefs != null && prefs.length == 3 && prefs[1].startsWith("#") && Display.getCurrent() != null) //$NON-NLS-1$
-					? new Color(Display.getCurrent(), ColorHelper.toRGB(prefs[1])) : attr.getBackground();
-
-		presentation.add(new StyleRange(offset, length, attr.getForeground(), bgColor, attr.getStyle()));
-	}
-
-	/**
-	 * Looks up the colorKey in the preference store and adds the style
-	 * information to list of TextAttributes
-	 * 
-	 * @param colorKey
-	 */
-	private void addTextAttribute(String colorKey) {
-		if (getColorPreferences() != null) {
-			String prefString = getColorPreferences().getString(colorKey);
-			String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
-			if (stylePrefs != null) {
-				RGB foreground = ColorHelper.toRGB(stylePrefs[0]);
-				RGB background = ColorHelper.toRGB(stylePrefs[1]);
-				boolean bold = Boolean.valueOf(stylePrefs[2]).booleanValue();
-				getTextAttributes().put(colorKey, createTextAttribute(foreground, background, bold));
-			}
-		}
-	}
-
-	/**
-	 * Looks up the colorKey in the preference store and adds the style
-	 * information to list of TextAttributes
-	 * 
-	 * @param colorKey
-	 */
-	private void addJavaTextAttribute(String colorKey) {
-		IPreferenceStore store = getJavaColorPreferences();
-		if (store != null && colorKey != null) {
-			TextAttribute ta = null;
-			if (colorKey == IStyleConstantsJSPEL.EL_KEYWORD) {
-				// keyword
-				RGB foreground = PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR);
-				boolean bold = store.getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD);
-				boolean italics = store.getBoolean(PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC);
-				ta = createTextAttribute(foreground, null, bold, italics);
-			} else if (colorKey == IStyleConstantsJSPEL.EL_DEFAULT) {
-				// default
-				RGB foreground = PreferenceConverter.getColor(store, PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR);
-				boolean bold = store.getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD);
-				boolean italics = store.getBoolean(PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC);
-				ta = createTextAttribute(foreground, null, bold, italics);
-			}
-			if (ta != null) {
-				getTextAttributes().put(colorKey, ta);
-				fScanner.setTokenData(colorKey, ta);
-			}
-		}
-	}
-
-	private TextAttribute createTextAttribute(RGB foreground, RGB background, boolean bold) {
-		return new TextAttribute((foreground != null) ? EditorUtility.getColor(foreground) : null, (background != null) ? EditorUtility.getColor(background) : null, bold ? SWT.BOLD : SWT.NORMAL);
-	}
-
-	private TextAttribute createTextAttribute(RGB foreground, RGB background, boolean bold, boolean italics) {
-		int style = bold ? SWT.BOLD : SWT.NORMAL;
-		if (italics)
-			style |= SWT.ITALIC;
-
-		return new TextAttribute((foreground != null) ? EditorUtility.getColor(foreground) : null, (background != null) ? EditorUtility.getColor(background) : null, style);
-	}
-
-	/**
-	 * Returns the hashtable containing all the text attributes for this line
-	 * style provider. Lazily creates a hashtable if one has not already been
-	 * created.
-	 * 
-	 * @return
-	 */
-	private HashMap getTextAttributes() {
-		if (fTextAttributes == null) {
-			fTextAttributes = new HashMap();
-			loadColors();
-		}
-		return fTextAttributes;
-	}
-
-	/**
-	 * Returns a text attribute encoded in the given token. If the token's
-	 * data is not <code>null</code> and a text attribute it is assumed that
-	 * it is the encoded text attribute. It returns the default text attribute
-	 * if there is no encoded text attribute found.
-	 * 
-	 * @param token
-	 *            the token whose text attribute is to be determined
-	 * @return the token's text attribute
-	 */
-	private TextAttribute getTokenTextAttribute(IToken token) {
-		TextAttribute ta = null;
-
-		Object data = token.getData();
-		if (data instanceof TextAttribute)
-			ta = (TextAttribute) data;
-		else {
-			ta = (TextAttribute) getTextAttributes().get(IStyleConstantsJSPJava.JAVA_DEFAULT);
-		}
-		return ta;
-	}
-
-	public void init(IStructuredDocument document, Highlighter highlighter) {
-		fDocument = document;
-		fHighlighter = highlighter;
-
-		if (fIsInitialized)
-			return;
-
-		registerPreferenceListener();
-
-		fIsInitialized = true;
-	}
-
-	private void loadColors() {
-		addTextAttribute(IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_NAME);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-
-		addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_KEYWORD);
-		addJavaTextAttribute(IStyleConstantsJSPJava.JAVA_DEFAULT);
-
-		fScanner.initializeRules();
-	}
-
-	protected void handlePropertyChange(PropertyChangeEvent event) {
-		String styleKey = null;
-		String javaStyleKey = null;
-
-		if (event != null) {
-			String prefKey = event.getProperty();
-			// check if preference changed is a style preference
-			if (IStyleConstantsHTML.SCRIPT_AREA_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsHTML.SCRIPT_AREA_BORDER;
-			} else if (IStyleConstantsXML.TAG_ATTRIBUTE_NAME.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_NAME;
-			} else if (IStyleConstantsXML.TAG_ATTRIBUTE_VALUE.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_VALUE;
-			} else if (PreferenceConstants.EDITOR_JAVA_KEYWORD_COLOR.equals(prefKey) || (PreferenceConstants.EDITOR_JAVA_KEYWORD_BOLD.equals(prefKey)) || (PreferenceConstants.EDITOR_JAVA_KEYWORD_ITALIC.equals(prefKey))) {
-				javaStyleKey = IStyleConstantsJSPEL.EL_KEYWORD;
-			} else if (PreferenceConstants.EDITOR_JAVA_DEFAULT_COLOR.equals(prefKey) || (PreferenceConstants.EDITOR_JAVA_DEFAULT_BOLD.equals(prefKey)) || (PreferenceConstants.EDITOR_JAVA_DEFAULT_ITALIC.equals(prefKey))) {
-				javaStyleKey = IStyleConstantsJSPEL.EL_DEFAULT;
-			}
-		}
-
-		if (styleKey != null) {
-			// overwrite style preference with new value
-			addTextAttribute(styleKey);
-		}
-		if (javaStyleKey != null) {
-			// overwrite style preference with new value
-			addJavaTextAttribute(javaStyleKey);
-			fScanner.initializeRules();
-		}
-		if (styleKey != null || javaStyleKey != null) {
-			// force a full update of the text viewer
-			fHighlighter.refreshDisplay();
-		}
-	}
-
-	public boolean prepareRegions(ITypedRegion typedRegion, int ssssrequestedStart, int ssssrequestedLength, Collection holdResults) {
-		boolean result = true;
-		try {
-			// ideally, eventually, we'll have a "virtualDocument" we can
-			// refer to, but for now ... we'll simple rescan the one region.
-			// use simple adjustment (since "sub-content" starts at 0
-			int offsetAdjustment = typedRegion.getOffset();
-			String content = fDocument.get(typedRegion.getOffset(), typedRegion.getLength());
-			IDocument document = new Document(content);
-
-			int lastStart = 0;
-			int length = 0;
-			IToken lastToken = Token.UNDEFINED;
-
-			int remainingLength = typedRegion.getLength();
-			fScanner.setRange(document, lastStart, remainingLength);
-
-			while (true) {
-
-				IToken token = fScanner.nextToken();
-
-				if (token.isEOF()) {
-					if (!lastToken.isUndefined() && length != 0)
-						addRange(holdResults, lastStart + offsetAdjustment, length, getTokenTextAttribute(lastToken));
-					break;
-				}
-
-				if (token.isWhitespace()) {
-					length += fScanner.getTokenLength();
-					continue;
-				}
-
-				if (lastToken.isUndefined()) {
-					lastToken = token;
-					length += fScanner.getTokenLength();
-					continue;
-				}
-
-				if (token != lastToken) {
-					addRange(holdResults, lastStart + offsetAdjustment, length, getTokenTextAttribute(lastToken));
-					lastToken = token;
-					lastStart = fScanner.getTokenOffset();
-					length = fScanner.getTokenLength();
-					continue;
-				}
-
-				length += fScanner.getTokenLength();
-			}
-		} catch (BadLocationException e) {
-			// shouldn't happen, but we don't want it to stop other
-			// highlighting, if it does.
-			result = false;
-		}
-		return result;
-	}
-	
-	private void registerPreferenceListener() {
-		getColorPreferences().addPropertyChangeListener(fPreferenceListener);
-		getJavaColorPreferences().addPropertyChangeListener(fPreferenceListener);
-	}
-	
-	public void release() {
-		unRegisterPreferenceManager();
-		if (fTextAttributes != null) {
-			fTextAttributes.clear();
-			fTextAttributes = null;
-		}
-	}
-
-	private void unRegisterPreferenceManager() {
-		getColorPreferences().removePropertyChangeListener(fPreferenceListener);
-		getJavaColorPreferences().removePropertyChangeListener(fPreferenceListener);
-	}
-
-	private IPreferenceStore getColorPreferences() {
-		return JSPUIPlugin.getDefault().getPreferenceStore();
-	}
-	
-	private IPreferenceStore getJavaColorPreferences() {
-		return PreferenceConstants.getPreferenceStore();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/HTMLPrinter.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/HTMLPrinter.java
deleted file mode 100644
index 25dfb44..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/HTMLPrinter.java
+++ /dev/null
@@ -1,216 +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.ui.internal.taginfo;
-
-
-import java.io.IOException;
-import java.io.Reader;
-import java.net.URL;
-
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTError;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Display;
-
-
-/**
- * Provides a set of convenience methods for creating HTML pages.
- * 
- * Based on org.eclipse.jdt.internal.ui.text.HTMLPrinter
- */
-class HTMLPrinter {
-
-	static RGB BG_COLOR_RGB = null;
-
-	static {
-		final Display display = Display.getDefault();
-		if (display != null && !display.isDisposed()) {
-			try {
-				display.asyncExec(new Runnable() {
-					/*
-					 * @see java.lang.Runnable#run()
-					 */
-					public void run() {
-						BG_COLOR_RGB = display.getSystemColor(SWT.COLOR_INFO_BACKGROUND).getRGB();
-					}
-				});
-			}
-			catch (SWTError err) {
-				// see: https://bugs.eclipse.org/bugs/show_bug.cgi?id=45294
-				if (err.code != SWT.ERROR_DEVICE_DISPOSED)
-					throw err;
-			}
-		}
-	}
-
-	private HTMLPrinter() {
-		// nothing
-	}
-
-	private static String replace(String text, char c, String s) {
-
-		int previous = 0;
-		int current = text.indexOf(c, previous);
-
-		if (current == -1)
-			return text;
-
-		StringBuffer buffer = new StringBuffer();
-		while (current > -1) {
-			buffer.append(text.substring(previous, current));
-			buffer.append(s);
-			previous = current + 1;
-			current = text.indexOf(c, previous);
-		}
-		buffer.append(text.substring(previous));
-
-		return buffer.toString();
-	}
-
-	public static String convertToHTMLContent(String content) {
-		content = replace(content, '&', "&amp;"); //$NON-NLS-1$
-		content = replace(content, '"', "&quot;"); //$NON-NLS-1$
-		content = replace(content, '<', "&lt;"); //$NON-NLS-1$
-		return replace(content, '>', "&gt;"); //$NON-NLS-1$
-	}
-
-	static String read(Reader rd) {
-
-		StringBuffer buffer = new StringBuffer();
-		char[] readBuffer = new char[2048];
-
-		try {
-			int n = rd.read(readBuffer);
-			while (n > 0) {
-				buffer.append(readBuffer, 0, n);
-				n = rd.read(readBuffer);
-			}
-			return buffer.toString();
-		}
-		catch (IOException x) {
-			// never expected
-			Logger.log(Logger.WARNING_DEBUG, x.getMessage(), x);
-		}
-
-		return null;
-	}
-
-	public static void insertPageProlog(StringBuffer buffer, int position, RGB bgRGB, URL styleSheetURL) {
-
-		if (bgRGB == null)
-			insertPageProlog(buffer, position, styleSheetURL);
-		else {
-			StringBuffer pageProlog = new StringBuffer(300);
-
-			pageProlog.append("<html>"); //$NON-NLS-1$
-
-			appendStyleSheetLink(pageProlog, styleSheetURL);
-
-			pageProlog.append("<body text=\"#000000\" bgcolor=\""); //$NON-NLS-1$
-			appendColor(pageProlog, bgRGB);
-			pageProlog.append("\"><font size=-1>"); //$NON-NLS-1$
-
-			buffer.insert(position, pageProlog.toString());
-		}
-	}
-
-	public static void insertPageProlog(StringBuffer buffer, int position, RGB bgRGB) {
-		if (bgRGB == null)
-			insertPageProlog(buffer, position);
-		else {
-			StringBuffer pageProlog = new StringBuffer(60);
-			pageProlog.append("<html><body text=\"#000000\" bgcolor=\""); //$NON-NLS-1$
-			appendColor(pageProlog, bgRGB);
-			pageProlog.append("\"><font size=-1>"); //$NON-NLS-1$
-			buffer.insert(position, pageProlog.toString());
-		}
-	}
-
-	private static void appendStyleSheetLink(StringBuffer buffer, URL styleSheetURL) {
-		if (styleSheetURL == null)
-			return;
-
-		buffer.append("<head>"); //$NON-NLS-1$
-
-		buffer.append("<LINK REL=\"stylesheet\" HREF= \""); //$NON-NLS-1$
-		buffer.append(styleSheetURL);
-		buffer.append("\" CHARSET=\"ISO-8859-1\" TYPE=\"text/css\">"); //$NON-NLS-1$
-
-		buffer.append("</head>"); //$NON-NLS-1$
-	}
-
-	private static void appendColor(StringBuffer buffer, RGB rgb) {
-		buffer.append('#');
-		buffer.append(Integer.toHexString(rgb.red));
-		buffer.append(Integer.toHexString(rgb.green));
-		buffer.append(Integer.toHexString(rgb.blue));
-	}
-
-	public static void insertPageProlog(StringBuffer buffer, int position) {
-		insertPageProlog(buffer, position, getBgColor());
-	}
-
-	public static void insertPageProlog(StringBuffer buffer, int position, URL styleSheetURL) {
-		insertPageProlog(buffer, position, getBgColor(), styleSheetURL);
-	}
-
-	private static RGB getBgColor() {
-		if (BG_COLOR_RGB != null)
-			return BG_COLOR_RGB;
-		// RGB value of info bg color on WindowsXP
-		return new RGB(255, 255, 225);
-	}
-
-	public static void addPageProlog(StringBuffer buffer) {
-		insertPageProlog(buffer, buffer.length());
-	}
-
-	public static void addPageEpilog(StringBuffer buffer) {
-		buffer.append("</font></body></html>"); //$NON-NLS-1$
-	}
-
-	public static void startBulletList(StringBuffer buffer) {
-		buffer.append("<ul>"); //$NON-NLS-1$
-	}
-
-	public static void endBulletList(StringBuffer buffer) {
-		buffer.append("</ul>"); //$NON-NLS-1$
-	}
-
-	public static void addBullet(StringBuffer buffer, String bullet) {
-		if (bullet != null) {
-			buffer.append("<li>"); //$NON-NLS-1$
-			buffer.append(bullet);
-			buffer.append("</li>"); //$NON-NLS-1$
-		}
-	}
-
-	public static void addSmallHeader(StringBuffer buffer, String header) {
-		if (header != null) {
-			buffer.append("<h5>"); //$NON-NLS-1$
-			buffer.append(header);
-			buffer.append("</h5>"); //$NON-NLS-1$
-		}
-	}
-
-	public static void addParagraph(StringBuffer buffer, String paragraph) {
-		if (paragraph != null) {
-			buffer.append("<p>"); //$NON-NLS-1$
-			buffer.append(paragraph);
-		}
-	}
-
-	public static void addParagraph(StringBuffer buffer, Reader paragraphReader) {
-		if (paragraphReader != null)
-			addParagraph(buffer, read(paragraphReader));
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPInformationProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPInformationProvider.java
deleted file mode 100644
index b2f680b..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPInformationProvider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.taginfo;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Provides context help for JSP tags (Show tooltip description)
- */
-public class JSPInformationProvider implements IInformationProvider, IInformationProviderExtension {
-	private ITextHover fTextHover = null;
-
-	public JSPInformationProvider() {
-		fTextHover = SSEUIPlugin.getDefault().getTextHoverManager().createBestMatchHover(new JSPTagInfoHoverProcessor());
-	}
-
-	public IRegion getSubject(ITextViewer textViewer, int offset) {
-		return fTextHover.getHoverRegion(textViewer, offset);
-	}
-
-	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
-	}
-
-	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
-		return fTextHover.getHoverInfo(textViewer, subject);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java
deleted file mode 100644
index 88c6093..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocHoverProcessor.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.taginfo;
-
-import java.io.Reader;
-
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.ui.JavaElementLabels;
-import org.eclipse.jdt.ui.JavadocContentAccess;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jst.jsp.core.internal.java.IJSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslation;
-import org.eclipse.jst.jsp.core.internal.java.JSPTranslationAdapter;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.ui.internal.taginfo.AbstractHoverProcessor;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-/**
- * Provides javadoc hover help documentation for java code inside JSPs
- */
-public class JSPJavaJavadocHoverProcessor extends AbstractHoverProcessor {
-	/*
-	 * Bulk of the work was copied from
-	 * org.eclipse.jdt.internal.ui.text.java.hover.JavadocHover
-	 */
-	private final long LABEL_FLAGS = JavaElementLabels.ALL_FULLY_QUALIFIED | JavaElementLabels.M_PRE_RETURNTYPE | JavaElementLabels.M_PARAMETER_TYPES | JavaElementLabels.M_PARAMETER_NAMES | JavaElementLabels.M_EXCEPTIONS | JavaElementLabels.F_PRE_TYPE_SIGNATURE | JavaElementLabels.M_PRE_TYPE_PARAMETERS | JavaElementLabels.T_TYPE_PARAMETERS | JavaElementLabels.USE_RESOLVED;
-	private final long LOCAL_VARIABLE_FLAGS = LABEL_FLAGS & ~JavaElementLabels.F_FULLY_QUALIFIED | JavaElementLabels.F_POST_QUALIFIED;
-
-	private String getHoverInfo(IJavaElement[] result) {
-		StringBuffer buffer = new StringBuffer();
-		int nResults = result.length;
-		if (nResults == 0)
-			return null;
-
-		if (nResults > 1) {
-
-			for (int i = 0; i < result.length; i++) {
-				HTMLPrinter.startBulletList(buffer);
-				IJavaElement curr = result[i];
-				if (curr instanceof IMember || curr.getElementType() == IJavaElement.LOCAL_VARIABLE)
-					HTMLPrinter.addBullet(buffer, getInfoText(curr));
-				HTMLPrinter.endBulletList(buffer);
-			}
-
-		}
-		else {
-
-			IJavaElement curr = result[0];
-			if (curr instanceof IMember) {
-				IMember member = (IMember) curr;
-				HTMLPrinter.addSmallHeader(buffer, getInfoText(member));
-				Reader reader;
-				try {
-					reader = JavadocContentAccess.getHTMLContentReader(member, true, true);
-				}
-				catch (JavaModelException ex) {
-					return null;
-				}
-				if (reader != null) {
-					HTMLPrinter.addParagraph(buffer, reader);
-				}
-			}
-			else if (curr.getElementType() == IJavaElement.LOCAL_VARIABLE || curr.getElementType() == IJavaElement.TYPE_PARAMETER)
-				HTMLPrinter.addSmallHeader(buffer, getInfoText(curr));
-		}
-
-		if (buffer.length() > 0) {
-			HTMLPrinter.insertPageProlog(buffer, 0);
-			HTMLPrinter.addPageEpilog(buffer);
-			return buffer.toString();
-		}
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
-		// get JSP translation object for this viewer's document
-		IDOMModel xmlModel = (IDOMModel) StructuredModelManager.getModelManager().getExistingModelForRead(textViewer.getDocument());
-		try {
-			if (xmlModel != null) {
-				IDOMDocument xmlDoc = xmlModel.getDocument();
-				JSPTranslationAdapter adapter = (JSPTranslationAdapter) xmlDoc.getAdapterFor(IJSPTranslation.class);
-				if (adapter != null) {
-					JSPTranslation translation = adapter.getJSPTranslation();
-					
-					IJavaElement[] result = translation.getElementsFromJspRange(hoverRegion.getOffset(), hoverRegion.getOffset() + hoverRegion.getLength());
-					return translation.fixupMangledName(getHoverInfo(result));
-				}
-			}
-		}
-		finally {
-			if (xmlModel != null)
-				xmlModel.releaseFromRead();
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
-		return JavaWordFinder.findWord(textViewer.getDocument(), offset);
-	}
-
-	private String getInfoText(IJavaElement member) {
-		long flags = member.getElementType() == IJavaElement.LOCAL_VARIABLE ? LOCAL_VARIABLE_FLAGS : LABEL_FLAGS;
-		String label = JavaElementLabels.getElementLabel(member, flags);
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < label.length(); i++) {
-			char ch = label.charAt(i);
-			if (ch == '<') {
-				buf.append("&lt;"); //$NON-NLS-1$
-			}
-			else if (ch == '>') {
-				buf.append("&gt;"); //$NON-NLS-1$
-			}
-			else {
-				buf.append(ch);
-			}
-		}
-		return buf.toString();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java
deleted file mode 100644
index 190f5aa..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPJavaJavadocInformationProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.taginfo;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Provides javadoc context information for java code inside JSPs (Shows
- * tooltip description)
- */
-public class JSPJavaJavadocInformationProvider implements IInformationProvider, IInformationProviderExtension {
-	private ITextHover fTextHover = null;
-
-	public JSPJavaJavadocInformationProvider() {
-		fTextHover = SSEUIPlugin.getDefault().getTextHoverManager().createBestMatchHover(new JSPJavaJavadocHoverProcessor());
-	}
-
-	public IRegion getSubject(ITextViewer textViewer, int offset) {
-		return fTextHover.getHoverRegion(textViewer, offset);
-	}
-
-	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
-	}
-
-	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
-		return fTextHover.getHoverInfo(textViewer, subject);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPTagInfoHoverProcessor.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPTagInfoHoverProcessor.java
deleted file mode 100644
index 2a234ca..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JSPTagInfoHoverProcessor.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.taginfo;
-
-
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.html.ui.internal.taginfo.HTMLTagInfoHoverProcessor;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-/**
- * Provides hover help documentation for JSP tags
- */
-public class JSPTagInfoHoverProcessor extends HTMLTagInfoHoverProcessor {
-
-	protected String computeRegionHelp(IndexedRegion treeNode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		String result = null;
-
-		if (region == null)
-			return null;
-
-		String regionType = region.getType();
-		if (regionType == DOMJSPRegionContexts.JSP_DIRECTIVE_NAME) {
-			result = computeJSPDirHelp((IDOMNode) treeNode, parentNode, flatNode, region);
-		}
-		else
-			result = super.computeRegionHelp(treeNode, parentNode, flatNode, region);
-
-		return result;
-	}
-
-	/**
-	 * Computes the hover help for the jsp directive name
-	 * for now, treat jsp directives like any other tag name
-	 */
-	protected String computeJSPDirHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		return computeTagNameHelp(xmlnode, parentNode, flatNode, region);
-	}
-
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JavaWordFinder.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JavaWordFinder.java
deleted file mode 100644
index d3c5b67..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/taginfo/JavaWordFinder.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.ui.internal.taginfo;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-
-/**
- * Copied from org.eclipse.jdt.internal.ui.text.JavaWordFinder
- */
-class JavaWordFinder {
-	
-	public static IRegion findWord(IDocument document, int offset) {
-		
-		int start= -1;
-		int end= -1;
-		
-		
-		try {
-			
-			int pos= offset;
-			char c;
-			
-			while (pos >= 0) {
-				c= document.getChar(pos);
-				if (!Character.isJavaIdentifierPart(c))
-					break;
-				--pos;
-			}
-			
-			start= pos;
-			
-			pos= offset;
-			int length= document.getLength();
-			
-			while (pos < length) {
-				c= document.getChar(pos);
-				if (!Character.isJavaIdentifierPart(c))
-					break;
-				++pos;
-			}
-			
-			end= pos;
-			
-		} catch (BadLocationException x) {
-		}
-		
-		if (start > -1 && end > -1) {
-			if (start == offset && end == offset)
-				return new Region(offset, 0);
-			else if (start == offset)
-				return new Region(start, end - start);
-			else
-				return new Region(start + 1, end - start - 1);
-		}
-		
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/EncodingTemplateVariableResolverJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/EncodingTemplateVariableResolverJSP.java
deleted file mode 100644
index 23b1058..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/EncodingTemplateVariableResolverJSP.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.templates;
-
-import org.eclipse.jface.text.templates.SimpleTemplateVariableResolver;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-
-
-public class EncodingTemplateVariableResolverJSP extends SimpleTemplateVariableResolver {
-	private static final String ENCODING_TYPE = getEncodingType();
-
-	private static String getEncodingType() {
-		return "encoding"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Creates a new encoding variable
-	 */
-	public EncodingTemplateVariableResolverJSP() {
-		super(ENCODING_TYPE, JSPUIMessages.Creating_files_encoding);
-	}
-
-	protected String resolve(TemplateContext context) {
-		return JSPCorePlugin.getDefault().getPluginPreferences().getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/TemplateContextTypeIdsJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/TemplateContextTypeIdsJSP.java
deleted file mode 100644
index 8e5d9e3..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/TemplateContextTypeIdsJSP.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.templates;
-
-
-public class TemplateContextTypeIdsJSP {
-
-	public static final String ALL = getAll();
-
-	public static final String ATTRIBUTE = getAttribute();
-
-	public static final String ATTRIBUTE_VALUE = getAttributeValue();
-
-	public static final String NEW = getNew();
-
-	public static final String TAG = getTag();
-
-	private static String getAll() {
-		return getPrefix() + "_all"; //$NON-NLS-1$
-	}
-
-	private static String getAttribute() {
-		return getPrefix() + "_attribute"; //$NON-NLS-1$
-	}
-
-	private static String getAttributeValue() {
-		return getPrefix() + "_attribute_value"; //$NON-NLS-1$
-	}
-
-	private static String getNew() {
-		return getPrefix() + "_new"; //$NON-NLS-1$
-	}
-
-	private static String getPrefix() {
-		return "jsp"; //$NON-NLS-1$
-	}
-
-	private static String getTag() {
-		return getPrefix() + "_tag"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/TemplateContextTypeJSP.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/TemplateContextTypeJSP.java
deleted file mode 100644
index a907d25..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/templates/TemplateContextTypeJSP.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.ui.internal.templates;
-
-import org.eclipse.jface.text.templates.GlobalTemplateVariables;
-import org.eclipse.jface.text.templates.TemplateContextType;
-
-/**
- * Base class for JSP template context types. Templates of this context type
- * apply to any place within JSP content type.
- */
-public class TemplateContextTypeJSP extends TemplateContextType {
-	public TemplateContextTypeJSP() {
-		super();
-		addResolver(new GlobalTemplateVariables.Cursor());
-		addResolver(new GlobalTemplateVariables.Date());
-		addResolver(new GlobalTemplateVariables.Dollar());
-		addResolver(new GlobalTemplateVariables.LineSelection());
-		addResolver(new GlobalTemplateVariables.Time());
-		addResolver(new GlobalTemplateVariables.User());
-		addResolver(new GlobalTemplateVariables.WordSelection());
-		addResolver(new GlobalTemplateVariables.Year());
-		addResolver(new EncodingTemplateVariableResolverJSP());
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JSPDocumentRegionEdgeMatcher.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JSPDocumentRegionEdgeMatcher.java
deleted file mode 100644
index ae12677..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JSPDocumentRegionEdgeMatcher.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.ui.internal.text;
-
-import org.eclipse.jst.jsp.core.internal.regions.DOMJSPRegionContexts;
-import org.eclipse.wst.sse.ui.internal.text.DocumentRegionEdgeMatcher;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-public class JSPDocumentRegionEdgeMatcher extends DocumentRegionEdgeMatcher {
-
-	protected final static char[] BRACKETS = {'{', '}', '(', ')', '[', ']'};
-
-	/**
-	 * @param validContexts
-	 * @param nextMatcher
-	 */
-	public JSPDocumentRegionEdgeMatcher() {
-		super(new String[]{DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_COMMENT_TEXT, DOMJSPRegionContexts.JSP_COMMENT_TEXT, DOMJSPRegionContexts.JSP_DIRECTIVE_NAME, DOMJSPRegionContexts.JSP_ROOT_TAG_NAME, DOMRegionContext.XML_CDATA_TEXT, DOMRegionContext.XML_PI_OPEN, DOMRegionContext.XML_PI_CONTENT}, new JavaPairMatcher(BRACKETS));
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JavaCodeReader.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JavaCodeReader.java
deleted file mode 100644
index 2483dd2..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JavaCodeReader.java
+++ /dev/null
@@ -1,252 +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
- *******************************************************************************/
-/*
- * Created on Sep 2, 2003
- *
- * To change the template for this generated file go to
- * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
- */
-package org.eclipse.jst.jsp.ui.internal.text;
-
-import java.io.IOException;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jst.jsp.ui.internal.derived.SingleCharReader;
-
-
-/**
- * Reads from a document either forwards or backwards. May be configured to
- * skip comments and strings.
- * 
- * Copied from org.eclipse.jdt.internal.ui.text so we don't have to
- * depend on the org.eclipse.jdt.ui plugin.
- * 
- * No modifications were made.
- */
-class JavaCodeReader extends SingleCharReader {
-
-	/** The EOF character */
-	public static final int EOF = -1;
-
-	private boolean fSkipComments = false;
-	private boolean fSkipStrings = false;
-	private boolean fForward = false;
-
-	private IDocument fDocument;
-	private int fOffset;
-
-	private int fEnd = -1;
-	private int fCachedLineNumber = -1;
-	private int fCachedLineOffset = -1;
-
-
-	public JavaCodeReader() {
-	}
-
-	/**
-	 * Returns the offset of the last read character. Should only be called after read has been called.
-	 */
-	public int getOffset() {
-		return fForward ? fOffset - 1 : fOffset;
-	}
-
-	public void configureForwardReader(IDocument document, int offset, int length, boolean skipComments, boolean skipStrings) throws IOException {
-		fDocument = document;
-		fOffset = offset;
-		fSkipComments = skipComments;
-		fSkipStrings = skipStrings;
-
-		fForward = true;
-		fEnd = Math.min(fDocument.getLength(), fOffset + length);
-	}
-
-	public void configureBackwardReader(IDocument document, int offset, boolean skipComments, boolean skipStrings) throws IOException {
-		fDocument = document;
-		fOffset = offset;
-		fSkipComments = skipComments;
-		fSkipStrings = skipStrings;
-
-		fForward = false;
-		try {
-			fCachedLineNumber = fDocument.getLineOfOffset(fOffset);
-		}
-		catch (BadLocationException x) {
-			throw new IOException(x.getMessage());
-		}
-	}
-
-	/*
-	 * @see Reader#close()
-	 */
-	public void close() throws IOException {
-		fDocument = null;
-	}
-
-	/*
-	 * @see SingleCharReader#read()
-	 */
-	public int read() throws IOException {
-		try {
-			return fForward ? readForwards() : readBackwards();
-		}
-		catch (BadLocationException x) {
-			throw new IOException(x.getMessage());
-		}
-	}
-
-	private void gotoCommentEnd() throws BadLocationException {
-		while (fOffset < fEnd) {
-			char current = fDocument.getChar(fOffset++);
-			if (current == '*') {
-				if (fOffset < fEnd && fDocument.getChar(fOffset) == '/') {
-					++fOffset;
-					return;
-				}
-			}
-		}
-	}
-
-	private void gotoStringEnd(char delimiter) throws BadLocationException {
-		while (fOffset < fEnd) {
-			char current = fDocument.getChar(fOffset++);
-			if (current == '\\') {
-				// ignore escaped characters
-				++fOffset;
-			}
-			else if (current == delimiter) {
-				return;
-			}
-		}
-	}
-
-	private void gotoLineEnd() throws BadLocationException {
-		int line = fDocument.getLineOfOffset(fOffset);
-		fOffset = fDocument.getLineOffset(line + 1);
-	}
-
-	private int readForwards() throws BadLocationException {
-		while (fOffset < fEnd) {
-			char current = fDocument.getChar(fOffset++);
-
-			switch (current) {
-				case '/' :
-
-					if (fSkipComments && fOffset < fEnd) {
-						char next = fDocument.getChar(fOffset);
-						if (next == '*') {
-							// a comment starts, advance to the comment end
-							++fOffset;
-							gotoCommentEnd();
-							continue;
-						}
-						else if (next == '/') {
-							// '//'-comment starts, advance to the line end
-							gotoLineEnd();
-							continue;
-						}
-					}
-
-					return current;
-
-				case '"' :
-				case '\'' :
-
-					if (fSkipStrings) {
-						gotoStringEnd(current);
-						continue;
-					}
-
-					return current;
-			}
-
-			return current;
-		}
-
-		return EOF;
-	}
-
-	private void handleSingleLineComment() throws BadLocationException {
-		int line = fDocument.getLineOfOffset(fOffset);
-		if (line < fCachedLineNumber) {
-			fCachedLineNumber = line;
-			fCachedLineOffset = fDocument.getLineOffset(line);
-			int offset = fOffset;
-			while (fCachedLineOffset < offset) {
-				char current = fDocument.getChar(offset--);
-				if (current == '/' && fCachedLineOffset <= offset && fDocument.getChar(offset) == '/') {
-					fOffset = offset;
-					return;
-				}
-			}
-		}
-	}
-
-	private void gotoCommentStart() throws BadLocationException {
-		while (0 < fOffset) {
-			char current = fDocument.getChar(fOffset--);
-			if (current == '*' && 0 <= fOffset && fDocument.getChar(fOffset) == '/')
-				return;
-		}
-	}
-
-	private void gotoStringStart(char delimiter) throws BadLocationException {
-		while (0 < fOffset) {
-			char current = fDocument.getChar(fOffset);
-			if (current == delimiter) {
-				if (!(0 <= fOffset && fDocument.getChar(fOffset - 1) == '\\'))
-					return;
-			}
-			--fOffset;
-		}
-	}
-
-	private int readBackwards() throws BadLocationException {
-
-		while (0 < fOffset) {
-			--fOffset;
-
-			handleSingleLineComment();
-
-			char current = fDocument.getChar(fOffset);
-			switch (current) {
-				case '/' :
-
-					if (fSkipComments && fOffset > 1) {
-						char next = fDocument.getChar(fOffset - 1);
-						if (next == '*') {
-							// a comment ends, advance to the comment start
-							fOffset -= 2;
-							gotoCommentStart();
-							continue;
-						}
-					}
-
-					return current;
-
-				case '"' :
-				case '\'' :
-
-					if (fSkipStrings) {
-						--fOffset;
-						gotoStringStart(current);
-						continue;
-					}
-
-					return current;
-			}
-
-			return current;
-		}
-
-		return EOF;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JavaPairMatcher.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JavaPairMatcher.java
deleted file mode 100644
index 0a55e93..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/text/JavaPairMatcher.java
+++ /dev/null
@@ -1,202 +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.ui.internal.text;
-
-import java.io.IOException;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.source.ICharacterPairMatcher;
-
-
-/**
- * Helper class for match pairs of characters.
- *
- * Copied from org.eclipse.jdt.internal.ui.text so we don't have to
- * depend on the org.eclipse.jdt.ui plugin.
- * 
- * No modifications were made.
- */
-class JavaPairMatcher implements ICharacterPairMatcher {
-
-	protected char[] fPairs;
-	protected IDocument fDocument;
-	protected int fOffset;
-
-	protected int fStartPos;
-	protected int fEndPos;
-	protected int fAnchor;
-
-	protected JavaCodeReader fReader = new JavaCodeReader();
-
-
-	public JavaPairMatcher(char[] pairs) {
-		fPairs = pairs;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#match(org.eclipse.jface.text.IDocument, int)
-	 */
-	public IRegion match(IDocument document, int offset) {
-
-		fOffset = offset;
-
-		if (fOffset < 0)
-			return null;
-
-		fDocument = document;
-
-		if (fDocument != null && matchPairsAt() && fStartPos != fEndPos)
-			return new Region(fStartPos, fEndPos - fStartPos + 1);
-
-		return null;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#getAnchor()
-	 */
-	public int getAnchor() {
-		return fAnchor;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#dispose()
-	 */
-	public void dispose() {
-		clear();
-		fDocument = null;
-		fReader = null;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#clear()
-	 */
-	public void clear() {
-		if (fReader != null) {
-			try {
-				fReader.close();
-			}
-			catch (IOException x) {
-				// ignore
-			}
-		}
-	}
-
-	protected boolean matchPairsAt() {
-
-		int i;
-		int pairIndex1 = fPairs.length;
-		int pairIndex2 = fPairs.length;
-
-		fStartPos = -1;
-		fEndPos = -1;
-
-		// get the chars preceding and following the start position
-		try {
-
-			char prevChar = fDocument.getChar(Math.max(fOffset - 1, 0));
-			// modified behavior for http://dev.eclipse.org/bugs/show_bug.cgi?id=16879			
-			//			char nextChar= fDocument.getChar(fOffset);
-
-			// search for opening peer character next to the activation point
-			for (i = 0; i < fPairs.length; i = i + 2) {
-				//				if (nextChar == fPairs[i]) {
-				//					fStartPos= fOffset;
-				//					pairIndex1= i;
-				//				} else 
-				if (prevChar == fPairs[i]) {
-					fStartPos = fOffset - 1;
-					pairIndex1 = i;
-				}
-			}
-
-			// search for closing peer character next to the activation point
-			for (i = 1; i < fPairs.length; i = i + 2) {
-				if (prevChar == fPairs[i]) {
-					fEndPos = fOffset - 1;
-					pairIndex2 = i;
-				}
-				//				else if (nextChar == fPairs[i]) {
-				//					fEndPos= fOffset;
-				//					pairIndex2= i;
-				//				}
-			}
-
-			if (fEndPos > -1) {
-				fAnchor = RIGHT;
-				fStartPos = searchForOpeningPeer(fEndPos, fPairs[pairIndex2 - 1], fPairs[pairIndex2], fDocument);
-				if (fStartPos > -1)
-					return true;
-				else
-					fEndPos = -1;
-			}
-			else if (fStartPos > -1) {
-				fAnchor = LEFT;
-				fEndPos = searchForClosingPeer(fStartPos, fPairs[pairIndex1], fPairs[pairIndex1 + 1], fDocument);
-				if (fEndPos > -1)
-					return true;
-				else
-					fStartPos = -1;
-			}
-
-		}
-		catch (BadLocationException x) {
-		}
-		catch (IOException x) {
-		}
-
-		return false;
-	}
-
-	protected int searchForClosingPeer(int offset, int openingPeer, int closingPeer, IDocument document) throws IOException {
-
-		fReader.configureForwardReader(document, offset + 1, document.getLength(), true, true);
-
-		int stack = 1;
-		int c = fReader.read();
-		while (c != JavaCodeReader.EOF) {
-			if (c == openingPeer && c != closingPeer)
-				stack++;
-			else if (c == closingPeer)
-				stack--;
-
-			if (stack == 0)
-				return fReader.getOffset();
-
-			c = fReader.read();
-		}
-
-		return -1;
-	}
-
-	protected int searchForOpeningPeer(int offset, int openingPeer, int closingPeer, IDocument document) throws IOException {
-
-		fReader.configureBackwardReader(document, offset, true, true);
-
-		int stack = 1;
-		int c = fReader.read();
-		while (c != JavaCodeReader.EOF) {
-			if (c == closingPeer && c != openingPeer)
-				stack++;
-			else if (c == openingPeer)
-				stack--;
-
-			if (stack == 0)
-				return fReader.getOffset();
-
-			c = fReader.read();
-		}
-
-		return -1;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/validation/JSPActionSourceValidator.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/validation/JSPActionSourceValidator.java
deleted file mode 100644
index 8262bda..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/validation/JSPActionSourceValidator.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.validation;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-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.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jst.jsp.core.internal.contentproperties.JSPFContentProperties;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.core.internal.validation.JSPActionValidator;
-import org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.FileBufferModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
-import org.eclipse.wst.validation.internal.ConfigurationManager;
-import org.eclipse.wst.validation.internal.ProjectConfiguration;
-import org.eclipse.wst.validation.internal.ValidationConfiguration;
-import org.eclipse.wst.validation.internal.ValidationRegistryReader;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-
-/**
- * Source validator (able to check partial document) that checks for: -
- * missing required attributes & undefined attributes in jsp action tags such
- * as jsp directives and jsp custom tags
- */
-public class JSPActionSourceValidator extends JSPActionValidator implements ISourceValidator {
-	private IDocument fDocument;
-	private boolean fEnableSourceValidation;
-	private IContentType fJSPFContentType = null;
-
-	public void connect(IDocument document) {
-		fDocument = document;
-
-		// special checks to see source validation should really execute
-		IFile file = null;
-		IStructuredModel model = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (model != null) {
-				String baseLocation = model.getBaseLocation();
-				// The baseLocation may be a path on disk or relative to the
-				// workspace root. Don't translate on-disk paths to
-				// in-workspace resources.
-				IPath basePath = new Path(baseLocation);
-				if (basePath.segmentCount() > 1) {
-					file = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
-					/*
-					 * If the IFile doesn't exist, make sure it's not returned
-					 */
-					if (!file.exists())
-						file = null;
-				}
-			}
-		}
-		finally {
-			if (model != null) {
-				model.releaseFromRead();
-			}
-		}
-		fEnableSourceValidation = (file != null && isBatchValidatorPreferenceEnabled(file) && shouldValidate(file) && fragmentCheck(file));
-	}
-
-	public void disconnect(IDocument document) {
-		fDocument = null;
-	}
-
-	public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
-		if (helper == null || fDocument == null || !fEnableSourceValidation)
-			return;
-
-		if ((reporter != null) && (reporter.isCancelled() == true)) {
-			throw new OperationCanceledException();
-		}
-
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-		if (model == null)
-			return;
-
-		try {
-			ITextFileBuffer fb = FileBufferModelManager.getInstance().getBuffer(fDocument);
-			if (fb == null)
-				return;
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(fb.getLocation());
-			if (file == null || !file.exists())
-				return;
-			performValidation(file, reporter, model, dirtyRegion);
-		}
-		finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-	}
-
-	/**
-	 * Gets current validation configuration based on current project (which
-	 * is based on current document) or global configuration if project does
-	 * not override
-	 * 
-	 * @return ValidationConfiguration
-	 */
-	private ValidationConfiguration getValidationConfiguration(IFile file) {
-		ValidationConfiguration configuration = null;
-		if (file != null) {
-			IProject project = file.getProject();
-			if (project != null) {
-				try {
-					ProjectConfiguration projectConfiguration = ConfigurationManager.getManager().getProjectConfiguration(project);
-					configuration = projectConfiguration;
-					if (projectConfiguration == null || projectConfiguration.useGlobalPreference()) {
-						configuration = ConfigurationManager.getManager().getGlobalConfiguration();
-					}
-				}
-				catch (InvocationTargetException e) {
-					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-				}
-			}
-		}
-
-		return configuration;
-	}
-
-	/**
-	 * Checks if validator is enabled according in Validation preferences
-	 * 
-	 * @param vmd
-	 * @return
-	 */
-	private boolean isBatchValidatorPreferenceEnabled(IFile file) {
-		if (file == null) {
-			return true;
-		}
-
-		boolean enabled = true;
-		ValidationConfiguration configuration = getValidationConfiguration(file);
-		if (configuration != null) {
-			org.eclipse.wst.validation.internal.ValidatorMetaData metadata = ValidationRegistryReader.getReader().getValidatorMetaData(JSPBatchValidator.class.getName());
-			if (metadata != null) {
-				if (!configuration.isBuildEnabled(metadata) && !configuration.isManualEnabled(metadata))
-					enabled = false;
-			}
-		}
-		return enabled;
-	}
-
-	/**
-	 * Checks if file is a jsp fragment or not. If so, check if the fragment
-	 * should be validated or not.
-	 * 
-	 * @param file
-	 *            Assumes shouldValidate was already called on file so it
-	 *            should not be null and does exist
-	 * @return false if file is a fragment and it should not be validated,
-	 *         true otherwise
-	 */
-	private boolean fragmentCheck(IFile file) {
-		// copied from JSPValidator
-		boolean shouldValidate = true;
-		// quick check to see if this is possibly a jsp fragment
-		if (getJSPFContentType().isAssociatedWith(file.getName())) {
-			// get preference for validate jsp fragments
-			boolean shouldValidateFragments = Boolean.valueOf(JSPFContentProperties.getProperty(JSPFContentProperties.VALIDATE_FRAGMENTS, file, true)).booleanValue();
-			/*
-			 * if jsp fragments should not be validated, check if file is
-			 * really jsp fragment
-			 */
-			if (!shouldValidateFragments) {
-				boolean isFragment = isFragment(file);
-				shouldValidate = !isFragment;
-			}
-		}
-		return shouldValidate;
-	}
-
-	/**
-	 * Determines if file is jsp fragment or not (does a deep, indepth check,
-	 * looking into contents of file)
-	 * 
-	 * @param file
-	 *            assumes file is not null and exists
-	 * @return true if file is jsp fragment, false otherwise
-	 */
-	private boolean isFragment(IFile file) {
-		// copied from JSPValidator
-		boolean isFragment = false;
-		InputStream is = null;
-		try {
-			IContentDescription contentDescription = file.getContentDescription();
-			// it can be null
-			if (contentDescription == null) {
-				is = file.getContents();
-				contentDescription = Platform.getContentTypeManager().getDescriptionFor(is, file.getName(), new QualifiedName[]{IContentDescription.CHARSET});
-			}
-			if (contentDescription != null) {
-				String fileCtId = contentDescription.getContentType().getId();
-				isFragment = (fileCtId != null && ContentTypeIdForJSP.ContentTypeID_JSPFRAGMENT.equals(fileCtId));
-			}
-		}
-		catch (IOException e) {
-			// ignore, assume it's invalid JSP
-		}
-		catch (CoreException e) {
-			// ignore, assume it's invalid JSP
-		}
-		finally {
-			// must close input stream in case others need it
-			if (is != null)
-				try {
-					is.close();
-				}
-				catch (Exception e) {
-					// not sure how to recover at this point
-				}
-		}
-		return isFragment;
-	}
-
-	private boolean shouldValidate(IFile file) {
-		// copied from JSPValidator
-		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);
-		return true;
-	}
-
-	/**
-	 * Returns JSP fragment content type
-	 * 
-	 * @return jspf content type
-	 */
-	private IContentType getJSPFContentType() {
-		// copied from JSPValidator
-		if (fJSPFContentType == null) {
-			fJSPFContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSPFRAGMENT);
-		}
-		return fJSPFContentType;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPFileWizardPage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPFileWizardPage.java
deleted file mode 100644
index 068aae5..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPFileWizardPage.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.wizard;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
-import org.eclipse.jst.jsp.core.internal.preferences.JSPCorePreferenceNames;
-import org.eclipse.jst.jsp.core.internal.provisional.contenttype.ContentTypeIdForJSP;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-
-class NewJSPFileWizardPage extends WizardNewFileCreationPage {
-
-	private IContentType fContentType;
-	private List fValidExtensions = null;
-
-	public NewJSPFileWizardPage(String pageName, IStructuredSelection selection) {
-		super(pageName, selection);
-	}
-
-	/**
-	 * This method is overriden to set the selected folder to web contents
-	 * folder if the current selection is outside the web contents folder.
-	 */
-	protected void initialPopulateContainerNameField() {
-		super.initialPopulateContainerNameField();
-
-		IPath fullPath = getContainerFullPath();
-		IProject project = getProjectFromPath(fullPath);
-		IPath webContentPath = getWebContentPath(project);
-
-		if (webContentPath != null && !webContentPath.isPrefixOf(fullPath)) {
-			setContainerFullPath(webContentPath);
-		}
-	}
-
-	/**
-	 * This method is overriden to set additional validation specific to jsp
-	 * files.
-	 */
-	protected boolean validatePage() {
-		setMessage(null);
-		setErrorMessage(null);
-
-		if (!super.validatePage()) {
-			return false;
-		}
-
-		String fileName = getFileName();
-		IPath fullPath = getContainerFullPath();
-		if ((fullPath != null) && (fullPath.isEmpty() == false) && (fileName != null)) {
-			// check that filename does not contain invalid extension
-			if (!extensionValidForContentType(fileName)) {
-				setErrorMessage(NLS.bind(JSPUIMessages._ERROR_FILENAME_MUST_END_JSP, getValidExtensions().toString()));
-				return false;
-			}
-			// no file extension specified so check adding default
-			// extension doesn't equal a file that already exists
-			if (fileName.lastIndexOf('.') == -1) {
-				String newFileName = addDefaultExtension(fileName);
-				IPath resourcePath = fullPath.append(newFileName);
-
-				IWorkspace workspace = ResourcesPlugin.getWorkspace();
-				IStatus result = workspace.validatePath(resourcePath.toString(), IResource.FOLDER);
-				if (!result.isOK()) {
-					// path invalid
-					setErrorMessage(result.getMessage());
-					return false;
-				}
-
-				if ((workspace.getRoot().getFolder(resourcePath).exists() || workspace.getRoot().getFile(resourcePath).exists())) {
-					setErrorMessage(JSPUIMessages.ResourceGroup_nameExists);
-					return false;
-				}
-			}
-
-			// get the IProject for the selection path
-			IProject project = getProjectFromPath(fullPath);
-			if (project != null) {
-				if (!isJavaProject(project)) {
-					setMessage(JSPUIMessages._WARNING_FILE_MUST_BE_INSIDE_JAVA_PROJECT, WARNING);
-				}
-				// if inside web project, check if inside webContent folder
-				if (isDynamicWebProject(project)) {
-					// check that the path is inside the webContent folder
-					IPath webContentPath = getWebContentPath(project);
-					if (!webContentPath.isPrefixOf(fullPath)) {
-						setMessage(JSPUIMessages._WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT, WARNING);
-					}
-				}
-			}
-		}
-
-		return true;
-	}
-
-	/**
-	 * Adds default extension to the filename
-	 * 
-	 * @param filename
-	 * @return
-	 */
-	String addDefaultExtension(String filename) {
-		StringBuffer newFileName = new StringBuffer(filename);
-
-		Preferences preference = JSPCorePlugin.getDefault().getPluginPreferences();
-		String ext = preference.getString(JSPCorePreferenceNames.DEFAULT_EXTENSION);
-
-		newFileName.append("."); //$NON-NLS-1$
-		newFileName.append(ext);
-
-		return newFileName.toString();
-	}
-
-	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	private IContentType getContentType() {
-		if (fContentType == null)
-			fContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForJSP.ContentTypeID_JSP);
-		return fContentType;
-	}
-
-	/**
-	 * Get list of valid extensions for JSP Content type
-	 * 
-	 * @return
-	 */
-	private List getValidExtensions() {
-		if (fValidExtensions == null) {
-			IContentType type = getContentType();
-			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
-		}
-		return fValidExtensions;
-	}
-
-	/**
-	 * Verifies if fileName is valid name for content type. Takes base content
-	 * type into consideration.
-	 * 
-	 * @param fileName
-	 * @return true if extension is valid for this content type
-	 */
-	private boolean extensionValidForContentType(String fileName) {
-		boolean valid = false;
-
-		IContentType type = getContentType();
-		// there is currently an extension
-		if (fileName.lastIndexOf('.') != -1) {
-			// check what content types are associated with current extension
-			IContentType[] types = Platform.getContentTypeManager().findContentTypesFor(fileName);
-			int i = 0;
-			while (i < types.length && !valid) {
-				valid = types[i].isKindOf(type);
-				++i;
-			}
-		}
-		else
-			valid = true; // no extension so valid
-		return valid;
-	}
-
-	/**
-	 * Returns the project that contains the specified path
-	 * 
-	 * @param path
-	 *            the path which project is needed
-	 * @return IProject object. If path is <code>null</code> the return
-	 *         value is also <code>null</code>.
-	 */
-	private IProject getProjectFromPath(IPath path) {
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProject project = null;
-
-		if (path != null) {
-			if (workspace.validatePath(path.toString(), IResource.PROJECT).isOK()) {
-				project = workspace.getRoot().getProject(path.toString());
-			}
-			else {
-				project = workspace.getRoot().getFile(path).getProject();
-			}
-		}
-
-		return project;
-	}
-
-	/**
-	 * Checks if the specified project is a web project.
-	 * 
-	 * @param project
-	 *            project to be checked
-	 * @return true if the project is web project, otherwise false
-	 */
-	private boolean isDynamicWebProject(IProject project) {
-		IFacetedProject faceted = null;
-		try {
-			faceted = ProjectFacetsManager.create(project);
-		}
-		catch (CoreException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-
-		if (faceted != null && faceted.hasProjectFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE))) {
-			return true;
-		}
-
-		return false;
-	}
-
-	/**
-	 * Checks if the specified project is a type of java project.
-	 * 
-	 * @param project
-	 *            project to be checked (cannot be null)
-	 * @return true if the project is a type of java project, otherwise false
-	 */
-	private boolean isJavaProject(IProject project) {
-		boolean isJava = false;
-		try {
-			isJava = project.hasNature(JavaCore.NATURE_ID);
-		}
-		catch (CoreException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-
-		return isJava;
-	}
-
-	/**
-	 * Returns the web contents folder of the specified project
-	 * 
-	 * @param project
-	 *            the project which web contents path is needed
-	 * @return IPath of the web contents folder
-	 */
-	private IPath getWebContentPath(IProject project) {
-		IPath path = null;
-
-		if (project != null && isDynamicWebProject(project)) {
-			IVirtualComponent component = ComponentCore.createComponent(project);
-			path = component.getRootFolder().getWorkspaceRelativePath();
-		}
-
-		return path;
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPTemplatesWizardPage.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPTemplatesWizardPage.java
deleted file mode 100644
index 95ece8c..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPTemplatesWizardPage.java
+++ /dev/null
@@ -1,474 +0,0 @@
-package org.eclipse.jst.jsp.ui.internal.wizard;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.text.source.SourceViewerConfiguration;
-import org.eclipse.jface.text.templates.DocumentTemplateContext;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.jst.jsp.ui.internal.editor.IHelpContextIds;
-import org.eclipse.jst.jsp.ui.internal.preferences.JSPUIPreferenceNames;
-import org.eclipse.jst.jsp.ui.internal.templates.TemplateContextTypeIdsJSP;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-
-/**
- * Templates page in new file wizard. Allows users to select a new file
- * template to be applied in new file.
- * 
- */
-public class NewJSPTemplatesWizardPage extends WizardPage {
-
-	/**
-	 * Content provider for templates
-	 */
-	private class TemplateContentProvider implements IStructuredContentProvider {
-		/** The template store. */
-		private TemplateStore fStore;
-
-		/*
-		 * @see IContentProvider#dispose()
-		 */
-		public void dispose() {
-			fStore = null;
-		}
-
-		/*
-		 * @see IStructuredContentProvider#getElements(Object)
-		 */
-		public Object[] getElements(Object input) {
-			return fStore.getTemplates(TemplateContextTypeIdsJSP.NEW);
-		}
-
-		/*
-		 * @see IContentProvider#inputChanged(Viewer, Object, Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			fStore = (TemplateStore) newInput;
-		}
-	}
-
-	/**
-	 * Label provider for templates.
-	 */
-	private class TemplateLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		/*
-		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
-		 *      int)
-		 */
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
-		 *      int)
-		 */
-		public String getColumnText(Object element, int columnIndex) {
-			Template template = (Template) element;
-
-			switch (columnIndex) {
-				case 0 :
-					return template.getName();
-				case 1 :
-					return template.getDescription();
-				default :
-					return ""; //$NON-NLS-1$
-			}
-		}
-	}
-
-	/** Last selected template name */
-	private String fLastSelectedTemplateName;
-	/** The viewer displays the pattern of selected template. */
-	private SourceViewer fPatternViewer;
-	/** The table presenting the templates. */
-	private TableViewer fTableViewer;
-	/** Template store used by this wizard page */
-	private TemplateStore fTemplateStore;
-	/** Checkbox for using templates. */
-	private Button fUseTemplateButton;
-
-	public NewJSPTemplatesWizardPage() {
-		super("NewJSPTemplatesWizardPage", JSPUIMessages.NewJSPTemplatesWizardPage_0, null); //$NON-NLS-1$
-		setDescription(JSPUIMessages.NewJSPTemplatesWizardPage_1);
-	}
-
-	/**
-	 * Correctly resizes the table so no phantom columns appear
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @param buttons
-	 *            the buttons
-	 * @param table
-	 *            the table
-	 * @param column1
-	 *            the first column
-	 * @param column2
-	 *            the second column
-	 * @param column3
-	 *            the third column
-	 */
-	private void configureTableResizing(final Composite parent, final Table table, final TableColumn column1, final TableColumn column2) {
-		parent.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent e) {
-				Rectangle area = parent.getClientArea();
-				Point preferredSize = table.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				int width = area.width - 2 * table.getBorderWidth();
-				if (preferredSize.y > area.height) {
-					// Subtract the scrollbar width from the total column
-					// width
-					// if a vertical scrollbar will be required
-					Point vBarSize = table.getVerticalBar().getSize();
-					width -= vBarSize.x;
-				}
-
-				Point oldSize = table.getSize();
-				if (oldSize.x > width) {
-					// table is getting smaller so make the columns
-					// smaller first and then resize the table to
-					// match the client area width
-					column1.setWidth(width / 2);
-					column2.setWidth(width / 2);
-					table.setSize(width, area.height);
-				}
-				else {
-					// table is getting bigger so make the table
-					// bigger first and then make the columns wider
-					// to match the client area width
-					table.setSize(width, area.height);
-					column1.setWidth(width / 2);
-					column2.setWidth(width / 2);
-				}
-			}
-		});
-	}
-
-	public void createControl(Composite ancestor) {
-		Composite parent = new Composite(ancestor, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		parent.setLayout(layout);
-
-		// create checkbox for user to use JSP Template
-		fUseTemplateButton = new Button(parent, SWT.CHECK);
-		fUseTemplateButton.setText(JSPUIMessages.NewJSPTemplatesWizardPage_4);
-		GridData data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
-		fUseTemplateButton.setLayoutData(data);
-		fUseTemplateButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				enableTemplates();
-			}
-		});
-
-		// create composite for Templates table
-		Composite innerParent = new Composite(parent, SWT.NONE);
-		GridLayout innerLayout = new GridLayout();
-		innerLayout.numColumns = 2;
-		innerLayout.marginHeight = 0;
-		innerLayout.marginWidth = 0;
-		innerParent.setLayout(innerLayout);
-		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1);
-		innerParent.setLayoutData(gd);
-
-		// Create linked text to just to templates preference page
-		Link link = new Link(innerParent, SWT.NONE);
-		link.setText(JSPUIMessages.NewJSPTemplatesWizardPage_6);
-		data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
-		link.setLayoutData(data);
-		link.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				linkClicked();
-			}
-		});
-
-		// create table that displays templates
-		Table table = new Table(innerParent, SWT.BORDER | SWT.FULL_SELECTION);
-
-		data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = convertWidthInCharsToPixels(2);
-		data.heightHint = convertHeightInCharsToPixels(10);
-		data.horizontalSpan = 2;
-		table.setLayoutData(data);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-		TableLayout tableLayout = new TableLayout();
-		table.setLayout(tableLayout);
-
-		TableColumn column1 = new TableColumn(table, SWT.NONE);
-		column1.setText(JSPUIMessages.NewJSPTemplatesWizardPage_2);
-
-		TableColumn column2 = new TableColumn(table, SWT.NONE);
-		column2.setText(JSPUIMessages.NewJSPTemplatesWizardPage_3);
-
-		fTableViewer = new TableViewer(table);
-		fTableViewer.setLabelProvider(new TemplateLabelProvider());
-		fTableViewer.setContentProvider(new TemplateContentProvider());
-
-		fTableViewer.setSorter(new ViewerSorter() {
-			public int compare(Viewer viewer, Object object1, Object object2) {
-				if ((object1 instanceof Template) && (object2 instanceof Template)) {
-					Template left = (Template) object1;
-					Template right = (Template) object2;
-					int result = left.getName().compareToIgnoreCase(right.getName());
-					if (result != 0)
-						return result;
-					return left.getDescription().compareToIgnoreCase(right.getDescription());
-				}
-				return super.compare(viewer, object1, object2);
-			}
-
-			public boolean isSorterProperty(Object element, String property) {
-				return true;
-			}
-		});
-
-		fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent e) {
-				updateViewerInput();
-			}
-		});
-
-		// create viewer that displays currently selected template's contents
-		fPatternViewer = doCreateViewer(parent);
-
-		fTemplateStore = JSPUIPlugin.getDefault().getTemplateStore();
-		fTableViewer.setInput(fTemplateStore);
-
-		configureTableResizing(innerParent, table, column1, column2);
-		loadLastSavedPreferences();
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IHelpContextIds.JSP_NEWWIZARD_TEMPLATE_HELPID);
-		Dialog.applyDialogFont(parent);
-		setControl(parent);
-	}
-
-	/**
-	 * Creates, configures and returns a source viewer to present the template
-	 * pattern on the preference page. Clients may override to provide a
-	 * custom source viewer featuring e.g. syntax coloring.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @return a configured source viewer
-	 */
-	private SourceViewer createViewer(Composite parent) {
-		SourceViewer viewer = new SourceViewer(parent, null, null, false, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-		SourceViewerConfiguration configuration = new SourceViewerConfiguration();
-		viewer.configure(configuration);
-		IDocument document = new Document();
-		viewer.setDocument(document);
-		return viewer;
-	}
-
-	private SourceViewer doCreateViewer(Composite parent) {
-		Label label = new Label(parent, SWT.NONE);
-		label.setText(JSPUIMessages.NewJSPTemplatesWizardPage_5);
-		GridData data = new GridData();
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-
-		SourceViewer viewer = createViewer(parent);
-		viewer.setEditable(false);
-
-		Control control = viewer.getControl();
-		data = new GridData(GridData.FILL_BOTH);
-		data.horizontalSpan = 2;
-		data.heightHint = convertHeightInCharsToPixels(5);
-		control.setLayoutData(data);
-
-		return viewer;
-	}
-
-	/**
-	 * Enable/disable controls in page based on fUseTemplateButton's current
-	 * state.
-	 */
-	void enableTemplates() {
-		boolean enabled = fUseTemplateButton.getSelection();
-
-		if (!enabled) {
-			// save last selected template
-			Template template = getSelectedTemplate();
-			if (template != null)
-				fLastSelectedTemplateName = template.getName();
-			else
-				fLastSelectedTemplateName = ""; //$NON-NLS-1$
-
-			fTableViewer.setSelection(null);
-		}
-		else {
-			setSelectedTemplate(fLastSelectedTemplateName);
-		}
-
-		fTableViewer.getControl().setEnabled(enabled);
-		fPatternViewer.getControl().setEnabled(enabled);
-	}
-
-	/**
-	 * Return the template preference page id
-	 * 
-	 * @return
-	 */
-	private String getPreferencePageId() {
-		return "org.eclipse.wst.sse.ui.preferences.jsp.templates"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Get the currently selected template.
-	 * 
-	 * @return
-	 */
-	private Template getSelectedTemplate() {
-		Template template = null;
-		IStructuredSelection selection = (IStructuredSelection) fTableViewer.getSelection();
-
-		if (selection.size() == 1) {
-			template = (Template) selection.getFirstElement();
-		}
-		return template;
-	}
-
-	/**
-	 * Returns template string to insert.
-	 * 
-	 * @return String to insert or null if none is to be inserted
-	 */
-	String getTemplateString() {
-		String templateString = null;
-
-		Template template = getSelectedTemplate();
-		if (template != null) {
-			TemplateContextType contextType = JSPUIPlugin.getDefault().getTemplateContextRegistry().getContextType(TemplateContextTypeIdsJSP.NEW);
-			IDocument document = new Document();
-			TemplateContext context = new DocumentTemplateContext(contextType, document, 0, 0);
-			try {
-				TemplateBuffer buffer = context.evaluate(template);
-				templateString = buffer.getString();
-			}
-			catch (Exception e) {
-				Logger.log(Logger.WARNING_DEBUG, "Could not create template for new jsp", e); //$NON-NLS-1$
-			}
-		}
-
-		return templateString;
-	}
-
-	void linkClicked() {
-		String pageId = getPreferencePageId();
-		PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(getShell(), pageId, new String[]{pageId}, null);
-		dialog.open();
-		fTableViewer.refresh();
-	}
-
-	/**
-	 * Load the last template name used in New JSP File wizard.
-	 */
-	private void loadLastSavedPreferences() {
-		String templateName = JSPUIPlugin.getDefault().getPreferenceStore().getString(JSPUIPreferenceNames.NEW_FILE_TEMPLATE_NAME);
-		if (templateName == null || templateName.length() == 0) {
-			fLastSelectedTemplateName = ""; //$NON-NLS-1$
-			fUseTemplateButton.setSelection(false);
-		}
-		else {
-			fLastSelectedTemplateName = templateName;
-			fUseTemplateButton.setSelection(true);
-		}
-		enableTemplates();
-	}
-
-	/**
-	 * Save template name used for next call to New JSP File wizard.
-	 */
-	void saveLastSavedPreferences() {
-		String templateName = ""; //$NON-NLS-1$
-
-		Template template = getSelectedTemplate();
-		if (template != null) {
-			templateName = template.getName();
-		}
-
-		JSPUIPlugin.getDefault().getPreferenceStore().setValue(JSPUIPreferenceNames.NEW_FILE_TEMPLATE_NAME, templateName);
-		JSPUIPlugin.getDefault().savePluginPreferences();
-	}
-
-	/**
-	 * Select a template in the table viewer given the template name. If
-	 * template name cannot be found or templateName is null, just select
-	 * first item in table. If no items in table select nothing.
-	 * 
-	 * @param templateName
-	 */
-	private void setSelectedTemplate(String templateName) {
-		Object template = null;
-
-		if (templateName != null && templateName.length() > 0) {
-			// pick the last used template
-			template = fTemplateStore.findTemplate(templateName, TemplateContextTypeIdsJSP.NEW);
-		}
-
-		// no record of last used template so just pick first element
-		if (template == null) {
-			// just pick first element
-			template = fTableViewer.getElementAt(0);
-		}
-
-		if (template != null) {
-			IStructuredSelection selection = new StructuredSelection(template);
-			fTableViewer.setSelection(selection, true);
-		}
-	}
-
-	/**
-	 * Updates the pattern viewer.
-	 */
-	void updateViewerInput() {
-		Template template = getSelectedTemplate();
-		if (template != null) {
-			fPatternViewer.getDocument().set(template.getPattern());
-		}
-		else {
-			fPatternViewer.getDocument().set(""); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPWizard.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPWizard.java
deleted file mode 100644
index d152057..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/internal/wizard/NewJSPWizard.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.internal.wizard;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.OutputStreamWriter;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jst.jsp.core.internal.JSPCorePlugin;
-import org.eclipse.jst.jsp.ui.internal.JSPUIMessages;
-import org.eclipse.jst.jsp.ui.internal.Logger;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImageHelper;
-import org.eclipse.jst.jsp.ui.internal.editor.JSPEditorPluginImages;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-
-public class NewJSPWizard extends Wizard implements INewWizard {
-	private NewJSPFileWizardPage fNewFilePage;
-	private NewJSPTemplatesWizardPage fNewFileTemplatesPage;
-	private IStructuredSelection fSelection;
-
-	public void addPages() {
-		fNewFilePage = new NewJSPFileWizardPage("JSPWizardNewFileCreationPage", new StructuredSelection(IDE.computeSelectedResources(fSelection))); //$NON-NLS-1$ 
-		fNewFilePage.setTitle(JSPUIMessages._UI_WIZARD_NEW_HEADING);
-		fNewFilePage.setDescription(JSPUIMessages._UI_WIZARD_NEW_DESCRIPTION);
-		addPage(fNewFilePage);
-
-		fNewFileTemplatesPage = new NewJSPTemplatesWizardPage();
-		addPage(fNewFileTemplatesPage);
-	}
-
-	public void init(IWorkbench aWorkbench, IStructuredSelection aSelection) {
-		fSelection = aSelection;
-		setWindowTitle(JSPUIMessages._UI_WIZARD_NEW_TITLE);
-
-		ImageDescriptor descriptor = JSPEditorPluginImageHelper.getInstance().getImageDescriptor(JSPEditorPluginImages.IMG_OBJ_WIZBAN_NEWJSPFILE);
-		setDefaultPageImageDescriptor(descriptor);
-	}
-
-	private void openEditor(final IFile file) {
-		if (file != null) {
-			getShell().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					try {
-						IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-						IDE.openEditor(page, file, true);
-					}
-					catch (PartInitException e) {
-						Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-					}
-				}
-			});
-		}
-	}
-
-	public boolean performFinish() {
-		boolean performedOK = false;
-
-		// save user options for next use
-		fNewFileTemplatesPage.saveLastSavedPreferences();
-
-		// no file extension specified so add default extension
-		String fileName = fNewFilePage.getFileName();
-		if (fileName.lastIndexOf('.') == -1) {
-			String newFileName = fNewFilePage.addDefaultExtension(fileName);
-			fNewFilePage.setFileName(newFileName);
-		}
-
-		// create a new empty file
-		IFile file = fNewFilePage.createNewFile();
-
-		// if there was problem with creating file, it will be null, so make
-		// sure to check
-		if (file != null) {
-			// put template contents into file
-			String templateString = fNewFileTemplatesPage.getTemplateString();
-			if (templateString != null) {
-				// determine the encoding for the new file
-				Preferences preference = JSPCorePlugin.getDefault().getPluginPreferences();
-				String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-
-				try {
-					ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-					OutputStreamWriter outputStreamWriter = null;
-					if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
-						// just use default encoding
-						outputStreamWriter = new OutputStreamWriter(outputStream);
-					}
-					else {
-						outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
-					}
-					outputStreamWriter.write(templateString);
-					outputStreamWriter.flush();
-					outputStreamWriter.close();
-					ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
-					file.setContents(inputStream, true, false, null);
-					inputStream.close();
-				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new JSP file", e); //$NON-NLS-1$
-				}
-			}
-
-			// open the file in editor
-			openEditor(file);
-
-			// everything's fine
-			performedOK = true;
-		}
-		return performedOK;
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/views/contentoutline/JSPContentOutlineConfiguration.java b/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/views/contentoutline/JSPContentOutlineConfiguration.java
deleted file mode 100644
index f9a1570..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/src/org/eclipse/jst/jsp/ui/views/contentoutline/JSPContentOutlineConfiguration.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jst.jsp.ui.views.contentoutline;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jst.jsp.ui.internal.JSPUIPlugin;
-import org.eclipse.wst.html.ui.views.contentoutline.HTMLContentOutlineConfiguration;
-
-/**
- * Configuration for outline view page which shows JSP content.
- * 
- * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration
- * @since 1.0
- */
-public class JSPContentOutlineConfiguration extends HTMLContentOutlineConfiguration {
-
-	// private static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	// TODO: Automate the loading of a real configuration based on the model
-	// type at
-	// creation time; clear on unConfigure so that a new embedded
-	// configuration can
-	// be used
-	// private StructuredContentOutlineConfiguration fEmbeddedConfiguration =
-	// null;
-
-	/**
-	 * Create new instance of JSPContentOutlineConfiguration
-	 */
-	public JSPContentOutlineConfiguration() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#getPreferenceStore()
-	 */
-	protected IPreferenceStore getPreferenceStore() {
-		return JSPUIPlugin.getDefault().getPreferenceStore();
-	}
-}
diff --git a/bundles/org.eclipse.jst.jsp.ui/templates/jspdefault-templates.properties b/bundles/org.eclipse.jst.jsp.ui/templates/jspdefault-templates.properties
deleted file mode 100644
index 54eff47..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/templates/jspdefault-templates.properties
+++ /dev/null
@@ -1,40 +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
-###############################################################################
-Templates.jspscriptlet.name=JSP scriptlet
-Templates.jspscriptlet.desc=JSP scriptlet <%..%>
-Templates.jspscriptlet.content=<% ${cursor} %>
-Templates.jsphiddencomment.name=JSP hidden comment
-Templates.jsphiddencomment.desc=JSP hidden comment <%-- --%>
-Templates.jsphiddencomment.content=<%-- ${cursor} --%>
-Templates.jspdeclaration.name=JSP declaration(s)
-Templates.jspdeclaration.desc=JSP declaration(s) <%!..%>
-Templates.jspdeclaration.content=<%! ${cursor} %>
-Templates.jspexpression.name=JSP expression
-Templates.jspexpression.desc=JSP expression <%=..%>
-Templates.jspexpression.content=<%= ${cursor} %>
-Templates.jspincludedirective.name=JSP include directive
-Templates.jspincludedirective.desc=JSP include directive
-Templates.jspincludedirective.content=<%@ include file="${cursor}" %>
-Templates.jsppagedirective.name=JSP page directive
-Templates.jsppagedirective.desc=JSP page directive
-Templates.jsppagedirective.content=<%@ page contentType="text/html; charset=${encoding}" %>
-Templates.jsptaglibdirective.name=JSP taglib directive
-Templates.jsptaglibdirective.desc=JSP taglib directive
-Templates.jsptaglibdirective.content=<%@ taglib uri="" prefix="${cursor}" %>
-Templates.jsphtml.name=New JSP File (html)
-Templates.jsphtml.desc=JSP with html markup
-Templates.jsphtml.content=<%@ page language="java" contentType="text/html; charset=${encoding}"\n    pageEncoding="${encoding}"%>\n<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=${encoding}">\n<title>Insert title here</title>\n</head>\n<body>\n${cursor}\n</body>\n</html>
-Templates.jspxhtml.name=New JSP File (xhtml)
-Templates.jspxhtml.desc=JSP with xhtml markup
-Templates.jspxhtml.content=<?xml version="1.0" encoding="${encoding}" ?>\n<%@ page language="java" contentType="text/html; charset=${encoding}"\n    pageEncoding="${encoding}"%>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml">\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=${encoding}" />\n<title>Insert title here</title>\n</head>\n<body>\n${cursor}\n</body>\n</html>
-Templates.jspxhtmlxml.name=New JSP File (xhtml, xml syntax)
-Templates.jspxhtmlxml.desc=JSP with xhtml markup and xml style syntax
-Templates.jspxhtmlxml.content=<?xml version="1.0" encoding="${encoding}" ?>\n<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">\n    <jsp:directive.page language="java"\n        contentType="text/html; charset=${encoding}" pageEncoding="${encoding}" />\n    <jsp:text>\n        <![CDATA[ <?xml version="1.0" encoding="${encoding}" ?> ]]>\n    </jsp:text>\n    <jsp:text>\n        <![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>\n    </jsp:text>\n<html xmlns="http://www.w3.org/1999/xhtml">\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=${encoding}" />\n<title>Insert title here</title>\n</head>\n<body>\n${cursor}\n</body>\n</html>\n</jsp:root>
\ No newline at end of file
diff --git a/bundles/org.eclipse.jst.jsp.ui/templates/jspdefault-templates.xml b/bundles/org.eclipse.jst.jsp.ui/templates/jspdefault-templates.xml
deleted file mode 100644
index 3539631..0000000
--- a/bundles/org.eclipse.jst.jsp.ui/templates/jspdefault-templates.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<templates>
-
-<template name="%Templates.jspscriptlet.name" description="%Templates.jspscriptlet.desc" id="org.eclipse.jst.jsp.ui.templates.jspscriptlet" context="jsp_tag" enabled="true">%Templates.jspscriptlet.content</template>
-
-<template name="%Templates.jsphiddencomment.name" description="%Templates.jsphiddencomment.desc" id="org.eclipse.jst.jsp.ui.templates.jsphiddencomment" context="jsp_tag" enabled="true">%Templates.jsphiddencomment.content</template>
-
-<template name="%Templates.jspdeclaration.name" description="%Templates.jspdeclaration.desc" id="org.eclipse.jst.jsp.ui.templates.jspdeclaration" context="jsp_tag" enabled="true">%Templates.jspdeclaration.content</template>
-
-<template name="%Templates.jspexpression.name" description="%Templates.jspexpression.desc" id="org.eclipse.jst.jsp.ui.templates.jspexpression" context="jsp_all" enabled="true">%Templates.jspexpression.content</template>
-
-<template name="%Templates.jspincludedirective.name" description="%Templates.jspincludedirective.desc" id="org.eclipse.jst.jsp.ui.templates.jspincludedirective" context="jsp_tag" enabled="true">%Templates.jspincludedirective.content</template>
-
-<template name="%Templates.jsppagedirective.name" description="%Templates.jsppagedirective.desc" id="org.eclipse.jst.jsp.ui.templates.jsppagedirective" context="jsp_tag" enabled="true">%Templates.jsppagedirective.content</template>
-
-<template name="%Templates.jsptaglibdirective.name" description="%Templates.jsptaglibdirective.desc" id="org.eclipse.jst.jsp.ui.templates.jsptaglibdirective" context="jsp_tag" enabled="true">%Templates.jsptaglibdirective.content</template>
-
-<template name="%Templates.jsphtml.name" description="%Templates.jsphtml.desc" id="org.eclipse.jst.jsp.ui.templates.jsphtml" context="jsp_new" enabled="true">%Templates.jsphtml.content</template>
-
-<template name="%Templates.jspxhtml.name" description="%Templates.jspxhtml.desc" id="org.eclipse.jst.jsp.ui.templates.jspxhtml" context="jsp_new" enabled="true">%Templates.jspxhtml.content</template>
-
-<template name="%Templates.jspxhtmlxml.name" description="%Templates.jspxhtmlxml.desc" id="org.eclipse.jst.jsp.ui.templates.jspxhtmlxml" context="jsp_new" enabled="true">%Templates.jspxhtmlxml.content</template>
-</templates>
diff --git a/bundles/org.eclipse.wst.html.core/.classpath b/bundles/org.eclipse.wst.html.core/.classpath
index cb01053..2c6f8c1 100644
--- a/bundles/org.eclipse.wst.html.core/.classpath
+++ b/bundles/org.eclipse.wst.html.core/.classpath
@@ -1,7 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/w3c/dom/css/**/*"/>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/**"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs
index 5f7bac7..0667e35 100644
--- a/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.wst.html.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Sat Aug 19 16:31:43 EDT 2006
+#Wed Mar 28 03:23:07 EDT 2007
 eclipse.preferences.version=1
 org.eclipse.jdt.core.builder.cleanOutputFolder=clean
 org.eclipse.jdt.core.builder.duplicateResourceTask=warning
@@ -64,7 +64,6 @@
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
 org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
 org.eclipse.jdt.core.compiler.problem.unusedImport=error
diff --git a/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF
deleted file mode 100644
index a3f55a1..0000000
--- a/bundles/org.eclipse.wst.html.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,37 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.html.core; singleton:=true
-Bundle-Version: 1.1.3.qualifier
-Bundle-Activator: org.eclipse.wst.html.core.internal.HTMLCorePlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.html.core.internal;x-internal:=true,
- org.eclipse.wst.html.core.internal.cleanup;x-internal:=true,
- org.eclipse.wst.html.core.internal.commentelement.handlers;x-internal:=true,
- org.eclipse.wst.html.core.internal.contentmodel;x-internal:=true,
- org.eclipse.wst.html.core.internal.contentmodel.chtml;x-internal:=true,
- org.eclipse.wst.html.core.internal.contentmodel.ssi;x-internal:=true,
- org.eclipse.wst.html.core.internal.contentproperties;x-internal:=true,
- org.eclipse.wst.html.core.internal.contenttype;x-internal:=true,
- org.eclipse.wst.html.core.internal.document;x-internal:=true,
- org.eclipse.wst.html.core.internal.encoding;x-internal:=true,
- org.eclipse.wst.html.core.internal.format;x-internal:=true,
- org.eclipse.wst.html.core.internal.htmlcss;x-internal:=true,
- org.eclipse.wst.html.core.internal.modelhandler;x-internal:=true,
- org.eclipse.wst.html.core.internal.modelquery;x-internal:=true,
- org.eclipse.wst.html.core.internal.preferences;x-internal:=true,
- org.eclipse.wst.html.core.internal.provisional;x-internal:=true,
- org.eclipse.wst.html.core.internal.provisional.contenttype;x-internal:=true,
- org.eclipse.wst.html.core.internal.provisional.text;x-internal:=true,
- org.eclipse.wst.html.core.internal.text;x-internal:=true,
- org.eclipse.wst.html.core.internal.validate;x-internal:=true,
- org.eclipse.wst.html.core.text
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- com.ibm.icu;bundle-version="[3.4.4,4.0.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.css.core;bundle-version="[1.1.0,1.2.0)"
-Eclipse-LazyStart: true; exceptions="org.eclipse.wst.html.core.internal.contenttype"
diff --git a/bundles/org.eclipse.wst.html.core/about.html b/bundles/org.eclipse.wst.html.core/about.html
index 4ec5989..2199df3 100644
--- a/bundles/org.eclipse.wst.html.core/about.html
+++ b/bundles/org.eclipse.wst.html.core/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>May 2, 2006</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/bundles/org.eclipse.wst.html.core/build.properties b/bundles/org.eclipse.wst.html.core/build.properties
index 82622b7..7ea2b7e 100644
--- a/bundles/org.eclipse.wst.html.core/build.properties
+++ b/bundles/org.eclipse.wst.html.core/build.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
+# Copyright (c) 2004, 2005 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
 # http://www.eclipse.org/legal/epl-v10.html
-# 
+#
 # Contributors:
 #     IBM Corporation - initial API and implementation
 ###############################################################################
diff --git a/bundles/org.eclipse.wst.html.core/plugin.properties b/bundles/org.eclipse.wst.html.core/plugin.properties
index c355a38..7ba2487 100644
--- a/bundles/org.eclipse.wst.html.core/plugin.properties
+++ b/bundles/org.eclipse.wst.html.core/plugin.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
+# Copyright (c) 2004, 2008 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
 ###############################################################################
@@ -12,3 +12,5 @@
 pluginName=Structured Source HTML Model
 Structured_HTML_Document_Factory_Extension.name=Structured HTML Document Factory Extension
 HTML_Content_Type_Extension_Element.name=HTML
+_taskMarker.name=HTML Task
+_validationMarker.name=HTML Problem
diff --git a/bundles/org.eclipse.wst.html.core/plugin.xml b/bundles/org.eclipse.wst.html.core/plugin.xml
index 9d6fc2c..0bd5628 100644
--- a/bundles/org.eclipse.wst.html.core/plugin.xml
+++ b/bundles/org.eclipse.wst.html.core/plugin.xml
@@ -20,9 +20,23 @@
 	<extension point="org.eclipse.wst.sse.core.taskscanner">
 		<scanner
 			id="org.eclipse.wst.html.core.internal.tasks.HTMLFileTaskScanner"
-			class="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner"
+			class="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner:org.eclipse.wst.html.core.taskMarker"
 			contentTypeIds="org.eclipse.wst.html.core.htmlsource" />
 	</extension>
+	<extension
+		id="taskMarker"
+		name="%_taskMarker.name"
+		point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.core.resources.taskmarker"/>
+		<persistent value="true"/>
+	</extension>
+    <extension
+       id="validationMarker"
+        name="%_validationMarker.name"
+        point="org.eclipse.core.resources.markers">
+      <super type="org.eclipse.wst.validation.problemmarker"/>
+      <persistent value="true"/>
+    </extension>
 
 	<extension
 		point="org.eclipse.core.filebuffers.documentCreation"
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java
index 7f612fb..ce33f1d 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLContentBuilder.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -68,4 +68,4 @@
 			return false;
 		return ((Boolean) cmnode.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java
index 931654c..92f6df1 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCoreMessages.java
@@ -1,12 +1,13 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
+/*******************************************************************************
+ * 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 - Initial API and implementation
- **********************************************************************/
+ *******************************************************************************/
 package org.eclipse.wst.html.core.internal;
 
 import org.eclipse.osgi.util.NLS;
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java
index 1299c4f..d1a486b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePlugin.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties
index 3bc2fad..7cb04b6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/HTMLCorePluginResources.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2004 IBM Corporation and others.
+# Copyright (c) 2004, 2006 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -39,4 +39,4 @@
 _ERROR_Attribute_value___0___not_closed__1=Attribute value ({0}) not closed.
 #
 HTMLContentPropertiesManager_Updating=Updating Web Content Settings
-HTMLContentPropertiesManager_Problems_Updating=Problem saving Web Content Settings for {0}
\ No newline at end of file
+HTMLContentPropertiesManager_Problems_Updating=Problem saving Web Content Settings for {0}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java
index f3ca086..c547950 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/Logger.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -141,4 +141,4 @@
 	public static void trace(String category, String message) {
 		_trace(category, message, null);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java
index 37ff30a..b435610 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/AbstractNodeCleanupHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -80,4 +80,4 @@
 	protected Preferences getModelPreferences() {
 		return HTMLCorePlugin.getDefault().getPluginPreferences();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java
index ff8006c..05675c6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/CSSTextNodeCleanupHandler.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,7 +12,8 @@
 
 
 
-import org.eclipse.wst.css.core.internal.format.CSSSourceFormatter;
+import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter;
+import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory;
 import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
@@ -57,10 +58,12 @@
 		if (document == null)
 			return null;
 		INodeNotifier notifier = (INodeNotifier) document;
-		INodeAdapter adapter = notifier.getAdapterFor(CSSSourceFormatter.class);
-		if (adapter == null)
+		CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class);
+		// try another way to get formatter
+		if (formatter == null)
+			formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier);
+		if (formatter == null)
 			return null;
-		CSSSourceFormatter formatter = (CSSSourceFormatter) adapter;
 		StringBuffer buffer = formatter.cleanup(document);
 		if (buffer == null)
 			return null;
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java
index 32d20db..11af74b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/ElementNodeCleanupHandler.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -20,7 +20,8 @@
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.text.edits.InsertEdit;
 import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.wst.css.core.internal.format.CSSSourceFormatter;
+import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter;
+import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory;
 import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
@@ -328,10 +329,12 @@
 		if (document == null)
 			return null;
 		INodeNotifier notifier = (INodeNotifier) document;
-		INodeAdapter adapter = notifier.getAdapterFor(CSSSourceFormatter.class);
-		if (adapter == null)
+		CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class);
+		// try another way to get formatter
+		if (formatter == null)
+			formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier);
+		if (formatter == null)
 			return null;
-		CSSSourceFormatter formatter = (CSSSourceFormatter) adapter;
 		StringBuffer buffer = formatter.cleanup(document);
 		if (buffer == null)
 			return null;
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java
index 21ea68f..8dfc778 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupHandlerFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -43,10 +43,10 @@
 		IStructuredCleanupHandler handler = null;
 		switch (nodeType) {
 			case Node.ELEMENT_NODE : {
-				if (isJSPTag(node))
-					handler = new JSPElementNodeCleanupHandler();
-				else
+				if (isXMLTag(node))
 					handler = new ElementNodeCleanupHandler();
+				else
+					handler = new JSPElementNodeCleanupHandler();
 				break;
 			}
 			case Node.TEXT_NODE : {
@@ -65,56 +65,13 @@
 
 		return handler;
 	}
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on "nestedContext".
-	 */
-
-	private boolean isJSPTag(Node node) {
-
-		final String JSP_CLOSE = "JSP_CLOSE"; //$NON-NLS-1$
-		// final String JSP_COMMENT_CLOSE = "JSP_COMMENT_CLOSE"; //$NON-NLS-1$
-
-		// final String JSP_COMMENT_OPEN = "JSP_COMMENT_OPEN"; //$NON-NLS-1$
-		// final String JSP_COMMENT_TEXT = "JSP_COMMENT_TEXT"; //$NON-NLS-1$
-
-		final String JSP_CONTENT = "JSP_CONTENT"; //$NON-NLS-1$
-		final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$
-		final String JSP_DIRECTIVE_CLOSE = "JSP_DIRECTIVE_CLOSE"; //$NON-NLS-1$
-		final String JSP_DIRECTIVE_NAME = "JSP_DIRECTIVE_NAME"; //$NON-NLS-1$
-
-		final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$
-		final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$
-
-		// final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$
-
-		final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$
-
-		boolean result = false;
-
-		if (node instanceof IDOMNode) {
-			IStructuredDocumentRegion flatNode = ((IDOMNode) node).getFirstStructuredDocumentRegion();
-			// in some cases, the nodes exists, but hasn't been associated
-			// with
-			// a flatnode yet (the screen updates can be initiated on a
-			// different thread,
-			// so the request for a flatnode can come in before the node is
-			// fully formed.
-			// if the flatnode is null, we'll just allow the defaults to
-			// apply.
-			if (flatNode != null) {
-				String flatNodeType = flatNode.getType();
-				// should not be null, but just to be sure
-				if (flatNodeType != null) {
-					if ((flatNodeType.equals(JSP_CONTENT)) || (flatNodeType.equals(JSP_EXPRESSION_OPEN)) || (flatNodeType.equals(JSP_SCRIPTLET_OPEN)) || (flatNodeType.equals(JSP_DECLARATION_OPEN)) || (flatNodeType.equals(JSP_DIRECTIVE_CLOSE)) || (flatNodeType.equals(JSP_DIRECTIVE_NAME)) || (flatNodeType.equals(JSP_DIRECTIVE_OPEN)) || (flatNodeType.equals(JSP_CLOSE))) {
-						result = true;
-					}
-				}
-			}
+	
+	private boolean isXMLTag(Node node) {
+		if(node instanceof IDOMNode) {
+			IStructuredDocumentRegion region = ((IDOMNode) node).getFirstStructuredDocumentRegion();
+			return (DOMRegionContext.XML_TAG_NAME == region.getType());
 		}
-
-		return result;
+		return false;
 	}
 
 	private boolean isParentStyleTag(Node node) {
@@ -144,4 +101,4 @@
 		return true;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java
index 5b765c4..94b2929 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/HTMLCleanupProcessorImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,4 +65,4 @@
 	protected void refreshCleanupPreferences() {
 		fCleanupPreferences = null;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java
index 4b0a783..a289144 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/JSPElementNodeCleanupHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -12,11 +12,19 @@
 
 
 
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.w3c.dom.Node;
 
-public class JSPElementNodeCleanupHandler extends AbstractNodeCleanupHandler {
+public class JSPElementNodeCleanupHandler extends ElementNodeCleanupHandler {
 
 	public Node cleanup(Node node) {
+		/* <jsp:root> should cleanup its descendant nodes */
+		if(node instanceof IDOMNode) {
+			IStructuredDocumentRegion region = ((IDOMNode) node).getFirstStructuredDocumentRegion();
+			if("JSP_ROOT_TAG_NAME".equals(region.getType())) //$NON-NLS-1$
+				return super.cleanup(node);
+		}
 		return node;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java
index 9bb6109..c31f34e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/cleanup/NodeCleanupHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,4 +19,4 @@
 	public Node cleanup(Node node) {
 		return node;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java
index ac88325..3a528bc 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/commentelement/handlers/CommentElementHandlerForSSI.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -147,4 +147,4 @@
 	}
 
 	private static final String SSI_PREFIX = "ssi";//$NON-NLS-1$
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java
index f4e6340..ab2a71c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/AttributeCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -1282,4 +1282,4 @@
 		Iterator names = Arrays.asList(I18N).iterator();
 		getDeclarations(declarations, names);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java
index dac7c81..07973a5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMContentImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -55,4 +55,4 @@
 	public int getMinOccur() {
 		return minOccur;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java
index a8ab34c..0108c61 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMGroupImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -80,4 +80,4 @@
 	public int getOperator() {
 		return operator;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java
index 91f34f2..f8a5e60 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamedNodeMapImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -111,4 +111,4 @@
 			return; // already registered.
 		items.put(cookedName, item);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java
index 20f4c28..6ef737a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNamespaceImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -56,4 +56,4 @@
 	public String getURI() {
 		return getNodeName();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java
index 263d75a..2f6eb44 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -62,4 +62,4 @@
 			return true;
 		return false;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java
index ddcdb1c..08bf21a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CMNodeListImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -59,4 +59,4 @@
 			return null;
 		return (CMNode) nodes.elementAt(index);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java
index 0ab6652..91dba7c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinition.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -72,4 +72,4 @@
 	 * @return java.lang.String
 	 */
 	public abstract String getTypeName();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java
index 60fdef1..9a38d53 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ComplexTypeDefinitionFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -180,4 +180,4 @@
 		instance = new ComplexTypeDefinitionFactory();
 		return instance;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java
index f6e8ddd..76847d0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdAddress.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -68,4 +68,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_ADDRESS;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java
index d617708..623399d 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdColumnGroup.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -66,4 +66,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_COLUMN_GROUP;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java
index 9e4a3e6..626eb8f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdDl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -66,4 +66,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java
index 86e9186..da5e725 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdEmbed.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -62,4 +62,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_EMBED;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java
index bc9ed04..b4f2dfd 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFieldset.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -71,4 +71,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_FIELDSET;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java
index b131398..6c7a08b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFlowContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -46,4 +46,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java
index 7bd1076..03da4b4 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdFrameset.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -90,4 +90,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_FRAMESET;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java
index 8a68177..48bc24f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHead.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -172,4 +172,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_HEAD;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java
index 2cceaad..d2396fc 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdHtml.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -331,4 +331,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_HTML;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java
index ad52c8b..7fbfeab 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdInlineContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -47,4 +47,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java
index aae68af..5ccb079 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdLiContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -66,4 +66,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java
index 83f9b72..3ff2a16 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdMap.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -69,4 +69,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_MAP;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java
index f7ac09b..d193a6c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdNoframesContent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -62,4 +62,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_NOFRAMES_CONTENT;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java
index a772f17..b53480a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdOptionContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -67,4 +67,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_OPTION_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java
index a82afb8..4732191 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdParamContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -68,4 +68,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_PARAM_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java
index b7f6c09..b1d1284 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdSelect.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -66,4 +66,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_SELECT;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java
index d056c8e..7fd73d5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTable.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java
index 40ddbc5..a207876 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTableCellContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -71,4 +71,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_TCELL_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java
index 53adfc6..734c204 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/CtdTrContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -66,4 +66,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_TR_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java
index d464233..d5aab54 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/DeclCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -241,4 +241,4 @@
 	public Iterator iterator() {
 		return new DeclIterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java
index 680bd39..8349964 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ElementCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -878,4 +878,4 @@
 			return;
 		getDeclarations(group, Arrays.asList(SPECIAL).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java
index 350594f..dda7041 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/EntityCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -834,4 +834,4 @@
 
 		return dec;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java
index daef5ce..0ba233a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HCMDocImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -80,4 +80,4 @@
 	public int getNodeType() {
 		return CMNode.DOCUMENT;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java
index c03b2ec..ce938e3 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttrDeclImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -119,4 +119,4 @@
 		}
 		return super.getProperty(propertyName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java
index 1bff6f6..675dc59 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLAttributeDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -21,4 +21,4 @@
  */
 public interface HTMLAttributeDeclaration extends CMAttributeDeclaration {
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java
index 34361dd..fba0b86 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataType.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -63,4 +63,4 @@
 	public static final String STYLE_SHEET = CMDataType.CDATA;
 	/** %Text; == CDATA */
 	public static final String TEXT = CMDataType.CDATA;
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java
index fe6e688..6e50c74 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDataTypeImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -122,4 +122,4 @@
 				break;
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java
index 1af5fa2..af6c7d9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,4 +32,4 @@
 	 * @param entityName java.lang.String
 	 */
 	HTMLEntityDeclaration getEntityDeclaration(String entityName);
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java
index 18e901e..28316ec 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMDocumentFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -12,7 +12,9 @@
 
 
 
+import java.util.Arrays;
 import java.util.Hashtable;
+import java.util.List;
 
 import org.eclipse.wst.html.core.internal.contentmodel.chtml.CHCMDocImpl;
 import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
@@ -25,19 +27,9 @@
 public final class HTMLCMDocumentFactory {
 
 	private static Hashtable cmdocs = new Hashtable();
+	private static List supportedCMtypes = Arrays.asList(new Object[]{CMDocType.HTML_DOC_TYPE, CMDocType.CHTML_DOC_TYPE, CMDocType.JSP11_DOC_TYPE, CMDocType.JSP12_DOC_TYPE, CMDocType.JSP20_DOC_TYPE, CMDocType.TAG20_DOC_TYPE});
 
-	static {
-		CMNamespaceImpl h40ns = new CMNamespaceImpl(HTML40Namespace.HTML40_URI, HTML40Namespace.HTML40_TAG_PREFIX);
-		CMNamespaceImpl j11ns = new CMNamespaceImpl(JSP11Namespace.JSP11_URI, JSP11Namespace.JSP_TAG_PREFIX);
-
-		HCMDocImpl html40doc = new HCMDocImpl(CMDocType.HTML_DOC_TYPE, h40ns);
-		CHCMDocImpl chtmldoc = new CHCMDocImpl(CMDocType.CHTML_DOC_TYPE, h40ns);
-		JCMDocImpl jsp11doc = new JCMDocImpl(CMDocType.JSP11_DOC_TYPE, j11ns);
-
-		cmdocs.put(CMDocType.HTML_DOC_TYPE, html40doc);
-		cmdocs.put(CMDocType.CHTML_DOC_TYPE, chtmldoc);
-		cmdocs.put(CMDocType.JSP11_DOC_TYPE, jsp11doc);
-	}
+	private static JCMDocImpl jsp11doc = null;
 
 	/**
 	 * HTMLCMAdapterFactory constructor.
@@ -48,13 +40,54 @@
 
 	/**
 	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMDocument
-	 * @param cmtype java.lang.String
+	 * @param cmtype
+	 *            java.lang.String
 	 */
 	public static CMDocument getCMDocument(String cmtype) {
 		Object obj = cmdocs.get(cmtype);
-		if (obj == null)
-			return null;
+		if (obj == null && cmtype != null) {
+			if (supportedCMtypes.contains(cmtype)) {
+				obj = doCreateCMDocument(cmtype);
+				cmdocs.put(cmtype, obj);
+			}
+		}
 
 		return (CMDocument) obj;
 	}
-}
\ No newline at end of file
+
+	private static Object doCreateCMDocument(String cmtype) {
+		if (CMDocType.HTML_DOC_TYPE.equals(cmtype)) {
+			CMNamespaceImpl h40ns = new CMNamespaceImpl(HTML40Namespace.HTML40_URI, HTML40Namespace.HTML40_TAG_PREFIX);
+			HCMDocImpl html40doc = new HCMDocImpl(CMDocType.HTML_DOC_TYPE, h40ns);
+			return html40doc;
+		}
+
+		else if (CMDocType.JSP20_DOC_TYPE.equals(cmtype)) {
+			CMNamespaceImpl j20ns = new CMNamespaceImpl(JSP20Namespace.JSP20_URI, JSP11Namespace.JSP_TAG_PREFIX);
+			JCM20DocImpl jsp20doc = new JCM20DocImpl(CMDocType.JSP20_DOC_TYPE, j20ns);
+			return jsp20doc;
+		}
+
+		else if (CMDocType.TAG20_DOC_TYPE.equals(cmtype)) {
+			CMNamespaceImpl j20ns = new CMNamespaceImpl(JSP20Namespace.JSP20_URI, JSP11Namespace.JSP_TAG_PREFIX);
+			TagCMDocImpl tag20doc = new TagCMDocImpl(CMDocType.TAG20_DOC_TYPE, j20ns);
+			return tag20doc;
+		}
+
+		else if (CMDocType.JSP11_DOC_TYPE.equals(cmtype) || CMDocType.JSP12_DOC_TYPE.equals(cmtype)) {
+			if (jsp11doc == null) {
+				CMNamespaceImpl j11ns = new CMNamespaceImpl(JSP11Namespace.JSP11_URI, JSP11Namespace.JSP_TAG_PREFIX);
+				jsp11doc = new JCMDocImpl(CMDocType.JSP11_DOC_TYPE, j11ns);
+			}
+			return jsp11doc;
+		}
+
+		else if (CMDocType.CHTML_DOC_TYPE.equals(cmtype)) {
+			CMNamespaceImpl cH40ns = new CMNamespaceImpl(HTML40Namespace.HTML40_URI, HTML40Namespace.HTML40_TAG_PREFIX);
+			CHCMDocImpl chtmldoc = new CHCMDocImpl(CMDocType.CHTML_DOC_TYPE, cH40ns);
+			return chtmldoc;
+		}
+
+		return null;
+	}
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java
index 8538731..a3623ec 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLCMNode.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,4 +29,4 @@
 	 * @return boolean
 	 */
 	boolean shouldIgnoreCase();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java
index 893c7d8..f0b1471 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElemDeclImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -363,4 +363,4 @@
 		}
 		return false;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java
index 7fe71f3..8dbf0c8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLElementDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -77,4 +77,4 @@
 	 * @param attrName java.lang.String
 	 */
 	HTMLAttributeDeclaration getAttributeDeclaration(String attrName);
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java
index 137647e..d43db28 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -73,4 +73,4 @@
 			return new Boolean(true);
 		return super.getProperty(propertyName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java
index 2663e23..1f7b2d3 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLEntityDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,4 +19,4 @@
  */
 public interface HTMLEntityDeclaration extends org.eclipse.wst.xml.core.internal.contentmodel.CMEntityDeclaration {
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java
index 3553507..448bfb3 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HTMLPropertyDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java
index 9ce421f..92eb28e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedA.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -96,4 +96,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java
index 4f9b73c..b4913f4 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedADDRESS.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -55,4 +55,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java
index d8244cd..9a546f7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAPPLET.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,4 +65,4 @@
 		if (attr != null)
 			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java
index 567e6ce..3afad06 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedAREA.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -58,4 +58,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_SHAPE, HTML40Namespace.ATTR_NAME_COORDS, HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_TARGET, HTML40Namespace.ATTR_NAME_NOHREF, HTML40Namespace.ATTR_NAME_ALT, HTML40Namespace.ATTR_NAME_TABINDEX, HTML40Namespace.ATTR_NAME_ACCESSKEY, HTML40Namespace.ATTR_NAME_ONFOCUS, HTML40Namespace.ATTR_NAME_ONBLUR};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java
index 7417dae..e528814 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -47,4 +47,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_HREF, HTML40Namespace.ATTR_NAME_TARGET};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java
index 01ccce0..2c9109b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBASEFONT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -54,4 +54,4 @@
 		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.REQUIRED);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java
index 67c2609..bcee51f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBDO.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -58,4 +58,4 @@
 		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_DIR, atype, CMAttributeDeclaration.REQUIRED);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_DIR, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java
index 03b0881..3e731d8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBGSOUND.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 		if (attr != null)
 			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_LOOP, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java
index b587b23..d1cb608 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBLOCKQUOTE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -60,4 +60,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java
index ad52960..3324a9a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBODY.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -93,4 +93,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java
index 39749a5..45fa6ce 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBR.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -48,4 +48,4 @@
 		if (attr != null)
 			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_CLEAR, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java
index 6112d25..9754980 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedBUTTON.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -98,4 +98,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java
index 167086c..82b07dc 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCAPTION.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -45,4 +45,4 @@
 		if (attr != null)
 			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java
index 310a875..9d5184f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCENTER.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,4 +53,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java
index e381ed3..14f3226 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -64,4 +64,4 @@
 		// %cellvalign;
 		attributeCollection.getCellvalign(attributes);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java
index 7bf229c..bd2e74f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedCOLGROUP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -71,4 +71,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java
index a200227..6004f84 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDD.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -56,4 +56,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java
index 54aa19d..b2cd2bc 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDIV.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -60,4 +60,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java
index ec67ee9..a45f2f8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -61,4 +61,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java
index 7ace822..c4797fb 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedDT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -56,4 +56,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java
index 558a3d7..c1e301d 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEMBED.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -91,4 +91,4 @@
 		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java
index 8f5898a..4a24b80 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedEmpty.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -46,4 +46,4 @@
 	public int getContentType() {
 		return CMElementDeclaration.EMPTY;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java
index 2db5e0d..f47fbcb 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFIELDSET.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -54,4 +54,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java
index fc610b5..61dd455 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFONT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -59,4 +59,4 @@
 		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_SIZE, atype, CMAttributeDeclaration.OPTIONAL);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_SIZE, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java
index d7c60ae..9986faa 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFORM.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -89,4 +89,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java
index bb844cd..768fe24 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAME.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -59,4 +59,4 @@
 		};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java
index 0f38961..66000dc 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFRAMESET.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -77,4 +77,4 @@
 		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_FRAMEBORDER, atype, CMAttributeDeclaration.OPTIONAL);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_FRAMEBORDER, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java
index 96d47e2..bf211b2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFlowContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,4 +23,4 @@
 		super(elementName, collection);
 		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java
index 9b787c0..d86b142 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedFontStyle.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -61,4 +61,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java
index d2c2e8a..691a061 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHEAD.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -75,4 +75,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java
index bf7155e..868b5c7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHR.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -74,4 +74,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java
index 1522395..99b6332 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHTML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -77,4 +77,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java
index 3123cec..6a17c16 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedHeading.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -81,4 +81,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java
index 6036741..191615e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIFRAME.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -73,4 +73,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java
index ae1296b..1e1805e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedIMG.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -85,4 +85,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java
index ecf5aae..60b3049 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedINPUT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -119,4 +119,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java
index c3ec75d..8c744d6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedISINDEX.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -62,4 +62,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java
index 08812aa..dd08221 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedInlineContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,4 +26,4 @@
 		super(elementName, collection);
 		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java
index aecb7b3..e001032 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLABEL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -90,4 +90,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java
index f66d866..5e3928b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLEGEND.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -51,4 +51,4 @@
 		if (attr != null)
 			attributes.putNamedItem(HTML40Namespace.ATTR_NAME_ALIGN, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java
index 9012dab..f43785e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLI.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -68,4 +68,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java
index 5fe5269..bfe132c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedLINK.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -60,4 +60,4 @@
 		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.OPTIONAL);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java
index ca49717..a7ccf63 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedListItemContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,4 +27,4 @@
 		layoutType = LAYOUT_BLOCK;
 		indentChild = true;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java
index 4e1036f..2a3c2a7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMAP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -50,4 +50,4 @@
 		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.REQUIRED);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_NAME, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java
index c9cadcb..f8653e2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMARQUEE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -78,4 +78,4 @@
 		attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_VSPACE, atype, CMAttributeDeclaration.OPTIONAL);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_VSPACE, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java
index 1957036..0142558 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMENU.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -85,4 +85,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java
index 3b7e008..d5b232c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMETA.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -56,4 +56,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_HTTP_EQUIV, HTML40Namespace.ATTR_NAME_CONTENT, HTML40Namespace.ATTR_NAME_SCHEME};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java
index 3cff404..92c3d0c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedMarkChanges.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -47,4 +47,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_CITE, HTML40Namespace.ATTR_NAME_DATETIME};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java
index 4e3a1a2..42adbd1 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOBR.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,4 +30,4 @@
 			return;
 		attributes = new CMNamedNodeMapImpl();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java
index 3d5d5fd..ed71166 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOEMBED.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,4 +39,4 @@
 		// %coreattrs;
 		attributeCollection.getCore(attributes);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java
index 3d2d044..2ad931b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOFRAMES.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -76,4 +76,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java
index df9a403..2747c23 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedNOSCRIPT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,4 +53,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java
index f229abb..ad48e2f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOBJECT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -83,4 +83,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java
index ad26f3a..6668b90 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -67,4 +67,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java
index 1367344..87a3fc3 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTGROUP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -52,4 +52,4 @@
 		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_LABEL, atype, CMAttributeDeclaration.REQUIRED);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_LABEL, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java
index 0568bd7..b225ee8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedOPTION.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -63,4 +63,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java
index 3ee637c..70feed7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -101,4 +101,4 @@
 		//D217982
 		return terminators.iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java
index bb44fe5..5541a1f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPARAM.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -54,4 +54,4 @@
 		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_NAME, atype, CMAttributeDeclaration.REQUIRED);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_NAME, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java
index 4e6b228..2ba3479 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPRE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -88,4 +88,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java
index 7e14c31..5561495 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPcdata.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 	public int getContentType() {
 		return CMElementDeclaration.PCDATA;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java
index 7561e1e..0e680d5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedPhrase.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,4 +38,4 @@
 		// %attrs;
 		attributeCollection.getAttrs(attributes);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java
index 018232f..185b757 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedQ.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -46,4 +46,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_CITE};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java
index a279a0d..ae910b7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSCRIPT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -78,4 +78,4 @@
 	public int getContentType() {
 		return CMElementDeclaration.CDATA;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java
index 8e3c3f4..78c3a08 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSELECT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -76,4 +76,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java
index b5aaa17..42932f6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSPAN.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,4 +41,4 @@
 		// %attrs;
 		attributeCollection.getAttrs(attributes);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java
index 6638be7..46c7a80 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIBase.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -47,4 +47,4 @@
 			return new Boolean(true);
 		return super.getProperty(propName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java
index 71d292c..b8406a9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIConfig.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -45,4 +45,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_ERRMSG, HTML40Namespace.ATTR_NAME_SIZEFMT, HTML40Namespace.ATTR_NAME_TIMEFMT};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java
index 38c5e6d..4738812 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIEcho.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -43,4 +43,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_VAR};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java
index b2c3c85..2824d57 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIExec.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_CGI, HTML40Namespace.ATTR_NAME_CMD};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java
index 4a83941..50ebdf9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFlastmod.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java
index 93f7541..f2bdbf0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIFsize.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java
index d28a553..63224d8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIInclude.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_FILE, HTML40Namespace.ATTR_NAME_VIRTUAL};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java
index 05c303d..bc10b56 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSIPrintenv.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -46,4 +46,4 @@
 	public CMNamedNodeMap getAttributes() {
 		return super.getAttributes();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java
index ed8c41a..182b85c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSSISet.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 		String[] names = {HTML40Namespace.ATTR_NAME_VAR, HTML40Namespace.ATTR_NAME_VALUE};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java
index 3782d5b..985b7fa 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedSTYLE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -17,6 +17,7 @@
 import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 
 /**
@@ -54,6 +55,7 @@
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 		// (type %ContentType; #REQUIRED) ... should be defined locally.
 		HTMLCMDataTypeImpl atype = new HTMLCMDataTypeImpl(HTMLCMDataType.CONTENT_TYPE);
+		atype.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, "text/css"); //$NON-NLS-1$
 		HTMLAttrDeclImpl attr = new HTMLAttrDeclImpl(HTML40Namespace.ATTR_NAME_TYPE, atype, CMAttributeDeclaration.REQUIRED);
 		attributes.putNamedItem(HTML40Namespace.ATTR_NAME_TYPE, attr);
 	}
@@ -74,4 +76,4 @@
 	public int getContentType() {
 		return CMElementDeclaration.CDATA;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java
index dab20e1..76bf70e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedScripts.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,4 +53,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java
index 77aea58..bed267c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTABLE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -87,4 +87,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java
index 4fb0f5e..f8a61c6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTEXTAREA.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -74,4 +74,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java
index ae8cf19..6919004 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTITLE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,4 +65,4 @@
 		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
 		return exclusion;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java
index cf15cf0..d68a54a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTR.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -71,4 +71,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java
index ad2e6a7..f66eeef 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableBody.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -70,4 +70,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java
index 5a791e6..14fcb49 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedTableCell.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -77,4 +77,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java
index 2244e67..041c5a5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedUL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -70,4 +70,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java
index 2e4e54d..f958fe7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/HedWBR.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,4 +29,4 @@
 			return;
 		attributes = new CMNamedNodeMapImpl();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java
new file mode 100644
index 0000000..767b594
--- /dev/null
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCM20DocImpl.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.html.core.internal.contentmodel;
+
+
+
+
+/**
+ * Implementation of CMDocument for JSP 2.0.
+ */
+class JCM20DocImpl extends JCMDocImpl {
+	/**
+	 * JCM20DocImpl constructor comment.
+	 */
+	public JCM20DocImpl(String docTypeName, CMNamespaceImpl targetNamespace) {
+		super(docTypeName, targetNamespace, new JSP20ElementCollection());
+	}
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java
index 0d60d50..b5fe4da 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JCMDocImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,7 +16,7 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 
 /**
- * Implementation of CMDocument for the JSP 1.1.
+ * Implementation of CMDocument for JSP 1.1 and JSP 1.2.
  */
 class JCMDocImpl extends CMNodeImpl implements JSPCMDocument {
 
@@ -28,9 +28,13 @@
 	 * HCMDocImpl constructor comment.
 	 */
 	public JCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace) {
+		this(docTypeName, targetNamespace, new JSPElementCollection());
+	}
+
+	JCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace, JSPElementCollection collection) {
 		super(docTypeName);
 		namespace = targetNamespace;
-		elements = new JSPElementCollection();
+		elements = collection;
 	}
 
 	public HTMLElementDeclaration getElementDeclaration(String elementName) {
@@ -70,4 +74,4 @@
 	public int getNodeType() {
 		return CMNode.DOCUMENT;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java
index acfff3b..4d1a9b8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP11Namespace.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -109,4 +109,4 @@
 	public static final String ATTR_VALUE_RIGHT = "right"; //$NON-NLS-1$
 	public static final String ATTR_VALUE_JVER11 = "1.1"; //$NON-NLS-1$
 	public static final String ATTR_VALUE_XMLNS_JSP = "http://java.sun.com/JSP/Page"; //$NON-NLS-1$
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java
new file mode 100644
index 0000000..3ca1dad
--- /dev/null
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20ElementCollection.java
@@ -0,0 +1,491 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.html.core.internal.contentmodel;
+
+
+
+import java.lang.reflect.Field;
+
+import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+
+/**
+ * Factory for element declarations of JSP 1.1 and JSP 1.2.
+ */
+final class JSP20ElementCollection extends JSPElementCollection implements JSP20Namespace.ElementName {
+
+	// element IDs
+	private static class Ids20 extends Ids {
+		public static final int ID_BODY = 17;
+		public static final int ID_ATTRIBUTE = 18;
+		public static final int ID_ELEMENT = 19;
+		public static final int ID_OUTPUT = 20;
+
+		public static int getNumOfIds() {
+			if (numofids != -1)
+				return numofids;
+
+			// NOTE: If the reflection is too slow, this method should
+			// just return the literal value, like 105.
+			// -- 5/25/2001
+			Class clazz = Ids20.class;
+			Field[] fields = clazz.getFields();
+			numofids = 0;
+			for (int i = 0; i < fields.length; i++) {
+				String name = fields[i].getName();
+				if (name.startsWith("ID_"))//$NON-NLS-1$
+					numofids++;
+			}
+			return numofids;
+		}
+
+		// chache the result of the reflection.
+		private static int numofids = -1;
+	}
+
+	// attribute creater
+	private class JACreater20 extends JACreater {
+		public JACreater20() {
+			super();
+		}
+
+		public CMNamedNodeMapImpl getDeclarations(int eid) {
+			switch (eid) {
+				case Ids20.ID_ATTRIBUTE :
+					createForAttribute();
+					break;
+				case Ids20.ID_ELEMENT :
+					createForElement();
+					break;
+				case Ids20.ID_BODY :
+					createForBody();
+					break;
+				case Ids20.ID_OUTPUT :
+					createForOutput();
+					break;
+				case Ids.ID_DIRECTIVE_TAGLIB :
+					createForDirTaglib();
+					break;
+				case Ids.ID_DIRECTIVE_PAGE :
+					createForDirPage();
+					break;
+				case Ids.ID_ROOT :
+					createForRoot();
+					break;
+				case Ids.ID_PLUGIN :
+					createForPlugin();
+					break;
+				default :
+					super.getDeclarations(eid);
+			}
+			return declarations;
+		}
+
+		private void createForBody() {
+		}
+
+		private void createForOutput() {
+			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE, JSP20Namespace.ATTR_VALUE_YES, JSP20Namespace.ATTR_VALUE_NO};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_NO);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC, adec);
+		}
+
+		/**
+		 * Changed in 2.0
+		 */
+		void createForDirTaglib() {
+			// ("uri" URI OPTIONAL)
+			AttrDecl adec = new AttrDecl(ATTR_NAME_URI);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(ATTR_NAME_URI, adec);
+
+			// ("tagdir" URI OPTIONAL)
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TAGDIR);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TAGDIR, adec);
+
+			// ("prefix" CDATA REQUIRED)
+			adec = new AttrDecl(ATTR_NAME_PREFIX);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_PREFIX, adec);
+		}
+		
+		void createForDirPage() {
+			AttrDecl adec = null;
+			// ("language" CDATA DECLARED "java")
+			adec = new AttrDecl(ATTR_NAME_LANGUAGE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JAVA);
+			declarations.putNamedItem(ATTR_NAME_LANGUAGE, adec);
+
+			// ("extends" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_EXTENDS);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_EXTENDS, adec);
+
+			// ("import" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_IMPORT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_IMPORT, adec);
+
+			// ("session" ENUM DECLARED (true|false) "true")
+			adec = createBoolType(ATTR_NAME_SESSION, ATTR_VALUE_TRUE);
+			if (adec != null)
+				declarations.putNamedItem(ATTR_NAME_SESSION, adec);
+
+			// ("buffer" CDATA DECLARED "8kb")
+			adec = new AttrDecl(ATTR_NAME_BUFFER);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BUFSIZ_DEFAULT);
+			declarations.putNamedItem(ATTR_NAME_BUFFER, adec);
+
+			// ("autoFlush" ENUM DECLARED (true|false) "true")
+			adec = createBoolType(ATTR_NAME_AUTOFLUSH, ATTR_VALUE_TRUE);
+			if (adec != null)
+				declarations.putNamedItem(ATTR_NAME_AUTOFLUSH, adec);
+
+			// ("isThreadSafe" ENUM DECLARED (true|false) "true")
+			adec = createBoolType(ATTR_NAME_IS_THREAD_SAFE, ATTR_VALUE_TRUE);
+			if (adec != null)
+				declarations.putNamedItem(ATTR_NAME_IS_THREAD_SAFE, adec);
+
+			// ("info" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_INFO);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_INFO, adec);
+
+			// ("errorPage" URI IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_ERROR_PAGE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			declarations.putNamedItem(ATTR_NAME_ERROR_PAGE, adec);
+
+			// ("isErrorPage" ENUM DECLARED (true|false) "false")
+			adec = createBoolType(ATTR_NAME_IS_ERROR_PAGE, ATTR_VALUE_FALSE);
+			if (adec != null)
+				declarations.putNamedItem(ATTR_NAME_IS_ERROR_PAGE, adec);
+
+			// ("contentType" CDATA DECLARED "text/html; ISO-8859-1")
+			adec = new AttrDecl(ATTR_NAME_CONTENT_TYPE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_CT_DEFAULT);
+			declarations.putNamedItem(ATTR_NAME_CONTENT_TYPE, adec);
+
+			// ("pageEncoding" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_PAGE_ENCODING);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_ENCODING_DEFAULT);
+			declarations.putNamedItem(ATTR_NAME_PAGE_ENCODING, adec);
+
+			// ("isELIgnored" ENUM DECLARED (true|false) "false")
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ISELIGNORED);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ISELIGNORED, adec);
+		}
+		
+		private void createForElement() {
+			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_NAME, adec);
+		}
+
+		private void createForAttribute() {
+			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_NAME, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TRIM);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TRIM, adec);
+		}
+		
+		private void createForRoot() {
+			// ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
+			AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
+			declarations.putNamedItem(ATTR_NAME_XMLNS_JSP, adec);
+			// ("version" CDATA REQUIRED)
+			adec = new AttrDecl(ATTR_NAME_VERSION);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JSP_VER_20);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_VERSION, adec);
+		}
+		
+		private void createForPlugin() {
+			// ("type" ENUM REQUIRED (bean|applet))
+			AttrDecl adec = new AttrDecl(ATTR_NAME_TYPE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			String[] values = {ATTR_VALUE_BEAN, ATTR_VALUE_APPLET};
+			adec.type.setEnumValues(values);
+			declarations.putNamedItem(ATTR_NAME_TYPE, adec);
+
+			// ("code" CDATA REQUIRED)
+			adec = new AttrDecl(ATTR_NAME_CODE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_CODE, adec);
+
+			// ("codebase" URI REQUIRED)
+			adec = new AttrDecl(ATTR_NAME_CODEBASE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_CODEBASE, adec);
+
+			// ("align" ENUM IMPLIED (top|middle|bottom|left|right))
+			adec = new AttrDecl(ATTR_NAME_ALIGN);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] aligns = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
+			adec.type.setEnumValues(aligns);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BOTTOM);
+			declarations.putNamedItem(ATTR_NAME_ALIGN, adec);
+
+			// ("archive" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_ARCHIVE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_ARCHIVE, adec);
+
+			// ("height" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_HEIGHT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_HEIGHT, adec);
+
+			// ("hspace" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_HSPACE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_HSPACE, adec);
+
+			// ("jreversion" CDATA DECLARED "1.1")
+			adec = new AttrDecl(ATTR_NAME_JREVERSION);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JVER12);
+			declarations.putNamedItem(ATTR_NAME_JREVERSION, adec);
+
+			// ("name" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_NAME);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_NAME, adec);
+
+			// ("vspace" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_VSPACE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_VSPACE, adec);
+
+			// ("width" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_WIDTH);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_WIDTH, adec);
+
+			// ("nspluginurl" URI IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_NSPLUGINURL);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			declarations.putNamedItem(ATTR_NAME_NSPLUGINURL, adec);
+
+			// ("iepluginurl" URI IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_IEPLUGINURL);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			declarations.putNamedItem(ATTR_NAME_IEPLUGINURL, adec);
+			
+			// ("mayscript" ENUM IMPLIED (true | false)
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_MAYSCRIPT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			adec.type.setEnumValues(new String[] {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE});
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_MAYSCRIPT, adec);
+		}
+	}
+
+	private static String[] names = null;
+
+	static {
+		names = new String[Ids20.getNumOfIds()];
+		names[Ids.ID_SCRIPTLET] = SCRIPTLET;
+		names[Ids.ID_EXPRESSION] = EXPRESSION;
+		names[Ids.ID_DECLARATION] = DECLARATION;
+		names[Ids.ID_DIRECTIVE_PAGE] = DIRECTIVE_PAGE;
+		names[Ids.ID_DIRECTIVE_INCLUDE] = DIRECTIVE_INCLUDE;
+		names[Ids.ID_DIRECTIVE_TAGLIB] = DIRECTIVE_TAGLIB;
+		names[Ids.ID_USEBEAN] = USEBEAN;
+		names[Ids.ID_SETPROPERTY] = SETPROPERTY;
+		names[Ids.ID_GETPROPERTY] = GETPROPERTY;
+		names[Ids.ID_INCLUDE] = INCLUDE;
+		names[Ids.ID_FORWARD] = FORWARD;
+		names[Ids.ID_PLUGIN] = PLUGIN;
+		names[Ids.ID_PARAMS] = PARAMS;
+		names[Ids.ID_FALLBACK] = FALLBACK;
+		names[Ids.ID_PARAM] = PARAM;
+		names[Ids.ID_ROOT] = ROOT;
+		names[Ids.ID_TEXT] = TEXT;
+		names[Ids20.ID_BODY] = JSP20Namespace.ElementName.BODY;
+		names[Ids20.ID_ATTRIBUTE] = JSP20Namespace.ElementName.ATTRIBUTE;
+		names[Ids20.ID_ELEMENT] = JSP20Namespace.ElementName.ELEMENT;
+		names[Ids20.ID_OUTPUT] = JSP20Namespace.ElementName.OUTPUT;
+	}
+
+	/**
+	 */
+	public JSP20ElementCollection() {
+		super(JSP20ElementCollection.names, TOLERANT_CASE);
+	}
+
+	/**
+	 * @param eid
+	 *            int
+	 */
+	CMGroupImpl createContent(int eid) {
+		if (eid == ID_UNKNOWN)
+			return null;
+
+		CMGroupImpl content = null;
+		CMNode child = null;
+
+		switch (eid) {
+			case Ids.ID_ROOT :
+				content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
+				int validChildren[] = {
+				// %Directives;
+							Ids.ID_TEXT, Ids.ID_DIRECTIVE_PAGE, Ids.ID_DIRECTIVE_INCLUDE, Ids20.ID_BODY, Ids20.ID_ATTRIBUTE,
+							// %Scripts;
+							Ids.ID_SCRIPTLET, Ids.ID_DECLARATION, Ids.ID_EXPRESSION,
+							// %Actions;
+							Ids.ID_USEBEAN, Ids.ID_SETPROPERTY, Ids.ID_GETPROPERTY, Ids.ID_INCLUDE, Ids.ID_FORWARD, Ids.ID_PLUGIN};
+				for (int i = 0; i < validChildren.length; i++) {
+					child = item(validChildren[i]);
+					if (child != null)
+						content.appendChild(child);
+				}
+				break;
+			default :
+				content = super.createContent(eid);
+				break;
+		}
+
+		return content;
+	}
+
+	/**
+	 * @param eid
+	 *            int
+	 */
+	HTMLElementDeclaration createElemDecl(int eid) {
+		if (eid == ID_UNKNOWN)
+			return null;
+
+		TypePacket packet = new TypePacket();
+		switch (eid) {
+			case Ids20.ID_BODY :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.BODY;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case Ids20.ID_ELEMENT :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.ELEMENT;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case Ids20.ID_ATTRIBUTE :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.ATTRIBUTE;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case Ids20.ID_OUTPUT :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.OUTPUT;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case Ids.ID_DIRECTIVE_TAGLIB :
+				// directive.taglib
+				packet.name = DIRECTIVE_TAGLIB;
+				packet.omit = HTMLElementDeclaration.OMIT_END;
+				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
+				break;
+			case Ids.ID_DIRECTIVE_PAGE :
+				// directive.page
+				packet.name = DIRECTIVE_PAGE;
+				packet.omit = HTMLElementDeclaration.OMIT_END;
+				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
+				break;
+			case Ids.ID_ROOT :
+				packet.name = ROOT;
+				packet.content = CMElementDeclaration.ELEMENT;
+				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; // same as HTML
+				break;
+			case Ids.ID_PLUGIN :
+				// plugin
+				packet.name = PLUGIN;
+				packet.content = CMElementDeclaration.ELEMENT;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				break;
+			default :
+				return super.createElemDecl(eid);
+		}
+		ElemDecl decl = new ElemDecl(packet);
+
+		CMGroupImpl content = createContent(eid);
+		if (content != null)
+			decl.setContent(content);
+
+		JACreater20 creater = new JACreater20();
+		decl.setAttributes(creater.getDeclarations(eid));
+
+		return decl;
+	}
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java
new file mode 100644
index 0000000..ee138a2
--- /dev/null
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSP20Namespace.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.html.core.internal.contentmodel;
+
+/**
+ * New names for JSP 2.0 spec.
+ * 
+ * @deprecated - use
+ *             org.eclipse.jst.jsp.core.internal.provisional.JSP20Namespace
+ */
+
+public interface JSP20Namespace extends JSP11Namespace {
+	public static String JSP20_URI = "";//$NON-NLS-1$
+
+	/**
+	 * New elements for JSP 2.0 spec.
+	 */
+	public static interface ElementName extends JSP11Namespace.ElementName {
+		String DIRECTIVE_TAG = "jsp:directive.tag"; //$NON-NLS-1$
+		String DIRECTIVE_ATTRIBUTE = "jsp:directive.attribute"; //$NON-NLS-1$
+		String DIRECTIVE_VARIABLE = "jsp:directive.variable"; //$NON-NLS-1$
+		String BODY = "jsp:body"; //$NON-NLS-1$
+		String ATTRIBUTE = "jsp:attribute"; //$NON-NLS-1$
+		String ELEMENT = "jsp:element"; //$NON-NLS-1$
+		String DOBODY = "jsp:doBody";
+		String INVOKE = "jsp:invoke";
+		String OUTPUT = "jsp:output";
+	}
+
+	String ATTR_NAME_TAGDIR = "tagdir"; //$NON-NLS-1$
+
+	String ATTR_NAME_DISPLAY_NAME = "display-name"; //$NON-NLS-1$
+	String ATTR_NAME_BODY_CONTENT = "body-content"; //$NON-NLS-1$
+	String ATTR_NAME_SMALL_ICON = "small-icon"; //$NON-NLS-1$
+	String ATTR_NAME_LARGE_ICON = "large-icon"; //$NON-NLS-1$
+	String ATTR_NAME_DESCRIPTION = "description"; //$NON-NLS-1$
+	String ATTR_NAME_EXAMPLE = "example"; //$NON-NLS-1$
+	String ATTR_NAME_LANGUAGE = "language"; //$NON-NLS-1$
+	String ATTR_NAME_ISELIGNORED = "isELIgnored"; //$NON-NLS-1$
+
+	String ATTR_NAME_REQUIRED = "required"; //$NON-NLS-1$
+	String ATTR_NAME_FRAGMENT = "fragment"; //$NON-NLS-1$
+	String ATTR_NAME_RTEXPRVALUE = "rtexprvalue"; //$NON-NLS-1$
+	String ATTR_NAME_TYPE = "type"; //$NON-NLS-1$
+
+	String ATTR_NAME_NAME_GIVEN = "name-given"; //$NON-NLS-1$
+	String ATTR_NAME_NAME_FROM_ATTRIBUTE = "name-from-attribute"; //$NON-NLS-1$
+	String ATTR_NAME_ALIAS = "alias"; //$NON-NLS-1$
+	String ATTR_NAME_VARIABLE_CLASS = "variable-class"; //$NON-NLS-1$
+	String ATTR_NAME_DECLARE = "declare"; //$NON-NLS-1$
+
+	String ATTR_VALUE_SCRIPTLESS = "scriptless"; //$NON-NLS-1$
+	String ATTR_VALUE_TAGDEPENDENT = "tagdependent"; //$NON-NLS-1$
+	String ATTR_VALUE_EMPTY = "empty"; //$NON-NLS-1$
+
+	String ATTR_NAME_TRIM = "trim"; //$NON-NLS-1$
+
+	String ATTR_NAME_VAR = "var"; //$NON-NLS-1$
+	String ATTR_NAME_VARREADER = "varReader"; //$NON-NLS-1$
+
+	String ATTR_NAME_OMIT_XML_DECL = "omit-xml-declaration"; //$NON-NLS-1$
+	String ATTR_NAME_DOCTYPE_ROOT_ELEMENT = "doctype-root-element"; //$NON-NLS-1$
+	String ATTR_NAME_DOCTYPE_SYSTEM = "doctype-system"; //$NON-NLS-1$
+	String ATTR_NAME_DOCTYPE_PUBLIC = "doctype-public"; //$NON-NLS-1$
+
+	String ATTR_VALUE_NO = "no"; //$NON-NLS-1$
+	String ATTR_VALUE_YES = "yes"; //$NON-NLS-1$
+
+	String ATTR_VALUE_SCOPE_AT_END = "AT_END"; //$NON-NLS-1$
+	String ATTR_VALUE_SCOPE_AT_BEGIN = "AT_BEGIN"; //$NON-NLS-1$
+	String ATTR_VALUE_SCOPE_NESTED = "NESTED"; //$NON-NLS-1$
+
+	String ATTR_NAME_DYNAMIC_ATTRIBUTES = "dynamic-attributes"; //$NON-NLS-1$
+	
+	String ATTR_VALUE_ENCODING_DEFAULT = "ISO-8859-1"; //$NON-NLS-1$
+	
+	String ATTR_VALUE_VARIABLE_CLASS_DEFAULT = "java.lang.String"; //$NON-NLS-1$
+	
+	String ATTR_NAME_MAYSCRIPT = "mayscript"; //$NON-NLS-1$
+	
+	String ATTR_VALUE_JVER12 = "1.2"; //$NON-NLS-1$
+	
+	String ATTR_VALUE_JSP_VER_20 = "2.0"; //$NON-NLS-1$
+	
+	// JSP 2.1 attributes
+//	String ATTR_NAME_DEFERRED_SYNTAX_ALLOWED_AS_LITERAL = "deferredSyntaxAllowedAsLiteral"; //$NON-NLS-1$
+//	String ATTR_NAME_TRIM_DIRECTIVE_WHITESPACES = "trimDirectiveWhitespaces"; //$NON-NLS-1$
+	
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java
index a7f37c9..802bfb2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPCMDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,4 +25,4 @@
 	 * @param elementName java.lang.String
 	 */
 	HTMLElementDeclaration getElementDeclaration(String elementName);
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java
index f6633f2..c517f99 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/JSPElementCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -28,12 +28,12 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 
 /**
- * Factory for element declarations of the JSP 1.1.
+ * Factory for element declarations of the JSP 1.1 and 1.2.
  */
-final class JSPElementCollection extends DeclCollection implements JSP11Namespace.ElementName {
+class JSPElementCollection extends DeclCollection implements JSP11Namespace.ElementName {
 
 
-	private class TypePacket {
+	class TypePacket {
 		public String name = null;
 		public int content = CMElementDeclaration.EMPTY;
 		public int omit = HTMLElementDeclaration.OMIT_NONE;
@@ -48,7 +48,7 @@
 	}
 
 	/** JSP element declaration. */
-	private class ElemDecl extends CMContentImpl implements HTMLElementDeclaration, HTMLPropertyDeclaration {
+	class ElemDecl extends CMContentImpl implements HTMLElementDeclaration, HTMLPropertyDeclaration {
 		private TypePacket type = null;
 		private CMGroupImpl content = null;
 		private CMNamedNodeMapImpl attributes = null;
@@ -66,7 +66,7 @@
 			attributes = attrs;
 		}
 
-		// implementes CMNode
+		// implements CMNode
 		public int getNodeType() {
 			return CMNode.ELEMENT_DECLARATION;
 		}
@@ -88,7 +88,7 @@
 
 		public Object getProperty(String propertyName) {
 			if (propertyName.equals(HTMLCMProperties.SHOULD_IGNORE_CASE)) {
-				return new Boolean(false); //D208839
+				return Boolean.FALSE; //D208839
 			}
 			else if (propertyName.equals(HTMLCMProperties.CONTENT_HINT)) {
 				String myName = getElementName();
@@ -192,7 +192,7 @@
 	}
 
 	// element IDs
-	private static class Ids {
+	static class Ids {
 		public static final int ID_SCRIPTLET = 0;
 		public static final int ID_EXPRESSION = 1;
 		public static final int ID_DECLARATION = 2;
@@ -234,9 +234,9 @@
 	}
 
 	// attribute creater
-	private class JACreater implements JSP11Namespace {
+	class JACreater implements JSP11Namespace {
 		// attribute declaration
-		private class AttrDecl extends CMNodeImpl implements HTMLAttributeDeclaration {
+		class AttrDecl extends CMNodeImpl implements HTMLAttributeDeclaration {
 			HTMLCMDataTypeImpl type = null;
 			int usage = CMAttributeDeclaration.OPTIONAL;
 
@@ -279,7 +279,7 @@
 			}
 		}
 
-		private CMNamedNodeMapImpl declarations = null;
+		CMNamedNodeMapImpl declarations = null;
 
 		public JACreater() {
 			declarations = new CMNamedNodeMapImpl();
@@ -327,7 +327,7 @@
 			return declarations;
 		}
 
-		private AttrDecl createBoolType(String name, String defValue) {
+		AttrDecl createBoolType(String name, String defValue) {
 			AttrDecl adec = new AttrDecl(name);
 			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
 			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
@@ -504,12 +504,13 @@
 			adec.usage = CMAttributeDeclaration.REQUIRED;
 			declarations.putNamedItem(ATTR_NAME_PAGE, adec);
 
-			// ("flush" ENUM REQUIRED (true|false)); Defect TORO:185241
+			// ("flush" ENUM OPTIONAL (true|false)); Defect TORO:185241
 			adec = new AttrDecl(ATTR_NAME_FLUSH);
 			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
 			adec.usage = CMAttributeDeclaration.OPTIONAL;
 			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
 			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
 			declarations.putNamedItem(ATTR_NAME_FLUSH, adec);
 		}
 
@@ -612,7 +613,7 @@
 		}
 
 		private void createForRoot() {
-			// ("xmlns:jsp" CDATA "http://jva.sun.com/JSP/Page")
+			// ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
 			AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
 			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
 			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
@@ -676,6 +677,10 @@
 		names[Ids.ID_TEXT] = TEXT;
 	}
 
+	JSPElementCollection(String[] names, boolean tolerant) {
+		super(names, tolerant);
+	}
+
 	/**
 	 */
 	public JSPElementCollection() {
@@ -693,7 +698,7 @@
 	/**
 	 * @param eid int
 	 */
-	private CMGroupImpl createContent(int eid) {
+	CMGroupImpl createContent(int eid) {
 		if (eid == ID_UNKNOWN)
 			return null;
 
@@ -757,7 +762,7 @@
 	/**
 	 * @param eid int
 	 */
-	private HTMLElementDeclaration createElemDecl(int eid) {
+	HTMLElementDeclaration createElemDecl(int eid) {
 		if (eid == ID_UNKNOWN)
 			return null;
 
@@ -892,4 +897,4 @@
 
 		return dec;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java
index 09cba4b..f3972ec 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -20,4 +20,4 @@
 	boolean supports(HTMLElementDeclaration edecl);
 
 	Object get(HTMLElementDeclaration edecl);
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java
index 38e2619..5eb1abe 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/PropertyProviderFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -357,4 +357,4 @@
 
 		return pp;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java
new file mode 100644
index 0000000..7ae40f2
--- /dev/null
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/Tag20ElementCollection.java
@@ -0,0 +1,693 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.html.core.internal.contentmodel;
+
+
+
+import java.lang.reflect.Field;
+
+import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+
+/**
+ * Factory for element declarations of JSP 2.0 Tag files.
+ */
+final class Tag20ElementCollection extends JSPElementCollection implements JSP20Namespace.ElementName {
+	// element IDs
+	private static class TagIds20 {
+		public static final int ID_SCRIPTLET = 0;
+		public static final int ID_EXPRESSION = 1;
+		public static final int ID_DECLARATION = 2;
+		public static final int ID_DIRECTIVE_TAG = 3;
+		public static final int ID_DIRECTIVE_INCLUDE = 4;
+		public static final int ID_DIRECTIVE_TAGLIB = 5;
+		public static final int ID_USEBEAN = 6;
+		public static final int ID_SETPROPERTY = 7;
+		public static final int ID_GETPROPERTY = 8;
+		public static final int ID_INCLUDE = 9;
+		public static final int ID_FORWARD = 10;
+		public static final int ID_PLUGIN = 11;
+		public static final int ID_PARAMS = 12;
+		public static final int ID_FALLBACK = 13;
+		public static final int ID_PARAM = 14;
+		public static final int ID_ROOT = 15;
+		public static final int ID_TEXT = 16;
+		public static final int ID_DIRECTIVE_VARIABLE = 17;
+		public static final int ID_DIRECTIVE_ATTRIBUTE = 18;
+		public static final int ID_BODY = 19;
+		public static final int ID_ATTRIBUTE = 20;
+		public static final int ID_ELEMENT = 21;
+		public static final int ID_DOBODY = 22;
+		public static final int ID_INVOKE = 23;
+		public static final int ID_OUTPUT = 24;
+
+		// chache the result of the reflection.
+		private static int numofids = -1;
+
+		public static int getNumOfIds() {
+			if (numofids != -1)
+				return numofids;
+
+			// NOTE: If the reflection is too slow, this method should
+			// just return the literal value, like 105.
+			// -- 5/25/2001
+			Class clazz = TagIds20.class;
+			Field[] fields = clazz.getFields();
+			numofids = 0;
+			for (int i = 0; i < fields.length; i++) {
+				String name = fields[i].getName();
+				if (name.startsWith("ID_"))//$NON-NLS-1$
+					numofids++;
+			}
+			return numofids;
+		}
+	}
+
+	// attribute creater
+	private class TACreater20 extends JACreater {
+
+		public TACreater20() {
+			super();
+		}
+
+		private void createForAttribute() {
+			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_NAME, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TRIM);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TRIM, adec);
+		}
+
+		private void createForBody() {
+		}
+
+		private void createForDirAttribute() {
+			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_NAME, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_REQUIRED);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_REQUIRED, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_FRAGMENT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_FRAGMENT, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_RTEXPRVALUE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_RTEXPRVALUE, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TYPE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TYPE, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec);
+		}
+
+		private void createForDirTag() {
+			// ("import" URI optional)
+			AttrDecl adec = new AttrDecl(ATTR_NAME_IMPORT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(ATTR_NAME_IMPORT, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DISPLAY_NAME);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ID);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DISPLAY_NAME, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_BODY_CONTENT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = {JSP20Namespace.ATTR_VALUE_EMPTY, JSP20Namespace.ATTR_VALUE_TAGDEPENDENT, JSP20Namespace.ATTR_VALUE_SCRIPTLESS};
+			adec.type.setEnumValues(values);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_SCRIPTLESS);
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_BODY_CONTENT, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DYNAMIC_ATTRIBUTES);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DYNAMIC_ATTRIBUTES, adec);
+			
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_SMALL_ICON);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_SMALL_ICON, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_LARGE_ICON);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_LARGE_ICON, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_EXAMPLE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_EXAMPLE, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_LANGUAGE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_JAVA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_LANGUAGE, adec);
+
+			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_IMPORT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_IMPORT, adec);
+
+			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_PAGE_ENCODING);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_ENCODING_DEFAULT);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_PAGE_ENCODING, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ISELIGNORED);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_FALSE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ISELIGNORED, adec);
+		}
+
+		/**
+		 * Changed in 2.0 (tagdir added)
+		 */
+		void createForDirTaglib() {
+			// ("uri" URI OPTIONAL)
+			AttrDecl adec = new AttrDecl(ATTR_NAME_URI);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(ATTR_NAME_URI, adec);
+
+			// ("tagdir" URI OPTIONAL)
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_TAGDIR);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_TAGDIR, adec);
+
+			// ("prefix" CDATA REQUIRED)
+			adec = new AttrDecl(ATTR_NAME_PREFIX);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_PREFIX, adec);
+		}
+
+		private void createForDirVariable() {
+			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_NAME_GIVEN);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_NAME_GIVEN, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_NAME_FROM_ATTRIBUTE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_NAME_FROM_ATTRIBUTE, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_ALIAS);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_ALIAS, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARIABLE_CLASS);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_VARIABLE_CLASS_DEFAULT);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARIABLE_CLASS, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DECLARE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = new String[]{ATTR_VALUE_TRUE, ATTR_VALUE_FALSE};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_TRUE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DECLARE, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DESCRIPTION);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DESCRIPTION, adec);
+
+			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			values = new String[]{JSP20Namespace.ATTR_VALUE_SCOPE_NESTED, JSP20Namespace.ATTR_VALUE_SCOPE_AT_BEGIN, JSP20Namespace.ATTR_VALUE_SCOPE_AT_END};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_SCOPE_NESTED);
+			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec);
+		}
+
+		private void createForDoBody() {
+			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VAR);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VAR, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARREADER);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARREADER, adec);
+
+			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_REQUEST, ATTR_VALUE_SESSION, ATTR_VALUE_APPLICATION};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_PAGE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec);
+		}
+
+		private void createForElement() {
+			AttrDecl adec = new AttrDecl(ATTR_NAME_NAME);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_NAME, adec);
+		}
+
+		private void createForInvoke() {
+			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_FRAGMENT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_FRAGMENT, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VAR);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VAR, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_VARREADER);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_VARREADER, adec);
+
+			adec = new AttrDecl(JSP11Namespace.ATTR_NAME_SCOPE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = {ATTR_VALUE_PAGE, ATTR_VALUE_REQUEST, ATTR_VALUE_SESSION, ATTR_VALUE_APPLICATION};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_PAGE);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP11Namespace.ATTR_NAME_SCOPE, adec);
+		}
+
+		private void createForOutput() {
+			AttrDecl adec = new AttrDecl(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] values = {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE, JSP20Namespace.ATTR_VALUE_YES, JSP20Namespace.ATTR_VALUE_NO};
+			adec.type.setEnumValues(values);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_NO);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_OMIT_XML_DECL, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_ROOT_ELEMENT, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_SYSTEM, adec);
+
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.usage = CMAttributeDeclaration.OPTIONAL;
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_DOCTYPE_PUBLIC, adec);
+		}
+		
+		private void createForRoot() {
+			// ("xmlns:jsp" CDATA "http://java.sun.com/JSP/Page")
+			AttrDecl adec = new AttrDecl(ATTR_NAME_XMLNS_JSP);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_XMLNS_JSP);
+			declarations.putNamedItem(ATTR_NAME_XMLNS_JSP, adec);
+			// ("version" CDATA REQUIRED)
+			adec = new AttrDecl(ATTR_NAME_VERSION);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JSP_VER_20);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_VERSION, adec);
+		}
+		
+		private void createForPlugin() {
+			// ("type" ENUM REQUIRED (bean|applet))
+			AttrDecl adec = new AttrDecl(ATTR_NAME_TYPE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			String[] values = {ATTR_VALUE_BEAN, ATTR_VALUE_APPLET};
+			adec.type.setEnumValues(values);
+			declarations.putNamedItem(ATTR_NAME_TYPE, adec);
+
+			// ("code" CDATA REQUIRED)
+			adec = new AttrDecl(ATTR_NAME_CODE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_CODE, adec);
+
+			// ("codebase" URI REQUIRED)
+			adec = new AttrDecl(ATTR_NAME_CODEBASE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			adec.usage = CMAttributeDeclaration.REQUIRED;
+			declarations.putNamedItem(ATTR_NAME_CODEBASE, adec);
+
+			// ("align" ENUM IMPLIED (top|middle|bottom|left|right))
+			adec = new AttrDecl(ATTR_NAME_ALIGN);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			String[] aligns = {ATTR_VALUE_TOP, ATTR_VALUE_MIDDLE, ATTR_VALUE_BOTTOM, ATTR_VALUE_LEFT, ATTR_VALUE_RIGHT};
+			adec.type.setEnumValues(aligns);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, ATTR_VALUE_BOTTOM);
+			declarations.putNamedItem(ATTR_NAME_ALIGN, adec);
+
+			// ("archive" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_ARCHIVE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_ARCHIVE, adec);
+
+			// ("height" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_HEIGHT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_HEIGHT, adec);
+
+			// ("hspace" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_HSPACE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_HSPACE, adec);
+
+			// ("jreversion" CDATA DECLARED "1.1")
+			adec = new AttrDecl(ATTR_NAME_JREVERSION);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			adec.type.setImpliedValue(CMDataType.IMPLIED_VALUE_DEFAULT, JSP20Namespace.ATTR_VALUE_JVER12);
+			declarations.putNamedItem(ATTR_NAME_JREVERSION, adec);
+
+			// ("name" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_NAME);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_NAME, adec);
+
+			// ("vspace" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_VSPACE);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_VSPACE, adec);
+
+			// ("width" CDATA IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_WIDTH);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.CDATA);
+			declarations.putNamedItem(ATTR_NAME_WIDTH, adec);
+
+			// ("nspluginurl" URI IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_NSPLUGINURL);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			declarations.putNamedItem(ATTR_NAME_NSPLUGINURL, adec);
+
+			// ("iepluginurl" URI IMPLIED)
+			adec = new AttrDecl(ATTR_NAME_IEPLUGINURL);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.URI);
+			declarations.putNamedItem(ATTR_NAME_IEPLUGINURL, adec);
+			
+			// ("mayscript" ENUM IMPLIED (true | false)
+			adec = new AttrDecl(JSP20Namespace.ATTR_NAME_MAYSCRIPT);
+			adec.type = new HTMLCMDataTypeImpl(CMDataType.ENUM);
+			adec.type.setEnumValues(new String[] {ATTR_VALUE_TRUE, ATTR_VALUE_FALSE});
+			declarations.putNamedItem(JSP20Namespace.ATTR_NAME_MAYSCRIPT, adec);
+		}
+
+		public CMNamedNodeMapImpl getDeclarations(int eid) {
+			switch (eid) {
+				case TagIds20.ID_DIRECTIVE_TAG :
+					createForDirTag();
+					break;
+				case TagIds20.ID_DIRECTIVE_VARIABLE :
+					createForDirVariable();
+					break;
+				case TagIds20.ID_DIRECTIVE_ATTRIBUTE :
+					createForDirAttribute();
+					break;
+				case TagIds20.ID_DIRECTIVE_TAGLIB :
+					createForDirTaglib();
+					break;
+				case TagIds20.ID_ATTRIBUTE :
+					createForAttribute();
+					break;
+				case TagIds20.ID_ELEMENT :
+					createForElement();
+					break;
+				case TagIds20.ID_BODY :
+					createForBody();
+					break;
+				case TagIds20.ID_DOBODY :
+					createForDoBody();
+					break;
+				case TagIds20.ID_INVOKE :
+					createForInvoke();
+					break;
+				case TagIds20.ID_OUTPUT :
+					createForOutput();
+					break;
+				case TagIds20.ID_ROOT :
+					createForRoot();
+					break;
+				case TagIds20.ID_PLUGIN :
+					createForPlugin();
+					break;
+				default :
+					super.getDeclarations(eid);
+					break;
+			}
+			return declarations;
+		}
+	}
+
+	private static String[] names = null;
+
+	static {
+		names = new String[TagIds20.getNumOfIds()];
+		names[Ids.ID_SCRIPTLET] = JSP11Namespace.ElementName.SCRIPTLET;
+		names[Ids.ID_EXPRESSION] = JSP11Namespace.ElementName.EXPRESSION;
+		names[Ids.ID_DECLARATION] = JSP11Namespace.ElementName.DECLARATION;
+		names[TagIds20.ID_DIRECTIVE_TAG] = JSP20Namespace.ElementName.DIRECTIVE_TAG;
+		names[Ids.ID_DIRECTIVE_INCLUDE] = JSP11Namespace.ElementName.DIRECTIVE_INCLUDE;
+		names[Ids.ID_DIRECTIVE_TAGLIB] = JSP11Namespace.ElementName.DIRECTIVE_TAGLIB;
+		names[Ids.ID_USEBEAN] = JSP11Namespace.ElementName.USEBEAN;
+		names[Ids.ID_SETPROPERTY] = JSP11Namespace.ElementName.SETPROPERTY;
+		names[Ids.ID_GETPROPERTY] = JSP11Namespace.ElementName.GETPROPERTY;
+		names[Ids.ID_INCLUDE] = JSP11Namespace.ElementName.INCLUDE;
+		names[Ids.ID_FORWARD] = JSP11Namespace.ElementName.FORWARD;
+		names[Ids.ID_PLUGIN] = JSP11Namespace.ElementName.PLUGIN;
+		names[Ids.ID_PARAMS] = JSP11Namespace.ElementName.PARAMS;
+		names[Ids.ID_FALLBACK] = JSP11Namespace.ElementName.FALLBACK;
+		names[Ids.ID_PARAM] = JSP11Namespace.ElementName.PARAM;
+		names[Ids.ID_ROOT] = JSP11Namespace.ElementName.ROOT;
+		names[Ids.ID_TEXT] = JSP11Namespace.ElementName.TEXT;
+		names[TagIds20.ID_DIRECTIVE_VARIABLE] = JSP20Namespace.ElementName.DIRECTIVE_VARIABLE;
+		names[TagIds20.ID_DIRECTIVE_ATTRIBUTE] = JSP20Namespace.ElementName.DIRECTIVE_ATTRIBUTE;
+		names[TagIds20.ID_BODY] = JSP20Namespace.ElementName.BODY;
+		names[TagIds20.ID_ATTRIBUTE] = JSP20Namespace.ElementName.ATTRIBUTE;
+		names[TagIds20.ID_ELEMENT] = JSP20Namespace.ElementName.ELEMENT;
+		names[TagIds20.ID_DOBODY] = JSP20Namespace.ElementName.DOBODY;
+		names[TagIds20.ID_INVOKE] = JSP20Namespace.ElementName.INVOKE;
+		names[TagIds20.ID_OUTPUT] = JSP20Namespace.ElementName.OUTPUT;
+	}
+
+	/**
+	 */
+	public Tag20ElementCollection() {
+		super(Tag20ElementCollection.names, TOLERANT_CASE);
+	}
+
+	/**
+	 * @return org.eclipse.wst.xml.core.internal.contentmodel.CMNode
+	 * @param elementName
+	 *            java.lang.String
+	 */
+	protected CMNode create(String elementName) {
+		return createElemDecl(getID(elementName));
+	}
+
+	/**
+	 * @param eid
+	 *            int
+	 */
+	CMGroupImpl createContent(int eid) {
+		if (eid == ID_UNKNOWN)
+			return null;
+
+		CMGroupImpl content = null;
+		CMNode child = null;
+
+		switch (eid) {
+			case Ids.ID_ROOT :
+				content = new CMGroupImpl(CMGroup.CHOICE, 0, CMContentImpl.UNBOUNDED);
+				int validChildren[] = {
+				// %Directives;
+							Ids.ID_TEXT, Ids.ID_DIRECTIVE_PAGE, Ids.ID_DIRECTIVE_INCLUDE, TagIds20.ID_DIRECTIVE_TAG, TagIds20.ID_DIRECTIVE_VARIABLE, TagIds20.ID_DIRECTIVE_ATTRIBUTE, TagIds20.ID_BODY, TagIds20.ID_ATTRIBUTE,
+							// %Scripts;
+							Ids.ID_SCRIPTLET, Ids.ID_DECLARATION, Ids.ID_EXPRESSION,
+							// %Actions;
+							Ids.ID_USEBEAN, Ids.ID_SETPROPERTY, Ids.ID_GETPROPERTY, Ids.ID_INCLUDE, Ids.ID_FORWARD, Ids.ID_PLUGIN};
+				for (int i = 0; i < validChildren.length; i++) {
+					child = item(validChildren[i]);
+					if (child != null)
+						content.appendChild(child);
+				}
+				break;
+			default :
+				content = super.createContent(eid);
+				break;
+		}
+
+		return content;
+	}
+
+	/**
+	 * @param eid
+	 *            int
+	 */
+	HTMLElementDeclaration createElemDecl(int eid) {
+		if (eid == ID_UNKNOWN)
+			return null;
+
+		TypePacket packet = new TypePacket();
+		switch (eid) {
+			case TagIds20.ID_DIRECTIVE_TAG :
+				// directive.taglib
+				packet.name = DIRECTIVE_TAG;
+				packet.omit = HTMLElementDeclaration.OMIT_END;
+				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
+				break;
+			case TagIds20.ID_DIRECTIVE_VARIABLE :
+				// directive.taglib
+				packet.name = DIRECTIVE_VARIABLE;
+				packet.omit = HTMLElementDeclaration.OMIT_END;
+				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
+				break;
+			case TagIds20.ID_DIRECTIVE_ATTRIBUTE :
+				// directive.taglib
+				packet.name = DIRECTIVE_ATTRIBUTE;
+				packet.omit = HTMLElementDeclaration.OMIT_END;
+				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
+				break;
+			case TagIds20.ID_DIRECTIVE_TAGLIB :
+				// directive.taglib
+				packet.name = DIRECTIVE_TAGLIB;
+				packet.omit = HTMLElementDeclaration.OMIT_END;
+				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_DIRECTIVE;
+				break;
+			case TagIds20.ID_BODY :
+				// declaration
+				packet.name = BODY;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case TagIds20.ID_ELEMENT :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.ELEMENT;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case TagIds20.ID_ATTRIBUTE :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.ATTRIBUTE;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case TagIds20.ID_DOBODY :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.DOBODY;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case TagIds20.ID_INVOKE :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.INVOKE;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case TagIds20.ID_OUTPUT :
+				// declaration
+				packet.name = JSP20Namespace.ElementName.OUTPUT;
+				packet.content = CMElementDeclaration.CDATA;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				packet.format = HTMLElementDeclaration.FORMAT_JSP_SCRIPT;
+				break;
+			case TagIds20.ID_ROOT :
+				packet.name = ROOT;
+				packet.content = CMElementDeclaration.ELEMENT;
+				packet.layout = HTMLElementDeclaration.LAYOUT_HIDDEN; // same as HTML
+				break;
+			case TagIds20.ID_PLUGIN :
+				// plugin
+				packet.name = PLUGIN;
+				packet.content = CMElementDeclaration.ELEMENT;
+				packet.layout = HTMLElementDeclaration.LAYOUT_OBJECT;
+				packet.indentChild = true;
+				break;
+			default :
+				return super.createElemDecl(eid);
+		}
+		ElemDecl decl = new ElemDecl(packet);
+
+		CMGroupImpl content = createContent(eid);
+		if (content != null)
+			decl.setContent(content);
+
+		TACreater20 creater = new TACreater20();
+		decl.setAttributes(creater.getDeclarations(eid));
+
+		return decl;
+	}
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java
new file mode 100644
index 0000000..b2298f2
--- /dev/null
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/TagCMDocImpl.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.html.core.internal.contentmodel;
+
+/**
+ * Implementation of CMDocument for the JSP 2.0 tag files.
+ */
+class TagCMDocImpl extends JCMDocImpl {
+	/**
+	 * HCMDocImpl constructor comment.
+	 */
+	public TagCMDocImpl(String docTypeName, CMNamespaceImpl targetNamespace) {
+		super(docTypeName, targetNamespace, new Tag20ElementCollection());
+	}
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java
index 5d28203..e563228 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/AttributeCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -311,4 +311,4 @@
 	 */
 	public void getI18n(CMNamedNodeMapImpl declarations) {
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java
index 5ebf483..00b3528 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHCMDocImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -77,4 +77,4 @@
 	public int getNodeType() {
 		return CMNode.DOCUMENT;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java
index 95d5c21..456503c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CHTMLNamespace.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -149,4 +149,4 @@
 	//   for direction of MARQUEE
 	public static final String ATTR_VALUE_UP = HTML40Namespace.ATTR_VALUE_UP;
 	public static final String ATTR_VALUE_DOWN = HTML40Namespace.ATTR_VALUE_DOWN;
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java
index 28b7966..5633cf5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMContentImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,4 +53,4 @@
 	public int getMinOccur() {
 		return minOccur;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java
index 812b3ed..2c546f5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMGroupImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -80,4 +80,4 @@
 	public int getOperator() {
 		return operator;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java
index 098f91a..d1bae1e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNamedNodeMapImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -109,4 +109,4 @@
 			return; // already registered.
 		items.put(cookedName, item);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java
index c383848..62f7a01 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -61,4 +61,4 @@
 			return true;
 		return false;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java
index 3e4404a..c1b1cda 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CMNodeListImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -56,4 +56,4 @@
 			return null;
 		return (CMNode) nodes.elementAt(index);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java
index a0c2dfd..fd47c7e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinition.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -73,4 +73,4 @@
 	 * @return java.lang.String
 	 */
 	public abstract String getTypeName();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java
index 5f346bf..2a682f9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ComplexTypeDefinitionFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -141,4 +141,4 @@
 		instance = new ComplexTypeDefinitionFactory();
 		return instance;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java
index 84796f4..4ad13c0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdAddress.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -67,4 +67,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_ADDRESS;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java
index dcfb159..c0abf8a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdDl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,4 +65,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_DEFINITION_LIST;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java
index ee94d62..a198d74 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdFlowContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -46,4 +46,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java
index 5361c3a..9af78c6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHead.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -171,4 +171,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_HEAD;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java
index 72bab17..cf4fe4a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdHtml.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -71,4 +71,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_HTML;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java
index 973944a..ed234aa 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdInlineContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -47,4 +47,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java
index 8e4716a..b28956e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdLiContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,4 +65,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_LI_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java
index b1e0a54..c2ec6c5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdOptionContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -66,4 +66,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_OPTION_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java
index cc0d61e..7f0c96c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/CtdSelect.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -61,4 +61,4 @@
 	public String getTypeName() {
 		return ComplexTypeDefinitionFactory.CTYPE_SELECT;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java
index 22558cf..af90b74 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/DeclCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -248,4 +248,4 @@
 	public Iterator iterator() {
 		return new DeclIterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java
index bf5ad46..8a80135 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/ElementCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -489,4 +489,4 @@
 			return;
 		getDeclarations(group, Arrays.asList(SPECIAL).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java
index 7b44593..4f371fc 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/EntityCollection.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -834,4 +834,4 @@
 
 		return dec;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java
index 505d662..98ab2d9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLAttrDeclImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -115,4 +115,4 @@
 			return new Boolean(true);
 		return super.getProperty(propertyName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java
index 64931b6..63366fd 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMDataTypeImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -123,4 +123,4 @@
 				break;
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java
index a1e555a..b294b27 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLCMNode.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -29,4 +29,4 @@
 	 * @return boolean
 	 */
 	boolean shouldIgnoreCase();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java
index 759294d..c003526 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLElemDeclImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -366,4 +366,4 @@
 		}
 		return false;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java
index c63d2a8..1a47b01 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HTMLEntityDeclImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -74,4 +74,4 @@
 			return new Boolean(true);
 		return super.getProperty(propertyName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java
index 455ca28..f603c37 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedA.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -95,4 +95,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java
index 55579d8..36a72f2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedADDRESS.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -54,4 +54,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java
index ab2c816..f33abe0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBASE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_HREF,};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java
index 818156e..5aef97b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBLOCKQUOTE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -54,4 +54,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java
index 992288f..7483c58 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBODY.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,4 +65,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java
index 30ef48b..3ec16f5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedBR.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -48,4 +48,4 @@
 		if (attr != null)
 			attributes.putNamedItem(CHTMLNamespace.ATTR_NAME_CLEAR, attr);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java
index c2c60d6..7693933 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedCENTER.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -52,4 +52,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java
index a5da292..dd70e26 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDD.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,4 +53,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java
index adb56c2..8e2d794 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDIV.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -59,4 +59,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java
index c09c9ac..1746bb2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -56,4 +56,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java
index e12c4c4..933d877 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedDT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,4 +53,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java
index 92c30da..c6de6e0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedEmpty.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -46,4 +46,4 @@
 	public int getContentType() {
 		return CMElementDeclaration.EMPTY;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java
index 599ca9a..090d61a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFORM.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -88,4 +88,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java
index 99f307b..8c48416 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedFlowContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,4 +23,4 @@
 		super(elementName, collection);
 		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_FLOW_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java
index 2366dce..e8ef6f9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHEAD.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -68,4 +68,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java
index ed65ab3..732d095 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHR.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -72,4 +72,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java
index a6243d2..36c2e4a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHTML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -77,4 +77,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java
index 398e97a..af3be37 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedHeading.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -81,4 +81,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java
index ae95384..e8454e2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedIMG.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -84,4 +84,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java
index bf0951c..29acb3a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedINPUT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -105,4 +105,4 @@
 		};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java
index 99f14c9..dbd4bc9 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedInlineContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,4 +26,4 @@
 		super(elementName, collection);
 		typeDefinitionName = ComplexTypeDefinitionFactory.CTYPE_INLINE_CONTAINER;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java
index 6a3a344..ea1f4a6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedLI.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -55,4 +55,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java
index 9e457c7..1f35e93 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedListItemContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -27,4 +27,4 @@
 		layoutType = LAYOUT_BLOCK;
 		indentChild = true;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java
index 581d954..c0f0e83 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMENU.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -83,4 +83,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java
index 882eca9..172a6fb 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedMETA.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -64,4 +64,4 @@
 		};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java
index b2583d0..7e801d2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -55,4 +55,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java
index 84a081d..6df202d 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedOPTION.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -60,4 +60,4 @@
 	protected Iterator getTerminators() {
 		return Arrays.asList(terminators).iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java
index eb056eb..a92e091 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedP.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -101,4 +101,4 @@
 		//D217982
 		return terminators.iterator();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java
index 99f5975..02f5353 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPRE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -87,4 +87,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java
index 15b13c3..6490df0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedPcdata.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 	public int getContentType() {
 		return CMElementDeclaration.PCDATA;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java
index cbd0bb8..db036f7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSELECT.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -62,4 +62,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_MULTIPLE,};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java
index b0e0bd3..fddb04d 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIBase.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -49,4 +49,4 @@
 			return new Boolean(true);
 		return super.getProperty(propName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java
index d5e92e3..3b52b06 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIConfig.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -42,4 +42,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_ERRMSG, CHTMLNamespace.ATTR_NAME_SIZEFMT, CHTMLNamespace.ATTR_NAME_TIMEFMT};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java
index 3cf3f7c..9d1b226 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIEcho.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -40,4 +40,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_VAR};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java
index e97cb5d..26ad58e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIExec.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,4 +41,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_CGI, CHTMLNamespace.ATTR_NAME_CMD};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java
index 75eaf9d..5a0cb73 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFlastmod.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,4 +41,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java
index 3fbf3c1..c56f282 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIFsize.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,4 +41,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java
index 4788b5e..220f726 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIInclude.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,4 +41,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_FILE, CHTMLNamespace.ATTR_NAME_VIRTUAL};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java
index 0064a4f..6860996 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSIPrintenv.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -45,4 +45,4 @@
 	public CMNamedNodeMap getAttributes() {
 		return super.getAttributes();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java
index e1a8e1d..d447488 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedSSISet.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,4 +41,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_VAR, CHTMLNamespace.ATTR_NAME_VALUE};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java
index bef9535..18198ea 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTEXTAREA.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -59,4 +59,4 @@
 		String[] names = {CHTMLNamespace.ATTR_NAME_NAME, CHTMLNamespace.ATTR_NAME_ROWS, CHTMLNamespace.ATTR_NAME_COLS, CHTMLNamespace.ATTR_NAME_ISTYLE};
 		attributeCollection.getDeclarations(attributes, Arrays.asList(names).iterator());
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java
index 007bf35..e92e0ad 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedTITLE.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,4 +65,4 @@
 		elementCollection.getDeclarations(exclusion, Arrays.asList(names).iterator());
 		return exclusion;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java
index 15ddbc1..a2249a8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/HedUL.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -54,4 +54,4 @@
 
 		return prohibitedAncestors;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java
index 6ed567d..6040a3e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,4 +23,4 @@
 	boolean supports(HTMLElementDeclaration edecl);
 
 	Object get(HTMLElementDeclaration edecl);
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java
index 2c7b1b9..214a2ca 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/chtml/PropertyProviderFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -361,4 +361,4 @@
 
 		return pp;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java
index 949941f..3a4dfd7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contentmodel/ssi/SSICMDocumentFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -155,4 +155,4 @@
 		return mycm;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java
index 66b6bc2..8b359e6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/AbstractResourceEncodingDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java
index bfca51a..98199b0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ByteReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java
index 376d2f8..8a70983 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/ContentDescriberForHTML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -228,4 +228,4 @@
 		return result;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java
index be7f3a0..eb46433 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/EncodingGuesser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java
index dc68f67..1dbdf56 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLHeadTokenizer.java
@@ -1,5 +1,7 @@
+/* The following code was generated by JFlex 1.2.2 on 7/28/08 5:19 PM */
+
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
@@ -8,11 +10,8 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:41 PM */
-
-/*nlsXXX*/  
+/*nlsXXX*/
 package org.eclipse.wst.html.core.internal.contenttype;
-
 import java.io.IOException;
 import java.io.Reader;
 
@@ -21,100 +20,125 @@
 
 
 
+
 /**
  * This class is a scanner generated by 
  * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 1/27/04 6:41 PM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jflex</tt>
+ * on 7/28/08 5:19 PM from the specification file
+ * <tt>file:/D:/workspaces/wtp301/workspace/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex</tt>
  */
 public class HTMLHeadTokenizer {
 
-	/** this character denotes the end of file */
-	final public static int YYEOF = -1;
+  /** this character denotes the end of file */
+  final public static int YYEOF = -1;
 
-	/** lexical states */
-	final public static int ST_META_TAG = 4;
-	final public static int YYINITIAL = 0;
-	final public static int UnDelimitedString = 12;
-	final public static int DQ_STRING = 8;
-	final public static int SQ_STRING = 10;
-	final public static int ST_XMLDecl = 2;
-	final public static int QuotedAttributeValue = 6;
+  /** lexical states */
+  final public static int ST_META_TAG = 4;
+  final public static int YYINITIAL = 0;
+  final public static int UnDelimitedString = 12;
+  final public static int DQ_STRING = 8;
+  final public static int UnDelimitedCharset = 14;
+  final public static int SQ_STRING = 10;
+  final public static int ST_XMLDecl = 2;
+  final public static int QuotedAttributeValue = 6;
 
-	/**
-	 * YY_LEXSTATE[l] is the state in the DFA for the lexical state l
-	 * YY_LEXSTATE[l+1] is the state in the DFA for the lexical state l
-	 *                  at the beginning of a line
-	 * l is of the form l = 2*k, k a non negative integer
-	 */
-	private final static int YY_LEXSTATE[] = {0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7};
+  /**
+   * YY_LEXSTATE[l] is the state in the DFA for the lexical state l
+   * YY_LEXSTATE[l+1] is the state in the DFA for the lexical state l
+   *                  at the beginning of a line
+   * l is of the form l = 2*k, k a non negative integer
+   */
+  private final static int YY_LEXSTATE[] = { 
+     0,  1,  2,  2,  3,  3,  4,  4,  5,  5,  6,  6,  7,  7,  8, 8
+  };
 
-	/** 
-	 * Translates characters to character classes
-	 */
-	final private static String yycmap_packed = "\11\0\1\6\1\7\2\0\1\11\22\0\1\22\1\0\1\40\2\0" + "\1\44\1\0\1\43\5\0\1\34\1\0\1\42\13\0\1\45\1\12" + "\1\10\1\31\1\13\1\0\1\21\1\0\1\24\1\26\1\17\1\0" + "\1\30\1\32\1\27\2\0\1\16\1\15\1\23\1\25\1\33\1\35" + "\2\0\1\20\1\36\1\37\1\0\1\14\1\41\7\0\1\21\1\0" + "\1\24\1\26\1\17\1\0\1\30\1\32\1\27\2\0\1\16\1\15" + "\1\23\1\25\1\33\1\35\2\0\1\20\1\36\1\37\1\0\1\14" + "\1\41\101\0\1\4\3\0\1\5\17\0\1\3\16\0\1\1\20\0" + "\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
+  /** 
+   * Translates characters to character classes
+   */
+  final private static String yycmap_packed = 
+    "\1\11\10\0\1\6\1\7\2\0\1\10\22\0\1\6\1\0\1\40"+
+    "\2\0\1\44\1\0\1\43\5\0\1\34\1\0\1\42\13\0\1\45"+
+    "\1\13\1\12\1\31\1\14\1\0\1\22\1\0\1\24\1\26\1\20"+
+    "\1\0\1\30\1\32\1\27\2\0\1\17\1\16\1\23\1\25\1\33"+
+    "\1\35\2\0\1\21\1\36\1\37\1\0\1\15\1\41\7\0\1\22"+
+    "\1\0\1\24\1\26\1\20\1\0\1\30\1\32\1\27\2\0\1\17"+
+    "\1\16\1\23\1\25\1\33\1\35\2\0\1\21\1\36\1\37\1\0"+
+    "\1\15\1\41\101\0\1\4\3\0\1\5\17\0\1\3\16\0\1\1"+
+    "\20\0\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
 
-	/** 
-	 * Translates characters to character classes
-	 */
-	final private static char[] yycmap = yy_unpack_cmap(yycmap_packed);
+  /** 
+   * Translates characters to character classes
+   */
+  final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
 
 
-	/* error codes */
-	final private static int YY_UNKNOWN_ERROR = 0;
-	final private static int YY_ILLEGAL_STATE = 1;
-	final private static int YY_NO_MATCH = 2;
-	final private static int YY_PUSHBACK_2BIG = 3;
+  /* error codes */
+  final private static int YY_UNKNOWN_ERROR = 0;
+  final private static int YY_ILLEGAL_STATE = 1;
+  final private static int YY_NO_MATCH = 2;
+  final private static int YY_PUSHBACK_2BIG = 3;
 
-	/* error messages for the codes above */
-	final private static String YY_ERROR_MSG[] = {"Unkown internal scanner error", "Internal error: unknown state", "Error: could not match input", "Error: pushback value was too large"};
+  /* error messages for the codes above */
+  final private static String YY_ERROR_MSG[] = {
+    "Unkown internal scanner error",
+    "Internal error: unknown state",
+    "Error: could not match input",
+    "Error: pushback value was too large"
+  };
 
-	/** the input device */
-	private java.io.Reader yy_reader;
+  /** the input device */
+  private java.io.Reader yy_reader;
 
-	/** the current state of the DFA */
-	private int yy_state;
+  /** the current state of the DFA */
+  private int yy_state;
 
-	/** the current lexical state */
-	private int yy_lexical_state = YYINITIAL;
+  /** the current lexical state */
+  private int yy_lexical_state = YYINITIAL;
 
-	/** this buffer contains the current text to be matched and is
-	 the source of the yytext() string */
-	private char yy_buffer[] = new char[16384];
+  /** this buffer contains the current text to be matched and is
+      the source of the yytext() string */
+  private char yy_buffer[] = new char[16384];
 
-	/** the textposition at the last accepting state */
-	private int yy_markedPos;
+  /** the textposition at the last accepting state */
+  private int yy_markedPos;
 
-	/** the textposition at the last state to be included in yytext */
-	private int yy_pushbackPos;
+  /** the textposition at the last state to be included in yytext */
+  private int yy_pushbackPos;
 
-	/** the current text position in the buffer */
-	private int yy_currentPos;
+  /** the current text position in the buffer */
+  private int yy_currentPos;
 
-	/** startRead marks the beginning of the yytext() string in the buffer */
-	private int yy_startRead;
+  /** startRead marks the beginning of the yytext() string in the buffer */
+  private int yy_startRead;
 
-	/** endRead marks the last character in the buffer, that has been read
-	 from input */
-	private int yy_endRead;
+  /** endRead marks the last character in the buffer, that has been read
+      from input */
+  private int yy_endRead;
 
+  /** number of newlines encountered up to the start of the matched text */
+//  private int yyline;
 
-	/** the number of characters up to the start of the matched text */
-	private int yychar;
+  /** the number of characters up to the start of the matched text */
+  private int yychar;
 
+  /**
+   * the number of characters from the last newline up to the start of the 
+   * matched text
+   */
+//  private int yycolumn; 
 
-	/** 
-	 * yy_atBOL == true <=> the scanner is currently at the beginning of a line
-	 */
-	private boolean yy_atBOL;
+  /** 
+   * yy_atBOL == true <=> the scanner is currently at the beginning of a line
+   */
+  private boolean yy_atBOL;
 
-	/** yy_atEOF == true <=> the scanner has returned a value for EOF */
-	private boolean yy_atEOF;
+  /** yy_atEOF == true <=> the scanner has returned a value for EOF */
+  private boolean yy_atEOF;
 
-	/** denotes if the user-EOF-code has already been executed */
-	private boolean yy_eof_done;
+  /** denotes if the user-EOF-code has already been executed */
+  private boolean yy_eof_done;
 
-	/* user code: */
+  /* user code: */
 
 
 	private boolean hasMore = true;
@@ -131,69 +155,76 @@
 		super();
 	}
 
-	public void reset(Reader in) {
-		/* the input device */
-		yy_reader = in;
+	  public void reset (Reader in) {
+	  	/* the input device */
+	  	yy_reader = in;
 
-		/* the current state of the DFA */
-		yy_state = 0;
+  		/* the current state of the DFA */
+  		yy_state = 0;
 
-		/* the current lexical state */
-		yy_lexical_state = YYINITIAL;
+  		/* the current lexical state */
+  		yy_lexical_state = YYINITIAL;
 
-		/* this buffer contains the current text to be matched and is
-		 the source of the yytext() string */
-		java.util.Arrays.fill(yy_buffer, (char) 0);
+  		/* this buffer contains the current text to be matched and is
+  		 the source of the yytext() string */
+  		java.util.Arrays.fill(yy_buffer, (char)0);
 
-		/* the textposition at the last accepting state */
-		yy_markedPos = 0;
+  		/* the textposition at the last accepting state */
+  		yy_markedPos = 0;
 
-		/* the textposition at the last state to be included in yytext */
-		yy_pushbackPos = 0;
+  		/* the textposition at the last state to be included in yytext */
+  		yy_pushbackPos = 0;
 
-		/* the current text position in the buffer */
-		yy_currentPos = 0;
+  		/* the current text position in the buffer */
+  		yy_currentPos = 0;
 
-		/* startRead marks the beginning of the yytext() string in the buffer */
-		yy_startRead = 0;
+  		/* startRead marks the beginning of the yytext() string in the buffer */
+  		yy_startRead = 0;
 
-		/** 
-		 * endRead marks the last character in the buffer, that has been read
-		 * from input 
-		 */
-		yy_endRead = 0;
+  		/** 
+  		 * endRead marks the last character in the buffer, that has been read
+  		 * from input 
+  		 */
+  		yy_endRead = 0;
+
+  		/* number of newlines encountered up to the start of the matched text */
+//  		yyline = 0;
+
+  		/* the number of characters up to the start of the matched text */
+  		yychar = 0;
+
+  		/**
+  		 * the number of characters from the last newline up to the start
+  		 * of the matched text
+  		 */
+//  		yycolumn = 0; 
+
+  		/** 
+  		 * yy_atBOL == true <=> the scanner is currently at the beginning 
+  		 * of a line
+  		 */
+  		yy_atBOL = false;
+
+  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
+  		yy_atEOF = false;
+
+  		/* denotes if the user-EOF-code has already been executed */
+  		yy_eof_done = false;
 
 
-		/* the number of characters up to the start of the matched text */
-		yychar = 0;
-
-
-		/** 
-		 * yy_atBOL == true <=> the scanner is currently at the beginning 
-		 * of a line
-		 */
-		yy_atBOL = false;
-
-		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-		yy_atEOF = false;
-
-		/* denotes if the user-EOF-code has already been executed */
-		yy_eof_done = false;
-
-
-		fStateStack.clear();
-
-		hasMore = true;
-
+  		fStateStack.clear();
+  		
+  		hasMore = true;
+  		
 		// its a little wasteful to "throw away" first char array generated
 		// by class init (via auto generated code), but we really do want
 		// a small buffer for our head parsers.
 		if (yy_buffer.length != MAX_TO_SCAN) {
 			yy_buffer = new char[MAX_TO_SCAN];
 		}
+  		
 
-
-	}
+  	}
 
 
 	public final HeadParserToken getNextToken() throws IOException {
@@ -203,8 +234,7 @@
 		if (valueText != null) {
 			result = createToken(context, yychar, valueText);
 			valueText = null;
-		}
-		else {
+		} else {
 			result = createToken(context, yychar, yytext());
 		}
 		return result;
@@ -213,7 +243,6 @@
 	public final boolean hasMoreTokens() {
 		return hasMore && yychar < MAX_TO_SCAN;
 	}
-
 	private void pushCurrentState() {
 		fStateStack.push(yystate());
 
@@ -222,1469 +251,1731 @@
 	private void popState() {
 		yybegin(fStateStack.pop());
 	}
-
 	private HeadParserToken createToken(String context, int start, String text) {
 		return new HeadParserToken(context, start, text);
 	}
+	
 
 
 
-	/**
-	 * Creates a new scanner
-	 * There is also a java.io.InputStream version of this constructor.
-	 *
-	 * @param   in  the java.io.Reader to read input from.
-	 */
-	public HTMLHeadTokenizer(java.io.Reader in) {
-		this.yy_reader = in;
-	}
+  /**
+   * Creates a new scanner
+   * There is also a java.io.InputStream version of this constructor.
+   *
+   * @param   in  the java.io.Reader to read input from.
+   */
+  public HTMLHeadTokenizer(java.io.Reader in) {
+    this.yy_reader = in;
+  }
 
-	/**
-	 * Creates a new scanner.
-	 * There is also java.io.Reader version of this constructor.
-	 *
-	 * @param   in  the java.io.Inputstream to read input from.
-	 */
-	public HTMLHeadTokenizer(java.io.InputStream in) {
-		this(new java.io.InputStreamReader(in));
-	}
+  /**
+   * Creates a new scanner.
+   * There is also java.io.Reader version of this constructor.
+   *
+   * @param   in  the java.io.Inputstream to read input from.
+   */
+  public HTMLHeadTokenizer(java.io.InputStream in) {
+    this(new java.io.InputStreamReader(in));
+  }
 
-	/** 
-	 * Unpacks the compressed character translation table.
-	 *
-	 * @param packed   the packed character translation table
-	 * @return         the unpacked character translation table
-	 */
-	private static char[] yy_unpack_cmap(String packed) {
-		char[] map = new char[0x10000];
-		int i = 0; /* index in packed string  */
-		int j = 0; /* index in unpacked array */
-		while (i < 174) {
-			int count = packed.charAt(i++);
-			char value = packed.charAt(i++);
-			do
-				map[j++] = value;
-			while (--count > 0);
-		}
-		return map;
-	}
+  /** 
+   * Unpacks the compressed character translation table.
+   *
+   * @param packed   the packed character translation table
+   * @return         the unpacked character translation table
+   */
+  private static char [] yy_unpack_cmap(String packed) {
+    char [] map = new char[0x10000];
+    int i = 0;  /* index in packed string  */
+    int j = 0;  /* index in unpacked array */
+    while (i < 176) {
+      int  count = packed.charAt(i++);
+      char value = packed.charAt(i++);
+      do map[j++] = value; while (--count > 0);
+    }
+    return map;
+  }
 
 
-	/**
-	 * Gets the next input character.
-	 *
-	 * @return      the next character of the input stream, EOF if the
-	 *              end of the stream is reached.
-	 * @exception   IOException  if any I/O-Error occurs
-	 */
-	private int yy_advance() throws java.io.IOException {
+  /**
+   * Gets the next input character.
+   *
+   * @return      the next character of the input stream, EOF if the
+   *              end of the stream is reached.
+   * @exception   IOException  if any I/O-Error occurs
+   */
+  private int yy_advance() throws java.io.IOException {
 
-		/* standard case */
-		if (yy_currentPos < yy_endRead)
-			return yy_buffer[yy_currentPos++];
+    /* standard case */
+    if (yy_currentPos < yy_endRead) return yy_buffer[yy_currentPos++];
 
-		/* if the eof is reached, we don't need to work hard */
-		if (yy_atEOF)
-			return YYEOF;
+    /* if the eof is reached, we don't need to work hard */ 
+    if (yy_atEOF) return YYEOF;
 
-		/* otherwise: need to refill the buffer */
+    /* otherwise: need to refill the buffer */
 
-		/* first: make room (if you can) */
-		if (yy_startRead > 0) {
-			System.arraycopy(yy_buffer, yy_startRead, yy_buffer, 0, yy_endRead - yy_startRead);
+    /* first: make room (if you can) */
+    if (yy_startRead > 0) {
+      System.arraycopy(yy_buffer, yy_startRead, 
+                       yy_buffer, 0, 
+                       yy_endRead-yy_startRead);
 
-			/* translate stored positions */
-			yy_endRead -= yy_startRead;
-			yy_currentPos -= yy_startRead;
-			yy_markedPos -= yy_startRead;
-			yy_pushbackPos -= yy_startRead;
-			yy_startRead = 0;
-		}
+      /* translate stored positions */
+      yy_endRead-= yy_startRead;
+      yy_currentPos-= yy_startRead;
+      yy_markedPos-= yy_startRead;
+      yy_pushbackPos-= yy_startRead;
+      yy_startRead = 0;
+    }
 
-		/* is the buffer big enough? */
-		if (yy_currentPos >= yy_buffer.length) {
-			/* if not: blow it up */
-			char newBuffer[] = new char[yy_currentPos * 2];
-			System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
-			yy_buffer = newBuffer;
-		}
+    /* is the buffer big enough? */
+    if (yy_currentPos >= yy_buffer.length) {
+      /* if not: blow it up */
+      char newBuffer[] = new char[yy_currentPos*2];
+      System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
+      yy_buffer = newBuffer;
+    }
 
-		/* finally: fill the buffer with new input */
-		int numRead = yy_reader.read(yy_buffer, yy_endRead, yy_buffer.length - yy_endRead);
+    /* finally: fill the buffer with new input */
+    int numRead = yy_reader.read(yy_buffer, yy_endRead, 
+                                            yy_buffer.length-yy_endRead);
 
-		if (numRead == -1)
-			return YYEOF;
+    if ( numRead == -1 ) return YYEOF;
 
-		yy_endRead += numRead;
+    yy_endRead+= numRead;
 
-		return yy_buffer[yy_currentPos++];
-	}
+    return yy_buffer[yy_currentPos++];
+  }
 
 
-	/**
-	 * Closes the input stream.
-	 */
-	final public void yyclose() throws java.io.IOException {
-		yy_atEOF = true; /* indicate end of file */
-		yy_endRead = yy_startRead; /* invalidate buffer    */
-		yy_reader.close();
-	}
+  /**
+   * Closes the input stream.
+   */
+  final public void yyclose() throws java.io.IOException {
+    yy_atEOF = true;            /* indicate end of file */
+    yy_endRead = yy_startRead;  /* invalidate buffer    */
+    yy_reader.close();
+  }
 
 
-	/**
-	 * Returns the current lexical state.
-	 */
-	final public int yystate() {
-		return yy_lexical_state;
-	}
+  /**
+   * Returns the current lexical state.
+   */
+  final public int yystate() {
+    return yy_lexical_state;
+  }
 
-	/**
-	 * Enters a new lexical state
-	 *
-	 * @param newState the new lexical state
-	 */
-	final public void yybegin(int newState) {
-		yy_lexical_state = newState;
-	}
+  /**
+   * Enters a new lexical state
+   *
+   * @param newState the new lexical state
+   */
+  final public void yybegin(int newState) {
+    yy_lexical_state = newState;
+  }
 
 
-	/**
-	 * Returns the text matched by the current regular expression.
-	 */
-	final public String yytext() {
-		return new String(yy_buffer, yy_startRead, yy_markedPos - yy_startRead);
-	}
+  /**
+   * Returns the text matched by the current regular expression.
+   */
+  final public String yytext() {
+    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
+  }
 
-	/**
-	 * Returns the length of the matched text region.
-	 */
-	final public int yylength() {
-		return yy_markedPos - yy_startRead;
-	}
+  /**
+   * Returns the length of the matched text region.
+   */
+  final public int yylength() {
+    return yy_markedPos-yy_startRead;
+  }
 
 
-	/**
-	 * Reports an error that occured while scanning.
-	 *
-	 * @param   errorCode  the code of the errormessage to display
-	 */
-	private void yy_ScanError(int errorCode) {
-		try {
-			System.out.println(YY_ERROR_MSG[errorCode]);
-		}
-		catch (ArrayIndexOutOfBoundsException e) {
-			System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
-		}
+  /**
+   * Reports an error that occured while scanning.
+   *
+   * @param   errorCode  the code of the errormessage to display
+   */
+  private void yy_ScanError(int errorCode) {
+    try {
+      System.out.println(YY_ERROR_MSG[errorCode]);
+    }
+    catch (ArrayIndexOutOfBoundsException e) {
+      System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
+    }
 
-		System.exit(1);
-	}
+    System.exit(1);
+  } 
 
 
-	/**
-	 * Pushes the specified amount of characters back into the input stream.
-	 *
-	 * They will be read again by then next call of the scanning method
-	 *
-	 * @param number  the number of characters to be read again.
-	 *                This number must not be greater than yylength()!
-	 */
-	private void yypushback(int number) {
-		if (number > yylength())
-			yy_ScanError(YY_PUSHBACK_2BIG);
+  /**
+   * Pushes the specified amount of characters back into the input stream.
+   *
+   * They will be read again by then next call of the scanning method
+   *
+   * @param number  the number of characters to be read again.
+   *                This number must not be greater than yylength()!
+   */
+  private void yypushback(int number) {
+    if ( number > yylength() )
+      yy_ScanError(YY_PUSHBACK_2BIG);
 
-		yy_markedPos -= number;
-	}
+    yy_markedPos -= number;
+  }
 
 
-	/**
-	 * Contains user EOF-code, which will be executed exactly once,
-	 * when the end of file is reached
-	 */
-	private void yy_do_eof() {
-		if (!yy_eof_done) {
-			yy_eof_done = true;
-			hasMore = false;
+  /**
+   * Contains user EOF-code, which will be executed exactly once,
+   * when the end of file is reached
+   */
+  private void yy_do_eof() {
+    if (!yy_eof_done) {
+      yy_eof_done = true;
+    	hasMore=false;
 
-		}
-	}
+    }
+  }
 
 
-	/**
-	 * Resumes scanning until the next regular expression is matched,
-	 * the end of input is encountered or an I/O-Error occurs.
-	 *
-	 * @return      the next token
-	 * @exception   IOException  if any I/O-Error occurs
-	 */
-	public String primGetNextToken() throws java.io.IOException {
-		int yy_input;
-		int yy_action;
+  /**
+   * Resumes scanning until the next regular expression is matched,
+   * the end of input is encountered or an I/O-Error occurs.
+   *
+   * @return      the next token
+   * @exception   IOException  if any I/O-Error occurs
+   */
+  public String primGetNextToken() throws java.io.IOException {
+    int yy_input;
+    int yy_action;
 
+    yy_pushbackPos = -1;
+    boolean yy_was_pushback;
 
-		while (true) {
+    while (true) {
 
-			yychar += yylength();
+      yychar+= yylength();
 
-			yy_atBOL = yy_markedPos <= 0 || yy_buffer[yy_markedPos - 1] == '\n';
-			if (!yy_atBOL && yy_buffer[yy_markedPos - 1] == '\r') {
-				yy_atBOL = yy_advance() != '\n';
-				if (!yy_atEOF)
-					yy_currentPos--;
-			}
+      yy_atBOL = yy_markedPos <= 0 || yy_buffer[yy_markedPos-1] == '\n';
+      if (!yy_atBOL && yy_buffer[yy_markedPos-1] == '\r') {
+        yy_atBOL = yy_advance() != '\n';
+        if (!yy_atEOF) yy_currentPos--;
+      }
 
-			yy_action = -1;
+      yy_action = -1;
 
-			yy_currentPos = yy_startRead = yy_markedPos;
+      yy_currentPos = yy_startRead = yy_markedPos;
 
-			if (yy_atBOL)
-				yy_state = YY_LEXSTATE[yy_lexical_state + 1];
-			else
-				yy_state = YY_LEXSTATE[yy_lexical_state];
+      if (yy_atBOL)
+        yy_state = YY_LEXSTATE[yy_lexical_state+1];
+      else
+        yy_state = YY_LEXSTATE[yy_lexical_state];
 
+      yy_was_pushback = false;
 
-			yy_forAction : {
-				while (true) {
+      yy_forAction: {
+        while (true) {
 
-					yy_input = yy_advance();
+          yy_input = yy_advance();
 
-					if (yy_input == YYEOF)
-						break yy_forAction;
+          if ( yy_input == YYEOF ) break yy_forAction;
 
-					yy_input = yycmap[yy_input];
+          yy_input = yycmap[yy_input];
 
-					boolean yy_isFinal = false;
-					boolean yy_noLookAhead = false;
+          boolean yy_pushback = false;
+          boolean yy_isFinal = false;
+          boolean yy_noLookAhead = false;
 
-					yy_forNext : {
-						switch (yy_state) {
-							case 0 :
-								switch (yy_input) {
-									case 1 :
-										yy_isFinal = true;
-										yy_state = 9;
-										break yy_forNext;
-									case 2 :
-										yy_isFinal = true;
-										yy_state = 10;
-										break yy_forNext;
-									case 3 :
-										yy_isFinal = true;
-										yy_state = 11;
-										break yy_forNext;
-									case 10 :
-										yy_isFinal = true;
-										yy_state = 12;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 8;
-										break yy_forNext;
-								}
+          yy_forNext: { switch (yy_state) {
+            case 0:
+              switch (yy_input) {
+                case 1: yy_isFinal = true; yy_state = 10; break yy_forNext;
+                case 2: yy_isFinal = true; yy_state = 11; break yy_forNext;
+                case 3: yy_isFinal = true; yy_state = 12; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 13; break yy_forNext;
+                case 11: yy_isFinal = true; yy_state = 14; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
+              }
 
-							case 1 :
-								switch (yy_input) {
-									case 1 :
-										yy_isFinal = true;
-										yy_state = 9;
-										break yy_forNext;
-									case 2 :
-										yy_isFinal = true;
-										yy_state = 10;
-										break yy_forNext;
-									case 3 :
-										yy_isFinal = true;
-										yy_state = 11;
-										break yy_forNext;
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 13;
-										break yy_forNext;
-									case 10 :
-										yy_isFinal = true;
-										yy_state = 14;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 8;
-										break yy_forNext;
-								}
+            case 1:
+              switch (yy_input) {
+                case 1: yy_isFinal = true; yy_state = 10; break yy_forNext;
+                case 2: yy_isFinal = true; yy_state = 11; break yy_forNext;
+                case 3: yy_isFinal = true; yy_state = 12; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 15; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 16; break yy_forNext;
+                case 11: yy_isFinal = true; yy_state = 17; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
+              }
 
-							case 2 :
-								switch (yy_input) {
-									case 11 :
-										yy_isFinal = true;
-										yy_state = 15;
-										break yy_forNext;
-									case 15 :
-										yy_isFinal = true;
-										yy_state = 16;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 8;
-										break yy_forNext;
-								}
+            case 2:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_state = 18; break yy_forNext;
+                case 12: yy_isFinal = true; yy_state = 19; break yy_forNext;
+                case 16: yy_isFinal = true; yy_state = 20; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
+              }
 
-							case 3 :
-								switch (yy_input) {
-									case 25 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 17;
-										break yy_forNext;
-									case 26 :
-										yy_isFinal = true;
-										yy_state = 18;
-										break yy_forNext;
-									case 34 :
-										yy_isFinal = true;
-										yy_state = 19;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 8;
-										break yy_forNext;
-								}
+            case 3:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_state = 21; break yy_forNext;
+                case 25: yy_isFinal = true; yy_state = 22; break yy_forNext;
+                case 26: yy_isFinal = true; yy_state = 23; break yy_forNext;
+                case 34: yy_isFinal = true; yy_state = 24; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
+              }
 
-							case 4 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 21;
-										break yy_forNext;
-									case 7 :
-										yy_isFinal = true;
-										yy_state = 22;
-										break yy_forNext;
-									case 32 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 23;
-										break yy_forNext;
-									case 35 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 24;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
+            case 4:
+              switch (yy_input) {
+                case 6: 
+                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
+                case 7: yy_isFinal = true; yy_state = 27; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 28; break yy_forNext;
+                case 32: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 35: yy_isFinal = true; yy_state = 30; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
+              }
 
-							case 5 :
-								switch (yy_input) {
-									case 7 :
-									case 9 :
-									case 10 :
-									case 25 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 26;
-										break yy_forNext;
-									case 11 :
-									case 34 :
-										yy_isFinal = true;
-										yy_state = 27;
-										break yy_forNext;
-									case 32 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 28;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 25;
-										break yy_forNext;
-								}
+            case 5:
+              switch (yy_input) {
+                case 7: 
+                case 8: 
+                case 11: 
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 33; break yy_forNext;
+                case 12: 
+                case 34: yy_isFinal = true; yy_state = 34; break yy_forNext;
+                case 32: yy_isFinal = true; yy_state = 35; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
+              }
 
-							case 6 :
-								switch (yy_input) {
-									case 7 :
-									case 9 :
-									case 10 :
-									case 25 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 26;
-										break yy_forNext;
-									case 34 :
-										yy_isFinal = true;
-										yy_state = 27;
-										break yy_forNext;
-									case 35 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 28;
-										break yy_forNext;
-									case 36 :
-										yy_isFinal = true;
-										yy_state = 29;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 25;
-										break yy_forNext;
-								}
+            case 6:
+              switch (yy_input) {
+                case 7: 
+                case 8: 
+                case 11: 
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 34: yy_isFinal = true; yy_state = 34; break yy_forNext;
+                case 35: yy_isFinal = true; yy_state = 35; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 36; break yy_forNext;
+                case 36: yy_isFinal = true; yy_state = 37; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
+              }
 
-							case 7 :
-								switch (yy_input) {
-									case 10 :
-									case 25 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 26;
-										break yy_forNext;
-									case 34 :
-										yy_isFinal = true;
-										yy_state = 27;
-										break yy_forNext;
-									case 11 :
-										yy_isFinal = true;
-										yy_state = 29;
-										break yy_forNext;
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 30;
-										break yy_forNext;
-									case 32 :
-									case 35 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 31;
-										break yy_forNext;
-									case 37 :
-										yy_isFinal = true;
-										yy_state = 32;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 25;
-										break yy_forNext;
-								}
+            case 7:
+              switch (yy_input) {
+                case 11: 
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 34: yy_isFinal = true; yy_state = 34; break yy_forNext;
+                case 12: yy_isFinal = true; yy_state = 37; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 38; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 39; break yy_forNext;
+                case 32: 
+                case 35: yy_isFinal = true; yy_state = 40; break yy_forNext;
+                case 37: yy_isFinal = true; yy_pushbackPos = yy_currentPos; yy_pushback = true; yy_state = 41; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
+              }
 
-							case 9 :
-								switch (yy_input) {
-									case 2 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 33;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 8:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 9; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 42; break yy_forNext;
+              }
 
-							case 10 :
-								switch (yy_input) {
-									case 1 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 34;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 10:
+              switch (yy_input) {
+                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 43; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 11 :
-								switch (yy_input) {
-									case 4 :
-										yy_state = 35;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 11:
+              switch (yy_input) {
+                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 44; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 12 :
-								switch (yy_input) {
-									case 13 :
-										yy_state = 36;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 12:
+              switch (yy_input) {
+                case 4: yy_state = 45; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 13 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 37;
-										break yy_forNext;
-									case 10 :
-										yy_state = 38;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 13:
+              switch (yy_input) {
+                case 11: yy_state = 46; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 14:
+              switch (yy_input) {
+                case 9: yy_state = 47; break yy_forNext;
+                case 14: yy_state = 48; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 15:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 49; break yy_forNext;
+                case 9: yy_state = 50; break yy_forNext;
+                case 11: yy_state = 51; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 16:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 49; break yy_forNext;
+                case 11: yy_state = 52; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 17:
+              switch (yy_input) {
+                case 14: yy_state = 48; break yy_forNext;
+                case 9: yy_state = 53; break yy_forNext;
+                case 12: yy_state = 54; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 18:
+              switch (yy_input) {
+                case 12: yy_state = 55; break yy_forNext;
+                case 16: yy_state = 56; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 19:
+              switch (yy_input) {
+                case 9: yy_state = 57; break yy_forNext;
+                case 25: yy_isFinal = true; yy_state = 58; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 20:
+              switch (yy_input) {
+                case 9: yy_state = 59; break yy_forNext;
+                case 19: yy_state = 60; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 21:
+              switch (yy_input) {
+                case 25: yy_isFinal = true; yy_state = 22; break yy_forNext;
+                case 26: yy_state = 61; break yy_forNext;
+                case 34: yy_state = 62; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 22:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 63; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 23:
+              switch (yy_input) {
+                case 9: yy_state = 64; break yy_forNext;
+                case 17: yy_state = 65; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 24:
+              switch (yy_input) {
+                case 9: yy_state = 66; break yy_forNext;
+                case 25: yy_isFinal = true; yy_state = 67; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 26:
+              switch (yy_input) {
+                case 6: 
+                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
+                case 7: yy_state = 68; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 69; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
+              }
+
+            case 27:
+              switch (yy_input) {
+                case 6: 
+                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
+                case 7: yy_state = 68; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 69; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
+              }
+
+            case 28:
+              switch (yy_input) {
+                case 32: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 35: yy_isFinal = true; yy_state = 30; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_state = 68; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 29:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 70; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 30:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 71; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 32:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 72; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 33:
+              switch (yy_input) {
+                case 7: 
+                case 8: 
+                case 11: 
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 32: yy_isFinal = true; yy_state = 35; break yy_forNext;
+                case 12: 
+                case 34: yy_state = 73; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 34:
+              switch (yy_input) {
+                case 9: yy_state = 74; break yy_forNext;
+                case 25: yy_isFinal = true; yy_state = 75; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 35:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 76; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 36:
+              switch (yy_input) {
+                case 7: 
+                case 8: 
+                case 11: 
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 35: yy_isFinal = true; yy_state = 35; break yy_forNext;
+                case 34: yy_state = 73; break yy_forNext;
+                case 36: yy_state = 77; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 37:
+              switch (yy_input) {
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 9: yy_state = 78; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 38:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 79; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 39:
+              switch (yy_input) {
+                case 11: 
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 38; break yy_forNext;
+                case 32: 
+                case 35: yy_isFinal = true; yy_state = 40; break yy_forNext;
+                case 34: yy_state = 73; break yy_forNext;
+                case 12: yy_state = 77; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 40:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 80; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 41:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_pushback = true; yy_state = 81; break yy_forNext;
+                case 9: yy_state = 82; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 45:
+              switch (yy_input) {
+                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 83; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 46:
+              switch (yy_input) {
+                case 9: yy_state = 47; break yy_forNext;
+                case 14: yy_state = 48; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 47:
+              switch (yy_input) {
+                case 14: yy_state = 48; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 48:
+              switch (yy_input) {
+                case 9: yy_state = 84; break yy_forNext;
+                case 16: yy_state = 85; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 49:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 49; break yy_forNext;
+                case 9: yy_state = 50; break yy_forNext;
+                case 11: yy_state = 51; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 50:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 49; break yy_forNext;
+                case 11: yy_state = 51; break yy_forNext;
+                case 9: yy_state = 86; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 51:
+              switch (yy_input) {
+                case 12: yy_state = 54; break yy_forNext;
+                case 9: yy_state = 87; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 52:
+              switch (yy_input) {
+                case 14: yy_state = 48; break yy_forNext;
+                case 9: yy_state = 53; break yy_forNext;
+                case 12: yy_state = 54; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 53:
+              switch (yy_input) {
+                case 14: yy_state = 48; break yy_forNext;
+                case 12: yy_state = 54; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 54:
+              switch (yy_input) {
+                case 9: yy_state = 88; break yy_forNext;
+                case 13: yy_state = 89; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 55:
+              switch (yy_input) {
+                case 9: yy_state = 57; break yy_forNext;
+                case 25: yy_isFinal = true; yy_state = 58; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 56:
+              switch (yy_input) {
+                case 9: yy_state = 59; break yy_forNext;
+                case 19: yy_state = 60; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 57:
+              switch (yy_input) {
+                case 25: yy_isFinal = true; yy_state = 58; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 58:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 90; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 59:
+              switch (yy_input) {
+                case 19: yy_state = 60; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 60:
+              switch (yy_input) {
+                case 9: yy_state = 91; break yy_forNext;
+                case 20: yy_state = 92; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 61:
+              switch (yy_input) {
+                case 9: yy_state = 64; break yy_forNext;
+                case 17: yy_state = 65; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 62:
+              switch (yy_input) {
+                case 9: yy_state = 66; break yy_forNext;
+                case 25: yy_isFinal = true; yy_state = 67; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 64:
+              switch (yy_input) {
+                case 17: yy_state = 65; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 65:
+              switch (yy_input) {
+                case 9: yy_state = 93; break yy_forNext;
+                case 17: yy_state = 94; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 66:
+              switch (yy_input) {
+                case 25: yy_isFinal = true; yy_state = 67; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 67:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 95; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 68:
+              switch (yy_input) {
+                case 6: 
+                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
+                case 7: yy_state = 68; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 69; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
+              }
+
+            case 69:
+              switch (yy_input) {
+                case 6: 
+                case 8: yy_isFinal = true; yy_state = 26; break yy_forNext;
+                case 7: yy_state = 68; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 96; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
+              }
+
+            case 73:
+              switch (yy_input) {
+                case 9: yy_state = 74; break yy_forNext;
+                case 25: yy_isFinal = true; yy_state = 75; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 74:
+              switch (yy_input) {
+                case 25: yy_isFinal = true; yy_state = 75; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 75:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 97; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 77:
+              switch (yy_input) {
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 9: yy_state = 78; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 78:
+              switch (yy_input) {
+                case 25: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 81:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_pushback = true; yy_state = 81; break yy_forNext;
+                case 9: yy_isFinal = true; yy_pushback = true; yy_state = 98; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 82:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_pushback = true; yy_state = 81; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 84:
+              switch (yy_input) {
+                case 16: yy_state = 85; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 85:
+              switch (yy_input) {
+                case 9: yy_state = 99; break yy_forNext;
+                case 17: yy_state = 100; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 86:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 49; break yy_forNext;
+                case 11: yy_state = 51; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 87:
+              switch (yy_input) {
+                case 12: yy_state = 54; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 88:
+              switch (yy_input) {
+                case 13: yy_state = 89; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 89:
+              switch (yy_input) {
+                case 9: yy_state = 101; break yy_forNext;
+                case 14: yy_state = 102; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 91:
+              switch (yy_input) {
+                case 20: yy_state = 92; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 92:
+              switch (yy_input) {
+                case 9: yy_state = 103; break yy_forNext;
+                case 21: yy_state = 104; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 93:
+              switch (yy_input) {
+                case 17: yy_state = 94; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 94:
+              switch (yy_input) {
+                case 9: yy_state = 105; break yy_forNext;
+                case 27: yy_state = 106; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 96:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 68; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 98:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_pushback = true; yy_state = 81; break yy_forNext;
+                case 9: yy_state = 82; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 99:
+              switch (yy_input) {
+                case 17: yy_state = 100; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 100:
+              switch (yy_input) {
+                case 9: yy_state = 107; break yy_forNext;
+                case 18: yy_isFinal = true; yy_state = 108; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 101:
+              switch (yy_input) {
+                case 14: yy_state = 102; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 102:
+              switch (yy_input) {
+                case 9: yy_state = 109; break yy_forNext;
+                case 15: yy_state = 110; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 103:
+              switch (yy_input) {
+                case 21: yy_state = 104; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 104:
+              switch (yy_input) {
+                case 9: yy_state = 111; break yy_forNext;
+                case 22: yy_state = 112; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 105:
+              switch (yy_input) {
+                case 27: yy_state = 106; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 106:
+              switch (yy_input) {
+                case 9: yy_state = 113; break yy_forNext;
+                case 28: yy_state = 114; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 107:
+              switch (yy_input) {
+                case 18: yy_isFinal = true; yy_state = 108; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 108:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 115; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 109:
+              switch (yy_input) {
+                case 15: yy_state = 110; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 110:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
+                case 9: yy_state = 117; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 111:
+              switch (yy_input) {
+                case 22: yy_state = 112; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 112:
+              switch (yy_input) {
+                case 9: yy_state = 118; break yy_forNext;
+                case 23: yy_state = 119; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 113:
+              switch (yy_input) {
+                case 28: yy_state = 114; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 114:
+              switch (yy_input) {
+                case 9: yy_state = 120; break yy_forNext;
+                case 16: yy_state = 121; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 116:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 122; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 117:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
+                case 9: yy_state = 123; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 118:
+              switch (yy_input) {
+                case 23: yy_state = 119; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 119:
+              switch (yy_input) {
+                case 9: yy_state = 124; break yy_forNext;
+                case 19: yy_state = 125; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 120:
+              switch (yy_input) {
+                case 16: yy_state = 121; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 121:
+              switch (yy_input) {
+                case 9: yy_state = 126; break yy_forNext;
+                case 29: yy_state = 127; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 122:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
+                case 9: yy_state = 123; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 123:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 124:
+              switch (yy_input) {
+                case 19: yy_state = 125; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 125:
+              switch (yy_input) {
+                case 9: yy_state = 128; break yy_forNext;
+                case 24: yy_state = 129; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 126:
+              switch (yy_input) {
+                case 29: yy_state = 127; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 127:
+              switch (yy_input) {
+                case 9: yy_state = 130; break yy_forNext;
+                case 30: yy_state = 131; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 128:
+              switch (yy_input) {
+                case 24: yy_state = 129; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 129:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 129; break yy_forNext;
+                case 9: yy_state = 132; break yy_forNext;
+                case 10: yy_isFinal = true; yy_state = 133; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 14 :
-								switch (yy_input) {
-									case 13 :
-										yy_state = 36;
-										break yy_forNext;
-									case 11 :
-										yy_state = 39;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 130:
+              switch (yy_input) {
+                case 30: yy_state = 131; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 15 :
-								switch (yy_input) {
-									case 25 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 40;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 131:
+              switch (yy_input) {
+                case 9: yy_state = 134; break yy_forNext;
+                case 23: yy_state = 135; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 16 :
-								switch (yy_input) {
-									case 19 :
-										yy_state = 41;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 132:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 129; break yy_forNext;
+                case 10: yy_isFinal = true; yy_state = 133; break yy_forNext;
+                case 9: yy_state = 136; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 18 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 42;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 133:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 137; break yy_forNext;
+                case 9: yy_state = 138; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 19 :
-								switch (yy_input) {
-									case 25 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 43;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 134:
+              switch (yy_input) {
+                case 23: yy_state = 135; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 21 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 21;
-										break yy_forNext;
-									case 7 :
-										yy_state = 44;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
+            case 135:
+              switch (yy_input) {
+                case 9: yy_state = 139; break yy_forNext;
+                case 31: yy_state = 140; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 22 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 21;
-										break yy_forNext;
-									case 7 :
-										yy_state = 44;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
+            case 136:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 129; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 27 :
-								switch (yy_input) {
-									case 25 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 45;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 137:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_state = 133; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 137; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 29 :
-								switch (yy_input) {
-									case 25 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 46;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 138:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 137; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 32 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 32;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 139:
+              switch (yy_input) {
+                case 31: yy_state = 140; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 35 :
-								switch (yy_input) {
-									case 5 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 47;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 140:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 140; break yy_forNext;
+                case 9: yy_state = 141; break yy_forNext;
+                case 10: yy_state = 142; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 36 :
-								switch (yy_input) {
-									case 15 :
-										yy_state = 48;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 141:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 140; break yy_forNext;
+                case 10: yy_state = 142; break yy_forNext;
+                case 9: yy_state = 143; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 37 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 37;
-										break yy_forNext;
-									case 10 :
-										yy_state = 38;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 142:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 144; break yy_forNext;
+                case 9: yy_state = 145; break yy_forNext;
+                case 20: yy_state = 146; break yy_forNext;
+                case 32: yy_state = 147; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 38 :
-								switch (yy_input) {
-									case 11 :
-										yy_state = 39;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 143:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 140; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 39 :
-								switch (yy_input) {
-									case 12 :
-										yy_state = 49;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 144:
+              switch (yy_input) {
+                case 9: yy_state = 142; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_state = 144; break yy_forNext;
+                case 20: yy_state = 146; break yy_forNext;
+                case 32: yy_state = 147; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 41 :
-								switch (yy_input) {
-									case 20 :
-										yy_state = 50;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 145:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 144; break yy_forNext;
+                case 20: yy_state = 146; break yy_forNext;
+                case 32: yy_state = 147; break yy_forNext;
+                case 9: yy_state = 148; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 42 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 51;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 146:
+              switch (yy_input) {
+                case 9: yy_state = 149; break yy_forNext;
+                case 21: yy_state = 150; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 44 :
-								switch (yy_input) {
-									case 6 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 21;
-										break yy_forNext;
-									case 7 :
-										yy_state = 44;
-										break yy_forNext;
-									default :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 20;
-										break yy_forNext;
-								}
+            case 147:
+              switch (yy_input) {
+                case 20: yy_state = 146; break yy_forNext;
+                case 9: yy_state = 148; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 48 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 52;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 148:
+              switch (yy_input) {
+                case 20: yy_state = 146; break yy_forNext;
+                case 9: yy_state = 151; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 49 :
-								switch (yy_input) {
-									case 13 :
-										yy_state = 53;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 149:
+              switch (yy_input) {
+                case 21: yy_state = 150; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 50 :
-								switch (yy_input) {
-									case 21 :
-										yy_state = 54;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 150:
+              switch (yy_input) {
+                case 9: yy_state = 152; break yy_forNext;
+                case 19: yy_state = 153; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 51 :
-								switch (yy_input) {
-									case 27 :
-										yy_state = 55;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 151:
+              switch (yy_input) {
+                case 20: yy_state = 146; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 52 :
-								switch (yy_input) {
-									case 17 :
-										yy_state = 56;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 152:
+              switch (yy_input) {
+                case 19: yy_state = 153; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 53 :
-								switch (yy_input) {
-									case 14 :
-										yy_state = 57;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 153:
+              switch (yy_input) {
+                case 9: yy_state = 154; break yy_forNext;
+                case 17: yy_state = 155; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 54 :
-								switch (yy_input) {
-									case 22 :
-										yy_state = 58;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 154:
+              switch (yy_input) {
+                case 17: yy_state = 155; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 55 :
-								switch (yy_input) {
-									case 28 :
-										yy_state = 59;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 155:
+              switch (yy_input) {
+                case 9: yy_state = 156; break yy_forNext;
+                case 16: yy_state = 157; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 56 :
-								switch (yy_input) {
-									case 18 :
-										yy_isFinal = true;
-										yy_noLookAhead = true;
-										yy_state = 60;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 156:
+              switch (yy_input) {
+                case 16: yy_state = 157; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 57 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 61;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 157:
+              switch (yy_input) {
+                case 9: yy_state = 158; break yy_forNext;
+                case 19: yy_state = 159; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 58 :
-								switch (yy_input) {
-									case 23 :
-										yy_state = 62;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 158:
+              switch (yy_input) {
+                case 19: yy_state = 159; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 59 :
-								switch (yy_input) {
-									case 15 :
-										yy_state = 63;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 159:
+              switch (yy_input) {
+                case 9: yy_state = 160; break yy_forNext;
+                case 17: yy_state = 161; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 61 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 61;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 160:
+              switch (yy_input) {
+                case 17: yy_state = 161; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 62 :
-								switch (yy_input) {
-									case 19 :
-										yy_state = 64;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 161:
+              switch (yy_input) {
+                case 9: yy_state = 162; break yy_forNext;
+                case 28: yy_state = 163; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 63 :
-								switch (yy_input) {
-									case 29 :
-										yy_state = 65;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 162:
+              switch (yy_input) {
+                case 28: yy_state = 163; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 64 :
-								switch (yy_input) {
-									case 24 :
-										yy_state = 66;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 163:
+              switch (yy_input) {
+                case 9: yy_state = 164; break yy_forNext;
+                case 17: yy_state = 165; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 65 :
-								switch (yy_input) {
-									case 30 :
-										yy_state = 67;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 164:
+              switch (yy_input) {
+                case 17: yy_state = 165; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 66 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 66;
-										break yy_forNext;
-									case 8 :
-										yy_isFinal = true;
-										yy_state = 68;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 165:
+              switch (yy_input) {
+                case 9: yy_state = 166; break yy_forNext;
+                case 33: yy_state = 167; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 67 :
-								switch (yy_input) {
-									case 23 :
-										yy_state = 69;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 166:
+              switch (yy_input) {
+                case 33: yy_state = 167; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 68 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 68;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 167:
+              switch (yy_input) {
+                case 9: yy_state = 168; break yy_forNext;
+                case 27: yy_state = 169; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 69 :
-								switch (yy_input) {
-									case 31 :
-										yy_state = 70;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 168:
+              switch (yy_input) {
+                case 27: yy_state = 169; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 70 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 70;
-										break yy_forNext;
-									case 8 :
-										yy_state = 71;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 169:
+              switch (yy_input) {
+                case 9: yy_state = 170; break yy_forNext;
+                case 16: yy_state = 171; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 71 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 71;
-										break yy_forNext;
-									case 20 :
-										yy_state = 72;
-										break yy_forNext;
-									case 32 :
-										yy_state = 73;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 170:
+              switch (yy_input) {
+                case 16: yy_state = 171; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 72 :
-								switch (yy_input) {
-									case 21 :
-										yy_state = 74;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 171:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 172; break yy_forNext;
+                case 9: yy_state = 173; break yy_forNext;
+                case 32: yy_state = 174; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 73 :
-								switch (yy_input) {
-									case 20 :
-										yy_state = 72;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 172:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 172; break yy_forNext;
+                case 9: yy_state = 175; break yy_forNext;
+                case 20: yy_state = 176; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 74 :
-								switch (yy_input) {
-									case 19 :
-										yy_state = 75;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 173:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 172; break yy_forNext;
+                case 32: yy_state = 174; break yy_forNext;
+                case 9: yy_state = 177; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 75 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 76;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 174:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 172; break yy_forNext;
+                case 9: yy_state = 177; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 76 :
-								switch (yy_input) {
-									case 15 :
-										yy_state = 77;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 175:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 172; break yy_forNext;
+                case 20: yy_state = 176; break yy_forNext;
+                case 9: yy_state = 178; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 77 :
-								switch (yy_input) {
-									case 19 :
-										yy_state = 78;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 176:
+              switch (yy_input) {
+                case 9: yy_state = 179; break yy_forNext;
+                case 21: yy_state = 180; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 78 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 79;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 177:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 172; break yy_forNext;
+                case 9: yy_state = 181; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 79 :
-								switch (yy_input) {
-									case 28 :
-										yy_state = 80;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 178:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 172; break yy_forNext;
+                case 20: yy_state = 176; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 80 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 81;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 179:
+              switch (yy_input) {
+                case 21: yy_state = 180; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 81 :
-								switch (yy_input) {
-									case 33 :
-										yy_state = 82;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 180:
+              switch (yy_input) {
+                case 9: yy_state = 182; break yy_forNext;
+                case 19: yy_state = 183; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 82 :
-								switch (yy_input) {
-									case 27 :
-										yy_state = 83;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 181:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 172; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 83 :
-								switch (yy_input) {
-									case 15 :
-										yy_state = 84;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 182:
+              switch (yy_input) {
+                case 19: yy_state = 183; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 84 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 85;
-										break yy_forNext;
-									case 32 :
-										yy_state = 86;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 183:
+              switch (yy_input) {
+                case 9: yy_state = 184; break yy_forNext;
+                case 17: yy_state = 185; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 85 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 85;
-										break yy_forNext;
-									case 20 :
-										yy_state = 87;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 184:
+              switch (yy_input) {
+                case 17: yy_state = 185; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 86 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 85;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 185:
+              switch (yy_input) {
+                case 9: yy_state = 186; break yy_forNext;
+                case 16: yy_state = 187; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 87 :
-								switch (yy_input) {
-									case 21 :
-										yy_state = 88;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 186:
+              switch (yy_input) {
+                case 16: yy_state = 187; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 88 :
-								switch (yy_input) {
-									case 19 :
-										yy_state = 89;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 187:
+              switch (yy_input) {
+                case 9: yy_state = 188; break yy_forNext;
+                case 19: yy_state = 189; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 89 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 90;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 188:
+              switch (yy_input) {
+                case 19: yy_state = 189; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 90 :
-								switch (yy_input) {
-									case 15 :
-										yy_state = 91;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 189:
+              switch (yy_input) {
+                case 9: yy_state = 190; break yy_forNext;
+                case 17: yy_state = 191; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 91 :
-								switch (yy_input) {
-									case 19 :
-										yy_state = 92;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 190:
+              switch (yy_input) {
+                case 17: yy_state = 191; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 92 :
-								switch (yy_input) {
-									case 16 :
-										yy_state = 93;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 191:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 191; break yy_forNext;
+                case 9: yy_state = 192; break yy_forNext;
+                case 10: yy_isFinal = true; yy_state = 193; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 93 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_state = 93;
-										break yy_forNext;
-									case 8 :
-										yy_isFinal = true;
-										yy_state = 94;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 192:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 191; break yy_forNext;
+                case 10: yy_isFinal = true; yy_state = 193; break yy_forNext;
+                case 9: yy_state = 194; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							case 94 :
-								switch (yy_input) {
-									case 6 :
-									case 7 :
-									case 9 :
-									case 18 :
-										yy_isFinal = true;
-										yy_state = 94;
-										break yy_forNext;
-									default :
-										break yy_forAction;
-								}
+            case 193:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 195; break yy_forNext;
+                case 9: yy_state = 196; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-							default :
-								yy_ScanError(YY_ILLEGAL_STATE);
-								break;
-						}
-					}
+            case 194:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 191; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-					if (yy_isFinal) {
-						yy_action = yy_state;
-						yy_markedPos = yy_currentPos;
-						if (yy_noLookAhead)
-							break yy_forAction;
-					}
+            case 195:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_state = 193; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 195; break yy_forNext;
+                default: break yy_forAction;
+              }
 
-				}
-			}
+            case 196:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 195; break yy_forNext;
+                default: break yy_forAction;
+              }
 
+            default:
+              yy_ScanError(YY_ILLEGAL_STATE);
+              break;
+          } }
 
-			switch (yy_action) {
+          if ( yy_isFinal ) {
+            yy_was_pushback = yy_pushback;
+            yy_action = yy_state; 
+            yy_markedPos = yy_currentPos; 
+            if ( yy_noLookAhead ) break yy_forAction;
+          }
 
-				case 26 :
-					{
-						yypushback(1);
-						popState();
-						valueText = string.toString();
-						return EncodingParserConstants.InvalidTerminatedStringValue;
-					}
-				case 96 :
-					break;
-				case 20 :
-				case 21 :
-					{
-						yypushback(1);
-						yybegin(UnDelimitedString);
-						string.setLength(0);
-					}
-				case 97 :
-					break;
-				case 17 :
-					{
-						yybegin(YYINITIAL);
-						if (foundContentTypeValue)
-							hasMore = false;
-						return HTMLHeadTokenizerConstants.MetaTagEnd;
-					}
-				case 98 :
-					break;
-				case 31 :
-					{
-						yypushback(1);
-						popState();
-						valueText = string.toString();
-						return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
-					}
-				case 99 :
-					break;
-				case 43 :
-					{
-						yybegin(YYINITIAL);
-						if (foundContentTypeValue)
-							hasMore = false;
-						return HTMLHeadTokenizerConstants.MetaTagEnd;
-					}
-				case 100 :
-					break;
-				case 45 :
-					{
-						yypushback(2);
-						popState();
-						valueText = string.toString();
-						return EncodingParserConstants.InvalidTerminatedStringValue;
-					}
-				case 101 :
-					break;
-				case 46 :
-					{
-						yypushback(2);
-						popState();
-						valueText = string.toString();
-						return EncodingParserConstants.InvalidTerminatedStringValue;
-					}
-				case 102 :
-					break;
-				case 61 :
-					{
-						if (yychar == 0) {
-							yybegin(ST_XMLDecl);
-							return XMLHeadTokenizerConstants.XMLDeclStart;
-						}
-					}
-				case 103 :
-					break;
-				case 8 :
-				case 9 :
-				case 10 :
-				case 11 :
-				case 12 :
-				case 13 :
-				case 14 :
-				case 15 :
-				case 16 :
-				case 18 :
-				case 19 :
-				case 22 :
-					{
-						if (yychar > MAX_TO_SCAN) {
-							hasMore = false;
-							return EncodingParserConstants.MAX_CHARS_REACHED;
-						}
-					}
-				case 104 :
-					break;
-				case 60 :
-					{
-						yybegin(ST_META_TAG);
-						return HTMLHeadTokenizerConstants.MetaTagStart;
-					}
-				case 105 :
-					break;
-				case 40 :
-					{
-						yybegin(YYINITIAL);
-						return XMLHeadTokenizerConstants.XMLDeclEnd;
-					}
-				case 106 :
-					break;
-				case 94 :
-					{
-						pushCurrentState();
-						yybegin(QuotedAttributeValue);
-						foundContentTypeValue = true;
-						return HTMLHeadTokenizerConstants.MetaTagContentType;
-					}
-				case 107 :
-					break;
-				case 68 :
-					{
-						pushCurrentState();
-						yybegin(QuotedAttributeValue);
-						return XMLHeadTokenizerConstants.XMLDelEncoding;
-					}
-				case 108 :
-					break;
-				case 33 :
-					{
-						hasMore = false;
-						return EncodingParserConstants.UTF16BE;
-					}
-				case 109 :
-					break;
-				case 34 :
-					{
-						hasMore = false;
-						return EncodingParserConstants.UTF16LE;
-					}
-				case 110 :
-					break;
-				case 47 :
-					{
-						hasMore = false;
-						return EncodingParserConstants.UTF83ByteBOM;
-					}
-				case 111 :
-					break;
-				case 28 :
-					{
-						popState();
-						valueText = string.toString();
-						return EncodingParserConstants.StringValue;
-					}
-				case 112 :
-					break;
-				case 25 :
-				case 27 :
-				case 29 :
-				case 32 :
-					{
-						string.append(yytext());
-					}
-				case 113 :
-					break;
-				case 24 :
-					{
-						yybegin(SQ_STRING);
-						string.setLength(0);
-					}
-				case 114 :
-					break;
-				case 23 :
-					{
-						yybegin(DQ_STRING);
-						string.setLength(0);
-					}
-				case 115 :
-					break;
-				case 30 :
-					{
-						yypushback(1);
-						popState();
-						valueText = string.toString();
-						return EncodingParserConstants.UnDelimitedStringValue;
-					}
-				case 116 :
-					break;
-				default :
-					if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-						yy_atEOF = true;
-						yy_do_eof();
-						{
-							hasMore = false;
-							return EncodingParserConstants.EOF;
-						}
-					}
-					else {
-						yy_ScanError(YY_NO_MATCH);
-					}
-			}
-		}
-	}
+        }
+      }
 
-	/**
-	 * Runs the scanner on input files.
-	 *
-	 * This main method is the debugging routine for the scanner.
-	 * It prints each returned token to System.out until the end of
-	 * file is reached, or an error occured.
-	 *
-	 * @param argv   the command line, contains the filenames to run
-	 *               the scanner on.
-	 */
-	public static void main(String argv[]) {
-		for (int i = 0; i < argv.length; i++) {
-			HTMLHeadTokenizer scanner = null;
-			try {
-				scanner = new HTMLHeadTokenizer(new java.io.FileReader(argv[i]));
-			}
-			catch (java.io.FileNotFoundException e) {
-				System.out.println("File not found : \"" + argv[i] + "\"");
-				System.exit(1);
-			}
-			catch (ArrayIndexOutOfBoundsException e) {
-				System.out.println("Usage : java HTMLHeadTokenizer <inputfile>");
-				System.exit(1);
-			}
+      if (yy_was_pushback)
+        yy_markedPos = yy_pushbackPos;
 
-			try {
-				do {
-					System.out.println(scanner.primGetNextToken());
-				}
-				while (!scanner.yy_atEOF);
+      switch (yy_action) {    
 
-			}
-			catch (java.io.IOException e) {
-				System.out.println("An I/O error occured while scanning :");
-				System.out.println(e);
-				System.exit(1);
-			}
-			catch (Exception e) {
-				e.printStackTrace();
-				System.exit(1);
-			}
-		}
-	}
+        case 32: 
+        case 72: 
+          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
+        case 198: break;
+        case 25: 
+        case 26: 
+        case 28: 
+        case 69: 
+        case 96: 
+          {  yypushback(1); yybegin(UnDelimitedString); string.setLength(0); }
+        case 199: break;
+        case 22: 
+        case 63: 
+          {  yybegin(YYINITIAL);  if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd; }
+        case 200: break;
+        case 40: 
+        case 80: 
+          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
+        case 201: break;
+        case 67: 
+        case 95: 
+          {  yybegin(YYINITIAL); if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd; }
+        case 202: break;
+        case 75: 
+        case 97: 
+          {  yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
+        case 203: break;
+        case 116: 
+        case 122: 
+          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} }
+        case 204: break;
+        case 9: 
+        case 10: 
+        case 11: 
+        case 12: 
+        case 13: 
+        case 14: 
+        case 15: 
+        case 16: 
+        case 17: 
+        case 18: 
+        case 19: 
+        case 20: 
+        case 21: 
+        case 23: 
+        case 24: 
+        case 27: 
+        case 33: 
+        case 36: 
+        case 39: 
+          { if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
+        case 205: break;
+        case 108: 
+        case 115: 
+          { yybegin(ST_META_TAG); return HTMLHeadTokenizerConstants.MetaTagStart; }
+        case 206: break;
+        case 58: 
+        case 90: 
+          { yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd; }
+        case 207: break;
+        case 193: 
+        case 195: 
+          { pushCurrentState(); yybegin(QuotedAttributeValue); foundContentTypeValue=true; return HTMLHeadTokenizerConstants.MetaTagContentType; }
+        case 208: break;
+        case 133: 
+        case 137: 
+          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
+        case 209: break;
+        case 83: 
+          { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; }
+        case 210: break;
+        case 43: 
+          { hasMore = false; return EncodingParserConstants.UTF16BE; }
+        case 211: break;
+        case 44: 
+          { hasMore = false; return EncodingParserConstants.UTF16LE; }
+        case 212: break;
+        case 35: 
+        case 76: 
+          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
+        case 213: break;
+        case 31: 
+        case 34: 
+        case 37: 
+          {  string.append( yytext() );  }
+        case 214: break;
+        case 30: 
+        case 71: 
+          {  yybegin(SQ_STRING); string.setLength(0);  }
+        case 215: break;
+        case 29: 
+        case 70: 
+          {  yybegin(DQ_STRING); string.setLength(0);  }
+        case 216: break;
+        case 38: 
+        case 79: 
+          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
+        case 217: break;
+        case 41: 
+        case 81: 
+        case 98: 
+          {  pushCurrentState(); yybegin(UnDelimitedCharset); string.append( yytext() );  }
+        case 218: break;
+        case 42: 
+          { yypushback(1); popState();  }
+        case 219: break;
+        default: 
+          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
+            yy_atEOF = true;
+            yy_do_eof();
+              { hasMore = false; return EncodingParserConstants.EOF; }
+          } 
+          else {
+            yy_ScanError(YY_NO_MATCH);
+          }
+      }
+    }
+  }    
 
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java
index bff2219..0367e54 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HTMLResourceEncodingDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -13,6 +13,7 @@
 import java.io.IOException;
 import java.util.regex.Pattern;
 
+import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.wst.sse.core.internal.encoding.CodedIO;
 import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
 import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
@@ -38,15 +39,13 @@
 			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
 			fEncodingMemento.setUTF83ByteBOMUsed(true);
 		}
-		else if (tokenType == EncodingParserConstants.UTF16BE) {
-			canHandleAsUnicodeStream = true;
-			String enc = "UTF-16BE"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-		}
-		else if (tokenType == EncodingParserConstants.UTF16LE) {
+		else if (tokenType == EncodingParserConstants.UTF16BE || tokenType == EncodingParserConstants.UTF16LE) {
 			canHandleAsUnicodeStream = true;
 			String enc = "UTF-16"; //$NON-NLS-1$
+			byte[] bom = (tokenType == EncodingParserConstants.UTF16BE) ? IContentDescription.BOM_UTF_16BE : IContentDescription.BOM_UTF_16LE;
 			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
+			fEncodingMemento.setUnicodeStream(true);
+			fEncodingMemento.setUnicodeBOM(bom);
 		}
 		return canHandleAsUnicodeStream;
 	}
@@ -176,7 +175,7 @@
 			}
 		}
 		if (parts.length > 1) {
-			charset = parts[1];
+			charset = parts[1].trim();
 		}
 		
 		if (charset != null && charset.length() > 0) {
@@ -184,4 +183,4 @@
 		}
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java
index ffd0406..a6190bf 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/HeadParserToken.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java
index 5006745..88b8ba8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/IntStack.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java
index 5e22af0..1a24c31 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/contenttype/NullMemento.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java
index 7dbc200..dc2de33 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DOMStyleModelImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -64,4 +64,4 @@
 	}
 
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java
index ff46210..eda938f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/DocumentStyleImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -93,4 +93,4 @@
 	protected void setModel(IDOMModel model) {
 		super.setModel(model);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java
index 943218b..24e03b7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/ElementStyleImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -70,4 +70,4 @@
 		return cloned;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
index 207c2fd..c1cfcc1 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLConverter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -171,7 +171,7 @@
 		IModelManager manager = StructuredModelManager.getModelManager();
 		IStructuredModel model = manager.getModelForEdit(id, input, null);
 		if (!(model instanceof IDOMModel)) {
-			if (model == null)
+			if (model != null)
 				model.releaseFromEdit();
 			return null;
 		}
@@ -299,4 +299,4 @@
 		}
 
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java
index 9297a2a..1f806e5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -254,4 +254,4 @@
 	public void release() {
 		super.release();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java
index 14028b0..3e15e13 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -167,4 +167,4 @@
 	public INodeAdapterFactory copy() {
 		return new HTMLDocumentTypeAdapterFactory();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java
index abc3284..1b26c13 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeConstants.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -16,4 +16,4 @@
 	public final static String FRAMESET = "FRAMESET"; //$NON-NLS-1$
 	public final static String SSI = "SSI"; //$NON-NLS-1$
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java
index 8c268e0..83158e7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeEntry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -40,7 +40,7 @@
 	/**
 	 */
 	public HTMLDocumentTypeEntry(String name, String publicId, String systemId, String namespaceURI, boolean isXHTMLType, boolean hasFrameset, String displayName, boolean isDefaultXHTML, boolean isDefaultWML, boolean isWMLType) {
-		super();
+		this();
 
 		if (name != null && name.length() > 0) {
 			this.name = name;
@@ -133,4 +133,4 @@
 		return useInternalModel;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java
index 2dbf6ed..f419978 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLDocumentTypeRegistryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -104,4 +104,4 @@
 			return true;
 		return false;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java
index 1033d09..6e30557 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -353,4 +353,4 @@
 		return aDec.getElementName() == otherDec.getElementName();
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java
index 397419e..98765e8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/HTMLModelParserAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -80,4 +80,4 @@
 	public INodeAdapterFactory copy() {
 		return getInstance();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java
index 132e18b..a05758c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaData.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -25,4 +25,4 @@
 	static final String AUTHOR_TIME_VISUAL = "AuthorTimeVisual";//$NON-NLS-1$
 	static final String ANNOTATION = "Annotation";//$NON-NLS-1$
 	static final String PREFIX = "METADATA:";//$NON-NLS-1$
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java
index 4fc4ca9..9b8596e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/MetaDataAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -298,4 +298,4 @@
 		int length = end - offset;
 		structuredDocument.replaceText(model, offset, length, source);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java
index 17e0bb1..4cbd509 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/TagScanner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -163,4 +163,4 @@
 
 		return this.tag.substring(valueOffset, valueEnd);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java
index c6fcf4a..ec6053f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/document/UnknownTagAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -79,4 +79,4 @@
 	public void setStartTag(String startTag) {
 		this.startTag = startTag;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java
index a0242c9..40d3692 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentCharsetDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,4 +39,4 @@
 
 
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java
index 5bd0a78..8027e3c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLDocumentLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -162,4 +162,4 @@
 	public IDocumentLoader newInstance() {
 		return new HTMLDocumentLoader();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java
index 0f84fc8..398b154 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/encoding/HTMLModelLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -109,4 +109,4 @@
 		}
 		return documentLoaderInstance;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java
index 294906c..74ec679 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/EmbeddedCSSFormatter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,7 +12,8 @@
 
 
 
-import org.eclipse.wst.css.core.internal.format.CSSSourceFormatter;
+import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter;
+import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory;
 import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleSheetAdapter;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
@@ -26,7 +27,8 @@
 
 public class EmbeddedCSSFormatter extends HTMLFormatter {
 
-	//private IAdapterFactory factory = new CSSSourceFormatterFactory(CSSSourceFormatter.class, true);
+	// private IAdapterFactory factory = new
+	// CSSSourceFormatterFactory(CSSSourceFormatter.class, true);
 	/**
 	 */
 	protected EmbeddedCSSFormatter() {
@@ -61,10 +63,12 @@
 		if (document == null)
 			return null;
 		INodeNotifier notifier = (INodeNotifier) document;
-		INodeAdapter adapter = notifier.getAdapterFor(CSSSourceFormatter.class);
-		if (adapter == null)
+		CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class);
+		// try another way to get formatter
+		if (formatter == null)
+			formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier);
+		if (formatter == null)
 			return null;
-		CSSSourceFormatter formatter = (CSSSourceFormatter) adapter;
 		StringBuffer buffer = formatter.format(document);
 		if (buffer == null)
 			return null;
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java
index 67c3a7e..ce14df4 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLElementFormatter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,7 +12,8 @@
 
 import java.util.Iterator;
 
-import org.eclipse.wst.css.core.internal.format.CSSSourceFormatter;
+import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatter;
+import org.eclipse.wst.css.core.internal.formatter.CSSSourceFormatterFactory;
 import org.eclipse.wst.css.core.internal.provisional.adapters.IStyleDeclarationAdapter;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
 import org.eclipse.wst.css.core.internal.provisional.document.ICSSNode;
@@ -21,10 +22,11 @@
 import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.format.IStructuredFormatPreferencesXML;
+import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 import org.w3c.dom.Attr;
 import org.w3c.dom.NamedNodeMap;
@@ -108,7 +110,7 @@
 		// String newEndTag = endStructuredDocumentRegion.getText();
 		// if (newEndTag != null && newEndTag.length() > 0) {
 		// setWidth(contraints, newEndTag);
-		//		}
+		// }
 	}
 
 	/**
@@ -155,7 +157,9 @@
 				formatStyleAttr(attr);
 		}
 		boolean insertBreak = false;
-		insertBreak = ((IStructuredFormatPreferencesXML) getFormatPreferences()).getSplitMultiAttrs();
+		insertBreak = ((StructuredFormatPreferencesXML) getFormatPreferences()).getSplitMultiAttrs();
+		boolean alignEndBracket = ((StructuredFormatPreferencesXML) getFormatPreferences()).isAlignEndBracket();
+		boolean attributesSplitted = false;
 
 		if (insertBreak) {
 			NamedNodeMap attributes = element.getAttributes();
@@ -163,6 +167,7 @@
 				insertBreak = false;
 		}
 		String breakSpaces = getBreakSpaces(element);
+		String originalBreakSpaces = breakSpaces;
 		String indent = getIndent();
 		if (indent != null && indent.length() > 0) {
 			breakSpaces += indent;
@@ -218,6 +223,7 @@
 					if (insertBreak || !isWidthAvailable(contraints, count + 1)) {
 						replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, breakSpaces);
 						setWidth(contraints, breakSpaces);
+						attributesSplitted = true;
 					}
 					else {
 						compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
@@ -242,6 +248,7 @@
 				if (insertBreak || !isWidthAvailable(contraints, count + 1)) {
 					replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, breakSpaces);
 					setWidth(contraints, breakSpaces);
+					attributesSplitted = true;
 				}
 				else {
 					compressTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
@@ -272,6 +279,12 @@
 		else {
 			addWidth(contraints, startStructuredDocumentRegion.getLength());
 		}
+		// BUG113584 - align last bracket
+		if (alignEndBracket && attributesSplitted) {
+			removeTailingSpaces(startStructuredDocumentRegion, lastBreakRegion);
+			replaceTailingSpaces(startStructuredDocumentRegion, lastBreakRegion, originalBreakSpaces);
+			contraints.setAvailableLineWidth(getLineWidth() - originalBreakSpaces.length() - 1);
+		}
 	}
 
 	/**
@@ -303,6 +316,9 @@
 	private void formatStyleAttr(Attr attr) {
 		if (attr == null)
 			return;
+		// if someone's made it a container somehow, CSS can't format it
+		if (((IDOMNode) attr).getValueRegion() instanceof ITextRegionContainer)
+			return;
 		String value = getCSSValue(attr);
 		if (value == null)
 			return;
@@ -339,10 +355,12 @@
 		if (document == null)
 			return null;
 		INodeNotifier notifier = (INodeNotifier) document;
-		INodeAdapter adapter = notifier.getAdapterFor(CSSSourceFormatter.class);
-		if (adapter == null)
+		CSSSourceFormatter formatter = (CSSSourceFormatter) notifier.getAdapterFor(CSSSourceFormatter.class);
+		// try another way to get formatter
+		if (formatter == null)
+			formatter = CSSSourceFormatterFactory.getInstance().getSourceFormatter(notifier);
+		if (formatter == null)
 			return null;
-		CSSSourceFormatter formatter = (CSSSourceFormatter) adapter;
 		StringBuffer buffer = formatter.format(document);
 		if (buffer == null)
 			return null;
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java
index c650384..bf81533 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatContraintsImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,4 +39,4 @@
 	public void setAvailableLineWidth(int availableLineWidth) {
 		fAvailableLineWidth = availableLineWidth;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java
index 0665cc4..0552bc2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatProcessorImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
@@ -16,7 +16,6 @@
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
 import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
-import org.eclipse.wst.xml.core.internal.provisional.format.IStructuredFormatPreferencesXML;
 import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
 import org.w3c.dom.Node;
 
@@ -38,7 +37,8 @@
 			Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
 			if (preferences != null) {
 				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET));
 				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
 				char indentChar = ' ';
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java
index 6333ccf..3642881 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -28,16 +28,18 @@
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.format.IStructuredFormatPreferencesXML;
 import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+import org.w3c.dom.Text;
 
 public class HTMLFormatter implements IStructuredFormatter {
 
 	private static final String HTML_NAME = "html";//$NON-NLS-1$
 	private static final String BODY_NAME = "BODY";//$NON-NLS-1$
+	// hidden jsp logic that should be removed when jsp formatter is created
+	private static final String JSP = "jsp";//$NON-NLS-1$
 
 	/**
 	 */
@@ -97,6 +99,48 @@
 			return false;
 		Node next = node.getNextSibling();
 
+		// special exception if this node is a non-HTML tag (like JSP
+		// elements)
+		// BUG188093 - only preserve whitespace for jsp (not custom) tags
+		String prefix = node.getPrefix();
+		if (prefix != null && JSP.equals(prefix)) {
+			boolean canInsertBreakAfter = false;
+			// if a whitespace does not exist after it, do not add one
+			if (next != null && next.getNodeType() == Node.TEXT_NODE) {
+				String theText = ((Text) next).getData();
+				if (theText != null && theText.length() > 0) {
+					char theChar = theText.charAt(0);
+					canInsertBreakAfter = Character.isWhitespace(theChar);
+				}
+			}
+			// if cannot insert break, go ahead and return false (otherwise,
+			// continue processing)
+			if (!canInsertBreakAfter)
+				return false;
+		}
+
+		// special exception if next node is a non-HTML tag (like JSP
+		// elements)
+		// BUG188093 - only preserve whitespace for jsp (not custom) tags
+		if (next != null) {
+			prefix = next.getPrefix();
+			if (prefix != null && JSP.equals(prefix)) {
+				boolean canInsertBreakAfterPrevious = false;
+				// if a whitespace does not exist before it, do not add one
+				if (node.getNodeType() == Node.TEXT_NODE) {
+					String theText = ((Text) node).getData();
+					if (theText != null && theText.length() > 0) {
+						char theChar = theText.charAt(theText.length() - 1);
+						canInsertBreakAfterPrevious = Character.isWhitespace(theChar);
+					}
+				}
+				// if cannot insert break, go ahead and return false
+				// (otherwise,
+				// continue processing)
+				if (!canInsertBreakAfterPrevious)
+					return false;
+			}
+		}
 		if (parent.getNodeType() == Node.DOCUMENT_NODE) {
 			if (node.getNodeType() == Node.ELEMENT_NODE) {
 				// do not insert break after unclosed tag
@@ -111,7 +155,8 @@
 			if (next == null && element.getEndStructuredDocumentRegion() == null)
 				return false;
 
-			// insert line break under non-HTML elements including JSP elements
+			// insert line break under non-HTML elements including JSP
+			// elements
 			if (element.getPrefix() != null)
 				return true;
 
@@ -165,6 +210,49 @@
 			return false;
 		Node prev = node.getPreviousSibling();
 
+		// special exception if this node is a non-HTML tag (like JSP
+		// elements)
+		// BUG188093 - only preserve whitespace for jsp (not custom) tags
+		String prefix = node.getPrefix();
+		if (prefix != null && JSP.equals(prefix)) {
+			boolean canInsertBreakBefore = false;
+			// if a whitespace does not exist before it, do not add one
+			if (prev != null && prev.getNodeType() == Node.TEXT_NODE) {
+				String theText = ((Text) prev).getData();
+				if (theText != null && theText.length() > 0) {
+					char theChar = theText.charAt(theText.length() - 1);
+					canInsertBreakBefore = Character.isWhitespace(theChar);
+				}
+			}
+			// if cannot insert break, go ahead and return false (otherwise,
+			// continue processing)
+			if (!canInsertBreakBefore)
+				return false;
+		}
+
+		// special exception if previous node is a non-HTML tag (like JSP
+		// elements)
+		// BUG188093 - only preserve whitespace for jsp (not custom) tags
+		if (prev != null) {
+			prefix = prev.getPrefix();
+			if (prefix != null && JSP.equals(prefix)) {
+				boolean canInsertBreakBeforeNext = false;
+				// if a whitespace does not exist after it, do not add one
+				if (node.getNodeType() == Node.TEXT_NODE) {
+					String theText = ((Text) node).getData();
+					if (theText != null && theText.length() > 0) {
+						char theChar = theText.charAt(0);
+						canInsertBreakBeforeNext = Character.isWhitespace(theChar);
+					}
+				}
+				// if cannot insert break, go ahead and return false
+				// (otherwise,
+				// continue processing)
+				if (!canInsertBreakBeforeNext)
+					return false;
+			}
+		}
+
 		if (parent.getNodeType() == Node.DOCUMENT_NODE) {
 			if (prev == null)
 				return false;
@@ -176,7 +264,8 @@
 			if (prev == null && element.getStartStructuredDocumentRegion() == null)
 				return false;
 
-			// insert line break under non-HTML elements including JSP elements
+			// insert line break under non-HTML elements including JSP
+			// elements
 			if (element.getPrefix() != null)
 				return true;
 
@@ -387,6 +476,10 @@
 			return;
 		if (node.getNodeType() == Node.TEXT_NODE)
 			return;
+		// don't insert break if node is on the last line
+		int documentLength = node.getStructuredDocument().getLength();
+		if (documentLength < 1 || (node.getEndOffset() >= (documentLength - 1)))
+			return;
 		Node parent = node.getParentNode();
 		if (parent == null)
 			return;
@@ -483,9 +576,11 @@
 		int startOffset = flatNode.getStartOffset();
 		if (structuredDocument.containsReadOnly(startOffset + offset, length))
 			return;
-		// We use 'structuredDocument' as the requester object just so this and the other
-		// format-related 'repalceText' (in replaceSource) can use the same requester.
-		// Otherwise, if requester is not identical, 
+		// We use 'structuredDocument' as the requester object just so this
+		// and the other
+		// format-related 'repalceText' (in replaceSource) can use the same
+		// requester.
+		// Otherwise, if requester is not identical,
 		// the undo group gets "broken" into multiple pieces based
 		// on the requesters being different. Technically, any unique, common
 		// requester object would work.
@@ -504,12 +599,14 @@
 			source = new String();
 		if (structuredDocument.containsReadOnly(offset, length))
 			return;
-		// We use 'structuredDocument' as the requester object just so this and the other
-		// format-related 'repalceText' (in replaceSource) can use the same requester.
-		// Otherwise, if requester is not identical, 
+		// We use 'structuredDocument' as the requester object just so this
+		// and the other
+		// format-related 'repalceText' (in replaceSource) can use the same
+		// requester.
+		// Otherwise, if requester is not identical,
 		// the undo group gets "broken" into multiple pieces based
 		// on the requesters being different. Technically, any unique, common
-		// requester object would work. 
+		// requester object would work.
 		structuredDocument.replaceText(structuredDocument, offset, length, source);
 	}
 
@@ -588,19 +685,19 @@
 	/**
 	 */
 	protected boolean splitLines() {
-		return true;//getFormatPreferences().getSplitLines();
+		return true;// getFormatPreferences().getSplitLines();
 	}
 
 	protected IStructuredFormatPreferences fFormatPreferences = null;
 	protected HTMLFormatContraints fFormatContraints = null;
 	protected IProgressMonitor fProgressMonitor = null;
 
-	//public void format(XMLNode node, FormatContraints formatContraints) {
-	//	if (formatContraints.getFormatWithSiblingIndent())
-	//		formatContraints.setCurrentIndent(getSiblingIndent(node));
+	// public void format(XMLNode node, FormatContraints formatContraints) {
+	// if (formatContraints.getFormatWithSiblingIndent())
+	// formatContraints.setCurrentIndent(getSiblingIndent(node));
 	//
-	//	formatNode(node, formatContraints);
-	//}
+	// formatNode(node, formatContraints);
+	// }
 
 	public void setFormatPreferences(IStructuredFormatPreferences formatPreferences) {
 		fFormatPreferences = formatPreferences;
@@ -613,7 +710,8 @@
 			Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
 			if (preferences != null) {
 				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET));
 				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
 				char indentChar = ' ';
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java
index b17c60a..d34701a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLFormatterFactory.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
@@ -15,7 +15,6 @@
 import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
-import org.eclipse.wst.xml.core.internal.provisional.format.IStructuredFormatPreferencesXML;
 import org.eclipse.wst.xml.core.internal.provisional.format.StructuredFormatPreferencesXML;
 import org.w3c.dom.Node;
 
@@ -23,7 +22,7 @@
 
 class HTMLFormatterFactory {
 	private static HTMLFormatterFactory fInstance = null;
-	protected IStructuredFormatPreferencesXML fFormatPreferences = null;
+	protected StructuredFormatPreferencesXML fFormatPreferences = null;
 
 	static synchronized HTMLFormatterFactory getInstance() {
 		if (fInstance == null) {
@@ -79,7 +78,7 @@
 		super();
 	}
 
-	protected IStructuredFormatPreferencesXML getFormatPreferences() {
+	protected StructuredFormatPreferencesXML getFormatPreferences() {
 		if (fFormatPreferences == null) {
 			fFormatPreferences = new StructuredFormatPreferencesXML();
 
@@ -87,6 +86,7 @@
 			if (preferences != null) {
 				fFormatPreferences.setLineWidth(preferences.getInt(HTMLCorePreferenceNames.LINE_WIDTH));
 				fFormatPreferences.setSplitMultiAttrs(preferences.getBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				fFormatPreferences.setAlignEndBracket(preferences.getBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET));
 				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(HTMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
 				char indentChar = ' ';
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java
index a152f82..91aefd3 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/HTMLTextFormatter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -296,4 +296,4 @@
 			replaceSource(text.getModel(), offset, length, source);
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java
index a7b6f66..38f9203 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/format/SpaceConverter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
@@ -216,6 +216,8 @@
 			}
 			if (oldSpaces != null) {
 				spaces = mergeBlankLines(spaces, oldSpaces);
+				if (oldSpaces.equals(spaces))
+					return;
 			}
 		}
 
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java
index aa1be40..891868c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/AbstractCSSModelAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -102,4 +102,4 @@
 	protected void setModel(ICSSModel model) {
 		this.model = model;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java
index 6572ae6..1e98f23 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryContext.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -134,4 +134,4 @@
 			}
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java
index a156d20..4f6125d 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryDeclarationData.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,4 +41,4 @@
 		return value;
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java
index 04f6b6d..860610a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryTraverser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -112,4 +112,4 @@
 		this.pseudoName = pseudoName;
 		resetContext();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java
index edd74cd..6198156 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/CSSQueryValueData.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -44,4 +44,4 @@
 	int getSpecificity() {
 		return specificity;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java
index 92ceb16..c388305 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLDocumentAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -395,4 +395,4 @@
 	void setDocument(Document document) {
 		this.document = document;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java
index ba347c9..cf58aa4 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -138,4 +138,4 @@
 
 	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java
index 4c66fbf..57cd685 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/HTMLStyleSelectorAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -74,4 +74,4 @@
 		return getInstance();
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java
index 48f34ec..0c73ac2 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/LinkElementAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -272,4 +272,4 @@
 		if (model != null)
 			model.addStyleListener(this);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java
index 83318df..922ee62 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -159,4 +159,4 @@
 		return getInstance();
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java
index db14d1c..a4d8c73 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleAttrAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -245,4 +245,4 @@
 	private boolean isModelNecessary() {
 		return getElement() != null && getElement().getAttributeNode(org.eclipse.wst.html.core.internal.provisional.HTML40Namespace.ATTR_NAME_STYLE) != null;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java
index bc8d16f..5dc6d51 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/StyleListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -19,4 +19,4 @@
 	/**
 	 */
 	void styleChanged();
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java
index 9413d68..68559e3 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java
index 6ab979c..821b118 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/htmlcss/URLModelProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -415,7 +415,13 @@
 		final IContainer container = (resolver != null) ? resolver.getRootLocation() : null;
 		String docroot = null;
 		if (container != null) {
-			docroot = container.getLocation().toString();
+			IPath containerLocation = container.getLocation();
+			if (containerLocation != null) {
+				docroot = containerLocation.toString();
+			}
+			else if (container.getLocationURI() != null) {
+				docroot = container.getLocationURI().toString();
+			}
 		}
 		if (docroot == null) {
 			docroot = baseModel.getBaseLocation();
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java
index 1d17f1e..50cdd0f 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/EmbeddedHTML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -163,4 +163,4 @@
 	public boolean canHandleMimeType(String mimeType) {
 		return getSupportedMimeTypes().contains(mimeType);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java
index 06cc15a..9f9badb 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelhandler/ModelHandlerForHTML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -52,4 +52,4 @@
 		return new HTMLDocumentLoader();
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java
index ae41f91..34b600c 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMAttributeDeclarationBuddySystem.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -64,4 +64,4 @@
 	private CMAttributeDeclaration getSelf() {
 		return (CMAttributeDeclaration) self;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java
index 0f8f13e..a710eab 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMDocumentForBuddySystem.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -116,4 +116,4 @@
 			return null;
 		return (CMDocument) self;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java
index c71b4e0..c934dbb 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMElementDeclarationBuddySystem.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -198,4 +198,4 @@
 			return null;
 		return (CMElementDeclaration) buddy;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java
index 643daa6..9b584bf 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNamedNodeMapForBuddySystem.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -13,6 +13,7 @@
 
 import java.util.Hashtable;
 import java.util.Iterator;
+import java.util.Locale;
 
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
@@ -104,6 +105,12 @@
 	}
 
 	private String canonicalName(String name) {
-		return name.toUpperCase();
+		// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=171918
+		// we are able to "cheat" here a little and use US Locale
+		// to get a good canonical form, since we are using this only
+		// for HTML and JSP standard tags.
+		// Long term, for similar needs with XML 1.1 (for example)
+		// we should use a class such as com.ibm.icu.text.Normalizer
+		return name.toUpperCase(Locale.US);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java
index b7a8be7..e282f9a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/CMNodeBuddySystem.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -71,4 +71,4 @@
 			return null;
 		return buddy.getProperty(propertyName);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java
index e72c263..2d802d8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/DocumentQuery.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -197,4 +197,4 @@
 	 */
 	boolean isFragment(Document doc);
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java
index 23e396d..e5ee296 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -26,4 +26,4 @@
 	/**
 	 */
 	void setDeclaration(CMElementDeclaration declaration);
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java
index a4981cb..b558fb5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ElementDeclarationAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -65,4 +65,4 @@
 	public INodeAdapterFactory copy() {
 		return getInstance();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java
index 42ddb16..377ad09 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -118,4 +118,4 @@
 			addInclusion(availables, (CMElementDeclaration) cmn);
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java
index 8797f54..76f0281 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLElementDeclarationAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -51,4 +51,4 @@
 	public void setDeclaration(CMElementDeclaration declaration) {
 		this.declaration = declaration;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java
index e1a0d98..6d7fbbe 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryAssociationProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -51,4 +51,4 @@
 	//
 	//		return decl;
 	//	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java
index ad1d8d1..bee1432 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HTMLModelQueryImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -153,4 +153,4 @@
 		return xmlAssocProv.getCMElementDeclaration(element);
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java
index 125df78..9cc2f2e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/ModelQueryAdapterFactoryForHTML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -13,8 +13,10 @@
 
 
 import java.io.File;
+import java.net.URI;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -98,7 +100,18 @@
 			String baseLocation = model.getBaseLocation();
 			IFile baseFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(model.getBaseLocation()));
 			if (baseFile != null) {
-				baseLocation = baseFile.getLocation().toString();
+				if (baseFile.getLocation() != null) {
+					baseLocation = baseFile.getLocation().toString();
+				}
+				if (baseLocation == null && baseFile.getLocationURI() != null) {
+					baseLocation = baseFile.getLocationURI().toString();
+				}
+				if (baseLocation == null) {
+					baseLocation = baseFile.getFullPath().toString();
+				}
+			}
+			else {
+				baseLocation = model.getBaseLocation();
 			}
 			modelQueryAdapter.setIdResolver(new XMLCatalogIdResolver(baseLocation, model.getResolver()));
 		}
@@ -164,38 +177,60 @@
 				modelStateNotifier.addModelStateListener(getInternalModelStateListener());
 
 				IStructuredModel model = xmlNode.getModel();
-				String baseLocation = null;
-				String modelsBaseLocation = model.getBaseLocation();
-				if (modelsBaseLocation != null) {
-					File file = new Path(modelsBaseLocation).toFile();
-					if (file.exists()) {
-						baseLocation = file.getAbsolutePath();
-					}
-					else {
-						IPath basePath = new Path(model.getBaseLocation());
-						IPath derivedPath = null;
-						if (basePath.segmentCount() > 1)
-							derivedPath = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath).getLocation();
-						else
-							derivedPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(basePath);
-						if (derivedPath != null) {
-							baseLocation = derivedPath.toString();
+				org.eclipse.wst.sse.core.internal.util.URIResolver resolver = model.getResolver();
+				if (Debug.displayInfo)
+					System.out.println("----------------ModelQueryAdapterFactoryForHTML... baseLocation : " + resolver.getFileBaseLocation()); //$NON-NLS-1$
+
+				/**
+				 * XMLCatalogIdResolver currently requires a filesystem
+				 * location string. Customarily this will be what is in the
+				 * deprecated SSE URIResolver and required by the Common URI
+				 * Resolver.
+				 */
+				URIResolver idResolver = null;
+				if (resolver != null) {
+					idResolver = new XMLCatalogIdResolver(resolver.getFileBaseLocation(), resolver);
+				}
+				else {
+					/*
+					 * 203649 - this block may be necessary due to ordering of
+					 * setting the resolver into the model
+					 */
+					String baseLocation = null;
+					String modelsBaseLocation = model.getBaseLocation();
+					if (modelsBaseLocation != null) {
+						File file = new Path(modelsBaseLocation).toFile();
+						if (file.exists()) {
+							baseLocation = file.getAbsolutePath();
+						}
+						else {
+							IPath basePath = new Path(model.getBaseLocation());
+							IResource derivedResource = null;
+							if (basePath.segmentCount() > 1)
+								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
+							else
+								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getProject(basePath.segment(0));
+							IPath derivedPath = derivedResource.getLocation();
+							if (derivedPath != null) {
+								baseLocation = derivedPath.toString();
+							}
+							else {
+								URI uri = derivedResource.getLocationURI();
+								if (uri != null) {
+									baseLocation = uri.toString();
+								}
+							}
+						}
+						if(baseLocation == null) {
+							baseLocation = modelsBaseLocation;
 						}
 					}
+					idResolver = new XMLCatalogIdResolver(baseLocation, null);
 				}
-				if (Debug.displayInfo)
-					System.out.println("----------------ModelQueryAdapterFactoryForHTML... baseLocation : " + baseLocation); //$NON-NLS-1$
-
-				CMDocumentCache cmDocumentCache = new CMDocumentCache();
-				URIResolver idResolver = null;
-
-				org.eclipse.wst.sse.core.internal.util.URIResolver resolver = model.getResolver();
-				if (baseLocation != null || resolver != null) {
-					idResolver = new XMLCatalogIdResolver(baseLocation, resolver);
-				}
-				ModelQuery modelQuery = new HTMLModelQueryImpl(cmDocumentCache, idResolver);
+				CMDocumentCache documentCache = new CMDocumentCache();
+				ModelQuery modelQuery = new HTMLModelQueryImpl(documentCache, idResolver);
 				modelQuery.setEditMode(ModelQuery.EDIT_MODE_UNCONSTRAINED);
-				modelQueryAdapter = new ModelQueryAdapterImpl(cmDocumentCache, modelQuery, idResolver);
+				modelQueryAdapter = new ModelQueryAdapterImpl(documentCache, modelQuery, idResolver);
 			}
 		}
 		return modelQueryAdapter;
@@ -209,4 +244,4 @@
 		}
 		return internalModelStateListener;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java
deleted file mode 100644
index de50ef2..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.modelquery;
-
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.XMLAssociationProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.w3c.dom.Document;
-
-/**
- * A Class to provide an association between XHTML documents and DTDs for
- * XHTML. This class is intended to be used only in HTMLModelQueryCMProvider.
- */
-/*
- * This class closely resemble XMLModelQueryAssociationProvider.
- */
-class XHTMLAssociationProvider extends XMLAssociationProvider {
-
-	/**
-	 * set USE_QUICK_CACHE to false to test effects of not caching at all.
-	 */
-	private static final boolean USE_QUICK_CACHE = true;
-	protected URIResolver idResolver;
-	private String fCachedGrammerURI;
-	private String fCachedPublicID;
-	private String fCachedSystemID;
-	private boolean cached;
-
-	public XHTMLAssociationProvider(CMDocumentCache cache, URIResolver idResolver) {
-		super(cache);
-		this.idResolver = idResolver;
-	}
-
-	/**
-	 * 
-	 * @param publicId
-	 * @param systemId
-	 * @return
-	 */
-	public CMDocument getXHTMLCMDocument(String publicId, String systemId) {
-		if (idResolver == null)
-			return null;
-		String grammerURI = null;
-		if (USE_QUICK_CACHE) {
-			/*
-			 * In parsing a document, we get many identical requests to this
-			 * method, so instead of looking up (resolving) grammerURI each
-			 * time, we'll just return previously cached one. Probably not
-			 * worth have a more complex cache than that.
-			 */
-			if (cached && sameAs(fCachedPublicID, publicId) && sameAs(fCachedSystemID, systemId)) {
-				grammerURI = fCachedGrammerURI;
-			}
-			else {
-				grammerURI = idResolver.resolve(null, publicId, systemId);
-				fCachedGrammerURI = grammerURI;
-				fCachedPublicID = publicId;
-				fCachedSystemID = systemId;
-				cached = true;
-			}
-		}
-		else {
-			grammerURI = idResolver.resolve(null, publicId, systemId);
-		}
-
-		if (grammerURI == null)
-			return null;
-
-		/*
-		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=88896
-		 * 
-		 * We once called the deprecated 2 argument form of getCMDocument.
-		 * 
-		 * CMDocument cmDocument = documentManager.getCMDocument(publicId,
-		 * grammerURI);
-		 * 
-		 * which eventually resulted in empty string for type, which I don't
-		 * think the infrastructure handles any longer. So, I deleted
-		 * deprecated methods, and switched to null for type argument.
-		 * 
-		 * 'null' means to "create based on uri".
-		 * 
-		 * FYI, 'dtd' would mean load only those registered as dtd's
-		 * 
-		 * CMDocument cmDocument = documentManager.getCMDocument(publicId,
-		 * grammerURI); CMDocument cmDocument =
-		 * documentManager.getCMDocument(publicId, grammerURI, "dtd");
-		 */
-		CMDocument cmDocument = documentManager.getCMDocument(publicId, grammerURI, null);
-		return cmDocument;
-	}
-
-	/**
-	 */
-	protected String resolveGrammarURI(Document document, String publicId, String systemId) {
-		return idResolver.resolve(null, publicId, systemId);
-	}
-
-	private boolean sameAs(String a, String b) {
-		boolean result = false;
-		if (a == null) {
-			result = b == null;
-		}
-		else {
-			result = a.equals(b);
-		}
-		return result;
-	}
-
-	/**
-	 * This added and/or made public specifically for experimentation. It
-	 * will change as this functionality becomes API. See
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=119084
-	 */
-	public String getCachedGrammerURI() {
-		return fCachedGrammerURI;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
index 1021cc7..44e2146 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceInitializer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 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
@@ -16,6 +16,7 @@
 import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
 import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
 import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
+import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
 
 /**
  * Sets default values for HTML Core preferences
@@ -31,6 +32,7 @@
 		node.put(HTMLCorePreferenceNames.INDENTATION_CHAR, HTMLCorePreferenceNames.TAB);
 		node.putInt(HTMLCorePreferenceNames.INDENTATION_SIZE, 1);
 		node.putBoolean(HTMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false);
+		node.putBoolean(HTMLCorePreferenceNames.ALIGN_END_BRACKET, false);
 
 		// cleanup preferences
 		node.putInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.ASIS);
@@ -59,5 +61,64 @@
 		// this could be made smarter by actually looking up the content
 		// type's valid extensions
 		node.put(HTMLCorePreferenceNames.DEFAULT_EXTENSION, "html"); //$NON-NLS-1$
+		
+		initializeValidationPreferences(node);
+	}
+	
+	/**
+	 * Initializes the default validation preferences
+	 * @param node the Eclipse preference node
+	 */
+	private void initializeValidationPreferences(IEclipsePreferences node) {
+		// Attributes
+		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_UNDEFINED_NAME, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_UNDEFINED_VALUE, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_NAME_MISMATCH, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_INVALID_NAME, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_INVALID_VALUE, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_DUPLICATE, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_VALUE_MISMATCH, ValidationMessage.ERROR);
+		node.putInt(HTMLCorePreferenceNames.ATTRIBUTE_VALUE_UNCLOSED, ValidationMessage.WARNING);
+		
+		// Elements
+		node.putInt(HTMLCorePreferenceNames.ELEM_UNKNOWN_NAME, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ELEM_INVALID_NAME, ValidationMessage.ERROR);
+		node.putInt(HTMLCorePreferenceNames.ELEM_START_INVALID_CASE, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ELEM_END_INVALID_CASE, ValidationMessage.ERROR);
+		node.putInt(HTMLCorePreferenceNames.ELEM_MISSING_START, ValidationMessage.ERROR);
+		node.putInt(HTMLCorePreferenceNames.ELEM_MISSING_END, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ELEM_UNNECESSARY_END, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ELEM_INVALID_DIRECTIVE, ValidationMessage.ERROR);
+		node.putInt(HTMLCorePreferenceNames.ELEM_INVALID_CONTENT, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ELEM_DUPLICATE, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ELEM_COEXISTENCE, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.ELEM_UNCLOSED_START_TAG, ValidationMessage.ERROR);
+		node.putInt(HTMLCorePreferenceNames.ELEM_UNCLOSED_END_TAG, ValidationMessage.ERROR);
+		node.putInt(HTMLCorePreferenceNames.ELEM_INVALID_EMPTY_TAG, ValidationMessage.WARNING);
+		
+		// DOCTYPE
+		node.putInt(HTMLCorePreferenceNames.DOC_DUPLICATE, ValidationMessage.ERROR);
+		node.putInt(HTMLCorePreferenceNames.DOC_INVALID_CONTENT, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.DOC_DOCTYPE_UNCLOSED, ValidationMessage.ERROR);
+		
+		// Text
+		node.putInt(HTMLCorePreferenceNames.TEXT_INVALID_CONTENT, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.TEXT_INVALID_CHAR, ValidationMessage.WARNING);
+		
+		// Comment
+		node.putInt(HTMLCorePreferenceNames.COMMENT_INVALID_CONTENT, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.COMMENT_UNCLOSED, ValidationMessage.ERROR);
+		
+		// CDATA
+		node.putInt(HTMLCorePreferenceNames.CDATA_INVALID_CONTENT, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.CDATA_UNCLOSED, ValidationMessage.ERROR);
+		
+		// Processing Instructions
+		node.putInt(HTMLCorePreferenceNames.PI_INVALID_CONTENT, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.PI_UNCLOSED, ValidationMessage.ERROR);
+		
+		// Entity Reference
+		node.putInt(HTMLCorePreferenceNames.REF_UNDEFINED, ValidationMessage.WARNING);
+		node.putInt(HTMLCorePreferenceNames.REF_INVALID_CONTENT, ValidationMessage.WARNING);
 	}
 }
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
index 606783d..f4d3644 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/preferences/HTMLCorePreferenceNames.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 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
@@ -93,6 +93,15 @@
 	public static final String SPLIT_MULTI_ATTRS = "splitMultiAttrs";//$NON-NLS-1$
 
 	/**
+	 * Indicates if end brackets of start tags should be placed on a new line
+	 * if the start tag spans more than one line.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String ALIGN_END_BRACKET = "alignEndBracket";//$NON-NLS-1$
+
+	/**
 	 * Indicates whether or not cleanup processor should format source.
 	 * <p>
 	 * Value is of type <code>Boolean</code>.
@@ -220,4 +229,49 @@
 	 * @see #ATTR_NAME_CASE
 	 */
 	public static final int UPPER = 2;
+	
+	public static final String USE_PROJECT_SETTINGS = "use-project-settings";//$NON-NLS-1$
+	
+	public static final String ATTRIBUTE_UNDEFINED_NAME = "attrUndefName";//$NON-NLS-1$
+	public static final String ATTRIBUTE_UNDEFINED_VALUE = "attrUndefValue";//$NON-NLS-1$
+	public static final String ATTRIBUTE_NAME_MISMATCH = "attrNameMismatch";//$NON-NLS-1$
+	public static final String ATTRIBUTE_INVALID_NAME = "attrInvalidName";//$NON-NLS-1$
+	public static final String ATTRIBUTE_INVALID_VALUE = "attrInvalidValue";//$NON-NLS-1$
+	public static final String ATTRIBUTE_DUPLICATE = "attrDuplicate";//$NON-NLS-1$
+	public static final String ATTRIBUTE_VALUE_MISMATCH = "attrValueMismatch";//$NON-NLS-1$
+	public static final String ATTRIBUTE_VALUE_UNCLOSED = "attrValueUnclosed";//$NON-NLS-1$
+	
+	public static final String ELEM_UNKNOWN_NAME = "elemUnknownName";//$NON-NLS-1$
+	public static final String ELEM_INVALID_NAME = "elemInvalidName";//$NON-NLS-1$
+	public static final String ELEM_START_INVALID_CASE = "elemStartInvalidCase";//$NON-NLS-1$
+	public static final String ELEM_END_INVALID_CASE = "elemEndInvalidCase";//$NON-NLS-1$
+	public static final String ELEM_MISSING_START = "elemMissingStart";//$NON-NLS-1$
+	public static final String ELEM_MISSING_END = "elemMissingEnd";//$NON-NLS-1$
+	public static final String ELEM_UNNECESSARY_END = "elemUnnecessaryEnd";//$NON-NLS-1$
+	public static final String ELEM_INVALID_DIRECTIVE = "elemInvalidDirective";//$NON-NLS-1$
+	public static final String ELEM_INVALID_CONTENT = "elemInvalidContent";//$NON-NLS-1$
+	public static final String ELEM_DUPLICATE = "elemDuplicate";//$NON-NLS-1$
+	public static final String ELEM_COEXISTENCE = "elemCoexistence";//$NON-NLS-1$
+	public static final String ELEM_UNCLOSED_START_TAG = "elemUnclosedStartTag";//$NON-NLS-1$
+	public static final String ELEM_UNCLOSED_END_TAG = "elemUnclosedEndTag";//$NON-NLS-1$
+	public static final String ELEM_INVALID_EMPTY_TAG = "elemInvalidEmptyTag";//$NON-NLS-1$
+	
+	public static final String DOC_DUPLICATE = "docDuplicateTag";//$NON-NLS-1$
+	public static final String DOC_INVALID_CONTENT = "docInvalidContent";//$NON-NLS-1$
+	public static final String DOC_DOCTYPE_UNCLOSED = "docDoctypeUnclosed";//$NON-NLS-1$
+	
+	public static final String TEXT_INVALID_CONTENT = "docInvalidContent";//$NON-NLS-1$
+	public static final String TEXT_INVALID_CHAR = "docInvalidChar";//$NON-NLS-1$
+	
+	public static final String COMMENT_INVALID_CONTENT = "commentInvalidContent";//$NON-NLS-1$
+	public static final String COMMENT_UNCLOSED = "commentUnclosed";//$NON-NLS-1$
+	
+	public static final String CDATA_INVALID_CONTENT = "cdataInvalidContent";//$NON-NLS-1$
+	public static final String CDATA_UNCLOSED = "cdataUnclosed";//$NON-NLS-1$
+	
+	public static final String PI_INVALID_CONTENT = "piInvalidContent";//$NON-NLS-1$
+	public static final String PI_UNCLOSED = "piUnclosed";//$NON-NLS-1$
+	
+	public static final String REF_INVALID_CONTENT = "refInvalidContent";//$NON-NLS-1$
+	public static final String REF_UNDEFINED = "piUndefined";//$NON-NLS-1$
 }
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java
index 9c944f0..5d1a53a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTML40Namespace.java
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java
index 5396cd6..1d7a753 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLCMProperties.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -113,4 +113,4 @@
 		public static final String OMIT_END_MUST = "omitEndMust";//$NON-NLS-1$
 
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java
index fe2b4ea..88bb2ea 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFilesPreferenceNames.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -30,4 +30,4 @@
 	// Its expected for any final product it would not be, so we'll return 
 	// "WTP" for development/interim builds. No need to translate. 
 	static String GENERATOR = (product == null) ? "WTP": product.getName(); //$NON-NLS-1$
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java
index a4cde9f..db3217e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/HTMLFormatContraints.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,4 +32,4 @@
 	 * 	It's best for the node to figure out the available line width on the fly.
 	 */
 	void setAvailableLineWidth(int availableLineWidth);
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java
index 530c28d..5d1018a 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/PreferenceNames.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -32,4 +32,4 @@
 	String TAGNAME = "tagname"; //$NON-NLS-1$
 	String ATTRIBUTENAME = "attributename"; //$NON-NLS-1$
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java
index d01304d..6649119 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/contenttype/ContentTypeIdForHTML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java
index 7fa8822..50f61db 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/provisional/text/IHTMLPartitionTypes.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
 package org.eclipse.wst.html.core.internal.provisional.text;
 
 
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java
index 3c93d42..fdde5c7 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/text/StructuredTextPartitionerForHTML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
  *******************************************************************************/
@@ -21,6 +21,7 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredTextPartitioner;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
+import org.eclipse.wst.sse.core.internal.text.IRegionComparible;
 import org.eclipse.wst.sse.core.internal.text.rules.IStructuredTypedRegion;
 import org.eclipse.wst.sse.core.internal.util.ScriptLanguageKeys;
 import org.eclipse.wst.sse.core.utils.StringUtils;
@@ -34,11 +35,24 @@
  */
 public class StructuredTextPartitionerForHTML extends StructuredTextPartitionerForXML implements IStructuredTextPartitioner {
 
-	private final static String[] configuredContentTypes = new String[]{IHTMLPartitions.HTML_DEFAULT, IHTMLPartitions.HTML_DECLARATION, IHTMLPartitions.HTML_COMMENT, IHTMLPartitions.SCRIPT, ICSSPartitions.STYLE};
+	private final static String[] configuredContentTypes = new String[]{IHTMLPartitions.HTML_DEFAULT, IHTMLPartitions.HTML_DECLARATION, IHTMLPartitions.HTML_COMMENT, IHTMLPartitions.SCRIPT, ICSSPartitions.STYLE,IHTMLPartitions.SCRIPT_EVENTHANDLER};
 
 	public static final String JAVASCRIPT = "javascript"; //$NON-NLS-1$
 	public static final String JAVASCRIPT_APPLICATION = "application/x-javascript"; //$NON-NLS-1$
-
+	
+	private static final String[] EVENT_ATTRIBUTE_NAMES = 
+		{HTML40Namespace.ATTR_NAME_ONCLICK, 
+		HTML40Namespace.ATTR_NAME_ONDBLCLICK,
+		HTML40Namespace.ATTR_NAME_ONMOUSEDOWN,
+		HTML40Namespace.ATTR_NAME_ONMOUSEUP,
+		HTML40Namespace.ATTR_NAME_ONMOUSEOVER,
+		HTML40Namespace.ATTR_NAME_ONMOUSEMOVE,
+		HTML40Namespace.ATTR_NAME_ONMOUSEOUT,
+		HTML40Namespace.ATTR_NAME_ONKEYPRESS,
+		HTML40Namespace.ATTR_NAME_ONKEYDOWN,
+		HTML40Namespace.ATTR_NAME_ONKEYUP,
+		HTML40Namespace.ATTR_NAME_ONHELP};
+	
 	public StructuredTextPartitionerForHTML() {
 		super();
 	}
@@ -133,6 +147,8 @@
 			result = IHTMLPartitions.HTML_COMMENT;
 		else if (region.getType() == DOMRegionContext.XML_DOCTYPE_DECLARATION || region.getType() == DOMRegionContext.XML_DECLARATION_OPEN)
 			result = IHTMLPartitions.HTML_DECLARATION;
+		else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && isScriptAttributeValue(region, offset))
+			result = IHTMLPartitions.SCRIPT_EVENTHANDLER;
 		else
 			result = super.getPartitionType(region, offset);
 		return result;
@@ -184,6 +200,8 @@
 			result = IHTMLPartitions.SCRIPT;
 		else if (tagname.equalsIgnoreCase(HTML40Namespace.ElementName.STYLE))
 			result = ICSSPartitions.STYLE;
+		else if (region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && isScriptAttributeValue(region, offset))
+			result = IHTMLPartitions.SCRIPT_EVENTHANDLER;
 		else
 			result = super.getPartitionType(region, offset);
 
@@ -204,5 +222,38 @@
 	public static String[] getConfiguredContentTypes() {
 		return configuredContentTypes;
 	}
+	
+	private boolean isScriptAttributeValue(ITextRegion region, int offset) {
+		if (region.getType() != DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
+			return false;
 
-}
\ No newline at end of file
+		return isAttributeNameForValueAnEventScript(region, offset);
+	}
+
+	private boolean isAttributeNameForValueAnEventScript(ITextRegion attrValueRegion, int offset) {
+		IStructuredDocumentRegion node = fStructuredDocument.getRegionAtCharacterOffset(offset);
+		ITextRegionList regionList = node.getRegions();
+		int currentIndex = regionList.indexOf(attrValueRegion);
+
+		/*
+		 * 4 is the minimum index allowing for the tag's open, name, attribute
+		 * name and equals character to appear first
+		 */
+		if (currentIndex < 4)
+			return false;
+		ITextRegion tagAttrNameRegion = regionList.get(currentIndex - 2);
+		
+		boolean isEvent = false;
+		if (fStructuredDocument instanceof IRegionComparible) {
+			int start = node.getStartOffset(tagAttrNameRegion);
+			for (int i = 0; !isEvent && i < EVENT_ATTRIBUTE_NAMES.length; i++) {
+				isEvent = ((IRegionComparible) fStructuredDocument).regionMatchesIgnoreCase(start, tagAttrNameRegion.getTextLength(), EVENT_ATTRIBUTE_NAMES[i]);
+			}
+		}
+		else {
+			String tagAttrName = node.getText(tagAttrNameRegion);
+			isEvent = StringUtils.contains(EVENT_ATTRIBUTE_NAMES, tagAttrName, false);
+		}
+		return isEvent;
+	}
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java
index b9b4d93..3e9d85d 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/AbstractErrorInfo.java
@@ -1,15 +1,17 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.html.core.internal.validate;
 
+import org.eclipse.wst.sse.core.internal.validate.ErrorInfo;
+
 abstract class AbstractErrorInfo implements ErrorInfo, ErrorState {
 
 
@@ -37,4 +39,4 @@
 	public int getState() {
 		return this.state;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java
index a8af2e5..1809abd 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CMUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -197,4 +197,4 @@
 		}
 		return false;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java
index 0ad2128..b0e7523 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/CompositeValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -71,4 +71,4 @@
 				add(validators[i]);
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java
index 1bb7a86..562915b 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/DocumentPropagatingValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -49,4 +49,4 @@
 	protected final ValidationAdapter getValidator() {
 		return validator;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java
index 5b83741..c290b62 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ElementPropagatingValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -41,4 +41,4 @@
 	protected ValidationAdapter getValidator() {
 		return validator;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfo.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfo.java
deleted file mode 100644
index 34b430e..0000000
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfo.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.core.internal.validate;
-
-
-
-interface ErrorInfo {
-
-	public String getHint();
-
-	public int getLength();
-
-	public int getOffset();
-
-	public int getState();
-
-	public short getTargetType();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java
index 6026c2c..8097da4 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorInfoImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -53,4 +53,4 @@
 	public short getTargetType() {
 		return target.getNodeType();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java
index f725940..17af433 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/ErrorState.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -38,4 +38,4 @@
 	static final int INVALID_CONTENT_ERROR = 1001;
 	static final int DUPLICATE_ERROR = 1002;
 	static final int COEXISTENCE_ERROR = 1003;
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java
index c16984c..a548dea 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/FMUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -75,4 +75,4 @@
 	}
 
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
index 50cbd7e..a4a0279 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLAttributeValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -12,7 +12,10 @@
 
 
 
-import java.util.Iterator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
 
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
@@ -22,10 +25,13 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
+import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
@@ -93,6 +99,38 @@
 			return;
 		CMNamedNodeMap declarations = edec.getAttributes();
 
+		CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(declarations) {
+			private Map caseInsensitive;
+			
+			private Map getCaseInsensitiveMap() {
+				if(caseInsensitive == null)
+					caseInsensitive = new HashMap();
+				return caseInsensitive;
+			}
+
+			public CMNode getNamedItem(String name) {
+				CMNode node = super.getNamedItem(name);
+				if (node == null) {
+					node = (CMNode) getCaseInsensitiveMap().get(name.toLowerCase(Locale.US));
+				}
+				return node;
+			}
+
+			public void put(CMNode cmNode) {
+				super.put(cmNode);
+				getCaseInsensitiveMap().put(cmNode.getNodeName().toLowerCase(Locale.US), cmNode);
+			}
+		};
+
+		List nodes = ModelQueryUtil.getModelQuery(target.getOwnerDocument()).getAvailableContent((Element) node, edec, ModelQuery.INCLUDE_ATTRIBUTES);
+		for (int k = 0; k < nodes.size(); k++) {
+			CMNode cmnode = (CMNode) nodes.get(k);
+			if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
+				allAttributes.put(cmnode);
+			}
+		}
+		declarations = allAttributes;
+
 		NamedNodeMap attrs = target.getAttributes();
 		for (int i = 0; i < attrs.getLength(); i++) {
 			int rgnType = REGION_NAME;
@@ -115,13 +153,13 @@
 			if (adec == null) {
 				// No attr declaration was found. That is, the attr name is
 				// undefined.
-				// but not regard it as undefined name if it includes JSP
-				if (!hasJSPRegion(((IDOMNode) a).getNameRegion())) {
+				// but not regard it as undefined name if it includes nested
+				// region
+				if (!hasNestedRegion(((IDOMNode) a).getNameRegion())) {
 					rgnType = REGION_NAME;
 					state = ErrorState.UNDEFINED_NAME_ERROR;
 				}
-			}
-			else {
+			} else {
 				// The attr declaration was found.
 				// At 1st, the name should be checked.
 				if (CMUtil.isHTML(edec) && (!CMUtil.isXHTML(edec))) {
@@ -132,8 +170,7 @@
 					if (CMUtil.isBooleanAttr(adec) && ((IDOMAttr) a).hasNameOnly())
 						continue; // OK, keep going. No more check is needed
 					// against this attr.
-				}
-				else {
+				} else {
 					// If the target is other than pure HTML (JSP or XHTML),
 					// the name
 					// must be checked exactly (ie in case sensitive way).
@@ -156,8 +193,7 @@
 							rgnType = REGION_VALUE;
 							state = ErrorState.UNDEFINED_VALUE_ERROR;
 						}
-					}
-					else {
+					} else {
 						String[] candidates = attrType.getEnumeratedValues();
 						if (candidates != null && candidates.length > 0) {
 							// several candidates are found.
@@ -178,8 +214,8 @@
 								// No candidate was found. That is,
 								// actualValue is invalid.
 								// but not regard it as undefined value if it
-								// includes JSP.
-								if (!hasJSPRegion(((IDOMNode) a).getValueRegion())) {
+								// includes nested region.
+								if (!hasNestedRegion(((IDOMNode) a).getValueRegion())) {
 									rgnType = REGION_VALUE;
 									state = ErrorState.UNDEFINED_VALUE_ERROR;
 								}
@@ -208,43 +244,24 @@
 			if (state != ErrorState.NONE_ERROR) {
 				Segment seg = getErrorSegment((IDOMNode) a, rgnType);
 				if (seg != null)
-					reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(state, seg, a)));
+					reporter.report(new ErrorInfoImpl(state, seg, a));
 			}
 		}
 	}
 
 	/**
+	 * True if container has nested regions, meaning container is probably too
+	 * complicated (like JSP regions) to validate with this validator.
 	 */
-	private boolean hasJSPRegion(ITextRegion container) {
+	private boolean hasNestedRegion(ITextRegion container) {
 		if (!(container instanceof ITextRegionContainer))
 			return false;
 		ITextRegionList regions = ((ITextRegionContainer) container).getRegions();
 		if (regions == null)
 			return false;
-		Iterator e = regions.iterator();
-		while (e.hasNext()) {
-			ITextRegion region = (ITextRegion) e.next();
-			if (region == null)
-				continue;
-			String regionType = region.getType();
-			if (regionType == DOMRegionContext.XML_TAG_OPEN || (isNextedTagName(regionType)))
-				return true;
-		}
-		return false;
-	}
-
-    /**
-     * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-     * way for expedency. Should be evolved in future to depend on "nestedContext".
-     */
-	private boolean isNextedTagName(String regionType) {
-		final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$
-		final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$
-		final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$
-		final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$
-
-		boolean result = regionType.equals(JSP_SCRIPTLET_OPEN) || regionType.equals(JSP_EXPRESSION_OPEN) || regionType.equals(JSP_DECLARATION_OPEN) || regionType.equals(JSP_DIRECTIVE_OPEN);
-		return result;
+		// BUG207194: return true by default as long as container is an
+		// ITextRegionContainer with at least 1 region
+		return true;
 	}
 
 	// <<D214022
@@ -252,4 +269,4 @@
 		return (c == SINGLE_QUOTE) || (c == DOUBLE_QUOTE);
 	}
 	// D210422
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java
index 026e6d2..cb6cab3 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLDocumentContentValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -117,7 +117,7 @@
 					// report error (duplicate)
 					Segment errorSeg = FMUtil.getSegment((IDOMNode) html, FMUtil.SEG_START_TAG);
 					if (errorSeg != null)
-						reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(ErrorState.DUPLICATE_ERROR, errorSeg, html)));
+						reporter.report(new ErrorInfoImpl(ErrorState.DUPLICATE_ERROR, errorSeg, html));
 				}
 			}
 		}
@@ -188,9 +188,9 @@
 			if (error != ErrorState.NONE_ERROR) {
 				Segment errorSeg = FMUtil.getSegment(child, segType);
 				if (errorSeg != null)
-					reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(error, errorSeg, child)));
+					reporter.report(new ErrorInfoImpl(error, errorSeg, child));
 			}
 		}
 	}
 
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java
index 6ae5e13..0c61edd 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementAncestorValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -61,10 +61,10 @@
 			if (pdec != null) { // prohibited element is found in ancestors.
 				Segment errorSeg = FMUtil.getSegment((IDOMNode) node, FMUtil.SEG_START_TAG);
 				if (errorSeg != null)
-					reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(ErrorState.INVALID_CONTENT_ERROR, errorSeg, target)));
+					reporter.report(new ErrorInfoImpl(ErrorState.INVALID_CONTENT_ERROR, errorSeg, target));
 				break; // If one prohibited ancestor is found, it's enough.
 			}
 			parent = SMUtil.getParentElement(parent);
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java
index 8ec0839..9041574 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLElementContentValidator.java
@@ -1,22 +1,28 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
 package org.eclipse.wst.html.core.internal.validate;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
+import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 
 public class HTMLElementContentValidator extends PrimeValidator {
 
@@ -42,17 +48,40 @@
 		if (CMUtil.isForeign(target))
 			return;
 
-		validateContent(target, target.getChildNodes());
+		validateContent(target, target.getFirstChild());
 	}
 
-	private void validateContent(Element parent, NodeList children) {
-		for (int i = 0; i < children.getLength(); i++) {
-			Node child = children.item(i);
-			if (child == null)
-				continue;
+	private void validateContent(Element parent, Node child) {
+		if (child == null)
+			return;
 
+		CMElementDeclaration ed = CMUtil.getDeclaration(parent);
+		if(ed == null || ed.getContentType() == CMElementDeclaration.ANY)
+			return;
+		
+		/*
+		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=218143 - 
+		 * ModelQuery use not pervasive enough
+		 */
+		List availableChildElementDeclarations = ModelQueryUtil.getModelQuery(parent.getOwnerDocument()).getAvailableContent(parent, ed, ModelQuery.INCLUDE_CHILD_NODES);
+		/*
+		 * Retrieve and set aside just the element names for faster checking
+		 * later.
+		 */
+		int availableChildCount = availableChildElementDeclarations.size();
+		List availableChildElementLowercaseNames = new ArrayList(availableChildCount);
+		for (int i = 0; i < availableChildCount; i++) {
+			CMNode cmnode = (CMNode) availableChildElementDeclarations.get(i);
+			if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) {
+				availableChildElementLowercaseNames.add(cmnode.getNodeName().toLowerCase(Locale.US));
+			}
+		}
+		Object[] availableChildElementLowercaseNamesArray = availableChildElementLowercaseNames.toArray();
+
+		while (child != null) {
 			// perform actual validation
-			validateNode(parent, child);
+			validateNode(parent, child, ed, availableChildElementLowercaseNamesArray);
+			child = child.getNextSibling();
 		}
 	}
 
@@ -72,25 +101,35 @@
 
 	/*
 	 * The implementation of the following method is practical but accurate.
-	 * The accurate maximum occurence should be retreive from the content
+	 * The accurate maximum occurrence should be retrieve from the content
 	 * model. However, it is useful enough, since almost implicit elements are
 	 * HTML, HEAD, or BODY.
 	 */
 	// private int getMaxOccur(Element parent, String childTag) {
 	// return 1;
 	// }
-	private void validateNode(Element target, Node child) {
+
+	private boolean containsName(String name, Object[] possible) {
+		if (name != null && possible != null) {
+			for (int i = 0; i < possible.length; i++) {
+				if(name.equals(possible[i]))
+				return true;
+			}
+		}
+		return false;
+	}
+
+	private void validateNode(Element target, Node child, CMElementDeclaration edec, Object[] availableLowercaseChildElementNames) {
 		// NOTE: If the target element is 'UNKNOWN', that is, it has no
 		// element declaration, the content type of the element should be
 		// regarded as 'ANY'. -- 9/10/2001
 		int contentType = CMElementDeclaration.ANY;
-		CMElementDeclaration edec = CMUtil.getDeclaration(target);
 		if (edec != null)
 			contentType = edec.getContentType();
 
 		int error = ErrorState.NONE_ERROR;
 		int segType = FMUtil.SEG_WHOLE_TAG;
-
+		
 		switch (child.getNodeType()) {
 			case Node.ELEMENT_NODE :
 				Element childElem = (Element) child;
@@ -105,7 +144,7 @@
 				// Defect 186774: If a child is not one of HTML elements,
 				// it should be regarded as a valid child regardless the
 				// type of the parent content model. -- 10/12/2001
-				if (ced == null || CMUtil.isSSI(ced) || (!CMUtil.isHTML(ced)))
+				if (ced == null || CMUtil.isSSI(ced) || (!CMUtil.isHTML(ced)) || containsName(ced.getElementName().toLowerCase(Locale.US), availableLowercaseChildElementNames))
 					return;
 
 				switch (contentType) {
@@ -174,7 +213,7 @@
 		if (error != ErrorState.NONE_ERROR) {
 			Segment errorSeg = FMUtil.getSegment((IDOMNode) child, segType);
 			if (errorSeg != null)
-				reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(error, errorSeg, child)));
+				reporter.report(new ErrorInfoImpl(error, errorSeg, child));
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java
index f9a9392..65795b3 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleDocumentValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -36,4 +36,4 @@
 	public boolean isAdapterForType(Object type) {
 		return ((type == HTMLSimpleDocumentValidator.class) || super.isAdapterForType(type));
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java
index ff2a5e1..7276fd8 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLSimpleValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -39,4 +39,4 @@
 	public boolean isAdapterForType(Object type) {
 		return ((type == HTMLSimpleValidator.class) || super.isAdapterForType(type));
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java
index 7b50886..1010e04 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/HTMLValidationAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -69,4 +69,4 @@
 	public INodeAdapterFactory copy() {
 		return getInstance();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java
index c60b51c..bee3e48 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/MessageFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -12,15 +12,142 @@
 
 import java.util.Hashtable;
 
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ProjectScope;
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.html.core.internal.HTMLCoreMessages;
+import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
 import org.eclipse.wst.html.core.internal.Logger;
+import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
+import org.eclipse.wst.sse.core.internal.validate.ErrorInfo;
 import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
 import org.w3c.dom.Node;
 
-class MessageFactory implements ErrorState {
+public class MessageFactory implements ErrorState {
 
 
+	private IProject fProject;
+	
+	public MessageFactory() {
+		init();
+	}
+	
+	public MessageFactory(IProject project) {
+		fProject = project;
+		init();
+	}
+	
+	protected Preferences getModelPreferences() {
+		return HTMLCorePlugin.getDefault().getPluginPreferences();
+	}
+	
+	/**
+	 * Creates a packet for the error table based on the state, message, and the
+	 * severity defined in the preference store. This packet, in addition to
+	 * being added to the error table, is also placed in a map based on the
+	 * supplied preference key
+	 * 
+	 * @param key the preference key for the error severity
+	 * @param errorTable the error table to store the packet information in
+	 * @param state the error state
+	 * @param msg the message for the error
+	 */
+	private void mapToKey(String key, ErrorTable errorTable, int state, String msg) {
+		boolean useProject = false;
+		IEclipsePreferences prefs = null;
+		
+		if (fProject != null) {
+			prefs = new ProjectScope(fProject).getNode(HTMLCorePlugin.getDefault().getBundle().getSymbolicName());
+			useProject = prefs.getBoolean(HTMLCorePreferenceNames.USE_PROJECT_SETTINGS, false);
+		}
+		
+		int severity = ValidationMessage.WARNING;
+		if(useProject)
+			severity = prefs.getInt(key, ValidationMessage.WARNING);
+		else
+			severity = new InstanceScope().getNode(HTMLCorePlugin.getDefault().getBundle().getSymbolicName()).getInt(key, ValidationMessage.WARNING);
+			
+		errorTable.put(state, msg, severity);
+	}
+	
+	private void init() {
+		for (int i = 0; i < NodeType.MAX_TYPE; i++) {
+			errTables[i] = new ErrorTable();
+		}
+		// NOTE: The severities are just stub.  They must be reviewed.
+		// -- 8/30/2001
+
+		// attribute error map
+		ErrorTable attrTable = errTables[NodeType.ATTRIBUTE];// short hand
+		attrTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_UNDEFINED_NAME, attrTable, UNDEFINED_NAME_ERROR, MSG_UNDEFINED_ATTR_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_UNDEFINED_VALUE, attrTable, UNDEFINED_VALUE_ERROR, MSG_UNDEFINED_VALUE_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_NAME_MISMATCH, attrTable, MISMATCHED_ERROR, MSG_MISMATCHED_ATTR_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_INVALID_NAME, attrTable, INVALID_NAME_ERROR, MSG_INVALID_ATTR_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_INVALID_VALUE, attrTable, INVALID_ATTR_ERROR, MSG_ATTR_NO_VALUE_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_DUPLICATE, attrTable, DUPLICATE_ERROR, MSG_DUPLICATE_ATTR_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_VALUE_MISMATCH, attrTable, MISMATCHED_VALUE_ERROR, MSG_MISMATCHED_ATTR_VALUE_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ATTRIBUTE_VALUE_UNCLOSED, attrTable, UNCLOSED_ATTR_VALUE, MSG_UNCLOSED_ATTR_VALUE_ERROR);
+
+		// element error map
+		ErrorTable elemTable = errTables[NodeType.ELEMENT];// short hand
+		elemTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+		mapToKey(HTMLCorePreferenceNames.ELEM_UNKNOWN_NAME, elemTable, UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_INVALID_NAME, elemTable, INVALID_NAME_ERROR, MSG_INVALID_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_START_INVALID_CASE, elemTable, MISMATCHED_ERROR, MSG_MISMATCHED_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_END_INVALID_CASE, elemTable, MISMATCHED_END_TAG_ERROR, MSG_MISMATCHED_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_MISSING_START, elemTable, MISSING_START_TAG_ERROR, MSG_MISSING_START_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_MISSING_END, elemTable, MISSING_END_TAG_ERROR, MSG_MISSING_END_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_UNNECESSARY_END, elemTable, UNNECESSARY_END_TAG_ERROR, MSG_UNNECESSARY_END_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_INVALID_DIRECTIVE, elemTable, INVALID_DIRECTIVE_ERROR, MSG_INVALID_DIRECTIVE_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_INVALID_CONTENT, elemTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_DUPLICATE, elemTable, DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_COEXISTENCE, elemTable, COEXISTENCE_ERROR, MSG_INVALID_CONTENT_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_UNCLOSED_START_TAG, elemTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_START_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_UNCLOSED_END_TAG, elemTable, UNCLOSED_END_TAG_ERROR, MSG_UNCLOSED_END_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.ELEM_INVALID_EMPTY_TAG, elemTable, INVALID_EMPTY_ELEMENT_TAG, MSG_INVALID_EMPTY_ELEMENT_TAG);
+
+		// document type error map
+		ErrorTable docTable = errTables[NodeType.DOCUMENT_TYPE];// short hand
+		docTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+		mapToKey(HTMLCorePreferenceNames.DOC_DUPLICATE, docTable, DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.DOC_INVALID_CONTENT, docTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
+		mapToKey(HTMLCorePreferenceNames.DOC_DOCTYPE_UNCLOSED, docTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_DOCTYPE_ERROR);
+
+		// text error map
+		ErrorTable textTable = errTables[NodeType.TEXT];
+		textTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+		mapToKey(HTMLCorePreferenceNames.TEXT_INVALID_CONTENT, textTable, INVALID_CONTENT_ERROR, MSG_INVALID_TEXT_ERROR);
+		mapToKey(HTMLCorePreferenceNames.TEXT_INVALID_CHAR, textTable, INVALID_CHAR_ERROR, MSG_INVALID_CHAR_ERROR);
+
+		// comment error map
+		ErrorTable commTable = errTables[NodeType.COMMENT];
+		commTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+		mapToKey(HTMLCorePreferenceNames.COMMENT_INVALID_CONTENT, commTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
+		mapToKey(HTMLCorePreferenceNames.COMMENT_UNCLOSED, commTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_COMMENT_ERROR);
+
+		// cdata section error map
+		ErrorTable cdatTable = errTables[NodeType.CDATA_SECTION];
+		cdatTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+		mapToKey(HTMLCorePreferenceNames.CDATA_INVALID_CONTENT, cdatTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
+		mapToKey(HTMLCorePreferenceNames.CDATA_UNCLOSED, cdatTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_CDATA_SECTION_ERROR);
+
+		// processing instruction error map
+		ErrorTable piTable = errTables[NodeType.PROCESSING_INSTRUCTION];
+		piTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+		mapToKey(HTMLCorePreferenceNames.PI_INVALID_CONTENT, piTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
+		mapToKey(HTMLCorePreferenceNames.PI_UNCLOSED, piTable, UNCLOSED_TAG_ERROR, MSG_UNCLOSED_PI_ERROR);
+
+		// entity reference error map
+		ErrorTable erTable = errTables[NodeType.ENTITY_REFERENCE];
+		erTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+		mapToKey(HTMLCorePreferenceNames.REF_UNDEFINED, erTable, UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR);
+		mapToKey(HTMLCorePreferenceNames.REF_INVALID_CONTENT, erTable, INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR);
+	}
+	
 	private static class ErrorTable {
 		private class Packet {
 			public Packet(String msg, int severity) {
@@ -43,9 +170,10 @@
 		public ErrorTable() {
 		}
 
-		public void put(int state, String msg, int severity) {
+		public Packet put(int state, String msg, int severity) {
 			Packet packet = new Packet(msg, severity);
 			map.put(new Integer(state), packet);
+			return packet;
 		}
 
 		public String getMessage(int state) {
@@ -105,93 +233,93 @@
 	private static final String MSG_UNCLOSED_CDATA_SECTION_ERROR = HTMLCoreMessages.CDATA_section_not_closed__ERROR_;
 	private static final String MSG_INVALID_EMPTY_ELEMENT_TAG = HTMLCoreMessages._ERROR_Tag___0___should_be_an_empty_element_tag_1;
 	private static final String MSG_UNCLOSED_ATTR_VALUE_ERROR = HTMLCoreMessages._ERROR_Attribute_value___0___not_closed__1;
-	private static ErrorTable[] errTables = new ErrorTable[NodeType.MAX_TYPE];
+	private ErrorTable[] errTables = new ErrorTable[NodeType.MAX_TYPE];
 
-	static {
-		for (int i = 0; i < NodeType.MAX_TYPE; i++) {
-			errTables[i] = new ErrorTable();
-		}
-		// NOTE: The severities are just stub.  They must be reviewed.
-		// -- 8/30/2001
-
-		// attribute error map
-		ErrorTable attrTable = errTables[NodeType.ATTRIBUTE];// short hand
-		attrTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		attrTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_ATTR_ERROR, ValidationMessage.WARNING);
-		attrTable.put(UNDEFINED_VALUE_ERROR, MSG_UNDEFINED_VALUE_ERROR, ValidationMessage.WARNING);
-		attrTable.put(MISMATCHED_ERROR, MSG_MISMATCHED_ATTR_ERROR, ValidationMessage.WARNING);
-		attrTable.put(INVALID_NAME_ERROR, MSG_INVALID_ATTR_ERROR, ValidationMessage.WARNING);
-		attrTable.put(INVALID_ATTR_ERROR, MSG_ATTR_NO_VALUE_ERROR, ValidationMessage.WARNING);
-		attrTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_ATTR_ERROR, ValidationMessage.WARNING);
-		attrTable.put(MISMATCHED_VALUE_ERROR, MSG_MISMATCHED_ATTR_VALUE_ERROR, ValidationMessage.ERROR);
-		//<<D210422
-		attrTable.put(UNCLOSED_ATTR_VALUE, MSG_UNCLOSED_ATTR_VALUE_ERROR, ValidationMessage.WARNING);
-		//D210422
-		// element error map
-		ErrorTable elemTable = errTables[NodeType.ELEMENT];// short hand
-		elemTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		elemTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR, ValidationMessage.WARNING);
-		elemTable.put(INVALID_NAME_ERROR, MSG_INVALID_TAG_ERROR, ValidationMessage.ERROR);
-		elemTable.put(MISMATCHED_ERROR, MSG_MISMATCHED_TAG_ERROR, ValidationMessage.WARNING);
-		elemTable.put(MISMATCHED_END_TAG_ERROR, MSG_MISMATCHED_TAG_ERROR, ValidationMessage.ERROR);
-		elemTable.put(MISSING_START_TAG_ERROR, MSG_MISSING_START_TAG_ERROR, ValidationMessage.ERROR);
-		elemTable.put(MISSING_END_TAG_ERROR, MSG_MISSING_END_TAG_ERROR, ValidationMessage.WARNING);
-		elemTable.put(UNNECESSARY_END_TAG_ERROR, MSG_UNNECESSARY_END_TAG_ERROR, ValidationMessage.WARNING);
-		elemTable.put(INVALID_DIRECTIVE_ERROR, MSG_INVALID_DIRECTIVE_ERROR, ValidationMessage.ERROR);
-		elemTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-		elemTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR, ValidationMessage.WARNING);
-		elemTable.put(COEXISTENCE_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-		elemTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_START_TAG_ERROR, ValidationMessage.ERROR);
-		elemTable.put(UNCLOSED_END_TAG_ERROR, MSG_UNCLOSED_END_TAG_ERROR, ValidationMessage.ERROR);
-		elemTable.put(INVALID_EMPTY_ELEMENT_TAG, MSG_INVALID_EMPTY_ELEMENT_TAG, ValidationMessage.WARNING);
-
-		// document type error map
-		ErrorTable docTable = errTables[NodeType.DOCUMENT_TYPE];// short hand
-		docTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		docTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR, ValidationMessage.ERROR);
-		docTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-		docTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_DOCTYPE_ERROR, ValidationMessage.ERROR);
-
-		// text error map
-		ErrorTable textTable = errTables[NodeType.TEXT];
-		textTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		textTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_TEXT_ERROR, ValidationMessage.WARNING);
-		textTable.put(INVALID_CHAR_ERROR, MSG_INVALID_CHAR_ERROR, ValidationMessage.WARNING);
-
-		// comment error map
-		ErrorTable commTable = errTables[NodeType.COMMENT];
-		commTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		commTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-		commTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_COMMENT_ERROR, ValidationMessage.ERROR);
-
-		// cdata section error map
-		ErrorTable cdatTable = errTables[NodeType.CDATA_SECTION];
-		cdatTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		cdatTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-		cdatTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_CDATA_SECTION_ERROR, ValidationMessage.ERROR);
-
-		// processing instruction error map
-		ErrorTable piTable = errTables[NodeType.PROCESSING_INSTRUCTION];
-		piTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		piTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-		piTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_PI_ERROR, ValidationMessage.ERROR);
-
-		// entity reference error map
-		ErrorTable erTable = errTables[NodeType.ENTITY_REFERENCE];
-		erTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
-		erTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR, ValidationMessage.WARNING);
-		erTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
-	}
+//	static {
+//		for (int i = 0; i < NodeType.MAX_TYPE; i++) {
+//			errTables[i] = new ErrorTable();
+//		}
+//		// NOTE: The severities are just stub.  They must be reviewed.
+//		// -- 8/30/2001
+//
+//		// attribute error map
+//		ErrorTable attrTable = errTables[NodeType.ATTRIBUTE];// short hand
+//		attrTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+//		attrTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_ATTR_ERROR, ValidationMessage.WARNING);
+//		attrTable.put(UNDEFINED_VALUE_ERROR, MSG_UNDEFINED_VALUE_ERROR, ValidationMessage.WARNING);
+//		attrTable.put(MISMATCHED_ERROR, MSG_MISMATCHED_ATTR_ERROR, ValidationMessage.WARNING);
+//		attrTable.put(INVALID_NAME_ERROR, MSG_INVALID_ATTR_ERROR, ValidationMessage.WARNING);
+//		attrTable.put(INVALID_ATTR_ERROR, MSG_ATTR_NO_VALUE_ERROR, ValidationMessage.WARNING);
+//		attrTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_ATTR_ERROR, ValidationMessage.WARNING);
+//		attrTable.put(MISMATCHED_VALUE_ERROR, MSG_MISMATCHED_ATTR_VALUE_ERROR, ValidationMessage.ERROR);
+//		//<<D210422
+//		attrTable.put(UNCLOSED_ATTR_VALUE, MSG_UNCLOSED_ATTR_VALUE_ERROR, ValidationMessage.WARNING);
+//		//D210422
+//		// element error map
+//		ErrorTable elemTable = errTables[NodeType.ELEMENT];// short hand
+//		elemTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+//		elemTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR, ValidationMessage.WARNING);
+//		elemTable.put(INVALID_NAME_ERROR, MSG_INVALID_TAG_ERROR, ValidationMessage.ERROR);
+//		elemTable.put(MISMATCHED_ERROR, MSG_MISMATCHED_TAG_ERROR, ValidationMessage.WARNING);
+//		elemTable.put(MISMATCHED_END_TAG_ERROR, MSG_MISMATCHED_TAG_ERROR, ValidationMessage.ERROR);
+//		elemTable.put(MISSING_START_TAG_ERROR, MSG_MISSING_START_TAG_ERROR, ValidationMessage.ERROR);
+//		elemTable.put(MISSING_END_TAG_ERROR, MSG_MISSING_END_TAG_ERROR, ValidationMessage.WARNING);
+//		elemTable.put(UNNECESSARY_END_TAG_ERROR, MSG_UNNECESSARY_END_TAG_ERROR, ValidationMessage.WARNING);
+//		elemTable.put(INVALID_DIRECTIVE_ERROR, MSG_INVALID_DIRECTIVE_ERROR, ValidationMessage.ERROR);
+//		elemTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
+//		elemTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR, ValidationMessage.WARNING);
+//		elemTable.put(COEXISTENCE_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
+//		elemTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_START_TAG_ERROR, ValidationMessage.ERROR);
+//		elemTable.put(UNCLOSED_END_TAG_ERROR, MSG_UNCLOSED_END_TAG_ERROR, ValidationMessage.ERROR);
+//		elemTable.put(INVALID_EMPTY_ELEMENT_TAG, MSG_INVALID_EMPTY_ELEMENT_TAG, ValidationMessage.WARNING);
+//
+//		// document type error map
+//		ErrorTable docTable = errTables[NodeType.DOCUMENT_TYPE];// short hand
+//		docTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+//		docTable.put(DUPLICATE_ERROR, MSG_DUPLICATE_TAG_ERROR, ValidationMessage.ERROR);
+//		docTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
+//		docTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_DOCTYPE_ERROR, ValidationMessage.ERROR);
+//
+//		// text error map
+//		ErrorTable textTable = errTables[NodeType.TEXT];
+//		textTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+//		textTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_TEXT_ERROR, ValidationMessage.WARNING);
+//		textTable.put(INVALID_CHAR_ERROR, MSG_INVALID_CHAR_ERROR, ValidationMessage.WARNING);
+//
+//		// comment error map
+//		ErrorTable commTable = errTables[NodeType.COMMENT];
+//		commTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+//		commTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
+//		commTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_COMMENT_ERROR, ValidationMessage.ERROR);
+//
+//		// cdata section error map
+//		ErrorTable cdatTable = errTables[NodeType.CDATA_SECTION];
+//		cdatTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+//		cdatTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
+//		cdatTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_CDATA_SECTION_ERROR, ValidationMessage.ERROR);
+//
+//		// processing instruction error map
+//		ErrorTable piTable = errTables[NodeType.PROCESSING_INSTRUCTION];
+//		piTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+//		piTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
+//		piTable.put(UNCLOSED_TAG_ERROR, MSG_UNCLOSED_PI_ERROR, ValidationMessage.ERROR);
+//
+//		// entity reference error map
+//		ErrorTable erTable = errTables[NodeType.ENTITY_REFERENCE];
+//		erTable.put(NONE_ERROR, MSG_NO_ERROR, 0);
+//		erTable.put(UNDEFINED_NAME_ERROR, MSG_UNDEFINED_TAG_ERROR, ValidationMessage.WARNING);
+//		erTable.put(INVALID_CONTENT_ERROR, MSG_INVALID_CONTENT_ERROR, ValidationMessage.WARNING);
+//	}
 
 	/**
 	 */
-	public static ValidationMessage createMessage(ErrorInfo info) {
+	public ValidationMessage createMessage(ErrorInfo info) {
 		String errorMsg = getErrorMessage(info);
 		int errorSeverity = getErrorSeverity(info);
 		return new ValidationMessage(errorMsg, info.getOffset(), info.getLength(), errorSeverity);
 	}
 
-	private static String getErrorMessage(ErrorInfo info) {
+	private String getErrorMessage(ErrorInfo info) {
 		ErrorTable tab = getErrorTable(info.getTargetType());
 		if (tab == null)
 			return MSG_UNKNOWN_ERROR;
@@ -211,14 +339,14 @@
 
 	/**
 	 */
-	private static int getErrorSeverity(ErrorInfo info) {
+	private int getErrorSeverity(ErrorInfo info) {
 		ErrorTable tab = getErrorTable(info.getTargetType());
 		if (tab == null)
 			return 0;
 		return tab.getSeverity(info.getState());
 	}
 
-	private static ErrorTable getErrorTable(short nodetype) {
+	private ErrorTable getErrorTable(short nodetype) {
 		ErrorTable tab = null;
 		switch (nodetype) {
 			case Node.ATTRIBUTE_NODE :
@@ -250,4 +378,4 @@
 		}
 		return tab;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java
index bda5f6f..f9e31ac 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NamespaceValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -43,7 +43,7 @@
 				// report unknown tag error.
 				Segment errorSeg = FMUtil.getSegment(e, FMUtil.SEG_START_TAG);
 				if (errorSeg != null)
-					reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, errorSeg, e)));
+					reporter.report(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, errorSeg, e));
 			}
 		}
 		// (2) check prefix of each attr 
@@ -63,7 +63,7 @@
 						continue;
 					int a_offset = a.getNameRegionStartOffset();
 					int a_length = a.getNameRegion().getLength();
-					reporter.report(MessageFactory.createMessage(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, new Segment(a_offset, a_length), a)));
+					reporter.report(new ErrorInfoImpl(UNDEFINED_NAME_ERROR, new Segment(a_offset, a_length), a));
 				}
 			}
 		}
@@ -124,4 +124,4 @@
 		}
 		return false;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java
index fb1f93c..165c4a6 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/NullValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -31,4 +31,4 @@
 	public void setReporter(ValidationReporter reporter) {
 		return;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java
index b44f258..f9aa0e5 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/PrimeValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -22,4 +22,4 @@
 	public PrimeValidator() {
 		super();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java
index 6bf6fed..8d3b9c0 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SMUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -33,4 +33,4 @@
 		}
 		return null;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java
index b9fd37e..48baf4e 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/Segment.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
@@ -61,4 +61,4 @@
 	public int getOffset() {
 		return this.offset;
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java
index ae6ac8d..75cc031 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/validate/SyntaxValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
  *******************************************************************************/
@@ -18,6 +18,7 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
+import org.eclipse.wst.sse.core.internal.validate.ErrorInfo;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.document.InvalidCharacterException;
 import org.eclipse.wst.xml.core.internal.document.SourceValidator;
@@ -170,7 +171,7 @@
 	private void reportCorruptedEndTagError(ElementInfo info) {
 		String hint = getEndTagFullText(info);
 		TagErrorInfoImpl error = new TagErrorInfoImpl(UNDEFINED_NAME_ERROR, info.endTag, hint);
-		this.reporter.report(MessageFactory.createMessage(error));
+		this.reporter.report(error);
 	}
 
 	private void validateTags(ElementInfo info) {
@@ -275,7 +276,7 @@
 			startTagName = getTagName(info.startTag);
 			if (!declared.equals(startTagName)) {
 				TagErrorInfoImpl error = new TagErrorInfoImpl(MISMATCHED_ERROR, info.startTag, startTagName);
-				this.reporter.report(MessageFactory.createMessage(error));
+				this.reporter.report(error);
 			}
 		}
 		// end tag
@@ -284,7 +285,7 @@
 			if (!info.hasStartTag || (!endTagName.equals(startTagName))) {
 				if (!declared.equals(endTagName)) {
 					TagErrorInfoImpl error = new TagErrorInfoImpl(MISMATCHED_ERROR, info.endTag, endTagName);
-					this.reporter.report(MessageFactory.createMessage(error));
+					this.reporter.report(error);
 				}
 			}
 		}
@@ -340,6 +341,6 @@
 
 	private void report(int state, Segment errorSeg, Node node) {
 		ErrorInfo info = new ErrorInfoImpl(state, errorSeg, node);
-		reporter.report(MessageFactory.createMessage(info));
+		reporter.report(info);
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java
index 661904a..e7dd5ae 100644
--- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java
+++ b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/text/IHTMLPartitions.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
 package org.eclipse.wst.html.core.text;
 
 
@@ -15,6 +25,7 @@
 	String HTML_COMMENT = "org.eclipse.wst.html.HTML_COMMENT"; //$NON-NLS-1$
 
 	String SCRIPT = "org.eclipse.wst.html.SCRIPT"; //$NON-NLS-1$
+	String SCRIPT_EVENTHANDLER = SCRIPT + ".EVENTHANDLER"; //$NON-NLS-1$
 	String STYLE = "org.eclipse.wst.html.STYLE"; //$NON-NLS-1$
 
 	// ISSUE: I think meta tag areas are here too?
diff --git a/bundles/org.eclipse.wst.html.ui/.classpath b/bundles/org.eclipse.wst.html.ui/.classpath
deleted file mode 100644
index d7ce462..0000000
--- a/bundles/org.eclipse.wst.html.ui/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-html-validation"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.html.ui/.cvsignore b/bundles/org.eclipse.wst.html.ui/.cvsignore
deleted file mode 100644
index e4239f5..0000000
--- a/bundles/org.eclipse.wst.html.ui/.cvsignore
+++ /dev/null
@@ -1,7 +0,0 @@
-bin
-htmleditor.jar
-temp.folder
-build.xml
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.wst.html.ui/.options b/bundles/org.eclipse.wst.html.ui/.options
deleted file mode 100644
index 6d015ff..0000000
--- a/bundles/org.eclipse.wst.html.ui/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.html.ui/projectionperf=false
diff --git a/bundles/org.eclipse.wst.html.ui/.project b/bundles/org.eclipse.wst.html.ui/.project
deleted file mode 100644
index 38bee73..0000000
--- a/bundles/org.eclipse.wst.html.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.html.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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index afa5c91..0000000
--- a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 2dd8b5c..0000000
--- a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,80 +0,0 @@
-#Sun Apr 16 14:37:21 EDT 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=ignore
-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.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-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=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-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.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-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=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-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.html.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index ef2ac65..0000000
--- a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:39 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index c59368c..0000000
--- a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index f724958..0000000
--- a/bundles/org.eclipse.wst.html.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Sun Apr 16 14:05:29 EDT 2006
-compilers.p.build=0
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index dce3b52..0000000
--- a/bundles/org.eclipse.wst.html.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,52 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.html.ui; singleton:=true
-Bundle-Version: 1.0.102.qualifier
-Bundle-Activator: org.eclipse.wst.html.ui.internal.HTMLUIPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.html.internal.validation;x-internal:=true,
- org.eclipse.wst.html.ui,
- org.eclipse.wst.html.ui.internal;x-internal:=true,
- org.eclipse.wst.html.ui.internal.autoedit;x-internal:=true,
- org.eclipse.wst.html.ui.internal.contentassist;x-internal:=true,
- org.eclipse.wst.html.ui.internal.contentoutline;x-internal:=true,
- org.eclipse.wst.html.ui.internal.contentproperties.ui;x-internal:=true,
- org.eclipse.wst.html.ui.internal.correction;x-internal:=true,
- org.eclipse.wst.html.ui.internal.derived;x-internal:=true,
- org.eclipse.wst.html.ui.internal.edit.ui;x-internal:=true,
- org.eclipse.wst.html.ui.internal.editor;x-internal:=true,
- org.eclipse.wst.html.ui.internal.hyperlink;x-internal:=true,
- org.eclipse.wst.html.ui.internal.preferences;x-internal:=true,
- org.eclipse.wst.html.ui.internal.preferences.ui;x-internal:=true,
- org.eclipse.wst.html.ui.internal.projection;x-internal:=true,
- org.eclipse.wst.html.ui.internal.registry;x-internal:=true,
- org.eclipse.wst.html.ui.internal.search;x-internal:=true,
- org.eclipse.wst.html.ui.internal.style;x-internal:=true,
- org.eclipse.wst.html.ui.internal.taginfo;x-internal:=true,
- org.eclipse.wst.html.ui.internal.templates;x-internal:=true,
- org.eclipse.wst.html.ui.internal.text;x-internal:=true,
- org.eclipse.wst.html.ui.internal.wizard;x-internal:=true,
- org.eclipse.wst.html.ui.views.contentoutline
-Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jface.text;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.editors;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.sse.ui;bundle-version="[1.0.101,1.1.0)",
- org.eclipse.wst.xml.ui;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.wst.css.ui;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.css.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.html.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.javascript.ui;bundle-version="[1.0.0,1.1.0)",
- org.eclipse.wst.common.project.facet.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.modulecore;bundle-version="[1.1.0,1.2.0)",
- com.ibm.icu;bundle-version="[3.4.4,3.5.0)"
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.wst.html.ui/about.html b/bundles/org.eclipse.wst.html.ui/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/bundles/org.eclipse.wst.html.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" 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 ("Redistributor") 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 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.wst.html.ui/build.properties b/bundles/org.eclipse.wst.html.ui/build.properties
deleted file mode 100644
index f486ed6..0000000
--- a/bundles/org.eclipse.wst.html.ui/build.properties
+++ /dev/null
@@ -1,23 +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
-###############################################################################
-bin.includes = plugin.xml,\
-               icons/,\
-               plugin.properties,\
-               templates/,\
-               META-INF/,\
-               .,\
-               about.html
-bin.excludes = bin/**,\
-               @dot/**,\
-               temp.folder/**
-source.. = src/,\
-           src-html-validation/
-src.includes = build.properties
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/dtool16/newhtml_wiz.gif b/bundles/org.eclipse.wst.html.ui/icons/full/dtool16/newhtml_wiz.gif
deleted file mode 100644
index 8175aa9..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/dtool16/newhtml_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/etool16/newhtml_wiz.gif b/bundles/org.eclipse.wst.html.ui/icons/full/etool16/newhtml_wiz.gif
deleted file mode 100644
index 976e18d..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/etool16/newhtml_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/sourceEditor.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/sourceEditor.gif
deleted file mode 100644
index 75ebdb8..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/sourceEditor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/table.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/table.gif
deleted file mode 100644
index b99b45c..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/table.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-anchor.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-anchor.gif
deleted file mode 100644
index f58992d..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-anchor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-body.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-body.gif
deleted file mode 100644
index 005fa99..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-body.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-button.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-button.gif
deleted file mode 100644
index d143fcf..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-button.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-font.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-font.gif
deleted file mode 100644
index bbb40cb..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-font.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-form.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-form.gif
deleted file mode 100644
index 3b13958..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-form.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-generic.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-generic.gif
deleted file mode 100644
index 65f516e..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-generic.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-html.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-html.gif
deleted file mode 100644
index fb39ba6..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-html.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-image-map.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-image-map.gif
deleted file mode 100644
index ef3235d..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-image-map.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-image.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-image.gif
deleted file mode 100644
index a988c1d..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-image.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-jsp.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-jsp.gif
deleted file mode 100644
index 4084602..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-jsp.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-template.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-template.gif
deleted file mode 100644
index 5d1f81b..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-template.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-title.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-title.gif
deleted file mode 100644
index b129090..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag-title.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag.gif b/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag.gif
deleted file mode 100644
index 5e7fb33..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/obj16/tag.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/icons/full/wizban/newhfile_wiz.gif b/bundles/org.eclipse.wst.html.ui/icons/full/wizban/newhfile_wiz.gif
deleted file mode 100644
index 603e1ed..0000000
--- a/bundles/org.eclipse.wst.html.ui/icons/full/wizban/newhfile_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.html.ui/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.html.ui/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 5263e36..0000000
--- a/bundles/org.eclipse.wst.html.ui/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,80 +0,0 @@
-#Sun Apr 16 17:23:39 EDT 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=ignore
-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.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=ignore
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
-org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
-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=error
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-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.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=error
-org.eclipse.jdt.core.compiler.problem.unusedLocal=error
-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=error
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-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.html.ui/plugin.properties b/bundles/org.eclipse.wst.html.ui/plugin.properties
deleted file mode 100644
index 6617d96..0000000
--- a/bundles/org.eclipse.wst.html.ui/plugin.properties
+++ /dev/null
@@ -1,53 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-providerName=Eclipse.org
-pluginName=HTML UI Source Editor
-HTML_Source_Page_Editor.name=HTML Editor
-HTML_Files.name=HTML Files
-HTML_Source.name=HTML Source
-HTML_Templates.name=HTML Templates
-HTML_Styles.name=HTML Styles
-WebContentSettings.name=Web Content Settings
-Device_Profile_Entry_Provider_Extension.name=Device Profile Entry Provider Extension
-All_HTML_context_type_Extension_Element.name=All HTML
-HTML_New_context_type_Extension_Element.name=New HTML
-HTML_Tag_context_type_Extension_Element.name=HTML Tag
-HTML_Attribute_context_type_Extension_Element.name=HTML Attribute
-HTML_Attribute_value_context_type_Extension_Element.name=HTML Attribute value
-HTML_Syntax_Validator.name=HTML Syntax Validator
-###############################################################################
-#org.eclipse.ui.newWizards extension point
-_UI_WIZARD_NAME = HTML
-_UI_WIZARD_CREATE_NEW_FILE = Create a new HTML page
-##
-AddTask.label=Add &Task...
-AddTask.tooltip=Add Task...
-AddBookmark.label=Add Boo&kmark...
-AddBookmark.tooltip=Add Bookmark...
-SelectRuler.label=Select Ruler
-##
-CleanupDocument_label=Cleanup Document...
-CleanupDocument_tooltip=Cleanup Document
-ToggleComment_label=Toggle Comment
-ToggleComment_tooltip=Toggle Comment
-AddBlockComment_label=Add Block Comment
-AddBlockComment_tooltip=Add Block Comment
-RemoveBlockComment_label=Remove Block Comment
-RemoveBlockComment_tooltip=Remove Block Comment
-FindOccurrences_label=Occurrences in File
-StructureSelectEnclosing_label=Enclosing Element
-StructureSelectEnclosing_tooltip=Expand selection to include enclosing element
-StructureSelectNext_label=Next Element
-StructureSelectNext_tooltip=Expand selection to include next sibling
-StructureSelectPrevious_label=Previous Element
-StructureSelectPrevious_tooltip=Expand selection to include previous sibling
-StructureSelectHistory_label=Restore Last Selection
-StructureSelectHistory_tooltip=Restore last selection
diff --git a/bundles/org.eclipse.wst.html.ui/plugin.xml b/bundles/org.eclipse.wst.html.ui/plugin.xml
deleted file mode 100644
index 8ba26e8..0000000
--- a/bundles/org.eclipse.wst.html.ui/plugin.xml
+++ /dev/null
@@ -1,455 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-	<extension-point id="deviceProfileEntryProvider" name="%Device_Profile_Entry_Provider_Extension.name" schema="schema/deviceProfileEntryProvider.exsd"/>
-
-	<extension point="org.eclipse.ui.editors">
-		<editor
-			name="%HTML_Source_Page_Editor.name"
-			icon="$nl$/icons/full/obj16/sourceEditor.gif"
-			contributorClass="org.eclipse.wst.html.ui.internal.edit.ui.ActionContributorHTML"
-			class="org.eclipse.wst.sse.ui.StructuredTextEditor"
-			symbolicFontName="org.eclipse.wst.sse.ui.textfont"
-			id="org.eclipse.wst.html.core.htmlsource.source">
-			<contentTypeBinding
-				contentTypeId="org.eclipse.wst.html.core.htmlsource" />
-		</editor>
-	</extension>
-	<extension point="org.eclipse.wst.sse.ui.editorConfiguration">
-		<sourceViewerConfiguration
-			class="org.eclipse.wst.html.ui.StructuredTextViewerConfigurationHTML"
-			target="org.eclipse.wst.html.core.htmlsource" />
-		<contentOutlineConfiguration
-			class="org.eclipse.wst.html.ui.views.contentoutline.HTMLContentOutlineConfiguration"
-			target="org.eclipse.wst.html.core.htmlsource" />
-		<propertySheetConfiguration
-			class="org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration"
-			target="org.eclipse.wst.html.core.htmlsource" />
-		<provisionalConfiguration
-			type="sourceeditingtexttools"
-			class="org.eclipse.wst.xml.ui.internal.provisional.XMLSourceEditingTextTools"
-			target="org.eclipse.wst.html.core.htmlsource" />
-		<provisionalConfiguration
-			type="characterpairmatcher"
-			class="org.eclipse.wst.html.ui.internal.text.HTMLDocumentRegionEdgeMatcher"
-			target="org.eclipse.wst.html.core.htmlsource" />
-		<provisionalConfiguration
-			type="structuredtextfoldingprovider"
-			class="org.eclipse.wst.html.ui.internal.projection.StructuredTextFoldingProviderHTML"
-			target="org.eclipse.wst.html.core.htmlsource" />
-		<provisionalConfiguration
-			type="correctionassistant"
-			class="org.eclipse.wst.html.ui.internal.correction.CorrectionAssistantProviderHTML"
-			target="org.eclipse.wst.html.core.htmlsource" />
-		<provisionalDefinition
-			type="preferencepages"
-			value="org.eclipse.wst.html.ui.preferences, org.eclipse.wst.html.ui.preferences.source, org.eclipse.wst.html.ui.preferences.templates, org.eclipse.wst.html.ui.preferences.styles"
-			target="org.eclipse.wst.html.core.htmlsource" />
-	</extension>
-	<extension
-		point="org.eclipse.core.filebuffers.annotationModelCreation">
-		<factory
-			contentTypeId="org.eclipse.wst.html.core.htmlsource"
-			class="org.eclipse.wst.sse.ui.internal.StructuredResourceMarkerAnnotationModelFactory" />
-	</extension>
-	<extension
-		point="org.eclipse.wst.sse.ui.adapterFactoryDescription">
-		<adapterFactoryDescription
-			class="org.eclipse.wst.html.ui.internal.registry.AdapterFactoryProviderForHTML">
-			<contentType id="org.eclipse.wst.html.core.htmlsource" />
-		</adapterFactoryDescription>
-	</extension>
-	<extension point="org.eclipse.ui.preferencePages">
-		<!-- HTML PREFERENCE PAGES-->
-		<page
-			name="%HTML_Files.name"
-			category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
-			class="org.eclipse.wst.html.ui.internal.preferences.ui.HTMLFilesPreferencePage"
-			id="org.eclipse.wst.html.ui.preferences">
-		</page>
-		<page
-			name="%HTML_Source.name"
-			category="org.eclipse.wst.html.ui.preferences"
-			class="org.eclipse.wst.html.ui.internal.preferences.ui.HTMLSourcePreferencePage"
-			id="org.eclipse.wst.html.ui.preferences.source">
-		</page>
-		<page
-			name="%HTML_Templates.name"
-			category="org.eclipse.wst.html.ui.preferences"
-			class="org.eclipse.wst.html.ui.internal.preferences.ui.HTMLTemplatePreferencePage"
-			id="org.eclipse.wst.html.ui.preferences.templates">
-		</page>
-		<page
-			name="%HTML_Styles.name"
-			category="org.eclipse.wst.html.ui.preferences"
-			class="org.eclipse.wst.html.ui.internal.preferences.ui.HTMLColorPage"
-			id="org.eclipse.wst.html.ui.preferences.styles">
-		</page>
-	</extension>
-	<!-- Web content settings -->
-	<extension point="org.eclipse.ui.propertyPages">
-		<!-- for j2ee web project -->
-		<page
-			objectClass="org.eclipse.core.resources.IProject"
-			adaptable="true"
-			name="%WebContentSettings.name"
-			class="org.eclipse.wst.html.ui.internal.contentproperties.ui.ProjectWebContentSettingsPropertyPage"
-			id="org.eclipse.wst.html.ui.dynamicprojectpropertypage">
-         	<enabledWhen>
-               	<and>
-					<adapt type="org.eclipse.core.resources.IProject">
-						<or> 
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.wst.common.project.facet.core.projectFacet"
-								value="jst.web" />
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.wst.common.project.facet.core.projectFacet"
-								value="wst.web" />
-						</or>
-					</adapt>
-				</and> 
-			</enabledWhen>
-		</page>
-		<page
-			objectClass="org.eclipse.core.resources.IFile"
-			adaptable="true"
-			name="%WebContentSettings.name"
-			class="org.eclipse.wst.html.ui.internal.contentproperties.ui.WebContentSettingsPropertyPage"
-			id="org.eclipse.wst.html.ui.internal.contentproperties.ui.WebContentSettingsPropertyPage">
-         	<enabledWhen>
-               	<and>
-					<adapt type="org.eclipse.core.resources.IFile">
-						<or> 
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.core.resources.contentTypeId"
-								value="org.eclipse.wst.html.core.htmlsource" />
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.core.resources.contentTypeId"
-								value="org.eclipse.jst.jsp.core.jspsource" />
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.core.resources.contentTypeId"
-								value="org.eclipse.jst.jsp.core.jspfragmentsource" />
-							<test 
-								forcePluginActivation="true"
-								property="org.eclipse.core.resources.contentTypeId"
-								value="org.eclipse.jst.jsp.core.cssjspfragmentsource" />
-						</or>
-					</adapt>
-				</and> 
-			</enabledWhen>
-		</page>
-	</extension>
-	<!-- Editor actionsets -->
-	<extension point="org.eclipse.ui.actionSetPartAssociations">
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.edit.text.actionSet.annotationNavigation">
-			<part id="org.eclipse.wst.html.core.htmlsource.source">
-			</part>
-		</actionSetPartAssociation>
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.NavigateActionSet">
-			<part id="org.eclipse.wst.html.core.htmlsource.source">
-			</part>
-		</actionSetPartAssociation>
-	</extension>
-
-	<!-- Templates -->
-	<extension point="org.eclipse.ui.editors.templates">
-		<contextType
-			name="%All_HTML_context_type_Extension_Element.name"
-			class="org.eclipse.wst.html.ui.internal.templates.TemplateContextTypeHTML"
-			id="html_all">
-		</contextType>
-		<contextType
-			name="%HTML_New_context_type_Extension_Element.name"
-			class="org.eclipse.wst.html.ui.internal.templates.TemplateContextTypeHTML"
-			id="html_new">
-		</contextType>
-		<contextType
-			name="%HTML_Tag_context_type_Extension_Element.name"
-			class="org.eclipse.wst.html.ui.internal.templates.TemplateContextTypeHTML"
-			id="html_tag">
-		</contextType>
-		<contextType
-			name="%HTML_Attribute_context_type_Extension_Element.name"
-			class="org.eclipse.wst.html.ui.internal.templates.TemplateContextTypeHTML"
-			id="html_attribute">
-		</contextType>
-		<contextType
-			name="%HTML_Attribute_value_context_type_Extension_Element.name"
-			class="org.eclipse.wst.html.ui.internal.templates.TemplateContextTypeHTML"
-			id="html_attribute_value">
-		</contextType>
-		<include
-			file="templates/htmldefault-templates.xml"
-			translations="$nl$/templates/htmldefault-templates.properties">
-		</include>
-	</extension>
-	<!-- initialize html ui preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.wst.html.ui.internal.preferences.HTMLUIPreferenceInitializer" />
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- Document provider for ExternalFileEditorInput                                        -->
-	<!--======================================================================================-->
-	<extension point="org.eclipse.ui.editors.documentProviders">
-		<provider
-			inputTypes="org.eclipse.wst.html.ui.internal.hyperlink.ExternalFileEditorInput"
-			class="org.eclipse.ui.editors.text.TextFileDocumentProvider"
-			id="org.eclipse.wst.html.ui.internal.ExternalFileDocumentProvider">
-		</provider>
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- Workbench validation                                       						  -->
-	<!--======================================================================================-->
-	<extension
-		id="HTMLValidator"
-		name="%HTML_Syntax_Validator.name"
-		point="org.eclipse.wst.validation.validator">
-		<validator>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.html">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.htm">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.xhtml">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.htpl">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.wml">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jsp">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jspf">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jsf">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jsv">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				nameFilter="*.jtpl">
-			</filter>
-			<helper
-				class="org.eclipse.wst.html.internal.validation.HTMLValidationWorkbenchHelper">
-			</helper>
-		
-		<run
-             async="true"
-             fullBuild="true"
-             incremental="true"
-             enabled="true"
-			 class="org.eclipse.wst.html.internal.validation.HTMLValidator">
-         </run>
-		</validator>
-	</extension>
-
-	<!--======================================================================================-->
-	<!-- As you type validation                                      						  -->
-	<!--======================================================================================-->
-
-	<extension point="org.eclipse.wst.sse.ui.sourcevalidation">
-		<validator
-			scope="partial"
-			class="org.eclipse.wst.html.internal.validation.HTMLValidator"
-			id="org.eclipse.wst.html.ui.internal.validation.htmlsyntaxvalidator">
-			<contentTypeIdentifier
-				id="org.eclipse.wst.html.core.htmlsource">
-				<partitionType id="org.eclipse.wst.html.HTML_DEFAULT"/>
-				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT"/>
-				<partitionType id="org.eclipse.wst.sse.ST_DEFAULT"/>
-			</contentTypeIdentifier>
-		</validator>
-		<validator
-			scope="partial"
-			class="org.eclipse.wst.xml.ui.internal.validation.MarkupValidator"
-			id="org.eclipse.wst.html.ui.internal.validation.markupvalidator">
-			<contentTypeIdentifier
-				id="org.eclipse.wst.html.core.htmlsource">
-				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT"/>
-				<partitionType id="org.eclipse.wst.sse.ST_DEFAULT"/>
-			</contentTypeIdentifier>
-		</validator>
-	</extension>
-
-
-	<!-- New HTML wizard -->
-	<extension point="org.eclipse.ui.newWizards">
-		<wizard
-			id="org.eclipse.wst.html.ui.internal.wizard.NewHTMLWizard"
-			name="%_UI_WIZARD_NAME"
-			class="org.eclipse.wst.html.ui.internal.wizard.NewHTMLWizard"
-			category="org.eclipse.wst.web.ui"
-			icon="$nl$/icons/full/etool16/newhtml_wiz.gif">
-			<description>%_UI_WIZARD_CREATE_NEW_FILE</description>
-			<selection class="org.eclipse.core.resources.IResource" />
-		</wizard>
-	</extension>
-
-	<!-- Add new HTML wizard to J2EE Project Navigator -->
-	<extension
-		id="org.eclipse.wst.html.commonWizard.newHTML"
-		point="org.eclipse.ui.navigator.navigatorContent">
-		<commonWizard
-        menuGroupId="org.eclipse.wst.web.ui"
-        type="new"
-        wizardId="org.eclipse.wst.html.ui.internal.wizard.NewHTMLWizard">
-			<enablement>
-				<or>
-					<adapt type="org.eclipse.core.resources.IResource">
-						<or>
-							<test
-								property="org.eclipse.wst.common.project.facet.core.projectFacet"
-								value="wst.web"/>
-							<test
-								property="org.eclipse.wst.common.project.facet.core.projectFacet"
-								value="jst.web"/>
-						</or>
-					</adapt>
-				</or>
-			</enablement>
-		</commonWizard>
-	</extension>
-
-	<extension point="org.eclipse.ui.popupMenus">
-		<viewerContribution
-			targetID="org.eclipse.wst.html.core.htmlsource.source.RulerContext"
-			id="org.eclipse.ui.texteditor.ruler.context.actions">
-			<action
-				label="%AddTask.label"
-				helpContextId="org.eclipse.ui.AddTask_action_context"
-				class="org.eclipse.ui.texteditor.TaskRulerAction"
-				tooltip="%AddTask.tooltip"
-				menubarPath="additions"
-				id="org.eclipse.ui.texteditor.TaskRulerAction">
-			</action>
-			<action
-				label="%AddBookmark.label"
-				helpContextId="org.eclipse.ui.bookmark_action_context"
-				class="org.eclipse.ui.texteditor.BookmarkRulerAction"
-				tooltip="%AddBookmark.tooltip"
-				menubarPath="additions"
-				id="org.eclipse.ui.texteditor.BookmarkRulerAction">
-			</action>
-		</viewerContribution>
-	</extension>
-	
-	<extension point="org.eclipse.ui.editorActions">
-		<editorContribution
-			id="org.eclipse.wst.html.core.htmlsource.source.editorActions"
-			targetID="org.eclipse.wst.html.core.htmlsource.source">
-			<action
-				id="CleanupDocument"
-				label="%CleanupDocument_label"
-				definitionId="org.eclipse.wst.sse.ui.cleanup.document"
-				tooltip="%CleanupDocument_tooltip"
-				class="org.eclipse.wst.html.ui.internal.edit.ui.CleanupActionHTMLDelegate"
-				actionID="CleanupDocument">
-			</action>
-			<action
-				id="ToggleComment"
-				label="%ToggleComment_label"
-				definitionId="org.eclipse.wst.sse.ui.toggle.comment"
-				tooltip="%ToggleComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.ToggleCommentActionXMLDelegate"
-				actionID="ToggleComment">
-			</action>
-			<action
-				id="AddBlockComment"
-				label="%AddBlockComment_label"
-				definitionId="org.eclipse.wst.sse.ui.add.block.comment"
-				tooltip="%AddBlockComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.AddBlockCommentActionXMLDelegate"
-				actionID="AddBlockComment">
-			</action>
-			<action
-				id="RemoveBlockComment"
-				label="%RemoveBlockComment_label"
-				definitionId="org.eclipse.wst.sse.ui.remove.block.comment"
-				tooltip="%RemoveBlockComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.RemoveBlockCommentActionXMLDelegate"
-				actionID="RemoveBlockComment">
-			</action>
-			<action
-				id="FindOccurrences"
-				label="%FindOccurrences_label"
-				definitionId="org.eclipse.wst.sse.ui.search.find.occurrences"
-				class="org.eclipse.wst.html.ui.internal.search.HTMLFindOccurrencesActionDelegate"
-				actionID="FindOccurrences">
-			</action>
-			<action
-				id="StructureSelectEnclosing"
-				label="%StructureSelectEnclosing_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.enclosing"
-				tooltip="%StructureSelectEnclosing_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectEnclosingXMLActionDelegate"
-				actionID="StructureSelectEnclosing">
-			</action>
-			<action
-				id="StructureSelectNext"
-				label="%StructureSelectNext_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.next"
-				tooltip="%StructureSelectNext_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectNextXMLActionDelegate"
-				actionID="StructureSelectNext">
-			</action>
-			<action
-				id="StructureSelectPrevious"
-				label="%StructureSelectPrevious_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.previous"
-				tooltip="%StructureSelectPrevious_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectPreviousXMLActionDelegate"
-				actionID="StructureSelectPrevious">
-			</action>
-			<action
-				id="StructureSelectHistory"
-				label="%StructureSelectHistory_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.last"
-				tooltip="%StructureSelectHistory_tooltip"
-				class="org.eclipse.wst.sse.ui.internal.selection.StructuredSelectHistoryActionDelegate"
-				actionID="StructureSelectHistory">
-			</action>
-		</editorContribution>
-        <editorContribution
-            targetID="org.eclipse.wst.html.core.htmlsource.source"
-            id="org.eclipse.wst.html.core.htmlsource.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>
-</plugin>
diff --git a/bundles/org.eclipse.wst.html.ui/schema/deviceProfileEntryProvider.exsd b/bundles/org.eclipse.wst.html.ui/schema/deviceProfileEntryProvider.exsd
deleted file mode 100644
index 742f82f..0000000
--- a/bundles/org.eclipse.wst.html.ui/schema/deviceProfileEntryProvider.exsd
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.html.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.html.ui" id="deviceProfileEntryProvider" name="Device Profile Entry Provider Extension"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="deviceProfileEntryProvider"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="deviceProfileEntryProvider">
-      <complexType>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is deprecated and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationReporter.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationReporter.java
deleted file mode 100644
index dc4df1f..0000000
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationReporter.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.internal.validation;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.validate.ValidationMessage;
-import org.eclipse.wst.sse.core.internal.validate.ValidationReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-
-public class HTMLValidationReporter implements ValidationReporter {
-
-	private IValidator owner = null;
-	private IReporter reporter = null;
-	private IFile file = null;
-	private IStructuredModel model = null;
-	private HTMLValidationResult result = null;
-
-	/**
-	 */
-	public HTMLValidationReporter(IValidator owner, IReporter reporter, IFile file, IStructuredModel model) {
-		super();
-		this.owner = owner;
-		this.reporter = reporter;
-		this.file = file;
-		this.model = model;
-	}
-
-	/**
-	 */
-	public void clear() {
-		if (this.file == null)
-			return;
-
-		this.result = null;
-
-		if (this.reporter != null) {
-			this.reporter.removeAllMessages(this.owner, this.file);
-		}
-		else {
-			// remove by myself?
-			String id = HTMLValidator.class.getName();
-			try {
-				// TaskListHelper API changed
-				// TaskListHelper.getTaskList().removeAllTasks(id, this.file,
-				// null);
-				TaskListHelper.getTaskList().removeAllTasks(this.file, id, null);
-			}
-			catch (CoreException ex) {
-			}
-		}
-	}
-
-
-	/**
-	 */
-	public HTMLValidationResult getResult() {
-		if (this.result == null)
-			this.result = new HTMLValidationResult();
-		return this.result;
-	}
-
-	/**
-	 */
-	public void report(ValidationMessage message) {
-		if (message == null)
-			return;
-		if (this.file == null)
-			return;
-
-		IMessage mes = translateMessage(message);
-
-		if (this.reporter != null) {
-			this.reporter.addMessage(this.owner, mes);
-		}
-		else {
-			// add by myself?
-			String id = HTMLValidator.class.getName();
-			String location = Integer.toString(mes.getLineNumber());
-			String name = ""; //$NON-NLS-1$
-			IPath filePath = this.file.getFullPath();
-			if (filePath != null) {
-				name = filePath.toString();
-			}
-			try {
-				TaskListHelper.getTaskList().addTask(id, this.file, location, mes.getId(), mes.getText(), mes.getSeverity(), name, mes.getGroupName(), mes.getOffset(), mes.getLength());
-			}
-			catch (CoreException ex) {
-			}
-		}
-	}
-
-	/**
-	 * Translate ValidationMessage to IMessage and generate result log
-	 */
-	private IMessage translateMessage(ValidationMessage message) {
-		int severity = IMessage.LOW_SEVERITY;
-		HTMLValidationResult result = getResult();
-		switch (message.getSeverity()) {
-			case ValidationMessage.ERROR :
-				severity = IMessage.HIGH_SEVERITY;
-				result.addError();
-				break;
-			case ValidationMessage.WARNING :
-				severity = IMessage.NORMAL_SEVERITY;
-				result.addWarning();
-				break;
-			default :
-				result.addInformation();
-				break;
-		}
-
-		IMessage mes = new LocalizedMessage(severity, message.getMessage(), this.file);
-		mes.setOffset(message.getOffset());
-		mes.setLength(message.getLength());
-		if (this.model != null) {
-			IStructuredDocument flatModel = this.model.getStructuredDocument();
-			if (flatModel != null) {
-				int line = flatModel.getLineOfOffset(message.getOffset());
-				mes.setLineNo(line + 1);
-			}
-		}
-
-		return mes;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationResult.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationResult.java
deleted file mode 100644
index 90c9f77..0000000
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationResult.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.internal.validation;
-
-public class HTMLValidationResult {
-	private int errors = 0;
-	private int warnings = 0;
-	private int informations = 0;
-
-	/**
-	 */
-	public HTMLValidationResult() {
-	}
-
-	/**
-	 */
-	public void addError() {
-		this.errors++;
-	}
-
-	/**
-	 */
-	public void addInformation() {
-		this.informations++;
-	}
-
-	/**
-	 */
-	public void addWarning() {
-		this.warnings++;
-	}
-
-	/**
-	 */
-	public int getErrors() {
-		return this.errors;
-	}
-
-	/**
-	 */
-	public int getInformations() {
-		return this.informations;
-	}
-
-	/**
-	 */
-	public int getWarnings() {
-		return this.warnings;
-	}
-
-	/**
-	 */
-	public boolean isValid() {
-		return (this.errors == 0 && this.warnings == 0 && this.informations == 0);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationWorkbenchHelper.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationWorkbenchHelper.java
deleted file mode 100644
index 90bfde5..0000000
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidationWorkbenchHelper.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.internal.validation;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.validation.internal.operations.WorkbenchContext;
-
-public class HTMLValidationWorkbenchHelper extends WorkbenchContext {
-	/**
-	 */
-	public HTMLValidationWorkbenchHelper() {
-		super();
-	}
-
-	/**
-	 * When an IValidator associates a target object with an IMessage, the
-	 * WorkbenchReporter eventually resolves that target object with an
-	 * IResource. Sometimes more than one target object resolves to the same
-	 * IResource (usually the IProject, which is the default IResource when an
-	 * IFile cannot be found). This method is called, by the
-	 * WorkbenchReporter, so that the WorkbenchReporter can distinguish
-	 * between the IMessages which are on the same IResource, but refer to
-	 * different target objects. This is needed for the
-	 * removeAllMessages(IValidator, Object) method, so that when one target
-	 * object removes all of its messages, that it doesn't remove another
-	 * target object's messages.
-	 * 
-	 * This method may return null only if object is null. Otherwise, an id
-	 * which can uniquely identify a particular object must be returned. The
-	 * id needs to be unique only within one particular IValidator.
-	 */
-	public String getTargetObjectName(Object object) {
-		if (object == null)
-			return null;
-		if (object instanceof IFile)
-			return getPortableName((IFile) object);
-		return object.toString();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java
deleted file mode 100644
index a7963d7..0000000
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/HTMLValidator.java
+++ /dev/null
@@ -1,517 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.internal.validation;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.filebuffers.ITextFileBuffer;
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-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.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.html.core.internal.validate.HTMLValidationAdapterFactory;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.FileBufferModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.util.URIResolver;
-import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
-import org.eclipse.wst.validation.internal.core.Message;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.operations.IWorkbenchContext;
-import org.eclipse.wst.validation.internal.operations.WorkbenchReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-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.IValidatorJob;
-import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Text;
-
-public class HTMLValidator implements IValidatorJob, ISourceValidator {
-	private static final String ORG_ECLIPSE_JST_JSP_CORE_JSPSOURCE = "org.eclipse.jst.jsp.core.jspsource"; //$NON-NLS-1$
-	private static final String ORG_ECLIPSE_WST_HTML_CORE_HTMLSOURCE = "org.eclipse.wst.html.core.htmlsource"; //$NON-NLS-1$
-
-	static boolean shouldValidate(IFile file) {
-		IResource resource = file;
-		do {
-			if (resource.isDerived() || resource.isTeamPrivateMember() || !resource.isAccessible() || (resource.getName().charAt(0) == '.' && resource.getType() == IResource.FOLDER)) {
-				return false;
-			}
-			resource = resource.getParent();
-		}
-		while ((resource.getType() & IResource.PROJECT) == 0);
-		return true;
-	}
-
-	private IDocument fDocument;
-
-	public HTMLValidator() {
-		super();
-	}
-
-	/**
-	 */
-	public void cleanup(IReporter reporter) {
-		// nothing to do
-	}
-
-	/**
-	 */
-	protected IDOMModel getModel(IProject project, IFile file) {
-		if (project == null || file == null)
-			return null;
-		if (!file.exists())
-			return null;
-		if (!canHandle(file))
-			return null;
-
-		IStructuredModel model = null;
-		IModelManager manager = StructuredModelManager.getModelManager();
-
-		try {
-			try {
-				model = manager.getModelForRead(file);
-			}
-			catch (UnsupportedEncodingException ex) {
-				// retry ignoring META charset for invalid META charset
-				// specification
-				// recreate input stream, because it is already partially read
-				model = manager.getModelForRead(file, new String(), null);
-			}
-		}
-		catch (UnsupportedEncodingException ex) {
-		}
-		catch (IOException ex) {
-		}
-		catch (CoreException ex) {
-		}
-
-		if (model == null)
-			return null;
-		if (!(model instanceof IDOMModel)) {
-			releaseModel(model);
-			return null;
-		}
-		return (IDOMModel) model;
-	}
-
-	/**
-	 */
-	protected HTMLValidationReporter getReporter(IReporter reporter, IFile file, IDOMModel model) {
-		return new HTMLValidationReporter(this, reporter, file, model);
-	}
-
-	/**
-	 * Check file extension to validate
-	 */
-	private boolean canHandle(IFile file) {
-		boolean result = false;
-		if (file != null) {
-			try {
-				IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
-
-				IContentDescription contentDescription = file.getContentDescription();
-				IContentType htmlContentType = contentTypeManager.getContentType(ORG_ECLIPSE_WST_HTML_CORE_HTMLSOURCE);
-				if (contentDescription != null) {
-					IContentType fileContentType = contentDescription.getContentType();
-
-					if (htmlContentType != null) {
-						if (fileContentType.isKindOf(htmlContentType)) {
-							result = true;
-						}
-						else {
-							// ISSUE: here's a little "backwards" dependancy.
-							// there should be a "JSPEMBEDDEDHTML validator"
-							// contributed by JSP plugin.
-							IContentType jspContentType = contentTypeManager.getContentType(ORG_ECLIPSE_JST_JSP_CORE_JSPSOURCE);
-							if (jspContentType != null) {
-								result = fileContentType.isKindOf(jspContentType);
-							}
-						}
-					}
-				}
-				else if (htmlContentType != null) {
-					result = htmlContentType.isAssociatedWith(file.getName());
-				}
-			}
-			catch (CoreException e) {
-				// should be rare, but will ignore to avoid logging "encoding
-				// exceptions" and the like here.
-				// Logger.logException(e);
-			}
-		}
-		return result;
-	}
-
-	/**
-	 */
-	private boolean hasHTMLFeature(IDOMDocument document) {
-		DocumentTypeAdapter adapter = (DocumentTypeAdapter) document.getAdapterFor(DocumentTypeAdapter.class);
-		if (adapter == null)
-			return false;
-		return adapter.hasFeature("HTML");//$NON-NLS-1$
-	}
-
-	/**
-	 */
-	protected void releaseModel(IStructuredModel model) {
-		if (model != null)
-			model.releaseFromRead();
-	}
-
-	/**
-	 */
-	public void validate(IValidationContext helper, IReporter reporter) {
-		if (helper == null)
-			return;
-		if ((reporter != null) && (reporter.isCancelled() == true)) {
-			throw new OperationCanceledException();
-		}
-		String[] deltaArray = helper.getURIs();
-		if (deltaArray != null && deltaArray.length > 0) {
-			validateDelta(helper, reporter);
-		}
-		else {
-			validateFull(helper, reporter);
-		}
-	}
-
-	/**
-	 * This validate call is for the ISourceValidator partial document
-	 * validation approach
-	 * 
-	 * @param dirtyRegion
-	 * @param helper
-	 * @param reporter
-	 * @see org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator
-	 */
-	public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
-
-		if (helper == null || fDocument == null)
-			return;
-
-		if ((reporter != null) && (reporter.isCancelled() == true)) {
-			throw new OperationCanceledException();
-		}
-
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-		if (model == null)
-			return; // error
-
-		try {
-
-			IDOMDocument document = null;
-			if (model instanceof IDOMModel) {
-				document = ((IDOMModel) model).getDocument();
-			}
-
-			if (document == null || !hasHTMLFeature(document))
-				return; // ignore
-
-			ITextFileBuffer fb = FileBufferModelManager.getInstance().getBuffer(fDocument);
-			if (fb == null)
-				return;
-
-			IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(fb.getLocation());
-			if (file == null || !file.exists())
-				return;
-
-			// this will be the wrong region if it's Text (instead of Element)
-			// we don't know how to validate Text
-			IndexedRegion ir = getCoveringNode(dirtyRegion); //  model.getIndexedRegion(dirtyRegion.getOffset());
-			if (ir instanceof Text) {
-				while (ir != null && ir instanceof Text) {
-					// it's assumed that this gets the IndexedRegion to
-					// the right of the end offset
-					ir = model.getIndexedRegion(ir.getEndOffset());
-				}
-			}
-			
-			if (ir instanceof INodeNotifier) {
-
-				INodeAdapterFactory factory = HTMLValidationAdapterFactory.getInstance();
-				ValidationAdapter adapter = (ValidationAdapter) factory.adapt((INodeNotifier) ir);
-				if (adapter == null)
-					return; // error
-
-				if (reporter != null) {
-					HTMLValidationReporter rep = null;
-					rep = getReporter(reporter, file, (IDOMModel) model);
-					rep.clear();
-					adapter.setReporter(rep);
-
-					String fileName = ""; //$NON-NLS-1$
-					IPath filePath = file.getFullPath();
-					if (filePath != null) {
-						fileName = filePath.toString();
-					}
-					String args[] = new String[]{fileName};
-
-					Message mess = new LocalizedMessage(IMessage.LOW_SEVERITY, NLS.bind(HTMLUIMessages.MESSAGE_HTML_VALIDATION_MESSAGE_UI_, args));
-					mess.setParams(args);
-					reporter.displaySubtask(this, mess);
-				}
-				adapter.validate(ir);
-			}
-		}
-		finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-	}
-
-	private IndexedRegion getCoveringNode(IRegion dirtyRegion) {
-		
-		IndexedRegion largestRegion = null;
-		if(fDocument instanceof IStructuredDocument) {
-			IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-			try {
-				if(sModel != null) {
-					IStructuredDocumentRegion[] regions = ((IStructuredDocument)fDocument).getStructuredDocumentRegions(dirtyRegion.getOffset(), dirtyRegion.getLength());
-				    largestRegion = getLargest(regions);
-				}
-			}
-			finally {
-				if(sModel != null)
-					sModel.releaseFromRead();
-			}
-		}
-		return largestRegion;
-	}
-	protected IndexedRegion getLargest(IStructuredDocumentRegion[] sdRegions) {
-		
-		if(sdRegions == null || sdRegions.length == 0)
-			return null;
-		 
-		IndexedRegion currentLargest = getCorrespondingNode(sdRegions[0]);
-		for (int i = 0; i < sdRegions.length; i++) {
-		    if(!sdRegions[i].isDeleted()) {
-    			IndexedRegion corresponding = getCorrespondingNode(sdRegions[i]);
-    			
-    			if(currentLargest instanceof Text)
-    				currentLargest = corresponding;
-    			
-                if(corresponding != null) {
-                	if(!(corresponding instanceof Text)) {
-	        			if (corresponding.getStartOffset() <= currentLargest.getStartOffset()  
-	        						&&  corresponding.getEndOffset() >= currentLargest.getEndOffset() )
-	        				currentLargest = corresponding;
-                	}
-                }
-                
-            }
-		}
-		return currentLargest;
-	}
-	protected IndexedRegion getCorrespondingNode(IStructuredDocumentRegion sdRegion) {
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-        IndexedRegion indexedRegion = null;
-        try {
-            if (sModel != null) 
-                indexedRegion = sModel.getIndexedRegion(sdRegion.getStart());    
-        } finally {
-            if (sModel != null)
-                sModel.releaseFromRead();
-        }
-        return indexedRegion;
-    }
-
-	/**
-	 * @see org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator
-	 */
-	public void connect(IDocument document) {
-		fDocument = document;
-	}
-
-	/**
-	 * @see org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator
-	 */
-	public void disconnect(IDocument document) {
-		// don't need to do anything
-	}
-
-	/**
-	 */
-	protected HTMLValidationResult validate(IDOMModel model, IFile file) {
-		IProject prj = null;
-		if (file != null) {
-			prj = file.getProject();
-		}
-		if ((prj == null) && (model != null)) {
-			URIResolver res = model.getResolver();
-			if (res != null) {
-				prj = res.getProject();
-			}
-		}
-		final WorkbenchReporter reporter = new WorkbenchReporter(prj, new NullProgressMonitor());
-		return validate(reporter, file, model);
-	}
-
-	/**
-	 */
-	private HTMLValidationResult validate(IReporter reporter, IFile file, IDOMModel model) {
-		if (file == null || model == null)
-			return null; // error
-		IDOMDocument document = model.getDocument();
-		if (document == null)
-			return null; // error
-		if (!hasHTMLFeature(document))
-			return null; // ignore
-
-		INodeAdapterFactory factory = HTMLValidationAdapterFactory.getInstance();
-		ValidationAdapter adapter = (ValidationAdapter) factory.adapt(document);
-		if (adapter == null)
-			return null; // error
-
-		HTMLValidationReporter rep = getReporter(reporter, file, model);
-		rep.clear();
-		adapter.setReporter(rep);
-		if (reporter != null) {
-			String fileName = ""; //$NON-NLS-1$
-			IPath filePath = file.getFullPath();
-			if (filePath != null) {
-				fileName = filePath.toString();
-			}
-			String args[] = new String[]{fileName};
-
-			// Message mess = new Message("HTMLValidation", //$NON-NLS-1$
-			// SeverityEnum.LOW_SEVERITY,
-			// "MESSAGE_HTML_VALIDATION_MESSAGE_UI_", //$NON-NLS-1$
-			// args);
-			Message mess = new LocalizedMessage(IMessage.LOW_SEVERITY, NLS.bind(HTMLUIMessages.MESSAGE_HTML_VALIDATION_MESSAGE_UI_, args));
-			mess.setParams(args);
-			reporter.displaySubtask(this, mess);
-		}
-		adapter.validate(document);
-		return rep.getResult();
-	}
-
-	/**
-	 */
-	private void validateContainer(IValidationContext helper, IReporter reporter, IContainer container) {
-		try {
-			IResource[] resourceArray = container.members(false);
-			for (int i = 0; i < resourceArray.length; i++) {
-				IResource resource = resourceArray[i];
-				if (resource == null)
-					continue;
-				if (resource instanceof IFile) {
-					validateFile(helper, reporter, (IFile) resource);
-				}
-				else if (resource instanceof IContainer) {
-					validateContainer(helper, reporter, (IContainer) resource);
-				}
-			}
-		}
-		catch (CoreException ex) {
-		}
-	}
-
-	/**
-	 */
-	private void validateDelta(IValidationContext helper, IReporter reporter) {
-		String[] deltaArray = helper.getURIs();
-		for (int i = 0; i < deltaArray.length; i++) {
-			String delta = deltaArray[i];
-			if (delta == null)
-				continue;
-			IResource resource = getResource(delta);
-			if (resource == null || !(resource instanceof IFile))
-				continue;
-			validateFile(helper, reporter, (IFile) resource);
-		}
-	}
-
-	/**
-	 */
-	private void validateFile(IValidationContext helper, IReporter reporter, IFile file) {
-		if ((reporter != null) && (reporter.isCancelled() == true)) {
-			throw new OperationCanceledException();
-		}
-		if (!shouldValidate(file)) {
-			return;
-		}
-		IDOMModel model = getModel(file.getProject(), file);
-		if (model == null)
-			return;
-
-		try {
-			validate(reporter, file, model);
-		}
-		finally {
-			releaseModel(model);
-		}
-	}
-
-	/**
-	 */
-	private void validateFull(IValidationContext helper, IReporter reporter) {
-		IProject project = null;
-		String[] fileDelta = helper.getURIs();
-		if (helper instanceof IWorkbenchContext) {
-			IWorkbenchContext wbHelper = (IWorkbenchContext) helper;
-			project = wbHelper.getProject();
-		}
-		else {
-			// won't work for project validation (b/c nothing in file delta)
-			project = getResource(fileDelta[0]).getProject();
-		}
-		if (project == null)
-			return;
-		validateContainer(helper, reporter, project);
-	}
-
-	/*
-	 * added to get rid or dependency on IWorkbenchHelper
-	 * 
-	 */
-	public IResource getResource(String delta) {
-		return ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(delta));
-	}
-
-	public ISchedulingRule getSchedulingRule(IValidationContext helper) {
-		return null;
-	}
-
-	public IStatus validateInJob(IValidationContext helper, IReporter reporter) throws ValidationException {
-		// Exception catching was removed, see
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=123600
-		IStatus status = Status.OK_STATUS;
-		validate(helper, reporter);
-		return status;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/LocalizedMessage.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/LocalizedMessage.java
deleted file mode 100644
index 5eba129..0000000
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/LocalizedMessage.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.internal.validation;
-
-import java.util.Locale;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.wst.validation.internal.core.Message;
-
-/**
- * copied from org.eclipse.wst.validation.internal.operations.LocalizedMessage
- * 
- * This class is provided for validators which run only in Eclipse and whose messages, because they
- * come from another tool, are already localized. LocalizedMessage cannot be used by any validator
- * which needs to run in both WebSphere and Eclipse.
- */
-public class LocalizedMessage extends Message {
-	private String _message = null;
-
-	public LocalizedMessage(int severity, String messageText) {
-		this(severity, messageText, null);
-	}
-
-	public LocalizedMessage(int severity, String messageText, IResource targetObject) {
-		this(severity, messageText, (Object) targetObject);
-	}
-
-	public LocalizedMessage(int severity, String messageText, Object targetObject) {
-		super(null, severity, null);
-		setLocalizedMessage(messageText);
-		setTargetObject(targetObject);
-	}
-
-	public void setLocalizedMessage(String message) {
-		_message = message;
-	}
-
-	public String getLocalizedMessage() {
-		return _message;
-	}
-
-	public String getText() {
-		return getLocalizedMessage();
-	}
-
-	public String getText(ClassLoader cl) {
-		return getLocalizedMessage();
-	}
-
-	public String getText(Locale l) {
-		return getLocalizedMessage();
-	}
-
-	public String getText(Locale l, ClassLoader cl) {
-		return getLocalizedMessage();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/TaskListHelper.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/TaskListHelper.java
deleted file mode 100644
index 71ede2d..0000000
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/TaskListHelper.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.internal.validation;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- * 
- * Class to help this Problem's list.
- * 
- */
-class TaskListHelper {
-	private static TaskListHelper _taskListHelper = null;
-
-	public static TaskListHelper getTaskList() {
-		if (_taskListHelper == null) {
-			_taskListHelper = new TaskListHelper();
-		}
-		return _taskListHelper;
-	}
-
-	/**
-	 * This method adds a message to a resource in the task list.
-	 */
-	public void addTask(String pluginId, IResource resource, String location, String messageId, String message, int markerType, String targetObjectName, String groupName, int offset, int length) throws CoreException {
-		TaskListUtility.addTask(pluginId, resource, location, messageId, message, markerType, targetObjectName, groupName, offset, length);
-	}
-
-	/**
-	 * This method removes all messages from a resource in the task list.
-	 */
-	public void removeAllTasks(IResource resource, String owner, String objectName) throws CoreException {
-		TaskListUtility.removeAllTasks(resource, owner, objectName);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/TaskListUtility.java b/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/TaskListUtility.java
deleted file mode 100644
index dcc3c5a..0000000
--- a/bundles/org.eclipse.wst.html.ui/src-html-validation/org/eclipse/wst/html/internal/validation/TaskListUtility.java
+++ /dev/null
@@ -1,436 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.internal.validation;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-/**
- * This class must be called only by the validation framework.
- * 
- * This singleton interacts with the eclipse workbench's Task list.
- * TaskListUtility adds and removes tasks from the list.
- * 
- * This class must not be called outside of an IWorkspaceRunnable or
- * IRunnableWithProgress. Many resource deltas can be generated by the methods
- * in this class.
- * 
- * This came from TaskListUtility
- */
-public class TaskListUtility {
-	// private static final String PLUGIN_ID = ValidationPlugin.PLUGIN_ID;
-	private static final String PLUGIN_ID = HTMLUIPlugin.ID;
-	private static final String VALIDATION_MARKER = PLUGIN_ID + ".problemmarker"; //$NON-NLS-1$ // The extension which is used to add validation markers to the task list
-	private static final String VALIDATION_MARKER_OWNER = "owner"; //$NON-NLS-1$ // The IValidator who owns the IMarker on the task list
-	private static final String VALIDATION_MARKER_SEVERITY = "validationSeverity"; //$NON-NLS-1$ // one of the IMessage values
-	private static final String VALIDATION_MARKER_TARGETOBJECT = "targetObject"; //$NON-NLS-1$ // When more than one target object resolves to the same IResource, this field identifies which targetObject owns a particular message.
-	private static final String VALIDATION_MARKER_GROUP = "groupName"; //$NON-NLS-1$ // For incremental validation, this field associates a message with a group, so that a subset of messages may be removed from a file.
-	private static final String VALIDATION_MARKER_MESSAGEID = "messageId"; //$NON-NLS-1$ // Persist the message id of the message, not just the translated text.
-	private static final int DEPTH_INFINITE = IResource.DEPTH_INFINITE;
-	private static final int DEPTH_ZERO = IResource.DEPTH_ZERO;
-	private final static IMarker[] NO_MARKERS = new IMarker[0];
-
-	/**
-	 * This method adds a message to a resource in the task list.
-	 */
-	public static IMarker addTask(String pluginId, IResource resource, String location, String messageId, String message, int markerType, String targetObjectName, String groupName, int offset, int length) throws CoreException {
-		if ((message == null) || (resource == null)) {
-			return null;
-		}
-
-		int severity = getSeverity(markerType);
-
-		// Allow duplicate entries in the task list.
-		// Prior to a full validation, the validation framework will remove
-		// all messages owned
-		// by a validator before it is executed.
-		// Prior to an incremental validation, the validation framework will
-		// remove all messages,
-		// on each of the changed resources, owned by a validator before it is
-		// invoked.
-		// 
-		// It is up to the validator to make sure that it is not adding the
-		// same message
-		// in more than one place, and also to clear out any old messages
-		// which are not cleared
-		// by the validation framework.
-		IMarker item = resource.createMarker(VALIDATION_MARKER); // add a
-																	// validation
-																	// marker
-
-		// For performance reasons, replace the multiple setAttribute
-		// calls above with a single setAttributes call.
-		boolean offsetSet = ((offset != IMessage.OFFSET_UNSET) && (length != IMessage.OFFSET_UNSET));
-		int size = (offsetSet) ? 10 : 8; // add CHAR_START, CHAR_END only
-											// if the offset is set. If the
-											// offset is set, it takes
-											// precendence over the line
-											// number. (eclipse's rule, not
-											// mine.)
-		String[] attribNames = new String[size];
-		Object[] attribValues = new Object[size];
-
-		// Very first thing, add the owner. That way, if the code dies
-		// before things are persisted, hopefully this marker will be
-		// persisted.
-		// Hopefully, eclipse WILL persist this field, as requested.
-		attribNames[0] = VALIDATION_MARKER_OWNER;
-		attribValues[0] = pluginId;
-		attribNames[1] = VALIDATION_MARKER_SEVERITY; // this validation
-														// severity is stored,
-														// in addition to the
-														// marker severity, to
-														// enable more than
-														// one severity of
-														// message to be
-														// displayed. e.g.
-														// ERROR | WARNING
-														// (using binary OR).
-														// The IMarker
-														// constants are
-														// regular decimal
-														// constants.
-		attribValues[1] = new Integer(markerType);
-		attribNames[2] = VALIDATION_MARKER_TARGETOBJECT; // to distinguish
-															// between
-															// messages which
-															// are registered
-															// on an
-															// IResource, but
-															// against
-															// different
-															// target objects
-		attribValues[2] = ((targetObjectName == null) ? "" : targetObjectName); //$NON-NLS-1$
-		attribNames[3] = VALIDATION_MARKER_GROUP;
-		attribValues[3] = ((groupName == null) ? "" : groupName); //$NON-NLS-1$
-		attribNames[4] = IMarker.MESSAGE;
-		attribValues[4] = message;
-		attribNames[5] = VALIDATION_MARKER_MESSAGEID;
-		attribValues[5] = messageId;
-
-		attribNames[6] = IMarker.SEVERITY; // IMarker.SEVERITY_ERROR,
-											// IMarker.SEVERITY_WARNING,
-											// IMarker.SEVERITY_INFO
-		attribValues[6] = new Integer(severity);
-		try {
-			// If the location is a line number, store it as a line number
-			Integer lineNumber = Integer.valueOf(location);
-			attribNames[7] = IMarker.LINE_NUMBER;
-			attribValues[7] = lineNumber;
-		}
-		catch (NumberFormatException exc) {
-			// Otherwise, store it as a text location
-			attribNames[7] = IMarker.LOCATION;
-			attribValues[7] = location;
-		}
-
-		if (offsetSet) {
-			attribNames[8] = IMarker.CHAR_START;
-			attribValues[8] = new Integer(offset);
-			attribNames[9] = IMarker.CHAR_END;
-			attribValues[9] = new Integer(offset + length);
-		}
-
-		item.setAttributes(attribNames, attribValues);
-
-		return item;
-	}
-
-	/**
-	 * Given one of the SeverityEnum severities, return the IMarker severity
-	 * int that is its equivalent.
-	 */
-	private static int getSeverity(int severityEnumValue) {
-		switch (severityEnumValue) {
-			case (IMessage.HIGH_SEVERITY) : {
-				return IMarker.SEVERITY_ERROR;
-			}
-
-			case (IMessage.LOW_SEVERITY) : {
-				return IMarker.SEVERITY_INFO;
-			}
-
-			case (IMessage.NORMAL_SEVERITY) : {
-				return IMarker.SEVERITY_WARNING;
-			}
-
-			case (IMessage.ALL_MESSAGES) :
-			case (IMessage.ERROR_AND_WARNING) :
-			default : {
-				// assume it's a warning.
-				return IMarker.SEVERITY_WARNING;
-			}
-		}
-	}
-
-	private static int getDepth(IResource resource) {
-		if (resource instanceof IProject) {
-			return DEPTH_INFINITE; // DEPTH_INFINITE means get this project's
-									// markers, and the markers belonging to
-									// the project's children.
-		}
-		else if (resource instanceof IWorkspaceRoot) {
-			// Needed for the ValidationMigrator when it checks for orphan
-			// tasks.
-			return DEPTH_INFINITE; // DEPTH_INFINITE means get all of the
-									// markers in the workspace
-		}
-
-		return DEPTH_ZERO; // DEPTH_ZERO means just this resource, not its
-							// children
-	}
-
-	private static IMarker[] getValidationTasks(IResource resource, int severity, int depth) {
-		IMarker[] tempMarkers = null;
-		int validCount = 0;
-		try {
-			IMarker[] allMarkers = null;
-			try {
-				allMarkers = resource.findMarkers(VALIDATION_MARKER, false, depth); // false
-																					// means
-																					// only
-																					// consider
-																					// PROBLEM_MARKER,
-																					// not
-																					// variants
-																					// of
-																					// PROBLEM_MARKER.
-																					// Since
-																					// addTask
-																					// only
-																					// adds
-																					// PROBLEM_MARKER,
-																					// we
-																					// don't
-																					// need
-																					// to
-																					// consider
-																					// its
-																					// subtypes.
-			}
-			catch (CoreException exc) {
-				// Logger logger =
-				// ValidationPlugin.getPlugin().getMsgLogger();
-				// if (logger.isLoggingLevel(Level.SEVERE)) {
-				// LogEntry entry = ValidationPlugin.getLogEntry();
-				// entry.setSourceID("TaskListUtility.getValidationTasks(IResource,
-				// int)"); //$NON-NLS-1$
-				// entry.setTargetException(exc);
-				// logger.write(Level.SEVERE, entry);
-				// }
-				return NO_MARKERS;
-			}
-
-			// Now filter in the markers, based on severity type.
-			if (allMarkers.length != 0) {
-				tempMarkers = new IMarker[allMarkers.length];
-				for (int i = 0; i < allMarkers.length; i++) {
-					IMarker marker = allMarkers[i];
-					Integer filterSeverity = (Integer) marker.getAttribute(VALIDATION_MARKER_SEVERITY);
-					if (filterSeverity == null) {
-						// odd...marker wasn't created correctly. How could
-						// this happen?
-						// Default to the current severity and add it to the
-						// list.
-						try {
-							marker.setAttribute(IMarker.SEVERITY, getSeverity(severity));
-						}
-						catch (CoreException exc) {
-							// Logger logger =
-							// ValidationPlugin.getPlugin().getMsgLogger();
-							// if (logger.isLoggingLevel(Level.SEVERE)) {
-							// LogEntry entry =
-							// ValidationPlugin.getLogEntry();
-							// entry.setSourceID("TaskListUtility.getValidationTasks(int,
-							// IResource, int)"); //$NON-NLS-1$
-							// entry.setTargetException(exc);
-							// logger.write(Level.SEVERE, entry);
-							// }
-							continue;
-						}
-						catch (Throwable exc) {
-							// Logger logger =
-							// ValidationPlugin.getPlugin().getMsgLogger();
-							// if (logger.isLoggingLevel(Level.SEVERE)) {
-							// LogEntry entry =
-							// ValidationPlugin.getLogEntry();
-							// entry.setSourceID("TaskListUtility.getValidationTasks(int,
-							// IResource, int)"); //$NON-NLS-1$
-							// entry.setTargetException(exc);
-							// logger.write(Level.SEVERE, entry);
-							// }
-							continue;
-						}
-					}
-					else if ((severity & filterSeverity.intValue()) == 0) {
-						continue;
-					}
-					tempMarkers[validCount++] = marker;
-				}
-			}
-		}
-		catch (CoreException exc) {
-			// Logger logger = ValidationPlugin.getPlugin().getMsgLogger();
-			// if (logger.isLoggingLevel(Level.SEVERE)) {
-			// LogEntry entry = ValidationPlugin.getLogEntry();
-			// entry.setSourceID("TaskListUtility.getValidationTasks(int,
-			// IResource, int)"); //$NON-NLS-1$
-			// entry.setTargetException(exc);
-			// logger.write(Level.SEVERE, entry);
-			// }
-		}
-
-		if (validCount == 0) {
-			return NO_MARKERS;
-		}
-
-		IMarker[] validMarkers = new IMarker[validCount];
-		System.arraycopy(tempMarkers, 0, validMarkers, 0, validCount);
-		return validMarkers;
-	}
-
-	private static IMarker[] getValidationTasks(IResource resource, String[] messageOwners, int depth) {
-		IMarker[] markers = getValidationTasks(resource, IMessage.ALL_MESSAGES, depth);
-		if (markers.length == 0) {
-			return NO_MARKERS;
-		}
-
-		IMarker[] temp = new IMarker[markers.length];
-		int validCount = 0;
-		for (int i = 0; i < markers.length; i++) {
-			IMarker marker = markers[i];
-
-			try {
-				Object owner = marker.getAttribute(VALIDATION_MARKER_OWNER);
-				if ((owner == null) || !(owner instanceof String)) {
-					// The ValidationMigrator will remove any "unowned"
-					// validation markers.
-					continue;
-				}
-
-				for (int j = 0; j < messageOwners.length; j++) {
-					String messageOwner = messageOwners[j];
-					if (((String) owner).equals(messageOwner)) {
-						temp[validCount++] = marker;
-						break;
-					}
-				}
-			}
-			catch (CoreException exc) {
-				// Logger logger =
-				// ValidationPlugin.getPlugin().getMsgLogger();
-				// if (logger.isLoggingLevel(Level.SEVERE)) {
-				// LogEntry entry = ValidationPlugin.getLogEntry();
-				// entry.setSourceID("TaskListUtility.getValidationTasks(project,
-				// String[])"); //$NON-NLS-1$
-				// entry.setTargetException(exc);
-				// logger.write(Level.SEVERE, entry);
-				// }
-				return NO_MARKERS;
-			}
-		}
-
-		IMarker[] result = new IMarker[validCount];
-		System.arraycopy(temp, 0, result, 0, validCount);
-		return result;
-	}
-
-	/**
-	 * This method retrieves all validation tasks from the resource. If depth
-	 * is INFINITE, child tasks are returned as well. Only the tasks which are
-	 * owned by the specified messageOwner, and apply to the named IMessage's
-	 * target object (objectName) will be returned.
-	 */
-	private static IMarker[] getValidationTasks(IResource resource, String[] messageOwner, String objectName, String groupName, int depth) throws CoreException {
-		if ((messageOwner == null) || (resource == null)) {
-			return NO_MARKERS;
-		}
-
-		int validCount = 0;
-		IMarker[] validList = null;
-		IMarker[] markers = getValidationTasks(resource, messageOwner, depth);
-		if (markers != null) {
-			validList = new IMarker[markers.length];
-			for (int i = 0; i < markers.length; i++) {
-				IMarker marker = markers[i];
-
-				// If more than one target object resolves to the same
-				// resource, removing one target's
-				// messages should not remove the other target object's
-				// messages.
-				if (objectName != null) {
-					Object targetObject = marker.getAttribute(VALIDATION_MARKER_TARGETOBJECT);
-					if ((targetObject == null) || !(targetObject instanceof String) || !(((String) targetObject).equals(objectName))) {
-						continue;
-					}
-				}
-
-				if (groupName != null) {
-					Object group = marker.getAttribute(VALIDATION_MARKER_GROUP);
-					if ((group == null) || !(group instanceof String) || !(((String) group).equals(groupName))) {
-						continue;
-					}
-				}
-
-				validList[validCount++] = marker;
-			}
-		}
-
-		if (validCount == 0) {
-			return NO_MARKERS;
-		}
-
-		IMarker[] result = new IMarker[validCount];
-		System.arraycopy(validList, 0, result, 0, validCount);
-		return result;
-	}
-
-	/**
-	 * This method removes all messages from a resource in the task list.
-	 */
-	public static void removeAllTasks(IResource resource, String owner, String objectName) throws CoreException {
-		removeAllTasks(resource, new String[]{owner}, objectName);
-	}
-
-	public static void removeAllTasks(IResource resource, String[] owners, String objectName) throws CoreException {
-		removeAllTasks(resource, owners, objectName, getDepth(resource));
-	}
-
-	protected static void removeAllTasks(IResource resource, String[] owners, String objectName, int depth) throws CoreException {
-		removeTaskSubset(resource, owners, objectName, null, depth); // null
-																		// means
-																		// no
-																		// group
-																		// name
-	}
-
-	/**
-	 * This method removes a subset of tasks from the project, including child
-	 * tasks. Every task which belongs to the group, identified by groupName,
-	 * will be removed.
-	 */
-	protected static void removeTaskSubset(IResource resource, String[] owners, String objectName, String groupName, int depth) throws CoreException {
-		if ((owners == null) || (resource == null)) {
-			return;
-		}
-
-		IMarker[] allTasks = getValidationTasks(resource, owners, objectName, groupName, depth);
-		if (allTasks.length > 0) {
-			ResourcesPlugin.getWorkspace().deleteMarkers(allTasks);
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/StructuredTextViewerConfigurationHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/StructuredTextViewerConfigurationHTML.java
deleted file mode 100644
index 80cbe16..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/StructuredTextViewerConfigurationHTML.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.ITextDoubleClickStrategy;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.formatter.IContentFormatter;
-import org.eclipse.jface.text.formatter.MultiPassContentFormatter;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
-import org.eclipse.wst.css.core.text.ICSSPartitions;
-import org.eclipse.wst.css.ui.internal.contentassist.CSSContentAssistProcessor;
-import org.eclipse.wst.css.ui.internal.style.LineStyleProviderForEmbeddedCSS;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.core.internal.text.StructuredTextPartitionerForHTML;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.html.ui.internal.autoedit.AutoEditStrategyForTabs;
-import org.eclipse.wst.html.ui.internal.autoedit.StructuredAutoEditStrategyHTML;
-import org.eclipse.wst.html.ui.internal.contentassist.HTMLContentAssistProcessor;
-import org.eclipse.wst.html.ui.internal.contentassist.NoRegionContentAssistProcessorForHTML;
-import org.eclipse.wst.html.ui.internal.hyperlink.XMLHyperlinkDetector;
-import org.eclipse.wst.html.ui.internal.style.LineStyleProviderForHTML;
-import org.eclipse.wst.html.ui.internal.taginfo.HTMLInformationProvider;
-import org.eclipse.wst.html.ui.internal.taginfo.HTMLTagInfoHoverProcessor;
-import org.eclipse.wst.javascript.ui.internal.common.contentassist.JavaScriptContentAssistProcessor;
-import org.eclipse.wst.javascript.ui.internal.common.style.LineStyleProviderForJavaScript;
-import org.eclipse.wst.javascript.ui.internal.common.taginfo.JavaScriptInformationProvider;
-import org.eclipse.wst.javascript.ui.internal.common.taginfo.JavaScriptTagInfoHoverProcessor;
-import org.eclipse.wst.sse.core.text.IStructuredPartitions;
-import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.format.StructuredFormattingStrategy;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-import org.eclipse.wst.xml.core.internal.text.rules.StructuredTextPartitionerForXML;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
-
-/**
- * Configuration for a source viewer which shows HTML content.
- * <p>
- * Clients can subclass and override just those methods which must be specific
- * to their needs.
- * </p>
- * 
- * @see org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration
- * @since 1.0
- */
-public class StructuredTextViewerConfigurationHTML extends StructuredTextViewerConfiguration {
-	/*
-	 * One instance per configuration because not sourceviewer-specific and
-	 * it's a String array
-	 */
-	private String[] fConfiguredContentTypes;
-	/*
-	 * One instance per configuration
-	 */
-	private LineStyleProvider fLineStyleProviderForEmbeddedCSS;
-	/*
-	 * One instance per configuration
-	 */
-	private LineStyleProvider fLineStyleProviderForHTML;
-	/*
-	 * One instance per configuration
-	 */
-	private LineStyleProvider fLineStyleProviderForJavascript;
-	/*
-	 * One instance per configuration
-	 */
-	private StructuredTextViewerConfiguration fXMLSourceViewerConfiguration;
-
-	/**
-	 * Create new instance of StructuredTextViewerConfigurationHTML
-	 */
-	public StructuredTextViewerConfigurationHTML() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType) {
-		List allStrategies = new ArrayList(0);
-
-		IAutoEditStrategy[] superStrategies = super.getAutoEditStrategies(sourceViewer, contentType);
-		for (int i = 0; i < superStrategies.length; i++) {
-			allStrategies.add(superStrategies[i]);
-		}
-
-		if (contentType == IHTMLPartitions.HTML_DEFAULT || contentType == IHTMLPartitions.HTML_DECLARATION) {
-			allStrategies.add(new StructuredAutoEditStrategyHTML());
-		}
-
-		// be sure this is added last in list, so it has a change to modify
-		// previous results.
-		// add auto edit strategy that handles when tab key is pressed
-		allStrategies.add(new AutoEditStrategyForTabs());
-
-		return (IAutoEditStrategy[]) allStrategies.toArray(new IAutoEditStrategy[allStrategies.size()]);
-	}
-
-	public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
-		if (fConfiguredContentTypes == null) {
-			String[] xmlTypes = StructuredTextPartitionerForXML.getConfiguredContentTypes();
-			String[] htmlTypes = StructuredTextPartitionerForHTML.getConfiguredContentTypes();
-			fConfiguredContentTypes = new String[2 + xmlTypes.length + htmlTypes.length];
-
-			fConfiguredContentTypes[0] = IStructuredPartitions.DEFAULT_PARTITION;
-			fConfiguredContentTypes[1] = IStructuredPartitions.UNKNOWN_PARTITION;
-
-			int index = 0;
-			System.arraycopy(xmlTypes, 0, fConfiguredContentTypes, index += 2, xmlTypes.length);
-			System.arraycopy(htmlTypes, 0, fConfiguredContentTypes, index += xmlTypes.length, htmlTypes.length);
-		}
-
-		return fConfiguredContentTypes;
-	}
-
-	protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
-		IContentAssistProcessor[] processors = null;
-
-		if ((partitionType == IHTMLPartitions.HTML_DEFAULT) || (partitionType == IHTMLPartitions.HTML_COMMENT)) {
-			processors = new IContentAssistProcessor[]{new HTMLContentAssistProcessor()};
-		}
-		else if (partitionType == IHTMLPartitions.SCRIPT) {
-			processors = new IContentAssistProcessor[]{new JavaScriptContentAssistProcessor()};
-		}
-		else if (partitionType == ICSSPartitions.STYLE) {
-			processors = new IContentAssistProcessor[]{new CSSContentAssistProcessor()};
-		}
-		else if (partitionType == IStructuredPartitions.UNKNOWN_PARTITION) {
-			processors = new IContentAssistProcessor[]{new NoRegionContentAssistProcessorForHTML()};
-		}
-
-		return processors;
-	}
-
-	public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {
-		final MultiPassContentFormatter formatter = new MultiPassContentFormatter(getConfiguredDocumentPartitioning(sourceViewer), IHTMLPartitions.HTML_DEFAULT);
-
-		formatter.setMasterStrategy(new StructuredFormattingStrategy(new HTMLFormatProcessorImpl()));
-
-		return formatter;
-	}
-
-	public ITextDoubleClickStrategy getDoubleClickStrategy(ISourceViewer sourceViewer, String contentType) {
-		if (contentType == IHTMLPartitions.HTML_DEFAULT) {
-			// use xml's doubleclick strategy
-			return getXMLSourceViewerConfiguration().getDoubleClickStrategy(sourceViewer, IXMLPartitions.XML_DEFAULT);
-		}
-		else
-			return super.getDoubleClickStrategy(sourceViewer, contentType);
-	}
-
-	public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
-		if (sourceViewer == null || !fPreferenceStore.getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_HYPERLINKS_ENABLED))
-			return null;
-
-		List allDetectors = new ArrayList(0);
-		allDetectors.add(new XMLHyperlinkDetector());
-
-		IHyperlinkDetector[] superDetectors = super.getHyperlinkDetectors(sourceViewer);
-		for (int m = 0; m < superDetectors.length; m++) {
-			IHyperlinkDetector detector = superDetectors[m];
-			if (!allDetectors.contains(detector)) {
-				allDetectors.add(detector);
-			}
-		}
-		return (IHyperlinkDetector[]) allDetectors.toArray(new IHyperlinkDetector[0]);
-	}
-
-	public String[] getIndentPrefixes(ISourceViewer sourceViewer, String contentType) {
-		Vector vector = new Vector();
-
-		// prefix[0] is either '\t' or ' ' x tabWidth, depending on preference
-		Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
-		int indentationWidth = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
-		String indentCharPref = preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR);
-		boolean useSpaces = HTMLCorePreferenceNames.SPACE.equals(indentCharPref);
-
-		for (int i = 0; i <= indentationWidth; i++) {
-			StringBuffer prefix = new StringBuffer();
-			boolean appendTab = false;
-
-			if (useSpaces) {
-				for (int j = 0; j + i < indentationWidth; j++)
-					prefix.append(' ');
-
-				if (i != 0)
-					appendTab = true;
-			}
-			else {
-				for (int j = 0; j < i; j++)
-					prefix.append(' ');
-
-				if (i != indentationWidth)
-					appendTab = true;
-			}
-
-			if (appendTab) {
-				prefix.append('\t');
-				vector.add(prefix.toString());
-				// remove the tab so that indentation - tab is also an indent
-				// prefix
-				prefix.deleteCharAt(prefix.length() - 1);
-			}
-			vector.add(prefix.toString());
-		}
-
-		vector.add(""); //$NON-NLS-1$
-
-		return (String[]) vector.toArray(new String[vector.size()]);
-	}
-
-	protected IInformationProvider getInformationProvider(ISourceViewer sourceViewer, String partitionType) {
-		IInformationProvider provider = null;
-		if (partitionType == IHTMLPartitions.HTML_DEFAULT) {
-			// HTML
-			provider = new HTMLInformationProvider();
-		}
-		else if (partitionType == IHTMLPartitions.SCRIPT) {
-			// HTML JavaScript
-			provider = new JavaScriptInformationProvider();
-		}
-		return provider;
-	}
-
-	public LineStyleProvider[] getLineStyleProviders(ISourceViewer sourceViewer, String partitionType) {
-		LineStyleProvider[] providers = null;
-
-		if (partitionType == IHTMLPartitions.HTML_DEFAULT || partitionType == IHTMLPartitions.HTML_COMMENT || partitionType == IHTMLPartitions.HTML_DECLARATION) {
-			providers = new LineStyleProvider[]{getLineStyleProviderForHTML()};
-		}
-		else if (partitionType == IHTMLPartitions.SCRIPT) {
-			providers = new LineStyleProvider[]{getLineStyleProviderForJavascript()};
-		}
-		else if (partitionType == ICSSPartitions.STYLE) {
-			providers = new LineStyleProvider[]{getLineStyleProviderForEmbeddedCSS()};
-		}
-
-		return providers;
-	}
-
-	private LineStyleProvider getLineStyleProviderForEmbeddedCSS() {
-		if (fLineStyleProviderForEmbeddedCSS == null) {
-			fLineStyleProviderForEmbeddedCSS = new LineStyleProviderForEmbeddedCSS();
-		}
-		return fLineStyleProviderForEmbeddedCSS;
-	}
-
-	private LineStyleProvider getLineStyleProviderForHTML() {
-		if (fLineStyleProviderForHTML == null) {
-			fLineStyleProviderForHTML = new LineStyleProviderForHTML();
-		}
-		return fLineStyleProviderForHTML;
-	}
-
-	private LineStyleProvider getLineStyleProviderForJavascript() {
-		if (fLineStyleProviderForJavascript == null) {
-			fLineStyleProviderForJavascript = new LineStyleProviderForJavaScript();
-		}
-		return fLineStyleProviderForJavascript;
-	}
-
-	public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType, int stateMask) {
-		ITextHover textHover = null;
-
-		// look for appropriate text hover processor to return based on
-		// content type and state mask
-		TextHoverManager manager = SSEUIPlugin.getDefault().getTextHoverManager();
-		TextHoverManager.TextHoverDescriptor[] hoverDescs = manager.getTextHovers();
-		int i = 0;
-		while (i < hoverDescs.length && textHover == null) {
-			if (hoverDescs[i].isEnabled() && EditorUtility.computeStateMask(hoverDescs[i].getModifierString()) == stateMask) {
-				String hoverType = hoverDescs[i].getId();
-				if (TextHoverManager.COMBINATION_HOVER.equalsIgnoreCase(hoverType)) {
-					// check if script or html is needed
-					if (contentType == IHTMLPartitions.SCRIPT) {
-						textHover = manager.createBestMatchHover(new JavaScriptTagInfoHoverProcessor());
-					}
-					else if (contentType == IHTMLPartitions.HTML_DEFAULT) {
-						textHover = manager.createBestMatchHover(new HTMLTagInfoHoverProcessor());
-					}
-				}
-				else if (TextHoverManager.DOCUMENTATION_HOVER.equalsIgnoreCase(hoverType))
-					// check if script or html is needed
-					if (contentType == IHTMLPartitions.SCRIPT) {
-						textHover = new JavaScriptTagInfoHoverProcessor();
-					}
-					else if (contentType == IHTMLPartitions.HTML_DEFAULT) {
-						textHover = new HTMLTagInfoHoverProcessor();
-					}
-			}
-			i++;
-		}
-
-		// no appropriate text hovers found, try super
-		if (textHover == null) {
-			textHover = super.getTextHover(sourceViewer, contentType, stateMask);
-		}
-		return textHover;
-	}
-
-	private StructuredTextViewerConfiguration getXMLSourceViewerConfiguration() {
-		if (fXMLSourceViewerConfiguration == null) {
-			fXMLSourceViewerConfiguration = new StructuredTextViewerConfigurationXML();
-		}
-		return fXMLSourceViewerConfiguration;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java
deleted file mode 100644
index 5b5b537..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIMessages.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.wst.html.ui.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by HTML UI
- * 
- * @plannedfor 1.0
- */
-public class HTMLUIMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.html.ui.internal.HTMLUIPluginResources";//$NON-NLS-1$
-	private static ResourceBundle fResourceBundle;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, HTMLUIMessages.class);
-	}
-	
-	private HTMLUIMessages() {
-		// cannot create new instance of this class
-	}
-	
-	public static ResourceBundle getResourceBundle() {
-		try {
-			if (fResourceBundle == null)
-				fResourceBundle = ResourceBundle.getBundle(BUNDLE_NAME);
-		}
-		catch (MissingResourceException x) {
-			fResourceBundle = null;
-		}
-		return fResourceBundle;
-	}
-	
-	public static String Sample_HTML_doc;
-	public static String HTMLFilesPreferencePage_0;
-	public static String _UI_WIZARD_NEW_TITLE;
-	public static String _UI_WIZARD_NEW_HEADING;
-	public static String _UI_WIZARD_NEW_DESCRIPTION;
-	public static String _ERROR_FILENAME_MUST_END_HTML;
-	public static String _WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT;
-	public static String ResourceGroup_nameExists;
-	public static String NewHTMLTemplatesWizardPage_0;
-	public static String NewHTMLTemplatesWizardPage_1;
-	public static String NewHTMLTemplatesWizardPage_2;
-	public static String NewHTMLTemplatesWizardPage_3;
-	public static String NewHTMLTemplatesWizardPage_4;
-	public static String NewHTMLTemplatesWizardPage_5;
-	public static String NewHTMLTemplatesWizardPage_6;
-	public static String Creating_files_encoding;
-	public static String MESSAGE_HTML_VALIDATION_MESSAGE_UI_;
-	public static String CleanupDocument_label; // resource bundle
-	public static String CleanupDocument_tooltip; // resource bundle
-	public static String CleanupDocument_description; // resource bundle
-	public static String ToggleComment_label; // resource bundle
-	public static String ToggleComment_tooltip; // resource bundle
-	public static String ToggleComment_description; // resource bundle
-	public static String AddBlockComment_label; // resource bundle
-	public static String AddBlockComment_tooltip; // resource bundle
-	public static String AddBlockComment_description; // resource bundle
-	public static String RemoveBlockComment_label; // resource bundle
-	public static String RemoveBlockComment_tooltip; // resource bundle
-	public static String RemoveBlockComment_description; // resource bundle
-	public static String FindOccurrences_label;	// resource bundle
-	public static String Creating_files;
-	public static String Encoding_desc;
-	public static String UI_Description_of_role_of_following_DOCTYPE;
-	public static String UI_Default_HTML_DOCTYPE_ID___1;
-	public static String UI_Public_ID;
-	public static String UI_System_ID;
-	public static String UI_none;
-	public static String UI_CSS_profile___2;
-	public static String WebContentSettingsPropertyPage_0;
-	public static String ProjectWebContentSettingsPropertyPage_0;
-	
-	public static String Preferred_markup_case_UI_;
-	public static String Tag_names__UI_;
-	public static String Tag_names_Upper_case_UI_;
-	public static String Tag_names_Lower_case_UI_;
-	public static String Attribute_names__UI_;
-	public static String Attribute_names_Upper_case_UI_;
-	public static String Attribute_names_Lower_case_UI_;
-	public static String Cleanup_UI_;
-	public static String Tag_name_case_for_HTML_UI_;
-	public static String Tag_name_case_As_is_UI_;
-	public static String Tag_name_case_Lower_UI_;
-	public static String Tag_name_case_Upper_UI_;
-	public static String Attribute_name_case_for_HTML_UI_;
-	public static String Attribute_name_case_As_is_UI_;
-	public static String Attribute_name_case_Lower_UI_;
-	public static String Attribute_name_case_Upper_UI_;
-	public static String Insert_required_attributes_UI_;
-	public static String Insert_missing_tags_UI_;
-	public static String Quote_attribute_values_UI_;
-	public static String Format_source_UI_;
-	public static String Convert_EOL_codes_UI_;
-	public static String EOL_Windows_UI;
-	public static String EOL_Unix_UI;
-	public static String EOL_Mac_UI;
-
-	// below are possibly unused strings that may be deleted
-	public static String HTMLFilesPreferencePage_1;
-	public static String HTMLFilesPreferencePage_2;
-	public static String HTMLFilesPreferencePage_3;
-	// above are possibly unused strings that may be deleted
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPlugin.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPlugin.java
deleted file mode 100644
index e77314f..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPlugin.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal;
-
-import java.io.IOException;
-
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry;
-import org.eclipse.ui.editors.text.templates.ContributionTemplateStore;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.html.ui.internal.preferences.HTMLUIPreferenceNames;
-import org.eclipse.wst.html.ui.internal.templates.TemplateContextTypeIdsHTML;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryImpl;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class HTMLUIPlugin extends AbstractUIPlugin {
-	public final static String ID = "org.eclipse.wst.html.ui"; //$NON-NLS-1$
-
-	protected static HTMLUIPlugin instance = null;	
-
-	/**
-	 * The template store for the html editor.
-	 */
-	private TemplateStore fTemplateStore;
-
-	/**
-	 * The template context type registry for the html editor.
-	 */
-	private ContextTypeRegistry fContextTypeRegistry;
-
-	public HTMLUIPlugin() {
-		super();
-		instance = this;
-	}
-
-	public static HTMLUIPlugin getDefault() {
-		return instance;
-	}
-
-	public synchronized static HTMLUIPlugin getInstance() {
-		return instance;
-	}
-
-	public AdapterFactoryRegistry getAdapterFactoryRegistry() {
-		return AdapterFactoryRegistryImpl.getInstance();
-
-	}
-
-	/**
-	 * Returns the template store for the html editor templates.
-	 * 
-	 * @return the template store for the html editor templates
-	 */
-	public TemplateStore getTemplateStore() {
-		if (fTemplateStore == null) {
-			fTemplateStore = new ContributionTemplateStore(getTemplateContextRegistry(), getPreferenceStore(), HTMLUIPreferenceNames.TEMPLATES_KEY);
-
-			try {
-				fTemplateStore.load();
-			} catch (IOException e) {
-				Logger.logException(e);
-			}
-		}
-		return fTemplateStore;
-	}
-
-	/**
-	 * Returns the template context type registry for the html plugin.
-	 * 
-	 * @return the template context type registry for the html plugin
-	 */
-	public ContextTypeRegistry getTemplateContextRegistry() {
-		if (fContextTypeRegistry == null) {
-			ContributionContextTypeRegistry registry = new ContributionContextTypeRegistry();
-			registry.addContextType(TemplateContextTypeIdsHTML.ALL);
-			registry.addContextType(TemplateContextTypeIdsHTML.NEW);
-			registry.addContextType(TemplateContextTypeIdsHTML.TAG);
-			registry.addContextType(TemplateContextTypeIdsHTML.ATTRIBUTE);
-			registry.addContextType(TemplateContextTypeIdsHTML.ATTRIBUTE_VALUE);
-
-			fContextTypeRegistry = registry;
-		}
-
-		return fContextTypeRegistry;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties
deleted file mode 100644
index c7be050..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/HTMLUIPluginResources.properties
+++ /dev/null
@@ -1,89 +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
-###############################################################################
-## The following line is a sample HTML document.  Please translate only the following parts:
-## HTML Highlighting Preferences
-## we need a flaming logo
-Sample_HTML_doc=<!DOCTYPE HTML\n\tPUBLIC \"-//W3C/DTD/ HTML 4.01 Transitional//EN\"\n\t\"http://www.w3.org/TR/html4/loose.dtd\">\n<HTML>\n\t<HEAD>\n\t\t<META content=\"text/html\">\n\t\t<TITLE>HTML Highlighting Preferences</TITLE>\n\t</HEAD>\n<BODY>\n\t<!--\n\t\twe need a flaming logo!\n\t-->\n</BODY>\n</HTML>
-
-HTMLFilesPreferencePage_0=Loading files...
-#
-_UI_WIZARD_NEW_TITLE = New HTML Page
-_UI_WIZARD_NEW_HEADING = HTML Page
-_UI_WIZARD_NEW_DESCRIPTION = Create a new HTML Page.
-_ERROR_FILENAME_MUST_END_HTML = The file name must end in one of the following extensions {0}.
-_WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT = Files created outside of the Web Content folder will not be included in your deployed Web application. 
-ResourceGroup_nameExists = The same name already exists.
-NewHTMLTemplatesWizardPage_0=Select HTML Template
-NewHTMLTemplatesWizardPage_1=Select a template as initial content in the HTML page.
-NewHTMLTemplatesWizardPage_2=Name
-NewHTMLTemplatesWizardPage_3=Description
-NewHTMLTemplatesWizardPage_4=Use HTML Template
-NewHTMLTemplatesWizardPage_5=Preview
-NewHTMLTemplatesWizardPage_6=Templates are 'New HTML' templates found in the <a>HTML Templates</a> preference page.
-#
-Creating_files_encoding=Creating files encoding preference
-MESSAGE_HTML_VALIDATION_MESSAGE_UI_=HTML Syntax : {0}
-# Copied from sse.ui
-CleanupDocument_label=Cleanup Document...
-CleanupDocument_tooltip=Cleanup Document
-CleanupDocument_description=Cleanup Document
-ToggleComment_label=Toggle Comment
-ToggleComment_tooltip=Toggle Comment
-ToggleComment_description=Toggle Comment
-AddBlockComment_label=Add Block Comment
-AddBlockComment_tooltip=Add Block Comment
-AddBlockComment_description=Add Block Comment
-RemoveBlockComment_label=Remove Block Comment
-RemoveBlockComment_tooltip=Remove Block Comment
-RemoveBlockComment_description=Remove Block Comment
-FindOccurrences_label=Occurrences in File
-Creating_files=Creating files
-Encoding_desc=The following encoding will apply:
-Preferred_markup_case_UI_=Preferred markup case for content assist, and code generation
-Tag_names__UI_=Tag names:
-Tag_names_Upper_case_UI_=&Uppercase
-Tag_names_Lower_case_UI_=&Lowercase
-Attribute_names__UI_=Attribute names:
-Attribute_names_Upper_case_UI_=U&ppercase
-Attribute_names_Lower_case_UI_=L&owercase
-Cleanup_UI_=Cleanup
-Tag_name_case_for_HTML_UI_=Tag name case for HTML:
-Tag_name_case_As_is_UI_=&As-is
-Tag_name_case_Lower_UI_=&Lower
-Tag_name_case_Upper_UI_=&Upper
-Attribute_name_case_for_HTML_UI_=Attribute name case for HTML:
-Attribute_name_case_As_is_UI_=A&s-is
-Attribute_name_case_Lower_UI_=L&ower
-Attribute_name_case_Upper_UI_=U&pper
-Insert_required_attributes_UI_=Insert &required attributes
-Insert_missing_tags_UI_=&Insert missing tags
-Quote_attribute_values_UI_=&Quote attribute values
-Format_source_UI_=&Format source
-Convert_EOL_codes_UI_=Convert line &delimiters to
-EOL_Windows_UI=&Windows
-EOL_Unix_UI=U&NIX
-EOL_Mac_UI=&Mac
-
-# web content settings
-UI_Description_of_role_of_following_DOCTYPE=Use the following default document type when no DOCTYPE is declared in a file:
-UI_Default_HTML_DOCTYPE_ID___1=Document type:
-UI_Public_ID=Public ID:
-UI_System_ID=System ID:
-UI_none=none
-UI_CSS_profile___2=CSS profile:
-WebContentSettingsPropertyPage_0=The properties used that cannot or are not specified in web files.  The project setting is used if you specify "none."
-ProjectWebContentSettingsPropertyPage_0=The properties for J2EE Web projects act as "project" default to be looked up when no properties are specified for a particular web file.
-
-# below are possibly unused strings that may be deleted
-HTMLFilesPreferencePage_1=Add this suffix (if not specified):
-HTMLFilesPreferencePage_2=Insert DOCTYPE declaration
-HTMLFilesPreferencePage_3=Insert GENERATOR with META tag
-# above are possibly unused strings that may be deleted
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/Logger.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/Logger.java
deleted file mode 100644
index 9260013..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/Logger.java
+++ /dev/null
@@ -1,160 +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.wst.html.ui.internal;
-
-
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Small convenience class to log messages to plugin's log file and also, if
- * desired, the console. This class should only be used by classes in this
- * plugin. Other plugins should make their own copy, with appropriate ID.
- */
-public class Logger {
-	private static final String PLUGIN_ID = "org.eclipse.wst.html.ui"; //$NON-NLS-1$
-	
-	public static final int ERROR = IStatus.ERROR; // 4
-	public static final int ERROR_DEBUG = 200 + ERROR;
-	public static final int INFO = IStatus.INFO; // 1
-	public static final int INFO_DEBUG = 200 + INFO;
-
-	public static final int OK = IStatus.OK; // 0
-
-	public static final int OK_DEBUG = 200 + OK;
-
-	private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
-	public static final int WARNING = IStatus.WARNING; // 2
-	public static final int WARNING_DEBUG = 200 + WARNING;
-
-	/**
-	 * Adds message to log.
-	 * 
-	 * @param level
-	 *            severity level of the message (OK, INFO, WARNING, ERROR,
-	 *            OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
-	 * @param message
-	 *            text to add to the log
-	 * @param exception
-	 *            exception thrown
-	 */
-	protected static void _log(int level, String message, Throwable exception) {
-		if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
-			if (!isDebugging())
-				return;
-		}
-
-		int severity = IStatus.OK;
-		switch (level) {
-			case INFO_DEBUG :
-			case INFO :
-				severity = IStatus.INFO;
-				break;
-			case WARNING_DEBUG :
-			case WARNING :
-				severity = IStatus.WARNING;
-				break;
-			case ERROR_DEBUG :
-			case ERROR :
-				severity = IStatus.ERROR;
-		}
-		message = (message != null) ? message : "null"; //$NON-NLS-1$
-		Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		if (bundle != null) 
-			Platform.getLog(bundle).log(statusObj);
-	}
-
-	/**
-	 * Prints message to log if category matches /debug/tracefilter option.
-	 * 
-	 * @param message
-	 *            text to print
-	 * @param category
-	 *            category of the message, to be compared with
-	 *            /debug/tracefilter
-	 */
-	protected static void _trace(String category, String message, Throwable exception) {
-		if (isTracing(category)) {
-			message = (message != null) ? message : "null"; //$NON-NLS-1$
-			Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
-			Bundle bundle = Platform.getBundle(PLUGIN_ID);
-			if (bundle != null) 
-				Platform.getLog(bundle).log(statusObj);
-		}
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-
-	/**
-	 * Determines if currently tracing a category
-	 * 
-	 * @param category
-	 * @return true if tracing category, false otherwise
-	 */
-	public static boolean isTracing(String category) {
-		if (!isDebugging())
-			return false;
-
-		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
-		if (traceFilter != null) {
-			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				String cat = tokenizer.nextToken().trim();
-				if (category.equals(cat)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static void log(int level, String message) {
-		_log(level, message, null);
-	}
-
-	public static void log(int level, String message, Throwable exception) {
-		_log(level, message, exception);
-	}
-
-	public static void logException(String message, Throwable exception) {
-		_log(ERROR, message, exception);
-	}
-
-	public static void logException(Throwable exception) {
-		_log(ERROR, exception.getMessage(), exception);
-	}
-
-	public static void trace(String category, String message) {
-		_trace(category, message, null);
-	}
-
-	public static void traceException(String category, String message, Throwable exception) {
-		_trace(category, message, exception);
-	}
-
-	public static void traceException(String category, Throwable exception) {
-		_trace(category, exception.getMessage(), exception);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/autoedit/AutoEditStrategyForTabs.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/autoedit/AutoEditStrategyForTabs.java
deleted file mode 100644
index 0eb394c..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/autoedit/AutoEditStrategyForTabs.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*********************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- * 
- *******************************************************************************/
-
-package org.eclipse.wst.html.ui.internal.autoedit;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.ConfigurableLineTracker;
-import org.eclipse.jface.text.DocumentCommand;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ILineTracker;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorExtension3;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.ui.internal.Logger;
-
-/**
- * AutoEditStrategy to handle characters inserted when Tab key is pressed
- */
-public class AutoEditStrategyForTabs implements IAutoEditStrategy {
-	private final String TAB_CHARACTER = "\t";	//$NON-NLS-1$
-	
-	public void customizeDocumentCommand(IDocument document, DocumentCommand command) {
-		// if not in smart insert mode just ignore
-		if (!isSmartInsertMode())
-			return;
-		
-		// spaces for tab character
-		if (command.length == 0 && command.text != null && command.text.length() > 0 && command.text.indexOf(TAB_CHARACTER) != -1)
-			smartInsertForTab(command, document);
-	}
-
-	/**
-	 * Insert spaces for tabs
-	 * 
-	 * @param command
-	 */
-	private void smartInsertForTab(DocumentCommand command, IDocument document) {
-		// tab key was pressed. now check preferences to see if need to insert
-		// spaces instead of tab
-		int indentationWidth = getIndentationWidth();
-		if (indentationWidth > -1) {
-			String originalText = command.text;
-			StringBuffer newText = new StringBuffer(originalText);
-
-			// determine where in line this command begins
-			int lineOffset = -1;
-			try {
-				IRegion lineInfo = document.getLineInformationOfOffset(command.offset);
-				lineOffset = command.offset - lineInfo.getOffset();
-			} catch (BadLocationException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-
-			ILineTracker lineTracker = getLineTracker(document, originalText);
-
-			int startIndex = 0;
-			int index = newText.indexOf(TAB_CHARACTER);
-			while (index != -1) {
-				String indent = getIndentString(indentationWidth, lineOffset, lineTracker, index);
-
-				// replace \t character with spaces
-				newText.replace(index, index + 1, indent);
-				if (lineTracker != null) {
-					try {
-						lineTracker.replace(index, 1, indent);
-					} catch (BadLocationException e) {
-						// if something goes wrong with replacing text, just
-						// reset to current string
-						lineTracker.set(newText.toString());
-						Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-					}
-				}
-
-				startIndex = index + indent.length();
-				index = newText.indexOf(TAB_CHARACTER, startIndex);
-			}
-			command.text = newText.toString();
-		}
-	}
-
-	/**
-	 * Calculate number of spaces for next tab stop
-	 */
-	private String getIndentString(int indentationWidth, int lineOffset, ILineTracker lineTracker, int index) {
-		int indentSize = indentationWidth;
-		int offsetInLine = -1;
-		if (lineTracker != null) {
-			try {
-				IRegion lineInfo = lineTracker.getLineInformationOfOffset(index);
-				if (lineInfo.getOffset() == 0 && lineOffset > -1)
-					offsetInLine = lineOffset + index;
-				else
-					offsetInLine = index - lineInfo.getOffset();
-			} catch (BadLocationException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		} else {
-			if (lineOffset > -1) {
-				offsetInLine = lineOffset + index;
-			}
-		}
-		if (offsetInLine > -1 && indentationWidth > 0) {
-			int remainder = offsetInLine % indentationWidth;
-			indentSize = indentationWidth - remainder;
-		}
-
-		StringBuffer indent = new StringBuffer();
-		for (int i = 0; i < indentSize; i++)
-			indent.append(' ');
-		return indent.toString();
-	}
-
-	/**
-	 * Set up a line tracker for text within command if text is multi-line
-	 */
-	private ILineTracker getLineTracker(IDocument document, String originalText) {
-		ConfigurableLineTracker lineTracker = null;
-		int[] delims = TextUtilities.indexOf(document.getLegalLineDelimiters(), originalText, 0);
-		if (delims[0] != -1 || delims[1] != -1) {
-			lineTracker = new ConfigurableLineTracker(document.getLegalLineDelimiters());
-			lineTracker.set(originalText);
-		}
-		return lineTracker;
-	}
-	
-	/**
-	 * Return true if active editor is in smart insert mode, false otherwise
-	 * 
-	 * @return
-	 */
-	private boolean isSmartInsertMode() {
-		boolean isSmartInsertMode = false;
-		
-		ITextEditor textEditor = null;
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				IEditorPart editor = page.getActiveEditor();
-				if (editor != null) {
-					if (editor instanceof ITextEditor)
-						textEditor = (ITextEditor)editor;
-					else
-						textEditor = (ITextEditor)editor.getAdapter(ITextEditor.class);
-				}
-			}
-		}
-		
-		// check if smart insert mode
-		if (textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT)
-			isSmartInsertMode = true;
-		return isSmartInsertMode;
-	}
-	
-	/**
-	 * Returns indentation width if using spaces for indentation, -1 otherwise
-	 * 
-	 * @return
-	 */
-	private int getIndentationWidth() {
-		int width = -1;
-
-		Preferences preferences = HTMLCorePlugin.getDefault().getPluginPreferences();
-		if (HTMLCorePreferenceNames.SPACE.equals(preferences.getString(HTMLCorePreferenceNames.INDENTATION_CHAR)))
-			width = preferences.getInt(HTMLCorePreferenceNames.INDENTATION_SIZE);
-
-		return width;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/autoedit/StructuredAutoEditStrategyHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/autoedit/StructuredAutoEditStrategyHTML.java
deleted file mode 100644
index d17d678..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/autoedit/StructuredAutoEditStrategyHTML.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.autoedit;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentCommand;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorExtension3;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.w3c.dom.Node;
-
-/**
- * Automatically inserts closing comment tag or end tag when appropriate.
- */
-public class StructuredAutoEditStrategyHTML implements IAutoEditStrategy {
-	/*
-	 * NOTE: copies of this class exists in
-	 * org.eclipse.wst.xml.ui.internal.autoedit
-	 * org.eclipse.wst.html.ui.internal.autoedit
-	 */
-	public void customizeDocumentCommand(IDocument document, DocumentCommand command) {
-		Object textEditor = getActiveTextEditor();
-		if (!(textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT))
-			return;
-
-		IStructuredModel model = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (model != null) {
-				if (command.text != null) {
-					smartInsertForComment(command, document, model);
-					smartInsertForEndTag(command, document, model);
-				}
-			}
-		}
-		finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-	}
-
-	private boolean isCommentNode(IDOMNode node) {
-		return (node != null && node instanceof IDOMElement && ((IDOMElement) node).isCommentTag());
-	}
-
-	private boolean isDocumentNode(IDOMNode node) {
-		return (node != null && node.getNodeType() == Node.DOCUMENT_NODE);
-	}
-
-	private void smartInsertForComment(DocumentCommand command, IDocument document, IStructuredModel model) {
-		try {
-			if (command.text.equals("-") && document.getLength() >= 3 && document.get(command.offset - 3, 3).equals("<!-")) { //$NON-NLS-1$ //$NON-NLS-2$
-				command.text += "  -->"; //$NON-NLS-1$
-				command.shiftsCaret = false;
-				command.caretOffset = command.offset + 2;
-				command.doit = false;
-			}
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-
-	}
-
-	private void smartInsertForEndTag(DocumentCommand command, IDocument document, IStructuredModel model) {
-		try {
-			if (command.text.equals("/") && document.getLength() >= 1 && document.get(command.offset - 1, 1).equals("<")) { //$NON-NLS-1$ //$NON-NLS-2$
-				IDOMNode parentNode = (IDOMNode) ((IDOMNode) model.getIndexedRegion(command.offset - 1)).getParentNode();
-				if (isCommentNode(parentNode)) {
-					// loop and find non comment node parent
-					while (parentNode != null && isCommentNode(parentNode)) {
-						parentNode = (IDOMNode) parentNode.getParentNode();
-					}
-				}
-
-				if (!isDocumentNode(parentNode)) {
-					// only add end tag if one does not already exist or if
-					// add '/' does not create one already
-					IStructuredDocumentRegion endTagStructuredDocumentRegion = parentNode.getEndStructuredDocumentRegion();
-					if (endTagStructuredDocumentRegion == null) {
-						StringBuffer toAdd = new StringBuffer(parentNode.getNodeName());
-						if (toAdd.length() > 0) {
-							toAdd.append(">"); //$NON-NLS-1$
-							String suffix = toAdd.toString();
-							if ((document.getLength() < command.offset + suffix.length()) || (!suffix.equals(document.get(command.offset, suffix.length())))) {
-								command.text += suffix;
-							}
-						}
-					}
-				}
-			}
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-	}
-
-	/**
-	 * Return the active text editor if possible, otherwise the active editor
-	 * part.
-	 * 
-	 * @return Object
-	 */
-	private Object getActiveTextEditor() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				IEditorPart editor = page.getActiveEditor();
-				if (editor != null) {
-					if (editor instanceof ITextEditor)
-						return editor;
-					ITextEditor textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
-					if (textEditor != null)
-						return textEditor;
-					return editor;
-				}
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/CustomTemplateProposal.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/CustomTemplateProposal.java
deleted file mode 100644
index 3d08fde..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/CustomTemplateProposal.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentassist;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateProposal;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceCompletionProposal;
-
-/**
- * Purpose of this class is to make the additional proposal info into content
- * fit for an HTML viewer (by escaping characters)
- */
-class CustomTemplateProposal extends TemplateProposal implements IRelevanceCompletionProposal {
-	// copies of this class exist in:
-	// org.eclipse.jst.jsp.ui.internal.contentassist
-	// org.eclipse.wst.html.ui.internal.contentassist
-	// org.eclipse.wst.xml.ui.internal.contentassist
-
-	public CustomTemplateProposal(Template template, TemplateContext context, IRegion region, Image image, int relevance) {
-		super(template, context, region, image, relevance);
-	}
-
-	public String getAdditionalProposalInfo() {
-		String additionalInfo = super.getAdditionalProposalInfo();
-		return StringUtils.convertToHTMLContent(additionalInfo);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLContentAssistProcessor.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLContentAssistProcessor.java
deleted file mode 100644
index 5f31eaa..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLContentAssistProcessor.java
+++ /dev/null
@@ -1,488 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.wst.css.ui.internal.contentassist.CSSContentAssistProcessor;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLCMDocument;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.editor.HTMLEditorPluginImageHelper;
-import org.eclipse.wst.html.ui.internal.editor.HTMLEditorPluginImages;
-import org.eclipse.wst.html.ui.internal.preferences.HTMLUIPreferenceNames;
-import org.eclipse.wst.html.ui.internal.templates.TemplateContextTypeIdsHTML;
-import org.eclipse.wst.javascript.ui.internal.common.contentassist.JavaScriptContentAssistProcessor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.eclipse.wst.xml.ui.internal.contentassist.AbstractContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.contentassist.ContentAssistRequest;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentModelGenerator;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLRelevanceConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class HTMLContentAssistProcessor extends AbstractContentAssistProcessor implements IPropertyChangeListener {
-	private INodeAdapterFactory factoryForCSS = null;
-	protected IPreferenceStore fPreferenceStore = null;
-	protected boolean isXHTML = false;
-	private HTMLTemplateCompletionProcessor fTemplateProcessor = null;
-	private List fTemplateContexts = new ArrayList();
-
-	public HTMLContentAssistProcessor() {
-
-		super();
-	}
-
-	protected void addAttributeNameProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsHTML.ATTRIBUTE);
-		super.addAttributeNameProposals(contentAssistRequest);
-	}
-
-	protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsHTML.ATTRIBUTE_VALUE);
-		super.addAttributeValueProposals(contentAssistRequest);
-	}
-
-	/**
-	 * Add the proposals for a completely empty document
-	 */
-	protected void addEmptyDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsHTML.NEW);
-	}
-
-	protected void addPCDATAProposal(String nodeName, ContentAssistRequest contentAssistRequest) {
-		if (isXHTML)
-			super.addPCDATAProposal(nodeName, contentAssistRequest);
-	}
-
-	protected void addStartDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		if (isXHTML)
-			addEmptyDocumentProposals(contentAssistRequest);
-	}
-
-	protected void addTagInsertionProposals(ContentAssistRequest contentAssistRequest, int childPosition) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsHTML.TAG);
-		super.addTagInsertionProposals(contentAssistRequest, childPosition);
-	}
-
-	/**
-	 * Adds templates to the list of proposals
-	 * 
-	 * @param contentAssistRequest
-	 * @param context
-	 */
-	private void addTemplates(ContentAssistRequest contentAssistRequest, String context) {
-		addTemplates(contentAssistRequest, context, contentAssistRequest.getReplacementBeginPosition());
-	}
-	
-	/**
-	 * Adds templates to the list of proposals
-	 * 
-	 * @param contentAssistRequest
-	 * @param context
-	 * @param startOffset
-	 */
-	private void addTemplates(ContentAssistRequest contentAssistRequest, String context, int startOffset) {
-		if (contentAssistRequest == null)
-			return;
-		
-		// if already adding template proposals for a certain context type, do
-		// not add again
-		if (!fTemplateContexts.contains(context)) {
-			fTemplateContexts.add(context);
-			boolean useProposalList = !contentAssistRequest.shouldSeparate();
-
-			if (getTemplateCompletionProcessor() != null) {
-				getTemplateCompletionProcessor().setContextType(context);
-				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, startOffset);
-				for (int i = 0; i < proposals.length; ++i) {
-					if (useProposalList)
-						contentAssistRequest.addProposal(proposals[i]);
-					else
-						contentAssistRequest.addMacro(proposals[i]);
-				}
-			}
-		}
-	}
-
-	protected boolean beginsWith(String aString, String prefix) {
-		if (aString == null || prefix == null || prefix.length() == 0)
-			return true;
-		int minimumLength = Math.min(prefix.length(), aString.length());
-		String beginning = aString.substring(0, minimumLength);
-		return beginning.equalsIgnoreCase(prefix);
-	}
-
-	protected ContentAssistRequest computeCompletionProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
-		ContentAssistRequest request = super.computeCompletionProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-		// bug115927 use original document position for all/any region templates
-		addTemplates(request, TemplateContextTypeIdsHTML.ALL, documentPosition);
-		return request;
-	}
-
-	/**
-	 * Return a list of proposed code completions based on the specified
-	 * location within the document that corresponds to the current cursor
-	 * position within the text-editor control.
-	 * 
-	 * @param documentPosition
-	 *            a location within the document
-	 * @return an array of code-assist items
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer textViewer, int documentPosition) {
-		fTemplateContexts.clear();
-
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt((StructuredTextViewer) textViewer, documentPosition);
-		IDOMNode node = (IDOMNode) treeNode;
-		setErrorMessage(null);
-
-		// check if it's in a comment node
-		IStructuredDocument structuredDocument = (IStructuredDocument) textViewer.getDocument();
-		IStructuredDocumentRegion fn = structuredDocument.getRegionAtCharacterOffset(documentPosition);
-		if (fn != null && fn.getType() == DOMRegionContext.XML_COMMENT_TEXT && documentPosition != fn.getStartOffset()) {
-			return new ICompletionProposal[0];
-		}
-
-		// CMVC 242695
-		// if it's a </script> tag, bounce back to JS ca processor...
-		if (fn != null && fn.getType() == DOMRegionContext.XML_TAG_NAME && documentPosition == fn.getStartOffset()) {
-			ITextRegionList v = fn.getRegions();
-			if (v.size() > 1) {
-				// determine that it's a close tag
-				if ((v.get(0)).getType() == DOMRegionContext.XML_END_TAG_OPEN) {
-					Iterator it = v.iterator();
-					ITextRegion region = null;
-					// search for script tag name
-					while (it.hasNext()) {
-						region = (ITextRegion) it.next();
-						if (fn.getText(region).equalsIgnoreCase("script")) { //$NON-NLS-1$
-							// return JS content assist...
-							JavaScriptContentAssistProcessor jsProcessor = new JavaScriptContentAssistProcessor();
-							return jsProcessor.computeCompletionProposals(textViewer, documentPosition);
-						}
-					}
-				}
-			}
-		}
-
-		isXHTML = getXHTML(node);
-
-		fGenerator = null; // force reload of content generator
-
-		// handle blank HTML document case
-		if (treeNode == null || isViewerEmpty(textViewer)) {
-			// cursor is at the EOF
-			ICompletionProposal htmlTagProposal = getHTMLTagPropsosal((StructuredTextViewer) textViewer, documentPosition);
-			ICompletionProposal[] superResults = super.computeCompletionProposals(textViewer, documentPosition);
-			if (superResults != null && superResults.length > 0 && htmlTagProposal != null) {
-				ICompletionProposal[] blankHTMLDocResults = new ICompletionProposal[superResults.length + 1];
-				blankHTMLDocResults[0] = htmlTagProposal;
-				System.arraycopy(superResults, 0, blankHTMLDocResults, 1, superResults.length);
-				return blankHTMLDocResults;
-			}
-		}
-
-		if (node != null && node.getNodeType() == Node.ELEMENT_NODE) {
-
-			// check embedded CSS proposals at the beginning of the STYLE end
-			// tag
-			Element element = (Element) node;
-			String tagName = element.getTagName();
-			if (tagName != null && tagName.equalsIgnoreCase(HTML40Namespace.ATTR_NAME_STYLE)) {//$NON-NLS-1$
-				IStructuredDocumentRegion endStructuredDocumentRegion = node.getEndStructuredDocumentRegion();
-				if (endStructuredDocumentRegion != null && endStructuredDocumentRegion.getStartOffset() == documentPosition) {
-					IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-					if (startStructuredDocumentRegion != null) {
-						int offset = startStructuredDocumentRegion.getEndOffset();
-						int pos = documentPosition - offset;
-						ICompletionProposal[] proposals = getCSSProposals(textViewer, pos, node, offset, (char) 0);
-						if (proposals != null)
-							return proposals;
-					}
-				}
-			}
-
-			// check inline CSS proposals
-			// need to find attr region from sd region
-			IStructuredDocumentRegion sdRegion = ContentAssistUtils.getStructuredDocumentRegion((StructuredTextViewer) textViewer, documentPosition);
-			Iterator regions = sdRegion.getRegions().iterator();
-			ITextRegion styleNameRegion = null;
-			ITextRegion styleValueRegion = null;
-			while (regions.hasNext()) {
-				styleNameRegion = (ITextRegion) regions.next();
-				if (styleNameRegion.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) && sdRegion.getText(styleNameRegion).equalsIgnoreCase(HTML40Namespace.ATTR_NAME_STYLE)) { //$NON-NLS-1$
-					// the next region should be "="
-					if (regions.hasNext()) {
-						regions.next(); // skip the "="
-						// next region should be attr value region
-						if (regions.hasNext()) {
-							styleValueRegion = (ITextRegion) regions.next();
-							break;
-						}
-					}
-				}
-			}
-
-			if (styleValueRegion != null) {
-				int offset = sdRegion.getStartOffset(styleValueRegion);
-				int end = sdRegion.getTextEndOffset(styleValueRegion);
-				if (documentPosition >= offset && documentPosition <= end) {
-					boolean askCSS = true;
-					char quote = (char) 0;
-					String text = sdRegion.getText(styleValueRegion);
-					int length = (text != null ? text.length() : 0);
-					if (length > 0) {
-						char firstChar = text.charAt(0);
-						if (firstChar == '"' || firstChar == '\'') {
-							if (documentPosition == offset) {
-								// before quote
-								askCSS = false;
-							}
-							else {
-								offset++;
-								quote = firstChar;
-							}
-						}
-						if (documentPosition == end) {
-							if (length > 1 && text.charAt(length - 1) == quote) {
-								// after quote
-								askCSS = false;
-							}
-						}
-					}
-					if (askCSS) {
-						int pos = documentPosition - offset;
-						ICompletionProposal[] proposals = getCSSProposals(textViewer, pos, node, offset, quote);
-						if (proposals != null)
-							return proposals;
-					}
-				}
-			}
-		}
-
-		return super.computeCompletionProposals(textViewer, documentPosition);
-	}
-
-	/**
-	 * Returns true if there is no text or it's all white space, otherwise
-	 * returns false
-	 * 
-	 * @param treeNode
-	 * @param textViewer
-	 * @return boolean
-	 */
-	private boolean isViewerEmpty(ITextViewer textViewer) {
-		boolean isEmpty = false;
-		String text = textViewer.getTextWidget().getText();
-		if (text == null || (text != null && text.trim().equals(""))) //$NON-NLS-1$
-			isEmpty = true;
-		return isEmpty;
-	}
-
-	/**
-	 * @return ICompletionProposal
-	 */
-	private ICompletionProposal getHTMLTagPropsosal(StructuredTextViewer viewer, int documentPosition) {
-		IModelManager mm = StructuredModelManager.getModelManager();
-		IStructuredModel model = null;
-		ICompletionProposal result = null;
-		try {
-			if (mm != null) {
-				model = mm.getExistingModelForRead(viewer.getDocument());
-
-				if (model != null) {
-					IDOMDocument doc = ((IDOMModel) model).getDocument();
-
-					ModelQuery mq = ModelQueryUtil.getModelQuery(doc);
-					if (mq != null) {
-
-						// XHTML requires lowercase tagname for lookup
-						CMElementDeclaration htmlDecl = (CMElementDeclaration) mq.getCorrespondingCMDocument(doc).getElements().getNamedItem(HTML40Namespace.ElementName.HTML.toLowerCase());
-						if (htmlDecl != null) {
-							StringBuffer proposedTextBuffer = new StringBuffer();
-							getContentGenerator().generateTag(doc, htmlDecl, proposedTextBuffer);
-
-							String proposedText = proposedTextBuffer.toString();
-							String requiredName = getContentGenerator().getRequiredName(doc, htmlDecl);
-
-							CustomCompletionProposal proposal = new CustomCompletionProposal(proposedText, documentPosition,
-							/* start pos */
-							0, /* replace length */
-							requiredName.length() + 2, /*
-														 * cursor position
-														 * after (relavtive to
-														 * start)
-														 */
-							HTMLEditorPluginImageHelper.getInstance().getImage(HTMLEditorPluginImages.IMG_OBJ_TAG_GENERIC), requiredName, null, null, XMLRelevanceConstants.R_TAG_NAME);
-							result = proposal;
-						}
-					}
-				}
-			}
-		}
-		finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-		return result;
-	}
-
-	/**
-	 * @see AbstractContentAssistProcessor#getContentGenerator()
-	 */
-	public XMLContentModelGenerator getContentGenerator() {
-		if (fGenerator == null) {
-			if (isXHTML)
-				fGenerator = XHTMLMinimalContentModelGenerator.getInstance();
-			else
-				fGenerator = HTMLMinimalContentModelGenerator.getInstance();
-		}
-		return fGenerator;
-	}
-
-	protected ICompletionProposal[] getCSSProposals(ITextViewer viewer, int pos, IDOMNode element, int offset, char quote) {
-
-		CSSContentAssistProcessor cssProcessor = new CSSContentAssistProcessor();
-		cssProcessor.setDocumentOffset(offset);
-		cssProcessor.setQuoteCharOfStyleAttribute(quote);
-
-		return cssProcessor.computeCompletionProposals(viewer, pos);
-	}
-
-	protected String getEmptyTagCloseString() {
-		if (isXHTML)
-			return " />"; //$NON-NLS-1$
-		return ">"; //$NON-NLS-1$
-	}
-
-	private HTMLTemplateCompletionProcessor getTemplateCompletionProcessor() {
-		if (fTemplateProcessor == null) {
-			fTemplateProcessor = new HTMLTemplateCompletionProcessor();
-		}
-		return fTemplateProcessor;
-	}
-
-	/**
-	 * Determine if this Document is an XHTML Document. Oprates solely off of
-	 * the Document Type declaration
-	 */
-	protected boolean getXHTML(Node node) {
-		if (node == null)
-			return false;
-
-		Document doc = null;
-		if (node.getNodeType() != Node.DOCUMENT_NODE)
-			doc = node.getOwnerDocument();
-		else
-			doc = ((Document) node);
-
-		if (doc instanceof IDOMDocument)
-			return ((IDOMDocument) doc).isXMLType();
-
-
-		if (doc instanceof INodeNotifier) {
-			ModelQueryAdapter adapter = (ModelQueryAdapter) ((INodeNotifier) doc).getAdapterFor(ModelQueryAdapter.class);
-			CMDocument cmdoc = null;
-			if (adapter != null && adapter.getModelQuery() != null)
-				cmdoc = adapter.getModelQuery().getCorrespondingCMDocument(doc);
-			if (cmdoc != null) {
-				// treat as XHTML unless we've got the in-code HTML content
-				// model
-				if (cmdoc instanceof HTMLCMDocument)
-					return false;
-				if (cmdoc.supports(HTMLCMProperties.IS_XHTML))
-					return Boolean.TRUE.equals(cmdoc.getProperty(HTMLCMProperties.IS_XHTML));
-			}
-		}
-		// this should never be reached
-		DocumentType docType = doc.getDoctype();
-		return docType != null && docType.getPublicId() != null && docType.getPublicId().indexOf("-//W3C//DTD XHTML ") == 0; //$NON-NLS-1$
-	}
-
-	protected void init() {
-		getPreferenceStore().addPropertyChangeListener(this);
-		reinit();
-	}
-
-	protected void reinit() {
-		String key = HTMLUIPreferenceNames.AUTO_PROPOSE;
-		boolean doAuto = getPreferenceStore().getBoolean(key);
-		if (doAuto) {
-			key = HTMLUIPreferenceNames.AUTO_PROPOSE_CODE;
-			completionProposalAutoActivationCharacters = getPreferenceStore().getString(key).toCharArray();
-		}
-		else {
-			completionProposalAutoActivationCharacters = null;
-		}
-	}
-
-	public void release() {
-		if (factoryForCSS != null) {
-			factoryForCSS.release();
-		}
-		getPreferenceStore().removePropertyChangeListener(this);
-		super.release();
-	}
-
-	protected boolean stringsEqual(String a, String b) {
-		return a.equalsIgnoreCase(b);
-	}
-
-	public void propertyChange(PropertyChangeEvent event) {
-		String property = event.getProperty();
-
-		if (property.compareTo(HTMLUIPreferenceNames.AUTO_PROPOSE) == 0 || property.compareTo(HTMLUIPreferenceNames.AUTO_PROPOSE_CODE) == 0) {
-			reinit();
-		}
-	}
-
-	protected IPreferenceStore getPreferenceStore() {
-		if (fPreferenceStore == null)
-			fPreferenceStore = HTMLUIPlugin.getDefault().getPreferenceStore();
-
-		return fPreferenceStore;
-	}
-
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentPosition, IndexedRegion indexedNode, ITextRegion region) {
-		return computeCompletionProposals(viewer, documentPosition);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java
deleted file mode 100644
index f3daa1a..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLMinimalContentModelGenerator.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentassist;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentModelGenerator;
-import org.w3c.dom.Node;
-
-public class HTMLMinimalContentModelGenerator extends XMLContentModelGenerator {
-
-	private static HTMLMinimalContentModelGenerator instance = null;
-	protected int fTagCase;
-	protected int fAttrCase;
-
-	/**
-	 * HTMLMinimalContentModelGenerator constructor comment.
-	 */
-	private HTMLMinimalContentModelGenerator() {
-		super();
-	}
-
-	private void init() {
-		//IPreferenceStore prefs = CommonPreferencesPlugin.getDefault().getPreferenceStore(ContentType.ContentTypeID_HTML);
-		Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences();
-		fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE);
-		fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE);
-	}
-
-	protected void generateEndTag(String tagName, Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer) {
-		if (elementDecl == null)
-			return;
-		if (elementDecl instanceof HTMLElementDeclaration) {
-			if (((Boolean) elementDecl.getProperty(HTMLCMProperties.IS_JSP)).booleanValue()) {
-				if (elementDecl.getContentType() == CMElementDeclaration.EMPTY)
-					return;
-			}
-			else {
-				String ommission = (String) elementDecl.getProperty(HTMLCMProperties.OMIT_TYPE);
-				if (ommission.equals(HTMLCMProperties.Values.OMIT_END) || ommission.equals(HTMLCMProperties.Values.OMIT_END_DEFAULT) || ommission.equals(HTMLCMProperties.Values.OMIT_END_MUST)) {
-					return;
-				}
-			}
-		}
-
-		if (elementDecl.getContentType() == CMElementDeclaration.EMPTY)
-			return;
-		buffer.append("</" + tagName + ">"); //$NON-NLS-2$//$NON-NLS-1$
-		return;
-	}
-
-	private boolean shouldIgnoreCase(CMNode cmnode) {
-		if (!cmnode.supports(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return false;
-		return ((Boolean) cmnode.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue();
-	}
-
-	public String getRequiredName(Node ownerNode, CMNode cmnode) {
-		String name = super.getRequiredName(ownerNode, cmnode);
-		// don't change the case unless we're certain it is meaningless
-		if (shouldIgnoreCase(cmnode)) {
-			int caseVal = -1;
-			if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION)
-				caseVal = fTagCase;
-			else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION)
-				caseVal = fAttrCase;
-			switch (caseVal) {
-				case HTMLCorePreferenceNames.LOWER :
-					{
-						name = name.toLowerCase();
-					}
-					break;
-				case HTMLCorePreferenceNames.UPPER :
-					{
-						name = name.toUpperCase();
-					}
-					break;
-			}
-		}
-		return name;
-	}
-
-	public String getStartTagClose(Node parentNode, CMElementDeclaration elementDecl) {
-		String other = getOtherClose(parentNode);
-		if (other != null)
-			return other;
-		if (elementDecl == null)
-			return ">"; //$NON-NLS-1$
-		if (elementDecl instanceof HTMLElementDeclaration) {
-			if (((Boolean) elementDecl.getProperty(HTMLCMProperties.IS_JSP)).booleanValue()) {
-				if (elementDecl.getContentType() == CMElementDeclaration.EMPTY)
-					return "/>"; //$NON-NLS-1$
-			}
-			else {
-				String ommission = (String) elementDecl.getProperty(HTMLCMProperties.OMIT_TYPE);
-				if (ommission.equals(HTMLCMProperties.Values.OMIT_END) || ommission.equals(HTMLCMProperties.Values.OMIT_END_DEFAULT) || ommission.equals(HTMLCMProperties.Values.OMIT_END_MUST)) {
-					return ">"; //$NON-NLS-1$
-				}
-			}
-		}
-
-		return ">"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Gets the instance.
-	 * @return Returns a HTMLMinimalContentModelGenerator
-	 */
-	public synchronized static HTMLMinimalContentModelGenerator getInstance() {
-		if (instance == null)
-			instance = new HTMLMinimalContentModelGenerator();
-		instance.init();
-		return instance;
-	}
-
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLTemplateCompletionProcessor.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLTemplateCompletionProcessor.java
deleted file mode 100644
index 6d9d6fa..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/HTMLTemplateCompletionProcessor.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateException;
-import org.eclipse.jface.text.templates.TemplateProposal;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.editor.HTMLEditorPluginImageHelper;
-import org.eclipse.wst.html.ui.internal.editor.HTMLEditorPluginImages;
-
-
-/**
- * Completion processor for HTML Templates. Most of the work is already done
- * by the HTML Content Assist processor, so by the time the
- * HTMLTemplateCompletionProcessor is asked for content assist proposals, the
- * HTML content assist processor has already set the context type for
- * templates.
- */
-class HTMLTemplateCompletionProcessor extends TemplateCompletionProcessor {
-	private static final class ProposalComparator implements Comparator {
-		public int compare(Object o1, Object o2) {
-			return ((TemplateProposal) o2).getRelevance() - ((TemplateProposal) o1).getRelevance();
-		}
-	}
-
-	private static final Comparator fgProposalComparator = new ProposalComparator();
-	private String fContextTypeId = null;
-
-	/*
-	 * Copied from super class except instead of calling createContext(viewer,
-	 * region) call createContext(viewer, region, offset) instead
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
-
-		ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
-
-		// adjust offset to end of normalized selection
-		if (selection.getOffset() == offset)
-			offset = selection.getOffset() + selection.getLength();
-
-		String prefix = extractPrefix(viewer, offset);
-		Region region = new Region(offset - prefix.length(), prefix.length());
-		TemplateContext context = createContext(viewer, region, offset);
-		if (context == null)
-			return new ICompletionProposal[0];
-		// name of the selection variables {line, word}_selection
-		context.setVariable("selection", selection.getText()); //$NON-NLS-1$
-
-		Template[] templates = getTemplates(context.getContextType().getId());
-
-		List matches = new ArrayList();
-		for (int i = 0; i < templates.length; i++) {
-			Template template = templates[i];
-			try {
-				context.getContextType().validate(template.getPattern());
-			}
-			catch (TemplateException e) {
-				continue;
-			}
-			if (template.matches(prefix, context.getContextType().getId()))
-				matches.add(createProposal(template, context, (IRegion) region, getRelevance(template, prefix)));
-		}
-
-		Collections.sort(matches, fgProposalComparator);
-
-		return (ICompletionProposal[]) matches.toArray(new ICompletionProposal[matches.size()]);
-	}
-
-	/**
-	 * Creates a concrete template context for the given region in the
-	 * document. This involves finding out which context type is valid at the
-	 * given location, and then creating a context of this type. The default
-	 * implementation returns a <code>SmartReplaceTemplateContext</code> for
-	 * the context type at the given location. This takes the offset at which
-	 * content assist was invoked into consideration.
-	 * 
-	 * @param viewer
-	 *            the viewer for which the context is created
-	 * @param region
-	 *            the region into <code>document</code> for which the
-	 *            context is created
-	 * @param offset
-	 *            the original offset where content assist was invoked
-	 * @return a template context that can handle template insertion at the
-	 *         given location, or <code>null</code>
-	 */
-	private TemplateContext createContext(ITextViewer viewer, IRegion region, int offset) {
-		// pretty much same code as super.createContext except create
-		// SmartReplaceTemplateContext
-		TemplateContextType contextType = getContextType(viewer, region);
-		if (contextType != null) {
-			IDocument document = viewer.getDocument();
-			return new ReplaceNameTemplateContext(contextType, document, region.getOffset(), region.getLength(), offset);
-		}
-		return null;
-	}
-
-	protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) {
-		return new CustomTemplateProposal(template, context, region, getImage(template), relevance);
-	}
-
-	protected TemplateContextType getContextType(ITextViewer viewer, IRegion region) {
-		TemplateContextType type = null;
-
-		ContextTypeRegistry registry = getTemplateContextRegistry();
-		if (registry != null)
-			type = registry.getContextType(fContextTypeId);
-
-		return type;
-	}
-
-	protected Image getImage(Template template) {
-		// just return the same image for now
-		return HTMLEditorPluginImageHelper.getInstance().getImage(HTMLEditorPluginImages.IMG_OBJ_TAG_TEMPLATE);
-	}
-
-	private ContextTypeRegistry getTemplateContextRegistry() {
-		return HTMLUIPlugin.getDefault().getTemplateContextRegistry();
-	}
-
-	protected Template[] getTemplates(String contextTypeId) {
-		Template templates[] = null;
-
-		TemplateStore store = getTemplateStore();
-		if (store != null)
-			templates = store.getTemplates(contextTypeId);
-
-		return templates;
-	}
-
-	private TemplateStore getTemplateStore() {
-		return HTMLUIPlugin.getDefault().getTemplateStore();
-	}
-
-	void setContextType(String contextTypeId) {
-		fContextTypeId = contextTypeId;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/NoRegionContentAssistProcessorForHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/NoRegionContentAssistProcessorForHTML.java
deleted file mode 100644
index d4512f2..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/NoRegionContentAssistProcessorForHTML.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentassist;
-
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.wst.css.core.text.ICSSPartitions;
-import org.eclipse.wst.css.ui.internal.contentassist.CSSContentAssistProcessor;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.javascript.ui.internal.common.contentassist.JavaScriptContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.contentassist.NoRegionContentAssistProcessor;
-
-/**
- * 
- * @author pavery
- */
-public class NoRegionContentAssistProcessorForHTML extends NoRegionContentAssistProcessor {
-	protected void initPartitionToProcessorMap() {
-		
-		super.initPartitionToProcessorMap();
-		IContentAssistProcessor htmlProcessor = new HTMLContentAssistProcessor();
-		addPartitionProcessor(IHTMLPartitions.HTML_DEFAULT, htmlProcessor);
-		addPartitionProcessor(IHTMLPartitions.HTML_COMMENT, htmlProcessor);
-
-		IContentAssistProcessor jsContentAssistProcessor = new JavaScriptContentAssistProcessor();
-		addPartitionProcessor(IHTMLPartitions.SCRIPT, jsContentAssistProcessor);
-
-		IContentAssistProcessor cssContentAssistProcessor = new CSSContentAssistProcessor();
-		addPartitionProcessor(ICSSPartitions.STYLE, cssContentAssistProcessor);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/ReplaceNameTemplateContext.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/ReplaceNameTemplateContext.java
deleted file mode 100644
index eef8962..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/ReplaceNameTemplateContext.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentassist;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.templates.DocumentTemplateContext;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateException;
-
-/**
- * Just like DocumentTemplateContext except if an insert offset is passed in,
- * during evaluation, the "prefix" before the template will be checked to see
- * if it matches the template name. If so, overwrite the template name.
- * Otherwise, just insert the template at the insert offset location (by not
- * overwriting the prefix text)
- */
-public class ReplaceNameTemplateContext extends DocumentTemplateContext {
-	private int fInsertOffset = -1;
-
-	/**
-	 * Creates a document template context.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param offset
-	 *            the offset of the document region
-	 * @param length
-	 *            the length of the document region
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length) {
-		this(type, document, new Position(offset, length));
-	}
-
-	/**
-	 * Creates a document template context. The supplied <code>Position</code>
-	 * will be queried to compute the <code>getStart</code> and
-	 * <code>getEnd</code> methods, which will therefore answer updated
-	 * position data if it is registered with the document.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param position
-	 *            the position describing the area of the document which forms
-	 *            the template context
-	 * @since 3.1
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, Position position) {
-		super(type, document, position);
-	}
-
-	/**
-	 * Creates a document template context.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param offset
-	 *            the offset of the document region
-	 * @param length
-	 *            the length of the document region
-	 * @param insertOffset
-	 *            the offset of the document region where insert was
-	 *            originally requested
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length, int insertOffset) {
-		this(type, document, new Position(offset, length));
-		fInsertOffset = insertOffset;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.templates.TemplateContext#evaluate(org.eclipse.jface.text.templates.Template)
-	 */
-	public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException {
-		TemplateBuffer buffer = super.evaluate(template);
-		if (buffer != null) {
-			if (fInsertOffset > -1 && fInsertOffset > getStart()) {
-				String prefix = getDocument().get(getStart(), fInsertOffset - getStart());
-				if (!template.getName().startsWith(prefix)) {
-					// generate a new buffer that actually contains the
-					// text that was going to be overwritten
-					buffer = new TemplateBuffer(prefix + buffer.getString(), buffer.getVariables());
-				}
-			}
-		}
-		return buffer;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/XHTMLMinimalContentModelGenerator.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/XHTMLMinimalContentModelGenerator.java
deleted file mode 100644
index b6f9af7..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentassist/XHTMLMinimalContentModelGenerator.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentassist;
-
-
-
-import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentModelGenerator;
-import org.w3c.dom.Node;
-
-public class XHTMLMinimalContentModelGenerator extends XMLContentModelGenerator {
-
-	private static XHTMLMinimalContentModelGenerator instance = null;
-
-	private XHTMLMinimalContentModelGenerator() {
-		super();
-	}
-
-	protected void generateEndTag(String tagName, Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer) {
-		if (elementDecl == null)
-			return;
-		if (elementDecl instanceof HTMLElementDeclaration) {
-			if (((Boolean) elementDecl.getProperty(HTMLCMProperties.IS_JSP)).booleanValue()) {
-				if (elementDecl.getContentType() == CMElementDeclaration.EMPTY)
-					return;
-			}
-			else {
-				String ommission = (String) elementDecl.getProperty(HTMLCMProperties.OMIT_TYPE);
-				if (ommission.equals(HTMLCMProperties.Values.OMIT_END) || ommission.equals(HTMLCMProperties.Values.OMIT_END_DEFAULT) || ommission.equals(HTMLCMProperties.Values.OMIT_END_MUST)) {
-					return;
-				}
-			}
-		}
-
-		if (elementDecl.getContentType() == CMElementDeclaration.EMPTY)
-			return;
-		buffer.append("</" + tagName + ">"); //$NON-NLS-2$//$NON-NLS-1$
-		return;
-	}
-
-
-	public String getStartTagClose(Node parentNode, CMElementDeclaration elementDecl) {
-		String other = getOtherClose(parentNode);
-		if (other != null)
-			return other;
-		if (elementDecl == null)
-			return ">"; //$NON-NLS-1$
-		// EMPTY tag, do a self-close
-		if (elementDecl.getContentType() == CMElementDeclaration.EMPTY) {
-			// if it's a JSP element, don't add the space since the JSP container doesn't/shouldn't care
-			if (elementDecl instanceof HTMLElementDeclaration && (((Boolean) elementDecl.getProperty(HTMLCMProperties.IS_JSP)).booleanValue()))
-				// if it's not JSP, conform to XHTML guidelines and add the space
-				return "/>"; //$NON-NLS-1$
-			else
-				return " />"; //$NON-NLS-1$
-		}
-		// not defined as EMPTY, but should be treated as such anyway
-		else if (elementDecl instanceof HTMLElementDeclaration) {
-			String ommission = (String) elementDecl.getProperty(HTMLCMProperties.OMIT_TYPE);
-			if (ommission.equals(HTMLCMProperties.Values.OMIT_END) || ommission.equals(HTMLCMProperties.Values.OMIT_END_DEFAULT) || ommission.equals(HTMLCMProperties.Values.OMIT_END_MUST)) {
-				return " />"; //$NON-NLS-1$
-			}
-		}
-
-		return ">"; //$NON-NLS-1$
-	}
-
-	public synchronized static XHTMLMinimalContentModelGenerator getInstance() {
-		if (instance == null)
-			instance = new XHTMLMinimalContentModelGenerator();
-		return instance;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java
deleted file mode 100644
index 6da4ce2..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/HTMLNodeActionManager.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentoutline;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.wst.html.core.internal.HTMLContentBuilder;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.format.HTMLFormatProcessorImpl;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilder;
-import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * 
- */
-public class HTMLNodeActionManager extends XMLNodeActionManager {
-	protected int fTagCase;
-	protected int fAttrCase;
-
-	public HTMLNodeActionManager(IStructuredModel model, Viewer viewer) {
-		super(model, viewer);
-		updateCase();
-	}
-
-	/**
-	 * If neccessary, employ a DOMContentBuilder that understands how to
-	 * change the case of HTML tags (but NOT taglib derived tags).
-	 */
-	public DOMContentBuilder createDOMContentBuilder(Document document) {
-		DOMContentBuilder builder = null;
-		String one = fModel.getModelHandler().getAssociatedContentTypeId();
-		String modelContentTypeId = fModel.getContentTypeIdentifier();
-		if (one != modelContentTypeId) {
-			System.out.println("not equal"); //$NON-NLS-1$
-		}
-		if (modelContentTypeId.equals(ContentTypeIdForHTML.ContentTypeID_HTML))
-			builder = new HTMLContentBuilder(document);
-		else
-			builder = super.createDOMContentBuilder(document);
-
-		return builder;
-	}
-
-	private boolean shouldIgnoreCase(CMNode cmnode) {
-		if (!cmnode.supports(HTMLCMProperties.SHOULD_IGNORE_CASE))
-			return false;
-		return ((Boolean) cmnode.getProperty(HTMLCMProperties.SHOULD_IGNORE_CASE)).booleanValue();
-	}
-
-	/**
-	 * Modify the displayed menuitem label to change the case of HTML children
-	 * but neither XML nor taglib-derived children.
-	 */
-	public String getLabel(Node parent, CMNode cmnode) {
-		String result = null;
-		// CMNode cmnode = action.getCMNode();
-		// don't change the case unless we're certain it is meaningless
-		if (shouldIgnoreCase(cmnode)) {
-			String name = cmnode.getNodeName();
-			if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-				if (fTagCase == HTMLCorePreferenceNames.LOWER)
-					name = name.toLowerCase();
-				else if (fTagCase == HTMLCorePreferenceNames.UPPER)
-					name = name.toUpperCase();
-				// else do nothing
-			}
-			else if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
-				if (fAttrCase == HTMLCorePreferenceNames.LOWER)
-					name = name.toLowerCase();
-				else if (fAttrCase == HTMLCorePreferenceNames.UPPER)
-					name = name.toUpperCase();
-				// else do nothing
-			}
-			result = name;
-		}
-		else {
-			result = super.getLabel(parent, cmnode);
-		}
-
-		return result;
-	}
-
-	/**
-	 * Another HTML specific detail.
-	 */
-	protected void updateCase() {
-		if (fModel != null) {
-			String modelContentTypeId = fModel.getContentTypeIdentifier();
-			if (modelContentTypeId != null) {
-				if (modelContentTypeId.equals(ContentTypeIdForHTML.ContentTypeID_HTML)) {
-					Preferences prefs = HTMLCorePlugin.getDefault().getPluginPreferences(); //$NON-NLS-1$
-					fTagCase = prefs.getInt(HTMLCorePreferenceNames.TAG_NAME_CASE);
-					fAttrCase = prefs.getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE);
-				}
-			}
-		}
-	}
-
-	public void reformat(Node newElement, boolean deep) {
-		try {
-			// tell the model that we are about to make a big model change
-			fModel.aboutToChangeModel();
-
-			// format selected node
-			IStructuredFormatProcessor formatProcessor = new HTMLFormatProcessorImpl();
-			formatProcessor.formatNode(newElement);
-		}
-		finally {
-			// tell the model that we are done with the big model change
-			fModel.changedModel();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/JFaceNodeAdapterFactoryForHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/JFaceNodeAdapterFactoryForHTML.java
deleted file mode 100644
index 0881b05..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/JFaceNodeAdapterFactoryForHTML.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentoutline;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeAdapterFactory;
-
-/**
- * An adapter factory to create JFaceNodeAdapters.  Use this
- * adapter factory with a JFaceAdapterContentProvider to display
- * DOM nodes in a tree.
- */
-public class JFaceNodeAdapterFactoryForHTML extends JFaceNodeAdapterFactory {
-
-
-	public JFaceNodeAdapterFactoryForHTML() {
-		this(IJFaceNodeAdapter.class, true);
-	}
-
-	public JFaceNodeAdapterFactoryForHTML(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier node) {
-		if (singletonAdapter == null) {
-			// create the JFaceNodeAdapter
-			singletonAdapter = new JFaceNodeAdapterForHTML(this);
-			initAdapter(singletonAdapter, node);
-		}
-		return singletonAdapter;
-	}
-
-	public INodeAdapterFactory copy() {
-		return new JFaceNodeAdapterFactoryForHTML(getAdapterKey(), isShouldRegisterAdapter());
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/JFaceNodeAdapterForHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/JFaceNodeAdapterForHTML.java
deleted file mode 100644
index d38bcf4..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentoutline/JFaceNodeAdapterForHTML.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentoutline;
-
-
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.html.ui.internal.editor.HTMLEditorPluginImageHelper;
-import org.eclipse.wst.html.ui.internal.editor.HTMLEditorPluginImages;
-import org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeAdapter;
-import org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeAdapterFactory;
-import org.w3c.dom.Node;
-
-/**
- * Adapts a DOM node to a JFace viewer.
- */
-public class JFaceNodeAdapterForHTML extends JFaceNodeAdapter {
-
-	private Image createHTMLImage(String imageResourceName) {
-		return HTMLEditorPluginImageHelper.getInstance().getImage(imageResourceName);
-	}
-
-	/**
-	 * Constructor for JFaceNodeAdapterForHTML.
-	 * 
-	 * @param adapterFactory
-	 */
-	public JFaceNodeAdapterForHTML(JFaceNodeAdapterFactory adapterFactory) {
-		super(adapterFactory);
-	}
-
-	protected Image createImage(Object object) {
-		Image image = null;
-
-		Node node = (Node) object;
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			if (node.getNodeName().equalsIgnoreCase("table")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TABLE);
-			else if (node.getNodeName().equalsIgnoreCase("a")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_ANCHOR);
-			else if (node.getNodeName().equalsIgnoreCase("body")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_BODY);
-			else if (node.getNodeName().equalsIgnoreCase("button")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_BUTTON);
-			else if (node.getNodeName().equalsIgnoreCase("font")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_FONT);
-			else if (node.getNodeName().equalsIgnoreCase("form")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_FORM);
-			else if (node.getNodeName().equalsIgnoreCase("html")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_HTML);
-			else if (node.getNodeName().equalsIgnoreCase("img")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_IMAGE);
-			else if (node.getNodeName().equalsIgnoreCase("map")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_IMAGE_MAP);
-			else if (node.getNodeName().equalsIgnoreCase("title")) //$NON-NLS-1$
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG_TITLE);
-			else
-				image = createHTMLImage(HTMLEditorPluginImages.IMG_OBJ_TAG);
-		}
-		if (image == null) {
-			image = super.createImage(node);
-		}
-		return image;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/AbstractDeviceProfileEntry.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/AbstractDeviceProfileEntry.java
deleted file mode 100644
index b5d028d..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/AbstractDeviceProfileEntry.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.wst.html.ui.internal.contentproperties.ui;
-
-/**
- * @deprecated Not needed. See BUG118359
- */
-public class AbstractDeviceProfileEntry implements DeviceProfileEntry {
-
-	public AbstractDeviceProfileEntry() {
-		super();
-	}
-
-	public String getEntryId() {
-		return null;
-	}
-
-	public String getEntryName() {
-		return null;
-	}
-
-	public void release() {
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/AbstractDeviceProfileEntryProvider.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/AbstractDeviceProfileEntryProvider.java
deleted file mode 100644
index 44f0bc5..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/AbstractDeviceProfileEntryProvider.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentproperties.ui;
-
-import java.util.Iterator;
-
-/**
- * @deprecated Not needed.  See BUG118359
- */
-public class AbstractDeviceProfileEntryProvider implements
-		DeviceProfileEntryProvider {
-
-	public AbstractDeviceProfileEntryProvider() {
-		super();
-	}
-
-	public Iterator getDeviceProfileEntries() {
-		return null;
-	}
-
-	public void release() {
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ContentSettingsRegistry.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ContentSettingsRegistry.java
deleted file mode 100644
index 375ad6b..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ContentSettingsRegistry.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentproperties.ui;
-
-import java.util.Enumeration;
-import java.util.Iterator;
-
-import org.eclipse.wst.css.core.internal.metamodel.CSSProfile;
-import org.eclipse.wst.css.core.internal.metamodel.CSSProfileRegistry;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeEntry;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeRegistry;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
-import org.eclipse.wst.sse.ui.internal.contentproperties.ui.ComboList;
-
-/**
- * @deprecated This class only contains helper methods that you should
- *             actually implement yourself.
- */
-public final class ContentSettingsRegistry {
-
-	private static final String NONE = HTMLUIMessages.UI_none;
-
-	public static String maxLengthStringInHTMLDocumentTypeRegistry = ""; //$NON-NLS-1$
-	public static String maxLengthStringInCharacterCodeRegistry = ""; //$NON-NLS-1$
-
-	private ContentSettingsRegistry() {
-	}
-
-	public static void setHTMLDocumentTypeRegistryInto(ComboList combo) {
-		combo.add(NONE, ""); //$NON-NLS-1$
-		HTMLDocumentTypeRegistry reg = HTMLDocumentTypeRegistry.getInstance();
-		Enumeration e = reg.getEntries();
-		while (e.hasMoreElements()) {
-			HTMLDocumentTypeEntry entry = (HTMLDocumentTypeEntry) e.nextElement();
-			String publicId = entry.getPublicId();
-			String displayName = entry.getDisplayName();
-			if (displayName != null) {
-				combo.add(displayName, publicId);
-				if (displayName.length() > maxLengthStringInHTMLDocumentTypeRegistry.length())
-					maxLengthStringInHTMLDocumentTypeRegistry = displayName;
-			}
-			else
-				combo.add(publicId, publicId);
-			if (publicId.length() > maxLengthStringInHTMLDocumentTypeRegistry.length())
-				maxLengthStringInHTMLDocumentTypeRegistry = publicId;
-			if (entry.getSystemId() == null)
-				continue; // if HTML entry
-			if (entry.getSystemId().length() > maxLengthStringInHTMLDocumentTypeRegistry.length())
-				maxLengthStringInHTMLDocumentTypeRegistry = entry.getSystemId();
-		}
-
-		combo.sortByKey(1);
-	}
-
-	public static void setCSSMetaModelRegistryInto(ComboList combo) {
-		combo.add(NONE, ""); //$NON-NLS-1$
-		CSSProfileRegistry reg = CSSProfileRegistry.getInstance();
-		Iterator i = reg.getProfiles();
-		while (i.hasNext()) {
-			CSSProfile profile = (CSSProfile) i.next();
-			String id = profile.getProfileID();
-			String name = profile.getProfileName();
-			combo.add(name, id);
-		}
-		combo.sortByKey(1);
-	}
-
-	public static void setDeviceProfileRegistryInto(ComboList combo) {
-		combo.add(NONE, ""); //$NON-NLS-1$
-		DeviceProfileEntryProvider reg = DeviceProfileEntryProviderBuilder.getEntryProvider();
-		if (reg == null) {
-			return;
-		}
-		Iterator profiles = reg.getDeviceProfileEntries();
-		if (profiles == null) {
-			reg.release();
-			return;
-		}
-		DeviceProfileEntry entry;
-		while (profiles.hasNext()) {
-			entry = (DeviceProfileEntry) profiles.next();
-			combo.add(entry.getEntryName(), entry.getEntryId());
-			entry.release();
-		}
-		reg.release();
-		combo.sortByKey(1);
-	}
-
-	public static String getSystemIdFrom(String publicId) {
-		if (publicId == null || publicId.length() == 0)
-			return null;
-		HTMLDocumentTypeRegistry reg = HTMLDocumentTypeRegistry.getInstance();
-		Enumeration e = reg.getEntries();
-		while (e.hasMoreElements()) {
-			HTMLDocumentTypeEntry entry = (HTMLDocumentTypeEntry) e.nextElement();
-			if (entry.getPublicId().equals(publicId))
-				return entry.getSystemId();
-		}
-		return null;
-	}
-
-	public static void setContentTypeInto(ComboList combo) {
-		String[] type = {"", //$NON-NLS-1$
-					"application/xhtml+xml", //$NON-NLS-1$
-					"application/xml", //$NON-NLS-1$
-					"text/html", //$NON-NLS-1$
-					"text/xml",}; //$NON-NLS-1$
-		String[] displayName = {NONE, "application/xhtml+xml", //$NON-NLS-1$
-					//$NON-NLS-1$
-					"application/xml", //$NON-NLS-1$
-					"text/html", //$NON-NLS-1$
-					"text/xml",}; //$NON-NLS-1$
-		for (int i = 0; i < type.length; i++) {
-			if (displayName[i] != null && displayName[i].length() != 0)
-				combo.add(displayName[i], type[i]);
-			else
-				combo.add(type[i], type[i]);
-		}
-
-	}
-
-	public static void setCharacterCodeInto(ComboList combo) {
-		combo.add(NONE, ""); //$NON-NLS-1$
-		String max = ""; //$NON-NLS-1$
-		// CommonCharsetNames encoding = new CommonCharsetNames();
-		String[] charCode = CommonCharsetNames.getCommonCharsetNames();
-		for (int i = 0; i < charCode.length; i++) {
-			String displayName = CommonCharsetNames.getDisplayString(charCode[i]);
-			if (displayName != null && displayName.length() != 0) {
-				combo.add(displayName, charCode[i]);
-				int n_byte = displayName.getBytes().length;
-				if (max.getBytes().length < n_byte)
-					max = displayName;
-			}
-			else
-				combo.add(charCode[i], charCode[i]);
-		}
-		/*
-		 * charCode = encoding.getSupportedJavaEncodings(); for(int i=0;i<charCode.length;i++){
-		 * String displayName = encoding.getDisplayString(charCode[i]); if
-		 * (displayName!=null && displayName.length()!=0)
-		 * combo.add(displayName,charCode[i]); else
-		 * combo.add(charCode[i],charCode[i]); }
-		 */
-		// combo.sortByKey(1);
-		maxLengthStringInCharacterCodeRegistry = max;
-	}
-
-	public static void setLanguageInto(ComboList combo) {
-		String[] lang = {"", //$NON-NLS-1$
-					"java", //$NON-NLS-1$
-					"javascript",}; //$NON-NLS-1$
-		String[] displayName = {NONE, "java", //$NON-NLS-1$
-					//$NON-NLS-1$
-					"javascript",}; //$NON-NLS-1$
-		for (int i = 0; i < lang.length; i++) {
-			if (displayName[i] != null && displayName[i].length() != 0)
-				combo.add(displayName[i], lang[i]);
-			else
-				combo.add(lang[i], lang[i]);
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntry.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntry.java
deleted file mode 100644
index 0be791b..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntry.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentproperties.ui;
-
-/**
- * <p>
- * This interface is not intended to be implemented by clients directly.
- * Instead, please use abstract class(AbstractDeviceProfileEntry) instead.
- * </p>
- * 
- * @deprecated Not needed. See BUG118359
- */
-public interface DeviceProfileEntry {
-	public String getEntryId();
-
-	public String getEntryName();
-
-	public void release();
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntryProvider.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntryProvider.java
deleted file mode 100644
index 8e7260b..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntryProvider.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.wst.html.ui.internal.contentproperties.ui;
-
-import java.util.Iterator;
-
-/**
- * <p>
- * This interface is not intended to be implemented by clients directly.
- * Instead, please use abstract class(AbstractDeviceProfileEntryProvider)
- * instead.
- * </p>
- * 
- * @deprecated Not needed. See BUG118359
- */
-public interface DeviceProfileEntryProvider {
-	public Iterator getDeviceProfileEntries();
-
-	public void release();
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntryProviderBuilder.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntryProviderBuilder.java
deleted file mode 100644
index 6e5ad05..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/DeviceProfileEntryProviderBuilder.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentproperties.ui;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.Platform;
-
-/**
- * @deprecated Not needed.  See BUG118359
- */
-public class DeviceProfileEntryProviderBuilder {
-	private static final String EXTENSION_POINT_PLUGINID = "org.eclipse.wst.html.ui";  //$NON-NLS-1$
-	private static final String EXTENSION_POINT_NAME = "deviceProfileEntryProvider"; //$NON-NLS-1$
-	private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
-
-	public DeviceProfileEntryProviderBuilder() {
-		super();
-	}
-	static public DeviceProfileEntryProvider getEntryProvider() {
-		IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(EXTENSION_POINT_PLUGINID, EXTENSION_POINT_NAME);
-		if (point != null) {
-			IExtension extensions[] = point.getExtensions();
-			if ((extensions != null) && (extensions.length > 0)) {
-				for (int i = 0; i < extensions.length; i++) {
-					IConfigurationElement elements[] = extensions[i].getConfigurationElements();
-					if ((elements != null) && (elements.length > 0)) {
-						for (int j = 0; j < elements.length; j++) {
-							IConfigurationElement config = elements[j];
-							if ((config != null) && (config.getName().equals(EXTENSION_POINT_NAME) == true)) {
-								String className = config.getAttribute(ATTR_CLASS);
-								if (className != null) {
-									try {
-										DeviceProfileEntryProvider provider = (DeviceProfileEntryProvider)config.createExecutableExtension(ATTR_CLASS);
-										if (provider != null) {
-											return provider;
-										}
-									} catch (CoreException ignored) {
-									}
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/HTMLContentSettingsPropertyPage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/HTMLContentSettingsPropertyPage.java
deleted file mode 100644
index ec1fb00..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/HTMLContentSettingsPropertyPage.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentproperties.ui;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.Logger;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.internal.contentproperties.IContentSettings;
-import org.eclipse.wst.sse.ui.internal.contentproperties.ui.ComboListOnPropertyPage;
-import org.eclipse.wst.sse.ui.internal.contentproperties.ui.ContentSettingsPropertyPage;
-
-/**
- * @deprecated Use WebContentSettingsPropertyPage instead
- */
-public final class HTMLContentSettingsPropertyPage extends ContentSettingsPropertyPage implements org.eclipse.swt.events.SelectionListener {
-
-
-	private final int N_DOCUMENT_TYPE = 0;
-	private final int N_CSS_PROFILE = 1;
-	private final int N_TARGET_DEVICE = 2;
-
-	private Text publicIdText;
-	private Text systemIdText;
-
-	public HTMLContentSettingsPropertyPage() {
-		super();
-		numberOfCombo = 3;
-		numCols = 2;
-		numRows = 8;
-		combo = new ComboListOnPropertyPage[super.numberOfCombo];
-
-	}
-
-
-
-	protected void createDocumentTypeComboBox() {
-
-		// create description of implecit DOCTYPE	
-		Label label = new Label(propertyPage, SWT.LEFT);
-		label.setText(HTMLUIMessages.UI_Description_of_role_of_following_DOCTYPE);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = numCols;
-		label.setLayoutData(data);
-
-		// create combobox
-		super.combo[N_DOCUMENT_TYPE] = super.createComboBoxOf(DOCUMENT_LABEL);
-		super.combo[this.N_DOCUMENT_TYPE].addSelectionListener(this);
-		// set entry list into Combo
-		ContentSettingsRegistry.setHTMLDocumentTypeRegistryInto(combo[N_DOCUMENT_TYPE]);
-		//	create TextField
-		createIDTextField();
-		if (combo[N_DOCUMENT_TYPE].getItemCount() <= 0)
-			return;
-
-		String initValue = contentSettings.getProperty((IResource) super.getElement(), IContentSettings.HTML_DOCUMENT_TYPE);
-		// when either .contentsettings or element doesn't exist
-		// when attribute doesn't exists,getProperty returns empty string.
-		if (initValue == null)
-			initValue = ""; //$NON-NLS-1$
-		// set init selectionItem in Combo
-		super.setSelectionItem(combo[N_DOCUMENT_TYPE], initValue);
-		this.publicIdText.setText(initValue);
-		if (!initValue.equals("")) {//$NON-NLS-1$
-			// toro D210260
-			if (ContentSettingsRegistry.getSystemIdFrom(initValue) != null)
-				this.systemIdText.setText(ContentSettingsRegistry.getSystemIdFrom(initValue));
-			else
-				this.systemIdText.setText("");//$NON-NLS-1$
-		}
-		else
-			this.systemIdText.setText("");//$NON-NLS-1$
-
-		// create separator
-		label = new Label(propertyPage, SWT.SEPARATOR | SWT.HORIZONTAL);
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = numCols;
-		data.verticalSpan = 8;
-		label.setLayoutData(data);
-
-	}
-
-
-
-	protected void createCSSComboBox() {
-		super.combo[N_CSS_PROFILE] = super.createComboBoxOf(CSS_LABEL);
-
-		ContentSettingsRegistry.setCSSMetaModelRegistryInto(combo[N_CSS_PROFILE]);
-		if (combo[N_CSS_PROFILE].getItemCount() <= 0)
-			return;
-		String initValue = contentSettings.getProperty((IResource) super.getElement(), IContentSettings.CSS_PROFILE);
-		// when either .contentsettings or element doesn't exist
-		// when attribute doesn't exists,getProperty returns empty string.
-		if (initValue == null)
-			initValue = ""; //$NON-NLS-1$
-		// set init selectionItem in Combo
-		super.setSelectionItem(combo[N_CSS_PROFILE], initValue);
-	}
-
-
-
-	protected void createDeviceComboBox() {
-		super.combo[N_TARGET_DEVICE] = super.createComboBoxOf(DEVICE_LABEL);
-
-		ContentSettingsRegistry.setDeviceProfileRegistryInto(combo[N_TARGET_DEVICE]);
-		if (combo[N_TARGET_DEVICE].getItemCount() <= 0)
-			return;
-		String initValue = contentSettings.getProperty((IResource) super.getElement(), IContentSettings.DEVICE_PROFILE);
-		// when either .contentsettings or element doesn't exist
-		// when attribute doesn't exists,getProperty returns empty string.
-		if (initValue == null)
-			initValue = ""; //$NON-NLS-1$
-		// set init selectionItem in Combo
-		super.setSelectionItem(combo[N_TARGET_DEVICE], initValue);
-	}
-
-
-	protected void createSettingsPageGUI() {
-		int type = ((IResource) getElement()).getType();
-		switch (type) {
-			case IResource.FILE :
-				//	composite = createComposite(propertyPage,numCols,numRows);
-				createDocumentTypeComboBox();
-				createCSSComboBox();
-				createDeviceComboBox();
-				computeMaxWidthHint();
-				PlatformUI.getWorkbench().getHelpSystem().setHelp(propertyPage, IHelpContextIds.WEB_CONTENT_SETTINGS_HELPID);
-				break;
-
-			default :
-				Logger.log(Logger.WARNING, "HTMLContentSettingsPropertyPage is instantiated by resource except FILE");//$NON-NLS-1$
-				break;
-		}
-
-	}
-
-
-
-	protected void putSelectedPropertyInto(Map properties, String valueInCombo, int index) {
-
-		switch (index) {
-			case N_DOCUMENT_TYPE :
-				// doc type
-				properties.put(IContentSettings.HTML_DOCUMENT_TYPE, valueInCombo);
-				break;
-			case N_CSS_PROFILE :
-				// css
-				properties.put(IContentSettings.CSS_PROFILE, valueInCombo);
-				break;
-			case N_TARGET_DEVICE :
-				// device
-				properties.put(IContentSettings.DEVICE_PROFILE, valueInCombo);
-				break;
-			default :
-				Logger.log(Logger.ERROR, "Index is out of range in putSelectedPropertyInto() in class HTMLContentSettingsPropertyPage");//$NON-NLS-1$
-				break;
-		}
-
-	}
-
-	protected void deleteNoneProperty(int index) {
-		switch (index) {
-			case N_DOCUMENT_TYPE :
-				// doc type
-				contentSettings.deleteProperty((IResource) super.getElement(), IContentSettings.HTML_DOCUMENT_TYPE);
-				break;
-			case N_CSS_PROFILE :
-				// css
-				contentSettings.deleteProperty((IResource) super.getElement(), IContentSettings.CSS_PROFILE);
-				break;
-			case N_TARGET_DEVICE :
-				// device
-				contentSettings.deleteProperty((IResource) super.getElement(), IContentSettings.DEVICE_PROFILE);
-				break;
-			default :
-				Logger.log(Logger.ERROR, "Index is out of range in deleteNoneProperty() in class HTMLContentSettingsPropertyPage");//$NON-NLS-1$
-				break;
-		}
-	}
-
-	private void createIDTextField() {
-		// public ID & System ID
-		Label publicLabel = new Label(super.propertyPage, SWT.NONE);
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL);
-		data.horizontalIndent = 10;
-		publicLabel.setLayoutData(data);
-		publicLabel.setText(HTMLUIMessages.UI_Public_ID);
-		publicIdText = new Text(super.propertyPage, SWT.BORDER | SWT.READ_ONLY);
-		data = new GridData();
-
-		publicIdText.setLayoutData(data);
-
-		Label systemLabel = new Label(super.propertyPage, SWT.NONE);
-		data = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL);
-		data.horizontalIndent = 10;
-		systemLabel.setLayoutData(data);
-		systemLabel.setText(HTMLUIMessages.UI_System_ID);
-		systemIdText = new Text(super.propertyPage, SWT.BORDER | SWT.READ_ONLY);
-		data = new GridData();
-
-		systemIdText.setLayoutData(data);
-	}
-
-
-
-	private void computeMaxWidthHint() {
-		// maxLengthString was set when HTMLDocumentTypeEntry was set in class ContentSettingsRegistry.
-		String maxLengthString = ContentSettingsRegistry.maxLengthStringInHTMLDocumentTypeRegistry;
-		String backup = this.systemIdText.getText();
-		this.systemIdText.setText(maxLengthString);
-		int maxWidthHint = this.systemIdText.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
-		this.systemIdText.setText(backup);
-
-		if (this.combo[this.N_DOCUMENT_TYPE].getLayoutData() != null)
-			((GridData) this.combo[this.N_DOCUMENT_TYPE].getLayoutData()).widthHint = maxWidthHint;
-		if (this.publicIdText.getLayoutData() != null)
-			((GridData) this.publicIdText.getLayoutData()).widthHint = maxWidthHint;
-		if (this.systemIdText.getLayoutData() != null)
-			((GridData) this.systemIdText.getLayoutData()).widthHint = maxWidthHint;
-		if (this.combo[this.N_CSS_PROFILE].getLayoutData() != null)
-			((GridData) this.combo[this.N_CSS_PROFILE].getLayoutData()).widthHint = maxWidthHint;
-		if (this.combo[this.N_TARGET_DEVICE].getLayoutData() != null)
-			((GridData) this.combo[this.N_TARGET_DEVICE].getLayoutData()).widthHint = maxWidthHint;
-
-	}
-
-
-	public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
-	}
-
-	public void widgetSelected(org.eclipse.swt.events.SelectionEvent event) {
-		Widget source = event.widget;
-
-		if (this.combo[this.N_DOCUMENT_TYPE].equals(source)) {
-			ComboListOnPropertyPage combo = this.combo[this.N_DOCUMENT_TYPE];
-			if (combo.getSelectionIndex() < 0)
-				return;
-			if (!combo.getSelectedValue().equals("")) {//$NON-NLS-1$
-				this.publicIdText.setText(combo.getSelectedValue());
-				if (ContentSettingsRegistry.getSystemIdFrom(combo.getSelectedValue()) != null)
-					this.systemIdText.setText(ContentSettingsRegistry.getSystemIdFrom(combo.getSelectedValue()));
-				else
-					this.systemIdText.setText("");//$NON-NLS-1$
-			}
-			else {
-				this.publicIdText.setText("");//$NON-NLS-1$
-				this.systemIdText.setText(""); //$NON-NLS-1$
-			}
-
-		}
-	}
-
-	protected void performDefaults() {
-		super.performDefaults();
-		this.publicIdText.setText("");//$NON-NLS-1$
-		this.systemIdText.setText(""); //$NON-NLS-1$
-
-	}
-
-
-}
-
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ProjectContentSettingsPropertyPage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ProjectContentSettingsPropertyPage.java
deleted file mode 100644
index 5188e05..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ProjectContentSettingsPropertyPage.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentproperties.ui;
-
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.Logger;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.internal.contentproperties.IContentSettings;
-import org.eclipse.wst.sse.ui.internal.contentproperties.ui.ComboListOnPropertyPage;
-import org.eclipse.wst.sse.ui.internal.contentproperties.ui.ContentSettingsPropertyPage;
-
-/**
- * @deprecated Use ProjectHTMLContentSettingsPropertyPage instead
- */
-public final class ProjectContentSettingsPropertyPage extends ContentSettingsPropertyPage implements org.eclipse.swt.events.SelectionListener {
-
-
-	private final int N_DOCUMENT_TYPE = 0;
-	private final int N_CSS_PROFILE = 1;
-	private final int N_TARGET_DEVICE = 2;
-
-	private Text publicIdText;
-	private Text systemIdText;
-
-	public ProjectContentSettingsPropertyPage() {
-		super();
-		numberOfCombo = 3;
-		numCols = 2;
-		numRows = 8;
-		combo = new ComboListOnPropertyPage[super.numberOfCombo];
-
-	}
-
-
-
-	protected void createDocumentTypeComboBox() {
-
-		// create description of implecit DOCTYPE
-		Label label = new Label(propertyPage, SWT.LEFT);
-		label.setText(HTMLUIMessages.UI_Description_of_role_of_following_DOCTYPE);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = numCols;
-		label.setLayoutData(data);
-
-		// create combobox
-		super.combo[N_DOCUMENT_TYPE] = super.createComboBoxOf(DOCUMENT_LABEL);
-		super.combo[this.N_DOCUMENT_TYPE].addSelectionListener(this);
-		// set entry list into Combo
-		ContentSettingsRegistry.setHTMLDocumentTypeRegistryInto(combo[N_DOCUMENT_TYPE]);
-		// create TextField
-		createIDTextField();
-		if (combo[N_DOCUMENT_TYPE].getItemCount() <= 0)
-			return;
-
-		String initValue = contentSettings.getProperty((IResource) super.getElement(), IContentSettings.HTML_DOCUMENT_TYPE);
-		// when either .contentsettings or element doesn't exist
-		// when attribute doesn't exists,getProperty returns empty string.
-		if (initValue == null)
-			initValue = ""; //$NON-NLS-1$
-		// set init selectionItem in Combo
-		super.setSelectionItem(combo[N_DOCUMENT_TYPE], initValue);
-		this.publicIdText.setText(initValue);
-		if (!initValue.equals("")) {//$NON-NLS-1$
-			// toro D210260
-			if (ContentSettingsRegistry.getSystemIdFrom(initValue) != null)
-				this.systemIdText.setText(ContentSettingsRegistry.getSystemIdFrom(initValue));
-			else
-				this.systemIdText.setText("");//$NON-NLS-1$
-		}
-		else
-			this.systemIdText.setText("");//$NON-NLS-1$
-
-		// create separator
-		label = new Label(propertyPage, SWT.SEPARATOR | SWT.HORIZONTAL);
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = numCols;
-		data.verticalSpan = 8;
-		label.setLayoutData(data);
-
-	}
-
-
-
-	protected void createCSSComboBox() {
-		super.combo[N_CSS_PROFILE] = super.createComboBoxOf(CSS_LABEL);
-
-		ContentSettingsRegistry.setCSSMetaModelRegistryInto(combo[N_CSS_PROFILE]);
-		if (combo[N_CSS_PROFILE].getItemCount() <= 0)
-			return;
-		String initValue = contentSettings.getProperty((IResource) super.getElement(), IContentSettings.CSS_PROFILE);
-		// when either .contentsettings or element doesn't exist
-		// when attribute doesn't exists,getProperty returns empty string.
-		if (initValue == null)
-			initValue = ""; //$NON-NLS-1$
-		// set init selectionItem in Combo
-		super.setSelectionItem(combo[N_CSS_PROFILE], initValue);
-	}
-
-
-
-	protected void createDeviceComboBox() {
-		super.combo[N_TARGET_DEVICE] = super.createComboBoxOf(DEVICE_LABEL);
-
-		ContentSettingsRegistry.setDeviceProfileRegistryInto(combo[N_TARGET_DEVICE]);
-		if (combo[N_TARGET_DEVICE].getItemCount() <= 0)
-			return;
-		String initValue = contentSettings.getProperty((IResource) super.getElement(), IContentSettings.DEVICE_PROFILE);
-		// when either .contentsettings or element doesn't exist
-		// when attribute doesn't exists,getProperty returns empty string.
-		if (initValue == null)
-			initValue = ""; //$NON-NLS-1$
-		// set init selectionItem in Combo
-		super.setSelectionItem(combo[N_TARGET_DEVICE], initValue);
-	}
-
-
-	protected void createSettingsPageGUI() {
-		int type = ((IResource) getElement()).getType();
-		switch (type) {
-			case IResource.PROJECT :
-				// composite = createComposite(propertyPage,numCols,numRows);
-				createDocumentTypeComboBox();
-				createCSSComboBox();
-				createDeviceComboBox();
-				computeMaxWidthHint();
-				PlatformUI.getWorkbench().getHelpSystem().setHelp(propertyPage, IHelpContextIds.WEB_CONTENT_SETTINGS_HELPID);
-				break;
-
-			default :
-				Logger.log(Logger.WARNING, "ProjectContentSettingsPropertyPage is instantiated by resource except PROJECT");//$NON-NLS-1$
-				break;
-		}
-
-	}
-
-
-
-	protected void putSelectedPropertyInto(Map properties, String valueInCombo, int index) {
-
-		switch (index) {
-			case N_DOCUMENT_TYPE :
-				// doc type
-				properties.put(IContentSettings.HTML_DOCUMENT_TYPE, valueInCombo);
-				break;
-			case N_CSS_PROFILE :
-				// css
-				properties.put(IContentSettings.CSS_PROFILE, valueInCombo);
-				break;
-			case N_TARGET_DEVICE :
-				// device
-				properties.put(IContentSettings.DEVICE_PROFILE, valueInCombo);
-				break;
-			default :
-				Logger.log(Logger.ERROR, "Index is out of range in putSelectedPropertyInto() in class ProjectContentSettingsPropertyPage");//$NON-NLS-1$
-				break;
-		}
-
-	}
-
-	protected void deleteNoneProperty(int index) {
-		switch (index) {
-			case N_DOCUMENT_TYPE :
-				// doc type
-				contentSettings.deleteProperty((IResource) super.getElement(), IContentSettings.HTML_DOCUMENT_TYPE);
-				break;
-
-			case N_CSS_PROFILE :
-				// css
-				contentSettings.deleteProperty((IResource) super.getElement(), IContentSettings.CSS_PROFILE);
-				break;
-
-			case N_TARGET_DEVICE :
-				// device
-				contentSettings.deleteProperty((IResource) super.getElement(), IContentSettings.DEVICE_PROFILE);
-				break;
-
-			default :
-				Logger.log(Logger.ERROR, "Index is out of range in deleteNoneProperty() in class ProjectContentSettingsPropertyPage");//$NON-NLS-1$
-				break;
-		}
-	}
-
-	private void createIDTextField() {
-		// public ID & System ID
-		Label publicLabel = new Label(super.propertyPage, SWT.NONE);
-		GridData data = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL);
-		data.horizontalIndent = 10;
-		publicLabel.setLayoutData(data);
-		publicLabel.setText(HTMLUIMessages.UI_Public_ID);
-		publicIdText = new Text(super.propertyPage, SWT.BORDER | SWT.READ_ONLY);
-		data = new GridData();
-
-		publicIdText.setLayoutData(data);
-
-		Label systemLabel = new Label(super.propertyPage, SWT.NONE);
-		data = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_HORIZONTAL);
-		data.horizontalIndent = 10;
-		systemLabel.setLayoutData(data);
-		systemLabel.setText(HTMLUIMessages.UI_System_ID);
-		systemIdText = new Text(super.propertyPage, SWT.BORDER | SWT.READ_ONLY);
-		data = new GridData();
-
-		systemIdText.setLayoutData(data);
-	}
-
-
-
-	private void computeMaxWidthHint() {
-		// maxLengthString was set when HTMLDocumentTypeEntry was set in class
-		// ContentSettingsRegistry.
-		String maxLengthString = ContentSettingsRegistry.maxLengthStringInHTMLDocumentTypeRegistry;
-		String backup = this.systemIdText.getText();
-		this.systemIdText.setText(maxLengthString);
-		int maxWidthHint = this.systemIdText.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
-		this.systemIdText.setText(backup);
-
-		if (this.combo[this.N_DOCUMENT_TYPE].getLayoutData() != null)
-			((GridData) this.combo[this.N_DOCUMENT_TYPE].getLayoutData()).widthHint = maxWidthHint;
-		if (this.publicIdText.getLayoutData() != null)
-			((GridData) this.publicIdText.getLayoutData()).widthHint = maxWidthHint;
-		if (this.systemIdText.getLayoutData() != null)
-			((GridData) this.systemIdText.getLayoutData()).widthHint = maxWidthHint;
-		if (this.combo[this.N_CSS_PROFILE].getLayoutData() != null)
-			((GridData) this.combo[this.N_CSS_PROFILE].getLayoutData()).widthHint = maxWidthHint;
-		if (this.combo[this.N_TARGET_DEVICE].getLayoutData() != null)
-			((GridData) this.combo[this.N_TARGET_DEVICE].getLayoutData()).widthHint = maxWidthHint;
-
-	}
-
-
-	public void widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent e) {
-	}
-
-	public void widgetSelected(org.eclipse.swt.events.SelectionEvent event) {
-		Widget source = event.widget;
-
-		if (this.combo[this.N_DOCUMENT_TYPE].equals(source)) {
-			ComboListOnPropertyPage combo = this.combo[this.N_DOCUMENT_TYPE];
-			if (combo.getSelectionIndex() < 0)
-				return;
-			if (!combo.getSelectedValue().equals("")) {//$NON-NLS-1$
-				this.publicIdText.setText(combo.getSelectedValue());
-				if (ContentSettingsRegistry.getSystemIdFrom(combo.getSelectedValue()) != null)
-					this.systemIdText.setText(ContentSettingsRegistry.getSystemIdFrom(combo.getSelectedValue()));
-				else
-					this.systemIdText.setText("");//$NON-NLS-1$
-			}
-			else {
-				this.publicIdText.setText("");//$NON-NLS-1$
-				this.systemIdText.setText(""); //$NON-NLS-1$
-			}
-
-		}
-	}
-
-	protected void performDefaults() {
-		super.performDefaults();
-		this.publicIdText.setText("");//$NON-NLS-1$
-		this.systemIdText.setText(""); //$NON-NLS-1$
-
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ProjectWebContentSettingsPropertyPage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ProjectWebContentSettingsPropertyPage.java
deleted file mode 100644
index 6ccbe4c..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/ProjectWebContentSettingsPropertyPage.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentproperties.ui;
-
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-
-public class ProjectWebContentSettingsPropertyPage extends WebContentSettingsPropertyPage {
-	public ProjectWebContentSettingsPropertyPage() {
-		setDescription(HTMLUIMessages.ProjectWebContentSettingsPropertyPage_0);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/WebContentSettingsPropertyPage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/WebContentSettingsPropertyPage.java
deleted file mode 100644
index 4bd999c..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/contentproperties/ui/WebContentSettingsPropertyPage.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.contentproperties.ui;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.wst.css.core.internal.contentproperties.CSSContentProperties;
-import org.eclipse.wst.css.core.internal.metamodel.CSSProfile;
-import org.eclipse.wst.css.core.internal.metamodel.CSSProfileRegistry;
-import org.eclipse.wst.html.core.internal.contentproperties.HTMLContentProperties;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeEntry;
-import org.eclipse.wst.html.core.internal.document.HTMLDocumentTypeRegistry;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.Logger;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-
-public class WebContentSettingsPropertyPage extends PropertyPage {
-	private static final String SELECT_NONE = HTMLUIMessages.UI_none;
-	private String maxLengthStringInHTMLDocumentTypeRegistry = ""; //$NON-NLS-1$
-
-	private class ComboSelectionListener implements SelectionListener {
-		public void widgetDefaultSelected(SelectionEvent e) {
-			// do nothing
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			int index = fDocumentTypeCombo.getSelectionIndex();
-			String doctype = (String) fDocumentTypeIds.get(index);
-			updateDoctypeText(index, doctype);
-		}
-	}
-
-	Combo fDocumentTypeCombo;
-	List fDocumentTypeIds;
-	private Text fPublicIdText;
-	private Text fSystemIdText;
-	private Combo fProfileCombo;
-	private List fProfileIds;
-	private SelectionListener fListener;
-
-	public WebContentSettingsPropertyPage() {
-		super();
-		setDescription(HTMLUIMessages.WebContentSettingsPropertyPage_0);
-	}
-
-	private Composite createComposite(Composite parent, int numColumns) {
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		// GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		composite.setLayout(layout);
-
-		// GridData
-		GridData data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		composite.setLayoutData(data);
-
-		return composite;
-	}
-
-	protected Control createContents(Composite parent) {
-		Composite propertyPage = createComposite(parent, 2);
-
-		createDoctypeContents(propertyPage);
-		createCSSProfileContents(propertyPage);
-
-		populateValues();
-		initializeValues();
-		computeMaxWidthHint();
-
-		fListener = new ComboSelectionListener();
-		fDocumentTypeCombo.addSelectionListener(fListener);
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(propertyPage, IHelpContextIds.WEB_CONTENT_SETTINGS_HELPID);
-		return propertyPage;
-	}
-
-	private void createCSSProfileContents(Composite parent) {
-		// CSS Profile
-		Text languageLabel = new Text(parent, SWT.READ_ONLY);
-		languageLabel.setText(HTMLUIMessages.UI_CSS_profile___2);
-		fProfileCombo = new Combo(parent, SWT.READ_ONLY);
-		GridData data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		fProfileCombo.setLayoutData(data);
-	}
-
-	private void createDoctypeContents(Composite parent) {
-		// create description of implicit DOCTYPE
-		Text doctypeLabel = new Text(parent, SWT.READ_ONLY);
-		doctypeLabel.setText(HTMLUIMessages.UI_Description_of_role_of_following_DOCTYPE);
-		GridData data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		data.horizontalSpan = 2;
-		doctypeLabel.setLayoutData(data);
-
-		// document type
-		Text languageLabel = new Text(parent, SWT.READ_ONLY);
-		languageLabel.setText(HTMLUIMessages.UI_Default_HTML_DOCTYPE_ID___1);
-		fDocumentTypeCombo = new Combo(parent, SWT.READ_ONLY);
-		data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		fDocumentTypeCombo.setLayoutData(data);
-
-		// public ID
-		Text publicIdLabel = new Text(parent, SWT.READ_ONLY);
-		publicIdLabel.setText(HTMLUIMessages.UI_Public_ID);
-		fPublicIdText = new Text(parent, SWT.READ_ONLY | SWT.BORDER);
-		data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		fPublicIdText.setLayoutData(data);
-
-		// system ID
-		Text systemIdLabel = new Text(parent, SWT.READ_ONLY);
-		systemIdLabel.setText(HTMLUIMessages.UI_System_ID);
-		fSystemIdText = new Text(parent, SWT.READ_ONLY | SWT.BORDER);
-		data = new GridData(GridData.FILL, GridData.FILL, true, false);
-		data.horizontalIndent = 0;
-		fSystemIdText.setLayoutData(data);
-
-		// create separator
-		Label label = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-		data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = 2;
-		data.verticalSpan = 8;
-		label.setLayoutData(data);
-	}
-
-	/**
-	 * Get the resource this properties page is for
-	 * 
-	 * @return IResource for this properties page or null if there is no
-	 *         IResource
-	 */
-	private IResource getResource() {
-		IResource resource = null;
-		if (getElement() instanceof IResource) {
-			resource = (IResource) getElement();
-		}
-		return resource;
-	}
-
-	private String getSystemIdFrom(String publicId) {
-		if (publicId == null || publicId.length() == 0)
-			return null;
-		HTMLDocumentTypeRegistry reg = HTMLDocumentTypeRegistry.getInstance();
-		Enumeration e = reg.getEntries();
-		while (e.hasMoreElements()) {
-			HTMLDocumentTypeEntry entry = (HTMLDocumentTypeEntry) e.nextElement();
-			if (entry.getPublicId().equals(publicId))
-				return entry.getSystemId();
-		}
-		return null;
-	}
-
-	private void initializeValues() {
-		initializeDoctypeValues();
-		initializeCSSProfileValues();
-	}
-
-	private void initializeCSSProfileValues() {
-		int index = 0;
-		String profile = CSSContentProperties.getProperty(CSSContentProperties.CSS_PROFILE, getResource(), false);
-		if (profile != null && profile.length() > 0) {
-			/*
-			 * If item is already part of combo, select it. Otherwise, select
-			 * none.
-			 */
-			index = fProfileIds.indexOf(profile);
-		}
-		index = index >= 0 ? index : 0;
-		fProfileCombo.select(index);
-	}
-
-	private void initializeDoctypeValues() {
-		int index = 0;
-		String doctype = HTMLContentProperties.getProperty(HTMLContentProperties.DOCUMENT_TYPE, getResource(), false);
-		if (doctype != null && doctype.length() > 0) {
-			/*
-			 * If item is already part of combo, select it. Otherwise, select
-			 * none.
-			 */
-			index = fDocumentTypeIds.indexOf(doctype);
-		}
-
-		// set combobox
-		index = index >= 0 ? index : 0;
-		fDocumentTypeCombo.select(index);
-
-		updateDoctypeText(index, doctype);
-	}
-
-	void updateDoctypeText(int index, String doctype) {
-		if (index > 0) {
-			// set public/system id text
-			fPublicIdText.setText(doctype);
-			String systemId = getSystemIdFrom(doctype);
-			if (systemId != null)
-				fSystemIdText.setText(systemId);
-			else
-				fSystemIdText.setText(""); //$NON-NLS-1$
-		}
-		else {
-			// set public/system id text
-			fPublicIdText.setText(""); //$NON-NLS-1$
-			fSystemIdText.setText(""); //$NON-NLS-1$
-		}
-	}
-
-	private void populateValues() {
-		populateDoctypeValues();
-		populateCSSProfileValues();
-	}
-
-	private void populateCSSProfileValues() {
-		fProfileIds = new ArrayList();
-		// add none first
-		fProfileCombo.add(SELECT_NONE);
-		fProfileIds.add(null);
-
-		CSSProfileRegistry reg = CSSProfileRegistry.getInstance();
-		Iterator i = reg.getProfiles();
-		while (i.hasNext()) {
-			CSSProfile profile = (CSSProfile) i.next();
-			String id = profile.getProfileID();
-			String name = profile.getProfileName();
-			fProfileCombo.add(name);
-			fProfileIds.add(id);
-		}
-	}
-
-	private void populateDoctypeValues() {
-		fDocumentTypeIds = new ArrayList();
-		// add none first
-		fDocumentTypeCombo.add(SELECT_NONE);
-		fDocumentTypeIds.add(null);
-
-		HTMLDocumentTypeRegistry reg = HTMLDocumentTypeRegistry.getInstance();
-		Enumeration e = reg.getEntries();
-		while (e.hasMoreElements()) {
-			HTMLDocumentTypeEntry entry = (HTMLDocumentTypeEntry) e.nextElement();
-			String publicId = entry.getPublicId();
-			String displayName = entry.getDisplayName();
-			displayName = displayName != null ? displayName : publicId;
-
-			fDocumentTypeCombo.add(displayName);
-			fDocumentTypeIds.add(publicId);
-
-			if (displayName.length() > maxLengthStringInHTMLDocumentTypeRegistry.length()) {
-				maxLengthStringInHTMLDocumentTypeRegistry = displayName;
-			}
-
-			if (entry.getSystemId() == null)
-				continue; // if HTML entry
-
-
-			if (entry.getSystemId().length() > maxLengthStringInHTMLDocumentTypeRegistry.length())
-				maxLengthStringInHTMLDocumentTypeRegistry = entry.getSystemId();
-		}
-	}
-
-	private void computeMaxWidthHint() {
-		// maxLengthString was set populateDoctypeValues was called
-		String maxLengthString = maxLengthStringInHTMLDocumentTypeRegistry;
-		String backup = fSystemIdText.getText();
-		fSystemIdText.setText(maxLengthString);
-		int maxWidthHint = fSystemIdText.computeSize(SWT.DEFAULT, SWT.DEFAULT).x;
-		fSystemIdText.setText(backup);
-
-		if (fDocumentTypeCombo.getLayoutData() != null)
-			((GridData) fDocumentTypeCombo.getLayoutData()).widthHint = maxWidthHint;
-		if (fPublicIdText.getLayoutData() != null)
-			((GridData) fPublicIdText.getLayoutData()).widthHint = maxWidthHint;
-		if (fSystemIdText.getLayoutData() != null)
-			((GridData) fSystemIdText.getLayoutData()).widthHint = maxWidthHint;
-		if (fProfileCombo.getLayoutData() != null)
-			((GridData) fProfileCombo.getLayoutData()).widthHint = maxWidthHint;
-	}
-
-	private void performCSSProfileDefaults() {
-		int index = fProfileCombo.indexOf(SELECT_NONE);
-		if (index > -1)
-			fProfileCombo.select(index);
-
-		super.performDefaults();
-	}
-
-	private boolean performCSSProfileOk() {
-		int index = fProfileCombo.getSelectionIndex();
-		if (index > -1) {
-			String id = (String) fProfileIds.get(index);
-			if (id == null || id.length() == 0 || id.equalsIgnoreCase(SELECT_NONE)) {
-				// if none, use null
-				id = null;
-			}
-			try {
-				CSSContentProperties.setProperty(CSSContentProperties.CSS_PROFILE, getResource(), id);
-			}
-			catch (CoreException e) {
-				// maybe in future, let user know there was a problem saving
-				// file
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-		return true;
-	}
-
-	protected void performDefaults() {
-		super.performDefaults();
-
-		performDoctypeDefaults();
-		performCSSProfileDefaults();
-	}
-
-	private void performDoctypeDefaults() {
-		fPublicIdText.setText("");//$NON-NLS-1$
-		fSystemIdText.setText(""); //$NON-NLS-1$
-	}
-
-	private boolean performDoctypeOk() {
-		int index = fDocumentTypeCombo.getSelectionIndex();
-		if (index > -1) {
-			String id = (String) fDocumentTypeIds.get(index);
-			if (id == null || id.length() == 0 || id.equalsIgnoreCase(SELECT_NONE)) {
-				// if none, use null
-				id = null;
-			}
-			try {
-				HTMLContentProperties.setProperty(HTMLContentProperties.DOCUMENT_TYPE, getResource(), id);
-			}
-			catch (CoreException e) {
-				// maybe in future, let user know there was a problem saving
-				// file
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-		return true;
-	}
-
-	public boolean performOk() {
-		performDoctypeOk();
-		performCSSProfileOk();
-
-		return super.performOk();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/correction/CorrectionAssistantProviderHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/correction/CorrectionAssistantProviderHTML.java
deleted file mode 100644
index acc458a..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/correction/CorrectionAssistantProviderHTML.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*********************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- * 
- *******************************************************************************/
-
-package org.eclipse.wst.html.ui.internal.correction;
-
-import org.eclipse.jface.text.contentassist.ContentAssistant;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.sse.ui.internal.correction.CorrectionAssistantProvider;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-import org.eclipse.wst.xml.ui.internal.correction.CorrectionProcessorXML;
-
-/**
- * Correction assistant for HTML
- */
-public class CorrectionAssistantProviderHTML extends CorrectionAssistantProvider {
-
-	public IContentAssistant getCorrectionAssistant(ISourceViewer sourceViewer) {
-		IContentAssistant ca = null;
-
-		if (sourceViewer != null) {
-			ContentAssistant assistant = new ContentAssistant();
-
-			if (sourceViewer != null) {
-				IContentAssistProcessor correctionProcessor = new CorrectionProcessorXML(sourceViewer);
-				assistant.setContentAssistProcessor(correctionProcessor, IHTMLPartitions.HTML_DEFAULT);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_CDATA);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_COMMENT);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_DECLARATION);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_PI);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.DTD_SUBSET);
-			}
-			ca = assistant;
-		}
-
-		return ca;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/derived/SingleCharReader.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/derived/SingleCharReader.java
deleted file mode 100644
index c638fb1..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/derived/SingleCharReader.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*********************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *   IBM - Initial API and implementation
- *   Jens Lukowski/Innoopract - initial renaming/restructuring
- * 
- *******************************************************************************/
-
-package org.eclipse.wst.html.ui.internal.derived;
-
-import java.io.IOException;
-import java.io.Reader;
-
-/*
- * Copied from org.eclipse.jdt.internal.corext.javadoc.SingleCharReader.
- * Modification was made to fix statement unnecessarily nested within else
- * clause warning in read(..).
- */
-public abstract class SingleCharReader extends Reader {
-
-	/**
-	 * @see Reader#read()
-	 */
-	public abstract int read() throws IOException;
-
-	/**
-	 * @see Reader#read(char[],int,int)
-	 */
-	public int read(char cbuf[], int off, int len) throws IOException {
-		int end = off + len;
-		for (int i = off; i < end; i++) {
-			int ch = read();
-			if (ch == -1) {
-				if (i == off) {
-					return -1;
-				}
-				return i - off;
-			}
-			cbuf[i] = (char) ch;
-		}
-		return len;
-	}
-
-	/**
-	 * @see Reader#ready()
-	 */
-	public boolean ready() throws IOException {
-		return true;
-	}
-
-	/**
-	 * Gets the content as a String
-	 */
-	public String getString() throws IOException {
-		StringBuffer buf = new StringBuffer();
-		int ch;
-		while ((ch = read()) != -1) {
-			buf.append((char) ch);
-		}
-		return buf.toString();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/ActionContributorHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/ActionContributorHTML.java
deleted file mode 100644
index 3e5870b..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/ActionContributorHTML.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.edit.ui;
-
-import org.eclipse.wst.xml.ui.internal.actions.ActionContributorXML;
-
-/**
- *
- * Instead, use SourcePageActionContributor for source page contributor
- * of multi page editor.
- * 
- * Note that this class is still valid for single page editor.
- */
-public class ActionContributorHTML extends ActionContributorXML {
-	private static final String[] EDITOR_IDS = {"org.eclipse.wst.html.core.htmlsource.source", "org.eclipse.wst.sse.ui.StructuredTextEditor"}; //$NON-NLS-1$ //$NON-NLS-2$
-
-
-	protected String[] getExtensionIDs() {
-		return EDITOR_IDS;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupActionHTMLDelegate.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupActionHTMLDelegate.java
deleted file mode 100644
index 4d553f8..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupActionHTMLDelegate.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.html.ui.internal.edit.ui;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.html.core.internal.cleanup.HTMLCleanupProcessorImpl;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupProcessor;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-/**
- * Cleanup action delegate for HTML editor
- */
-public class CleanupActionHTMLDelegate implements IEditorActionDelegate, IActionDelegate2, IViewActionDelegate {
-	private IEditorPart fEditor;
-	private IStructuredCleanupProcessor fCleanupProcessor;
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		fEditor = targetEditor;
-	}
-
-	public void dispose() {
-		// nulling out just in case
-		fEditor = null;
-		fCleanupProcessor = null;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(HTMLUIMessages.CleanupDocument_label);
-			action.setToolTipText(HTMLUIMessages.CleanupDocument_tooltip);
-			action.setDescription(HTMLUIMessages.CleanupDocument_description);
-		}
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-
-	public void init(IViewPart view) {
-		// do nothing
-	}
-
-	public void run(IAction action) {
-		if (fEditor instanceof ITextEditor) {
-			final ITextEditor editor = (ITextEditor) fEditor;
-			CleanupDialogHTML cleanupDialog = new CleanupDialogHTML(editor.getSite().getShell());
-			cleanupDialog.setisXHTMLType(isXHTML());
-			if (cleanupDialog.open() == Window.OK) {
-				// setup runnable
-				Runnable runnable = new Runnable() {
-					public void run() {
-						IStructuredCleanupProcessor cleanupProcessor = getCleanupProcessor();
-						if (cleanupProcessor != null) {
-							IStructuredModel model = null;
-							try {
-								model = StructuredModelManager.getModelManager().getExistingModelForEdit(editor.getDocumentProvider().getDocument(editor.getEditorInput()));
-								if (model != null)
-									cleanupProcessor.cleanupModel(model);
-							}
-							finally {
-								if (model != null)
-									model.releaseFromEdit();
-							}
-						}
-					}
-				};
-
-				// TODO: make independent of 'model'.
-				IStructuredModel model = null;
-				try {
-					model = StructuredModelManager.getModelManager().getExistingModelForEdit(editor.getDocumentProvider().getDocument(editor.getEditorInput()));
-					if (model != null) {
-						// begin recording
-						ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
-						model.beginRecording(this, SSEUIMessages.Cleanup_Document_UI_, SSEUIMessages.Cleanup_Document_UI_, selection.getOffset(), selection.getLength()); //$NON-NLS-1$ //$NON-NLS-2$
-
-						// tell the model that we are about to make a big
-						// model change
-						model.aboutToChangeModel();
-
-						// run
-						BusyIndicator.showWhile(fEditor.getEditorSite().getWorkbenchWindow().getShell().getDisplay(), runnable);
-					}
-				}
-				finally {
-					if (model != null) {
-						// tell the model that we are done with the big
-						// model
-						// change
-						model.changedModel();
-
-						// end recording
-						ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
-						model.endRecording(this, selection.getOffset(), selection.getLength());
-						model.releaseFromEdit();
-					}
-				}
-			}
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		// do nothing
-	}
-
-	IStructuredCleanupProcessor getCleanupProcessor() {
-		if (fCleanupProcessor == null)
-			fCleanupProcessor = new HTMLCleanupProcessorImpl();
-
-		return fCleanupProcessor;
-	}
-
-	private boolean isXHTML() {
-		boolean isxhtml = false;
-		if (fEditor instanceof ITextEditor) {
-			ITextEditor textEditor = (ITextEditor) fEditor;
-			IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
-			IStructuredModel model = null;
-			try {
-				model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-				if (model instanceof IDOMModel) {
-					IDOMDocument domDocument = ((IDOMModel) model).getDocument();
-					if (domDocument != null)
-						isxhtml = domDocument.isXMLType();
-				}
-			}
-			finally {
-				if (model != null) {
-					model.releaseFromRead();
-				}
-			}
-		}
-		return isxhtml;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java
deleted file mode 100644
index af25260..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/edit/ui/CleanupDialogHTML.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.edit.ui;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-
-public class CleanupDialogHTML extends Dialog implements SelectionListener {
-
-	protected Button fRadioButtonTagNameCaseAsis;
-	protected Button fRadioButtonTagNameCaseLower;
-	protected Button fRadioButtonTagNameCaseUpper;
-	protected Button fRadioButtonAttrNameCaseAsis;
-	protected Button fRadioButtonAttrNameCaseLower;
-	protected Button fRadioButtonAttrNameCaseUpper;
-	protected Button fCheckBoxInsertRequiredAttrs;
-	protected Button fCheckBoxInsertMissingTags;
-	protected Button fCheckBoxQuoteAttrValues;
-	protected Button fCheckBoxFormatSource;
-	protected Button fCheckBoxConvertEOLCodes;
-	protected Button fRadioButtonConvertEOLWindows;
-	protected Button fRadioButtonConvertEOLUnix;
-	protected Button fRadioButtonConvertEOLMac;
-	protected Preferences fPreferences = null;
-	private boolean fIsXHTML = false;
-	private Group fTagNameCase;
-	private Group fAttrNameCase;
-
-	public CleanupDialogHTML(Shell shell) {
-		super(shell);
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		getShell().setText(HTMLUIMessages.Cleanup_UI_);
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		createDialogAreaInComposite(composite);
-		initializeOptions();
-
-		return composite;
-	}
-
-	protected Control createButtonBar(Composite parent) {
-		Control c = super.createButtonBar(parent);
-		okButtonEnablement();
-		return c;
-	}
-
-	protected void createDialogAreaInCompositeForHTML(Composite composite) {
-		// Convert tag name case
-		// d257064 need to associate group w/ radio buttons so radio buttons
-		// header can be read
-		fTagNameCase = new Group(composite, SWT.NONE);
-		fTagNameCase.setText(HTMLUIMessages.Tag_name_case_for_HTML_UI_);
-		GridLayout hLayout = new GridLayout();
-		hLayout.numColumns = 3;
-		fTagNameCase.setLayout(hLayout);
-		fRadioButtonTagNameCaseAsis = new Button(fTagNameCase, SWT.RADIO);
-		fRadioButtonTagNameCaseAsis.setText(HTMLUIMessages.Tag_name_case_As_is_UI_);
-		fRadioButtonTagNameCaseAsis.addSelectionListener(this);
-		fRadioButtonTagNameCaseLower = new Button(fTagNameCase, SWT.RADIO);
-		fRadioButtonTagNameCaseLower.setText(HTMLUIMessages.Tag_name_case_Lower_UI_);
-		fRadioButtonTagNameCaseLower.addSelectionListener(this);
-		fRadioButtonTagNameCaseUpper = new Button(fTagNameCase, SWT.RADIO);
-		fRadioButtonTagNameCaseUpper.setText(HTMLUIMessages.Tag_name_case_Upper_UI_);
-		fRadioButtonTagNameCaseUpper.addSelectionListener(this);
-
-		// Convert attr name case
-		// d257064 need to associate group w/ radio buttons so radio buttons
-		// header can be read
-		fAttrNameCase = new Group(composite, SWT.NONE);
-		fAttrNameCase.setText(HTMLUIMessages.Attribute_name_case_for_HTML_UI_);
-		fAttrNameCase.setLayout(hLayout);
-		fRadioButtonAttrNameCaseAsis = new Button(fAttrNameCase, SWT.RADIO);
-		fRadioButtonAttrNameCaseAsis.setText(HTMLUIMessages.Attribute_name_case_As_is_UI_);
-		fRadioButtonAttrNameCaseAsis.addSelectionListener(this);
-		fRadioButtonAttrNameCaseLower = new Button(fAttrNameCase, SWT.RADIO);
-		fRadioButtonAttrNameCaseLower.setText(HTMLUIMessages.Attribute_name_case_Lower_UI_);
-		fRadioButtonAttrNameCaseLower.addSelectionListener(this);
-		fRadioButtonAttrNameCaseUpper = new Button(fAttrNameCase, SWT.RADIO);
-		fRadioButtonAttrNameCaseUpper.setText(HTMLUIMessages.Attribute_name_case_Upper_UI_);
-		fRadioButtonAttrNameCaseUpper.addSelectionListener(this);
-	}
-
-	protected void createDialogAreaInComposite(Composite composite) {
-		createDialogAreaInCompositeForHTML(composite);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.CLEANUP_HTML_HELPID); // use
-		// HTML
-		// specific
-		// help
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		layout.makeColumnsEqualWidth = true;
-		composite.setLayout(layout);
-
-		// Insert missing required attrs
-		fCheckBoxInsertRequiredAttrs = new Button(composite, SWT.CHECK);
-		fCheckBoxInsertRequiredAttrs.setText(HTMLUIMessages.Insert_required_attributes_UI_);
-		fCheckBoxInsertRequiredAttrs.addSelectionListener(this);
-
-		// Insert missing begin/end tags
-		fCheckBoxInsertMissingTags = new Button(composite, SWT.CHECK);
-		fCheckBoxInsertMissingTags.setText(HTMLUIMessages.Insert_missing_tags_UI_);
-		fCheckBoxInsertMissingTags.addSelectionListener(this);
-
-		// Quote attribute values
-		fCheckBoxQuoteAttrValues = new Button(composite, SWT.CHECK);
-		fCheckBoxQuoteAttrValues.setText(HTMLUIMessages.Quote_attribute_values_UI_);
-		fCheckBoxQuoteAttrValues.addSelectionListener(this);
-
-		// Format source
-		fCheckBoxFormatSource = new Button(composite, SWT.CHECK);
-		fCheckBoxFormatSource.setText(HTMLUIMessages.Format_source_UI_);
-		fCheckBoxFormatSource.addSelectionListener(this);
-
-		// Convert EOL code
-		fCheckBoxConvertEOLCodes = new Button(composite, SWT.CHECK);
-		fCheckBoxConvertEOLCodes.setText(HTMLUIMessages.Convert_EOL_codes_UI_);
-		fCheckBoxConvertEOLCodes.addSelectionListener(this);
-		Composite EOLCodes = new Composite(composite, SWT.NULL);
-		GridLayout hLayout = new GridLayout();
-		hLayout.numColumns = 3;
-		EOLCodes.setLayout(hLayout);
-		fRadioButtonConvertEOLWindows = new Button(EOLCodes, SWT.RADIO);
-		fRadioButtonConvertEOLWindows.setText(HTMLUIMessages.EOL_Windows_UI);
-		fRadioButtonConvertEOLWindows.addSelectionListener(this);
-		fRadioButtonConvertEOLUnix = new Button(EOLCodes, SWT.RADIO);
-		fRadioButtonConvertEOLUnix.setText(HTMLUIMessages.EOL_Unix_UI);
-		fRadioButtonConvertEOLUnix.addSelectionListener(this);
-		fRadioButtonConvertEOLMac = new Button(EOLCodes, SWT.RADIO);
-		fRadioButtonConvertEOLMac.setText(HTMLUIMessages.EOL_Mac_UI);
-		fRadioButtonConvertEOLMac.addSelectionListener(this);
-	}
-
-	protected void okPressed() {
-		storeOptions();
-
-		super.okPressed();
-	}
-
-	protected void initializeOptionsForHTML() {
-		boolean caseSensitive = isXHTMLType();
-
-		if (caseSensitive) {
-			fRadioButtonTagNameCaseLower.setSelection(true);
-		} else {
-			int tagNameCase = getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE);
-			if (tagNameCase == HTMLCorePreferenceNames.UPPER) {
-				fRadioButtonTagNameCaseUpper.setSelection(true);
-			} else if (tagNameCase == HTMLCorePreferenceNames.LOWER)
-				fRadioButtonTagNameCaseLower.setSelection(true);
-			else
-				fRadioButtonTagNameCaseAsis.setSelection(true);
-		}
-
-		if (caseSensitive) {
-			fRadioButtonAttrNameCaseLower.setSelection(true);
-		} else {
-			int attrNameCase = getModelPreferences().getInt(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE);
-			if (attrNameCase == HTMLCorePreferenceNames.UPPER) {
-				fRadioButtonAttrNameCaseUpper.setSelection(true);
-			} else if (attrNameCase == HTMLCorePreferenceNames.LOWER)
-				fRadioButtonAttrNameCaseLower.setSelection(true);
-			else
-				fRadioButtonAttrNameCaseAsis.setSelection(true);
-		}
-
-		enableCaseControls(!caseSensitive);
-	}
-
-	protected void initializeOptions() {
-		initializeOptionsForHTML();
-
-		fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
-		fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.INSERT_MISSING_TAGS));
-		fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES));
-		fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.FORMAT_SOURCE));
-		fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(HTMLCorePreferenceNames.CONVERT_EOL_CODES));
-		if (fCheckBoxConvertEOLCodes.getSelection()) {
-			String EOLCode = getModelPreferences().getString(HTMLCorePreferenceNames.CLEANUP_EOL_CODE);
-			if (EOLCode == CommonEncodingPreferenceNames.LF)
-				fRadioButtonConvertEOLUnix.setSelection(true);
-			else if (EOLCode == CommonEncodingPreferenceNames.CR)
-				fRadioButtonConvertEOLMac.setSelection(true);
-			else
-				fRadioButtonConvertEOLWindows.setSelection(true);
-		}
-		enableEOLCodeRadios(fCheckBoxConvertEOLCodes.getSelection());
-	}
-
-	protected void storeOptionsForHTML() {
-		if (!isXHTMLType() && fRadioButtonTagNameCaseUpper.getSelection())
-			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.UPPER);
-		else if (fRadioButtonTagNameCaseLower.getSelection())
-			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER);
-		else
-			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_TAG_NAME_CASE, HTMLCorePreferenceNames.ASIS);
-
-		if (!isXHTMLType() && fRadioButtonAttrNameCaseUpper.getSelection())
-			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.UPPER);
-		else if (fRadioButtonAttrNameCaseLower.getSelection())
-			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER);
-		else
-			getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_ATTR_NAME_CASE, HTMLCorePreferenceNames.ASIS);
-
-		// explicitly save plugin preferences so values are stored
-		HTMLCorePlugin.getDefault().savePluginPreferences();
-	}
-
-	protected void storeOptions() {
-		storeOptionsForHTML();
-
-		getModelPreferences().setValue(HTMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection());
-		getModelPreferences().setValue(HTMLCorePreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection());
-		getModelPreferences().setValue(HTMLCorePreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection());
-		getModelPreferences().setValue(HTMLCorePreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection());
-		getModelPreferences().setValue(HTMLCorePreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection());
-
-		if (fCheckBoxConvertEOLCodes.getSelection()) {
-			if (fRadioButtonConvertEOLUnix.getSelection()) {
-				getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF);
-			} else if (fRadioButtonConvertEOLMac.getSelection()) {
-				getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR);
-			} else {
-				getModelPreferences().setValue(HTMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF);
-			}
-		}
-
-		// explicitly save plugin preferences so values are stored
-		HTMLCorePlugin.getDefault().savePluginPreferences();
-	}
-
-	public void widgetDefaultSelected(SelectionEvent e) {
-		widgetSelected(e);
-	}
-
-	public void widgetSelected(SelectionEvent e) {
-		if (e.widget == fCheckBoxConvertEOLCodes)
-			enableEOLCodeRadios(fCheckBoxConvertEOLCodes.getSelection());
-
-		okButtonEnablement();
-	}
-
-	protected Preferences getModelPreferences() {
-		return HTMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	private boolean isXHTMLType() {
-		return fIsXHTML;
-	}
-
-	protected void enableEOLCodeRadios(boolean enable) {
-		if ((fRadioButtonConvertEOLWindows != null) && (fRadioButtonConvertEOLUnix != null) && (fRadioButtonConvertEOLMac != null)) {
-			fRadioButtonConvertEOLWindows.setEnabled(enable);
-			fRadioButtonConvertEOLUnix.setEnabled(enable);
-			fRadioButtonConvertEOLMac.setEnabled(enable);
-
-			if (!fRadioButtonConvertEOLWindows.getSelection() && !fRadioButtonConvertEOLUnix.getSelection() && !fRadioButtonConvertEOLMac.getSelection())
-				fRadioButtonConvertEOLWindows.setSelection(true);
-		}
-	}
-
-	/**
-	 * Enables/disables the tag/attr case radio buttons
-	 */
-	private void enableCaseControls(boolean enable) {
-		fTagNameCase.setEnabled(enable);
-		fRadioButtonTagNameCaseAsis.setEnabled(enable);
-		fRadioButtonTagNameCaseLower.setEnabled(enable);
-		fRadioButtonTagNameCaseUpper.setEnabled(enable);
-
-		fAttrNameCase.setEnabled(enable);
-		fRadioButtonAttrNameCaseAsis.setEnabled(enable);
-		fRadioButtonAttrNameCaseLower.setEnabled(enable);
-		fRadioButtonAttrNameCaseUpper.setEnabled(enable);
-	}
-
-	/**
-	 * Enables/disables OK button
-	 * 
-	 */
-	private void okButtonEnablement() {
-		boolean tagNameCaseCheck = ((fRadioButtonTagNameCaseUpper != null && fRadioButtonTagNameCaseUpper.getSelection()) || fRadioButtonTagNameCaseLower.getSelection());
-		boolean attrNameCaseCheck = ((fRadioButtonAttrNameCaseUpper != null && fRadioButtonAttrNameCaseUpper.getSelection()) || fRadioButtonAttrNameCaseLower.getSelection());
-		boolean eolCheck = fCheckBoxConvertEOLCodes.getSelection() && (fRadioButtonConvertEOLUnix.getSelection() || fRadioButtonConvertEOLMac.getSelection() || fRadioButtonConvertEOLWindows.getSelection());
-		boolean buttonEnabled = tagNameCaseCheck || attrNameCaseCheck || fCheckBoxInsertMissingTags.getSelection() || fCheckBoxQuoteAttrValues.getSelection() || fCheckBoxFormatSource.getSelection() || eolCheck;
-		getButton(IDialogConstants.OK_ID).setEnabled(buttonEnabled);
-	}
-
-	void setisXHTMLType(boolean isXHTML) {
-		fIsXHTML = isXHTML;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/HTMLEditorPluginImageHelper.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/HTMLEditorPluginImageHelper.java
deleted file mode 100644
index 3e4863d..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/HTMLEditorPluginImageHelper.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.editor;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-
-
-/**
- * Helper class to handle images provided by this plug-in.
- */
-public class HTMLEditorPluginImageHelper {
-	private final String PLUGINID = HTMLUIPlugin.ID;
-	private static HTMLEditorPluginImageHelper instance = null;
-
-	//	 save a descriptor for each image
-	private HashMap fImageDescRegistry = null;
-
-	/**
-	 * Gets the instance.
-	 * 
-	 * @return Returns a HTMLEditorPluginImageHelper
-	 */
-	public synchronized static HTMLEditorPluginImageHelper getInstance() {
-		if (instance == null)
-			instance = new HTMLEditorPluginImageHelper();
-		return instance;
-	}
-
-	/**
-	 * Retrieves the image associated with resource from the image registry.
-	 * If the image cannot be retrieved, attempt to find and load the image at
-	 * the location specified in resource.
-	 * 
-	 * @param resource
-	 *            the image to retrieve
-	 * @return Image the image associated with resource or null if one could
-	 *         not be found
-	 */
-	public Image getImage(String resource) {
-		Image image = getImageRegistry().get(resource);
-		if (image == null) {
-			// create an image
-			image = createImage(resource);
-		}
-		return image;
-	}
-
-	/**
-	 * Retrieves the image descriptor associated with resource from the image
-	 * descriptor registry. If the image descriptor cannot be retrieved,
-	 * attempt to find and load the image descriptor at the location specified
-	 * in resource.
-	 * 
-	 * @param resource
-	 *            the image descriptor to retrieve
-	 * @return ImageDescriptor the image descriptor assocated with resource or
-	 *         the default "missing" image descriptor if one could not be
-	 *         found
-	 */
-	public ImageDescriptor getImageDescriptor(String resource) {
-		ImageDescriptor imageDescriptor = null;
-		Object o = getImageDescriptorRegistry().get(resource);
-		if (o == null) {
-			//create a descriptor
-			imageDescriptor = createImageDescriptor(resource);
-		}
-		else {
-			imageDescriptor = (ImageDescriptor) o;
-		}
-		return imageDescriptor;
-	}
-
-	/**
-	 * Returns the image descriptor registry for this plugin.
-	 * 
-	 * @return HashMap - image descriptor registry for this plugin
-	 */
-	private HashMap getImageDescriptorRegistry() {
-		if (fImageDescRegistry == null)
-			fImageDescRegistry = new HashMap();
-		return fImageDescRegistry;
-	}
-
-	/**
-	 * Returns the image registry for this plugin.
-	 * 
-	 * @return ImageRegistry - image registry for this plugin
-	 */
-	private ImageRegistry getImageRegistry() {
-		return JFaceResources.getImageRegistry();
-	}
-
-	/**
-	 * Creates an image from the given resource and adds the image to the
-	 * image registry.
-	 * 
-	 * @param resource
-	 * @return Image
-	 */
-	private Image createImage(String resource) {
-		ImageDescriptor desc = getImageDescriptor(resource);
-		Image image = null;
-		
-		if (desc != null) {
-			image = desc.createImage();
-			// dont add the missing image descriptor image to the image registry
-			if (!desc.equals(ImageDescriptor.getMissingImageDescriptor()))
-				getImageRegistry().put(resource, image);
-		}
-		return image;
-	}
-
-	/**
-	 * Creates an image descriptor from the given imageFilePath and adds the
-	 * image descriptor to the image descriptor registry. If an image
-	 * descriptor could not be created, the default "missing" image descriptor
-	 * is returned but not added to the image descriptor registry.
-	 * 
-	 * @param imageFilePath
-	 * @return ImageDescriptor image descriptor for imageFilePath or default
-	 *         "missing" image descriptor if resource could not be found
-	 */
-	private ImageDescriptor createImageDescriptor(String imageFilePath) {
-		ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(PLUGINID, imageFilePath);
-		if (imageDescriptor != null) {
-			getImageDescriptorRegistry().put(imageFilePath, imageDescriptor);
-		}
-		else {
-			imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
-		}
-
-		return imageDescriptor;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/HTMLEditorPluginImages.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/HTMLEditorPluginImages.java
deleted file mode 100644
index ffc1e7d..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/HTMLEditorPluginImages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.editor;
-
-/**
- * Bundle of most images used by the HTML Editor plug-in.
- */
-public class HTMLEditorPluginImages { 	
-	public static final String IMG_OBJ_TABLE = "icons/full/obj16/table.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_ANCHOR = "icons/full/obj16/tag-anchor.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_BODY = "icons/full/obj16/tag-body.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_BUTTON = "icons/full/obj16/tag-button.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_FONT = "icons/full/obj16/tag-font.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_FORM = "icons/full/obj16/tag-form.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_GENERIC = "icons/full/obj16/tag-generic.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_HTML = "icons/full/obj16/tag-html.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_IMAGE_MAP = "icons/full/obj16/tag-image-map.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_IMAGE = "icons/full/obj16/tag-image.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_JSP = "icons/full/obj16/tag-jsp.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_TEMPLATE = "icons/full/obj16/tag-template.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG_TITLE = "icons/full/obj16/tag-title.gif";			//$NON-NLS-1$
-	public static final String IMG_OBJ_TAG = "icons/full/obj16/tag.gif";			//$NON-NLS-1$
-	public static final String IMG_WIZBAN_NEWHTMLFILE = "icons/full/wizban/newhfile_wiz.gif";			//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/IHelpContextIds.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/IHelpContextIds.java
deleted file mode 100644
index 0afe504..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/editor/IHelpContextIds.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.editor;
-
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-
-/**
- * Help context ids for the HTML Source Editor.
- * <p>
- * This interface contains constants only; it is not intended to be implemented.
- * </p>
- * 
- */
-public interface IHelpContextIds {
-	// org.eclipse.wst.html.ui.
-	public static final String PREFIX = HTMLUIPlugin.ID + "."; //$NON-NLS-1$
-
-	// // figured out on the fly
-	// // HTML Source page editor
-	// public static final String HTML_SOURCEVIEW_HELPID =
-	// ContentTypeIdForHTML.ContentTypeID_HTML +"_source_HelpId";
-	// //$NON-NLS-1$
-	
-	// HTML Files Preference page
-	public static final String HTML_PREFWEBX_FILES_HELPID = PREFIX + "webx0030"; //$NON-NLS-1$
-	// HTML Source Preference page
-	public static final String HTML_PREFWEBX_SOURCE_HELPID = PREFIX + "webx0031"; //$NON-NLS-1$
-	// HTML Styles Preference page
-	public static final String HTML_PREFWEBX_STYLES_HELPID = PREFIX + "webx0032"; //$NON-NLS-1$
-	// HTML Templates Preference page
-	public static final String HTML_PREFWEBX_TEMPLATES_HELPID = PREFIX + "webx0033"; //$NON-NLS-1$
-		
-	// HTML Cleanup dialog
-	public static final String CLEANUP_HTML_HELPID = PREFIX + "xmlm1100"; //$NON-NLS-1$
-	
-	// HTML Content Settings
-	public static final String WEB_CONTENT_SETTINGS_HELPID = PREFIX + "misc0170"; //$NON-NLS-1$
-	
-	// HTML New File Wizard - Template Page
-	public static final String HTML_NEWWIZARD_TEMPLATE_HELPID = PREFIX + "htmlw0010"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/ExternalFileEditorInput.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/ExternalFileEditorInput.java
deleted file mode 100644
index 4bc2468..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/ExternalFileEditorInput.java
+++ /dev/null
@@ -1,159 +0,0 @@
-package org.eclipse.wst.html.ui.internal.hyperlink;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.editors.text.ILocationProvider;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * EditorInput for external files. Copied from
- * org.eclipse.ui.internal.editors.text.JavaFileEditorInput
- */
-class ExternalFileEditorInput implements IPathEditorInput, ILocationProvider {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-	
-	/**
-	 * The workbench adapter which simply provides the label.
-	 * 
-	 * @see  Eclipse 3.1
-	 */
-	private class WorkbenchAdapter implements IWorkbenchAdapter {
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object o) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-		 */
-		public ImageDescriptor getImageDescriptor(Object object) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
-		 */
-		public String getLabel(Object o) {
-			return ((ExternalFileEditorInput) o).getName();
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object o) {
-			return null;
-		}
-	}
-
-	private File fFile;
-	private WorkbenchAdapter fWorkbenchAdapter = new WorkbenchAdapter();
-
-	public ExternalFileEditorInput(File file) {
-		super();
-		fFile = file;
-		fWorkbenchAdapter = new WorkbenchAdapter();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return fFile.exists();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return fFile.getName();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return fFile.getAbsolutePath();
-	}
-
-	/*
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		if (ILocationProvider.class.equals(adapter))
-			return this;
-		if (IWorkbenchAdapter.class.equals(adapter))
-			return fWorkbenchAdapter;
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/*
-	 * @see org.eclipse.ui.editors.text.ILocationProvider#getPath(java.lang.Object)
-	 */
-	public IPath getPath(Object element) {
-		if (element instanceof ExternalFileEditorInput) {
-			ExternalFileEditorInput input = (ExternalFileEditorInput) element;
-			return Path.fromOSString(input.fFile.getAbsolutePath());
-		}
-		return null;
-	}
-	
-    /*
-     * @see org.eclipse.ui.IPathEditorInput#getPath()
-     * @since 3.1
-     */
-    public IPath getPath() {
-        return Path.fromOSString(fFile.getAbsolutePath());
-    }
-
-	/*
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o == this)
-			return true;
-
-		if (o instanceof ExternalFileEditorInput) {
-			ExternalFileEditorInput input = (ExternalFileEditorInput) o;
-			return fFile.equals(input.fFile);
-		}
-		
-        if (o instanceof IPathEditorInput) {
-            IPathEditorInput input= (IPathEditorInput)o;
-            return getPath().equals(input.getPath());
-        }
-
-		return false;
-	}
-
-	/*
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return fFile.hashCode();
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/ExternalFileHyperlink.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/ExternalFileHyperlink.java
deleted file mode 100644
index 07b14ed..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/ExternalFileHyperlink.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.wst.html.ui.internal.hyperlink;
-
-import java.io.File;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.wst.html.ui.internal.Logger;
-
-/**
- * Hyperlink for external files.
- */
-class ExternalFileHyperlink implements IHyperlink {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-	
-	private IRegion fHyperlinkRegion;
-	private File fHyperlinkFile;
-
-	public ExternalFileHyperlink(IRegion region, File file) {
-		fHyperlinkFile = file;
-		fHyperlinkRegion = region;
-	}
-	
-	public IRegion getHyperlinkRegion() {
-		return fHyperlinkRegion;
-	}
-
-	public String getTypeLabel() {
-		return null;
-	}
-
-	public String getHyperlinkText() {
-		return null;
-	}
-
-	public void open() {
-		if (fHyperlinkFile != null) {
-			IEditorInput input = new ExternalFileEditorInput(fHyperlinkFile);
-			IEditorDescriptor descriptor;
-			try {
-				descriptor = IDE.getEditorDescriptor(input.getName(), true);
-				if (descriptor != null) {
-					IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-					IDE.openEditor(page, input, descriptor.getId(), true);
-				}
-			}
-			catch (PartInitException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/WorkspaceFileHyperlink.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/WorkspaceFileHyperlink.java
deleted file mode 100644
index 8ee3ac1..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/WorkspaceFileHyperlink.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.wst.html.ui.internal.hyperlink;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.html.ui.internal.Logger;
-
-/**
- * Hyperlink for files within the workspace. (As long as there is an IFile,
- * this can be used) Opens the default editor for the file.
- */
-class WorkspaceFileHyperlink implements IHyperlink {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-
-	private IRegion fRegion;
-	private IFile fFile;
-	private IRegion fHighlightRange;
-
-	public WorkspaceFileHyperlink(IRegion region, IFile file) {
-		fRegion = region;
-		fFile = file;
-	}
-
-	public WorkspaceFileHyperlink(IRegion region, IFile file, IRegion range) {
-		fRegion = region;
-		fFile = file;
-		fHighlightRange = range;
-	}
-
-	public IRegion getHyperlinkRegion() {
-		return fRegion;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel()
-	 */
-	public String getTypeLabel() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText()
-	 */
-	public String getHyperlinkText() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void open() {
-		if (fFile != null && fFile.exists()) {
-			try {
-				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-				IEditorPart editor = IDE.openEditor(page, fFile, true);
-				// highlight range in editor if possible
-				if (fHighlightRange != null && editor instanceof ITextEditor) {
-					((ITextEditor) editor).setHighlightRange(fHighlightRange.getOffset(), fHighlightRange.getLength(), true);
-				}
-			}
-			catch (PartInitException pie) {
-				Logger.log(Logger.WARNING_DEBUG, pie.getMessage(), pie);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/XMLHyperlinkDetector.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/XMLHyperlinkDetector.java
deleted file mode 100644
index c4be166..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/hyperlink/XMLHyperlinkDetector.java
+++ /dev/null
@@ -1,503 +0,0 @@
-package org.eclipse.wst.html.ui.internal.hyperlink;
-
-import java.io.File;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.URLHyperlink;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * Detects hyperlinks in XML tags. Includes detection in DOCTYPE and attribute
- * values. Resolves references to schemas, dtds, etc using the Common URI
- * Resolver.
- * 
- */
-public class XMLHyperlinkDetector implements IHyperlinkDetector {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-
-	private final String HTTP_PROTOCOL = "http://";//$NON-NLS-1$
-	private final String NO_NAMESPACE_SCHEMA_LOCATION = "noNamespaceSchemaLocation"; //$NON-NLS-1$
-	private final String SCHEMA_LOCATION = "schemaLocation"; //$NON-NLS-1$
-	private final String XMLNS = "xmlns"; //$NON-NLS-1$
-	private final String XSI_NAMESPACE_URI = "http://www.w3.org/2001/XMLSchema-instance"; //$NON-NLS-1$
-
-	/**
-	 * Create the appropriate hyperlink
-	 * 
-	 * @param uriString
-	 * @param hyperlinkRegion
-	 * @return IHyperlink
-	 */
-	private IHyperlink createHyperlink(String uriString, IRegion hyperlinkRegion, IDocument document, Node node) {
-		IHyperlink link = null;
-
-		if (isHttp(uriString)) {
-			link = new URLHyperlink(hyperlinkRegion, uriString);
-		}
-		else {
-			// try to locate the file in the workspace
-			File systemFile = getFileFromUriString(uriString);
-			if (systemFile != null) {
-				String systemPath = systemFile.getPath();
-				IFile file = getFile(systemPath);
-				if (file != null) {
-					// this is a WorkspaceFileHyperlink since file exists in
-					// workspace
-					link = new WorkspaceFileHyperlink(hyperlinkRegion, file);
-				}
-				else {
-					// this is an ExternalFileHyperlink since file does not
-					// exist in workspace
-					link = new ExternalFileHyperlink(hyperlinkRegion, systemFile);
-				}
-			}
-		}
-		return link;
-	}
-
-	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
-		// for now, only capable of creating 1 hyperlink
-		List hyperlinks = new ArrayList(0);
-
-		if (region != null && textViewer != null) {
-			IDocument document = textViewer.getDocument();
-			Node currentNode = getCurrentNode(document, region.getOffset());
-			if (currentNode != null) {
-				String uriString = null;
-				if (currentNode.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
-					// doctype nodes
-					uriString = getURIString(currentNode, document);
-				}
-				else if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
-					// element nodes
-					Attr currentAttr = getCurrentAttrNode(currentNode, region.getOffset());
-					if (currentAttr != null) {
-						// try to find link for current attribute
-						// resolve attribute value
-						uriString = getURIString(currentAttr, document);
-						// verify validity of uri string
-						if (uriString == null || !isValidURI(uriString))
-							// reset current attribute
-							currentAttr = null;
-					}
-					if (currentAttr == null) {
-						// try to find a linkable attribute within element
-						currentAttr = getLinkableAttr((Element) currentNode);
-						if (currentAttr != null) {
-							uriString = getURIString(currentAttr, document);
-						}
-					}
-					currentNode = currentAttr;
-				}
-				// try to create hyperlink from information gathered
-				if (uriString != null && currentNode != null && isValidURI(uriString)) {
-					IRegion hyperlinkRegion = getHyperlinkRegion(currentNode);
-					IHyperlink hyperlink = createHyperlink(uriString, hyperlinkRegion, document, currentNode);
-					if (hyperlink != null) {
-						hyperlinks.add(hyperlink);
-					}
-				}
-			}
-		}
-		if (hyperlinks.size() == 0)
-			return null;
-		return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]);
-	}
-
-	/**
-	 * Get the base location from the current model (local file system)
-	 */
-	private String getBaseLocation(IDocument document) {
-		String baseLoc = null;
-
-		// get the base location from the current model
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (sModel != null) {
-				IPath location = new Path(sModel.getBaseLocation());
-				if (location.toFile().exists()) {
-					baseLoc = location.toString();
-				}
-				else {
-					if (location.segmentCount() > 1)
-						baseLoc = ResourcesPlugin.getWorkspace().getRoot().getFile(location).getLocation().toString();
-					else
-						baseLoc = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(location).toString();
-				}
-			}
-		}
-		finally {
-			if (sModel != null) {
-				sModel.releaseFromRead();
-			}
-		}
-		return baseLoc;
-	}
-
-	/**
-	 * Get the CMElementDeclaration for an element
-	 * 
-	 * @param element
-	 * @return CMElementDeclaration
-	 */
-	private CMElementDeclaration getCMElementDeclaration(Element element) {
-		CMElementDeclaration ed = null;
-
-		ModelQuery mq = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-		if (mq != null) {
-			ed = mq.getCMElementDeclaration(element);
-		}
-		return ed;
-	}
-
-	/**
-	 * Returns the attribute node within node at offset
-	 * 
-	 * @param node
-	 * @param offset
-	 * @return Attr
-	 */
-	private Attr getCurrentAttrNode(Node node, int offset) {
-		if ((node instanceof IndexedRegion) && ((IndexedRegion) node).contains(offset) && (node.hasAttributes())) {
-			NamedNodeMap attrs = node.getAttributes();
-			// go through each attribute in node and if attribute contains
-			// offset, return that attribute
-			for (int i = 0; i < attrs.getLength(); ++i) {
-				// assumption that if parent node is of type IndexedRegion,
-				// then its attributes will also be of type IndexedRegion
-				IndexedRegion attRegion = (IndexedRegion) attrs.item(i);
-				if (attRegion.contains(offset)) {
-					return (Attr) attrs.item(i);
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the node the cursor is currently on in the document. null if no
-	 * node is selected
-	 * 
-	 * @param offset
-	 * @return Node either element, doctype, text, or null
-	 */
-	private Node getCurrentNode(IDocument document, int offset) {
-		// get the current node at the offset (returns either: element,
-		// doctype, text)
-		IndexedRegion inode = null;
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			inode = sModel.getIndexedRegion(offset);
-			if (inode == null)
-				inode = sModel.getIndexedRegion(offset - 1);
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-
-		if (inode instanceof Node) {
-			return (Node) inode;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns an IFile from the given uri if possible, null if cannot find
-	 * file from uri.
-	 * 
-	 * @param fileString
-	 *            file system path
-	 * @return returns IFile if fileString exists in the workspace
-	 */
-	private IFile getFile(String fileString) {
-		IFile file = null;
-
-		if (fileString != null) {
-			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(fileString));
-			for (int i = 0; i < files.length && file == null; i++)
-				if (files[i].exists())
-					file = files[i];
-		}
-
-		return file;
-	}
-
-	/**
-	 * Create a file from the given uri string
-	 * 
-	 * @param uriString -
-	 *            assumes uriString is not http://
-	 * @return File created from uriString if possible, null otherwise
-	 */
-	private File getFileFromUriString(String uriString) {
-		File file = null;
-		try {
-			// first just try to create a file directly from uriString as
-			// default in case create file from uri does not work
-			file = new File(uriString);
-
-			// try to create file from uri
-			URI uri = new URI(uriString);
-			file = new File(uri);
-		}
-		catch (Exception e) {
-			// if exception is thrown while trying to create File just ignore
-			// and file will be null
-		}
-		return file;
-	}
-
-	private IRegion getHyperlinkRegion(Node node) {
-		IRegion hyperRegion = null;
-
-		if (node != null) {
-			short nodeType = node.getNodeType();
-			if (nodeType == Node.DOCUMENT_TYPE_NODE) {
-				// handle doc type node
-				IDOMNode docNode = (IDOMNode) node;
-				hyperRegion = new Region(docNode.getStartOffset(), docNode.getEndOffset() - docNode.getStartOffset());
-			}
-			else if (nodeType == Node.ATTRIBUTE_NODE) {
-				// handle attribute nodes
-				IDOMAttr att = (IDOMAttr) node;
-				// do not include quotes in attribute value region
-				int regOffset = att.getValueRegionStartOffset();
-				ITextRegion valueRegion = att.getValueRegion();
-				if (valueRegion != null) {
-					int regLength = valueRegion.getTextLength();
-					String attValue = att.getValueRegionText();
-					if (StringUtils.isQuoted(attValue)) {
-						++regOffset;
-						regLength = regLength - 2;
-					}
-					hyperRegion = new Region(regOffset, regLength);
-				}
-			}
-		}
-		return hyperRegion;
-	}
-
-	/**
-	 * Attempts to find an attribute within element that is openable.
-	 * 
-	 * @param element -
-	 *            cannot be null
-	 * @return Attr attribute that can be used for open on, null if no
-	 *         attribute could be found
-	 */
-	private Attr getLinkableAttr(Element element) {
-		CMElementDeclaration ed = getCMElementDeclaration(element);
-		// get the list of attributes for this node
-		NamedNodeMap attrs = element.getAttributes();
-		for (int i = 0; i < attrs.getLength(); ++i) {
-			// check if this attribute is "openOn-able"
-			Attr att = (Attr) attrs.item(i);
-			if (isLinkableAttr(att, ed)) {
-				return att;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Find the location hint for the given namespaceURI if it exists
-	 * 
-	 * @param elementNode -
-	 *            cannot be null
-	 * @param namespaceURI -
-	 *            cannot be null
-	 * @return location hint (systemId) if it was found, null otherwise
-	 */
-	private String getLocationHint(Element elementNode, String namespaceURI) {
-		Attr schemaLocNode = elementNode.getAttributeNodeNS(XSI_NAMESPACE_URI, SCHEMA_LOCATION);
-		if (schemaLocNode != null) {
-			StringTokenizer st = new StringTokenizer(schemaLocNode.getValue());
-			while (st.hasMoreTokens()) {
-				String publicId = st.hasMoreTokens() ? st.nextToken() : null;
-				String systemId = st.hasMoreTokens() ? st.nextToken() : null;
-				// found location hint
-				if (namespaceURI.equalsIgnoreCase(publicId))
-					return systemId;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the URI string
-	 * 
-	 * @param node -
-	 *            assumes not null
-	 */
-	private String getURIString(Node node, IDocument document) {
-		String resolvedURI = null;
-		// need the base location, publicId, and systemId for URIResolver
-		String baseLoc = null;
-		String publicId = null;
-		String systemId = null;
-
-		short nodeType = node.getNodeType();
-		// handle doc type node
-		if (nodeType == Node.DOCUMENT_TYPE_NODE) {
-			baseLoc = getBaseLocation(document);
-			publicId = ((DocumentType) node).getPublicId();
-			systemId = ((DocumentType) node).getSystemId();
-		}
-		else if (nodeType == Node.ATTRIBUTE_NODE) {
-			// handle attribute node
-			Attr attrNode = (Attr) node;
-			String attrName = attrNode.getName();
-			String attrValue = attrNode.getValue();
-			attrValue = StringUtils.strip(attrValue);
-			if (attrValue != null && attrValue.length() > 0) {
-				baseLoc = getBaseLocation(document);
-
-				// handle schemaLocation attribute
-				String prefix = DOMNamespaceHelper.getPrefix(attrName);
-				String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attrName);
-				if ((XMLNS.equals(prefix)) || (XMLNS.equals(unprefixedName))) {
-					publicId = attrValue;
-					systemId = getLocationHint(attrNode.getOwnerElement(), publicId);
-					if (systemId == null) {
-						systemId = attrValue;
-					}
-				}
-				else if ((XSI_NAMESPACE_URI.equals(DOMNamespaceHelper.getNamespaceURI(attrNode))) && (SCHEMA_LOCATION.equals(unprefixedName))) {
-					// for now just use the first pair
-					// need to look into being more precise
-					StringTokenizer st = new StringTokenizer(attrValue);
-					publicId = st.hasMoreTokens() ? st.nextToken() : null;
-					systemId = st.hasMoreTokens() ? st.nextToken() : null;
-					// else check if xmlns publicId = value
-				}
-				else {
-					systemId = attrValue;
-				}
-			}
-		}
-
-		resolvedURI = resolveURI(baseLoc, publicId, systemId);
-		return resolvedURI;
-	}
-
-	/**
-	 * Returns true if this uriString is an http string
-	 * 
-	 * @param uriString
-	 * @return true if uriString is http string, false otherwise
-	 */
-	private boolean isHttp(String uriString) {
-		boolean isHttp = false;
-		if (uriString != null) {
-			String tempString = uriString.toLowerCase();
-			if (tempString.startsWith(HTTP_PROTOCOL))
-				isHttp = true;
-		}
-		return isHttp;
-	}
-
-	/**
-	 * Checks to see if the given attribute is openable. Attribute is openable
-	 * if it is a namespace declaration attribute or if the attribute value is
-	 * of type URI.
-	 * 
-	 * @param attr
-	 *            cannot be null
-	 * @param cmElement
-	 *            CMElementDeclaration associated with the attribute (can be
-	 *            null)
-	 * @return true if this attribute is "openOn-able" false otherwise
-	 */
-	private boolean isLinkableAttr(Attr attr, CMElementDeclaration cmElement) {
-		String attrName = attr.getName();
-		String prefix = DOMNamespaceHelper.getPrefix(attrName);
-		String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attrName);
-		// determine if attribute is namespace declaration
-		if ((XMLNS.equals(prefix)) || (XMLNS.equals(unprefixedName)))
-			return true;
-
-		// determine if attribute contains schema location
-		if ((XSI_NAMESPACE_URI.equals(DOMNamespaceHelper.getNamespaceURI(attr))) && ((SCHEMA_LOCATION.equals(unprefixedName)) || (NO_NAMESPACE_SCHEMA_LOCATION.equals(unprefixedName))))
-			return true;
-
-		// determine if attribute value is of type URI
-		if (cmElement != null) {
-			CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) cmElement.getAttributes().getNamedItem(attrName);
-			if ((attrDecl != null) && (attrDecl.getAttrType() != null) && (CMDataType.URI.equals(attrDecl.getAttrType().getDataTypeName()))) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Checks whether the given uriString is really pointing to a file
-	 * 
-	 * @param uriString
-	 * @return boolean
-	 */
-	private boolean isValidURI(String uriString) {
-		boolean isValid = false;
-
-		if (isHttp(uriString))
-			isValid = true;
-		else {
-			File file = getFileFromUriString(uriString);
-			if (file != null)
-				isValid = file.isFile();
-		}
-		return isValid;
-	}
-
-	/**
-	 * Resolves the given URI information
-	 * 
-	 * @param baseLocation
-	 * @param publicId
-	 * @param systemId
-	 * @return String resolved uri.
-	 */
-	private String resolveURI(String baseLocation, String publicId, String systemId) {
-		// dont resolve if there's nothing to resolve
-		if ((baseLocation == null) && (publicId == null) && (systemId == null))
-			return null;
-		return URIResolverPlugin.createResolver().resolve(baseLocation, publicId, systemId);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/HTMLUIPreferenceInitializer.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/HTMLUIPreferenceInitializer.java
deleted file mode 100644
index 36fee03..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/HTMLUIPreferenceInitializer.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package org.eclipse.wst.html.ui.internal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.style.IStyleConstantsHTML;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-/**
- * Sets default values for HTML UI preferences
- */
-public class HTMLUIPreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = HTMLUIPlugin.getDefault().getPreferenceStore();
-
-		store.setDefault(HTMLUIPreferenceNames.AUTO_PROPOSE, true);
-		store.setDefault(HTMLUIPreferenceNames.AUTO_PROPOSE_CODE, "<");//$NON-NLS-1$
-		
-		// HTML Style Preferences
-		String NOBACKGROUNDBOLD = " | null | false";   //$NON-NLS-1$
-		String styleValue = ColorHelper.getColorString(127, 0, 127) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_NAME, styleValue);
-		
-		styleValue = ColorHelper.getColorString(42, 0, 255)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE, styleValue);
-		
-		styleValue = "null" + NOBACKGROUNDBOLD;  //$NON-NLS-1$
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS, styleValue); // specified value is black; leaving as widget default
-		
-		styleValue = ColorHelper.getColorString(63, 95, 191)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.COMMENT_BORDER, styleValue);
-		store.setDefault(IStyleConstantsXML.COMMENT_TEXT, styleValue);
-		
-		styleValue = ColorHelper.getColorString(0, 128, 128)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.DECL_BORDER, styleValue);
-
-		styleValue = ColorHelper.getColorString(0, 0, 128)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.DOCTYPE_NAME, styleValue);
-		store.setDefault(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF, styleValue);
-		
-		styleValue = ColorHelper.getColorString(128, 128, 128)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID, styleValue);
-
-		styleValue = ColorHelper.getColorString(63, 127, 95)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF, styleValue);
-
-		styleValue = "null" + NOBACKGROUNDBOLD;	//$NON-NLS-1$
-		store.setDefault(IStyleConstantsXML.XML_CONTENT, styleValue);	// specified value is black; leaving as widget default
-
-		styleValue = ColorHelper.getColorString(0, 128, 128)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_BORDER, styleValue);
-		
-		styleValue = ColorHelper.getColorString(63, 127, 127)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_NAME, styleValue);
-		
-		styleValue = ColorHelper.getColorString(0, 128, 128)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.PI_BORDER, styleValue);
- 
-		styleValue = "null" + NOBACKGROUNDBOLD;	//$NON-NLS-1$
-		store.setDefault(IStyleConstantsXML.PI_CONTENT, styleValue);	// specified value is black; leaving as widget default
-
-		styleValue = ColorHelper.getColorString(0, 128, 128)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.CDATA_BORDER, styleValue);
-		
-		styleValue = ColorHelper.getColorString(0, 0, 0)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.CDATA_TEXT, styleValue);
-		
-		styleValue = ColorHelper.getColorString(191, 95, 63)  + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsHTML.SCRIPT_AREA_BORDER, styleValue);
-		
-		// set default new html file template to use in new file wizard
-		/*
-		 * Need to find template name that goes with default template id (name
-		 * may change for differnt language)
-		 */
-		String templateName = ""; //$NON-NLS-1$
-		Template template = HTMLUIPlugin.getDefault().getTemplateStore().findTemplateById("org.eclipse.wst.html.ui.templates.html"); //$NON-NLS-1$
-		if (template != null)
-			templateName = template.getName();
-		store.setDefault(HTMLUIPreferenceNames.NEW_FILE_TEMPLATE_NAME, templateName);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/HTMLUIPreferenceNames.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/HTMLUIPreferenceNames.java
deleted file mode 100644
index b4fc968..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/HTMLUIPreferenceNames.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.preferences;
-
-/**
- * Preference keys for HTML UI
- */
-public class HTMLUIPreferenceNames {
-	/**
-	 * A named preference that controls if code assist gets auto activated.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String AUTO_PROPOSE = getAutoProposeKey();
-
-	private static String getAutoProposeKey() {
-		return "autoPropose";//$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that holds the characters that auto activate code
-	 * assist.
-	 * <p>
-	 * Value is of type <code>String</code>. All characters that trigger
-	 * auto code assist.
-	 * </p>
-	 */
-	public static final String AUTO_PROPOSE_CODE = getAutoProposeCodeKey();
-
-	private static String getAutoProposeCodeKey() {
-		return "autoProposeCode";//$NON-NLS-1$
-	}
-
-	/**
-	 * The key to store customized templates.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String TEMPLATES_KEY = getTemplatesKey();
-
-	private static String getTemplatesKey() {
-		return "org.eclipse.wst.sse.ui.custom_templates"; //$NON-NLS-1$
-	}
-	
-	/**
-	 * The key to store the last template name used in new HTML file wizard.
-	 * Template name is stored instead of template id because user-created
-	 * templates do not have template ids.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String NEW_FILE_TEMPLATE_NAME = "newFileTemplateName"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLColorPage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLColorPage.java
deleted file mode 100644
index e3b4631..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLColorPage.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.preferences.ui;
-
-import java.util.ArrayList;
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore.OverlayKey;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.StyledTextColorPicker;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLColorPage;
-
-public class HTMLColorPage extends XMLColorPage {
-
-	/**
-	 * Set up all the style preference keys in the overlay store
-	 */
-	protected OverlayKey[] createOverlayStoreKeys() {
-		ArrayList overlayKeys = new ArrayList();
-		
-		ArrayList styleList = new ArrayList();
-		initStyleList(styleList);
-		Iterator i = styleList.iterator();
-		while (i.hasNext()) {
-			overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, (String)i.next()));	
-		}
-
-		OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
-		overlayKeys.toArray(keys);
-		return keys;
-	}
-
-	public String getSampleText() {
-		return HTMLUIMessages.Sample_HTML_doc;
-
-	}
-
-	protected void initContextStyleMap(Dictionary contextStyleMap) {
-
-		initCommonContextStyleMap(contextStyleMap);
-		initDocTypeContextStyleMap(contextStyleMap);
-		// FIXME: these were "brute forced" commented out when moving XMLJSPRegionContexts
-		// effect is unknown, but thought just to effect preference page
-		//contextStyleMap.put(XMLJSPRegionContexts.JSP_DIRECTIVE_NAME, IStyleConstantsXML.TAG_NAME);
-		//contextStyleMap.put(XMLJSPRegionContexts.JSP_COMMENT_OPEN, IStyleConstantsXML.COMMENT_BORDER);
-		//contextStyleMap.put(XMLJSPRegionContexts.JSP_COMMENT_TEXT, IStyleConstantsXML.COMMENT_TEXT);
-		//contextStyleMap.put(XMLJSPRegionContexts.JSP_COMMENT_CLOSE, IStyleConstantsXML.COMMENT_BORDER);
-	}
-
-	protected void initDescriptions(Dictionary descriptions) {
-
-		initCommonDescriptions(descriptions);
-		initDocTypeDescriptions(descriptions);
-	}
-
-	protected void initStyleList(ArrayList list) {
-		initCommonStyleList(list);
-		initDocTypeStyleList(list);
-		//	list.add(HTMLColorManager.SCRIPT_AREA_BORDER);
-
-	}
-
-	protected void setupPicker(StyledTextColorPicker picker) {
-		IModelManager mmanager = StructuredModelManager.getModelManager();
-		picker.setParser(mmanager.createStructuredDocumentFor(ContentTypeIdForHTML.ContentTypeID_HTML).getParser());
-
-		// create descriptions for hilighting types
-		Dictionary descriptions = new Hashtable();
-		initDescriptions(descriptions);
-
-		// map region types to hilighting types
-		Dictionary contextStyleMap = new Hashtable();
-		initContextStyleMap(contextStyleMap);
-
-		ArrayList styleList = new ArrayList();
-		initStyleList(styleList);
-
-		picker.setContextStyleMap(contextStyleMap);
-		picker.setDescriptions(descriptions);
-		picker.setStyleList(styleList);
-
-		//	updatePickerFont(picker);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Control c = super.createContents(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IHelpContextIds.HTML_PREFWEBX_STYLES_HELPID);
-		return c;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
-	 */
-	protected IPreferenceStore doGetPreferenceStore() {
-		return HTMLUIPlugin.getDefault().getPreferenceStore();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.AbstractColorPage#savePreferences()
-	 */
-	protected void savePreferences() {
-		HTMLUIPlugin.getDefault().savePluginPreferences();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java
deleted file mode 100644
index 165153b..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLFilesPreferencePage.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.preferences.ui;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.xml.ui.internal.preferences.WorkbenchDefaultEncodingSettings;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLFilesPreferencePage;
-
-public class HTMLFilesPreferencePage extends XMLFilesPreferencePage {
-	private WorkbenchDefaultEncodingSettings fInputEncodingSettings = null;
-
-	protected Preferences getModelPreferences() {
-		return HTMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#doGetPreferenceStore()
-	 */
-	protected IPreferenceStore doGetPreferenceStore() {
-		return HTMLUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	protected void doSavePreferenceStore() {
-		HTMLCorePlugin.getDefault().savePluginPreferences(); // model
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Composite scrolledComposite = createScrolledComposite(parent);
-		createContentsForCreatingOrSavingGroup(scrolledComposite);
-		createContentsForCreatingGroup(scrolledComposite);
-		createContentsForLoadingGroup(scrolledComposite);
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(scrolledComposite, IHelpContextIds.HTML_PREFWEBX_FILES_HELPID);
-
-		setSize(scrolledComposite);
-		loadPreferences();
-
-		return scrolledComposite;
-	}
-
-	protected void createContentsForLoadingGroup(Composite parent) {
-		Group group = createGroup(parent, 1);
-		group.setText(HTMLUIMessages.HTMLFilesPreferencePage_0);
-
-		fInputEncodingSettings = new WorkbenchDefaultEncodingSettings(group);
-	}
-
-	protected IContentType getContentType() {
-		return Platform.getContentTypeManager().getContentType(ContentTypeIdForHTML.ContentTypeID_HTML);
-	}
-
-	protected void initializeValues() {
-		super.initializeValues();
-		initializeValuesForLoadingGroup();
-	}
-
-	protected void initializeValuesForLoadingGroup() {
-		String encoding = getModelPreferences().getString(CommonEncodingPreferenceNames.INPUT_CODESET);
-
-		fInputEncodingSettings.setIANATag(encoding);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		super.performDefaults();
-		performDefaultsForLoadingGroup();
-	}
-
-	protected void performDefaultsForLoadingGroup() {
-		String encoding = getModelPreferences().getDefaultString(CommonEncodingPreferenceNames.INPUT_CODESET);
-
-		fInputEncodingSettings.setIANATag(encoding);
-	}
-
-	protected void storeValues() {
-		super.storeValues();
-		storeValuesForLoadingGroup();
-	}
-
-	protected void storeValuesForLoadingGroup() {
-		getModelPreferences().setValue(CommonEncodingPreferenceNames.INPUT_CODESET, fInputEncodingSettings.getIANATag());
-	}
-
-	protected void createContentsForCreatingGroup(Composite parent) {
-		super.createContentsForCreatingGroup(parent);
-		// Group creatingGroup = createGroup(parent, 2);
-		// creatingGroup.setText(HTMLUIMessages.Creating_files);
-		//		
-		// // Encoding..
-		// Label label = createLabel(creatingGroup,
-		// HTMLUIMessages.Encoding_desc);
-		// ((GridData)label.getLayoutData()).horizontalSpan = 2;
-		// fEncodingSettings = new EncodingSettings(creatingGroup);
-		// ((GridData)fEncodingSettings.getLayoutData()).horizontalSpan = 2;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java
deleted file mode 100644
index b055458..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLSourcePreferencePage.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.preferences.ui;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLSourcePreferencePage;
-
-public class HTMLSourcePreferencePage extends XMLSourcePreferencePage {
-
-	protected Button fTagNameAsIs = null;
-	protected Button fTagNameUpper = null;
-	protected Button fTagNameLower = null;
-	protected Button fAttrNameAsIs = null;
-	protected Button fAttrNameUpper = null;
-	protected Button fAttrNameLower = null;
-
-	protected void createContentsForGrammarConstraintsGroup(Composite parent) {
-		// do nothing
-	}
-
-	protected void performDefaultsForGrammarConstraintsGroup() {
-		// do nothing
-	}
-
-	protected void initializeValuesForGrammarConstraintsGroup() {
-		// do nothing
-	}
-
-	protected void storeValuesForGrammarConstraintsGroup() {
-		// do nothing
-	}
-
-	protected void createContentsForContentAssistGroup(Composite parent) {
-		super.createContentsForContentAssistGroup(parent);
-
-		// add one more group of preferences
-		createContentsForPreferredCaseGroup(parent, 2);
-	}
-
-	protected Composite createContentsForPreferredCaseGroup(Composite parent, int columnSpan) {
-		Group caseGroup = createGroup(parent, columnSpan);
-		caseGroup.setText(HTMLUIMessages.Preferred_markup_case_UI_);
-
-		// d257064 need to associate group w/ radio buttons so radio buttons header can be read
-		Group tagNameGroup = createGroup(caseGroup, 1);
-		tagNameGroup.setText(HTMLUIMessages.Tag_names__UI_);
-		fTagNameUpper = createRadioButton(tagNameGroup, HTMLUIMessages.Tag_names_Upper_case_UI_);
-		fTagNameLower = createRadioButton(tagNameGroup, HTMLUIMessages.Tag_names_Lower_case_UI_);
-
-		// d257064 need to associate group w/ radio buttons so radio buttons header can be read
-		Group attrNameGroup = createGroup(caseGroup, 1);
-		attrNameGroup.setText(HTMLUIMessages.Attribute_names__UI_);
-		fAttrNameUpper = createRadioButton(attrNameGroup, HTMLUIMessages.Attribute_names_Upper_case_UI_);
-		fAttrNameLower = createRadioButton(attrNameGroup, HTMLUIMessages.Attribute_names_Lower_case_UI_);
-
-		return parent;
-
-	}
-
-	protected void performDefaults() {
-		fTagNameUpper.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.UPPER);
-		fTagNameLower.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.LOWER);
-		fAttrNameUpper.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.UPPER);
-		fAttrNameLower.setSelection(getModelPreferences().getDefaultInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.LOWER);
-
-		super.performDefaults();
-	}
-
-	protected void initializeValues() {
-		fTagNameUpper.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.UPPER);
-		fTagNameLower.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.TAG_NAME_CASE) == HTMLCorePreferenceNames.LOWER);
-		fAttrNameUpper.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.UPPER);
-		fAttrNameLower.setSelection(getModelPreferences().getInt(HTMLCorePreferenceNames.ATTR_NAME_CASE) == HTMLCorePreferenceNames.LOWER);
-
-		super.initializeValues();
-	}
-
-	protected void storeValues() {
-		if (fTagNameUpper.getSelection())
-			getModelPreferences().setValue(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.UPPER);
-		else
-			getModelPreferences().setValue(HTMLCorePreferenceNames.TAG_NAME_CASE, HTMLCorePreferenceNames.LOWER);
-		if (fAttrNameUpper.getSelection())
-			getModelPreferences().setValue(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.UPPER);
-		else
-			getModelPreferences().setValue(HTMLCorePreferenceNames.ATTR_NAME_CASE, HTMLCorePreferenceNames.LOWER);
-
-		super.storeValues();
-	}
-
-	public boolean performOk() {
-		boolean result = super.performOk();
-
-		doSavePreferenceStore();
-
-		return result;
-	}
-
-	protected Preferences getModelPreferences() {
-		return HTMLCorePlugin.getDefault().getPluginPreferences();
-	}
-	
-	protected IPreferenceStore doGetPreferenceStore() {
-		return HTMLUIPlugin.getDefault().getPreferenceStore();
-	}
-	
-	protected void doSavePreferenceStore() {
-		HTMLUIPlugin.getDefault().savePluginPreferences(); // UI
-		HTMLCorePlugin.getDefault().savePluginPreferences(); // model
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Control c = super.createContents(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IHelpContextIds.HTML_PREFWEBX_SOURCE_HELPID);
-		return c;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLTemplatePreferencePage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLTemplatePreferencePage.java
deleted file mode 100644
index 2bf1f90..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/preferences/ui/HTMLTemplatePreferencePage.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.preferences.ui;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.templates.TemplatePreferencePage;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-
-
-/**
- * Preference page for HTML templates
- */
-public class HTMLTemplatePreferencePage extends TemplatePreferencePage {
-	
-	public HTMLTemplatePreferencePage() {
-		HTMLUIPlugin htmlEditorPlugin = HTMLUIPlugin.getDefault();
-		
-		setPreferenceStore(htmlEditorPlugin.getPreferenceStore());
-		setTemplateStore(htmlEditorPlugin.getTemplateStore());
-		setContextTypeRegistry(htmlEditorPlugin.getTemplateContextRegistry());
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-  	  boolean ok = super.performOk();
-  	  HTMLUIPlugin.getDefault().savePluginPreferences();
-	  return ok;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.texteditor.templates.TemplatePreferencePage#isShowFormatterSetting()
-	 */
-	protected boolean isShowFormatterSetting() {
-		// template formatting has not been implemented
-		return false;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite ancestor) {
-		Control c = super.createContents(ancestor);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IHelpContextIds.HTML_PREFWEBX_TEMPLATES_HELPID);
-		return c;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionAnnotationModelChanges.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionAnnotationModelChanges.java
deleted file mode 100644
index 2273bb7..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionAnnotationModelChanges.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.projection;
-
-import java.util.Map;
-
-import org.eclipse.jface.text.source.Annotation;
-import org.w3c.dom.Node;
-
-/**
- * Contains a set of projection model additions/deletions/modifications
- */
-class ProjectionAnnotationModelChanges {
-	// copies of this class located in:
-	// org.eclipse.wst.xml.ui.internal.projection
-	// org.eclipse.wst.css.ui.internal.projection
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-	private Node fNode;
-	private Annotation[] fDeletions;
-	private Map fAdditions;
-	private Annotation[] fModifications;
-
-	public ProjectionAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications) {
-		fNode = node;
-		fDeletions = deletions;
-		fAdditions = additions;
-		fModifications = modifications;
-	}
-
-	public Map getAdditions() {
-		return fAdditions;
-	}
-
-	public Annotation[] getDeletions() {
-		return fDeletions;
-	}
-
-	public Annotation[] getModifications() {
-		return fModifications;
-	}
-
-	public Node getNode() {
-		return fNode;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java
deleted file mode 100644
index 32c7a35..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionModelNodeAdapterFactoryHTML.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.projection;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.wst.html.core.internal.provisional.HTML40Namespace;
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.w3c.dom.Node;
-
-public class ProjectionModelNodeAdapterFactoryHTML extends AbstractAdapterFactory {
-	// copies of this class located in:
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-
-	/**
-	 * List of projection viewers currently associated with this projection
-	 * model node adapter factory.
-	 */
-	private HashMap fProjectionViewers;
-
-	public ProjectionModelNodeAdapterFactoryHTML(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	public ProjectionModelNodeAdapterFactoryHTML(Object adapterKey) {
-		super(adapterKey);
-	}
-
-	public ProjectionModelNodeAdapterFactoryHTML() {
-		this(ProjectionModelNodeAdapterHTML.class);
-	}
-
-	/**
-	 * Actually creates an adapter for the parent of target if target is the
-	 * "adapt-able" node
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		if ((isActive()) && (target instanceof Node) && ((Node) target).getNodeType() == Node.ELEMENT_NODE) {
-			Node node = (Node) target;
-			if (isNodeProjectable(node)) {
-
-				// actually work with the parent node to listen for add,
-				// delete events
-				Node parent = node.getParentNode();
-				if (parent instanceof INodeNotifier) {
-					INodeNotifier parentNotifier = (INodeNotifier) parent;
-					ProjectionModelNodeAdapterHTML parentAdapter = (ProjectionModelNodeAdapterHTML) parentNotifier.getExistingAdapter(ProjectionModelNodeAdapterHTML.class);
-					if (parentAdapter == null) {
-						// create a new adapter for parent
-						parentAdapter = new ProjectionModelNodeAdapterHTML(this);
-						parentNotifier.addAdapter(parentAdapter);
-					}
-					// call update on parent because a new node has just been
-					// added
-					parentAdapter.updateAdapter(parent);
-				}
-			}
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns true if node is a node type able to fold
-	 * 
-	 * @param node
-	 * @return boolean true if node is projectable, false otherwise
-	 */
-	boolean isNodeProjectable(Node node) {
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			String tagName = node.getNodeName();
-			// node is only projectable if it is head, body, script, style,
-			// table, ul, ol tags
-			if (HTML40Namespace.ElementName.HEAD.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.BODY.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.SCRIPT.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.STYLE.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.TABLE.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.UL.equalsIgnoreCase(tagName) || HTML40Namespace.ElementName.OL.equalsIgnoreCase(tagName))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Return true if this factory is currently actively managing projection
-	 * 
-	 * @return
-	 */
-	boolean isActive() {
-		return (fProjectionViewers != null && !fProjectionViewers.isEmpty());
-	}
-
-	/**
-	 * Updates projection annotation model if document is not in flux.
-	 * Otherwise, queues up the changes to be applied when document is ready.
-	 * 
-	 * @param node
-	 * @param deletions
-	 * @param additions
-	 * @param modifications
-	 */
-	void queueAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications) {
-		queueAnnotationModelChanges(node, deletions, additions, modifications, null);
-	}
-
-	/**
-	 * Updates projection annotation model for a specific projection viewer if
-	 * document is not in flux. Otherwise, queues up the changes to be applied
-	 * when document is ready.
-	 * 
-	 * @param node
-	 * @param deletions
-	 * @param additions
-	 * @param modifications
-	 * @param viewer
-	 */
-	void queueAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications, ProjectionViewer viewer) {
-		// create a change object for latest change and add to queue
-		ProjectionAnnotationModelChanges newChange = new ProjectionAnnotationModelChanges(node, deletions, additions, modifications);
-		if (fProjectionViewers != null) {
-			if (viewer != null) {
-				ProjectionViewerInformation info = (ProjectionViewerInformation) fProjectionViewers.get(viewer);
-				if (info != null) {
-					info.queueAnnotationModelChanges(newChange);
-				}
-			}
-			else {
-				Iterator infos = fProjectionViewers.values().iterator();
-				while (infos.hasNext()) {
-					ProjectionViewerInformation info = (ProjectionViewerInformation) infos.next();
-					info.queueAnnotationModelChanges(newChange);
-				}
-			}
-		}
-	}
-
-	public void release() {
-		// go through every projectionviewer and call
-		// removeProjectionViewer(viewer);
-		if (fProjectionViewers != null) {
-			Iterator infos = fProjectionViewers.values().iterator();
-			while (infos.hasNext()) {
-				ProjectionViewerInformation info = (ProjectionViewerInformation) infos.next();
-				info.dispose();
-				infos.remove();
-			}
-			fProjectionViewers = null;
-		}
-		super.release();
-	}
-
-	/**
-	 * Adds viewer to list of projection viewers this factory is associated
-	 * with
-	 * 
-	 * @param viewer -
-	 *            assumes viewer's document and projection annotation model
-	 *            are not null
-	 */
-	void addProjectionViewer(ProjectionViewer viewer) {
-		// remove old entry if it exists
-		removeProjectionViewer(viewer);
-
-		if (fProjectionViewers == null) {
-			fProjectionViewers = new HashMap();
-		}
-
-		// create new object containing projection viewer and its info
-		ProjectionViewerInformation info = new ProjectionViewerInformation(viewer);
-		fProjectionViewers.put(viewer, info);
-		info.initialize();
-	}
-
-	/**
-	 * Removes the given viewer from the list of projection viewers this
-	 * factor is associated with
-	 * 
-	 * @param viewer
-	 */
-	void removeProjectionViewer(ProjectionViewer viewer) {
-		if (fProjectionViewers != null) {
-			// remove entry from list of viewers
-			ProjectionViewerInformation info = (ProjectionViewerInformation) fProjectionViewers.remove(viewer);
-			if (info != null) {
-				info.dispose();
-			}
-			// if removing last projection viewer, clear out everything
-			if (fProjectionViewers.isEmpty()) {
-				fProjectionViewers = null;
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionModelNodeAdapterHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionModelNodeAdapterHTML.java
deleted file mode 100644
index 6544f7a..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionModelNodeAdapterHTML.java
+++ /dev/null
@@ -1,291 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.projection;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.projection.ProjectionAnnotation;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.w3c.dom.Node;
-
-/**
- * Updates projection annotation model with projection annotations for this
- * adapter node's children
- */
-public class ProjectionModelNodeAdapterHTML implements INodeAdapter {
-	// copies of this class located in:
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-	private final static boolean debugProjectionPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.html.ui/projectionperf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private class TagProjectionAnnotation extends ProjectionAnnotation {
-		private boolean fIsVisible = false; /* workaround for BUG85874 */
-		private Node fNode;
-
-		public TagProjectionAnnotation(Node node, boolean isCollapsed) {
-			super(isCollapsed);
-			fNode = node;
-		}
-
-		public Node getNode() {
-			return fNode;
-		}
-
-		public void setNode(Node node) {
-			fNode = node;
-		}
-
-		/**
-		 * Does not paint hidden annotations. Annotations are hidden when they
-		 * only span one line.
-		 * 
-		 * @see ProjectionAnnotation#paint(org.eclipse.swt.graphics.GC,
-		 *      org.eclipse.swt.widgets.Canvas,
-		 *      org.eclipse.swt.graphics.Rectangle)
-		 */
-		public void paint(GC gc, Canvas canvas, Rectangle rectangle) {
-			/* workaround for BUG85874 */
-			/*
-			 * only need to check annotations that are expanded because hidden
-			 * annotations should never have been given the chance to
-			 * collapse.
-			 */
-			if (!isCollapsed()) {
-				// working with rectangle, so line height
-				FontMetrics metrics = gc.getFontMetrics();
-				if (metrics != null) {
-					// do not draw annotations that only span one line and
-					// mark them as not visible
-					if ((rectangle.height / metrics.getHeight()) <= 1) {
-						fIsVisible = false;
-						return;
-					}
-				}
-			}
-			fIsVisible = true;
-			super.paint(gc, canvas, rectangle);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.text.source.projection.ProjectionAnnotation#markCollapsed()
-		 */
-		public void markCollapsed() {
-			/* workaround for BUG85874 */
-			// do not mark collapsed if annotation is not visible
-			if (fIsVisible)
-				super.markCollapsed();
-		}
-	}
-
-	// copies of this class located in:
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-
-	ProjectionModelNodeAdapterFactoryHTML fAdapterFactory;
-	private Map fTagAnnotations = new HashMap();
-
-	public ProjectionModelNodeAdapterHTML(ProjectionModelNodeAdapterFactoryHTML factory) {
-		fAdapterFactory = factory;
-	}
-
-	/**
-	 * Create a projection position from the given node. Able to get
-	 * projection position if node isNodeProjectable.
-	 * 
-	 * @param node
-	 * @return null if no projection position possible, a Position otherwise
-	 */
-	private Position createProjectionPosition(Node node) {
-		Position pos = null;
-		if (fAdapterFactory.isNodeProjectable(node) && node instanceof IndexedRegion) {
-			// IDocument document =
-			// fAdapterFactory.getProjectionViewer().getDocument();
-			// if (document != null) {
-			IndexedRegion inode = (IndexedRegion) node;
-			int start = inode.getStartOffset();
-			int end = inode.getEndOffset();
-			if (start >= 0 && start < end) {
-				// region-based
-				// extra line when collapsed, but no region
-				// increase when add newline
-				pos = new Position(start, end - start);
-				// try {
-				// // line-based
-				// // extra line when collapsed, but no region
-				// // increase when add newline
-				// IRegion startLineRegion =
-				// document.getLineInformationOfOffset(start);
-				// IRegion endLineRegion =
-				// document.getLineInformationOfOffset(end);
-				// int startOffset = startLineRegion.getOffset();
-				// int endOffset = endLineRegion.getOffset() +
-				// endLineRegion.getLength();
-				// if (endOffset > startOffset) {
-				// pos = new Position(startOffset, endOffset -
-				// startOffset);
-				// }
-				//
-				// // line-based
-				// // no extra line when collapsed, but region increase
-				// // when add newline
-				// int startLine = document.getLineOfOffset(start);
-				// int endLine = document.getLineOfOffset(end);
-				// if (endLine + 1 < document.getNumberOfLines()) {
-				// int offset = document.getLineOffset(startLine);
-				// int endOffset = document.getLineOffset(endLine + 1);
-				// pos = new Position(offset, endOffset - offset);
-				// }
-				// }
-				// catch (BadLocationException x) {
-				// Logger.log(Logger.WARNING_DEBUG, null, x);
-				// }
-			}
-		}
-		// }
-		return pos;
-	}
-
-	/**
-	 * Find TagProjectionAnnotation for node in the current list of projection
-	 * annotations for this adapter
-	 * 
-	 * @param node
-	 * @return TagProjectionAnnotation
-	 */
-	private TagProjectionAnnotation getExistingAnnotation(Node node) {
-		TagProjectionAnnotation anno = null;
-
-		if ((node != null) && (!fTagAnnotations.isEmpty())) {
-			Iterator it = fTagAnnotations.keySet().iterator();
-			while (it.hasNext() && anno == null) {
-				TagProjectionAnnotation a = (TagProjectionAnnotation) it.next();
-				Node n = a.getNode();
-				if (node.equals(n)) {
-					anno = a;
-				}
-			}
-		}
-		return anno;
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return type == ProjectionModelNodeAdapterHTML.class;
-	}
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// check if folding is even enabled, if not, just ignore notifyChanged
-		// events
-		if (!fAdapterFactory.isActive()) {
-			return;
-		}
-
-		if ((eventType == INodeNotifier.STRUCTURE_CHANGED) && (notifier instanceof Node)) {
-			updateAdapter((Node) notifier);
-		}
-	}
-
-	/**
-	 * Update the projection annotation of all the nodes that are children of
-	 * node
-	 * 
-	 * @param node
-	 */
-	void updateAdapter(Node node) {
-		updateAdapter(node, null);
-	}
-
-	/**
-	 * Update the projection annotation of all the nodes that are children of
-	 * node and adds all projection annotations to viewer (for newly added
-	 * viewers)
-	 * 
-	 * @param node
-	 * @param viewer
-	 */
-	void updateAdapter(Node node, ProjectionViewer viewer) {
-		long start = System.currentTimeMillis();
-
-		Map additions = new HashMap();
-		Map projectionAnnotations = new HashMap();
-
-		// go through immediate child nodes and figure out projection
-		// model annotations
-		if (node != null) {
-			Node childNode = node.getFirstChild();
-			while (childNode != null) {
-				Position newPos = createProjectionPosition(childNode);
-				if (newPos != null) {
-					TagProjectionAnnotation newAnnotation = new TagProjectionAnnotation(childNode, false);
-					TagProjectionAnnotation existing = getExistingAnnotation(childNode);
-					if (existing == null) {
-						// add to map containing all annotations for this
-						// adapter
-						projectionAnnotations.put(newAnnotation, newPos);
-						// add to map containing annotations to add
-						additions.put(newAnnotation, newPos);
-					}
-					else {
-						// add to map containing all annotations for this
-						// adapter
-						projectionAnnotations.put(existing, newPos);
-						// remove from map containing annotations to delete
-						fTagAnnotations.remove(existing);
-					}
-				}
-				childNode = childNode.getNextSibling();
-			}
-
-			// in the end, want to delete anything leftover in old list, add
-			// everything in additions, and update everything in
-			// projectionAnnotations
-			ProjectionAnnotation[] oldList = null;
-			if (!fTagAnnotations.isEmpty()) {
-				oldList = (ProjectionAnnotation[]) fTagAnnotations.keySet().toArray(new ProjectionAnnotation[0]);
-			}
-			ProjectionAnnotation[] modifyList = null;
-			if (!projectionAnnotations.isEmpty()) {
-				modifyList = (ProjectionAnnotation[]) projectionAnnotations.keySet().toArray(new ProjectionAnnotation[0]);
-			}
-
-			// specifically add all annotations to viewer
-			if (viewer != null && !projectionAnnotations.isEmpty()) {
-				fAdapterFactory.queueAnnotationModelChanges(node, null, projectionAnnotations, null, viewer);
-			}
-
-			// only update when there is something to update
-			if ((oldList != null && oldList.length > 0) || (!additions.isEmpty()) || (modifyList != null && modifyList.length > 0))
-				fAdapterFactory.queueAnnotationModelChanges(node, oldList, additions, modifyList);
-		}
-
-		// save new list of annotations
-		fTagAnnotations = projectionAnnotations;
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			String nodeName = node != null ? node.getNodeName() : "null"; //$NON-NLS-1$
-			System.out.println("ProjectionModelNodeAdapterHTML.updateAdapter (" + nodeName + "):" + (end - start)); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionViewerInformation.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionViewerInformation.java
deleted file mode 100644
index 675efa5..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/ProjectionViewerInformation.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.projection;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.wst.html.ui.internal.Logger;
-
-/**
- * Contains information about a projection viewer and also manages updating
- * the viewer's projection annotation model
- */
-class ProjectionViewerInformation {
-	// copies of this class located in:
-	// org.eclipse.wst.xml.ui.internal.projection
-	// org.eclipse.wst.css.ui.internal.projection
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-
-	/**
-	 * Listens to document to be aware of when to update the projection
-	 * annotation model.
-	 */
-	private class DocumentListener implements IDocumentListener {
-		private ProjectionViewerInformation fInfo;
-
-		public DocumentListener(ProjectionViewerInformation info) {
-			fInfo = info;
-		}
-
-		public void documentAboutToBeChanged(DocumentEvent event) {
-			IDocument document = event.getDocument();
-			if (fInfo.getDocument() == document) {
-				fInfo.setIsDocumentChanging(true);
-			}
-		}
-
-		public void documentChanged(DocumentEvent event) {
-			// register a post notification replace so that projection
-			// annotation model will be updated after all documentChanged
-			// listeners have been notified
-			IDocument document = event.getDocument();
-			if (document instanceof IDocumentExtension && fInfo.getDocument() == document) {
-				if (fInfo.hasChangesQueued())
-					((IDocumentExtension) document).registerPostNotificationReplace(this, new PostDocumentChangedListener(fInfo));
-			}
-		}
-	}
-
-	/**
-	 * Essentially a post document changed listener because it is called after
-	 * documentchanged has been fired.
-	 */
-	private class PostDocumentChangedListener implements IDocumentExtension.IReplace {
-		private ProjectionViewerInformation fInfo;
-
-		public PostDocumentChangedListener(ProjectionViewerInformation info) {
-			fInfo = info;
-		}
-
-		public void perform(IDocument document, IDocumentListener owner) {
-			fInfo.applyAnnotationModelChanges();
-			fInfo.setIsDocumentChanging(false);
-		}
-	}
-
-	/**
-	 * Projection annotation model current associated with this projection
-	 * viewer
-	 */
-	private ProjectionAnnotationModel fProjectionAnnotationModel;
-	/**
-	 * Document currently associated with this projection viewer
-	 */
-	private IDocument fDocument;
-	/**
-	 * Listener to fProjectionViewer's document
-	 */
-	private IDocumentListener fDocumentListener;
-	/**
-	 * Indicates whether or not document is in the middle of changing
-	 */
-	private boolean fIsDocumentChanging = false;
-	/**
-	 * List of projection annotation model changes that need to be applied
-	 */
-	private List fQueuedAnnotationChanges;
-
-	public ProjectionViewerInformation(ProjectionViewer viewer) {
-		fDocument = viewer.getDocument();
-		fProjectionAnnotationModel = viewer.getProjectionAnnotationModel();
-	}
-
-	IDocument getDocument() {
-		return fDocument;
-	}
-
-	private List getQueuedAnnotationChanges() {
-		if (fQueuedAnnotationChanges == null) {
-			fQueuedAnnotationChanges = new ArrayList();
-		}
-		return fQueuedAnnotationChanges;
-	}
-
-	void setIsDocumentChanging(boolean changing) {
-		fIsDocumentChanging = changing;
-	}
-
-	private boolean isDocumentChanging() {
-		return fIsDocumentChanging;
-	}
-
-	/**
-	 * Applies the pending projection annotation model changes to the
-	 * projection annotation model.
-	 */
-	void applyAnnotationModelChanges() {
-		List queuedChanges = getQueuedAnnotationChanges();
-		// go through all the pending annotation changes and apply
-		// them to
-		// the projection annotation model
-		while (!queuedChanges.isEmpty()) {
-			ProjectionAnnotationModelChanges changes = (ProjectionAnnotationModelChanges) queuedChanges.remove(0);
-			try {
-				fProjectionAnnotationModel.modifyAnnotations(changes.getDeletions(), changes.getAdditions(), changes.getModifications());
-			}
-			catch (Exception e) {
-				// if anything goes wrong, log it and continue
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-	}
-
-	/**
-	 * Returns true if there are annotation changes queued up, false otherwise
-	 * 
-	 * @return boolean
-	 */
-	boolean hasChangesQueued() {
-		return !getQueuedAnnotationChanges().isEmpty();
-	}
-
-	/**
-	 * Updates projection annotation model if document is not in flux.
-	 * Otherwise, queues up the changes to be applied when document is ready.
-	 */
-	public void queueAnnotationModelChanges(ProjectionAnnotationModelChanges newChange) {
-		/*
-		 * future_TODO: maybe improve by checking if annotation projection
-		 * model change already exists for node. if so, throw out old change.
-		 */
-		getQueuedAnnotationChanges().add(newChange);
-
-		// if document isn't changing, go ahead and apply it
-		if (!isDocumentChanging()) {
-			applyAnnotationModelChanges();
-		}
-	}
-
-	public void initialize() {
-		// add document listener
-		if (fDocumentListener == null) {
-			fDocumentListener = new DocumentListener(this);
-		}
-		getDocument().addDocumentListener(fDocumentListener);
-	}
-
-	public void dispose() {
-		// remove document listener
-		if (fDocumentListener != null) {
-			getDocument().removeDocumentListener(fDocumentListener);
-		}
-
-		// clear out list of queued changes since it may no longer
-		// be accurate
-		if (fQueuedAnnotationChanges != null) {
-			fQueuedAnnotationChanges.clear();
-			fQueuedAnnotationChanges = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/StructuredTextFoldingProviderHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/StructuredTextFoldingProviderHTML.java
deleted file mode 100644
index a117cca..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/projection/StructuredTextFoldingProviderHTML.java
+++ /dev/null
@@ -1,326 +0,0 @@
-package org.eclipse.wst.html.ui.internal.projection;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.jface.text.source.projection.IProjectionListener;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.internal.projection.IStructuredTextFoldingProvider;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * Updates the projection model of a structured model for HTML.
- */
-public class StructuredTextFoldingProviderHTML implements IStructuredTextFoldingProvider, IProjectionListener, ITextInputListener {
-	private final static boolean debugProjectionPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.html.ui/projectionperf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private IDocument fDocument;
-	private ProjectionViewer fViewer;
-	private boolean fProjectionNeedsToBeEnabled = false;
-	/**
-	 * Maximum number of child nodes to add adapters to (limit for performance
-	 * sake)
-	 */
-	private final int MAX_CHILDREN = 10;
-	/**
-	 * Maximum number of sibling nodes to add adapters to (limit for
-	 * performance sake)
-	 */
-	private final int MAX_SIBLINGS = 1000;
-
-	/**
-	 * Adds an adapter to node and its children
-	 * 
-	 * @param node
-	 * @param childLevel
-	 */
-	private void addAdapterToNodeAndChildren(Node node, int childLevel) {
-		// stop adding initial adapters MAX_CHILDREN levels deep for
-		// performance sake
-		if (node instanceof INodeNotifier && childLevel < MAX_CHILDREN) {
-			INodeNotifier notifier = (INodeNotifier) node;
-
-			// try and get the adapter for the current node and update the
-			// adapter with projection information
-			ProjectionModelNodeAdapterHTML adapter = (ProjectionModelNodeAdapterHTML) notifier.getExistingAdapter(ProjectionModelNodeAdapterHTML.class);
-			if (adapter != null) {
-				adapter.updateAdapter(node, fViewer);
-			}
-			else {
-				// just call getadapter so the adapter is created and
-				// automatically initialized
-				notifier.getAdapterFor(ProjectionModelNodeAdapterHTML.class);
-			}
-			int siblingLevel = 0;
-			Node nextChild = node.getFirstChild();
-			while (nextChild != null && siblingLevel < MAX_SIBLINGS) {
-				Node childNode = nextChild;
-				nextChild = childNode.getNextSibling();
-
-				addAdapterToNodeAndChildren(childNode, childLevel + 1);
-				++siblingLevel;
-			}
-		}
-	}
-
-	/**
-	 * Goes through every node and adds an adapter onto each for tracking
-	 * purposes
-	 */
-	private void addAllAdapters() {
-		long start = System.currentTimeMillis();
-
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					int startOffset = 0;
-					IndexedRegion startNode = sModel.getIndexedRegion(startOffset);
-					if (startNode instanceof Node) {
-						int siblingLevel = 0;
-						Node nextSibling = (Node) startNode;
-						while (nextSibling != null && siblingLevel < MAX_SIBLINGS) {
-							Node currentNode = nextSibling;
-							nextSibling = currentNode.getNextSibling();
-
-							addAdapterToNodeAndChildren(currentNode, 0);
-							++siblingLevel;
-						}
-					}
-				}
-			}
-			finally {
-				if (sModel != null) {
-					sModel.releaseFromRead();
-				}
-			}
-		}
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderHTML.addAllAdapters: " + (end - start)); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Get the ProjectionModelNodeAdapterFactoryHTML to use with this
-	 * provider.
-	 * 
-	 * @return ProjectionModelNodeAdapterFactoryHTML
-	 */
-	private ProjectionModelNodeAdapterFactoryHTML getAdapterFactory(boolean createIfNeeded) {
-		long start = System.currentTimeMillis();
-
-		ProjectionModelNodeAdapterFactoryHTML factory = null;
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					FactoryRegistry factoryRegistry = sModel.getFactoryRegistry();
-
-					// getting the projectionmodelnodeadapter for the first
-					// time
-					// so do some initializing
-					if (!factoryRegistry.contains(ProjectionModelNodeAdapterHTML.class) && createIfNeeded) {
-						ProjectionModelNodeAdapterFactoryHTML newFactory = new ProjectionModelNodeAdapterFactoryHTML();
-
-						// add factory to factory registry
-						factoryRegistry.addFactory(newFactory);
-
-						// add factory to propogating adapter
-						IDOMModel domModel = (IDOMModel) sModel;
-						Document document = domModel.getDocument();
-						PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) document).getAdapterFor(PropagatingAdapter.class);
-						if (propagatingAdapter != null) {
-							propagatingAdapter.addAdaptOnCreateFactory(newFactory);
-						}
-					}
-
-					// try and get the factory
-					factory = (ProjectionModelNodeAdapterFactoryHTML) factoryRegistry.getFactoryFor(ProjectionModelNodeAdapterHTML.class);
-				}
-			}
-			finally {
-				if (sModel != null)
-					sModel.releaseFromRead();
-			}
-		}
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderHTML.getAdapterFactory: " + (end - start)); //$NON-NLS-1$
-		}
-		return factory;
-	}
-
-	/**
-	 * Initialize this provider with the correct document. Assumes projection
-	 * is enabled. (otherwise, only install would have been called)
-	 */
-	public void initialize() {
-		if (!isInstalled())
-			return;
-
-		// clear out old info
-		projectionDisabled();
-
-		fDocument = fViewer.getDocument();
-
-		// set projection viewer on new document's adapter factory
-		if (fViewer.getProjectionAnnotationModel() != null) {
-			ProjectionModelNodeAdapterFactoryHTML factory = getAdapterFactory(true);
-			if (factory != null) {
-				factory.addProjectionViewer(fViewer);
-			}
-
-			addAllAdapters();
-		}
-		fProjectionNeedsToBeEnabled = false;
-	}
-
-	/**
-	 * Associate a ProjectionViewer with this IStructuredTextFoldingProvider
-	 * 
-	 * @param viewer -
-	 *            assumes not null
-	 */
-	public void install(ProjectionViewer viewer) {
-		// uninstall before trying to install new viewer
-		if (isInstalled()) {
-			uninstall();
-		}
-		fViewer = viewer;
-		fViewer.addProjectionListener(this);
-		fViewer.addTextInputListener(this);
-	}
-
-	private boolean isInstalled() {
-		return fViewer != null;
-	}
-
-	public void projectionDisabled() {
-		ProjectionModelNodeAdapterFactoryHTML factory = getAdapterFactory(false);
-		if (factory != null) {
-			factory.removeProjectionViewer(fViewer);
-		}
-
-		// clear out all annotations
-		if (fViewer.getProjectionAnnotationModel() != null)
-			fViewer.getProjectionAnnotationModel().removeAllAnnotations();
-
-		removeAllAdapters();
-
-		fDocument = null;
-		fProjectionNeedsToBeEnabled = false;
-	}
-
-	public void projectionEnabled() {
-		initialize();
-	}
-
-	/**
-	 * Removes an adapter from node and its children
-	 * 
-	 * @param node
-	 * @param level
-	 */
-	private void removeAdapterFromNodeAndChildren(Node node, int level) {
-		if (node instanceof INodeNotifier) {
-			INodeNotifier notifier = (INodeNotifier) node;
-
-			// try and get the adapter for the current node and remove it
-			INodeAdapter adapter = notifier.getExistingAdapter(ProjectionModelNodeAdapterHTML.class);
-			if (adapter != null) {
-				notifier.removeAdapter(adapter);
-			}
-
-			Node nextChild = node.getFirstChild();
-			while (nextChild != null) {
-				Node childNode = nextChild;
-				nextChild = childNode.getNextSibling();
-
-				removeAdapterFromNodeAndChildren(childNode, level + 1);
-			}
-		}
-	}
-
-	/**
-	 * Goes through every node and removes adapter from each for cleanup
-	 * purposes
-	 */
-	private void removeAllAdapters() {
-		long start = System.currentTimeMillis();
-
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					int startOffset = 0;
-					IndexedRegion startNode = sModel.getIndexedRegion(startOffset);
-					if (startNode instanceof Node) {
-						Node nextSibling = (Node) startNode;
-						while (nextSibling != null) {
-							Node currentNode = nextSibling;
-							nextSibling = currentNode.getNextSibling();
-
-							removeAdapterFromNodeAndChildren(currentNode, 0);
-						}
-					}
-				}
-			}
-			finally {
-				if (sModel != null) {
-					sModel.releaseFromRead();
-				}
-			}
-		}
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderHTML.removeAllAdapters: " + (end - start)); //$NON-NLS-1$
-		}
-	}
-
-	public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
-		// if folding is enabled and new document is going to be a totally
-		// different document, disable projection
-		if (fDocument != null && fDocument != newInput) {
-			// disable projection and disconnect everything
-			projectionDisabled();
-			fProjectionNeedsToBeEnabled = true;
-		}
-	}
-
-	public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
-		// if projection was previously enabled before input document changed
-		// and new document is different than old document
-		if (fProjectionNeedsToBeEnabled && fDocument == null && newInput != null) {
-			projectionEnabled();
-			fProjectionNeedsToBeEnabled = false;
-		}
-	}
-
-	/**
-	 * Disconnect this IStructuredTextFoldingProvider from projection viewer
-	 */
-	public void uninstall() {
-		if (isInstalled()) {
-			projectionDisabled();
-
-			fViewer.removeProjectionListener(this);
-			fViewer.removeTextInputListener(this);
-			fViewer = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/registry/AdapterFactoryProviderForHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/registry/AdapterFactoryProviderForHTML.java
deleted file mode 100644
index 58bb496..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/registry/AdapterFactoryProviderForHTML.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.registry;
-
-import org.eclipse.wst.html.core.internal.modelhandler.ModelHandlerForHTML;
-import org.eclipse.wst.html.ui.internal.contentoutline.JFaceNodeAdapterFactoryForHTML;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IDocumentTypeHandler;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider;
-import org.eclipse.wst.sse.ui.internal.util.Assert;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-
-public class AdapterFactoryProviderForHTML implements AdapterFactoryProvider {
-
-
-	public void addAdapterFactories(IStructuredModel structuredModel) {
-
-		// these are the normal edit side content based factories
-		addContentBasedFactories(structuredModel);
-		// Must update/add to propagating adapter here too
-		if (structuredModel instanceof IDOMModel) {
-			addPropagatingAdapters(structuredModel);
-		}
-	}
-
-	protected void addContentBasedFactories(IStructuredModel structuredModel) {
-
-		FactoryRegistry factoryRegistry = structuredModel.getFactoryRegistry();
-		Assert.isNotNull(factoryRegistry, "Program Error: client caller must ensure model has factory registry"); //$NON-NLS-1$
-		INodeAdapterFactory factory = null;
-
-		factory = factoryRegistry.getFactoryFor(IJFaceNodeAdapter.class);
-		if (factory == null) {
-			factory = new JFaceNodeAdapterFactoryForHTML();
-			factoryRegistry.addFactory(factory);
-		}
-	}
-
-	protected void addPropagatingAdapters(IStructuredModel structuredModel) {
-		// no propagating to add
-	}
-
-	/*
-	 * @see AdapterFactoryProvider#isFor(ContentTypeDescription)
-	 */
-	public boolean isFor(IDocumentTypeHandler contentTypeDescription) {
-		return (contentTypeDescription instanceof ModelHandlerForHTML);
-	}
-
-	public void reinitializeFactories(IStructuredModel structuredModel) {
-		// nothing to do, since no embedded type
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/search/HTMLFindOccurrencesActionDelegate.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/search/HTMLFindOccurrencesActionDelegate.java
deleted file mode 100644
index 23c2c49..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/search/HTMLFindOccurrencesActionDelegate.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.html.ui.internal.search;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesActionDelegate;
-
-/**
- * Sets up FindOccurrencesActionDelegate for html find occurrences processors
- */
-public class HTMLFindOccurrencesActionDelegate extends FindOccurrencesActionDelegate {
-	private List fProcessors;
-
-	protected List getProcessors() {
-		if (fProcessors == null) {
-			fProcessors = new ArrayList();
-			HTMLFindOccurrencesProcessor htmlProcessor = new HTMLFindOccurrencesProcessor();
-			fProcessors.add(htmlProcessor);
-		}
-		return fProcessors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/search/HTMLFindOccurrencesProcessor.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/search/HTMLFindOccurrencesProcessor.java
deleted file mode 100644
index 2e2a696..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/search/HTMLFindOccurrencesProcessor.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.html.ui.internal.search;
-
-import org.eclipse.wst.html.core.text.IHTMLPartitions;
-import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesProcessor;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-
-/**
- * Configures a FindOccurrencesProcessor with HTML partitions and regions
- */
-public class HTMLFindOccurrencesProcessor extends FindOccurrencesProcessor {
-
-	protected String[] getPartitionTypes() {
-		return new String[]{IHTMLPartitions.HTML_DEFAULT, IXMLPartitions.XML_DEFAULT};
-	}
-
-	protected String[] getRegionTypes() {
-		return new String[]{DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE};
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/style/IStyleConstantsHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/style/IStyleConstantsHTML.java
deleted file mode 100644
index 5c7c88d..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/style/IStyleConstantsHTML.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.style;
-
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-/**
- * Contains the symbolic name of styles used by LineStyleProvider, ColorManager, and
- * any others who may be interested
- */
-public interface IStyleConstantsHTML extends IStyleConstantsXML {
-	public static final String SCRIPT_AREA_BORDER = "SCRIPT_AREA_BORDER";//$NON-NLS-1$
-	public static final String SCRIPT_AREA = "SCRIPT_AREA";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/style/LineStyleProviderForHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/style/LineStyleProviderForHTML.java
deleted file mode 100644
index a2b5e7a..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/style/LineStyleProviderForHTML.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.style;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-import org.eclipse.wst.xml.ui.internal.style.LineStyleProviderForXML;
-
-public class LineStyleProviderForHTML extends LineStyleProviderForXML implements LineStyleProvider {
-
-	public LineStyleProviderForHTML() {
-		super();
-	}
-
-	/**
-	 * a method to centralize all the "format rules" for regions 
-	 * specifically associated for how to "open" the region.
-	 */
-	// NOTE: this method was just copied down form LineStyleProviderForXML
-	public TextAttribute getAttributeFor(ITextRegion region) {
-		// not sure why this is coming through null, but just to catch it
-		if (region == null) {
-			return (TextAttribute)getTextAttributes().get(IStyleConstantsXML.XML_CONTENT);
-		}
-		if (region.getType() == DOMRegionContext.BLOCK_TEXT) {
-			return (TextAttribute)getTextAttributes().get(IStyleConstantsXML.XML_CONTENT);
-		}
-		// first try "standard" tag attributes from super class
-		return super.getAttributeFor(region);
-	}
-
-	protected void loadColors() {
-		super.loadColors();
-
-		addTextAttribute(IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-	}
-	
-	
-	protected void handlePropertyChange(PropertyChangeEvent event) {
-		if (event != null) {
-			String prefKey = event.getProperty();
-			// check if preference changed is a style preference
-			if (IStyleConstantsHTML.SCRIPT_AREA_BORDER.equals(prefKey)) {
-				addTextAttribute(IStyleConstantsHTML.SCRIPT_AREA_BORDER);
-
-				// this is what AbstractLineStyleProvider.propertyChange() does
-				getHighlighter().refreshDisplay();
-			} else {
-				super.handlePropertyChange(event);
-			}
-		} else {
-			super.handlePropertyChange(event);
-		}
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.sse.ui.style.AbstractLineStyleProvider#getColorPreferences()
-	 */
-	protected IPreferenceStore getColorPreferences() {
-		return HTMLUIPlugin.getDefault().getPreferenceStore();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLInformationProvider.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLInformationProvider.java
deleted file mode 100644
index 4e9cb00..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLInformationProvider.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.taginfo;
-
-
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Provides context information for HTML tags (Shows tooltip description)
- */
-public class HTMLInformationProvider implements IInformationProvider, IInformationProviderExtension {
-
-	private ITextHover fTextHover = null;
-
-	public HTMLInformationProvider() {
-		fTextHover = SSEUIPlugin.getDefault().getTextHoverManager().createBestMatchHover(new HTMLTagInfoHoverProcessor());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getSubject(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IRegion getSubject(ITextViewer textViewer, int offset) {
-		return fTextHover.getHoverRegion(textViewer, offset);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getInformation(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProviderExtension#getInformation2(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
-		return fTextHover.getHoverInfo(textViewer, subject);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLTagInfoHoverProcessor.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLTagInfoHoverProcessor.java
deleted file mode 100644
index b8f7103..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/taginfo/HTMLTagInfoHoverProcessor.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.wst.html.ui.internal.taginfo;
-
-
-
-import org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor;
-
-/**
- * Provides hover help documentation for HTML tags
- * 
- * @author amywu
- */
-public class HTMLTagInfoHoverProcessor extends XMLTagInfoHoverProcessor {
-	//	currently empty because XMLTagInfoHoverProcessor handles all cases relevant to HTML
-	public HTMLTagInfoHoverProcessor() {
-		super();
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/EncodingTemplateVariableResolverHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/EncodingTemplateVariableResolverHTML.java
deleted file mode 100644
index aca7d17..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/EncodingTemplateVariableResolverHTML.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.templates;
-
-import org.eclipse.jface.text.templates.SimpleTemplateVariableResolver;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-
-
-public class EncodingTemplateVariableResolverHTML extends SimpleTemplateVariableResolver {
-	private static final String ENCODING_TYPE = getEncodingType();
-
-	private static String getEncodingType() {
-		return "encoding"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Creates a new encoding variable
-	 */
-	public EncodingTemplateVariableResolverHTML() {
-		super(ENCODING_TYPE, HTMLUIMessages.Creating_files_encoding);
-	}
-
-	protected String resolve(TemplateContext context) {
-		return HTMLCorePlugin.getDefault().getPluginPreferences().getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/TemplateContextTypeHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/TemplateContextTypeHTML.java
deleted file mode 100644
index bf775f4..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/TemplateContextTypeHTML.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.wst.html.ui.internal.templates;
-
-import org.eclipse.jface.text.templates.GlobalTemplateVariables;
-import org.eclipse.jface.text.templates.TemplateContextType;
-
-/**
- * Base class for HTML template context types. Templates of this context type
- * apply to any place within HTML content type.
- */
-public class TemplateContextTypeHTML extends TemplateContextType {
-
-	public TemplateContextTypeHTML() {
-		super();
-		addResolver(new GlobalTemplateVariables.Cursor());
-		addResolver(new GlobalTemplateVariables.Date());
-		addResolver(new GlobalTemplateVariables.Dollar());
-		addResolver(new GlobalTemplateVariables.LineSelection());
-		addResolver(new GlobalTemplateVariables.Time());
-		addResolver(new GlobalTemplateVariables.User());
-		addResolver(new GlobalTemplateVariables.WordSelection());
-		addResolver(new GlobalTemplateVariables.Year());
-		addResolver(new EncodingTemplateVariableResolverHTML());
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/TemplateContextTypeIdsHTML.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/TemplateContextTypeIdsHTML.java
deleted file mode 100644
index 794b13d..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/templates/TemplateContextTypeIdsHTML.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.templates;
-
-
-public class TemplateContextTypeIdsHTML {
-
-	public static final String ALL = getAll();
-
-	public static final String ATTRIBUTE = getAttribute();
-
-	public static final String ATTRIBUTE_VALUE = getAttributeValue();
-
-	public static final String NEW = getNew();
-
-	public static final String TAG = getTag();
-
-	private static String getAll() {
-		return getPrefix() + "_all"; //$NON-NLS-1$
-	}
-
-	private static String getAttribute() {
-		return getPrefix() + "_attribute"; //$NON-NLS-1$
-	}
-
-	private static String getAttributeValue() {
-		return getPrefix() + "_attribute_value"; //$NON-NLS-1$
-	}
-
-	private static String getNew() {
-		return getPrefix() + "_new"; //$NON-NLS-1$
-	}
-
-	private static String getTag() {
-		return getPrefix() + "_tag"; //$NON-NLS-1$
-	}
-
-	private static String getPrefix() {
-		return "html"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/HTMLDocumentRegionEdgeMatcher.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/HTMLDocumentRegionEdgeMatcher.java
deleted file mode 100644
index 7cbce42..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/HTMLDocumentRegionEdgeMatcher.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.text;
-
-import org.eclipse.wst.sse.ui.internal.text.DocumentRegionEdgeMatcher;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-public class HTMLDocumentRegionEdgeMatcher extends DocumentRegionEdgeMatcher {
-
-	protected final static char[] BRACKETS = {'{', '}', '(', ')', '[', ']'};
-
-	/**
-	 * @param validContexts
-	 * @param nextMatcher
-	 */
-	public HTMLDocumentRegionEdgeMatcher() {
-		super(new String[]{DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_COMMENT_TEXT, DOMRegionContext.XML_CDATA_TEXT, DOMRegionContext.XML_PI_OPEN, DOMRegionContext.XML_PI_CONTENT}, new JavaPairMatcher(BRACKETS));
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/IJavaPartitions.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/IJavaPartitions.java
deleted file mode 100644
index b9d8561..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/IJavaPartitions.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.text;
-
-// taken from package org.eclipse.jdt.ui.text;
-
-/**
- * Definition of Java partitioning and its partitions.
- * 
- * @see Eclipse 3.1
- */
-interface IJavaPartitions {
-
-	/**
-	 * The identifier of the Java partitioning.
-	 */
-	String JAVA_PARTITIONING = "___java_partitioning"; //$NON-NLS-1$
-
-	/**
-	 * The identifier of the single-line (JLS2: EndOfLineComment) end comment
-	 * partition content type.
-	 */
-	String JAVA_SINGLE_LINE_COMMENT = "__java_singleline_comment"; //$NON-NLS-1$
-
-	/**
-	 * The identifier multi-line (JLS2: TraditionalComment) comment partition
-	 * content type.
-	 */
-	String JAVA_MULTI_LINE_COMMENT = "__java_multiline_comment"; //$NON-NLS-1$
-
-	/**
-	 * The identifier of the Javadoc (JLS2: DocumentationComment) partition
-	 * content type.
-	 */
-	String JAVA_DOC = "__java_javadoc"; //$NON-NLS-1$
-
-	/**
-	 * The identifier of the Java string partition content type.
-	 */
-	String JAVA_STRING = "__java_string"; //$NON-NLS-1$
-
-	/**
-	 * The identifier of the Java character partition content type.
-	 */
-	String JAVA_CHARACTER = "__java_character"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaCodeReader.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaCodeReader.java
deleted file mode 100644
index e3cace3..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaCodeReader.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.text;
-
-// taken from package org.eclipse.jdt.ui.text;
-
-import java.io.IOException;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.html.ui.internal.derived.SingleCharReader;
-
-/**
- * Reads from a document either forwards or backwards. May be configured to
- * skip comments and strings.
- */
-class JavaCodeReader extends SingleCharReader {
-
-	/** The EOF character */
-	public static final int EOF = -1;
-
-	private boolean fSkipComments = false;
-	private boolean fSkipStrings = false;
-	private boolean fForward = false;
-
-	private IDocument fDocument;
-	private int fOffset;
-
-	private int fEnd = -1;
-	private int fCachedLineNumber = -1;
-	private int fCachedLineOffset = -1;
-
-
-	public JavaCodeReader() {
-	}
-
-	/**
-	 * Returns the offset of the last read character. Should only be called
-	 * after read has been called.
-	 */
-	public int getOffset() {
-		return fForward ? fOffset - 1 : fOffset;
-	}
-
-	public void configureForwardReader(IDocument document, int offset, int length, boolean skipComments, boolean skipStrings) throws IOException {
-		fDocument = document;
-		fOffset = offset;
-		fSkipComments = skipComments;
-		fSkipStrings = skipStrings;
-
-		fForward = true;
-		fEnd = Math.min(fDocument.getLength(), fOffset + length);
-	}
-
-	public void configureBackwardReader(IDocument document, int offset, boolean skipComments, boolean skipStrings) throws IOException {
-		fDocument = document;
-		fOffset = offset;
-		fSkipComments = skipComments;
-		fSkipStrings = skipStrings;
-
-		fForward = false;
-		try {
-			fCachedLineNumber = fDocument.getLineOfOffset(fOffset);
-		}
-		catch (BadLocationException x) {
-			throw new IOException(x.getMessage());
-		}
-	}
-
-	/*
-	 * @see Reader#close()
-	 */
-	public void close() throws IOException {
-		fDocument = null;
-	}
-
-	/*
-	 * @see SingleCharReader#read()
-	 */
-	public int read() throws IOException {
-		try {
-			return fForward ? readForwards() : readBackwards();
-		}
-		catch (BadLocationException x) {
-			throw new IOException(x.getMessage());
-		}
-	}
-
-	private void gotoCommentEnd() throws BadLocationException {
-		while (fOffset < fEnd) {
-			char current = fDocument.getChar(fOffset++);
-			if (current == '*') {
-				if (fOffset < fEnd && fDocument.getChar(fOffset) == '/') {
-					++fOffset;
-					return;
-				}
-			}
-		}
-	}
-
-	private void gotoStringEnd(char delimiter) throws BadLocationException {
-		while (fOffset < fEnd) {
-			char current = fDocument.getChar(fOffset++);
-			if (current == '\\') {
-				// ignore escaped characters
-				++fOffset;
-			}
-			else if (current == delimiter) {
-				return;
-			}
-		}
-	}
-
-	private void gotoLineEnd() throws BadLocationException {
-		int line = fDocument.getLineOfOffset(fOffset);
-		fOffset = fDocument.getLineOffset(line + 1);
-	}
-
-	private int readForwards() throws BadLocationException {
-		while (fOffset < fEnd) {
-			char current = fDocument.getChar(fOffset++);
-
-			switch (current) {
-				case '/' :
-
-					if (fSkipComments && fOffset < fEnd) {
-						char next = fDocument.getChar(fOffset);
-						if (next == '*') {
-							// a comment starts, advance to the comment end
-							++fOffset;
-							gotoCommentEnd();
-							continue;
-						}
-						else if (next == '/') {
-							// '//'-comment starts, advance to the line end
-							gotoLineEnd();
-							continue;
-						}
-					}
-
-					return current;
-
-				case '"' :
-				case '\'' :
-
-					if (fSkipStrings) {
-						gotoStringEnd(current);
-						continue;
-					}
-
-					return current;
-			}
-
-			return current;
-		}
-
-		return EOF;
-	}
-
-	private void handleSingleLineComment() throws BadLocationException {
-		int line = fDocument.getLineOfOffset(fOffset);
-		if (line < fCachedLineNumber) {
-			fCachedLineNumber = line;
-			fCachedLineOffset = fDocument.getLineOffset(line);
-			int offset = fOffset;
-			while (fCachedLineOffset < offset) {
-				char current = fDocument.getChar(offset--);
-				if (current == '/' && fCachedLineOffset <= offset && fDocument.getChar(offset) == '/') {
-					fOffset = offset;
-					return;
-				}
-			}
-		}
-	}
-
-	private void gotoCommentStart() throws BadLocationException {
-		while (0 < fOffset) {
-			char current = fDocument.getChar(fOffset--);
-			if (current == '*' && 0 <= fOffset && fDocument.getChar(fOffset) == '/')
-				return;
-		}
-	}
-
-	private void gotoStringStart(char delimiter) throws BadLocationException {
-		while (0 < fOffset) {
-			char current = fDocument.getChar(fOffset);
-			if (current == delimiter) {
-				if (!(0 <= fOffset && fDocument.getChar(fOffset - 1) == '\\'))
-					return;
-			}
-			--fOffset;
-		}
-	}
-
-	private int readBackwards() throws BadLocationException {
-
-		while (0 < fOffset) {
-			--fOffset;
-
-			handleSingleLineComment();
-
-			char current = fDocument.getChar(fOffset);
-			switch (current) {
-				case '/' :
-
-					if (fSkipComments && fOffset > 1) {
-						char next = fDocument.getChar(fOffset - 1);
-						if (next == '*') {
-							// a comment ends, advance to the comment start
-							fOffset -= 2;
-							gotoCommentStart();
-							continue;
-						}
-					}
-
-					return current;
-
-				case '"' :
-				case '\'' :
-
-					if (fSkipStrings) {
-						--fOffset;
-						gotoStringStart(current);
-						continue;
-					}
-
-					return current;
-			}
-
-			return current;
-		}
-
-		return EOF;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaHeuristicScanner.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaHeuristicScanner.java
deleted file mode 100644
index 01602a2..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaHeuristicScanner.java
+++ /dev/null
@@ -1,986 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.text;
-
-// taken from package org.eclipse.jdt.internal.ui.text;
-
-import java.util.Arrays;
-
-import org.eclipse.jface.text.Assert;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.TypedRegion;
-
-/**
- * Utility methods for heuristic based Java manipulations in an incomplete
- * Java source file.
- * 
- * <p>
- * An instance holds some internal position in the document and is therefore
- * not threadsafe.
- * </p>
- * 
- * @see Eclipse 3.0
- */
-final class JavaHeuristicScanner implements Symbols {
-	/**
-	 * Returned by all methods when the requested position could not be found,
-	 * or if a {@link BadLocationException} was thrown while scanning.
-	 */
-	public static final int NOT_FOUND = -1;
-
-	/**
-	 * Special bound parameter that means either -1 (backward scanning) or
-	 * <code>fDocument.getLength()</code> (forward scanning).
-	 */
-	public static final int UNBOUND = -2;
-
-
-	/* character constants */
-	private static final char LBRACE = '{';
-	private static final char RBRACE = '}';
-	private static final char LPAREN = '(';
-	private static final char RPAREN = ')';
-	private static final char SEMICOLON = ';';
-	private static final char COLON = ':';
-	private static final char COMMA = ',';
-	private static final char LBRACKET = '[';
-	private static final char RBRACKET = ']';
-	private static final char QUESTIONMARK = '?';
-	private static final char EQUAL = '=';
-	private static final char LANGLE = '<';
-	private static final char RANGLE = '>';
-
-	/**
-	 * Specifies the stop condition, upon which the <code>scanXXX</code>
-	 * methods will decide whether to keep scanning or not. This interface may
-	 * implemented by clients.
-	 */
-	private static abstract class StopCondition {
-		/**
-		 * Instructs the scanner to return the current position.
-		 * 
-		 * @param ch
-		 *            the char at the current position
-		 * @param position
-		 *            the current position
-		 * @param forward
-		 *            the iteration direction
-		 * @return <code>true</code> if the stop condition is met.
-		 */
-		public abstract boolean stop(char ch, int position, boolean forward);
-
-		/**
-		 * Asks the condition to return the next position to query. The
-		 * default is to return the next/previous position.
-		 * 
-		 * @return the next position to scan
-		 */
-		public int nextPosition(int position, boolean forward) {
-			return forward ? position + 1 : position - 1;
-		}
-	}
-
-	/**
-	 * Stops upon a non-whitespace (as defined by
-	 * {@link Character#isWhitespace(char)}) character.
-	 */
-	private static class NonWhitespace extends StopCondition {
-		/*
-		 * @see org.eclipse.jdt.internal.ui.text.JavaHeuristicScanner.StopCondition#stop(char)
-		 */
-		public boolean stop(char ch, int position, boolean forward) {
-			return !Character.isWhitespace(ch);
-		}
-	}
-
-	/**
-	 * Stops upon a non-whitespace character in the default partition.
-	 * 
-	 * @see NonWhitespace
-	 */
-	private final class NonWhitespaceDefaultPartition extends NonWhitespace {
-		/*
-		 * @see org.eclipse.jdt.internal.ui.text.JavaHeuristicScanner.StopCondition#stop(char)
-		 */
-		public boolean stop(char ch, int position, boolean forward) {
-			return super.stop(ch, position, true) && isDefaultPartition(position);
-		}
-
-		/*
-		 * @see org.eclipse.jdt.internal.ui.text.JavaHeuristicScanner.StopCondition#nextPosition(int,
-		 *      boolean)
-		 */
-		public int nextPosition(int position, boolean forward) {
-			ITypedRegion partition = getPartition(position);
-			if (fPartition.equals(partition.getType()))
-				return super.nextPosition(position, forward);
-
-			if (forward) {
-				int end = partition.getOffset() + partition.getLength();
-				if (position < end)
-					return end;
-			}
-			else {
-				int offset = partition.getOffset();
-				if (position > offset)
-					return offset - 1;
-			}
-			return super.nextPosition(position, forward);
-		}
-	}
-
-	/**
-	 * Stops upon a non-java identifier (as defined by
-	 * {@link Character#isJavaIdentifierPart(char)}) character.
-	 */
-	private static class NonJavaIdentifierPart extends StopCondition {
-		/*
-		 * @see org.eclipse.jdt.internal.ui.text.JavaHeuristicScanner.StopCondition#stop(char)
-		 */
-		public boolean stop(char ch, int position, boolean forward) {
-			return !Character.isJavaIdentifierPart(ch);
-		}
-	}
-
-	/**
-	 * Stops upon a non-java identifier character in the default partition.
-	 * 
-	 * @see NonJavaIdentifierPart
-	 */
-	private final class NonJavaIdentifierPartDefaultPartition extends NonJavaIdentifierPart {
-		/*
-		 * @see org.eclipse.jdt.internal.ui.text.JavaHeuristicScanner.StopCondition#stop(char)
-		 */
-		public boolean stop(char ch, int position, boolean forward) {
-			return super.stop(ch, position, true) || !isDefaultPartition(position);
-		}
-
-		/*
-		 * @see org.eclipse.jdt.internal.ui.text.JavaHeuristicScanner.StopCondition#nextPosition(int,
-		 *      boolean)
-		 */
-		public int nextPosition(int position, boolean forward) {
-			ITypedRegion partition = getPartition(position);
-			if (fPartition.equals(partition.getType()))
-				return super.nextPosition(position, forward);
-
-			if (forward) {
-				int end = partition.getOffset() + partition.getLength();
-				if (position < end)
-					return end;
-			}
-			else {
-				int offset = partition.getOffset();
-				if (position > offset)
-					return offset - 1;
-			}
-			return super.nextPosition(position, forward);
-		}
-	}
-
-	/**
-	 * Stops upon a character in the default partition that matches the given
-	 * character list.
-	 */
-	private final class CharacterMatch extends StopCondition {
-		private final char[] fChars;
-
-		/**
-		 * Creates a new instance.
-		 * 
-		 * @param ch
-		 *            the single character to match
-		 */
-		public CharacterMatch(char ch) {
-			this(new char[]{ch});
-		}
-
-		/**
-		 * Creates a new instance.
-		 * 
-		 * @param chars
-		 *            the chars to match.
-		 */
-		public CharacterMatch(char[] chars) {
-			Assert.isNotNull(chars);
-			Assert.isTrue(chars.length > 0);
-			fChars = chars;
-			Arrays.sort(chars);
-		}
-
-		/*
-		 * @see org.eclipse.jdt.internal.ui.text.JavaHeuristicScanner.StopCondition#stop(char,
-		 *      int)
-		 */
-		public boolean stop(char ch, int position, boolean forward) {
-			return Arrays.binarySearch(fChars, ch) >= 0 && isDefaultPartition(position);
-		}
-
-		/*
-		 * @see org.eclipse.jdt.internal.ui.text.JavaHeuristicScanner.StopCondition#nextPosition(int,
-		 *      boolean)
-		 */
-		public int nextPosition(int position, boolean forward) {
-			ITypedRegion partition = getPartition(position);
-			if (fPartition.equals(partition.getType()))
-				return super.nextPosition(position, forward);
-
-			if (forward) {
-				int end = partition.getOffset() + partition.getLength();
-				if (position < end)
-					return end;
-			}
-			else {
-				int offset = partition.getOffset();
-				if (position > offset)
-					return offset - 1;
-			}
-			return super.nextPosition(position, forward);
-		}
-	}
-
-	/** The document being scanned. */
-	private IDocument fDocument;
-	/** The partitioning being used for scanning. */
-	private String fPartitioning;
-	/** The partition to scan in. */
-	private String fPartition;
-
-	/* internal scan state */
-
-	/** the most recently read character. */
-	private char fChar;
-	/** the most recently read position. */
-	private int fPos;
-
-	/* preset stop conditions */
-	private final StopCondition fNonWSDefaultPart = new NonWhitespaceDefaultPartition();
-	private final static StopCondition fNonWS = new NonWhitespace();
-	private final StopCondition fNonIdent = new NonJavaIdentifierPartDefaultPartition();
-
-	/**
-	 * Creates a new instance.
-	 * 
-	 * @param document
-	 *            the document to scan
-	 * @param partitioning
-	 *            the partitioning to use for scanning
-	 * @param partition
-	 *            the partition to scan in
-	 */
-	public JavaHeuristicScanner(IDocument document, String partitioning, String partition) {
-		Assert.isNotNull(document);
-		Assert.isNotNull(partitioning);
-		Assert.isNotNull(partition);
-		fDocument = document;
-		fPartitioning = partitioning;
-		fPartition = partition;
-	}
-
-	/**
-	 * Calls
-	 * <code>this(document, IJavaPartitions.JAVA_PARTITIONING, IDocument.DEFAULT_CONTENT_TYPE)</code>.
-	 * 
-	 * @param document
-	 *            the document to scan.
-	 */
-	public JavaHeuristicScanner(IDocument document) {
-		this(document, IJavaPartitions.JAVA_PARTITIONING, IDocument.DEFAULT_CONTENT_TYPE);
-	}
-
-	/**
-	 * Returns the most recent internal scan position.
-	 * 
-	 * @return the most recent internal scan position.
-	 */
-	public int getPosition() {
-		return fPos;
-	}
-
-	/**
-	 * Returns the next token in forward direction, starting at
-	 * <code>start</code>, and not extending further than
-	 * <code>bound</code>. The return value is one of the constants defined
-	 * in {@link Symbols}. After a call, {@link #getPosition()} will return
-	 * the position just after the scanned token (i.e. the next position that
-	 * will be scanned).
-	 * 
-	 * @param start
-	 *            the first character position in the document to consider
-	 * @param bound
-	 *            the first position not to consider any more
-	 * @return a constant from {@link Symbols} describing the next token
-	 */
-	public int nextToken(int start, int bound) {
-		int pos = scanForward(start, bound, fNonWSDefaultPart);
-		if (pos == NOT_FOUND)
-			return TokenEOF;
-
-		fPos++;
-
-		switch (fChar) {
-			case LBRACE :
-				return TokenLBRACE;
-			case RBRACE :
-				return TokenRBRACE;
-			case LBRACKET :
-				return TokenLBRACKET;
-			case RBRACKET :
-				return TokenRBRACKET;
-			case LPAREN :
-				return TokenLPAREN;
-			case RPAREN :
-				return TokenRPAREN;
-			case SEMICOLON :
-				return TokenSEMICOLON;
-			case COMMA :
-				return TokenCOMMA;
-			case QUESTIONMARK :
-				return TokenQUESTIONMARK;
-			case EQUAL :
-				return TokenEQUAL;
-			case LANGLE :
-				return TokenLESSTHAN;
-			case RANGLE :
-				return TokenGREATERTHAN;
-		}
-
-		// else
-		if (Character.isJavaIdentifierPart(fChar)) {
-			// assume an ident or keyword
-			int from = pos, to;
-			pos = scanForward(pos + 1, bound, fNonIdent);
-			if (pos == NOT_FOUND)
-				to = bound == UNBOUND ? fDocument.getLength() : bound;
-			else
-				to = pos;
-
-			String identOrKeyword;
-			try {
-				identOrKeyword = fDocument.get(from, to - from);
-			}
-			catch (BadLocationException e) {
-				return TokenEOF;
-			}
-
-			return getToken(identOrKeyword);
-
-
-		}
-		else {
-			// operators, number literals etc
-			return TokenOTHER;
-		}
-	}
-
-	/**
-	 * Returns the next token in backward direction, starting at
-	 * <code>start</code>, and not extending further than
-	 * <code>bound</code>. The return value is one of the constants defined
-	 * in {@link Symbols}. After a call, {@link #getPosition()} will return
-	 * the position just before the scanned token starts (i.e. the next
-	 * position that will be scanned).
-	 * 
-	 * @param start
-	 *            the first character position in the document to consider
-	 * @param bound
-	 *            the first position not to consider any more
-	 * @return a constant from {@link Symbols} describing the previous token
-	 */
-	public int previousToken(int start, int bound) {
-		int pos = scanBackward(start, bound, fNonWSDefaultPart);
-		if (pos == NOT_FOUND)
-			return TokenEOF;
-
-		fPos--;
-
-		switch (fChar) {
-			case LBRACE :
-				return TokenLBRACE;
-			case RBRACE :
-				return TokenRBRACE;
-			case LBRACKET :
-				return TokenLBRACKET;
-			case RBRACKET :
-				return TokenRBRACKET;
-			case LPAREN :
-				return TokenLPAREN;
-			case RPAREN :
-				return TokenRPAREN;
-			case SEMICOLON :
-				return TokenSEMICOLON;
-			case COLON :
-				return TokenCOLON;
-			case COMMA :
-				return TokenCOMMA;
-			case QUESTIONMARK :
-				return TokenQUESTIONMARK;
-			case EQUAL :
-				return TokenEQUAL;
-			case LANGLE :
-				return TokenLESSTHAN;
-			case RANGLE :
-				return TokenGREATERTHAN;
-		}
-
-		// else
-		if (Character.isJavaIdentifierPart(fChar)) {
-			// assume an ident or keyword
-			int from, to = pos + 1;
-			pos = scanBackward(pos - 1, bound, fNonIdent);
-			if (pos == NOT_FOUND)
-				from = bound == UNBOUND ? 0 : bound + 1;
-			else
-				from = pos + 1;
-
-			String identOrKeyword;
-			try {
-				identOrKeyword = fDocument.get(from, to - from);
-			}
-			catch (BadLocationException e) {
-				return TokenEOF;
-			}
-
-			return getToken(identOrKeyword);
-
-
-		}
-		else {
-			// operators, number literals etc
-			return TokenOTHER;
-		}
-
-	}
-
-	/**
-	 * Returns one of the keyword constants or <code>TokenIDENT</code> for a
-	 * scanned identifier.
-	 * 
-	 * @param s
-	 *            a scanned identifier
-	 * @return one of the constants defined in {@link Symbols}
-	 */
-	private int getToken(String s) {
-		Assert.isNotNull(s);
-
-		switch (s.length()) {
-			case 2 :
-				if ("if".equals(s)) //$NON-NLS-1$
-					return TokenIF;
-				if ("do".equals(s)) //$NON-NLS-1$
-					return TokenDO;
-				break;
-			case 3 :
-				if ("for".equals(s)) //$NON-NLS-1$
-					return TokenFOR;
-				if ("try".equals(s)) //$NON-NLS-1$
-					return TokenTRY;
-				if ("new".equals(s)) //$NON-NLS-1$
-					return TokenNEW;
-				break;
-			case 4 :
-				if ("case".equals(s)) //$NON-NLS-1$
-					return TokenCASE;
-				if ("else".equals(s)) //$NON-NLS-1$
-					return TokenELSE;
-				if ("enum".equals(s)) //$NON-NLS-1$
-					return TokenENUM;
-				if ("goto".equals(s)) //$NON-NLS-1$
-					return TokenGOTO;
-				break;
-			case 5 :
-				if ("break".equals(s)) //$NON-NLS-1$
-					return TokenBREAK;
-				if ("catch".equals(s)) //$NON-NLS-1$
-					return TokenCATCH;
-				if ("class".equals(s)) //$NON-NLS-1$
-					return TokenCLASS;
-				if ("while".equals(s)) //$NON-NLS-1$
-					return TokenWHILE;
-				break;
-			case 6 :
-				if ("return".equals(s)) //$NON-NLS-1$
-					return TokenRETURN;
-				if ("static".equals(s)) //$NON-NLS-1$
-					return TokenSTATIC;
-				if ("switch".equals(s)) //$NON-NLS-1$
-					return TokenSWITCH;
-				break;
-			case 7 :
-				if ("default".equals(s)) //$NON-NLS-1$
-					return TokenDEFAULT;
-				if ("finally".equals(s)) //$NON-NLS-1$
-					return TokenFINALLY;
-				break;
-			case 9 :
-				if ("interface".equals(s)) //$NON-NLS-1$
-					return TokenINTERFACE;
-				break;
-			case 12 :
-				if ("synchronized".equals(s)) //$NON-NLS-1$
-					return TokenSYNCHRONIZED;
-				break;
-		}
-		return TokenIDENT;
-	}
-
-	/**
-	 * Returns the position of the closing peer character (forward search).
-	 * Any scopes introduced by opening peers are skipped. All peers accounted
-	 * for must reside in the default partition.
-	 * 
-	 * <p>
-	 * Note that <code>start</code> must not point to the opening peer, but
-	 * to the first character being searched.
-	 * </p>
-	 * 
-	 * @param start
-	 *            the start position
-	 * @param openingPeer
-	 *            the opening peer character (e.g. '{')
-	 * @param closingPeer
-	 *            the closing peer character (e.g. '}')
-	 * @return the matching peer character position, or <code>NOT_FOUND</code>
-	 */
-	public int findClosingPeer(int start, final char openingPeer, final char closingPeer) {
-		Assert.isNotNull(fDocument);
-		Assert.isTrue(start >= 0);
-
-		try {
-			int depth = 1;
-			start -= 1;
-			while (true) {
-				start = scanForward(start + 1, UNBOUND, new CharacterMatch(new char[]{openingPeer, closingPeer}));
-				if (start == NOT_FOUND)
-					return NOT_FOUND;
-
-				if (fDocument.getChar(start) == openingPeer)
-					depth++;
-				else
-					depth--;
-
-				if (depth == 0)
-					return start;
-			}
-
-		}
-		catch (BadLocationException e) {
-			return NOT_FOUND;
-		}
-	}
-
-	/**
-	 * Returns the position of the opening peer character (backward search).
-	 * Any scopes introduced by closing peers are skipped. All peers accounted
-	 * for must reside in the default partition.
-	 * 
-	 * <p>
-	 * Note that <code>start</code> must not point to the closing peer, but
-	 * to the first character being searched.
-	 * </p>
-	 * 
-	 * @param start
-	 *            the start position
-	 * @param openingPeer
-	 *            the opening peer character (e.g. '{')
-	 * @param closingPeer
-	 *            the closing peer character (e.g. '}')
-	 * @return the matching peer character position, or <code>NOT_FOUND</code>
-	 */
-	public int findOpeningPeer(int start, char openingPeer, char closingPeer) {
-		Assert.isTrue(start < fDocument.getLength());
-
-		try {
-			int depth = 1;
-			start += 1;
-			while (true) {
-				start = scanBackward(start - 1, UNBOUND, new CharacterMatch(new char[]{openingPeer, closingPeer}));
-				if (start == NOT_FOUND)
-					return NOT_FOUND;
-
-				if (fDocument.getChar(start) == closingPeer)
-					depth++;
-				else
-					depth--;
-
-				if (depth == 0)
-					return start;
-			}
-
-		}
-		catch (BadLocationException e) {
-			return NOT_FOUND;
-		}
-	}
-
-	/**
-	 * Computes the surrounding block around <code>offset</code>. The
-	 * search is started at the beginning of <code>offset</code>, i.e. an
-	 * opening brace at <code>offset</code> will not be part of the
-	 * surrounding block, but a closing brace will.
-	 * 
-	 * @param offset
-	 *            the offset for which the surrounding block is computed
-	 * @return a region describing the surrounding block, or <code>null</code>
-	 *         if none can be found
-	 */
-	public IRegion findSurroundingBlock(int offset) {
-		if (offset < 1 || offset >= fDocument.getLength())
-			return null;
-
-		int begin = findOpeningPeer(offset - 1, LBRACE, RBRACE);
-		int end = findClosingPeer(offset, LBRACE, RBRACE);
-		if (begin == NOT_FOUND || end == NOT_FOUND)
-			return null;
-		return new Region(begin, end + 1 - begin);
-	}
-
-	/**
-	 * Finds the smallest position in <code>fDocument</code> such that the
-	 * position is &gt;= <code>position</code> and &lt; <code>bound</code>
-	 * and <code>Character.isWhitespace(fDocument.getChar(pos))</code>
-	 * evaluates to <code>false</code> and the position is in the default
-	 * partition.
-	 * 
-	 * @param position
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &gt;
-	 *            <code>position</code>, or <code>UNBOUND</code>
-	 * @return the smallest position of a non-whitespace character in [<code>position</code>,
-	 *         <code>bound</code>) that resides in a Java partition, or
-	 *         <code>NOT_FOUND</code> if none can be found
-	 */
-	public int findNonWhitespaceForward(int position, int bound) {
-		return scanForward(position, bound, fNonWSDefaultPart);
-	}
-
-	/**
-	 * Finds the smallest position in <code>fDocument</code> such that the
-	 * position is &gt;= <code>position</code> and &lt; <code>bound</code>
-	 * and <code>Character.isWhitespace(fDocument.getChar(pos))</code>
-	 * evaluates to <code>false</code>.
-	 * 
-	 * @param position
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &gt;
-	 *            <code>position</code>, or <code>UNBOUND</code>
-	 * @return the smallest position of a non-whitespace character in [<code>position</code>,
-	 *         <code>bound</code>), or <code>NOT_FOUND</code> if none can
-	 *         be found
-	 */
-	public int findNonWhitespaceForwardInAnyPartition(int position, int bound) {
-		return scanForward(position, bound, fNonWS);
-	}
-
-	/**
-	 * Finds the highest position in <code>fDocument</code> such that the
-	 * position is &lt;= <code>position</code> and &gt; <code>bound</code>
-	 * and <code>Character.isWhitespace(fDocument.getChar(pos))</code>
-	 * evaluates to <code>false</code> and the position is in the default
-	 * partition.
-	 * 
-	 * @param position
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &lt;
-	 *            <code>position</code>, or <code>UNBOUND</code>
-	 * @return the highest position of a non-whitespace character in (<code>bound</code>,
-	 *         <code>position</code>] that resides in a Java partition, or
-	 *         <code>NOT_FOUND</code> if none can be found
-	 */
-	public int findNonWhitespaceBackward(int position, int bound) {
-		return scanBackward(position, bound, fNonWSDefaultPart);
-	}
-
-	/**
-	 * Finds the lowest position <code>p</code> in <code>fDocument</code>
-	 * such that <code>start</code> &lt;= p &lt; <code>bound</code> and
-	 * <code>condition.stop(fDocument.getChar(p), p)</code> evaluates to
-	 * <code>true</code>.
-	 * 
-	 * @param start
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &gt;
-	 *            <code>start</code>, or <code>UNBOUND</code>
-	 * @param condition
-	 *            the <code>StopCondition</code> to check
-	 * @return the lowest position in [<code>start</code>,
-	 *         <code>bound</code>) for which <code>condition</code>
-	 *         holds, or <code>NOT_FOUND</code> if none can be found
-	 */
-	public int scanForward(int start, int bound, StopCondition condition) {
-		Assert.isTrue(start >= 0);
-
-		if (bound == UNBOUND)
-			bound = fDocument.getLength();
-
-		Assert.isTrue(bound <= fDocument.getLength());
-
-		try {
-			fPos = start;
-			while (fPos < bound) {
-
-				fChar = fDocument.getChar(fPos);
-				if (condition.stop(fChar, fPos, true))
-					return fPos;
-
-				fPos = condition.nextPosition(fPos, true);
-			}
-		}
-		catch (BadLocationException e) {
-		}
-		return NOT_FOUND;
-	}
-
-
-	/**
-	 * Finds the lowest position in <code>fDocument</code> such that the
-	 * position is &gt;= <code>position</code> and &lt; <code>bound</code>
-	 * and <code>fDocument.getChar(position) == ch</code> evaluates to
-	 * <code>true</code> and the position is in the default partition.
-	 * 
-	 * @param position
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &gt;
-	 *            <code>position</code>, or <code>UNBOUND</code>
-	 * @param ch
-	 *            the <code>char</code> to search for
-	 * @return the lowest position of <code>ch</code> in (<code>bound</code>,
-	 *         <code>position</code>] that resides in a Java partition, or
-	 *         <code>NOT_FOUND</code> if none can be found
-	 */
-	public int scanForward(int position, int bound, char ch) {
-		return scanForward(position, bound, new CharacterMatch(ch));
-	}
-
-	/**
-	 * Finds the lowest position in <code>fDocument</code> such that the
-	 * position is &gt;= <code>position</code> and &lt; <code>bound</code>
-	 * and <code>fDocument.getChar(position) == ch</code> evaluates to
-	 * <code>true</code> for at least one ch in <code>chars</code> and the
-	 * position is in the default partition.
-	 * 
-	 * @param position
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &gt;
-	 *            <code>position</code>, or <code>UNBOUND</code>
-	 * @param chars
-	 *            an array of <code>char</code> to search for
-	 * @return the lowest position of a non-whitespace character in [<code>position</code>,
-	 *         <code>bound</code>) that resides in a Java partition, or
-	 *         <code>NOT_FOUND</code> if none can be found
-	 */
-	public int scanForward(int position, int bound, char[] chars) {
-		return scanForward(position, bound, new CharacterMatch(chars));
-	}
-
-	/**
-	 * Finds the highest position <code>p</code> in <code>fDocument</code>
-	 * such that <code>bound</code> &lt; <code>p</code> &lt;=
-	 * <code>start</code> and
-	 * <code>condition.stop(fDocument.getChar(p), p)</code> evaluates to
-	 * <code>true</code>.
-	 * 
-	 * @param start
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &lt;
-	 *            <code>start</code>, or <code>UNBOUND</code>
-	 * @param condition
-	 *            the <code>StopCondition</code> to check
-	 * @return the highest position in (<code>bound</code>,
-	 *         <code>start</code> for which <code>condition</code> holds,
-	 *         or <code>NOT_FOUND</code> if none can be found
-	 */
-	public int scanBackward(int start, int bound, StopCondition condition) {
-		if (bound == UNBOUND)
-			bound = -1;
-
-		Assert.isTrue(bound >= -1);
-		Assert.isTrue(start < fDocument.getLength());
-
-		try {
-			fPos = start;
-			while (fPos > bound) {
-
-				fChar = fDocument.getChar(fPos);
-				if (condition.stop(fChar, fPos, false))
-					return fPos;
-
-				fPos = condition.nextPosition(fPos, false);
-			}
-		}
-		catch (BadLocationException e) {
-		}
-		return NOT_FOUND;
-	}
-
-	/**
-	 * Finds the highest position in <code>fDocument</code> such that the
-	 * position is &lt;= <code>position</code> and &gt; <code>bound</code>
-	 * and <code>fDocument.getChar(position) == ch</code> evaluates to
-	 * <code>true</code> for at least one ch in <code>chars</code> and the
-	 * position is in the default partition.
-	 * 
-	 * @param position
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &lt;
-	 *            <code>position</code>, or <code>UNBOUND</code>
-	 * @param ch
-	 *            the <code>char</code> to search for
-	 * @return the highest position of one element in <code>chars</code> in (<code>bound</code>,
-	 *         <code>position</code>] that resides in a Java partition, or
-	 *         <code>NOT_FOUND</code> if none can be found
-	 */
-	public int scanBackward(int position, int bound, char ch) {
-		return scanBackward(position, bound, new CharacterMatch(ch));
-	}
-
-	/**
-	 * Finds the highest position in <code>fDocument</code> such that the
-	 * position is &lt;= <code>position</code> and &gt; <code>bound</code>
-	 * and <code>fDocument.getChar(position) == ch</code> evaluates to
-	 * <code>true</code> for at least one ch in <code>chars</code> and the
-	 * position is in the default partition.
-	 * 
-	 * @param position
-	 *            the first character position in <code>fDocument</code> to
-	 *            be considered
-	 * @param bound
-	 *            the first position in <code>fDocument</code> to not
-	 *            consider any more, with <code>bound</code> &lt;
-	 *            <code>position</code>, or <code>UNBOUND</code>
-	 * @param chars
-	 *            an array of <code>char</code> to search for
-	 * @return the highest position of one element in <code>chars</code> in (<code>bound</code>,
-	 *         <code>position</code>] that resides in a Java partition, or
-	 *         <code>NOT_FOUND</code> if none can be found
-	 */
-	public int scanBackward(int position, int bound, char[] chars) {
-		return scanBackward(position, bound, new CharacterMatch(chars));
-	}
-
-	/**
-	 * Checks whether <code>position</code> resides in a default (Java)
-	 * partition of <code>fDocument</code>.
-	 * 
-	 * @param position
-	 *            the position to be checked
-	 * @return <code>true</code> if <code>position</code> is in the
-	 *         default partition of <code>fDocument</code>,
-	 *         <code>false</code> otherwise
-	 */
-	public boolean isDefaultPartition(int position) {
-		Assert.isTrue(position >= 0);
-		Assert.isTrue(position <= fDocument.getLength());
-
-		try {
-			return fPartition.equals(TextUtilities.getContentType(fDocument, fPartitioning, position, false));
-		}
-		catch (BadLocationException e) {
-			return false;
-		}
-	}
-
-	/**
-	 * Returns the partition at <code>position</code>.
-	 * 
-	 * @param position
-	 *            the position to get the partition for
-	 * @return the partition at <code>position</code> or a dummy zero-length
-	 *         partition if accessing the document fails
-	 */
-	private ITypedRegion getPartition(int position) {
-		Assert.isTrue(position >= 0);
-		Assert.isTrue(position <= fDocument.getLength());
-
-		try {
-			return TextUtilities.getPartition(fDocument, fPartitioning, position, false);
-		}
-		catch (BadLocationException e) {
-			return new TypedRegion(position, 0, "__no_partition_at_all"); //$NON-NLS-1$
-		}
-
-	}
-
-	/**
-	 * Checks if the line seems to be an open condition not followed by a
-	 * block (i.e. an if, while, or for statement with just one following
-	 * statement, see example below).
-	 * 
-	 * <pre>
-	 * if (condition)
-	 * 	doStuff();
-	 * </pre>
-	 * 
-	 * <p>
-	 * Algorithm: if the last non-WS, non-Comment code on the line is an if
-	 * (condition), while (condition), for( expression), do, else, and there
-	 * is no statement after that
-	 * </p>
-	 * 
-	 * @param position
-	 *            the insert position of the new character
-	 * @param bound
-	 *            the lowest position to consider
-	 * @return <code>true</code> if the code is a conditional statement or
-	 *         loop without a block, <code>false</code> otherwise
-	 */
-	public boolean isBracelessBlockStart(int position, int bound) {
-		if (position < 1)
-			return false;
-
-		switch (previousToken(position, bound)) {
-			case TokenDO :
-			case TokenELSE :
-				return true;
-			case TokenRPAREN :
-				position = findOpeningPeer(fPos, LPAREN, RPAREN);
-				if (position > 0) {
-					switch (previousToken(position - 1, bound)) {
-						case TokenIF :
-						case TokenFOR :
-						case TokenWHILE :
-							return true;
-					}
-				}
-		}
-
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaPairMatcher.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaPairMatcher.java
deleted file mode 100644
index 020769f..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/JavaPairMatcher.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.text;
-
-// taken from package org.eclipse.jdt.ui.text;
-
-import java.io.IOException;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.source.ICharacterPairMatcher;
-
-class JavaPairMatcher implements ICharacterPairMatcher {
-
-	protected char[] fPairs;
-	protected IDocument fDocument;
-	protected int fOffset;
-
-	protected int fStartPos;
-	protected int fEndPos;
-	protected int fAnchor;
-
-	protected JavaCodeReader fReader = new JavaCodeReader();
-	/**
-	 * Stores the source version state.
-	 * 
-	 * @see Eclipse  3.1
-	 */
-	private boolean fHighlightAngularBrackets = false;
-
-
-	public JavaPairMatcher(char[] pairs) {
-		fPairs = pairs;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#match(org.eclipse.jface.text.IDocument,
-	 *      int)
-	 */
-	public IRegion match(IDocument document, int offset) {
-		fOffset = offset;
-
-		if(offset < 0 || offset >= document.getLength())
-			return null;
-
-		fDocument = document;
-
-		if (fDocument != null && matchPairsAt() && fStartPos != fEndPos)
-			return new Region(fStartPos, fEndPos - fStartPos + 1);
-
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#getAnchor()
-	 */
-	public int getAnchor() {
-		return fAnchor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#dispose()
-	 */
-	public void dispose() {
-		clear();
-		fDocument = null;
-		fReader = null;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#clear()
-	 */
-	public void clear() {
-		if (fReader != null) {
-			try {
-				fReader.close();
-			}
-			catch (IOException x) {
-				// ignore
-			}
-		}
-	}
-
-	protected boolean matchPairsAt() {
-
-		int i;
-		int pairIndex1 = fPairs.length;
-		int pairIndex2 = fPairs.length;
-
-		fStartPos = -1;
-		fEndPos = -1;
-
-		// get the chars preceding and following the start position
-		try {
-
-			char prevChar = fDocument.getChar(Math.max(fOffset - 1, 0));
-			// modified behavior for
-			// http://dev.eclipse.org/bugs/show_bug.cgi?id=16879
-			// char nextChar= fDocument.getChar(fOffset);
-
-			// search for opening peer character next to the activation point
-			for (i = 0; i < fPairs.length; i = i + 2) {
-				// if (nextChar == fPairs[i]) {
-				// fStartPos= fOffset;
-				// pairIndex1= i;
-				// } else
-				if (prevChar == fPairs[i]) {
-					fStartPos = fOffset - 1;
-					pairIndex1 = i;
-				}
-			}
-
-			// search for closing peer character next to the activation point
-			for (i = 1; i < fPairs.length; i = i + 2) {
-				if (prevChar == fPairs[i]) {
-					fEndPos = fOffset - 1;
-					pairIndex2 = i;
-				}
-				// else if (nextChar == fPairs[i]) {
-				// fEndPos= fOffset;
-				// pairIndex2= i;
-				// }
-			}
-
-			if (fEndPos > -1) {
-				fAnchor = RIGHT;
-				fStartPos = searchForOpeningPeer(fEndPos, fPairs[pairIndex2 - 1], fPairs[pairIndex2], fDocument);
-				if (fStartPos > -1)
-					return true;
-				else
-					fEndPos = -1;
-			}
-			else if (fStartPos > -1) {
-				fAnchor = LEFT;
-				fEndPos = searchForClosingPeer(fStartPos, fPairs[pairIndex1], fPairs[pairIndex1 + 1], fDocument);
-				if (fEndPos > -1)
-					return true;
-				else
-					fStartPos = -1;
-			}
-
-		}
-		catch (BadLocationException x) {
-		}
-		catch (IOException x) {
-		}
-
-		return false;
-	}
-
-	protected int searchForClosingPeer(int offset, int openingPeer, int closingPeer, IDocument document) throws IOException {
-		if (openingPeer == '<' && !(fHighlightAngularBrackets && isTypeParameterBracket(offset, document)))
-			return -1;
-
-		fReader.configureForwardReader(document, offset + 1, document.getLength(), true, true);
-
-		int stack = 1;
-		int c = fReader.read();
-		while (c != JavaCodeReader.EOF) {
-			if (c == openingPeer && c != closingPeer)
-				stack++;
-			else if (c == closingPeer)
-				stack--;
-
-			if (stack == 0)
-				return fReader.getOffset();
-
-			c = fReader.read();
-		}
-
-		return -1;
-	}
-
-
-	protected int searchForOpeningPeer(int offset, int openingPeer, int closingPeer, IDocument document) throws IOException {
-		if (openingPeer == '<' && !fHighlightAngularBrackets)
-			return -1;
-
-		fReader.configureBackwardReader(document, offset, true, true);
-
-		int stack = 1;
-		int c = fReader.read();
-		while (c != JavaCodeReader.EOF) {
-			if (c == closingPeer && c != openingPeer)
-				stack++;
-			else if (c == openingPeer)
-				stack--;
-
-			if (stack == 0) {
-				if (closingPeer == '>' && !isTypeParameterBracket(fReader.getOffset(), document))
-					return -1;
-				return fReader.getOffset();
-			}
-
-			c = fReader.read();
-		}
-
-		return -1;
-	}
-
-	/**
-	 * Checks if the angular bracket at <code>offset</code> is a type
-	 * parameter bracket.
-	 * 
-	 * @param offset
-	 *            the offset of the opening bracket
-	 * @param document
-	 *            the document
-	 * @return <code>true</code> if the bracket is part of a type parameter,
-	 *         <code>false</code> otherwise
-	 * @see Eclipse  3.1
-	 */
-	private boolean isTypeParameterBracket(int offset, IDocument document) {
-		/*
-		 * type parameter come after braces (closing or opening), semicolons,
-		 * or after a Type name (heuristic: starts with capital character, or
-		 * after a modifier keyword in a method declaration (visibility,
-		 * static, synchronized, final)
-		 */
-
-		try {
-			IRegion line = document.getLineInformationOfOffset(offset);
-
-			JavaHeuristicScanner scanner = new JavaHeuristicScanner(document);
-			int prevToken = scanner.previousToken(offset - 1, line.getOffset());
-			int prevTokenOffset = scanner.getPosition() + 1;
-			String previous = prevToken == Symbols.TokenEOF ? null : document.get(prevTokenOffset, offset - prevTokenOffset).trim();
-
-			if (prevToken == Symbols.TokenLBRACE || prevToken == Symbols.TokenRBRACE || prevToken == Symbols.TokenSEMICOLON || prevToken == Symbols.TokenSYNCHRONIZED || prevToken == Symbols.TokenSTATIC || (prevToken == Symbols.TokenIDENT && isTypeParameterIntroducer(previous)) || prevToken == Symbols.TokenEOF)
-				return true;
-		}
-		catch (BadLocationException e) {
-			return false;
-		}
-
-		return false;
-	}
-
-	/**
-	 * Returns <code>true</code> if <code>identifier</code> is an
-	 * identifier that could come right before a type parameter list. It uses
-	 * a heuristic: if the identifier starts with an upper case, it is assumed
-	 * a type name. Also, if <code>identifier</code> is a method modifier,
-	 * it is assumed that the angular bracket is part of the generic type
-	 * parameter of a method.
-	 * 
-	 * @param identifier
-	 *            the identifier to check
-	 * @return <code>true</code> if the identifier could introduce a type
-	 *         parameter list
-	 * @see Eclipse  3.1
-	 */
-	private boolean isTypeParameterIntroducer(String identifier) {
-		return identifier.length() > 0 && (Character.isUpperCase(identifier.charAt(0)) || identifier.startsWith("final") //$NON-NLS-1$
-					|| identifier.startsWith("public") //$NON-NLS-1$
-					|| identifier.startsWith("public") //$NON-NLS-1$
-					|| identifier.startsWith("protected") //$NON-NLS-1$
-		|| identifier.startsWith("private")); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/Symbols.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/Symbols.java
deleted file mode 100644
index d88615e..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/text/Symbols.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.text;
-
-// taken from package org.eclipse.jdt.ui.text;
-
-/**
- * Symbols for the heuristic java scanner.
- * 
- * @see Eclipse 3.0
- */
-interface Symbols {
-	int TokenEOF = -1;
-	int TokenLBRACE = 1;
-	int TokenRBRACE = 2;
-	int TokenLBRACKET = 3;
-	int TokenRBRACKET = 4;
-	int TokenLPAREN = 5;
-	int TokenRPAREN = 6;
-	int TokenSEMICOLON = 7;
-	int TokenOTHER = 8;
-	int TokenCOLON = 9;
-	int TokenQUESTIONMARK = 10;
-	int TokenCOMMA = 11;
-	int TokenEQUAL = 12;
-	int TokenLESSTHAN = 13;
-	int TokenGREATERTHAN = 14;
-	int TokenIF = 109;
-	int TokenDO = 1010;
-	int TokenFOR = 1011;
-	int TokenTRY = 1012;
-	int TokenCASE = 1013;
-	int TokenELSE = 1014;
-	int TokenBREAK = 1015;
-	int TokenCATCH = 1016;
-	int TokenWHILE = 1017;
-	int TokenRETURN = 1018;
-	int TokenSTATIC = 1019;
-	int TokenSWITCH = 1020;
-	int TokenFINALLY = 1021;
-	int TokenSYNCHRONIZED = 1022;
-	int TokenGOTO = 1023;
-	int TokenDEFAULT = 1024;
-	int TokenNEW = 1025;
-	int TokenCLASS = 1026;
-	int TokenINTERFACE = 1027;
-	int TokenENUM = 1028;
-	int TokenIDENT = 2000;
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLFileWizardPage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLFileWizardPage.java
deleted file mode 100644
index e541788..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLFileWizardPage.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.wizard;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.wst.common.componentcore.ComponentCore;
-import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
-import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
-import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.core.internal.preferences.HTMLCorePreferenceNames;
-import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.Logger;
-
-class NewHTMLFileWizardPage extends WizardNewFileCreationPage {
-
-	private IContentType fContentType;
-	private List fValidExtensions = null;
-	
-	public NewHTMLFileWizardPage(String pageName, IStructuredSelection selection) {
-        super(pageName, selection);
-    }
-	
-	/**
-	 * This method is overriden to set the selected folder to web contents 
-	 * folder if the current selection is outside the web contents folder. 
-	 */
-	protected void initialPopulateContainerNameField() {
-		super.initialPopulateContainerNameField();
-		
-		IPath fullPath = getContainerFullPath();
-		IProject project = getProjectFromPath(fullPath);
-		IPath webContentPath = getWebContentPath(project);
-		
-		if (webContentPath != null && !webContentPath.isPrefixOf(fullPath)) {
-			setContainerFullPath(webContentPath);
-		}
-	}
-	
-	/**
-	 * This method is overriden to set additional validation specific to 
-	 * html files. 
-	 */
-	protected boolean validatePage() {
-		setMessage(null);
-		setErrorMessage(null);
-		
-		if (!super.validatePage()) {
-			return false;
-		}
-		
-		String fileName = getFileName();
-		IPath fullPath = getContainerFullPath();
-		if ((fullPath != null) && (fullPath.isEmpty() == false) && (fileName != null)) {
-			// check that filename does not contain invalid extension
-			if (!extensionValidForContentType(fileName)) {
-				setErrorMessage(NLS.bind(HTMLUIMessages._ERROR_FILENAME_MUST_END_HTML, getValidExtensions().toString()));
-				return false;
-			}
-			// no file extension specified so check adding default
-			// extension doesn't equal a file that already exists
-			if (fileName.lastIndexOf('.') == -1) {
-				String newFileName = addDefaultExtension(fileName);
-				IPath resourcePath = fullPath.append(newFileName);
-
-				IWorkspace workspace = ResourcesPlugin.getWorkspace();
-				IStatus result = workspace.validatePath(resourcePath.toString(), IResource.FOLDER);
-				if (!result.isOK()) {
-					// path invalid
-					setErrorMessage(result.getMessage());
-					return false;
-				}
-
-				if ((workspace.getRoot().getFolder(resourcePath).exists() || workspace.getRoot().getFile(resourcePath).exists())) {
-					setErrorMessage(HTMLUIMessages.ResourceGroup_nameExists);
-					return false;
-				}
-			}
-			
-			// get the IProject for the selection path
-			IProject project = getProjectFromPath(fullPath);
-			// if inside web project, check if inside webContent folder
-			if (project != null && isWebProject(project)) {
-				// check that the path is inside the webContent folder
-				IPath webContentPath = getWebContentPath(project);
-				if (!webContentPath.isPrefixOf(fullPath)) {
-					setMessage(HTMLUIMessages._WARNING_FOLDER_MUST_BE_INSIDE_WEB_CONTENT, WARNING);
-				}
-			}
-		}
-
-		return true;
-	}
-	
-	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	private IContentType getContentType() {
-		if (fContentType == null)
-			fContentType = Platform.getContentTypeManager().getContentType(ContentTypeIdForHTML.ContentTypeID_HTML);
-		return fContentType;
-	}
-
-	/**
-	 * Get list of valid extensions for HTML Content type
-	 * 
-	 * @return
-	 */
-	private List getValidExtensions() {
-		if (fValidExtensions == null) {
-			IContentType type = getContentType();
-			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
-		}
-		return fValidExtensions;
-	}
-	
-	/**
-	 * Verifies if fileName is valid name for content type. Takes base content
-	 * type into consideration.
-	 * 
-	 * @param fileName
-	 * @return true if extension is valid for this content type
-	 */
-	private boolean extensionValidForContentType(String fileName) {
-		boolean valid = false;
-
-		IContentType type = getContentType();
-		// there is currently an extension
-		if (fileName.lastIndexOf('.') != -1) {
-			// check what content types are associated with current extension
-			IContentType[] types = Platform.getContentTypeManager().findContentTypesFor(fileName);
-			int i = 0;
-			while (i < types.length && !valid) {
-				valid = types[i].isKindOf(type);
-				++i;
-			}
-		}
-		else
-			valid = true; // no extension so valid
-		return valid;
-	}
-
-	/**
-	 * Adds default extension to the filename
-	 * 
-	 * @param filename
-	 * @return
-	 */
-	String addDefaultExtension(String filename) {
-		StringBuffer newFileName = new StringBuffer(filename);
-
-		Preferences preference = HTMLCorePlugin.getDefault().getPluginPreferences();
-		String ext = preference.getString(HTMLCorePreferenceNames.DEFAULT_EXTENSION);
-
-		newFileName.append("."); //$NON-NLS-1$
-		newFileName.append(ext);
-
-		return newFileName.toString();
-	}
-	
-	/**
-	 * Returns the project that contains the specified path
-	 * 
-	 * @param path the path which project is needed
-	 * @return IProject object. If path is <code>null</code> the return value 
-	 * 		   is also <code>null</code>. 
-	 */
-	private IProject getProjectFromPath(IPath path) {
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProject project = null;
-		
-		if (path != null) {
-			if (workspace.validatePath(path.toString(), IResource.PROJECT).isOK()) {
-				project = workspace.getRoot().getProject(path.toString());
-			} else {
-				project = workspace.getRoot().getFile(path).getProject();
-			}
-		}
-		
-		return project;
-	}
-	
-	/**
-	 * Checks if the specified project is a web project. 
-	 * 
-	 * @param project project to be checked
-	 * @return true if the project is web project, otherwise false
-	 */
-	private boolean isWebProject(IProject project) {
-		IFacetedProject faceted = null;
-		try {
-			faceted = ProjectFacetsManager.create(project);
-		} catch (CoreException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-		
-		if (faceted != null && 
-			(faceted.hasProjectFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.WST_WEB_MODULE)) || 
-			 faceted.hasProjectFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE)))) {
-			return true;
-		}
-		
-		return false;
-	}
-	
-	/**
-	 * Returns the web contents folder of the specified project
-	 * 
-	 * @param project the project which web contents path is needed
-	 * @return IPath of the web contents folder
-	 */
-	private IPath getWebContentPath(IProject project) {
-		IPath path = null;
-		
-		if (project != null && isWebProject(project)) {			
-			IVirtualComponent component = ComponentCore.createComponent(project);
-			path = component.getRootFolder().getWorkspaceRelativePath();
-		}
-		
-		return path;
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLTemplatesWizardPage.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLTemplatesWizardPage.java
deleted file mode 100644
index d5b61db..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLTemplatesWizardPage.java
+++ /dev/null
@@ -1,474 +0,0 @@
-package org.eclipse.wst.html.ui.internal.wizard;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.jface.text.Document;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.jface.text.source.SourceViewerConfiguration;
-import org.eclipse.jface.text.templates.DocumentTemplateContext;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.Logger;
-import org.eclipse.wst.html.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.html.ui.internal.preferences.HTMLUIPreferenceNames;
-import org.eclipse.wst.html.ui.internal.templates.TemplateContextTypeIdsHTML;
-
-/**
- * Templates page in new file wizard. Allows users to select a new file
- * template to be applied in new file.
- * 
- */
-public class NewHTMLTemplatesWizardPage extends WizardPage {
-
-	/**
-	 * Content provider for templates
-	 */
-	private class TemplateContentProvider implements IStructuredContentProvider {
-		/** The template store. */
-		private TemplateStore fStore;
-
-		/*
-		 * @see IContentProvider#dispose()
-		 */
-		public void dispose() {
-			fStore = null;
-		}
-
-		/*
-		 * @see IStructuredContentProvider#getElements(Object)
-		 */
-		public Object[] getElements(Object input) {
-			return fStore.getTemplates(TemplateContextTypeIdsHTML.NEW);
-		}
-
-		/*
-		 * @see IContentProvider#inputChanged(Viewer, Object, Object)
-		 */
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			fStore = (TemplateStore) newInput;
-		}
-	}
-
-	/**
-	 * Label provider for templates.
-	 */
-	private class TemplateLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		/*
-		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object,
-		 *      int)
-		 */
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object,
-		 *      int)
-		 */
-		public String getColumnText(Object element, int columnIndex) {
-			Template template = (Template) element;
-
-			switch (columnIndex) {
-				case 0 :
-					return template.getName();
-				case 1 :
-					return template.getDescription();
-				default :
-					return ""; //$NON-NLS-1$
-			}
-		}
-	}
-
-	/** Last selected template name */
-	private String fLastSelectedTemplateName;
-	/** The viewer displays the pattern of selected template. */
-	private SourceViewer fPatternViewer;
-	/** The table presenting the templates. */
-	private TableViewer fTableViewer;
-	/** Template store used by this wizard page */
-	private TemplateStore fTemplateStore;
-	/** Checkbox for using templates. */
-	private Button fUseTemplateButton;
-
-	public NewHTMLTemplatesWizardPage() {
-		super("NewHTMLTemplatesWizardPage", HTMLUIMessages.NewHTMLTemplatesWizardPage_0, null); //$NON-NLS-1$
-		setDescription(HTMLUIMessages.NewHTMLTemplatesWizardPage_1);
-	}
-
-	/**
-	 * Correctly resizes the table so no phantom columns appear
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @param buttons
-	 *            the buttons
-	 * @param table
-	 *            the table
-	 * @param column1
-	 *            the first column
-	 * @param column2
-	 *            the second column
-	 * @param column3
-	 *            the third column
-	 */
-	private void configureTableResizing(final Composite parent, final Table table, final TableColumn column1, final TableColumn column2) {
-		parent.addControlListener(new ControlAdapter() {
-			public void controlResized(ControlEvent e) {
-				Rectangle area = parent.getClientArea();
-				Point preferredSize = table.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-				int width = area.width - 2 * table.getBorderWidth();
-				if (preferredSize.y > area.height) {
-					// Subtract the scrollbar width from the total column
-					// width
-					// if a vertical scrollbar will be required
-					Point vBarSize = table.getVerticalBar().getSize();
-					width -= vBarSize.x;
-				}
-
-				Point oldSize = table.getSize();
-				if (oldSize.x > width) {
-					// table is getting smaller so make the columns
-					// smaller first and then resize the table to
-					// match the client area width
-					column1.setWidth(width / 2);
-					column2.setWidth(width / 2);
-					table.setSize(width, area.height);
-				}
-				else {
-					// table is getting bigger so make the table
-					// bigger first and then make the columns wider
-					// to match the client area width
-					table.setSize(width, area.height);
-					column1.setWidth(width / 2);
-					column2.setWidth(width / 2);
-				}
-			}
-		});
-	}
-
-	public void createControl(Composite ancestor) {
-		Composite parent = new Composite(ancestor, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		parent.setLayout(layout);
-
-		// create checkbox for user to use HTML Template
-		fUseTemplateButton = new Button(parent, SWT.CHECK);
-		fUseTemplateButton.setText(HTMLUIMessages.NewHTMLTemplatesWizardPage_4);
-		GridData data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
-		fUseTemplateButton.setLayoutData(data);
-		fUseTemplateButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				enableTemplates();
-			}
-		});
-
-		// create composite for Templates table
-		Composite innerParent = new Composite(parent, SWT.NONE);
-		GridLayout innerLayout = new GridLayout();
-		innerLayout.numColumns = 2;
-		innerLayout.marginHeight = 0;
-		innerLayout.marginWidth = 0;
-		innerParent.setLayout(innerLayout);
-		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1);
-		innerParent.setLayoutData(gd);
-
-		// Create linked text to just to templates preference page
-		Link link = new Link(innerParent, SWT.NONE);
-		link.setText(HTMLUIMessages.NewHTMLTemplatesWizardPage_6);
-		data = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
-		link.setLayoutData(data);
-		link.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				linkClicked();
-			}
-		});
-
-		// create table that displays templates
-		Table table = new Table(innerParent, SWT.BORDER | SWT.FULL_SELECTION);
-
-		data = new GridData(GridData.FILL_BOTH);
-		data.widthHint = convertWidthInCharsToPixels(2);
-		data.heightHint = convertHeightInCharsToPixels(10);
-		data.horizontalSpan = 2;
-		table.setLayoutData(data);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-		TableLayout tableLayout = new TableLayout();
-		table.setLayout(tableLayout);
-
-		TableColumn column1 = new TableColumn(table, SWT.NONE);
-		column1.setText(HTMLUIMessages.NewHTMLTemplatesWizardPage_2);
-
-		TableColumn column2 = new TableColumn(table, SWT.NONE);
-		column2.setText(HTMLUIMessages.NewHTMLTemplatesWizardPage_3);
-
-		fTableViewer = new TableViewer(table);
-		fTableViewer.setLabelProvider(new TemplateLabelProvider());
-		fTableViewer.setContentProvider(new TemplateContentProvider());
-
-		fTableViewer.setSorter(new ViewerSorter() {
-			public int compare(Viewer viewer, Object object1, Object object2) {
-				if ((object1 instanceof Template) && (object2 instanceof Template)) {
-					Template left = (Template) object1;
-					Template right = (Template) object2;
-					int result = left.getName().compareToIgnoreCase(right.getName());
-					if (result != 0)
-						return result;
-					return left.getDescription().compareToIgnoreCase(right.getDescription());
-				}
-				return super.compare(viewer, object1, object2);
-			}
-
-			public boolean isSorterProperty(Object element, String property) {
-				return true;
-			}
-		});
-
-		fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent e) {
-				updateViewerInput();
-			}
-		});
-
-		// create viewer that displays currently selected template's contents
-		fPatternViewer = doCreateViewer(parent);
-
-		fTemplateStore = HTMLUIPlugin.getDefault().getTemplateStore();
-		fTableViewer.setInput(fTemplateStore);
-
-		configureTableResizing(innerParent, table, column1, column2);
-		loadLastSavedPreferences();
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(parent, IHelpContextIds.HTML_NEWWIZARD_TEMPLATE_HELPID);
-		Dialog.applyDialogFont(parent);
-		setControl(parent);
-	}
-
-	/**
-	 * Creates, configures and returns a source viewer to present the template
-	 * pattern on the preference page. Clients may override to provide a
-	 * custom source viewer featuring e.g. syntax coloring.
-	 * 
-	 * @param parent
-	 *            the parent control
-	 * @return a configured source viewer
-	 */
-	private SourceViewer createViewer(Composite parent) {
-		SourceViewer viewer = new SourceViewer(parent, null, null, false, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL);
-		SourceViewerConfiguration configuration = new SourceViewerConfiguration();
-		viewer.configure(configuration);
-		IDocument document = new Document();
-		viewer.setDocument(document);
-		return viewer;
-	}
-
-	private SourceViewer doCreateViewer(Composite parent) {
-		Label label = new Label(parent, SWT.NONE);
-		label.setText(HTMLUIMessages.NewHTMLTemplatesWizardPage_5);
-		GridData data = new GridData();
-		data.horizontalSpan = 2;
-		label.setLayoutData(data);
-
-		SourceViewer viewer = createViewer(parent);
-		viewer.setEditable(false);
-
-		Control control = viewer.getControl();
-		data = new GridData(GridData.FILL_BOTH);
-		data.horizontalSpan = 2;
-		data.heightHint = convertHeightInCharsToPixels(5);
-		control.setLayoutData(data);
-
-		return viewer;
-	}
-
-	/**
-	 * Enable/disable controls in page based on fUseTemplateButton's current
-	 * state.
-	 */
-	void enableTemplates() {
-		boolean enabled = fUseTemplateButton.getSelection();
-
-		if (!enabled) {
-			// save last selected template
-			Template template = getSelectedTemplate();
-			if (template != null)
-				fLastSelectedTemplateName = template.getName();
-			else
-				fLastSelectedTemplateName = ""; //$NON-NLS-1$
-
-			fTableViewer.setSelection(null);
-		}
-		else {
-			setSelectedTemplate(fLastSelectedTemplateName);
-		}
-
-		fTableViewer.getControl().setEnabled(enabled);
-		fPatternViewer.getControl().setEnabled(enabled);
-	}
-
-	/**
-	 * Return the template preference page id
-	 * 
-	 * @return
-	 */
-	private String getPreferencePageId() {
-		return "org.eclipse.wst.html.ui.preferences.templates"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Get the currently selected template.
-	 * 
-	 * @return
-	 */
-	private Template getSelectedTemplate() {
-		Template template = null;
-		IStructuredSelection selection = (IStructuredSelection) fTableViewer.getSelection();
-
-		if (selection.size() == 1) {
-			template = (Template) selection.getFirstElement();
-		}
-		return template;
-	}
-
-	/**
-	 * Returns template string to insert.
-	 * 
-	 * @return String to insert or null if none is to be inserted
-	 */
-	String getTemplateString() {
-		String templateString = null;
-
-		Template template = getSelectedTemplate();
-		if (template != null) {
-			TemplateContextType contextType = HTMLUIPlugin.getDefault().getTemplateContextRegistry().getContextType(TemplateContextTypeIdsHTML.NEW);
-			IDocument document = new Document();
-			TemplateContext context = new DocumentTemplateContext(contextType, document, 0, 0);
-			try {
-				TemplateBuffer buffer = context.evaluate(template);
-				templateString = buffer.getString();
-			}
-			catch (Exception e) {
-				Logger.log(Logger.WARNING_DEBUG, "Could not create template for new html", e); //$NON-NLS-1$
-			}
-		}
-
-		return templateString;
-	}
-
-	void linkClicked() {
-		String pageId = getPreferencePageId();
-		PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(getShell(), pageId, new String[]{pageId}, null);
-		dialog.open();
-		fTableViewer.refresh();
-	}
-
-	/**
-	 * Load the last template name used in New HTML File wizard.
-	 */
-	private void loadLastSavedPreferences() {
-		String templateName = HTMLUIPlugin.getDefault().getPreferenceStore().getString(HTMLUIPreferenceNames.NEW_FILE_TEMPLATE_NAME);
-		if (templateName == null || templateName.length() == 0) {
-			fLastSelectedTemplateName = ""; //$NON-NLS-1$
-			fUseTemplateButton.setSelection(false);
-		}
-		else {
-			fLastSelectedTemplateName = templateName;
-			fUseTemplateButton.setSelection(true);
-		}
-		enableTemplates();
-	}
-
-	/**
-	 * Save template name used for next call to New HTML File wizard.
-	 */
-	void saveLastSavedPreferences() {
-		String templateName = ""; //$NON-NLS-1$
-
-		Template template = getSelectedTemplate();
-		if (template != null) {
-			templateName = template.getName();
-		}
-
-		HTMLUIPlugin.getDefault().getPreferenceStore().setValue(HTMLUIPreferenceNames.NEW_FILE_TEMPLATE_NAME, templateName);
-		HTMLUIPlugin.getDefault().savePluginPreferences();
-	}
-
-	/**
-	 * Select a template in the table viewer given the template name. If
-	 * template name cannot be found or templateName is null, just select
-	 * first item in table. If no items in table select nothing.
-	 * 
-	 * @param templateName
-	 */
-	private void setSelectedTemplate(String templateName) {
-		Object template = null;
-
-		if (templateName != null && templateName.length() > 0) {
-			// pick the last used template
-			template = fTemplateStore.findTemplate(templateName, TemplateContextTypeIdsHTML.NEW);
-		}
-
-		// no record of last used template so just pick first element
-		if (template == null) {
-			// just pick first element
-			template = fTableViewer.getElementAt(0);
-		}
-
-		if (template != null) {
-			IStructuredSelection selection = new StructuredSelection(template);
-			fTableViewer.setSelection(selection, true);
-		}
-	}
-
-	/**
-	 * Updates the pattern viewer.
-	 */
-	void updateViewerInput() {
-		Template template = getSelectedTemplate();
-		if (template != null) {
-			fPatternViewer.getDocument().set(template.getPattern());
-		}
-		else {
-			fPatternViewer.getDocument().set(""); //$NON-NLS-1$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLWizard.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLWizard.java
deleted file mode 100644
index 7c5741e..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/internal/wizard/NewHTMLWizard.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.internal.wizard;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.OutputStreamWriter;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.wst.html.core.internal.HTMLCorePlugin;
-import org.eclipse.wst.html.ui.internal.HTMLUIMessages;
-import org.eclipse.wst.html.ui.internal.Logger;
-import org.eclipse.wst.html.ui.internal.editor.HTMLEditorPluginImageHelper;
-import org.eclipse.wst.html.ui.internal.editor.HTMLEditorPluginImages;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-
-public class NewHTMLWizard extends Wizard implements INewWizard {
-	
-	private NewHTMLFileWizardPage fNewFilePage;
-	private NewHTMLTemplatesWizardPage fNewFileTemplatesPage;
-	private IStructuredSelection fSelection;
-
-	public void addPages() {
-		fNewFilePage = new NewHTMLFileWizardPage("HTMLWizardNewFileCreationPage", new StructuredSelection(IDE.computeSelectedResources(fSelection))); //$NON-NLS-1$
-		fNewFilePage.setTitle(HTMLUIMessages._UI_WIZARD_NEW_HEADING);
-		fNewFilePage.setDescription(HTMLUIMessages._UI_WIZARD_NEW_DESCRIPTION);
-		addPage(fNewFilePage);
-
-		fNewFileTemplatesPage = new NewHTMLTemplatesWizardPage();
-		addPage(fNewFileTemplatesPage);
-	}
-
-	public void init(IWorkbench aWorkbench, IStructuredSelection aSelection) {
-		fSelection = aSelection;
-		setWindowTitle(HTMLUIMessages._UI_WIZARD_NEW_TITLE);
-
-		ImageDescriptor descriptor = HTMLEditorPluginImageHelper.getInstance().getImageDescriptor(HTMLEditorPluginImages.IMG_WIZBAN_NEWHTMLFILE);
-		setDefaultPageImageDescriptor(descriptor);
-	}
-
-	private void openEditor(final IFile file) {
-		if (file != null) {
-			getShell().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					try {
-						IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-						IDE.openEditor(page, file, true);
-					}
-					catch (PartInitException e) {
-						Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-					}
-				}
-			});
-		}
-	}
-
-	public boolean performFinish() {
-		boolean performedOK = false;
-		// save user options for next use
-		fNewFileTemplatesPage.saveLastSavedPreferences();
-
-		// no file extension specified so add default extension
-		String fileName = fNewFilePage.getFileName();
-		if (fileName.lastIndexOf('.') == -1) {
-			String newFileName = fNewFilePage.addDefaultExtension(fileName);
-			fNewFilePage.setFileName(newFileName);
-		}
-
-		// create a new empty file
-		IFile file = fNewFilePage.createNewFile();
-
-		// if there was problem with creating file, it will be null, so make
-		// sure to check
-		if (file != null) {
-			// put template contents into file
-			String templateString = fNewFileTemplatesPage.getTemplateString();
-			if (templateString != null) {
-				// determine the encoding for the new file
-				Preferences preference = HTMLCorePlugin.getDefault().getPluginPreferences();
-				String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-
-				try {
-					ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-					OutputStreamWriter outputStreamWriter = null;
-					if (charSet == null || charSet.trim().equals("")) { //$NON-NLS-1$
-						// just use default encoding
-						outputStreamWriter = new OutputStreamWriter(outputStream);
-					}
-					else {
-						outputStreamWriter = new OutputStreamWriter(outputStream, charSet);
-					}
-					outputStreamWriter.write(templateString);
-					outputStreamWriter.flush();
-					outputStreamWriter.close();
-					ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
-					file.setContents(inputStream, true, false, null);
-					inputStream.close();
-				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING_DEBUG, "Could not create contents for new HTML file", e); //$NON-NLS-1$
-				}
-			}
-
-			// open the file in editor
-			openEditor(file);
-
-			// everything's fine
-			performedOK = true;
-		}
-		return performedOK;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/views/contentoutline/HTMLContentOutlineConfiguration.java b/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/views/contentoutline/HTMLContentOutlineConfiguration.java
deleted file mode 100644
index 4214204..0000000
--- a/bundles/org.eclipse.wst.html.ui/src/org/eclipse/wst/html/ui/views/contentoutline/HTMLContentOutlineConfiguration.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.html.ui.views.contentoutline;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.wst.html.ui.internal.HTMLUIPlugin;
-import org.eclipse.wst.html.ui.internal.contentoutline.HTMLNodeActionManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
-import org.eclipse.wst.xml.ui.views.contentoutline.XMLContentOutlineConfiguration;
-
-/**
- * Configuration for outline view page which shows HTML content.
- * 
- * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration
- * @since 1.0
- */
-public class HTMLContentOutlineConfiguration extends XMLContentOutlineConfiguration {
-
-	/**
-	 * Create new instance of HTMLContentOutlineConfiguration
-	 */
-	public HTMLContentOutlineConfiguration() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	protected XMLNodeActionManager createNodeActionManager(TreeViewer treeViewer) {
-		return new HTMLNodeActionManager((IStructuredModel) treeViewer.getInput(), treeViewer);
-	}
-
-	protected IPreferenceStore getPreferenceStore() {
-		return HTMLUIPlugin.getDefault().getPreferenceStore();
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/templates/htmldefault-templates.properties b/bundles/org.eclipse.wst.html.ui/templates/htmldefault-templates.properties
deleted file mode 100644
index 7c3ab5d..0000000
--- a/bundles/org.eclipse.wst.html.ui/templates/htmldefault-templates.properties
+++ /dev/null
@@ -1,44 +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
-###############################################################################
-Templates.comment.name=comment
-Templates.comment.desc=comment
-Templates.ul.name=ul
-Templates.ul.desc=unordered list
-Templates.ul.content=<ul>\n  <li> Item one </li>\n  <li> Item two </li>\n</ul>\n
-Templates.dl.name=dl
-Templates.dl.desc=definition list
-Templates.dl.content=<dl>\n  <dt> First definition</dt>  <dd>  First explanation</dd>\n  <dt> Second definition</dt> <dd> Second explanation</dd>\n</dl>\n
-Templates.table.name=table
-Templates.table.desc=table
-Templates.table.content=<table>\n  <tr>\n    <th>Column 1 Heading</th>\n    <th>Column 2 Heading</th>\n  </tr>\n  <tr>\n    <td>Row 1: Col 1</td>\n    <td>Row 1: Col 2</td>\n  </tr>\n</table>\n
-Templates.ol.name=ol
-Templates.ol.desc=ordered list
-Templates.ol.content=<ol>\n  <li> Item one </li>\n  <li> Item two </li>\n</ol>\n
-Templates.html.name=New HTML File (4.01 transitional)
-Templates.html.desc=html 4.01 transitional
-Templates.html.content=<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=${encoding}">\n<title>Insert title here</title>\n</head>\n<body>\n${cursor}\n</body>\n</html>
-Templates.htmlframeset.name=New HTML File (4.01 frameset)
-Templates.htmlframeset.desc=html 4.01 frameset
-Templates.htmlframeset.content=<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=${encoding}">\n<title>Insert title here</title>\n</head>\n<frameset>\n    <frame>\n    <frame>\n    <noframes>\n    <body>\n    <p>This page uses frames. The current browser you are using does not support frames.</p>\n    </body>\n    </noframes>\n</frameset>\n</html>
-Templates.xhtml.name=New XHTML File (1.0 transitional)
-Templates.xhtml.desc=xhtml 1.0 transitional
-Templates.xhtml.content=<?xml version="1.0" encoding="${encoding}" ?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml">\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=${encoding}" />\n<title>Insert title here</title>\n</head>\n<body>\n${cursor}\n</body>\n</html>
-Templates.xhtmlframeset.name=New XHTML File (1.0 frameset)
-Templates.xhtmlframeset.desc=xhtml 1.0 frameset
-Templates.xhtmlframeset.content=<?xml version="1.0" encoding="${encoding}" ?>\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">\n<html xmlns="http://www.w3.org/1999/xhtml">\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=${encoding}" />\n<title>Insert title here</title>\n</head>\n<frameset>\n    <frame />\n    <frame />\n    <noframes>\n    <body>\n    <p>This page uses frames. The current browser you are using does not support frames.</p>\n    </body>\n    </noframes>\n</frameset>\n</html>
-Templates.script.name=script
-Templates.script.desc=script     (commented)
-Templates.script.content=<script type=\"${cursor}text/javascript\">\n<!--\n\n//-->\n</script>
-Templates.style.name=style
-Templates.style.desc=style     (commented)
-Templates.style.content=<style>\n<!--\n${cursor}\n-->\n</style>
-Templates.imgmap.name=img
-Templates.imgmap.desc=img     (map)
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.html.ui/templates/htmldefault-templates.xml b/bundles/org.eclipse.wst.html.ui/templates/htmldefault-templates.xml
deleted file mode 100644
index b51832a..0000000
--- a/bundles/org.eclipse.wst.html.ui/templates/htmldefault-templates.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<templates>
-
-<template name="%Templates.comment.name" description="%Templates.comment.desc" id="org.eclipse.wst.html.ui.templates.comment" context="html_tag" enabled="true">&lt;!-- ${cursor} --&gt;</template>
-
-<template name="%Templates.imgmap.name" description="%Templates.imgmap.desc" id="org.eclipse.wst.html.ui.templates.imgmap" context="html_tag" enabled="true">&lt;img ismap&gt;</template>
-
-<template name="%Templates.ul.name" description="%Templates.ul.desc" id="org.eclipse.wst.html.ui.templates.ul" context="html_tag" enabled="true">%Templates.ul.content</template>
-
-<template name="%Templates.dl.name" description="%Templates.dl.desc" id="org.eclipse.wst.html.ui.templates.dl" context="html_tag" enabled="true">%Templates.dl.content</template>
-
-<template name="%Templates.table.name" description="%Templates.table.desc" id="org.eclipse.wst.html.ui.templates.table" context="html_tag" enabled="true">%Templates.table.content</template>
-
-<template name="%Templates.ol.name" description="%Templates.ol.desc" id="org.eclipse.wst.html.ui.templates.ol" context="html_tag" enabled="true">%Templates.ol.content</template>
-
-<template name="%Templates.html.name" description="%Templates.html.desc" id="org.eclipse.wst.html.ui.templates.html" context="html_new" enabled="true">%Templates.html.content</template>
-
-<template name="%Templates.htmlframeset.name" description="%Templates.htmlframeset.desc" id="org.eclipse.wst.html.ui.templates.htmlframeset" context="html_new" enabled="true">%Templates.htmlframeset.content</template>
-
-<template name="%Templates.xhtml.name" description="%Templates.xhtml.desc" id="org.eclipse.wst.html.ui.templates.xhtml" context="html_new" enabled="true">%Templates.xhtml.content</template>
-
-<template name="%Templates.xhtmlframeset.name" description="%Templates.xhtmlframeset.desc" id="org.eclipse.wst.html.ui.templates.xhtmlframeset" context="html_new" enabled="true">%Templates.xhtmlframeset.content</template>
-
-<template name="%Templates.script.name" description="%Templates.script.desc" id="org.eclipse.wst.html.ui.templates.script" context="html_tag" enabled="true">%Templates.script.content</template>
-
-<template name="%Templates.style.name" description="%Templates.style.desc" id="org.eclipse.wst.html.ui.templates.style" context="html_tag" enabled="true">%Templates.style.content</template>
-
-</templates>
diff --git a/bundles/org.eclipse.wst.sse.core/.classpath b/bundles/org.eclipse.wst.sse.core/.classpath
index 98d95c7..df9dea9 100644
--- a/bundles/org.eclipse.wst.sse.core/.classpath
+++ b/bundles/org.eclipse.wst.sse.core/.classpath
@@ -4,7 +4,11 @@
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="src-tasktags"/>
 	<classpathentry kind="src" path="src-contentproperties"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/NodeIterator"/>
+		</accessrules>
+	</classpathentry>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
rename from bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.core.runtime.prefs
rename to bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.core.prefs
index 782e417..104e60d 100644
--- a/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Sun Apr 16 17:23:39 EDT 2006

+#Sat Mar 24 11:23:54 EDT 2007

 eclipse.preferences.version=1

 org.eclipse.jdt.core.builder.cleanOutputFolder=clean

 org.eclipse.jdt.core.builder.duplicateResourceTask=warning

@@ -22,9 +22,10 @@
 org.eclipse.jdt.core.compiler.problem.deprecation=ignore

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

 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore

-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

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

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

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

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

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

 org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore

 org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error

@@ -47,16 +48,16 @@
 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled

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

 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore

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

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

 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error

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

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

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

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

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

 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled

 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error

 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning

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

 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore

 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

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

@@ -64,7 +65,6 @@
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore

 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error

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

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

 org.eclipse.jdt.core.compiler.problem.unusedImport=error

diff --git a/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.ui.prefs
index ef2ac65..301c7ad 100644
--- a/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,4 @@
-#Tue Apr 04 03:36:39 EDT 2006
+#Mon Apr 17 01:48:39 EDT 2006
 eclipse.preferences.version=1
 internal.default.compliance=default
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<templates/>
diff --git a/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.pde.prefs
index f724958..fc522bb 100644
--- a/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.pde.prefs
+++ b/bundles/org.eclipse.wst.sse.core/.settings/org.eclipse.pde.prefs
@@ -1,4 +1,5 @@
-#Sun Apr 16 14:05:29 EDT 2006
+#Mon Apr 17 02:01:33 EDT 2006
+compilers.incompatible-environment=0
 compilers.p.build=0
 compilers.p.deprecated=1
 compilers.p.illegal-att-value=0
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex
index 96fe58a..bd7272a 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex
@@ -1,286 +1,279 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.common.encoding.contentspecific.css;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
-
-
-
-%%
-
-%{
-
-
-	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 8000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-
-
-
-	public CSSHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-	  	/* the input device */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/** 
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input 
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-  		yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-  		yycolumn = 0; 
-
-  		/** 
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning 
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-  		
-  		hasMore = true;
-  		
-		// its a little wasteful to "throw away" first char array generated
-		// by class init (via auto generated code), but we really do want
-		// a small buffer for our head parsers.
-		if (yy_buffer.length != MAX_TO_SCAN) {
-			yy_buffer = new char[MAX_TO_SCAN];
-		}
-  		
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}
-	
-
-%}
-
-%eof{
-	hasMore=false;
-%eof}
-
-%public
-%class CSSHeadTokenizer
-%function primGetNextToken
-%type String
-%char
-%unicode
-%ignorecase 
-%debug
-%switch
-
-
-UTF16BE = \xFE\xFF
-UTF16LE = \xFF\xFE
-UTF83ByteBOM = \xEF\xBB\xBF
-
-//SpaceChar = [\x20\x09]
-
-
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]
-
-BeginAttribeValue = {S}* \= {S}*
-
-LineTerminator = \r|\n
-
-
-%state ST_XMLDecl
-%state CHARSET_RULE
-%state QuotedAttributeValue
-%state DQ_STRING
-%state SQ_STRING
-%state UnDelimitedString
-
-%%
-
-
-<YYINITIAL>  
-{
-	{UTF16BE}   		{hasMore = false; return EncodingParserConstants.UTF16BE;}
-	{UTF16LE}   		{hasMore = false; return EncodingParserConstants.UTF16LE;}
-	{UTF83ByteBOM}   	{hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
-
-	// force to be started on first line, but we do allow preceeding spaces
-	^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}
-	
-	^ {S}* "@charset"     {if (yychar == 0 )  {yybegin(CHARSET_RULE); return CSSHeadTokenizerConstants.CHARSET_RULE;}}
-	
-
-}	
-
-// I don't think there's really an XML form of CSS files ... but will leave here for consistency	
-<ST_XMLDecl> 
-{
-	//"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}
-	"encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}
-	// note this "forced end" once end of XML Declaration found
-	"\?>"    {yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd;}
-}	
-
-<CHARSET_RULE> 
-{
-
-	{S}*  {pushCurrentState(); yybegin(QuotedAttributeValue);}
-	";"    { yybegin(YYINITIAL);  hasMore = false; return CSSHeadTokenizerConstants.RuleEnd;}
-}
-	
-
-<QuotedAttributeValue>
-{
-	\"                      { yybegin(DQ_STRING); string.setLength(0); }
-	\'			{ yybegin(SQ_STRING); string.setLength(0); }
-	// in this state, anything other than a space character can start an undelimited string
-	{S}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}
-
-}	
-
-
-<DQ_STRING>
-{
-
-	\"                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	";"                      { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-	
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<SQ_STRING>
-{
-
-	\'                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	";"                      { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<UnDelimitedString>
-{
-
-
-	{S}                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote
-	\'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	\"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	";"                      { yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-	.			{ string.append( yytext() ); }
-
-}
-
-// The "match anything" rule should always be in effect except for when looking for end of string
-// (That is, remember to update state list if/when new states added)
-<YYINITIAL, ST_XMLDecl, QuotedAttributeValue, CHARSET_RULE>
-{
-// this is the fallback (match "anything") rule  (for this scanner, input is ignored, and position advanced, if not recognized)
-.|\n              {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}
-}
-
-// this rule always in effect
-<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}
+/*******************************************************************************

+ * Copyright (c) 2004, 2008 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

+ *******************************************************************************/

+/*nlsXXX*/

+package org.eclipse.wst.css.core.internal.contenttype;

+import java.io.IOException;

+import java.io.Reader;

+

+import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;

+import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;

+

+

+

+%%

+

+%{

+

+

+	private boolean hasMore = true;

+	private final static int MAX_TO_SCAN = 8000;

+	StringBuffer string = new StringBuffer();

+	// state stack for easier state handling

+	private IntStack fStateStack = new IntStack();

+	private String valueText = null;

+

+

+

+	public CSSHeadTokenizer() {

+		super();

+	}

+

+	  public void reset (Reader in) {

+	  	/* the input device */

+	  	yy_reader = in;

+

+  		/* the current state of the DFA */

+  		yy_state = 0;

+

+  		/* the current lexical state */

+  		yy_lexical_state = YYINITIAL;

+

+  		/* this buffer contains the current text to be matched and is

+  		 the source of the yytext() string */

+  		java.util.Arrays.fill(yy_buffer, (char)0);

+

+  		/* the textposition at the last accepting state */

+  		yy_markedPos = 0;

+

+  		/* the textposition at the last state to be included in yytext */

+  		yy_pushbackPos = 0;

+

+  		/* the current text position in the buffer */

+  		yy_currentPos = 0;

+

+  		/* startRead marks the beginning of the yytext() string in the buffer */

+  		yy_startRead = 0;

+

+  		/** 

+  		 * endRead marks the last character in the buffer, that has been read

+  		 * from input 

+  		 */

+  		yy_endRead = 0;

+

+  		/* number of newlines encountered up to the start of the matched text */

+  		yyline = 0;

+

+  		/* the number of characters up to the start of the matched text */

+  		yychar = 0;

+

+  		/**

+  		 * the number of characters from the last newline up to the start

+  		 * of the matched text

+  		 */

+  		yycolumn = 0; 

+

+  		/** 

+  		 * yy_atBOL == true <=> the scanner is currently at the beginning 

+  		 * of a line

+  		 */

+  		yy_atBOL = false;

+

+  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */

+  		yy_atEOF = false;

+

+  		/* denotes if the user-EOF-code has already been executed */

+  		yy_eof_done = false;

+

+

+  		fStateStack.clear();

+  		

+  		hasMore = true;

+  		

+		// its a little wasteful to "throw away" first char array generated

+		// by class init (via auto generated code), but we really do want

+		// a small buffer for our head parsers.

+		if (yy_buffer.length != MAX_TO_SCAN) {

+			yy_buffer = new char[MAX_TO_SCAN];

+		}

+  		

+

+  	}

+

+

+	public final HeadParserToken getNextToken() throws IOException {

+		String context = null;

+		context = primGetNextToken();

+		HeadParserToken result = null;

+		if (valueText != null) {

+			result = createToken(context, yychar, valueText);

+			valueText = null;

+		} else {

+			result = createToken(context, yychar, yytext());

+		}

+		return result;

+	}

+

+	public final boolean hasMoreTokens() {

+		return hasMore && yychar < MAX_TO_SCAN;

+	}

+	private void pushCurrentState() {

+		fStateStack.push(yystate());

+

+	}

+

+	private void popState() {

+		yybegin(fStateStack.pop());

+	}

+	private HeadParserToken createToken(String context, int start, String text) {

+		return new HeadParserToken(context, start, text);

+	}

+	

+

+%}

+

+%eof{

+	hasMore=false;

+%eof}

+

+%public

+%class CSSHeadTokenizer

+%function primGetNextToken

+%type String

+%char

+%unicode

+%ignorecase 

+%debug

+%switch

+

+

+UTF16BE = \xFE\xFF

+UTF16LE = \xFF\xFE

+UTF83ByteBOM = \xEF\xBB\xBF

+

+//SpaceChar = [\x20\x09]

+

+

+

+// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+

+S = [\x20\x09\x0D\x0A]

+

+//BeginAttribeValue = {S}* \= {S}*

+

+LineTerminator = \r|\n

+

+// Z is the single-byte zero character to be used in parsing double-byte files

+Z = (\x00)?

+S_UTF = {Z}{S}{Z}

+BeginAttributeValueUTF = {S_UTF}* \= {S_UTF}*

+

+%state ST_XMLDecl

+%state CHARSET_RULE

+%state QuotedAttributeValue

+%state DQ_STRING

+%state SQ_STRING

+%state UnDelimitedString

+

+%%

+

+

+<YYINITIAL>  

+{

+	{UTF16BE}   		{hasMore = false; return EncodingParserConstants.UTF16BE;}

+	{UTF16LE}   		{hasMore = false; return EncodingParserConstants.UTF16LE;}

+	{UTF83ByteBOM}   	{hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}

+

+	// force to be started on first line, but we do allow preceeding spaces

+	^ {Z}({S}{Z})* ({Z}<{Z}\?{Z}x{Z}m{Z}l{Z}){S_UTF}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}

+	

+	^ {Z}({S}{Z})*({Z}@{Z}c{Z}h{Z}a{Z}r{Z}s{Z}e{Z}t{Z})   {if (yychar == 0 )  {yybegin(CHARSET_RULE); return CSSHeadTokenizerConstants.CHARSET_RULE;}}

+}	

+

+// I don't think there's really an XML form of CSS files ... but will leave here for consistency	

+<ST_XMLDecl> 

+{

+	//"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}

+	{Z}e{Z}n{Z}c{Z}o{Z}d{Z}i{Z}n{Z}g{Z} {BeginAttributeValueUTF} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}

+	// note this "forced end" once end of XML Declaration found

+	{Z}\?{Z}>{Z}    {yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd;}

+}	

+

+<CHARSET_RULE> 

+{

+

+	{S_UTF}*  {pushCurrentState(); yybegin(QuotedAttributeValue);}

+	{Z};{Z}    { yybegin(YYINITIAL);  hasMore = false; return CSSHeadTokenizerConstants.RuleEnd;}

+}

+	

+

+<QuotedAttributeValue>

+{

+	{Z}\"{Z}                     { yybegin(DQ_STRING); string.setLength(0); }

+	{Z}\'{Z}			{ yybegin(SQ_STRING); string.setLength(0); }

+	// in this state, anything other than a space character can start an undelimited string

+	{S_UTF}*.           { yypushback(yylength()); yybegin(UnDelimitedString); string.setLength(0);}

+

+}	

+

+

+<DQ_STRING>

+{

+

+	{Z}\"{Z}                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\?{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	

+	{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\/{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z};{Z}                      { yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }

+	[^\x00]			{ string.append( yytext() ); }

+

+

+}

+

+<SQ_STRING>

+{

+

+	{Z}\'{Z}                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}%{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\/{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z};{Z}                      { yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }

+	[^\x00]			{ string.append( yytext() ); }

+

+}

+

+<UnDelimitedString>

+{

+

+

+	{S_UTF}                     { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\?{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote

+	{Z}\'{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

+	{Z}\"{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

+	

+	{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\/{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z};{Z}                      { yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }

+	[^\x00]			{ string.append( yytext() ); }

+}

+

+// The "match anything" rule should always be in effect except for when looking for end of string

+// (That is, remember to update state list if/when new states added)

+.|\n	{if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}

+

+// this rule always in effect

+<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java
index 4dfc385..d2309dd 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.java
@@ -1,5 +1,7 @@
+/* The following code was generated by JFlex 1.2.2 on 7/28/08 5:19 PM */
+
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
@@ -7,20 +9,14 @@
  * 
  * Contributors:
  *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
  *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 1/27/04 6:42 PM */
-
 /*nlsXXX*/
-package org.eclipse.wst.common.encoding.contentspecific.css;
+package org.eclipse.wst.css.core.internal.contenttype;
 import java.io.IOException;
 import java.io.Reader;
 
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
+import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
+import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
 
 
 
@@ -28,8 +24,8 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 1/27/04 6:42 PM from the specification file
- * <tt>file:/D:/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jflex</tt>
+ * on 7/28/08 5:19 PM from the specification file
+ * <tt>file:/D:/workspaces/wtp301/workspace/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/CSSHeadTokenizer/CSSHeadTokenizer.jFlex</tt>
  */
 public class CSSHeadTokenizer {
 
@@ -59,14 +55,14 @@
    * Translates characters to character classes
    */
   final private static String yycmap_packed = 
-    "\11\0\1\6\1\11\2\0\1\10\22\0\1\6\1\0\1\36\2\0"+
-    "\1\41\1\0\1\37\7\0\1\40\13\0\1\35\1\12\1\7\1\34"+
-    "\1\13\1\17\1\22\1\0\1\20\1\31\1\25\1\0\1\33\1\21"+
-    "\1\32\2\0\1\16\1\15\1\27\1\30\2\0\1\23\1\24\1\26"+
-    "\3\0\1\14\10\0\1\22\1\0\1\20\1\31\1\25\1\0\1\33"+
-    "\1\21\1\32\2\0\1\16\1\15\1\27\1\30\2\0\1\23\1\24"+
-    "\1\26\3\0\1\14\102\0\1\4\3\0\1\5\17\0\1\3\16\0"+
-    "\1\1\20\0\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
+    "\1\11\10\0\1\6\1\10\2\0\1\7\22\0\1\6\1\0\1\37"+
+    "\2\0\1\42\1\0\1\40\7\0\1\41\13\0\1\36\1\13\1\12"+
+    "\1\35\1\14\1\20\1\23\1\0\1\21\1\32\1\26\1\0\1\34"+
+    "\1\22\1\33\2\0\1\17\1\16\1\30\1\31\2\0\1\24\1\25"+
+    "\1\27\3\0\1\15\10\0\1\23\1\0\1\21\1\32\1\26\1\0"+
+    "\1\34\1\22\1\33\2\0\1\17\1\16\1\30\1\31\2\0\1\24"+
+    "\1\25\1\27\3\0\1\15\102\0\1\4\3\0\1\5\17\0\1\3"+
+    "\16\0\1\1\20\0\1\3\16\0\1\1\1\2\170\0\1\2\ufe87\0";
 
   /** 
    * Translates characters to character classes
@@ -144,7 +140,7 @@
 
 
 	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 1000;
+	private final static int MAX_TO_SCAN = 8000;
 	StringBuffer string = new StringBuffer();
 	// state stack for easier state handling
 	private IntStack fStateStack = new IntStack();
@@ -289,7 +285,7 @@
     char [] map = new char[0x10000];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 158) {
+    while (i < 160) {
       int  count = packed.charAt(i++);
       char value = packed.charAt(i++);
       do map[j++] = value; while (--count > 0);
@@ -496,324 +492,775 @@
                 case 2: yy_isFinal = true; yy_state = 10; break yy_forNext;
                 case 3: yy_isFinal = true; yy_state = 11; break yy_forNext;
                 case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 12; break yy_forNext;
-                case 10: yy_isFinal = true; yy_state = 13; break yy_forNext;
-                case 15: yy_isFinal = true; yy_state = 14; break yy_forNext;
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 12; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 13; break yy_forNext;
+                case 11: yy_isFinal = true; yy_state = 14; break yy_forNext;
+                case 16: yy_isFinal = true; yy_state = 15; break yy_forNext;
                 default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
               }
 
             case 2:
               switch (yy_input) {
-                case 11: yy_isFinal = true; yy_state = 15; break yy_forNext;
-                case 21: yy_isFinal = true; yy_state = 16; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 16; break yy_forNext;
+                case 12: yy_isFinal = true; yy_state = 17; break yy_forNext;
+                case 22: yy_isFinal = true; yy_state = 18; break yy_forNext;
                 default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
               }
 
             case 3:
               switch (yy_input) {
                 case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 17; break yy_forNext;
-                case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 18; break yy_forNext;
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 19; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 20; break yy_forNext;
+                case 30: yy_isFinal = true; yy_state = 21; break yy_forNext;
                 default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 8; break yy_forNext;
               }
 
             case 4:
               switch (yy_input) {
                 case 6: 
-                case 8: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 9: yy_isFinal = true; yy_state = 21; break yy_forNext;
-                case 30: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
-                case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 23; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
+                case 7: yy_isFinal = true; yy_state = 23; break yy_forNext;
+                case 8: yy_isFinal = true; yy_state = 24; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 25; break yy_forNext;
+                case 31: yy_isFinal = true; yy_state = 26; break yy_forNext;
+                case 32: yy_isFinal = true; yy_state = 27; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
               }
 
             case 5:
               switch (yy_input) {
+                case 7: 
                 case 8: 
-                case 9: 
-                case 10: 
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
                 case 11: 
-                case 32: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-                case 30: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext;
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 30; break yy_forNext;
+                case 12: 
+                case 33: yy_isFinal = true; yy_state = 31; break yy_forNext;
+                case 30: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 31: yy_isFinal = true; yy_state = 33; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
               }
 
             case 6:
               switch (yy_input) {
+                case 7: 
                 case 8: 
-                case 9: 
-                case 10: 
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-                case 32: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 27; break yy_forNext;
-                case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
-                case 33: yy_isFinal = true; yy_state = 29; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext;
+                case 11: 
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 33: yy_isFinal = true; yy_state = 31; break yy_forNext;
+                case 30: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 32: yy_isFinal = true; yy_state = 33; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 34; break yy_forNext;
+                case 34: yy_isFinal = true; yy_state = 35; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
               }
 
             case 7:
               switch (yy_input) {
-                case 10: 
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 25; break yy_forNext;
-                case 32: yy_isFinal = true; yy_state = 26; break yy_forNext;
-                case 11: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 11: 
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 33: yy_isFinal = true; yy_state = 31; break yy_forNext;
+                case 12: yy_isFinal = true; yy_state = 35; break yy_forNext;
                 case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 30; break yy_forNext;
-                case 29: yy_isFinal = true; yy_noLookAhead = true; yy_state = 31; break yy_forNext;
-                case 30: 
-                case 31: yy_isFinal = true; yy_noLookAhead = true; yy_state = 32; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 24; break yy_forNext;
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 36; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 37; break yy_forNext;
+                case 30: yy_isFinal = true; yy_state = 38; break yy_forNext;
+                case 31: 
+                case 32: yy_isFinal = true; yy_state = 39; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 28; break yy_forNext;
               }
 
             case 9:
               switch (yy_input) {
-                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 33; break yy_forNext;
+                case 2: yy_isFinal = true; yy_noLookAhead = true; yy_state = 40; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 10:
               switch (yy_input) {
-                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 34; break yy_forNext;
+                case 1: yy_isFinal = true; yy_noLookAhead = true; yy_state = 41; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 11:
               switch (yy_input) {
-                case 4: yy_state = 35; break yy_forNext;
+                case 4: yy_state = 42; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 12:
               switch (yy_input) {
                 case 6: 
-                case 8: 
-                case 9: yy_state = 36; break yy_forNext;
-                case 10: yy_state = 37; break yy_forNext;
-                case 15: yy_state = 38; break yy_forNext;
+                case 7: 
+                case 8: yy_state = 43; break yy_forNext;
+                case 9: yy_state = 44; break yy_forNext;
+                case 11: yy_state = 45; break yy_forNext;
+                case 16: yy_state = 46; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 13:
               switch (yy_input) {
-                case 11: yy_state = 39; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_state = 43; break yy_forNext;
+                case 11: yy_state = 45; break yy_forNext;
+                case 16: yy_state = 46; break yy_forNext;
+                case 9: yy_state = 47; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 14:
               switch (yy_input) {
-                case 16: yy_state = 40; break yy_forNext;
+                case 9: yy_state = 48; break yy_forNext;
+                case 12: yy_state = 49; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 15:
               switch (yy_input) {
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 41; break yy_forNext;
+                case 9: yy_state = 50; break yy_forNext;
+                case 17: yy_state = 51; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 16:
               switch (yy_input) {
-                case 23: yy_state = 42; break yy_forNext;
+                case 12: yy_state = 52; break yy_forNext;
+                case 22: yy_state = 53; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 17:
               switch (yy_input) {
+                case 9: yy_state = 54; break yy_forNext;
+                case 29: yy_isFinal = true; yy_state = 55; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 18:
+              switch (yy_input) {
+                case 9: yy_state = 56; break yy_forNext;
+                case 24: yy_state = 57; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 19:
+              switch (yy_input) {
                 case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 17; break yy_forNext;
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 19; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 58; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 20:
               switch (yy_input) {
                 case 6: 
-                case 8: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 9: yy_state = 43; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 19; break yy_forNext;
+                case 30: yy_isFinal = true; yy_state = 21; break yy_forNext;
+                default: break yy_forAction;
               }
 
             case 21:
               switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 59; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 23:
+              switch (yy_input) {
                 case 6: 
-                case 8: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 9: yy_state = 43; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
+                case 7: yy_isFinal = true; yy_state = 23; break yy_forNext;
+                case 8: yy_state = 60; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 61; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
+              }
+
+            case 24:
+              switch (yy_input) {
+                case 6: 
+                case 7: yy_isFinal = true; yy_state = 23; break yy_forNext;
+                case 8: yy_state = 60; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 61; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
+              }
+
+            case 25:
+              switch (yy_input) {
+                case 31: yy_isFinal = true; yy_state = 26; break yy_forNext;
+                case 32: yy_isFinal = true; yy_state = 27; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_state = 60; break yy_forNext;
+                default: break yy_forAction;
               }
 
             case 26:
               switch (yy_input) {
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 44; break yy_forNext;
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 62; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 27:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 63; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 29:
               switch (yy_input) {
-                case 28: yy_isFinal = true; yy_noLookAhead = true; yy_state = 45; break yy_forNext;
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 64; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 30:
+              switch (yy_input) {
+                case 7: 
+                case 8: 
+                case 11: 
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 30: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 31: yy_isFinal = true; yy_state = 33; break yy_forNext;
+                case 12: 
+                case 33: yy_state = 65; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 31:
+              switch (yy_input) {
+                case 29: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 9: yy_state = 66; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 32:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 67; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 33:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 68; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 34:
+              switch (yy_input) {
+                case 7: 
+                case 8: 
+                case 11: 
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 30: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 32: yy_isFinal = true; yy_state = 33; break yy_forNext;
+                case 33: yy_state = 65; break yy_forNext;
+                case 34: yy_state = 69; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 35:
               switch (yy_input) {
-                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 46; break yy_forNext;
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 9: yy_state = 70; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 36:
               switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_state = 36; break yy_forNext;
-                case 10: yy_state = 37; break yy_forNext;
-                case 15: yy_state = 38; break yy_forNext;
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 71; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 37:
               switch (yy_input) {
-                case 11: yy_state = 39; break yy_forNext;
+                case 11: 
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 36; break yy_forNext;
+                case 30: yy_isFinal = true; yy_state = 38; break yy_forNext;
+                case 31: 
+                case 32: yy_isFinal = true; yy_state = 39; break yy_forNext;
+                case 33: yy_state = 65; break yy_forNext;
+                case 12: yy_state = 69; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 38:
               switch (yy_input) {
-                case 16: yy_state = 40; break yy_forNext;
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 72; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 39:
               switch (yy_input) {
-                case 12: yy_state = 47; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 40:
-              switch (yy_input) {
-                case 17: yy_state = 48; break yy_forNext;
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 73; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 42:
               switch (yy_input) {
-                case 16: yy_state = 49; break yy_forNext;
+                case 5: yy_isFinal = true; yy_noLookAhead = true; yy_state = 74; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 43:
               switch (yy_input) {
                 case 6: 
-                case 8: yy_isFinal = true; yy_state = 20; break yy_forNext;
-                case 9: yy_state = 43; break yy_forNext;
-                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 19; break yy_forNext;
+                case 7: 
+                case 8: yy_state = 43; break yy_forNext;
+                case 9: yy_state = 44; break yy_forNext;
+                case 11: yy_state = 45; break yy_forNext;
+                case 16: yy_state = 46; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 44:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 43; break yy_forNext;
+                case 11: yy_state = 45; break yy_forNext;
+                case 16: yy_state = 46; break yy_forNext;
+                case 9: yy_state = 47; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 45:
+              switch (yy_input) {
+                case 9: yy_state = 48; break yy_forNext;
+                case 12: yy_state = 49; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 46:
+              switch (yy_input) {
+                case 9: yy_state = 50; break yy_forNext;
+                case 17: yy_state = 51; break yy_forNext;
+                default: break yy_forAction;
               }
 
             case 47:
               switch (yy_input) {
-                case 13: yy_state = 50; break yy_forNext;
+                case 11: yy_state = 45; break yy_forNext;
+                case 16: yy_state = 46; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 48:
               switch (yy_input) {
-                case 18: yy_state = 51; break yy_forNext;
+                case 12: yy_state = 49; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 49:
               switch (yy_input) {
-                case 24: yy_state = 52; break yy_forNext;
+                case 9: yy_state = 75; break yy_forNext;
+                case 13: yy_state = 76; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 50:
               switch (yy_input) {
-                case 14: yy_state = 53; break yy_forNext;
+                case 17: yy_state = 51; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 51:
               switch (yy_input) {
-                case 19: yy_state = 54; break yy_forNext;
+                case 9: yy_state = 77; break yy_forNext;
+                case 18: yy_state = 78; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 52:
               switch (yy_input) {
-                case 25: yy_state = 55; break yy_forNext;
+                case 9: yy_state = 54; break yy_forNext;
+                case 29: yy_isFinal = true; yy_state = 55; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 53:
               switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 56; break yy_forNext;
+                case 9: yy_state = 56; break yy_forNext;
+                case 24: yy_state = 57; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 54:
               switch (yy_input) {
-                case 20: yy_state = 57; break yy_forNext;
+                case 29: yy_isFinal = true; yy_state = 55; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 55:
               switch (yy_input) {
-                case 26: yy_state = 58; break yy_forNext;
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 79; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 56:
               switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 56; break yy_forNext;
+                case 24: yy_state = 57; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 57:
               switch (yy_input) {
-                case 21: yy_state = 59; break yy_forNext;
+                case 9: yy_state = 80; break yy_forNext;
+                case 17: yy_state = 81; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 58:
               switch (yy_input) {
-                case 23: yy_state = 60; break yy_forNext;
-                default: break yy_forAction;
-              }
-
-            case 59:
-              switch (yy_input) {
-                case 22: yy_isFinal = true; yy_noLookAhead = true; yy_state = 61; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 19; break yy_forNext;
+                case 9: yy_state = 82; break yy_forNext;
                 default: break yy_forAction;
               }
 
             case 60:
               switch (yy_input) {
-                case 27: yy_state = 62; break yy_forNext;
+                case 6: 
+                case 7: yy_isFinal = true; yy_state = 23; break yy_forNext;
+                case 8: yy_state = 60; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 61; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
+              }
+
+            case 61:
+              switch (yy_input) {
+                case 6: 
+                case 7: yy_isFinal = true; yy_state = 23; break yy_forNext;
+                case 8: yy_state = 60; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 83; break yy_forNext;
+                default: yy_isFinal = true; yy_noLookAhead = true; yy_state = 22; break yy_forNext;
+              }
+
+            case 65:
+              switch (yy_input) {
+                case 29: yy_isFinal = true; yy_state = 32; break yy_forNext;
+                case 9: yy_state = 66; break yy_forNext;
                 default: break yy_forAction;
               }
 
-            case 62:
+            case 66:
               switch (yy_input) {
-                case 6: 
-                case 8: 
-                case 9: yy_state = 62; break yy_forNext;
-                case 7: yy_isFinal = true; yy_state = 63; break yy_forNext;
+                case 29: yy_isFinal = true; yy_state = 32; break yy_forNext;
                 default: break yy_forAction;
               }
 
-            case 63:
+            case 69:
+              switch (yy_input) {
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                case 9: yy_state = 70; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 70:
+              switch (yy_input) {
+                case 29: yy_isFinal = true; yy_state = 29; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 75:
+              switch (yy_input) {
+                case 13: yy_state = 76; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 76:
+              switch (yy_input) {
+                case 9: yy_state = 84; break yy_forNext;
+                case 14: yy_state = 85; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 77:
+              switch (yy_input) {
+                case 18: yy_state = 78; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 78:
+              switch (yy_input) {
+                case 9: yy_state = 86; break yy_forNext;
+                case 19: yy_state = 87; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 80:
+              switch (yy_input) {
+                case 17: yy_state = 81; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 81:
+              switch (yy_input) {
+                case 9: yy_state = 88; break yy_forNext;
+                case 25: yy_state = 89; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 82:
               switch (yy_input) {
                 case 6: 
-                case 8: 
-                case 9: yy_isFinal = true; yy_state = 63; break yy_forNext;
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 19; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 83:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 60; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 84:
+              switch (yy_input) {
+                case 14: yy_state = 85; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 85:
+              switch (yy_input) {
+                case 9: yy_state = 90; break yy_forNext;
+                case 15: yy_state = 91; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 86:
+              switch (yy_input) {
+                case 19: yy_state = 87; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 87:
+              switch (yy_input) {
+                case 9: yy_state = 92; break yy_forNext;
+                case 20: yy_state = 93; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 88:
+              switch (yy_input) {
+                case 25: yy_state = 89; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 89:
+              switch (yy_input) {
+                case 9: yy_state = 94; break yy_forNext;
+                case 26: yy_state = 95; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 90:
+              switch (yy_input) {
+                case 15: yy_state = 91; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 91:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 96; break yy_forNext;
+                case 9: yy_state = 97; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 92:
+              switch (yy_input) {
+                case 20: yy_state = 93; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 93:
+              switch (yy_input) {
+                case 9: yy_state = 98; break yy_forNext;
+                case 21: yy_state = 99; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 94:
+              switch (yy_input) {
+                case 26: yy_state = 95; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 95:
+              switch (yy_input) {
+                case 9: yy_state = 100; break yy_forNext;
+                case 27: yy_state = 101; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 96:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 96; break yy_forNext;
+                case 9: yy_isFinal = true; yy_state = 102; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 97:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 96; break yy_forNext;
+                case 9: yy_state = 103; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 98:
+              switch (yy_input) {
+                case 21: yy_state = 99; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 99:
+              switch (yy_input) {
+                case 9: yy_state = 104; break yy_forNext;
+                case 22: yy_state = 105; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 100:
+              switch (yy_input) {
+                case 27: yy_state = 101; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 101:
+              switch (yy_input) {
+                case 9: yy_state = 106; break yy_forNext;
+                case 24: yy_state = 107; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 102:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 96; break yy_forNext;
+                case 9: yy_state = 103; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 103:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 96; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 104:
+              switch (yy_input) {
+                case 22: yy_state = 105; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 105:
+              switch (yy_input) {
+                case 9: yy_state = 108; break yy_forNext;
+                case 23: yy_isFinal = true; yy_state = 109; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 106:
+              switch (yy_input) {
+                case 24: yy_state = 107; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 107:
+              switch (yy_input) {
+                case 9: yy_state = 110; break yy_forNext;
+                case 28: yy_state = 111; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 108:
+              switch (yy_input) {
+                case 23: yy_isFinal = true; yy_state = 109; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 109:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_noLookAhead = true; yy_state = 112; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 110:
+              switch (yy_input) {
+                case 28: yy_state = 111; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 111:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 111; break yy_forNext;
+                case 9: yy_state = 113; break yy_forNext;
+                case 10: yy_isFinal = true; yy_state = 114; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 113:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 111; break yy_forNext;
+                case 10: yy_isFinal = true; yy_state = 114; break yy_forNext;
+                case 9: yy_state = 115; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 114:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
+                case 9: yy_state = 117; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 115:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_state = 111; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 116:
+              switch (yy_input) {
+                case 9: yy_isFinal = true; yy_state = 114; break yy_forNext;
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
+                default: break yy_forAction;
+              }
+
+            case 117:
+              switch (yy_input) {
+                case 6: 
+                case 7: 
+                case 8: yy_isFinal = true; yy_state = 116; break yy_forNext;
                 default: break yy_forAction;
               }
 
@@ -834,31 +1281,33 @@
 
       switch (yy_action) {    
 
-        case 45: 
-          {  yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 65: break;
+        case 29: 
+        case 64: 
+          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
+        case 119: break;
+        case 22: 
+        case 23: 
         case 25: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 66: break;
-        case 19: 
-        case 20: 
-          {  yypushback(1); yybegin(UnDelimitedString); string.setLength(0); }
-        case 67: break;
-        case 18: 
-          {  yybegin(YYINITIAL);  hasMore = false; return CSSHeadTokenizerConstants.RuleEnd; }
-        case 68: break;
-        case 32: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
-        case 69: break;
-        case 44: 
-          {  yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue; }
-        case 70: break;
         case 61: 
+        case 83: 
+          {  yypushback(yylength()); yybegin(UnDelimitedString); string.setLength(0); }
+        case 120: break;
+        case 21: 
+        case 59: 
+          {  yybegin(YYINITIAL);  hasMore = false; return CSSHeadTokenizerConstants.RuleEnd; }
+        case 121: break;
+        case 39: 
+        case 73: 
+          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue; }
+        case 122: break;
+        case 109: 
+        case 112: 
           { if (yychar == 0 )  {yybegin(CHARSET_RULE); return CSSHeadTokenizerConstants.CHARSET_RULE;} }
-        case 71: break;
-        case 56: 
+        case 123: break;
+        case 96: 
+        case 102: 
           { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;} }
-        case 72: break;
+        case 124: break;
         case 8: 
         case 9: 
         case 10: 
@@ -868,51 +1317,66 @@
         case 14: 
         case 15: 
         case 16: 
-        case 21: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
-        case 73: break;
-        case 41: 
-          { yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd; }
-        case 74: break;
-        case 63: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
-        case 75: break;
-        case 3: 
         case 17: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); }
-        case 76: break;
-        case 46: 
-          { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; }
-        case 77: break;
-        case 33: 
-          { hasMore = false; return EncodingParserConstants.UTF16BE; }
-        case 78: break;
-        case 34: 
-          { hasMore = false; return EncodingParserConstants.UTF16LE; }
-        case 79: break;
+        case 18: 
+        case 20: 
         case 24: 
-        case 26: 
-        case 29: 
-          {  string.append( yytext() );  }
-        case 80: break;
-        case 23: 
-          {  yybegin(SQ_STRING); string.setLength(0);  }
-        case 81: break;
-        case 22: 
-          {  yybegin(DQ_STRING); string.setLength(0);  }
-        case 82: break;
-        case 27: 
-          {  yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;  }
-        case 83: break;
-        case 28: 
-          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
-        case 84: break;
         case 30: 
-          {  yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 85: break;
+        case 34: 
+        case 37: 
+          { if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;} }
+        case 125: break;
+        case 55: 
+        case 79: 
+          { yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd; }
+        case 126: break;
+        case 114: 
+        case 116: 
+          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding; }
+        case 127: break;
+        case 3: 
+        case 19: 
+        case 58: 
+          { pushCurrentState(); yybegin(QuotedAttributeValue); }
+        case 128: break;
+        case 40: 
+          { hasMore = false; return EncodingParserConstants.UTF16BE; }
+        case 129: break;
+        case 41: 
+          { hasMore = false; return EncodingParserConstants.UTF16LE; }
+        case 130: break;
+        case 74: 
+          { hasMore = false; return EncodingParserConstants.UTF83ByteBOM; }
+        case 131: break;
+        case 28: 
         case 31: 
-          {  yypushback(1); popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
-        case 86: break;
+        case 35: 
+          {  string.append( yytext() );  }
+        case 132: break;
+        case 27: 
+        case 63: 
+          {  yybegin(SQ_STRING); string.setLength(0);  }
+        case 133: break;
+        case 26: 
+        case 62: 
+          {  yybegin(DQ_STRING); string.setLength(0);  }
+        case 134: break;
+        case 32: 
+        case 67: 
+          {  yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;  }
+        case 135: break;
+        case 33: 
+        case 68: 
+          {  popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;  }
+        case 136: break;
+        case 36: 
+        case 71: 
+          {  yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
+        case 137: break;
+        case 38: 
+        case 72: 
+          {  yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;  }
+        case 138: break;
         default: 
           if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
             yy_atEOF = true;
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex
index 2bc923d..fd5dc23 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.jFlex
@@ -1,285 +1,292 @@
-/*******************************************************************************
- * 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
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.common.encoding.contentspecific.html;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.common.encoding.contentspecific.EncodingParserConstants;
-import org.eclipse.wst.common.encoding.contentspecific.HeadParserToken;
-import org.eclipse.wst.common.encoding.contentspecific.IntStack;
-import org.eclipse.wst.common.encoding.contentspecific.xml.XMLHeadTokenizerConstants;
-
-
-
-%%
-
-%{
-
-
-	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 8000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-	boolean foundContentTypeValue = false;
-
-
-
-	public HTMLHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-	  	/* the input device */
-	  	yy_reader = in;
-
-  		/* the current state of the DFA */
-  		yy_state = 0;
-
-  		/* the current lexical state */
-  		yy_lexical_state = YYINITIAL;
-
-  		/* this buffer contains the current text to be matched and is
-  		 the source of the yytext() string */
-  		java.util.Arrays.fill(yy_buffer, (char)0);
-
-  		/* the textposition at the last accepting state */
-  		yy_markedPos = 0;
-
-  		/* the textposition at the last state to be included in yytext */
-  		yy_pushbackPos = 0;
-
-  		/* the current text position in the buffer */
-  		yy_currentPos = 0;
-
-  		/* startRead marks the beginning of the yytext() string in the buffer */
-  		yy_startRead = 0;
-
-  		/** 
-  		 * endRead marks the last character in the buffer, that has been read
-  		 * from input 
-  		 */
-  		yy_endRead = 0;
-
-  		/* number of newlines encountered up to the start of the matched text */
-  		yyline = 0;
-
-  		/* the number of characters up to the start of the matched text */
-  		yychar = 0;
-
-  		/**
-  		 * the number of characters from the last newline up to the start
-  		 * of the matched text
-  		 */
-  		yycolumn = 0; 
-
-  		/** 
-  		 * yy_atBOL == true <=> the scanner is currently at the beginning 
-  		 * of a line
-  		 */
-  		yy_atBOL = false;
-
-  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */
-  		yy_atEOF = false;
-
-  		/* denotes if the user-EOF-code has already been executed */
-  		yy_eof_done = false;
-
-
-  		fStateStack.clear();
-  		
-  		hasMore = true;
-  		
-		// its a little wasteful to "throw away" first char array generated
-		// by class init (via auto generated code), but we really do want
-		// a small buffer for our head parsers.
-		if (yy_buffer.length != MAX_TO_SCAN) {
-			yy_buffer = new char[MAX_TO_SCAN];
-		}
-  		
-
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}
-	
-
-%}
-
-%eof{
-	hasMore=false;
-%eof}
-
-%public
-%class HTMLHeadTokenizer
-%function primGetNextToken
-%type String
-%char
-%unicode
-%ignorecase 
-%debug
-%switch
-
-
-UTF16BE = \xFE\xFF
-UTF16LE = \xFF\xFE
-UTF83ByteBOM = \xEF\xBB\xBF
-
-SpaceChar = [\x20\x09]
-
-
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]
-
-BeginAttribeValue = {S}* \= {S}*
-
-LineTerminator = \r|\n
-
-
-%state ST_XMLDecl
-%state ST_META_TAG
-%state QuotedAttributeValue
-%state DQ_STRING
-%state SQ_STRING
-%state UnDelimitedString
-
-%%
-
-
-<YYINITIAL>  
-{
-	{UTF16BE}   		{hasMore = false; return EncodingParserConstants.UTF16BE;}
-	{UTF16LE}   		{hasMore = false; return EncodingParserConstants.UTF16LE;}
-	{UTF83ByteBOM}   	{hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
-
-	// force to be started on first line, but we do allow preceeding spaces
-	^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}
-	
-	"<META "       {yybegin(ST_META_TAG); return HTMLHeadTokenizerConstants.MetaTagStart;}
-	
-
-}	
-	
-<ST_XMLDecl> 
-{
-	//"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}
-	"encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}
-	// note this "forced end" once end of XML Declaration found
-	"\?>"    {yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd;}
-}	
-
-<ST_META_TAG> 
-{
-
-	"http-equiv" {S}* \= {S}* \"? "Content-Type" \"? {S}+ "content" {BeginAttribeValue}  {pushCurrentState(); yybegin(QuotedAttributeValue); foundContentTypeValue=true; return HTMLHeadTokenizerConstants.MetaTagContentType;}
-	">"    { yybegin(YYINITIAL);  if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd;}
-	"\/>"    { yybegin(YYINITIAL); if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd;}
-}
-	
-
-<QuotedAttributeValue>
-{
-	\"                      { yybegin(DQ_STRING); string.setLength(0); }
-	\'			{ yybegin(SQ_STRING); string.setLength(0); }
-	// in this state, anything other than a space character can start an undelimited string
-	{S}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}
-
-}	
-
-
-<DQ_STRING>
-{
-
-	\"                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<SQ_STRING>
-{
-
-	\'                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<UnDelimitedString>
-{
-
-
-	// note this initial special case for HTTP contenttype values
-	";"{S}*			{ string.append( yytext() ); }
-	{S}                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"<"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote
-	\'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	\"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	
-	">"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\/>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-}
-
-// The "match anything" rule should always be in effect except for when looking for end of string
-// (That is, remember to update state list if/when new states added)
-<YYINITIAL, ST_XMLDecl, QuotedAttributeValue, ST_META_TAG>
-{
-// this is the fallback (match "anything") rule  (for this scanner, input is ignored, and position advanced, if not recognized)
-.|\n              {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}
-}
-
-// this rule always in effect
-<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}
+/*******************************************************************************

+ * Copyright (c) 2004, 2008 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

+ *******************************************************************************/

+/*nlsXXX*/

+package org.eclipse.wst.html.core.internal.contenttype;

+import java.io.IOException;

+import java.io.Reader;

+

+import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;

+import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;

+

+

+

+%%

+

+%{

+

+

+	private boolean hasMore = true;

+	private final static int MAX_TO_SCAN = 8000;

+	StringBuffer string = new StringBuffer();

+	// state stack for easier state handling

+	private IntStack fStateStack = new IntStack();

+	private String valueText = null;

+	boolean foundContentTypeValue = false;

+

+

+

+	public HTMLHeadTokenizer() {

+		super();

+	}

+

+	  public void reset (Reader in) {

+	  	/* the input device */

+	  	yy_reader = in;

+

+  		/* the current state of the DFA */

+  		yy_state = 0;

+

+  		/* the current lexical state */

+  		yy_lexical_state = YYINITIAL;

+

+  		/* this buffer contains the current text to be matched and is

+  		 the source of the yytext() string */

+  		java.util.Arrays.fill(yy_buffer, (char)0);

+

+  		/* the textposition at the last accepting state */

+  		yy_markedPos = 0;

+

+  		/* the textposition at the last state to be included in yytext */

+  		yy_pushbackPos = 0;

+

+  		/* the current text position in the buffer */

+  		yy_currentPos = 0;

+

+  		/* startRead marks the beginning of the yytext() string in the buffer */

+  		yy_startRead = 0;

+

+  		/** 

+  		 * endRead marks the last character in the buffer, that has been read

+  		 * from input 

+  		 */

+  		yy_endRead = 0;

+

+  		/* number of newlines encountered up to the start of the matched text */

+  		yyline = 0;

+

+  		/* the number of characters up to the start of the matched text */

+  		yychar = 0;

+

+  		/**

+  		 * the number of characters from the last newline up to the start

+  		 * of the matched text

+  		 */

+  		yycolumn = 0; 

+

+  		/** 

+  		 * yy_atBOL == true <=> the scanner is currently at the beginning 

+  		 * of a line

+  		 */

+  		yy_atBOL = false;

+

+  		/* yy_atEOF == true <=> the scanner has returned a value for EOF */

+  		yy_atEOF = false;

+

+  		/* denotes if the user-EOF-code has already been executed */

+  		yy_eof_done = false;

+

+

+  		fStateStack.clear();

+  		

+  		hasMore = true;

+  		

+		// its a little wasteful to "throw away" first char array generated

+		// by class init (via auto generated code), but we really do want

+		// a small buffer for our head parsers.

+		if (yy_buffer.length != MAX_TO_SCAN) {

+			yy_buffer = new char[MAX_TO_SCAN];

+		}

+  		

+

+  	}

+

+

+	public final HeadParserToken getNextToken() throws IOException {

+		String context = null;

+		context = primGetNextToken();

+		HeadParserToken result = null;

+		if (valueText != null) {

+			result = createToken(context, yychar, valueText);

+			valueText = null;

+		} else {

+			result = createToken(context, yychar, yytext());

+		}

+		return result;

+	}

+

+	public final boolean hasMoreTokens() {

+		return hasMore && yychar < MAX_TO_SCAN;

+	}

+	private void pushCurrentState() {

+		fStateStack.push(yystate());

+

+	}

+

+	private void popState() {

+		yybegin(fStateStack.pop());

+	}

+	private HeadParserToken createToken(String context, int start, String text) {

+		return new HeadParserToken(context, start, text);

+	}

+	

+

+%}

+

+%eof{

+	hasMore=false;

+%eof}

+

+%public

+%class HTMLHeadTokenizer

+%function primGetNextToken

+%type String

+%char

+%unicode

+%ignorecase 

+//%debug

+%switch

+

+

+UTF16BE = \xFE\xFF

+UTF16LE = \xFF\xFE

+UTF83ByteBOM = \xEF\xBB\xBF

+

+SpaceChar = [\x20\x09]

+

+

+

+// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+

+S = [\x20\x09\x0D\x0A]

+

+// BeginAttribeValue = {S}* \= {S}*

+

+LineTerminator = \r|\n

+

+Z = (\x00)?

+S_UTF = {Z}{S}{Z}

+BeginAttributeValueUTF = {S_UTF}* \= {S_UTF}*

+

+%state ST_XMLDecl

+%state ST_META_TAG

+%state QuotedAttributeValue

+%state DQ_STRING

+%state SQ_STRING

+%state UnDelimitedString

+%state UnDelimitedCharset

+

+%%

+

+

+<YYINITIAL>  

+{

+	{UTF16BE}   		{hasMore = false; return EncodingParserConstants.UTF16BE;}

+	{UTF16LE}   		{hasMore = false; return EncodingParserConstants.UTF16LE;}

+	{UTF83ByteBOM}   	{hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}

+

+	// force to be started on first line, but we do allow preceeding spaces

+	^ {S_UTF}* ({Z}<{Z}\?{Z}x{Z}m{Z}l{Z}){S_UTF}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}

+	({Z}<{Z}M{Z}E{Z}T{Z}A{Z})       {yybegin(ST_META_TAG); return HTMLHeadTokenizerConstants.MetaTagStart;}

+	

+

+}	

+	

+<ST_XMLDecl> 

+{

+	//"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}

+	({Z}e{Z}n{Z}c{Z}o{Z}d{Z}i{Z}n{Z}g{Z}) {BeginAttributeValueUTF} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}

+	// note this "forced end" once end of XML Declaration found

+	({Z}\?{Z}>{Z})    {yybegin(YYINITIAL);  return XMLHeadTokenizerConstants.XMLDeclEnd;}

+}	

+

+<ST_META_TAG> 

+{

+

+//	"http-equiv" {S}* \= {S}* \"? "Content-Type" \"? {S}+ "content" {BeginAttribeValue}  {pushCurrentState(); yybegin(QuotedAttributeValue); foundContentTypeValue=true; return HTMLHeadTokenizerConstants.MetaTagContentType;}

+	{Z}h{Z}t{Z}t{Z}p{Z}-{Z}e{Z}q{Z}u{Z}i{Z}v{Z} {S_UTF}* \= {S_UTF}* {Z}\"?{Z} ({Z}C{Z}o{Z}n{Z}t{Z}e{Z}n{Z}t{Z}-{Z}T{Z}y{Z}p{Z}e{Z}) \"?{Z} ({S_UTF})+ ({Z}c{Z}o{Z}n{Z}t{Z}e{Z}n{Z}t{Z}) {BeginAttributeValueUTF}  {pushCurrentState(); yybegin(QuotedAttributeValue); foundContentTypeValue=true; return HTMLHeadTokenizerConstants.MetaTagContentType;}

+	{Z}>{Z}    { yybegin(YYINITIAL);  if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd;}

+	{Z}\/{Z}>{Z}    { yybegin(YYINITIAL); if (foundContentTypeValue) hasMore = false; return HTMLHeadTokenizerConstants.MetaTagEnd;}

+}

+	

+

+<QuotedAttributeValue>

+{

+	{Z}\"{Z}            { yybegin(DQ_STRING); string.setLength(0); }

+	{Z}\'{Z}			{ yybegin(SQ_STRING); string.setLength(0); }

+	// in this state, anything other than a space character can start an undelimited string

+	{S_UTF}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}

+

+}	

+

+

+<DQ_STRING>

+{

+

+	{Z}\"{Z}                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\?{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	

+	{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\/{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	[^\x00]			{ string.append( yytext() ); }

+

+

+}

+

+<SQ_STRING>

+{

+

+	{Z}\'{Z}                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}%{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\/{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	[^\x00]			{ string.append( yytext() ); }

+

+

+}

+

+<UnDelimitedString>

+{

+

+

+	// note this initial special case for HTTP contenttype values

+	// Look ahead and see if there are spaces, but don't append the spaces as they may be double-byte

+	// Let the next state handle removal of the \x00 and properly append spaces

+	";"/{S_UTF}*			{ pushCurrentState(); yybegin(UnDelimitedCharset); string.append( yytext() ); }

+	{S_UTF}                     { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\?{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote

+	{Z}\'{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

+	{Z}\"{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

+	

+	{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\/{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	[^\x00]			{ string.append( yytext() ); }

+

+}

+

+<UnDelimitedCharset>

+{

+	{S} { string.append( yytext() ); }

+	// For non \x00 characters, let the previous state handle it

+	[^\x00] {yypushback(1); popState(); }

+}

+

+// The "match anything" rule should always be in effect except for when looking for end of string

+// (That is, remember to update state list if/when new states added)

+.|\n	{if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}

+

+// this rule always in effect

+<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java
index a1ec0f5..87d6c8f 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/HTMLHeadTokenizer/HTMLHeadTokenizer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex
index a5dd0f4..d307389 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.jFlex
@@ -1,15 +1,16 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004,2008 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
+ *     kb.huang  - Bug 214416  Dot char is not escaped in XML10Names.jFlex
  *******************************************************************************/
 /*nlsXXX*/
-package org.eclipse.wst.sse.core.xml.internal.parser;
+package org.eclipse.wst.xml.core.internal.parser;
 
 
 
@@ -26,8 +27,6 @@
 %buffer 2048
 %apiprivate
 
-S = (\x20 | \x09 | \x0D | \x0A)
-
 BaseChar = [\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u0131\u0134-\u013E\u0141-\u0148\u014A-\u017E\u0180-\u01C3\u01CD-\u01F0\u01F4-\u01F5\u01FA-\u0217\u0250-\u02A8\u02BB-\u02C1\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03CE\u03D0-\u03D6\u03DA\u03DC\u03DE\u03E0\u03E2-\u03F3\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E-\u0481\u0490-\u04C4\u04C7-\u04C8\u04CB-\u04CC\u04D0-\u04EB\u04EE-\u04F5\u04F8-\u04F9\u0531-\u0556\u0559\u0561-\u0586\u05D0-\u05EA\u05F0-\u05F2\u0621-\u063A\u0641-\u064A\u0671-\u06B7\u06BA-\u06BE\u06C0-\u06CE\u06D0-\u06D3\u06D5\u06E5-\u06E6\u0905-\u0939\u093D\u0958-\u0961\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8B\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AE0\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B36-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB5\u0BB7-\u0BB9\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C60-\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CDE\u0CE0-\u0CE1\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D28\u0D2A-\u0D39\u0D60-\u0D61\u0E01-\u0E2E\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EAE\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0F40-\u0F47\u0F49-\u0F69\u10A0-\u10C5\u10D0-\u10F6\u1100\u1102-\u1103\u1105-\u1107\u1109\u110B-\u110C\u110E-\u1112\u113C\u113E\u1140\u114C\u114E\u1150\u1154-\u1155\u1159\u115F-\u1161\u1163\u1165\u1167\u1169\u116D-\u116E\u1172-\u1173\u1175\u119E\u11A8\u11AB\u11AE-\u11AF\u11B7-\u11B8\u11BA\u11BC-\u11C2\u11EB\u11F0\u11F9\u1E00-\u1E9B\u1EA0-\u1EF9\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2126\u212A-\u212B\u212E\u2180-\u2182\u3041-\u3094\u30A1-\u30FA\u3105-\u312C\uAC00-\uD7A3]
 
 Ideographic = [\u4E00-\u9FA5\u3007\u3021-\u3029]
@@ -40,34 +39,34 @@
 
 Letter = ({BaseChar} | {Ideographic})
 
-NameChar = ({Letter} | {Digit} | . | - | _ | : | {CombiningChar} | {Extender})
+NameChar = ({Letter} | {Digit} | "." | "-" | "_" | ":" | {CombiningChar} | {Extender})
 
-Name = ({Letter} | _ | : ) ({NameChar})*
+Name = ({Letter} | "_" | ":" ) ({NameChar})*
 
 
 
 %{
+        boolean result;
+        /**
+         * Creates a new scanner
+         */
+        public XML10Names() {
+                this.zzReader = null;
+        }
 
-	/**
-	 * Creates a new scanner
-	 */
-	public XML10Names() {
-		this.zzReader = null;
-	}
-
-	public boolean isValidXML10Name(String stringToCheck) {
-		boolean result = false;
-		yyreset(new java.io.StringReader(stringToCheck));
-		try {
-			result = isValidXML10Name();
-		}
-		catch (java.io.IOException e) {
-			// should be impossible with strings, but if occurs, just means
-			// "not"
-			result = false;
-		}
-		return result;
-	}
+        public boolean isValidXML10Name(String stringToCheck) {
+                boolean result = false;
+                yyreset(new java.io.StringReader(stringToCheck));
+                try {
+                        result = isValidXML10Name();
+                }
+                catch (java.io.IOException e) {
+                        // should be impossible with strings, but if occurs, just means
+                        // "not"
+                        result = false;
+                }
+                return result;
+        }
 
 %}
 
@@ -79,14 +78,13 @@
 <YYINITIAL>
 {
 
-	// don't match if contains trailing or embedded space
-	{Name} {S}+         {return false;}
-	{Name} {S}+ {Name}  {return false;}
+        // name must be whole line (input), not partial
+        // see https://bugs.eclipse.org/bugs/show_bug.cgi?id=214416
+        {Name}            {return true; /* exact name */}
+        {Name}.+          {return false; /* more than name */}
 
-	{Name}              {return true;}
-
-	// match anything should come last
-	.                   {return false;}
+        // match anything (else) should normally come last
+        .                 {return false; /* matched wild */}
 
 }
 
@@ -94,7 +92,7 @@
 // this rule always in effect
 <<EOF>>
 {
-	{return false;}
+        {return false; /* hit end with no match */}
 }
 
 
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java
index 07bdcf2..fe91212 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10Names.java
@@ -1,19 +1,18 @@
+/* The following code was generated by JFlex 1.4 on 2/25/08 10:25 AM */
+
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2004,2008 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
- *     
+ *     kb.huang  - Bug 214416  Dot char is not escaped in XML10Names.jFlex
  *******************************************************************************/
-/* The following code was generated by JFlex 1.4 on 7/17/04 3:43 AM */
-
 /*nlsXXX*/
-package org.eclipse.wst.sse.core.xml.internal.parser;
+package org.eclipse.wst.xml.core.internal.parser;
 
 
 
@@ -21,7 +20,7 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4
- * on 7/17/04 3:43 AM from the specification file
+ * on 2/25/08 10:25 AM from the specification file
  * <tt>XML10Names.jflex</tt>
  */
 public final class XML10Names {
@@ -39,68 +38,67 @@
    * Translates characters to character classes
    */
   private static final String ZZ_CMAP_PACKED = 
-    "\11\0\1\1\1\2\2\0\1\1\22\0\1\1\14\0\1\0\2\0"+
-    "\12\0\1\3\6\0\32\3\4\0\1\3\1\0\32\3\74\0\1\0"+
-    "\10\0\27\3\1\0\37\3\1\0\72\3\2\0\13\3\2\0\10\3"+
-    "\1\0\65\3\1\0\104\3\11\0\44\3\3\0\2\3\4\0\36\3"+
-    "\70\0\131\3\22\0\7\3\16\0\2\0\56\0\106\0\32\0\2\0"+
-    "\44\0\1\3\1\0\3\3\1\0\1\3\1\0\24\3\1\0\54\3"+
-    "\1\0\7\3\3\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3"+
-    "\1\0\22\3\15\0\14\3\1\0\102\3\1\0\14\3\1\0\44\3"+
-    "\1\0\4\0\11\0\65\3\2\0\2\3\2\0\2\3\3\0\34\3"+
-    "\2\0\10\3\2\0\2\3\67\0\46\3\2\0\1\3\7\0\46\3"+
-    "\12\0\21\0\1\0\27\0\1\0\3\0\1\0\1\0\1\0\2\0"+
-    "\1\0\1\0\13\0\33\3\5\0\3\3\56\0\32\3\5\0\1\0"+
-    "\12\3\10\0\15\0\12\0\6\0\1\0\107\3\2\0\5\3\1\0"+
-    "\17\3\1\0\4\3\1\0\1\3\17\0\2\3\2\0\1\0\4\0"+
-    "\2\0\12\0\u0207\0\3\0\1\0\65\3\2\0\1\0\1\3\20\0"+
-    "\3\0\4\0\3\0\12\3\2\0\2\0\12\0\21\0\3\0\1\0"+
-    "\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0\1\3\3\0"+
-    "\4\3\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\11\0"+
-    "\1\0\4\0\2\3\1\0\3\3\2\0\2\0\12\0\2\3\20\0"+
-    "\1\0\2\0\6\3\4\0\2\3\2\0\26\3\1\0\7\3\1\0"+
-    "\2\3\1\0\2\3\1\0\2\3\2\0\1\0\1\0\5\0\4\0"+
-    "\2\0\2\0\3\0\13\0\4\3\1\0\1\3\7\0\12\0\2\0"+
-    "\3\3\14\0\3\0\1\0\7\3\1\0\1\3\1\0\3\3\1\0"+
-    "\26\3\1\0\7\3\1\0\2\3\1\0\5\3\2\0\1\0\1\3"+
-    "\10\0\1\0\3\0\1\0\3\0\22\0\1\3\5\0\12\0\21\0"+
-    "\3\0\1\0\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0"+
-    "\2\3\2\0\4\3\2\0\1\0\1\3\6\0\3\0\2\0\2\0"+
-    "\3\0\10\0\2\0\4\0\2\3\1\0\3\3\4\0\12\0\22\0"+
-    "\2\0\1\0\6\3\3\0\3\3\1\0\4\3\3\0\2\3\1\0"+
-    "\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0\10\3\1\0"+
-    "\3\3\4\0\5\0\3\0\3\0\1\0\4\0\11\0\1\0\17\0"+
-    "\11\0\21\0\3\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0"+
-    "\12\3\1\0\5\3\4\0\7\0\1\0\3\0\1\0\4\0\7\0"+
-    "\2\0\11\0\2\3\4\0\12\0\22\0\2\0\1\0\10\3\1\0"+
-    "\3\3\1\0\27\3\1\0\12\3\1\0\5\3\4\0\7\0\1\0"+
-    "\3\0\1\0\4\0\7\0\2\0\7\0\1\3\1\0\2\3\4\0"+
-    "\12\0\22\0\2\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0"+
-    "\20\3\4\0\6\0\2\0\3\0\1\0\4\0\11\0\1\0\10\0"+
-    "\2\3\4\0\12\0\221\0\56\3\1\0\1\3\1\0\2\3\7\0"+
-    "\5\0\6\3\1\0\10\0\1\0\12\0\47\0\2\3\1\0\1\3"+
-    "\2\0\2\3\1\0\1\3\2\0\1\3\6\0\4\3\1\0\7\3"+
-    "\1\0\3\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\2\3"+
-    "\1\0\1\3\1\0\2\3\6\0\1\0\2\0\1\3\2\0\5\3"+
-    "\1\0\1\0\1\0\6\0\2\0\12\0\76\0\2\0\6\0\12\0"+
-    "\13\0\1\0\1\0\1\0\1\0\1\0\4\0\2\0\10\3\1\0"+
-    "\41\3\7\0\24\0\1\0\6\0\4\0\6\0\1\0\1\0\1\0"+
-    "\25\0\3\0\7\0\1\0\1\0\346\0\46\3\12\0\47\3\11\0"+
-    "\1\3\1\0\2\3\1\0\3\3\1\0\1\3\1\0\2\3\1\0"+
-    "\5\3\51\0\1\3\1\0\1\3\1\0\1\3\13\0\1\3\1\0"+
-    "\1\3\1\0\1\3\3\0\2\3\3\0\1\3\5\0\3\3\1\0"+
-    "\1\3\1\0\1\3\1\0\1\3\1\0\1\3\3\0\2\3\3\0"+
-    "\2\3\1\0\1\3\50\0\1\3\11\0\1\3\2\0\1\3\2\0"+
-    "\2\3\7\0\2\3\1\0\1\3\1\0\7\3\50\0\1\3\4\0"+
-    "\1\3\10\0\1\3\u0c06\0\234\3\4\0\132\3\6\0\26\3\2\0"+
-    "\6\3\2\0\46\3\2\0\6\3\2\0\10\3\1\0\1\3\1\0"+
-    "\1\3\1\0\1\3\1\0\37\3\2\0\65\3\1\0\7\3\1\0"+
-    "\1\3\3\0\3\3\1\0\7\3\3\0\4\3\2\0\6\3\4\0"+
-    "\15\3\5\0\3\3\1\0\7\3\323\0\15\0\4\0\1\0\104\0"+
-    "\1\3\3\0\2\3\2\0\1\3\121\0\3\3\u0e82\0\1\0\1\0"+
-    "\1\3\31\0\11\3\6\0\1\0\5\0\13\0\124\3\4\0\2\0"+
-    "\2\0\2\0\2\0\132\3\1\0\3\0\6\0\50\3\u1cd3\0\u51a6\3"+
-    "\u0c5a\0\u2ba4\3\u285c\0";
+    "\12\0\1\3\42\0\1\2\1\2\1\0\12\2\1\1\6\0\32\1"+
+    "\4\0\1\1\1\0\32\1\74\0\1\2\10\0\27\1\1\0\37\1"+
+    "\1\0\72\1\2\0\13\1\2\0\10\1\1\0\65\1\1\0\104\1"+
+    "\11\0\44\1\3\0\2\1\4\0\36\1\70\0\131\1\22\0\7\1"+
+    "\16\0\2\2\56\0\106\2\32\0\2\2\44\0\1\1\1\2\3\1"+
+    "\1\0\1\1\1\0\24\1\1\0\54\1\1\0\7\1\3\0\1\1"+
+    "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\22\1\15\0\14\1"+
+    "\1\0\102\1\1\0\14\1\1\0\44\1\1\0\4\2\11\0\65\1"+
+    "\2\0\2\1\2\0\2\1\3\0\34\1\2\0\10\1\2\0\2\1"+
+    "\67\0\46\1\2\0\1\1\7\0\46\1\12\0\21\2\1\0\27\2"+
+    "\1\0\3\2\1\0\1\2\1\0\2\2\1\0\1\2\13\0\33\1"+
+    "\5\0\3\1\56\0\32\1\5\0\1\2\12\1\10\2\15\0\12\2"+
+    "\6\0\1\2\107\1\2\0\5\1\1\0\17\1\1\0\4\1\1\0"+
+    "\1\1\17\2\2\1\2\2\1\0\4\2\2\0\12\2\u0207\0\3\2"+
+    "\1\0\65\1\2\0\1\2\1\1\20\2\3\0\4\2\3\0\12\1"+
+    "\2\2\2\0\12\2\21\0\3\2\1\0\10\1\2\0\2\1\2\0"+
+    "\26\1\1\0\7\1\1\0\1\1\3\0\4\1\2\0\1\2\1\0"+
+    "\7\2\2\0\2\2\2\0\3\2\11\0\1\2\4\0\2\1\1\0"+
+    "\3\1\2\2\2\0\12\2\2\1\20\0\1\2\2\0\6\1\4\0"+
+    "\2\1\2\0\26\1\1\0\7\1\1\0\2\1\1\0\2\1\1\0"+
+    "\2\1\2\0\1\2\1\0\5\2\4\0\2\2\2\0\3\2\13\0"+
+    "\4\1\1\0\1\1\7\0\12\2\2\2\3\1\14\0\3\2\1\0"+
+    "\7\1\1\0\1\1\1\0\3\1\1\0\26\1\1\0\7\1\1\0"+
+    "\2\1\1\0\5\1\2\0\1\2\1\1\10\2\1\0\3\2\1\0"+
+    "\3\2\22\0\1\1\5\0\12\2\21\0\3\2\1\0\10\1\2\0"+
+    "\2\1\2\0\26\1\1\0\7\1\1\0\2\1\2\0\4\1\2\0"+
+    "\1\2\1\1\6\2\3\0\2\2\2\0\3\2\10\0\2\2\4\0"+
+    "\2\1\1\0\3\1\4\0\12\2\22\0\2\2\1\0\6\1\3\0"+
+    "\3\1\1\0\4\1\3\0\2\1\1\0\1\1\1\0\2\1\3\0"+
+    "\2\1\3\0\3\1\3\0\10\1\1\0\3\1\4\0\5\2\3\0"+
+    "\3\2\1\0\4\2\11\0\1\2\17\0\11\2\21\0\3\2\1\0"+
+    "\10\1\1\0\3\1\1\0\27\1\1\0\12\1\1\0\5\1\4\0"+
+    "\7\2\1\0\3\2\1\0\4\2\7\0\2\2\11\0\2\1\4\0"+
+    "\12\2\22\0\2\2\1\0\10\1\1\0\3\1\1\0\27\1\1\0"+
+    "\12\1\1\0\5\1\4\0\7\2\1\0\3\2\1\0\4\2\7\0"+
+    "\2\2\7\0\1\1\1\0\2\1\4\0\12\2\22\0\2\2\1\0"+
+    "\10\1\1\0\3\1\1\0\27\1\1\0\20\1\4\0\6\2\2\0"+
+    "\3\2\1\0\4\2\11\0\1\2\10\0\2\1\4\0\12\2\221\0"+
+    "\56\1\1\0\1\1\1\2\2\1\7\2\5\0\6\1\1\2\10\2"+
+    "\1\0\12\2\47\0\2\1\1\0\1\1\2\0\2\1\1\0\1\1"+
+    "\2\0\1\1\6\0\4\1\1\0\7\1\1\0\3\1\1\0\1\1"+
+    "\1\0\1\1\2\0\2\1\1\0\2\1\1\0\1\1\1\2\2\1"+
+    "\6\2\1\0\2\2\1\1\2\0\5\1\1\0\1\2\1\0\6\2"+
+    "\2\0\12\2\76\0\2\2\6\0\12\2\13\0\1\2\1\0\1\2"+
+    "\1\0\1\2\4\0\2\2\10\1\1\0\41\1\7\0\24\2\1\0"+
+    "\6\2\4\0\6\2\1\0\1\2\1\0\25\2\3\0\7\2\1\0"+
+    "\1\2\346\0\46\1\12\0\47\1\11\0\1\1\1\0\2\1\1\0"+
+    "\3\1\1\0\1\1\1\0\2\1\1\0\5\1\51\0\1\1\1\0"+
+    "\1\1\1\0\1\1\13\0\1\1\1\0\1\1\1\0\1\1\3\0"+
+    "\2\1\3\0\1\1\5\0\3\1\1\0\1\1\1\0\1\1\1\0"+
+    "\1\1\1\0\1\1\3\0\2\1\3\0\2\1\1\0\1\1\50\0"+
+    "\1\1\11\0\1\1\2\0\1\1\2\0\2\1\7\0\2\1\1\0"+
+    "\1\1\1\0\7\1\50\0\1\1\4\0\1\1\10\0\1\1\u0c06\0"+
+    "\234\1\4\0\132\1\6\0\26\1\2\0\6\1\2\0\46\1\2\0"+
+    "\6\1\2\0\10\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0"+
+    "\37\1\2\0\65\1\1\0\7\1\1\0\1\1\3\0\3\1\1\0"+
+    "\7\1\3\0\4\1\2\0\6\1\4\0\15\1\5\0\3\1\1\0"+
+    "\7\1\323\0\15\2\4\0\1\2\104\0\1\1\3\0\2\1\2\0"+
+    "\1\1\121\0\3\1\u0e82\0\1\2\1\0\1\1\31\0\11\1\6\2"+
+    "\1\0\5\2\13\0\124\1\4\0\2\2\2\0\2\2\2\0\132\1"+
+    "\1\0\3\2\6\0\50\1\u1cd3\0\u51a6\1\u0c5a\0\u2ba4\1\u285c\0";
 
   /** 
    * Translates characters to character classes
@@ -113,10 +111,10 @@
   private static final int [] ZZ_ACTION = zzUnpackAction();
 
   private static final String ZZ_ACTION_PACKED_0 =
-    "\1\0\1\1\1\2\4\1";
+    "\1\0\1\1\1\2\1\3";
 
   private static int [] zzUnpackAction() {
-    int [] result = new int[7];
+    int [] result = new int[4];
     int offset = 0;
     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
     return result;
@@ -141,10 +139,10 @@
   private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
 
   private static final String ZZ_ROWMAP_PACKED_0 =
-    "\0\0\0\4\0\10\0\14\0\20\0\24\0\30";
+    "\0\0\0\4\0\10\0\14";
 
   private static int [] zzUnpackRowMap() {
-    int [] result = new int[7];
+    int [] result = new int[4];
     int offset = 0;
     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
     return result;
@@ -165,9 +163,8 @@
    * The transition table of the DFA
    */
   private static final int ZZ_TRANS [] = {
-    1, 1, -1, 2, -1, -1, -1, -1, 2, 3, 
-    4, 2, 2, 3, 4, 5, -1, 4, 4, 6, 
-    5, 5, 4, 5, 6, 6, -1, 6, 
+    1, 2, 1, -1, -1, -1, -1, -1, 3, 2, 
+    2, -1, 3, 3, 3, -1
   };
 
   /* error codes */
@@ -188,10 +185,10 @@
   private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
 
   private static final String ZZ_ATTRIBUTE_PACKED_0 =
-    "\1\0\1\11\5\1";
+    "\1\0\1\11\2\1";
 
   private static int [] zzUnpackAttribute() {
-    int [] result = new int[7];
+    int [] result = new int[4];
     int offset = 0;
     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
     return result;
@@ -259,27 +256,27 @@
   private boolean zzAtEOF;
 
   /* user code: */
+        boolean result;
+        /**
+         * Creates a new scanner
+         */
+        public XML10Names() {
+                this.zzReader = null;
+        }
 
-	/**
-	 * Creates a new scanner
-	 */
-	public XML10Names() {
-		this.zzReader = null;
-	}
-
-	public boolean isValidXML10Name(String stringToCheck) {
-		boolean result = false;
-		yyreset(new java.io.StringReader(stringToCheck));
-		try {
-			result = isValidXML10Name();
-		}
-		catch (java.io.IOException e) {
-			// should be impossible with strings, but if occurs, just means
-			// "not"
-			result = false;
-		}
-		return result;
-	}
+        public boolean isValidXML10Name(String stringToCheck) {
+                boolean result = false;
+                yyreset(new java.io.StringReader(stringToCheck));
+                try {
+                        result = isValidXML10Name();
+                }
+                catch (java.io.IOException e) {
+                        // should be impossible with strings, but if occurs, just means
+                        // "not"
+                        result = false;
+                }
+                return result;
+        }
 
 
 
@@ -313,7 +310,7 @@
     char [] map = new char[0x10000];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 1226) {
+    while (i < 1218) {
       int  count = packed.charAt(i++);
       char value = packed.charAt(i++);
       do map[j++] = value; while (--count > 0);
@@ -571,17 +568,21 @@
 
       switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
         case 1: 
-          { return false;
-          }
-        case 3: break;
-        case 2: 
-          { return true;
+          { return false; /* matched wild */
           }
         case 4: break;
+        case 2: 
+          { return true; /* exact name */
+          }
+        case 5: break;
+        case 3: 
+          { return false; /* more than name */
+          }
+        case 6: break;
         default: 
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
             zzAtEOF = true;
-              { {return false;} }
+              { {return false; /* hit end with no match */} }
           } 
           else {
             zzScanError(ZZ_NO_MATCH);
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd
deleted file mode 100644
index 2477d14..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJava.cmd
+++ /dev/null
@@ -1,25 +0,0 @@
-@echo on

-

-rem The following variables need to be set/specified for each "development machine"

-set PATH=%PATH%;D:\JDKs\j2sdk1.4.2_03\bin

-set WORKSPACE_LOCATION=D:\builds\Workspaces\RC2

-set JFLEX_LIB_LOCATION=D:\DevTimeSupport\JFlex-1.4\lib

-

-rem The following variables differ from project to project, but should be otherwise constant

-set MAIN_NAME=XML10Names

-

-set PROJECT_SRC=\org.eclipse.wst.sse.core.xml\src\

-set PACKAGE_DIR=com\ibm\sse\model\xml\internal\parser\

-

-

-rem Given the above "framework" and the command themselves, these variables should never need to be modified

-set JAVA_FILE=%MAIN_NAME%.java

-set JFLEX_RULES=%MAIN_NAME%.jflex

-set SKELETON_FILE=%MAIN_NAME%.skeleton

-

-IF EXIST %JAVA_FILE% del %JAVA_FILE%

-rem java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES% -skel %SKELETON_FILE% 1>jflexout.txt 2>jflexerr.txt

-java -Xmx470000000 -cp %JFLEX_LIB_LOCATION%\sed-jflex.jar;. JFlex.Main %JFLEX_RULES%  1>jflexout.txt 2>jflexerr.txt

-IF EXIST %JAVA_FILE% copy %JAVA_FILE% %WORKSPACE_LOCATION%%PROJECT_SRC%%PACKAGE_DIR%%JAVA_FILE%

-

-pause

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd
index aafbf61..7c816d0 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/XML10NamesGenJavaJFlex14.cmd
@@ -1,15 +1,15 @@
 @echo on

 

 rem The following variables need to be set/specified for each "development machine"

-set PATH=%PATH%;D:\JDKs\j2sdk1.4.2_03\bin

-set WORKSPACE_LOCATION=D:\builds\Workspaces\RC2

+set PATH=%PATH%;D:\JDKs\ibm-java2-sdk-50-win-i386\bin

+set WORKSPACE_LOCATION=D:\builds\Workspaces\newWTPpurehead

 set JFLEX_LIB_LOCATION=D:\DevTimeSupport\JFlex-1.4\lib

 

 rem The following variables differ from project to project, but should be otherwise constant

 set MAIN_NAME=XML10Names

 

-set PROJECT_SRC=\org.eclipse.wst.sse.core.xml\src\

-set PACKAGE_DIR=com\ibm\sse\model\xml\internal\parser\

+set PROJECT_SRC=\org.eclipse.wst.xml.core\src\

+set PACKAGE_DIR=org\eclipse\wst\xml\core\internal\parser\

 

 

 rem Given the above "framework" and the command themselves, these variables should never need to be modified

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt
index 6e960b5..c336f12 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XML10Names/jflexout.txt
@@ -1,6 +1,6 @@
 Reading "XML10Names.jflex"
-Constructing NFA : 36 states in NFA
+Constructing NFA : 84 states in NFA
 Converting NFA to DFA : 
-...........
-13 states before minimization, 7 states in minimized DFA
+............
+14 states before minimization, 4 states in minimized DFA
 Writing code to "XML10Names.java"
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java
index af0375c..b353067 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer/XMLHeadTokenizer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java
deleted file mode 100644
index b30ce69..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.java
+++ /dev/null
@@ -1,1948 +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
- *     
- *******************************************************************************/
-/* The following code was generated by JFlex 1.2.2 on 04/10/01 22:53 */
-
-/*nlsXXX*/
-package org.eclipse.wst.sse.core.css.internal.parser;
-
-import java.io.CharArrayReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.core.css.internal.parser.regions.CSSTextRegionFactory;
-import org.eclipse.wst.sse.core.css.parser.CSSRegionContexts;
-import org.eclipse.wst.sse.core.css.parser.CSSTextToken;
-import org.eclipse.wst.sse.core.text.ITextRegion;
-
-
-/**
- * This class is a scanner generated by 
- * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- */
-public class CSSTokenizer implements CSSRegionContexts {
-
-  /** this character denotes the end of file */
-  final public static int YYEOF = -1;
-
-  /** lexical states */
-  final public static int ST_SELECTOR_ATTRIBUTE_NAME = 11;
-  final public static int ST_IMPORT_DELIMITER = 5;
-  final public static int ST_DECLARATION_PRE_VALUE = 17;
-  final public static int ST_SELECTOR = 0;
-  final public static int ST_CHARSET_DELIMITER = 2;
-  final public static int ST_DECLARATION_VALUE = 18;
-  final public static int ST_PAGE_PSEUDO_PAGE = 8;
-  final public static int ST_IMPORT_URI = 3;
-  final public static int ST_SELECTOR_ATTRIBUTE_END = 14;
-  final public static int ST_SELECTOR_ATTRIBUTE_OPERATOR = 12;
-  final public static int ST_DECLARATION = 15;
-  final public static int ST_PAGE_DELIMITER = 9;
-  final public static int ST_SELECTOR_ATTRIBUTE_VALUE = 13;
-  final public static int ST_MEDIA_MEDIUM = 6;
-  final public static int ST_CHARSET_NAME = 1;
-  final public static int ST_IMPORT_MEDIUM = 4;
-  final public static int ST_DECLARATION_SEPARATOR = 16;
-  final public static int ST_FONT_FACE_DELIMITER = 9;
-  final public static int ST_MEDIA_DELIMITER = 7;
-  final public static int ST_SELECTOR_MODIFIER = 10;
-  final public static int YYINITIAL = 0;
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static String yycmap_packed = 
-    "\11\0\1\11\1\17\1\0\1\4\1\20\22\0\1\6\1\31\1\10"+
-    "\1\22\1\16\1\72\1\16\1\5\1\26\1\12\1\35\1\14\1\55"+
-    "\1\13\1\15\1\34\12\1\1\62\1\50\1\30\1\67\1\32\1\21"+
-    "\1\36\1\43\1\27\1\40\1\57\1\46\1\64\1\61\1\41\1\51"+
-    "\2\2\1\25\1\52\1\65\1\54\1\53\1\2\1\24\1\44\1\47"+
-    "\1\23\5\2\1\66\1\3\1\71\1\16\1\2\1\16\1\42\1\7"+
-    "\1\37\1\56\1\45\1\63\1\61\1\41\1\51\2\2\1\25\1\52"+
-    "\1\65\1\54\1\53\1\2\1\24\1\44\1\47\1\23\5\2\1\60"+
-    "\1\70\1\33\1\70\1\0\uff80\2";
-
-  /** 
-   * Translates characters to character classes
-   */
-  final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
-
-  /** 
-   * Translates a state to a row index in the transition table
-   */
-  final private static int yy_rowMap [] = { 
-        0,    59,   118,   177,   236,   295,   354,   413,   472,   531, 
-      590,   649,   708,   767,   826,   885,   944,  1003,  1062,  1121, 
-     1180,  1239,  1298,  1357,  1416,  1475,  1534,  1121,  1593,  1121, 
-     1652,  1711,  1121,  1770,  1829,  1888,  1121,  1947,  2006,  2065, 
-     2124,  2183,  2242,  1121,  2301,  2360,  2419,  1121,  1121,  2478, 
-     2537,  2596,  1121,  2655,  2714,  1121,  1121,  2773,  2832,  2891, 
-     1121,  2950,  1121,  3009,  3068,  3127,  3186,  3245,  3304,  3363, 
-     3422,  1121,  1121,  3481,  3540,  3599,  3658,  3717,  1121,  3776, 
-     3835,  3894,  3953,  4012,  4071,  1593,  1121,  4130,  1239,  4189, 
-     4248,  1416,  4307,  1475,  4366,  4425,  4484,  4543,  4602,  4661, 
-     4720,  4779,  4838,  4897,  1770,  4956,  1121,  1829,  5015,  5074, 
-     1947,  5133,  1121,  2006,  5192,  5251,  2183,  5310,  5369,  2360, 
-     5428,  5487,  2537,  5546,  5605,  1121,  2714,  2832,  5664,  5723, 
-     3068,  5782,  3127,  5841,  1121,  3186,  5900,  5959,  3363,  6018, 
-     6077,  6136,  6195,  3894,  1121,  3599,  1121,  6254,  3658,  6313, 
-     1121,  3717,  6372,  6431,  6490,  6549,  3953,  6608,  6667,  6726, 
-     4071,  6785,  1121,  4130,  6844,  1121,  6903,  6962,  7021,  7080, 
-     7139,  7198,  7257,  7316,  7375,  7434,  7493,  7552,  1770,  7611, 
-     7670,  1829,  7729,  7788,  1947,  7847,  7906,  2006,  7965,  8024, 
-     8083,  8142,  8201,  8260,  8319,  8378,  3127,  8437,  8496,  3186, 
-     8555,  8614,  8673,  8732,  8791,  3658,  8850,  8909,  3717,  8968, 
-     9027,  9086,  9145,  9204,  9263,  9322,  9381,  1121,  1121,  9440, 
-     9499,  9558,  9617,  9676,  9735,  9794,  9853,  9912,  9971, 10030, 
-    10089, 10148, 10207, 10266, 10325, 10384, 10443, 10502, 10561, 10620, 
-    10679, 10738, 10797, 10856, 10915, 10974, 11033, 11092, 11151, 11210, 
-    11269, 11328, 11387, 11446, 11505,  1121, 11564, 11623,  1121, 11682, 
-    11741, 11800, 11859, 11918, 11977, 12036, 12095, 12154, 12213,  1121, 
-    12272, 12331, 12390, 12449, 12508, 12567, 12626, 12685, 12744, 12803, 
-    12862, 12921, 12980, 13039, 13098, 13157, 13216, 11092, 13275, 13334, 
-     1121, 13393, 13452, 13511, 13570, 13629, 13688,  1121, 13747, 13806, 
-    13865, 13924, 13983, 14042, 14101, 14160, 14219, 12036, 14278, 14337, 
-    14396, 14455, 14514, 14573, 14632, 14691, 14750, 14809, 14868, 14927, 
-    14986, 15045, 15104, 15163, 15222, 15281, 15340, 13157, 15399, 15458, 
-    15517, 15576, 15635, 15694, 15753,  1121, 15812, 15871, 15930, 15989, 
-    16048, 16107, 16166, 16225, 16284, 16343, 16402, 16461, 16520, 16579, 
-    16638, 16697, 16756, 16815, 16874, 16933, 16992, 17051, 17110, 17169, 
-    17228, 17287, 17346, 17405, 17464, 17523, 17582, 17641, 17700, 17759, 
-    17818, 17877, 17936, 17995, 18054,  1121, 18113, 18172, 18231, 18290, 
-    18349, 18408, 18467, 18526, 18585, 12154, 18644, 12213, 18703, 18762, 
-    18821, 18880, 18939, 18998, 19057, 19116, 19175, 19234, 13275, 19293, 
-    13334, 19352, 19411, 19470, 19529, 19588, 19647, 19706, 19765, 19824, 
-    19883, 19942,  1121, 20001, 20060, 20119, 20178,  1121, 20237, 20296, 
-    20355,  1121, 20414, 20473, 20532, 20591, 20650, 20709, 20768, 20827, 
-    20886, 20945
-  };
-
-  /** 
-   * The packed transition table of the DFA
-   */
-  final private static String yy_packed = 
-    "\2\24\1\25\1\26\1\27\1\24\1\27\1\25\1\24"+
-    "\1\27\1\24\1\30\1\24\1\31\1\24\2\27\1\24"+
-    "\1\32\3\25\1\24\1\25\1\33\2\24\1\34\1\35"+
-    "\1\36\1\37\11\25\1\24\4\25\1\24\2\25\1\24"+
-    "\1\25\1\40\3\25\1\41\10\24\1\27\1\42\1\27"+
-    "\1\24\1\43\1\27\1\24\1\44\3\24\2\27\7\24"+
-    "\1\33\2\24\1\34\1\35\1\24\1\37\40\24\1\27"+
-    "\1\24\1\27\2\24\1\27\1\24\1\44\3\24\2\27"+
-    "\7\24\1\33\2\24\1\34\1\35\1\24\1\37\11\24"+
-    "\1\45\26\24\1\27\1\46\1\27\1\24\1\47\1\27"+
-    "\1\24\1\44\3\24\2\27\2\24\1\50\4\24\1\33"+
-    "\2\24\1\34\1\35\1\24\1\37\11\24\1\45\24\24"+
-    "\1\51\1\52\1\27\1\24\1\27\1\51\1\24\1\27"+
-    "\1\24\1\53\3\24\2\27\2\24\3\51\1\24\1\51"+
-    "\1\33\2\24\1\34\1\35\1\24\1\37\11\51\1\45"+
-    "\4\51\1\24\2\51\1\24\1\51\1\24\3\51\11\24"+
-    "\1\27\1\24\1\27\2\24\1\27\1\24\1\44\3\24"+
-    "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37"+
-    "\11\24\1\45\4\24\1\54\17\24\1\55\1\56\1\27"+
-    "\1\24\1\27\1\55\1\24\1\27\1\24\1\57\3\24"+
-    "\2\27\2\24\3\55\1\24\1\55\1\33\2\24\1\34"+
-    "\1\35\1\24\1\37\11\55\1\24\4\55\1\24\2\55"+
-    "\1\24\1\55\1\24\3\55\11\24\1\27\1\24\1\27"+
-    "\2\24\1\27\1\24\1\44\3\24\2\27\7\24\1\33"+
-    "\2\24\1\34\1\35\1\24\1\37\16\24\1\60\2\24"+
-    "\1\61\14\24\1\62\1\63\1\27\1\24\1\27\1\62"+
-    "\1\24\1\27\1\24\1\64\3\24\2\27\2\24\3\62"+
-    "\1\24\1\62\1\33\2\24\1\34\1\35\1\24\1\37"+
-    "\11\62\1\24\4\62\1\24\2\62\1\65\1\62\1\66"+
-    "\3\62\11\24\1\27\1\24\1\27\2\24\1\27\1\24"+
-    "\1\44\3\24\2\27\7\24\1\33\2\24\1\34\1\35"+
-    "\1\24\1\37\21\24\1\65\16\24\1\67\1\24\1\67"+
-    "\2\24\1\67\1\24\1\44\1\70\1\31\1\24\2\67"+
-    "\1\24\1\32\5\24\1\33\1\24\1\70\1\34\1\35"+
-    "\1\36\1\37\16\24\1\71\2\24\1\65\1\24\1\40"+
-    "\3\24\1\41\6\24\1\72\1\73\1\27\1\24\1\27"+
-    "\1\72\1\24\1\27\1\24\1\74\3\24\2\27\2\24"+
-    "\3\72\1\24\1\72\1\33\2\24\1\34\1\35\1\24"+
-    "\1\37\11\72\1\24\4\72\1\24\2\72\1\24\1\72"+
-    "\1\24\3\72\11\24\1\27\1\24\1\27\2\24\1\27"+
-    "\1\24\1\44\3\24\2\27\7\24\1\33\2\24\1\34"+
-    "\1\35\1\24\1\37\30\24\1\75\1\76\1\77\3\24"+
-    "\1\100\1\101\1\27\1\102\1\27\1\100\1\103\1\27"+
-    "\1\24\1\104\3\24\2\27\2\24\3\100\1\24\1\100"+
-    "\1\33\2\24\1\34\1\35\1\24\1\37\11\100\1\24"+
-    "\4\100\1\24\2\100\1\24\1\100\1\24\3\100\11\24"+
-    "\1\27\1\24\1\27\2\24\1\27\1\24\1\44\3\24"+
-    "\2\27\7\24\1\33\2\24\1\34\1\35\1\24\1\37"+
-    "\32\24\1\77\3\24\1\105\1\106\1\27\1\24\1\27"+
-    "\1\105\1\24\1\27\1\24\1\107\3\24\2\27\2\24"+
-    "\3\105\1\24\1\105\1\33\2\24\1\34\1\35\1\24"+
-    "\1\37\11\105\1\110\4\105\1\24\2\105\1\24\1\105"+
-    "\1\24\3\105\11\24\1\27\1\24\1\27\2\24\1\27"+
-    "\1\24\1\44\3\24\2\27\7\24\1\33\2\24\1\34"+
-    "\1\35\1\24\1\37\11\24\1\110\11\24\1\111\11\24"+
-    "\1\112\1\113\1\114\1\27\1\115\1\27\1\113\1\116"+
-    "\1\27\1\117\1\120\1\121\1\122\1\24\2\27\1\24"+
-    "\1\123\1\124\2\113\1\24\1\113\1\33\1\125\1\24"+
-    "\1\34\1\126\1\24\1\37\11\113\1\110\4\113\1\127"+
-    "\2\113\1\24\1\113\1\24\3\113\6\24\1\112\1\113"+
-    "\1\114\1\130\1\115\1\130\1\113\1\116\1\130\1\117"+
-    "\1\120\1\121\1\122\1\24\2\130\1\24\1\123\1\124"+
-    "\2\113\1\24\1\113\1\33\1\125\1\24\1\34\1\126"+
-    "\1\24\1\37\11\113\1\110\4\113\1\127\2\113\1\24"+
-    "\1\113\1\24\3\113\5\24\74\0\2\25\1\131\3\0"+
-    "\1\25\3\0\1\25\7\0\3\25\1\0\1\25\7\0"+
-    "\11\25\1\0\4\25\1\0\2\25\1\0\1\25\1\0"+
-    "\3\25\6\0\1\132\2\25\1\0\2\25\1\132\1\25"+
-    "\1\0\5\25\2\0\16\25\1\132\2\25\1\132\2\25"+
-    "\1\132\10\25\1\132\4\25\1\132\7\25\4\0\1\27"+
-    "\1\0\1\27\2\0\1\27\5\0\2\27\53\0\2\25"+
-    "\1\131\3\0\1\25\3\0\1\133\7\0\3\25\1\0"+
-    "\1\25\7\0\11\25\1\0\4\25\1\0\2\25\1\0"+
-    "\1\25\1\0\3\25\6\0\2\134\1\135\3\0\1\134"+
-    "\3\0\1\134\7\0\3\134\1\0\1\134\7\0\11\134"+
-    "\1\0\4\134\1\0\2\134\1\0\1\134\1\0\3\134"+
-    "\6\0\2\136\1\137\3\0\1\136\3\0\1\136\7\0"+
-    "\3\136\1\0\1\136\7\0\11\136\1\0\4\136\1\0"+
-    "\2\136\1\0\1\136\1\0\3\136\36\0\1\140\76\0"+
-    "\1\141\74\0\2\142\10\0\1\143\1\144\1\145\7\0"+
-    "\2\146\10\0\1\147\1\150\3\0\1\147\3\0\1\147"+
-    "\7\0\3\147\1\0\1\147\7\0\11\147\1\0\4\147"+
-    "\1\0\2\147\1\0\1\147\1\0\3\147\6\0\2\151"+
-    "\1\152\1\0\1\153\11\151\2\0\52\151\1\0\2\154"+
-    "\1\155\1\0\3\154\1\153\6\154\2\0\52\154\13\0"+
-    "\1\156\60\0\2\157\1\160\1\0\1\161\11\157\2\0"+
-    "\52\157\1\0\2\162\1\163\1\0\3\162\1\161\6\162"+
-    "\2\0\52\162\24\0\1\164\47\0\2\51\1\165\3\0"+
-    "\1\51\3\0\1\51\7\0\3\51\1\0\1\51\7\0"+
-    "\11\51\1\0\4\51\1\0\2\51\1\0\1\51\1\0"+
-    "\3\51\6\0\1\166\2\51\1\0\2\51\1\166\1\51"+
-    "\1\0\5\51\2\0\16\51\1\166\2\51\1\166\2\51"+
-    "\1\166\10\51\1\166\4\51\1\166\7\51\1\0\2\51"+
-    "\1\165\3\0\1\51\3\0\1\167\7\0\3\51\1\0"+
-    "\1\51\7\0\11\51\1\0\4\51\1\0\2\51\1\0"+
-    "\1\51\1\0\3\51\6\0\2\55\1\170\3\0\1\55"+
-    "\3\0\1\55\7\0\3\55\1\0\1\55\7\0\11\55"+
-    "\1\0\4\55\1\0\2\55\1\0\1\55\1\0\3\55"+
-    "\6\0\1\171\2\55\1\0\2\55\1\171\1\55\1\0"+
-    "\5\55\2\0\16\55\1\171\2\55\1\171\2\55\1\171"+
-    "\10\55\1\171\4\55\1\171\7\55\1\0\2\55\1\170"+
-    "\3\0\1\55\3\0\1\172\7\0\3\55\1\0\1\55"+
-    "\7\0\11\55\1\0\4\55\1\0\2\55\1\0\1\55"+
-    "\1\0\3\55\6\0\2\62\1\173\3\0\1\62\3\0"+
-    "\1\62\7\0\3\62\1\0\1\62\7\0\11\62\1\0"+
-    "\4\62\1\0\2\62\1\0\1\62\1\0\3\62\6\0"+
-    "\1\174\2\62\1\0\2\62\1\174\1\62\1\0\5\62"+
-    "\2\0\16\62\1\174\2\62\1\174\2\62\1\174\10\62"+
-    "\1\174\4\62\1\174\7\62\1\0\2\62\1\173\3\0"+
-    "\1\62\3\0\1\175\7\0\3\62\1\0\1\62\7\0"+
-    "\11\62\1\0\4\62\1\0\2\62\1\0\1\62\1\0"+
-    "\3\62\7\0\1\62\1\173\3\0\1\62\3\0\1\62"+
-    "\7\0\3\62\1\0\1\62\7\0\11\62\1\0\4\62"+
-    "\1\0\2\62\1\0\1\62\1\0\3\62\5\0\4\176"+
-    "\1\177\1\176\1\177\2\176\1\177\2\176\1\0\2\176"+
-    "\2\177\11\176\1\0\25\176\1\0\12\176\1\0\2\72"+
-    "\1\200\3\0\1\72\3\0\1\72\7\0\3\72\1\0"+
-    "\1\72\7\0\11\72\1\0\4\72\1\0\2\72\1\0"+
-    "\1\72\1\0\3\72\6\0\1\201\2\72\1\0\2\72"+
-    "\1\201\1\72\1\0\5\72\2\0\16\72\1\201\2\72"+
-    "\1\201\2\72\1\201\10\72\1\201\4\72\1\201\7\72"+
-    "\1\0\2\72\1\200\3\0\1\72\3\0\1\202\7\0"+
-    "\3\72\1\0\1\72\7\0\11\72\1\0\4\72\1\0"+
-    "\2\72\1\0\1\72\1\0\3\72\74\0\1\75\4\0"+
-    "\2\100\1\203\3\0\1\100\3\0\1\100\7\0\3\100"+
-    "\1\0\1\100\7\0\11\100\1\0\4\100\1\0\2\100"+
-    "\1\0\1\100\1\0\3\100\6\0\1\204\2\100\1\0"+
-    "\2\100\1\204\1\100\1\0\5\100\2\0\16\100\1\204"+
-    "\2\100\1\204\2\100\1\204\10\100\1\204\4\100\1\204"+
-    "\7\100\1\0\2\205\1\206\1\0\1\207\11\205\2\0"+
-    "\52\205\1\0\2\210\1\211\1\0\3\210\1\207\6\210"+
-    "\2\0\52\210\1\0\2\100\1\203\3\0\1\100\3\0"+
-    "\1\212\7\0\3\100\1\0\1\100\7\0\11\100\1\0"+
-    "\4\100\1\0\2\100\1\0\1\100\1\0\3\100\6\0"+
-    "\2\105\1\213\3\0\1\105\3\0\1\105\7\0\3\105"+
-    "\1\0\1\105\7\0\11\105\1\0\4\105\1\0\2\105"+
-    "\1\0\1\105\1\0\3\105\6\0\1\214\2\105\1\0"+
-    "\2\105\1\214\1\105\1\0\5\105\2\0\16\105\1\214"+
-    "\2\105\1\214\2\105\1\214\10\105\1\214\4\105\1\214"+
-    "\7\105\1\0\2\105\1\213\3\0\1\105\3\0\1\215"+
-    "\7\0\3\105\1\0\1\105\7\0\11\105\1\0\4\105"+
-    "\1\0\2\105\1\0\1\105\1\0\3\105\6\0\1\112"+
-    "\1\216\1\217\3\0\1\216\3\0\1\216\1\0\1\220"+
-    "\5\0\3\216\1\0\1\216\7\0\11\216\1\0\4\216"+
-    "\1\0\2\216\1\0\1\216\1\0\3\216\4\0\1\221"+
-    "\1\0\2\113\1\222\3\0\1\113\3\0\1\113\7\0"+
-    "\3\113\1\223\1\113\7\0\11\113\1\0\4\113\1\0"+
-    "\2\113\1\0\1\113\1\0\3\113\6\0\1\224\2\113"+
-    "\1\0\2\113\1\224\1\113\1\0\5\113\2\0\16\113"+
-    "\1\224\2\113\1\224\2\113\1\224\10\113\1\224\4\113"+
-    "\1\224\7\113\1\0\2\225\1\226\1\0\1\227\11\225"+
-    "\2\0\52\225\1\0\2\230\1\231\1\0\3\230\1\227"+
-    "\6\230\2\0\52\230\1\0\1\232\1\113\1\222\3\0"+
-    "\1\113\3\0\1\233\1\0\1\220\5\0\3\113\1\223"+
-    "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+
-    "\1\113\1\0\3\113\6\0\1\112\13\0\1\220\56\0"+
-    "\1\234\72\0\2\235\1\236\3\0\1\235\3\0\1\235"+
-    "\7\0\3\235\1\0\1\235\7\0\11\235\1\0\4\235"+
-    "\1\0\2\235\1\0\1\235\1\0\3\235\6\0\2\113"+
-    "\1\222\3\0\1\113\3\0\1\113\1\237\6\0\1\113"+
-    "\1\240\1\113\1\223\1\113\7\0\11\113\1\0\4\113"+
-    "\1\0\2\113\1\0\1\113\1\0\3\113\11\0\1\241"+
-    "\1\0\1\241\2\0\1\241\5\0\2\241\30\0\1\242"+
-    "\21\0\4\243\1\244\1\243\1\244\2\243\1\244\5\243"+
-    "\2\244\12\243\1\0\14\243\1\0\22\243\1\0\1\245"+
-    "\1\25\1\131\1\25\1\0\1\25\1\245\1\0\1\25"+
-    "\1\0\1\25\3\0\2\25\2\0\3\25\1\0\1\25"+
-    "\7\0\1\245\2\25\1\245\2\25\1\245\2\25\1\0"+
-    "\4\25\1\0\1\245\1\25\1\0\1\25\1\0\1\245"+
-    "\2\25\6\0\2\25\1\131\3\0\1\25\3\0\1\25"+
-    "\7\0\3\25\1\0\1\25\2\0\1\246\4\0\11\25"+
-    "\1\0\4\25\1\0\2\25\1\0\1\25\1\0\3\25"+
-    "\6\0\1\247\2\134\1\0\2\134\1\247\1\134\1\0"+
-    "\5\134\2\0\16\134\1\247\2\134\1\247\2\134\1\247"+
-    "\10\134\1\247\4\134\1\247\7\134\1\0\1\250\2\136"+
-    "\1\0\2\136\1\250\1\136\1\0\5\136\2\0\16\136"+
-    "\1\250\2\136\1\250\2\136\1\250\10\136\1\250\4\136"+
-    "\1\250\7\136\13\0\1\251\57\0\35\141\1\252\35\141"+
-    "\41\0\1\253\103\0\1\254\65\0\2\255\66\0\2\256"+
-    "\103\0\1\257\17\0\2\147\1\150\3\0\1\147\3\0"+
-    "\1\147\7\0\3\147\1\260\1\147\7\0\11\147\1\0"+
-    "\4\147\1\0\2\147\1\0\1\147\1\0\3\147\6\0"+
-    "\1\261\2\147\1\0\2\147\1\261\1\147\1\0\5\147"+
-    "\2\0\16\147\1\261\2\147\1\261\2\147\1\261\10\147"+
-    "\1\261\4\147\1\261\7\147\1\0\1\262\1\151\1\152"+
-    "\1\151\1\263\1\151\1\262\10\151\1\264\16\151\1\262"+
-    "\2\151\1\262\2\151\1\262\10\151\1\262\4\151\1\262"+
-    "\7\151\1\0\1\265\1\154\1\155\3\154\1\265\1\266"+
-    "\7\154\1\267\16\154\1\265\2\154\1\265\2\154\1\265"+
-    "\10\154\1\265\4\154\1\265\7\154\32\0\1\246\41\0"+
-    "\1\270\1\157\1\160\1\157\1\271\1\157\1\270\10\157"+
-    "\1\272\16\157\1\270\2\157\1\270\2\157\1\270\10\157"+
-    "\1\270\4\157\1\270\7\157\1\0\1\273\1\162\1\163"+
-    "\3\162\1\273\1\274\7\162\1\275\16\162\1\273\2\162"+
-    "\1\273\2\162\1\273\10\162\1\273\4\162\1\273\7\162"+
-    "\25\0\1\276\46\0\1\277\1\51\1\165\1\51\1\0"+
-    "\1\51\1\277\1\0\1\51\1\0\1\51\3\0\2\51"+
-    "\2\0\3\51\1\0\1\51\7\0\1\277\2\51\1\277"+
-    "\2\51\1\277\2\51\1\0\4\51\1\0\1\277\1\51"+
-    "\1\0\1\51\1\0\1\277\2\51\6\0\2\51\1\165"+
-    "\3\0\1\51\3\0\1\51\7\0\3\51\1\0\1\51"+
-    "\2\0\1\246\4\0\11\51\1\0\4\51\1\0\2\51"+
-    "\1\0\1\51\1\0\3\51\6\0\1\300\1\55\1\170"+
-    "\1\55\1\0\1\55\1\300\1\0\1\55\1\0\1\55"+
-    "\3\0\2\55\2\0\3\55\1\0\1\55\7\0\1\300"+
-    "\2\55\1\300\2\55\1\300\2\55\1\0\4\55\1\0"+
-    "\1\300\1\55\1\0\1\55\1\0\1\300\2\55\6\0"+
-    "\2\55\1\170\3\0\1\55\3\0\1\55\7\0\3\55"+
-    "\1\0\1\55\2\0\1\246\4\0\11\55\1\0\4\55"+
-    "\1\0\2\55\1\0\1\55\1\0\3\55\6\0\1\301"+
-    "\1\62\1\173\1\62\1\0\1\62\1\301\1\0\1\62"+
-    "\1\0\1\62\3\0\2\62\2\0\3\62\1\0\1\62"+
-    "\7\0\1\301\2\62\1\301\2\62\1\301\2\62\1\0"+
-    "\4\62\1\0\1\301\1\62\1\0\1\62\1\0\1\301"+
-    "\2\62\6\0\2\62\1\173\3\0\1\62\3\0\1\62"+
-    "\7\0\3\62\1\0\1\62\2\0\1\246\4\0\11\62"+
-    "\1\0\4\62\1\0\2\62\1\0\1\62\1\0\3\62"+
-    "\6\0\1\302\1\72\1\200\1\72\1\0\1\72\1\302"+
-    "\1\0\1\72\1\0\1\72\3\0\2\72\2\0\3\72"+
-    "\1\0\1\72\7\0\1\302\2\72\1\302\2\72\1\302"+
-    "\2\72\1\0\4\72\1\0\1\302\1\72\1\0\1\72"+
-    "\1\0\1\302\2\72\6\0\2\72\1\200\3\0\1\72"+
-    "\3\0\1\72\7\0\3\72\1\0\1\72\2\0\1\246"+
-    "\4\0\11\72\1\0\4\72\1\0\2\72\1\0\1\72"+
-    "\1\0\3\72\6\0\1\303\1\100\1\203\1\100\1\0"+
-    "\1\100\1\303\1\0\1\100\1\0\1\100\3\0\2\100"+
-    "\2\0\3\100\1\0\1\100\7\0\1\303\2\100\1\303"+
-    "\2\100\1\303\2\100\1\0\4\100\1\0\1\303\1\100"+
-    "\1\0\1\100\1\0\1\303\2\100\6\0\1\304\1\205"+
-    "\1\206\1\205\1\305\1\205\1\304\10\205\1\306\16\205"+
-    "\1\304\2\205\1\304\2\205\1\304\10\205\1\304\4\205"+
-    "\1\304\7\205\1\0\1\307\1\210\1\211\3\210\1\307"+
-    "\1\310\7\210\1\311\16\210\1\307\2\210\1\307\2\210"+
-    "\1\307\10\210\1\307\4\210\1\307\7\210\1\0\2\100"+
-    "\1\203\3\0\1\100\3\0\1\100\7\0\3\100\1\0"+
-    "\1\100\2\0\1\246\4\0\11\100\1\0\4\100\1\0"+
-    "\2\100\1\0\1\100\1\0\3\100\6\0\1\312\1\105"+
-    "\1\213\1\105\1\0\1\105\1\312\1\0\1\105\1\0"+
-    "\1\105\3\0\2\105\2\0\3\105\1\0\1\105\7\0"+
-    "\1\312\2\105\1\312\2\105\1\312\2\105\1\0\4\105"+
-    "\1\0\1\312\1\105\1\0\1\105\1\0\1\312\2\105"+
-    "\6\0\2\105\1\213\3\0\1\105\3\0\1\105\7\0"+
-    "\3\105\1\0\1\105\2\0\1\246\4\0\11\105\1\0"+
-    "\4\105\1\0\2\105\1\0\1\105\1\0\3\105\6\0"+
-    "\2\216\1\217\3\0\1\216\3\0\1\216\7\0\3\216"+
-    "\1\0\1\216\7\0\11\216\1\0\4\216\1\0\2\216"+
-    "\1\0\1\216\1\0\3\216\6\0\1\313\2\216\1\0"+
-    "\2\216\1\313\1\216\1\0\5\216\2\0\16\216\1\313"+
-    "\2\216\1\313\2\216\1\313\10\216\1\313\4\216\1\313"+
-    "\7\216\1\0\1\314\1\113\1\222\1\113\1\0\1\113"+
-    "\1\314\1\0\1\113\1\0\1\113\3\0\2\113\2\0"+
-    "\3\113\1\223\1\113\7\0\1\314\2\113\1\314\2\113"+
-    "\1\314\2\113\1\0\4\113\1\0\1\314\1\113\1\0"+
-    "\1\113\1\0\1\314\2\113\6\0\1\315\1\225\1\226"+
-    "\1\225\1\316\1\225\1\315\10\225\1\317\16\225\1\315"+
-    "\2\225\1\315\2\225\1\315\10\225\1\315\4\225\1\315"+
-    "\7\225\1\0\1\320\1\230\1\231\3\230\1\320\1\321"+
-    "\7\230\1\322\16\230\1\320\2\230\1\320\2\230\1\320"+
-    "\10\230\1\320\4\230\1\320\7\230\1\0\1\232\1\113"+
-    "\1\222\3\0\1\113\3\0\1\113\1\0\1\220\5\0"+
-    "\3\113\1\223\1\113\7\0\11\113\1\0\4\113\1\0"+
-    "\2\113\1\0\1\113\1\0\3\113\4\0\1\221\1\0"+
-    "\2\113\1\222\3\0\1\113\3\0\1\113\7\0\3\113"+
-    "\1\223\1\113\2\0\1\246\4\0\11\113\1\0\4\113"+
-    "\1\0\2\113\1\0\1\113\1\0\3\113\6\0\1\234"+
-    "\1\216\1\217\3\0\1\216\3\0\1\216\7\0\3\216"+
-    "\1\0\1\216\7\0\11\216\1\0\4\216\1\0\2\216"+
-    "\1\0\1\216\1\0\3\216\4\0\1\221\1\0\1\323"+
-    "\2\235\1\0\2\235\1\323\1\235\1\0\5\235\2\0"+
-    "\16\235\1\323\2\235\1\323\2\235\1\323\10\235\1\323"+
-    "\4\235\1\323\7\235\1\0\1\324\5\0\1\324\11\0"+
-    "\1\324\5\0\1\324\7\0\2\324\1\0\2\324\1\0"+
-    "\2\324\7\0\2\324\3\0\2\324\7\0\2\113\1\222"+
-    "\3\0\1\113\3\0\1\113\7\0\2\113\1\325\1\223"+
-    "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+
-    "\1\113\1\0\3\113\57\0\1\326\21\0\1\327\1\25"+
-    "\1\131\1\25\1\0\1\25\1\327\1\0\1\25\1\0"+
-    "\1\25\3\0\2\25\2\0\3\25\1\0\1\25\7\0"+
-    "\1\327\2\25\1\327\2\25\1\327\2\25\1\0\4\25"+
-    "\1\0\1\327\1\25\1\0\1\25\1\0\1\327\2\25"+
-    "\6\0\1\330\1\134\1\135\1\134\1\0\1\134\1\330"+
-    "\1\0\1\134\1\0\1\134\3\0\2\134\2\0\3\134"+
-    "\1\0\1\134\7\0\1\330\2\134\1\330\2\134\1\330"+
-    "\2\134\1\0\4\134\1\0\1\330\1\134\1\0\1\134"+
-    "\1\0\1\330\2\134\6\0\1\331\1\136\1\137\1\136"+
-    "\1\0\1\136\1\331\1\0\1\136\1\0\1\136\3\0"+
-    "\2\136\2\0\3\136\1\0\1\136\7\0\1\331\2\136"+
-    "\1\331\2\136\1\331\2\136\1\0\4\136\1\0\1\331"+
-    "\1\136\1\0\1\136\1\0\1\331\2\136\20\0\1\332"+
-    "\57\0\34\141\1\333\1\252\35\141\42\0\2\334\102\0"+
-    "\1\335\75\0\2\336\74\0\1\337\76\0\1\340\7\0"+
-    "\1\341\1\342\1\260\1\0\1\260\1\341\1\0\1\260"+
-    "\1\0\1\341\3\0\2\260\2\0\3\341\1\0\1\341"+
-    "\7\0\11\341\1\0\4\341\1\0\2\341\1\0\1\341"+
-    "\1\0\3\341\6\0\1\343\1\147\1\150\1\147\1\0"+
-    "\1\147\1\343\1\0\1\147\1\0\1\147\3\0\2\147"+
-    "\2\0\3\147\1\260\1\147\7\0\1\343\2\147\1\343"+
-    "\2\147\1\343\2\147\1\0\4\147\1\0\1\343\1\147"+
-    "\1\0\1\147\1\0\1\343\2\147\6\0\1\344\1\151"+
-    "\1\152\1\151\1\153\1\151\1\344\27\151\1\344\2\151"+
-    "\1\344\2\151\1\344\10\151\1\344\4\151\1\344\7\151"+
-    "\1\0\2\151\1\152\1\0\1\153\12\151\1\0\52\151"+
-    "\1\0\1\345\1\154\1\155\3\154\1\345\1\153\26\154"+
-    "\1\345\2\154\1\345\2\154\1\345\10\154\1\345\4\154"+
-    "\1\345\7\154\1\0\2\154\1\155\1\0\3\154\1\153"+
-    "\7\154\1\0\52\154\1\0\1\346\1\157\1\160\1\157"+
-    "\1\161\1\157\1\346\27\157\1\346\2\157\1\346\2\157"+
-    "\1\346\10\157\1\346\4\157\1\346\7\157\1\0\2\157"+
-    "\1\160\1\0\1\161\12\157\1\0\52\157\1\0\1\347"+
-    "\1\162\1\163\3\162\1\347\1\161\26\162\1\347\2\162"+
-    "\1\347\2\162\1\347\10\162\1\347\4\162\1\347\7\162"+
-    "\1\0\2\162\1\163\1\0\3\162\1\161\7\162\1\0"+
-    "\52\162\26\0\1\350\45\0\1\351\1\51\1\165\1\51"+
-    "\1\0\1\51\1\351\1\0\1\51\1\0\1\51\3\0"+
-    "\2\51\2\0\3\51\1\0\1\51\7\0\1\351\2\51"+
-    "\1\351\2\51\1\351\2\51\1\0\4\51\1\0\1\351"+
-    "\1\51\1\0\1\51\1\0\1\351\2\51\6\0\1\352"+
-    "\1\55\1\170\1\55\1\0\1\55\1\352\1\0\1\55"+
-    "\1\0\1\55\3\0\2\55\2\0\3\55\1\0\1\55"+
-    "\7\0\1\352\2\55\1\352\2\55\1\352\2\55\1\0"+
-    "\4\55\1\0\1\352\1\55\1\0\1\55\1\0\1\352"+
-    "\2\55\6\0\1\353\1\62\1\173\1\62\1\0\1\62"+
-    "\1\353\1\0\1\62\1\0\1\62\3\0\2\62\2\0"+
-    "\3\62\1\0\1\62\7\0\1\353\2\62\1\353\2\62"+
-    "\1\353\2\62\1\0\4\62\1\0\1\353\1\62\1\0"+
-    "\1\62\1\0\1\353\2\62\6\0\1\354\1\72\1\200"+
-    "\1\72\1\0\1\72\1\354\1\0\1\72\1\0\1\72"+
-    "\3\0\2\72\2\0\3\72\1\0\1\72\7\0\1\354"+
-    "\2\72\1\354\2\72\1\354\2\72\1\0\4\72\1\0"+
-    "\1\354\1\72\1\0\1\72\1\0\1\354\2\72\6\0"+
-    "\1\355\1\100\1\203\1\100\1\0\1\100\1\355\1\0"+
-    "\1\100\1\0\1\100\3\0\2\100\2\0\3\100\1\0"+
-    "\1\100\7\0\1\355\2\100\1\355\2\100\1\355\2\100"+
-    "\1\0\4\100\1\0\1\355\1\100\1\0\1\100\1\0"+
-    "\1\355\2\100\6\0\1\356\1\205\1\206\1\205\1\207"+
-    "\1\205\1\356\27\205\1\356\2\205\1\356\2\205\1\356"+
-    "\10\205\1\356\4\205\1\356\7\205\1\0\2\205\1\206"+
-    "\1\0\1\207\12\205\1\0\52\205\1\0\1\357\1\210"+
-    "\1\211\3\210\1\357\1\207\26\210\1\357\2\210\1\357"+
-    "\2\210\1\357\10\210\1\357\4\210\1\357\7\210\1\0"+
-    "\2\210\1\211\1\0\3\210\1\207\7\210\1\0\52\210"+
-    "\1\0\1\360\1\105\1\213\1\105\1\0\1\105\1\360"+
-    "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+
-    "\1\0\1\105\7\0\1\360\2\105\1\360\2\105\1\360"+
-    "\2\105\1\0\4\105\1\0\1\360\1\105\1\0\1\105"+
-    "\1\0\1\360\2\105\6\0\1\361\1\216\1\217\1\216"+
-    "\1\0\1\216\1\361\1\0\1\216\1\0\1\216\3\0"+
-    "\2\216\2\0\3\216\1\0\1\216\7\0\1\361\2\216"+
-    "\1\361\2\216\1\361\2\216\1\0\4\216\1\0\1\361"+
-    "\1\216\1\0\1\216\1\0\1\361\2\216\6\0\1\362"+
-    "\1\113\1\222\1\113\1\0\1\113\1\362\1\0\1\113"+
-    "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+
-    "\7\0\1\362\2\113\1\362\2\113\1\362\2\113\1\0"+
-    "\4\113\1\0\1\362\1\113\1\0\1\113\1\0\1\362"+
-    "\2\113\6\0\1\363\1\225\1\226\1\225\1\227\1\225"+
-    "\1\363\27\225\1\363\2\225\1\363\2\225\1\363\10\225"+
-    "\1\363\4\225\1\363\7\225\1\0\2\225\1\226\1\0"+
-    "\1\227\12\225\1\0\52\225\1\0\1\364\1\230\1\231"+
-    "\3\230\1\364\1\227\26\230\1\364\2\230\1\364\2\230"+
-    "\1\364\10\230\1\364\4\230\1\364\7\230\1\0\2\230"+
-    "\1\231\1\0\3\230\1\227\7\230\1\0\52\230\1\0"+
-    "\1\365\1\235\1\236\1\235\1\0\1\235\1\365\1\0"+
-    "\1\235\1\0\1\235\3\0\2\235\2\0\3\235\1\0"+
-    "\1\235\7\0\1\365\2\235\1\365\2\235\1\365\2\235"+
-    "\1\0\4\235\1\0\1\365\1\235\1\0\1\235\1\0"+
-    "\1\365\2\235\6\0\1\366\5\0\1\366\3\0\1\367"+
-    "\5\0\1\366\5\0\1\366\7\0\2\366\1\0\2\366"+
-    "\1\0\2\366\7\0\2\366\3\0\2\366\7\0\2\113"+
-    "\1\222\3\0\1\113\3\0\1\113\7\0\3\113\1\370"+
-    "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+
-    "\1\113\1\0\3\113\60\0\1\371\20\0\1\372\1\25"+
-    "\1\131\1\25\1\0\1\25\1\372\1\0\1\25\1\0"+
-    "\1\25\3\0\2\25\2\0\3\25\1\0\1\25\7\0"+
-    "\1\372\2\25\1\372\2\25\1\372\2\25\1\0\4\25"+
-    "\1\0\1\372\1\25\1\0\1\25\1\0\1\372\2\25"+
-    "\6\0\1\373\1\134\1\135\1\134\1\0\1\134\1\373"+
-    "\1\0\1\134\1\0\1\134\3\0\2\134\2\0\3\134"+
-    "\1\0\1\134\7\0\1\373\2\134\1\373\2\134\1\373"+
-    "\2\134\1\0\4\134\1\0\1\373\1\134\1\0\1\134"+
-    "\1\0\1\373\2\134\6\0\1\374\1\136\1\137\1\136"+
-    "\1\0\1\136\1\374\1\0\1\136\1\0\1\136\3\0"+
-    "\2\136\2\0\3\136\1\0\1\136\7\0\1\374\2\136"+
-    "\1\374\2\136\1\374\2\136\1\0\4\136\1\0\1\374"+
-    "\1\136\1\0\1\136\1\0\1\374\2\136\31\0\1\375"+
-    "\122\0\1\376\67\0\1\377\66\0\2\u0100\73\0\1\u0101"+
-    "\24\0\2\341\1\342\1\u0102\1\0\1\u0102\1\341\1\0"+
-    "\1\u0102\1\u0103\1\341\3\0\2\u0102\2\0\3\341\1\0"+
-    "\1\341\7\0\11\341\1\0\4\341\1\0\2\341\1\0"+
-    "\1\341\1\0\3\341\6\0\1\u0104\2\341\1\0\2\341"+
-    "\1\u0104\1\341\1\0\5\341\2\0\16\341\1\u0104\2\341"+
-    "\1\u0104\2\341\1\u0104\10\341\1\u0104\4\341\1\u0104\7\341"+
-    "\1\0\1\u0105\1\147\1\150\1\147\1\0\1\147\1\u0105"+
-    "\1\0\1\147\1\0\1\147\3\0\2\147\2\0\3\147"+
-    "\1\260\1\147\7\0\1\u0105\2\147\1\u0105\2\147\1\u0105"+
-    "\2\147\1\0\4\147\1\0\1\u0105\1\147\1\0\1\147"+
-    "\1\0\1\u0105\2\147\6\0\1\u0106\1\151\1\152\1\151"+
-    "\1\153\1\151\1\u0106\27\151\1\u0106\2\151\1\u0106\2\151"+
-    "\1\u0106\10\151\1\u0106\4\151\1\u0106\7\151\1\0\1\u0107"+
-    "\1\154\1\155\3\154\1\u0107\1\153\26\154\1\u0107\2\154"+
-    "\1\u0107\2\154\1\u0107\10\154\1\u0107\4\154\1\u0107\7\154"+
-    "\1\0\1\u0108\1\157\1\160\1\157\1\161\1\157\1\u0108"+
-    "\27\157\1\u0108\2\157\1\u0108\2\157\1\u0108\10\157\1\u0108"+
-    "\4\157\1\u0108\7\157\1\0\1\u0109\1\162\1\163\3\162"+
-    "\1\u0109\1\161\26\162\1\u0109\2\162\1\u0109\2\162\1\u0109"+
-    "\10\162\1\u0109\4\162\1\u0109\7\162\1\0\2\u010a\1\u010b"+
-    "\1\350\1\u010c\1\350\1\u010a\1\u010d\1\350\1\u010e\4\u010a"+
-    "\2\350\5\u010a\1\0\44\u010a\1\0\1\u010f\1\51\1\165"+
-    "\1\51\1\0\1\51\1\u010f\1\0\1\51\1\0\1\51"+
-    "\3\0\2\51\2\0\3\51\1\0\1\51\7\0\1\u010f"+
-    "\2\51\1\u010f\2\51\1\u010f\2\51\1\0\4\51\1\0"+
-    "\1\u010f\1\51\1\0\1\51\1\0\1\u010f\2\51\6\0"+
-    "\1\u0110\1\55\1\170\1\55\1\0\1\55\1\u0110\1\0"+
-    "\1\55\1\0\1\55\3\0\2\55\2\0\3\55\1\0"+
-    "\1\55\7\0\1\u0110\2\55\1\u0110\2\55\1\u0110\2\55"+
-    "\1\0\4\55\1\0\1\u0110\1\55\1\0\1\55\1\0"+
-    "\1\u0110\2\55\6\0\1\u0111\1\62\1\173\1\62\1\0"+
-    "\1\62\1\u0111\1\0\1\62\1\0\1\62\3\0\2\62"+
-    "\2\0\3\62\1\0\1\62\7\0\1\u0111\2\62\1\u0111"+
-    "\2\62\1\u0111\2\62\1\0\4\62\1\0\1\u0111\1\62"+
-    "\1\0\1\62\1\0\1\u0111\2\62\6\0\1\u0112\1\72"+
-    "\1\200\1\72\1\0\1\72\1\u0112\1\0\1\72\1\0"+
-    "\1\72\3\0\2\72\2\0\3\72\1\0\1\72\7\0"+
-    "\1\u0112\2\72\1\u0112\2\72\1\u0112\2\72\1\0\4\72"+
-    "\1\0\1\u0112\1\72\1\0\1\72\1\0\1\u0112\2\72"+
-    "\6\0\1\u0113\1\100\1\203\1\100\1\0\1\100\1\u0113"+
-    "\1\0\1\100\1\0\1\100\3\0\2\100\2\0\3\100"+
-    "\1\0\1\100\7\0\1\u0113\2\100\1\u0113\2\100\1\u0113"+
-    "\2\100\1\0\4\100\1\0\1\u0113\1\100\1\0\1\100"+
-    "\1\0\1\u0113\2\100\6\0\1\u0114\1\205\1\206\1\205"+
-    "\1\207\1\205\1\u0114\27\205\1\u0114\2\205\1\u0114\2\205"+
-    "\1\u0114\10\205\1\u0114\4\205\1\u0114\7\205\1\0\1\u0115"+
-    "\1\210\1\211\3\210\1\u0115\1\207\26\210\1\u0115\2\210"+
-    "\1\u0115\2\210\1\u0115\10\210\1\u0115\4\210\1\u0115\7\210"+
-    "\1\0\1\u0116\1\105\1\213\1\105\1\0\1\105\1\u0116"+
-    "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+
-    "\1\0\1\105\7\0\1\u0116\2\105\1\u0116\2\105\1\u0116"+
-    "\2\105\1\0\4\105\1\0\1\u0116\1\105\1\0\1\105"+
-    "\1\0\1\u0116\2\105\6\0\1\u0117\1\216\1\217\1\216"+
-    "\1\0\1\216\1\u0117\1\0\1\216\1\0\1\216\3\0"+
-    "\2\216\2\0\3\216\1\0\1\216\7\0\1\u0117\2\216"+
-    "\1\u0117\2\216\1\u0117\2\216\1\0\4\216\1\0\1\u0117"+
-    "\1\216\1\0\1\216\1\0\1\u0117\2\216\6\0\1\u0118"+
-    "\1\113\1\222\1\113\1\0\1\113\1\u0118\1\0\1\113"+
-    "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+
-    "\7\0\1\u0118\2\113\1\u0118\2\113\1\u0118\2\113\1\0"+
-    "\4\113\1\0\1\u0118\1\113\1\0\1\113\1\0\1\u0118"+
-    "\2\113\6\0\1\u0119\1\225\1\226\1\225\1\227\1\225"+
-    "\1\u0119\27\225\1\u0119\2\225\1\u0119\2\225\1\u0119\10\225"+
-    "\1\u0119\4\225\1\u0119\7\225\1\0\1\u011a\1\230\1\231"+
-    "\3\230\1\u011a\1\227\26\230\1\u011a\2\230\1\u011a\2\230"+
-    "\1\u011a\10\230\1\u011a\4\230\1\u011a\7\230\1\0\1\u011b"+
-    "\1\235\1\236\1\235\1\0\1\235\1\u011b\1\0\1\235"+
-    "\1\0\1\235\3\0\2\235\2\0\3\235\1\0\1\235"+
-    "\7\0\1\u011b\2\235\1\u011b\2\235\1\u011b\2\235\1\0"+
-    "\4\235\1\0\1\u011b\1\235\1\0\1\235\1\0\1\u011b"+
-    "\2\235\6\0\1\u011c\5\0\1\u011c\3\0\1\367\5\0"+
-    "\1\u011c\5\0\1\u011c\7\0\2\u011c\1\0\2\u011c\1\0"+
-    "\2\u011c\7\0\2\u011c\3\0\2\u011c\7\0\1\u011d\5\0"+
-    "\1\u011d\11\0\1\u011d\5\0\1\u011d\7\0\2\u011d\1\0"+
-    "\2\u011d\1\0\2\u011d\7\0\2\u011d\3\0\2\u011d\7\0"+
-    "\2\u011e\1\u011f\1\u0120\1\u0121\1\u0120\1\u011e\1\u0122\1\u0120"+
-    "\1\u0123\4\u011e\2\u0120\5\u011e\1\0\44\u011e\54\0\1\u0124"+
-    "\17\0\1\u0125\1\25\1\131\1\25\1\0\1\25\1\u0125"+
-    "\1\0\1\25\1\0\1\25\3\0\2\25\2\0\3\25"+
-    "\1\0\1\25\7\0\1\u0125\2\25\1\u0125\2\25\1\u0125"+
-    "\2\25\1\0\4\25\1\0\1\u0125\1\25\1\0\1\25"+
-    "\1\0\1\u0125\2\25\6\0\1\u0126\1\134\1\135\1\134"+
-    "\1\0\1\134\1\u0126\1\0\1\134\1\0\1\134\3\0"+
-    "\2\134\2\0\3\134\1\0\1\134\7\0\1\u0126\2\134"+
-    "\1\u0126\2\134\1\u0126\2\134\1\0\4\134\1\0\1\u0126"+
-    "\1\134\1\0\1\134\1\0\1\u0126\2\134\6\0\1\u0127"+
-    "\1\136\1\137\1\136\1\0\1\136\1\u0127\1\0\1\136"+
-    "\1\0\1\136\3\0\2\136\2\0\3\136\1\0\1\136"+
-    "\7\0\1\u0127\2\136\1\u0127\2\136\1\u0127\2\136\1\0"+
-    "\4\136\1\0\1\u0127\1\136\1\0\1\136\1\0\1\u0127"+
-    "\2\136\51\0\1\u0128\52\0\1\u0129\110\0\2\u012a\42\0"+
-    "\1\u012b\63\0\1\u0102\1\0\1\u0102\2\0\1\u0102\1\u0103"+
-    "\4\0\2\u0102\53\0\1\u012c\1\341\1\342\1\341\1\0"+
-    "\1\341\1\u012c\1\0\1\341\1\u0103\1\341\3\0\2\341"+
-    "\2\0\3\341\1\0\1\341\7\0\1\u012c\2\341\1\u012c"+
-    "\2\341\1\u012c\2\341\1\0\4\341\1\0\1\u012c\1\341"+
-    "\1\0\1\341\1\0\1\u012c\2\341\6\0\1\u012d\1\147"+
-    "\1\150\1\147\1\0\1\147\1\u012d\1\0\1\147\1\0"+
-    "\1\147\3\0\2\147\2\0\3\147\1\260\1\147\7\0"+
-    "\1\u012d\2\147\1\u012d\2\147\1\u012d\2\147\1\0\4\147"+
-    "\1\0\1\u012d\1\147\1\0\1\147\1\0\1\u012d\2\147"+
-    "\6\0\1\u012e\1\151\1\152\1\151\1\153\1\151\1\u012e"+
-    "\27\151\1\u012e\2\151\1\u012e\2\151\1\u012e\10\151\1\u012e"+
-    "\4\151\1\u012e\7\151\1\0\1\u012f\1\154\1\155\3\154"+
-    "\1\u012f\1\153\26\154\1\u012f\2\154\1\u012f\2\154\1\u012f"+
-    "\10\154\1\u012f\4\154\1\u012f\7\154\1\0\1\u0130\1\157"+
-    "\1\160\1\157\1\161\1\157\1\u0130\27\157\1\u0130\2\157"+
-    "\1\u0130\2\157\1\u0130\10\157\1\u0130\4\157\1\u0130\7\157"+
-    "\1\0\1\u0131\1\162\1\163\3\162\1\u0131\1\161\26\162"+
-    "\1\u0131\2\162\1\u0131\2\162\1\u0131\10\162\1\u0131\4\162"+
-    "\1\u0131\7\162\1\0\2\u010a\1\u010b\1\u0132\1\0\2\u010a"+
-    "\1\0\1\u0132\1\u010e\4\u010a\2\u0132\5\u010a\1\0\44\u010a"+
-    "\1\0\1\u0133\1\u010a\1\u010b\1\u0132\2\u010a\1\u0133\1\u010a"+
-    "\1\u0132\1\u0134\4\u010a\2\u0132\16\u010a\1\u0133\2\u010a\1\u0133"+
-    "\2\u010a\1\u0133\10\u010a\1\u0133\4\u010a\1\u0133\7\u010a\1\0"+
-    "\2\u010c\1\u0135\1\0\1\u0132\11\u010c\2\0\52\u010c\1\0"+
-    "\2\u010d\1\u0136\1\0\3\u010d\1\u0132\6\u010d\2\0\52\u010d"+
-    "\1\0\1\u0137\1\51\1\165\1\51\1\0\1\51\1\u0137"+
-    "\1\0\1\51\1\0\1\51\3\0\2\51\2\0\3\51"+
-    "\1\0\1\51\7\0\1\u0137\2\51\1\u0137\2\51\1\u0137"+
-    "\2\51\1\0\4\51\1\0\1\u0137\1\51\1\0\1\51"+
-    "\1\0\1\u0137\2\51\6\0\1\u0138\1\55\1\170\1\55"+
-    "\1\0\1\55\1\u0138\1\0\1\55\1\0\1\55\3\0"+
-    "\2\55\2\0\3\55\1\0\1\55\7\0\1\u0138\2\55"+
-    "\1\u0138\2\55\1\u0138\2\55\1\0\4\55\1\0\1\u0138"+
-    "\1\55\1\0\1\55\1\0\1\u0138\2\55\6\0\1\u0139"+
-    "\1\62\1\173\1\62\1\0\1\62\1\u0139\1\0\1\62"+
-    "\1\0\1\62\3\0\2\62\2\0\3\62\1\0\1\62"+
-    "\7\0\1\u0139\2\62\1\u0139\2\62\1\u0139\2\62\1\0"+
-    "\4\62\1\0\1\u0139\1\62\1\0\1\62\1\0\1\u0139"+
-    "\2\62\6\0\1\u013a\1\72\1\200\1\72\1\0\1\72"+
-    "\1\u013a\1\0\1\72\1\0\1\72\3\0\2\72\2\0"+
-    "\3\72\1\0\1\72\7\0\1\u013a\2\72\1\u013a\2\72"+
-    "\1\u013a\2\72\1\0\4\72\1\0\1\u013a\1\72\1\0"+
-    "\1\72\1\0\1\u013a\2\72\6\0\1\u013b\1\100\1\203"+
-    "\1\100\1\0\1\100\1\u013b\1\0\1\100\1\0\1\100"+
-    "\3\0\2\100\2\0\3\100\1\0\1\100\7\0\1\u013b"+
-    "\2\100\1\u013b\2\100\1\u013b\2\100\1\0\4\100\1\0"+
-    "\1\u013b\1\100\1\0\1\100\1\0\1\u013b\2\100\6\0"+
-    "\1\u013c\1\205\1\206\1\205\1\207\1\205\1\u013c\27\205"+
-    "\1\u013c\2\205\1\u013c\2\205\1\u013c\10\205\1\u013c\4\205"+
-    "\1\u013c\7\205\1\0\1\u013d\1\210\1\211\3\210\1\u013d"+
-    "\1\207\26\210\1\u013d\2\210\1\u013d\2\210\1\u013d\10\210"+
-    "\1\u013d\4\210\1\u013d\7\210\1\0\1\u013e\1\105\1\213"+
-    "\1\105\1\0\1\105\1\u013e\1\0\1\105\1\0\1\105"+
-    "\3\0\2\105\2\0\3\105\1\0\1\105\7\0\1\u013e"+
-    "\2\105\1\u013e\2\105\1\u013e\2\105\1\0\4\105\1\0"+
-    "\1\u013e\1\105\1\0\1\105\1\0\1\u013e\2\105\6\0"+
-    "\1\u013f\1\216\1\217\1\216\1\0\1\216\1\u013f\1\0"+
-    "\1\216\1\0\1\216\3\0\2\216\2\0\3\216\1\0"+
-    "\1\216\7\0\1\u013f\2\216\1\u013f\2\216\1\u013f\2\216"+
-    "\1\0\4\216\1\0\1\u013f\1\216\1\0\1\216\1\0"+
-    "\1\u013f\2\216\6\0\1\u0140\1\113\1\222\1\113\1\0"+
-    "\1\113\1\u0140\1\0\1\113\1\0\1\113\3\0\2\113"+
-    "\2\0\3\113\1\223\1\113\7\0\1\u0140\2\113\1\u0140"+
-    "\2\113\1\u0140\2\113\1\0\4\113\1\0\1\u0140\1\113"+
-    "\1\0\1\113\1\0\1\u0140\2\113\6\0\1\u0141\1\225"+
-    "\1\226\1\225\1\227\1\225\1\u0141\27\225\1\u0141\2\225"+
-    "\1\u0141\2\225\1\u0141\10\225\1\u0141\4\225\1\u0141\7\225"+
-    "\1\0\1\u0142\1\230\1\231\3\230\1\u0142\1\227\26\230"+
-    "\1\u0142\2\230\1\u0142\2\230\1\u0142\10\230\1\u0142\4\230"+
-    "\1\u0142\7\230\1\0\1\u0143\1\235\1\236\1\235\1\0"+
-    "\1\235\1\u0143\1\0\1\235\1\0\1\235\3\0\2\235"+
-    "\2\0\3\235\1\0\1\235\7\0\1\u0143\2\235\1\u0143"+
-    "\2\235\1\u0143\2\235\1\0\4\235\1\0\1\u0143\1\235"+
-    "\1\0\1\235\1\0\1\u0143\2\235\6\0\1\u0144\5\0"+
-    "\1\u0144\3\0\1\367\5\0\1\u0144\5\0\1\u0144\7\0"+
-    "\2\u0144\1\0\2\u0144\1\0\2\u0144\7\0\2\u0144\3\0"+
-    "\2\u0144\7\0\1\u0145\5\0\1\u0145\11\0\1\u0145\5\0"+
-    "\1\u0145\7\0\2\u0145\1\0\2\u0145\1\0\2\u0145\7\0"+
-    "\2\u0145\3\0\2\u0145\7\0\2\u011e\1\u011f\1\u0146\1\0"+
-    "\2\u011e\1\0\1\u0146\1\u0123\4\u011e\2\u0146\5\u011e\1\0"+
-    "\44\u011e\1\0\1\u0147\1\u011e\1\u011f\1\u0146\2\u011e\1\u0147"+
-    "\1\u011e\1\u0146\1\u0148\4\u011e\2\u0146\16\u011e\1\u0147\2\u011e"+
-    "\1\u0147\2\u011e\1\u0147\10\u011e\1\u0147\4\u011e\1\u0147\7\u011e"+
-    "\1\0\2\u0121\1\u0149\1\0\1\u0146\11\u0121\2\0\52\u0121"+
-    "\1\0\2\u0122\1\u014a\1\0\3\u0122\1\u0146\6\u0122\2\0"+
-    "\52\u0122\24\0\1\u014b\47\0\1\u014c\1\25\1\131\1\25"+
-    "\1\0\1\25\1\u014c\1\0\1\25\1\0\1\25\3\0"+
-    "\2\25\2\0\3\25\1\0\1\25\7\0\1\u014c\2\25"+
-    "\1\u014c\2\25\1\u014c\2\25\1\0\4\25\1\0\1\u014c"+
-    "\1\25\1\0\1\25\1\0\1\u014c\2\25\6\0\1\u014d"+
-    "\1\134\1\135\1\134\1\0\1\134\1\u014d\1\0\1\134"+
-    "\1\0\1\134\3\0\2\134\2\0\3\134\1\0\1\134"+
-    "\7\0\1\u014d\2\134\1\u014d\2\134\1\u014d\2\134\1\0"+
-    "\4\134\1\0\1\u014d\1\134\1\0\1\134\1\0\1\u014d"+
-    "\2\134\6\0\1\u014e\1\136\1\137\1\136\1\0\1\136"+
-    "\1\u014e\1\0\1\136\1\0\1\136\3\0\2\136\2\0"+
-    "\3\136\1\0\1\136\7\0\1\u014e\2\136\1\u014e\2\136"+
-    "\1\u014e\2\136\1\0\4\136\1\0\1\u014e\1\136\1\0"+
-    "\1\136\1\0\1\u014e\2\136\52\0\2\u014f\73\0\1\u0150"+
-    "\106\0\2\u0151\7\0\1\u0152\1\341\1\342\1\341\1\0"+
-    "\1\341\1\u0152\1\0\1\341\1\u0103\1\341\3\0\2\341"+
-    "\2\0\3\341\1\0\1\341\7\0\1\u0152\2\341\1\u0152"+
-    "\2\341\1\u0152\2\341\1\0\4\341\1\0\1\u0152\1\341"+
-    "\1\0\1\341\1\0\1\u0152\2\341\6\0\1\u0153\1\147"+
-    "\1\150\1\147\1\0\1\147\1\u0153\1\0\1\147\1\0"+
-    "\1\147\3\0\2\147\2\0\3\147\1\260\1\147\7\0"+
-    "\1\u0153\2\147\1\u0153\2\147\1\u0153\2\147\1\0\4\147"+
-    "\1\0\1\u0153\1\147\1\0\1\147\1\0\1\u0153\2\147"+
-    "\6\0\1\u0154\1\151\1\152\1\151\1\153\1\151\1\u0154"+
-    "\27\151\1\u0154\2\151\1\u0154\2\151\1\u0154\10\151\1\u0154"+
-    "\4\151\1\u0154\7\151\1\0\1\u0155\1\154\1\155\3\154"+
-    "\1\u0155\1\153\26\154\1\u0155\2\154\1\u0155\2\154\1\u0155"+
-    "\10\154\1\u0155\4\154\1\u0155\7\154\1\0\1\u0156\1\157"+
-    "\1\160\1\157\1\161\1\157\1\u0156\27\157\1\u0156\2\157"+
-    "\1\u0156\2\157\1\u0156\10\157\1\u0156\4\157\1\u0156\7\157"+
-    "\1\0\1\u0157\1\162\1\163\3\162\1\u0157\1\161\26\162"+
-    "\1\u0157\2\162\1\u0157\2\162\1\u0157\10\162\1\u0157\4\162"+
-    "\1\u0157\7\162\4\0\1\u0132\1\0\1\u0132\2\0\1\u0132"+
-    "\1\u010e\4\0\2\u0132\53\0\1\u0158\1\u010a\1\u010b\1\u010a"+
-    "\1\0\1\u010a\1\u0158\1\0\1\u010a\1\u010e\13\u010a\1\0"+
-    "\10\u010a\1\u0158\2\u010a\1\u0158\2\u010a\1\u0158\10\u010a\1\u0158"+
-    "\4\u010a\1\u0158\7\u010a\1\0\1\u0159\1\u010c\1\u0135\1\u010c"+
-    "\1\u015a\1\u010c\1\u0159\10\u010c\1\u015b\16\u010c\1\u0159\2\u010c"+
-    "\1\u0159\2\u010c\1\u0159\10\u010c\1\u0159\4\u010c\1\u0159\7\u010c"+
-    "\1\0\1\u015c\1\u010d\1\u0136\3\u010d\1\u015c\1\u015d\7\u010d"+
-    "\1\u015e\16\u010d\1\u015c\2\u010d\1\u015c\2\u010d\1\u015c\10\u010d"+
-    "\1\u015c\4\u010d\1\u015c\7\u010d\1\0\1\u015f\1\51\1\165"+
-    "\1\51\1\0\1\51\1\u015f\1\0\1\51\1\0\1\51"+
-    "\3\0\2\51\2\0\3\51\1\0\1\51\7\0\1\u015f"+
-    "\2\51\1\u015f\2\51\1\u015f\2\51\1\0\4\51\1\0"+
-    "\1\u015f\1\51\1\0\1\51\1\0\1\u015f\2\51\6\0"+
-    "\1\u0160\1\55\1\170\1\55\1\0\1\55\1\u0160\1\0"+
-    "\1\55\1\0\1\55\3\0\2\55\2\0\3\55\1\0"+
-    "\1\55\7\0\1\u0160\2\55\1\u0160\2\55\1\u0160\2\55"+
-    "\1\0\4\55\1\0\1\u0160\1\55\1\0\1\55\1\0"+
-    "\1\u0160\2\55\6\0\1\u0161\1\62\1\173\1\62\1\0"+
-    "\1\62\1\u0161\1\0\1\62\1\0\1\62\3\0\2\62"+
-    "\2\0\3\62\1\0\1\62\7\0\1\u0161\2\62\1\u0161"+
-    "\2\62\1\u0161\2\62\1\0\4\62\1\0\1\u0161\1\62"+
-    "\1\0\1\62\1\0\1\u0161\2\62\6\0\1\u0162\1\72"+
-    "\1\200\1\72\1\0\1\72\1\u0162\1\0\1\72\1\0"+
-    "\1\72\3\0\2\72\2\0\3\72\1\0\1\72\7\0"+
-    "\1\u0162\2\72\1\u0162\2\72\1\u0162\2\72\1\0\4\72"+
-    "\1\0\1\u0162\1\72\1\0\1\72\1\0\1\u0162\2\72"+
-    "\6\0\1\u0163\1\100\1\203\1\100\1\0\1\100\1\u0163"+
-    "\1\0\1\100\1\0\1\100\3\0\2\100\2\0\3\100"+
-    "\1\0\1\100\7\0\1\u0163\2\100\1\u0163\2\100\1\u0163"+
-    "\2\100\1\0\4\100\1\0\1\u0163\1\100\1\0\1\100"+
-    "\1\0\1\u0163\2\100\6\0\1\u0164\1\205\1\206\1\205"+
-    "\1\207\1\205\1\u0164\27\205\1\u0164\2\205\1\u0164\2\205"+
-    "\1\u0164\10\205\1\u0164\4\205\1\u0164\7\205\1\0\1\u0165"+
-    "\1\210\1\211\3\210\1\u0165\1\207\26\210\1\u0165\2\210"+
-    "\1\u0165\2\210\1\u0165\10\210\1\u0165\4\210\1\u0165\7\210"+
-    "\1\0\1\u0166\1\105\1\213\1\105\1\0\1\105\1\u0166"+
-    "\1\0\1\105\1\0\1\105\3\0\2\105\2\0\3\105"+
-    "\1\0\1\105\7\0\1\u0166\2\105\1\u0166\2\105\1\u0166"+
-    "\2\105\1\0\4\105\1\0\1\u0166\1\105\1\0\1\105"+
-    "\1\0\1\u0166\2\105\6\0\1\u0167\1\216\1\217\1\216"+
-    "\1\0\1\216\1\u0167\1\0\1\216\1\0\1\216\3\0"+
-    "\2\216\2\0\3\216\1\0\1\216\7\0\1\u0167\2\216"+
-    "\1\u0167\2\216\1\u0167\2\216\1\0\4\216\1\0\1\u0167"+
-    "\1\216\1\0\1\216\1\0\1\u0167\2\216\6\0\1\u0168"+
-    "\1\113\1\222\1\113\1\0\1\113\1\u0168\1\0\1\113"+
-    "\1\0\1\113\3\0\2\113\2\0\3\113\1\223\1\113"+
-    "\7\0\1\u0168\2\113\1\u0168\2\113\1\u0168\2\113\1\0"+
-    "\4\113\1\0\1\u0168\1\113\1\0\1\113\1\0\1\u0168"+
-    "\2\113\6\0\1\u0169\1\225\1\226\1\225\1\227\1\225"+
-    "\1\u0169\27\225\1\u0169\2\225\1\u0169\2\225\1\u0169\10\225"+
-    "\1\u0169\4\225\1\u0169\7\225\1\0\1\u016a\1\230\1\231"+
-    "\3\230\1\u016a\1\227\26\230\1\u016a\2\230\1\u016a\2\230"+
-    "\1\u016a\10\230\1\u016a\4\230\1\u016a\7\230\1\0\1\u016b"+
-    "\1\235\1\236\1\235\1\0\1\235\1\u016b\1\0\1\235"+
-    "\1\0\1\235\3\0\2\235\2\0\3\235\1\0\1\235"+
-    "\7\0\1\u016b\2\235\1\u016b\2\235\1\u016b\2\235\1\0"+
-    "\4\235\1\0\1\u016b\1\235\1\0\1\235\1\0\1\u016b"+
-    "\2\235\6\0\1\u016c\5\0\1\u016c\3\0\1\367\5\0"+
-    "\1\u016c\5\0\1\u016c\7\0\2\u016c\1\0\2\u016c\1\0"+
-    "\2\u016c\7\0\2\u016c\3\0\2\u016c\7\0\1\u016d\5\0"+
-    "\1\u016d\11\0\1\u016d\5\0\1\u016d\7\0\2\u016d\1\0"+
-    "\2\u016d\1\0\2\u016d\7\0\2\u016d\3\0\2\u016d\12\0"+
-    "\1\u0146\1\0\1\u0146\2\0\1\u0146\1\u0123\4\0\2\u0146"+
-    "\53\0\1\u016e\1\u011e\1\u011f\1\u011e\1\0\1\u011e\1\u016e"+
-    "\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u016e\2\u011e"+
-    "\1\u016e\2\u011e\1\u016e\10\u011e\1\u016e\4\u011e\1\u016e\7\u011e"+
-    "\1\0\1\u016f\1\u0121\1\u0149\1\u0121\1\u0170\1\u0121\1\u016f"+
-    "\10\u0121\1\u0171\16\u0121\1\u016f\2\u0121\1\u016f\2\u0121\1\u016f"+
-    "\10\u0121\1\u016f\4\u0121\1\u016f\7\u0121\1\0\1\u0172\1\u0122"+
-    "\1\u014a\3\u0122\1\u0172\1\u0173\7\u0122\1\u0174\16\u0122\1\u0172"+
-    "\2\u0122\1\u0172\2\u0122\1\u0172\10\u0122\1\u0172\4\u0122\1\u0172"+
-    "\7\u0122\47\0\1\u0175\24\0\2\25\1\131\1\25\1\0"+
-    "\2\25\1\0\1\25\1\0\1\25\3\0\2\25\2\0"+
-    "\3\25\1\0\1\25\7\0\11\25\1\0\4\25\1\0"+
-    "\2\25\1\0\1\25\1\0\3\25\6\0\1\u0176\1\134"+
-    "\1\135\1\134\1\0\1\134\1\u0176\1\0\1\134\1\0"+
-    "\1\134\3\0\2\134\2\0\3\134\1\0\1\134\7\0"+
-    "\1\u0176\2\134\1\u0176\2\134\1\u0176\2\134\1\0\4\134"+
-    "\1\0\1\u0176\1\134\1\0\1\134\1\0\1\u0176\2\134"+
-    "\6\0\1\u0177\1\136\1\137\1\136\1\0\1\136\1\u0177"+
-    "\1\0\1\136\1\0\1\136\3\0\2\136\2\0\3\136"+
-    "\1\0\1\136\7\0\1\u0177\2\136\1\u0177\2\136\1\u0177"+
-    "\2\136\1\0\4\136\1\0\1\u0177\1\136\1\0\1\136"+
-    "\1\0\1\u0177\2\136\54\0\1\u0178\65\0\2\u0179\30\0"+
-    "\1\u017a\1\341\1\342\1\341\1\0\1\341\1\u017a\1\0"+
-    "\1\341\1\u0103\1\341\3\0\2\341\2\0\3\341\1\0"+
-    "\1\341\7\0\1\u017a\2\341\1\u017a\2\341\1\u017a\2\341"+
-    "\1\0\4\341\1\0\1\u017a\1\341\1\0\1\341\1\0"+
-    "\1\u017a\2\341\6\0\1\u017b\1\147\1\150\1\147\1\0"+
-    "\1\147\1\u017b\1\0\1\147\1\0\1\147\3\0\2\147"+
-    "\2\0\3\147\1\260\1\147\7\0\1\u017b\2\147\1\u017b"+
-    "\2\147\1\u017b\2\147\1\0\4\147\1\0\1\u017b\1\147"+
-    "\1\0\1\147\1\0\1\u017b\2\147\6\0\1\u017c\1\151"+
-    "\1\152\1\151\1\153\1\151\1\u017c\27\151\1\u017c\2\151"+
-    "\1\u017c\2\151\1\u017c\10\151\1\u017c\4\151\1\u017c\7\151"+
-    "\1\0\1\u017d\1\154\1\155\3\154\1\u017d\1\153\26\154"+
-    "\1\u017d\2\154\1\u017d\2\154\1\u017d\10\154\1\u017d\4\154"+
-    "\1\u017d\7\154\1\0\1\u017e\1\157\1\160\1\157\1\161"+
-    "\1\157\1\u017e\27\157\1\u017e\2\157\1\u017e\2\157\1\u017e"+
-    "\10\157\1\u017e\4\157\1\u017e\7\157\1\0\1\u017f\1\162"+
-    "\1\163\3\162\1\u017f\1\161\26\162\1\u017f\2\162\1\u017f"+
-    "\2\162\1\u017f\10\162\1\u017f\4\162\1\u017f\7\162\1\0"+
-    "\1\u0180\1\u010a\1\u010b\1\u010a\1\0\1\u010a\1\u0180\1\0"+
-    "\1\u010a\1\u010e\13\u010a\1\0\10\u010a\1\u0180\2\u010a\1\u0180"+
-    "\2\u010a\1\u0180\10\u010a\1\u0180\4\u010a\1\u0180\7\u010a\1\0"+
-    "\1\u0181\1\u010c\1\u0135\1\u010c\1\u0132\1\u010c\1\u0181\27\u010c"+
-    "\1\u0181\2\u010c\1\u0181\2\u010c\1\u0181\10\u010c\1\u0181\4\u010c"+
-    "\1\u0181\7\u010c\1\0\2\u010c\1\u0135\2\u0132\1\u015a\2\u010c"+
-    "\1\u015a\1\u0182\4\u010c\2\u0132\52\u010c\1\0\2\u010c\1\u0135"+
-    "\1\0\1\u0132\12\u010c\1\0\52\u010c\1\0\1\u0183\1\u010d"+
-    "\1\u0136\3\u010d\1\u0183\1\u0132\26\u010d\1\u0183\2\u010d\1\u0183"+
-    "\2\u010d\1\u0183\10\u010d\1\u0183\4\u010d\1\u0183\7\u010d\1\0"+
-    "\2\u010d\1\u0136\1\u0132\1\u010d\1\u015d\1\u010d\1\u0132\1\u015d"+
-    "\1\u0184\4\u010d\2\u0132\52\u010d\1\0\2\u010d\1\u0136\1\0"+
-    "\3\u010d\1\u0132\7\u010d\1\0\52\u010d\1\0\2\51\1\165"+
-    "\1\51\1\0\2\51\1\0\1\51\1\0\1\51\3\0"+
-    "\2\51\2\0\3\51\1\0\1\51\7\0\11\51\1\0"+
-    "\4\51\1\0\2\51\1\0\1\51\1\0\3\51\6\0"+
-    "\2\55\1\170\1\55\1\0\2\55\1\0\1\55\1\0"+
-    "\1\55\3\0\2\55\2\0\3\55\1\0\1\55\7\0"+
-    "\11\55\1\0\4\55\1\0\2\55\1\0\1\55\1\0"+
-    "\3\55\6\0\2\62\1\173\1\62\1\0\2\62\1\0"+
-    "\1\62\1\0\1\62\3\0\2\62\2\0\3\62\1\0"+
-    "\1\62\7\0\11\62\1\0\4\62\1\0\2\62\1\0"+
-    "\1\62\1\0\3\62\6\0\2\72\1\200\1\72\1\0"+
-    "\2\72\1\0\1\72\1\0\1\72\3\0\2\72\2\0"+
-    "\3\72\1\0\1\72\7\0\11\72\1\0\4\72\1\0"+
-    "\2\72\1\0\1\72\1\0\3\72\6\0\2\100\1\203"+
-    "\1\100\1\0\2\100\1\0\1\100\1\0\1\100\3\0"+
-    "\2\100\2\0\3\100\1\0\1\100\7\0\11\100\1\0"+
-    "\4\100\1\0\2\100\1\0\1\100\1\0\3\100\6\0"+
-    "\1\u0185\1\205\1\206\1\205\1\207\1\205\1\u0185\27\205"+
-    "\1\u0185\2\205\1\u0185\2\205\1\u0185\10\205\1\u0185\4\205"+
-    "\1\u0185\7\205\1\0\1\u0186\1\210\1\211\3\210\1\u0186"+
-    "\1\207\26\210\1\u0186\2\210\1\u0186\2\210\1\u0186\10\210"+
-    "\1\u0186\4\210\1\u0186\7\210\1\0\2\105\1\213\1\105"+
-    "\1\0\2\105\1\0\1\105\1\0\1\105\3\0\2\105"+
-    "\2\0\3\105\1\0\1\105\7\0\11\105\1\0\4\105"+
-    "\1\0\2\105\1\0\1\105\1\0\3\105\6\0\1\u0187"+
-    "\1\216\1\217\1\216\1\0\1\216\1\u0187\1\0\1\216"+
-    "\1\0\1\216\3\0\2\216\2\0\3\216\1\0\1\216"+
-    "\7\0\1\u0187\2\216\1\u0187\2\216\1\u0187\2\216\1\0"+
-    "\4\216\1\0\1\u0187\1\216\1\0\1\216\1\0\1\u0187"+
-    "\2\216\6\0\2\113\1\222\1\113\1\0\2\113\1\0"+
-    "\1\113\1\0\1\113\3\0\2\113\2\0\3\113\1\223"+
-    "\1\113\7\0\11\113\1\0\4\113\1\0\2\113\1\0"+
-    "\1\113\1\0\3\113\6\0\1\u0188\1\225\1\226\1\225"+
-    "\1\227\1\225\1\u0188\27\225\1\u0188\2\225\1\u0188\2\225"+
-    "\1\u0188\10\225\1\u0188\4\225\1\u0188\7\225\1\0\1\u0189"+
-    "\1\230\1\231\3\230\1\u0189\1\227\26\230\1\u0189\2\230"+
-    "\1\u0189\2\230\1\u0189\10\230\1\u0189\4\230\1\u0189\7\230"+
-    "\1\0\1\u018a\1\235\1\236\1\235\1\0\1\235\1\u018a"+
-    "\1\0\1\235\1\0\1\235\3\0\2\235\2\0\3\235"+
-    "\1\0\1\235\7\0\1\u018a\2\235\1\u018a\2\235\1\u018a"+
-    "\2\235\1\0\4\235\1\0\1\u018a\1\235\1\0\1\235"+
-    "\1\0\1\u018a\2\235\6\0\1\u018b\5\0\1\u018b\3\0"+
-    "\1\367\5\0\1\u018b\5\0\1\u018b\7\0\2\u018b\1\0"+
-    "\2\u018b\1\0\2\u018b\7\0\2\u018b\3\0\2\u018b\7\0"+
-    "\1\u018c\5\0\1\u018c\11\0\1\u018c\5\0\1\u018c\7\0"+
-    "\2\u018c\1\0\2\u018c\1\0\2\u018c\7\0\2\u018c\3\0"+
-    "\2\u018c\7\0\1\u018d\1\u011e\1\u011f\1\u011e\1\0\1\u011e"+
-    "\1\u018d\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u018d"+
-    "\2\u011e\1\u018d\2\u011e\1\u018d\10\u011e\1\u018d\4\u011e\1\u018d"+
-    "\7\u011e\1\0\1\u018e\1\u0121\1\u0149\1\u0121\1\u0146\1\u0121"+
-    "\1\u018e\27\u0121\1\u018e\2\u0121\1\u018e\2\u0121\1\u018e\10\u0121"+
-    "\1\u018e\4\u0121\1\u018e\7\u0121\1\0\2\u0121\1\u0149\2\u0146"+
-    "\1\u0170\2\u0121\1\u0170\1\u018f\4\u0121\2\u0146\52\u0121\1\0"+
-    "\2\u0121\1\u0149\1\0\1\u0146\12\u0121\1\0\52\u0121\1\0"+
-    "\1\u0190\1\u0122\1\u014a\3\u0122\1\u0190\1\u0146\26\u0122\1\u0190"+
-    "\2\u0122\1\u0190\2\u0122\1\u0190\10\u0122\1\u0190\4\u0122\1\u0190"+
-    "\7\u0122\1\0\2\u0122\1\u014a\1\u0146\1\u0122\1\u0173\1\u0122"+
-    "\1\u0146\1\u0173\1\u0191\4\u0122\2\u0146\52\u0122\1\0\2\u0122"+
-    "\1\u014a\1\0\3\u0122\1\u0146\7\u0122\1\0\52\u0122\42\0"+
-    "\2\u0192\30\0\2\134\1\135\1\134\1\0\2\134\1\0"+
-    "\1\134\1\0\1\134\3\0\2\134\2\0\3\134\1\0"+
-    "\1\134\7\0\11\134\1\0\4\134\1\0\2\134\1\0"+
-    "\1\134\1\0\3\134\6\0\2\136\1\137\1\136\1\0"+
-    "\2\136\1\0\1\136\1\0\1\136\3\0\2\136\2\0"+
-    "\3\136\1\0\1\136\7\0\11\136\1\0\4\136\1\0"+
-    "\2\136\1\0\1\136\1\0\3\136\44\0\2\u0193\33\0"+
-    "\1\u0194\1\341\1\342\1\341\1\0\1\341\1\u0194\1\0"+
-    "\1\341\1\u0103\1\341\3\0\2\341\2\0\3\341\1\0"+
-    "\1\341\7\0\1\u0194\2\341\1\u0194\2\341\1\u0194\2\341"+
-    "\1\0\4\341\1\0\1\u0194\1\341\1\0\1\341\1\0"+
-    "\1\u0194\2\341\6\0\2\147\1\150\1\147\1\0\2\147"+
-    "\1\0\1\147\1\0\1\147\3\0\2\147\2\0\3\147"+
-    "\1\260\1\147\7\0\11\147\1\0\4\147\1\0\2\147"+
-    "\1\0\1\147\1\0\3\147\6\0\2\151\1\152\1\151"+
-    "\1\153\65\151\1\0\2\154\1\155\4\154\1\153\62\154"+
-    "\1\0\2\157\1\160\1\157\1\161\65\157\1\0\2\162"+
-    "\1\163\4\162\1\161\62\162\1\0\1\u0195\1\u010a\1\u010b"+
-    "\1\u010a\1\0\1\u010a\1\u0195\1\0\1\u010a\1\u010e\13\u010a"+
-    "\1\0\10\u010a\1\u0195\2\u010a\1\u0195\2\u010a\1\u0195\10\u010a"+
-    "\1\u0195\4\u010a\1\u0195\7\u010a\1\0\1\u0196\1\u010c\1\u0135"+
-    "\1\u010c\1\u0132\1\u010c\1\u0196\27\u010c\1\u0196\2\u010c\1\u0196"+
-    "\2\u010c\1\u0196\10\u010c\1\u0196\4\u010c\1\u0196\7\u010c\1\0"+
-    "\1\u0197\1\u010d\1\u0136\3\u010d\1\u0197\1\u0132\26\u010d\1\u0197"+
-    "\2\u010d\1\u0197\2\u010d\1\u0197\10\u010d\1\u0197\4\u010d\1\u0197"+
-    "\7\u010d\1\0\2\205\1\206\1\205\1\207\65\205\1\0"+
-    "\2\210\1\211\4\210\1\207\62\210\1\0\2\216\1\217"+
-    "\1\216\1\0\2\216\1\0\1\216\1\0\1\216\3\0"+
-    "\2\216\2\0\3\216\1\0\1\216\7\0\11\216\1\0"+
-    "\4\216\1\0\2\216\1\0\1\216\1\0\3\216\6\0"+
-    "\2\225\1\226\1\225\1\227\65\225\1\0\2\230\1\231"+
-    "\4\230\1\227\62\230\1\0\2\235\1\236\1\235\1\0"+
-    "\2\235\1\0\1\235\1\0\1\235\3\0\2\235\2\0"+
-    "\3\235\1\0\1\235\7\0\11\235\1\0\4\235\1\0"+
-    "\2\235\1\0\1\235\1\0\3\235\20\0\1\367\60\0"+
-    "\1\u0198\5\0\1\u0198\11\0\1\u0198\5\0\1\u0198\7\0"+
-    "\2\u0198\1\0\2\u0198\1\0\2\u0198\7\0\2\u0198\3\0"+
-    "\2\u0198\7\0\1\u0199\1\u011e\1\u011f\1\u011e\1\0\1\u011e"+
-    "\1\u0199\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e\1\u0199"+
-    "\2\u011e\1\u0199\2\u011e\1\u0199\10\u011e\1\u0199\4\u011e\1\u0199"+
-    "\7\u011e\1\0\1\u019a\1\u0121\1\u0149\1\u0121\1\u0146\1\u0121"+
-    "\1\u019a\27\u0121\1\u019a\2\u0121\1\u019a\2\u0121\1\u019a\10\u0121"+
-    "\1\u019a\4\u0121\1\u019a\7\u0121\1\0\1\u019b\1\u0122\1\u014a"+
-    "\3\u0122\1\u019b\1\u0146\26\u0122\1\u019b\2\u0122\1\u019b\2\u0122"+
-    "\1\u019b\10\u0122\1\u019b\4\u0122\1\u019b\7\u0122\65\0\1\u019c"+
-    "\52\0\2\u019d\25\0\1\u019e\1\341\1\342\1\341\1\0"+
-    "\1\341\1\u019e\1\0\1\341\1\u0103\1\341\3\0\2\341"+
-    "\2\0\3\341\1\0\1\341\7\0\1\u019e\2\341\1\u019e"+
-    "\2\341\1\u019e\2\341\1\0\4\341\1\0\1\u019e\1\341"+
-    "\1\0\1\341\1\0\1\u019e\2\341\6\0\1\u019f\1\u010a"+
-    "\1\u010b\1\u010a\1\0\1\u010a\1\u019f\1\0\1\u010a\1\u010e"+
-    "\13\u010a\1\0\10\u010a\1\u019f\2\u010a\1\u019f\2\u010a\1\u019f"+
-    "\10\u010a\1\u019f\4\u010a\1\u019f\7\u010a\1\0\1\u01a0\1\u010c"+
-    "\1\u0135\1\u010c\1\u0132\1\u010c\1\u01a0\27\u010c\1\u01a0\2\u010c"+
-    "\1\u01a0\2\u010c\1\u01a0\10\u010c\1\u01a0\4\u010c\1\u01a0\7\u010c"+
-    "\1\0\1\u01a1\1\u010d\1\u0136\3\u010d\1\u01a1\1\u0132\26\u010d"+
-    "\1\u01a1\2\u010d\1\u01a1\2\u010d\1\u01a1\10\u010d\1\u01a1\4\u010d"+
-    "\1\u01a1\7\u010d\1\0\1\u01a2\5\0\1\u01a2\11\0\1\u01a2"+
-    "\5\0\1\u01a2\7\0\2\u01a2\1\0\2\u01a2\1\0\2\u01a2"+
-    "\7\0\2\u01a2\3\0\2\u01a2\7\0\1\u01a3\1\u011e\1\u011f"+
-    "\1\u011e\1\0\1\u011e\1\u01a3\1\0\1\u011e\1\u0123\13\u011e"+
-    "\1\0\10\u011e\1\u01a3\2\u011e\1\u01a3\2\u011e\1\u01a3\10\u011e"+
-    "\1\u01a3\4\u011e\1\u01a3\7\u011e\1\0\1\u01a4\1\u0121\1\u0149"+
-    "\1\u0121\1\u0146\1\u0121\1\u01a4\27\u0121\1\u01a4\2\u0121\1\u01a4"+
-    "\2\u0121\1\u01a4\10\u0121\1\u01a4\4\u0121\1\u01a4\7\u0121\1\0"+
-    "\1\u01a5\1\u0122\1\u014a\3\u0122\1\u01a5\1\u0146\26\u0122\1\u01a5"+
-    "\2\u0122\1\u01a5\2\u0122\1\u01a5\10\u0122\1\u01a5\4\u0122\1\u01a5"+
-    "\7\u0122\47\0\1\u01a6\24\0\2\341\1\342\1\341\1\0"+
-    "\2\341\1\0\1\341\1\u0103\1\341\3\0\2\341\2\0"+
-    "\3\341\1\0\1\341\7\0\11\341\1\0\4\341\1\0"+
-    "\2\341\1\0\1\341\1\0\3\341\6\0\1\u01a7\1\u010a"+
-    "\1\u010b\1\u010a\1\0\1\u010a\1\u01a7\1\0\1\u010a\1\u010e"+
-    "\13\u010a\1\0\10\u010a\1\u01a7\2\u010a\1\u01a7\2\u010a\1\u01a7"+
-    "\10\u010a\1\u01a7\4\u010a\1\u01a7\7\u010a\1\0\1\u01a8\1\u010c"+
-    "\1\u0135\1\u010c\1\u0132\1\u010c\1\u01a8\27\u010c\1\u01a8\2\u010c"+
-    "\1\u01a8\2\u010c\1\u01a8\10\u010c\1\u01a8\4\u010c\1\u01a8\7\u010c"+
-    "\1\0\1\u01a9\1\u010d\1\u0136\3\u010d\1\u01a9\1\u0132\26\u010d"+
-    "\1\u01a9\2\u010d\1\u01a9\2\u010d\1\u01a9\10\u010d\1\u01a9\4\u010d"+
-    "\1\u01a9\7\u010d\1\0\1\u01aa\1\u011e\1\u011f\1\u011e\1\0"+
-    "\1\u011e\1\u01aa\1\0\1\u011e\1\u0123\13\u011e\1\0\10\u011e"+
-    "\1\u01aa\2\u011e\1\u01aa\2\u011e\1\u01aa\10\u011e\1\u01aa\4\u011e"+
-    "\1\u01aa\7\u011e\1\0\1\u01ab\1\u0121\1\u0149\1\u0121\1\u0146"+
-    "\1\u0121\1\u01ab\27\u0121\1\u01ab\2\u0121\1\u01ab\2\u0121\1\u01ab"+
-    "\10\u0121\1\u01ab\4\u0121\1\u01ab\7\u0121\1\0\1\u01ac\1\u0122"+
-    "\1\u014a\3\u0122\1\u01ac\1\u0146\26\u0122\1\u01ac\2\u0122\1\u01ac"+
-    "\2\u0122\1\u01ac\10\u0122\1\u01ac\4\u0122\1\u01ac\7\u0122\1\0"+
-    "\2\u010a\1\u010b\1\u010a\1\0\2\u010a\1\0\1\u010a\1\u010e"+
-    "\13\u010a\1\0\44\u010a\1\0\1\u01ad\1\u010c\1\u0135\1\u010c"+
-    "\1\u0132\1\u010c\1\u01ad\27\u010c\1\u01ad\2\u010c\1\u01ad\2\u010c"+
-    "\1\u01ad\10\u010c\1\u01ad\4\u010c\1\u01ad\7\u010c\1\0\1\u01ae"+
-    "\1\u010d\1\u0136\3\u010d\1\u01ae\1\u0132\26\u010d\1\u01ae\2\u010d"+
-    "\1\u01ae\2\u010d\1\u01ae\10\u010d\1\u01ae\4\u010d\1\u01ae\7\u010d"+
-    "\1\0\2\u011e\1\u011f\1\u011e\1\0\2\u011e\1\0\1\u011e"+
-    "\1\u0123\13\u011e\1\0\44\u011e\1\0\1\u01af\1\u0121\1\u0149"+
-    "\1\u0121\1\u0146\1\u0121\1\u01af\27\u0121\1\u01af\2\u0121\1\u01af"+
-    "\2\u0121\1\u01af\10\u0121\1\u01af\4\u0121\1\u01af\7\u0121\1\0"+
-    "\1\u01b0\1\u0122\1\u014a\3\u0122\1\u01b0\1\u0146\26\u0122\1\u01b0"+
-    "\2\u0122\1\u01b0\2\u0122\1\u01b0\10\u0122\1\u01b0\4\u0122\1\u01b0"+
-    "\7\u0122\1\0\2\u010c\1\u0135\1\u010c\1\u0132\65\u010c\1\0"+
-    "\2\u010d\1\u0136\4\u010d\1\u0132\62\u010d\1\0\2\u0121\1\u0149"+
-    "\1\u0121\1\u0146\65\u0121\1\0\2\u0122\1\u014a\4\u0122\1\u0146"+
-    "\62\u0122";
-
-  /** 
-   * The transition table of the DFA
-   */
-  final private static int yytrans [] = yy_unpack(yy_packed);
-
-
-  /* error codes */
-  final private static int YY_UNKNOWN_ERROR = 0;
-  final private static int YY_ILLEGAL_STATE = 1;
-  final private static int YY_NO_MATCH = 2;
-  final private static int YY_PUSHBACK_2BIG = 3;
-
-  /* error messages for the codes above */
-  final private static String YY_ERROR_MSG[] = {
-    "Unkown internal scanner error",
-    "Internal error: unknown state",
-    "Error: could not match input",
-    "Error: pushback value was too large"
-  };
-
-  /**
-   * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
-   */
-  private final static byte YY_ATTRIBUTE[] = {
-     0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 
-     0,  0,  0,  9,  1,  1,  1,  1,  1,  1,  1,  9,  1,  9,  1,  1, 
-     9,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  9, 
-     9,  1,  1,  1,  9,  1,  3,  9,  9,  1,  1,  1,  9,  1,  9,  1, 
-     1,  1,  1,  1,  1,  1,  1,  9,  9,  1,  1,  1,  1,  1,  9,  1, 
-     1,  1,  1,  1,  1,  1,  9,  3,  0,  1,  1,  1,  0,  1,  0,  0, 
-     0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  9,  0,  0,  0,  0,  0, 
-     9,  0,  0,  0,  0,  1,  1,  0,  1,  1,  0,  1,  1, 13,  7,  0, 
-     1,  1,  0,  1,  0,  0,  9,  0,  0,  1,  0,  1,  1,  1,  0,  0, 
-     9,  0,  9,  1,  0,  0,  9,  0,  0,  1,  1,  1,  1,  0,  0,  1, 
-     0,  0, 13,  7,  1,  9,  1,  1,  0,  0,  0,  0,  0,  0,  0,  0, 
-     1,  0,  1,  0,  0,  1,  0,  0,  1,  0,  0,  1,  0,  0,  1,  1, 
-     1,  1,  1,  0,  1,  0,  0,  1,  0,  1,  1,  1,  0,  1,  0,  0, 
-     1,  0,  1,  1,  1,  0,  1,  1,  1,  9,  9,  0,  0,  0,  0,  0, 
-     0,  0,  1,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  0,  0,  1, 
-     1,  1,  0,  0,  1,  1,  0,  1,  0,  1,  1,  1,  0,  0,  0,  9, 
-     0,  0,  9,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  9,  1,  1, 
-     1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  0, 
-     0,  0,  9,  0,  1,  1,  1,  0,  0,  9,  0,  0,  1,  0,  0,  0, 
-     0,  0,  0,  1,  0,  0,  1,  1,  1,  1,  1,  0,  0,  1,  1,  1, 
-     0,  0,  1,  1,  1,  0,  0,  1,  0,  0,  0,  1,  1,  1,  0,  9, 
-     0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1, 
-     1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  1,  1,  1,  0,  0,  0, 
-     0,  0,  0,  0,  0,  1,  1,  9,  0,  0,  1,  0,  0,  0,  0,  0, 
-     0,  1,  0,  1,  0,  0,  1,  0,  0,  1,  1,  1,  0,  0,  1,  0, 
-     1,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  9,  0,  0,  0, 
-     0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
-  };
-
-  /** the input device */
-  private java.io.Reader yy_reader;
-
-  /** the current state of the DFA */
-  private int yy_state;
-
-  /** the current lexical state */
-  private int yy_lexical_state = YYINITIAL;
-
-  /** this buffer contains the current text to be matched and is
-      the source of the yytext() string */
-  private char yy_buffer[] = new char[16384];
-
-  /** the textposition at the last accepting state */
-  private int yy_markedPos;
-
-  /** the textposition at the last state to be included in yytext */
-  private int yy_pushbackPos;
-
-  /** the current text position in the buffer */
-  private int yy_currentPos;
-
-  /** startRead marks the beginning of the yytext() string in the buffer */
-  private int yy_startRead;
-
-  /** endRead marks the last character in the buffer, that has been read
-      from input */
-  private int yy_endRead;
-
-  /** number of newlines encountered up to the start of the matched text */
-  private int yyline;
-
-  /** the number of characters up to the start of the matched text */
-  private int yychar;
-
-  /**
-   * the number of characters from the last newline up to the start of the 
-   * matched text
-   */
-  private int yycolumn; 
-
-  /** 
-   * yy_atBOL == true <=> the scanner is currently at the beginning of a line
-   */
-  private boolean yy_atBOL;
-
-  /** yy_atEOF == true <=> the scanner has returned a value for EOF */
-  private boolean yy_atEOF;
-
-  /* user code: */
-	private final static String UNDEFINED = "undefined";
-	private String fBufferedContext = null;
-	private int fBufferedStart;
-//	private int fBufferedTextLength;
-	private int fBufferedLength;
-//	private StringBuffer fBufferedText = null;
-	private CSSTextRegionFactory fRegionFactory = CSSTextRegionFactory.getInstance();
-	private int fInitialState = YYINITIAL;
-	public final static int BUFFER_SIZE_NORMAL = 16384;
-	public final static int BUFFER_SIZE_SMALL = 256;
-	private int fInitialBufferSize = BUFFER_SIZE_NORMAL;
-
-	public void setInitialState(int state) {
-		fInitialState = state;
-	}
-	
-	public void setInitialBufferSize(int size) {
-		fInitialBufferSize = size;
-	}
-
-	/* user method */
-  	public final ITextRegion getNextToken() throws IOException {
-		String context;
-		String nextTokenType;
-		boolean spaceFollows;
-//		StringBuffer text;
-		int start;
-		int textLength;
-		int length;
-		if (fBufferedContext != null) {
-			context = fBufferedContext;
-//			text = fBufferedText;
-			start = fBufferedStart;
-			textLength = length = fBufferedLength;
-
-			fBufferedContext = null;
-		} else {
-			context = primGetNextToken();
-//			text = new StringBuffer(yytext());
-			start = yychar;
-			textLength = length = yylength();
-		}
-
-		if (context != null) {
-			if (context == UNDEFINED) {
-				// undef -> concatenate undef's
-				nextTokenType = primGetNextToken();
-				while (nextTokenType == UNDEFINED) {
-//					text.append(yytext());
-					textLength += yylength();
-					length = textLength;
-					nextTokenType = primGetNextToken();
-				}
-				fBufferedContext = nextTokenType;
-//				fBufferedText = new StringBuffer(yytext());
-				fBufferedStart = yychar;
-				fBufferedLength = yylength();
-			} else {
-				nextTokenType = null;
-				spaceFollows = false;
-				if (CSSRegionUtil.isDeclarationValueType(context)) { // declaration value can contain VALUE_S
-					nextTokenType = primGetNextToken();
-					spaceFollows = (nextTokenType == CSS_DECLARATION_VALUE_S);
-				} else if (canContainSpace(context)) {
-					nextTokenType = primGetNextToken();
-					spaceFollows = (nextTokenType == CSS_S);
-				}
-				if (nextTokenType != null) { // nextToken is retrieved
-					if (spaceFollows) {
-						// next is space -> append
-//						text.append(yytext());
-						length += yylength();
-					} else {
-						// next is NOT space -> push this for next time, return itself
-						fBufferedContext = nextTokenType;
-//						fBufferedText = new StringBuffer(yytext());
-						fBufferedStart = yychar;
-						fBufferedLength = yylength();
-					}
-				}
-			}
-		}
-
-		if (context != null) {
-			if (context == UNDEFINED) {
-				context = CSS_UNKNOWN;
-			}
-			return fRegionFactory.createRegion(context, start, textLength, length);
-		} else {
-			return null;
-		}
-  	}
-
-	/* user method */
-	/* for standalone use */
-  	public final List parseText() throws IOException {
-  		List tokens = new ArrayList();
-
-  		CSSTextToken token;
-		for (String kind = primGetNextToken(); kind != null; kind = primGetNextToken()) {
-			token = new CSSTextToken();
-			token.kind = kind;  				
-			token.start = yychar;
-			token.length = yylength();
-			token.image = yytext();
-			tokens.add(token);
-		}
-
-  		return tokens;
-  	}
-  	
-  	/* user method */
-  	private boolean canContainSpace(String type) {
-  		if (type == CSS_DELIMITER || type == CSS_RBRACE || type == CSS_DECLARATION_DELIMITER) {
-  			return false;
-  		} else {
-  			return true;
-  		}
-  	}
-
-	/* user method */
-	public final int getOffset() {
-		return yychar;
-	}
-	
-	/* user method */
-	public final boolean isEOF() {
-		return yy_atEOF;
-	}
-
-	/* user method */
-	public void reset(char[] charArray) {
-		reset(new CharArrayReader(charArray), 0);
-	}
-
-	/* user method */
-	public final void reset(java.io.Reader in, int newOffset) {
-		/** the input device */
-		yy_reader = in;
-
-		/** the current state of the DFA */
-		yy_state = 0;
-
-		/** the current lexical state */
-		yy_lexical_state = fInitialState; //YYINITIAL;
-
-		/** this buffer contains the current text to be matched and is
-			the source of the yytext() string */
-		if (yy_buffer.length != fInitialBufferSize) {
-			yy_buffer = new char[fInitialBufferSize];
-		}
-		java.util.Arrays.fill(yy_buffer, (char)0);
-
-		/** the textposition at the last accepting state */
-		yy_markedPos = 0;
-
-		/** the textposition at the last state to be included in yytext */
-		yy_pushbackPos = 0;
-
-		/** the current text position in the buffer */
-		yy_currentPos = 0;
-
-		/** startRead marks the beginning of the yytext() string in the buffer */
-		yy_startRead = 0;
-
-		/** endRead marks the last character in the buffer, that has been read
-			from input */
-		yy_endRead = 0;
-
-		/** number of newlines encountered up to the start of the matched text */
-		yyline = 0;
-
-		/** the number of characters up to the start of the matched text */
-		yychar = 0;
-
-		/**
-		 * the number of characters from the last newline up to the start of the 
-		 * matched text
-		 */
-		yycolumn = 0; 
-
-		/** 
-		 * yy_atBOL == true <=> the scanner is currently at the beginning of a line
-		 */
-		yy_atBOL = false;
-		
-		/** yy_atEOF == true <=> the scanner has returned a value for EOF */
-		yy_atEOF = false;
-
-		/* user variables */
-		//		fUndefined.delete(0, fUndefined.length());
-	}
-
-	/* user method */
-	public CSSTokenizer() {
-		super();
-	}
-
-
-
-  /**
-   * Creates a new scanner
-   * There is also a java.io.InputStream version of this constructor.
-   *
-   * @param   in  the java.io.Reader to read input from.
-   */
-  public CSSTokenizer(java.io.Reader in) {
-    this.yy_reader = in;
-  }
-
-  /**
-   * Creates a new scanner.
-   * There is also java.io.Reader version of this constructor.
-   *
-   * @param   in  the java.io.Inputstream to read input from.
-   */
-  public CSSTokenizer(java.io.InputStream in) {
-    this(new java.io.InputStreamReader(in));
-  }
-
-  /** 
-   * Unpacks the compressed DFA transition table.
-   *
-   * @param packed   the packed transition table
-   * @return         the unpacked transition table
-   */
-  private static int [] yy_unpack(String packed) {
-    int [] trans = new int[21004];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 13906) {
-      int count = packed.charAt(i++);
-      int value = packed.charAt(i++);
-      value--;
-      do trans[j++] = value; while (--count > 0);
-    }
-    return trans;
-  }
-
-  /** 
-   * Unpacks the compressed character translation table.
-   *
-   * @param packed   the packed character translation table
-   * @return         the unpacked character translation table
-   */
-  private static char [] yy_unpack_cmap(String packed) {
-    char [] map = new char[0x10000];
-    int i = 0;  /* index in packed string  */
-    int j = 0;  /* index in unpacked array */
-    while (i < 170) {
-      int  count = packed.charAt(i++);
-      char value = packed.charAt(i++);
-      do map[j++] = value; while (--count > 0);
-    }
-    return map;
-  }
-
-
-  /**
-   * Gets the next input character.
-   *
-   * @return      the next character of the input stream, EOF if the
-   *              end of the stream is reached.
-   * @exception   IOException  if any I/O-Error occurs
-   */
-  private int yy_advance() throws java.io.IOException {
-
-    /* standard case */
-    if (yy_currentPos < yy_endRead) return yy_buffer[yy_currentPos++];
-
-    /* if the eof is reached, we don't need to work hard */ 
-    if (yy_atEOF) return YYEOF;
-
-    /* otherwise: need to refill the buffer */
-
-    /* first: make room (if you can) */
-    if (yy_startRead > 0) {
-      System.arraycopy(yy_buffer, yy_startRead, 
-                       yy_buffer, 0, 
-                       yy_endRead-yy_startRead);
-
-      /* translate stored positions */
-      yy_endRead-= yy_startRead;
-      yy_currentPos-= yy_startRead;
-      yy_markedPos-= yy_startRead;
-      yy_pushbackPos-= yy_startRead;
-      yy_startRead = 0;
-    }
-
-    /* is the buffer big enough? */
-    if (yy_currentPos >= yy_buffer.length) {
-      /* if not: blow it up */
-      char newBuffer[] = new char[yy_currentPos*2];
-      System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
-      yy_buffer = newBuffer;
-    }
-
-    /* finally: fill the buffer with new input */
-    int numRead = yy_reader.read(yy_buffer, yy_endRead, 
-                                            yy_buffer.length-yy_endRead);
-
-    if ( numRead == -1 ) return YYEOF;
-
-    yy_endRead+= numRead;
-
-    return yy_buffer[yy_currentPos++];
-  }
-
-
-  /**
-   * Closes the input stream.
-   */
-  final public void yyclose() throws java.io.IOException {
-    yy_atEOF = true;            /* indicate end of file */
-    yy_endRead = yy_startRead;  /* invalidate buffer    */
-    yy_reader.close();
-  }
-
-
-  /**
-   * Returns the current lexical state.
-   */
-  final public int yystate() {
-    return yy_lexical_state;
-  }
-
-  /**
-   * Enters a new lexical state
-   *
-   * @param newState the new lexical state
-   */
-  final public void yybegin(int newState) {
-    yy_lexical_state = newState;
-  }
-
-
-  /**
-   * Returns the text matched by the current regular expression.
-   */
-  final public String yytext() {
-    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
-  }
-
-  /**
-   * Returns the length of the matched text region.
-   */
-  final public int yylength() {
-    return yy_markedPos-yy_startRead;
-  }
-
-
-  /**
-   * Reports an error that occured while scanning.
-   *
-   * @param   errorCode  the code of the errormessage to display
-   */
-  private void yy_ScanError(int errorCode) {
-    try {
-      System.out.println(YY_ERROR_MSG[errorCode]);
-    }
-    catch (ArrayIndexOutOfBoundsException e) {
-      System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
-    }
-
-    System.exit(1);
-  } 
-
-
-  /**
-   * Pushes the specified amount of characters back into the input stream.
-   *
-   * They will be read again by then next call of the scanning method
-   *
-   * @param number  the number of characters to be read again.
-   *                This number must not be greater than yylength()!
-   */
-  private void yypushback(int number) {
-    if ( number > yylength() )
-      yy_ScanError(YY_PUSHBACK_2BIG);
-
-    yy_markedPos -= number;
-  }
-
-
-  /**
-   * Resumes scanning until the next regular expression is matched,
-   * the end of input is encountered or an I/O-Error occurs.
-   *
-   * @return      the next token
-   * @exception   IOException  if any I/O-Error occurs
-   */
-  public String primGetNextToken() throws java.io.IOException {
-    int yy_input;
-    int yy_action;
-
-    yy_pushbackPos = -1;
-    boolean yy_was_pushback;
-
-    while (true) {
-
-      yychar+= yylength();
-
-      boolean yy_counted = false;
-      for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos;
-                                                      yy_currentPos++) {
-        switch (yy_buffer[yy_currentPos]) {
-        case '\r':
-          yyline++;
-          yy_counted = true;
-          break;
-        case '\n':
-          if (yy_counted)
-            yy_counted = false;
-          else {
-            yyline++;
-          }
-          break;
-        default:
-          yy_counted = false;
-        }
-      }
-
-      if (yy_counted) {
-        if ( yy_advance() == '\n' ) yyline--;
-        if ( !yy_atEOF ) yy_currentPos--;
-      }
-
-      yy_action = -1;
-
-      yy_currentPos = yy_startRead = yy_markedPos;
-
-      yy_state = yy_lexical_state;
-
-      yy_was_pushback = false;
-
-      yy_forAction: {
-        while (true) {
-
-          yy_input = yy_advance();
-
-          if ( yy_input == YYEOF ) break yy_forAction;
-
-          int yy_next = yytrans[ yy_rowMap[yy_state] + yycmap[yy_input] ];
-          if (yy_next == -1) break yy_forAction;
-          yy_state = yy_next;
-
-          int yy_attributes = YY_ATTRIBUTE[yy_state];
-          if ( (yy_attributes & 2) > 0 )
-            yy_pushbackPos = yy_currentPos;
-
-          if ( (yy_attributes & 1) > 0 ) {
-            yy_was_pushback = (yy_attributes & 4) > 0;
-            yy_action = yy_state; 
-            yy_markedPos = yy_currentPos; 
-            if ( (yy_attributes & 8) > 0 ) break yy_forAction;
-          }
-
-        }
-      }
-
-      if (yy_was_pushback)
-        yy_markedPos = yy_pushbackPos;
-
-      switch (yy_action) {    
-
-        case 421: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IMPORTANT;  }
-        case 433: break;
-        case 412: 
-          {  yybegin(ST_FONT_FACE_DELIMITER); return CSS_FONT_FACE;  }
-        case 434: break;
-        case 375: 
-          {  yybegin(ST_CHARSET_NAME); return CSS_CHARSET;  }
-        case 435: break;
-        case 335: 
-          {  yybegin(ST_IMPORT_URI); return CSS_IMPORT;  }
-        case 436: break;
-        case 297: 
-          {  yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA;  }
-        case 437: break;
-        case 290: 
-        case 327: 
-        case 398: 
-        case 400: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_URI;  }
-        case 438: break;
-        case 269: 
-        case 307: 
-        case 385: 
-        case 387: 
-          {  yybegin(ST_IMPORT_MEDIUM); return CSS_URI;  }
-        case 439: break;
-        case 255: 
-          {  yybegin(ST_PAGE_PSEUDO_PAGE); return CSS_PAGE;  }
-        case 440: break;
-        case 218: 
-          {  return CSS_COMMENT;  }
-        case 441: break;
-        case 217: 
-          {  return CSS_CDO;  }
-        case 442: break;
-        case 211: 
-        case 245: 
-        case 283: 
-        case 284: 
-        case 323: 
-        case 324: 
-        case 363: 
-        case 364: 
-        case 394: 
-        case 395: 
-        case 407: 
-        case 417: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_UNICODE_RANGE;  }
-        case 443: break;
-        case 165: 
-          {  return CSS_CDC;  }
-        case 444: break;
-        case 162: 
-          {  return CSS_DECLARATION_VALUE_S;  }
-        case 445: break;
-        case 156: 
-        case 210: 
-        case 244: 
-        case 282: 
-        case 322: 
-        case 362: 
-        case 393: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_HASH;  }
-        case 446: break;
-        case 150: 
-        case 205: 
-        case 208: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_STRING;  }
-        case 447: break;
-        case 57: 
-        case 59: 
-        case 128: 
-        case 129: 
-        case 193: 
-        case 235: 
-        case 273: 
-        case 313: 
-        case 353: 
-          {  yybegin(ST_SELECTOR_ATTRIBUTE_OPERATOR); return CSS_SELECTOR_ATTRIBUTE_NAME;  }
-        case 448: break;
-        case 56: 
-          {  yybegin(ST_SELECTOR); return CSS_SELECTOR_SEPARATOR;  }
-        case 449: break;
-        case 55: 
-        case 125: 
-          {  yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR;  }
-        case 450: break;
-        case 52: 
-          {  yybegin(ST_DECLARATION); return CSS_LBRACE;  }
-        case 451: break;
-        case 49: 
-        case 51: 
-        case 123: 
-        case 124: 
-        case 192: 
-        case 234: 
-        case 272: 
-        case 312: 
-        case 352: 
-          {  yybegin(ST_PAGE_DELIMITER); return CSS_PAGE_SELECTOR;  }
-        case 452: break;
-        case 48: 
-          {  yybegin(YYINITIAL); return CSS_LBRACE;  }
-        case 453: break;
-        case 47: 
-          {  yybegin(ST_MEDIA_MEDIUM); return CSS_MEDIA_SEPARATOR;  }
-        case 454: break;
-        case 44: 
-        case 46: 
-        case 120: 
-        case 121: 
-        case 191: 
-        case 233: 
-        case 271: 
-        case 311: 
-        case 351: 
-          {  yybegin(ST_MEDIA_DELIMITER); return CSS_MEDIUM;  }
-        case 455: break;
-        case 43: 
-          {  yybegin(ST_IMPORT_MEDIUM); return CSS_MEDIA_SEPARATOR;  }
-        case 456: break;
-        case 20: 
-        case 23: 
-        case 89: 
-        case 90: 
-        case 164: 
-        case 214: 
-        case 249: 
-        case 292: 
-        case 331: 
-          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ELEMENT_NAME;  }
-        case 457: break;
-        case 22: 
-        case 54: 
-        case 87: 
-        case 126: 
-        case 163: 
-          {  return CSS_S;  }
-        case 458: break;
-        case 27: 
-          {  yybegin(YYINITIAL); return CSS_RBRACE;  }
-        case 459: break;
-        case 29: 
-          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_UNIVERSAL;  }
-        case 460: break;
-        case 32: 
-          {  yybegin(ST_SELECTOR_ATTRIBUTE_NAME); return CSS_SELECTOR_ATTRIBUTE_START;  }
-        case 461: break;
-        case 36: 
-          {  yybegin(YYINITIAL); return CSS_DELIMITER;  }
-        case 462: break;
-        case 40: 
-        case 42: 
-        case 117: 
-        case 118: 
-        case 190: 
-        case 232: 
-        case 270: 
-        case 310: 
-        case 350: 
-          {  yybegin(ST_IMPORT_DELIMITER); return CSS_MEDIUM;  }
-        case 463: break;
-        case 60: 
-          {  yybegin(ST_SELECTOR_ATTRIBUTE_VALUE); return CSS_SELECTOR_ATTRIBUTE_OPERATOR;  }
-        case 464: break;
-        case 62: 
-          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ATTRIBUTE_END;  }
-        case 465: break;
-        case 63: 
-        case 67: 
-        case 131: 
-        case 134: 
-        case 137: 
-        case 194: 
-        case 196: 
-        case 199: 
-        case 236: 
-        case 274: 
-        case 314: 
-        case 354: 
-          {  yybegin(ST_SELECTOR_ATTRIBUTE_END); return CSS_SELECTOR_ATTRIBUTE_VALUE;  }
-        case 466: break;
-        case 68: 
-        case 70: 
-        case 139: 
-        case 140: 
-        case 201: 
-        case 239: 
-        case 277: 
-        case 317: 
-        case 357: 
-          {  yybegin(ST_DECLARATION_SEPARATOR); return CSS_DECLARATION_PROPERTY;  }
-        case 467: break;
-        case 71: 
-          {  yybegin(ST_DECLARATION); return CSS_DECLARATION_DELIMITER;  }
-        case 468: break;
-        case 72: 
-          {  yybegin(ST_DECLARATION_PRE_VALUE); return CSS_DECLARATION_SEPARATOR;  }
-        case 469: break;
-        case 73: 
-        case 155: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_NUMBER;  }
-        case 470: break;
-        case 74: 
-        case 79: 
-        case 83: 
-        case 147: 
-        case 153: 
-        case 154: 
-        case 159: 
-        case 203: 
-        case 212: 
-        case 241: 
-        case 279: 
-        case 319: 
-        case 359: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IDENT;  }
-        case 471: break;
-        case 78: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PARENTHESIS_CLOSE;  }
-        case 472: break;
-        case 85: 
-        case 86: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_OPERATOR;  }
-        case 473: break;
-        case 91: 
-        case 166: 
-        case 215: 
-        case 250: 
-        case 293: 
-        case 332: 
-        case 373: 
-          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_CLASS;  }
-        case 474: break;
-        case 93: 
-        case 167: 
-        case 216: 
-        case 251: 
-        case 294: 
-        case 333: 
-        case 374: 
-          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ID;  }
-        case 475: break;
-        case 102: 
-        case 176: 
-        case 226: 
-        case 258: 
-        case 260: 
-        case 300: 
-        case 338: 
-        case 378: 
-          {  yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO;  }
-        case 476: break;
-        case 106: 
-        case 178: 
-        case 181: 
-          {  yybegin(ST_CHARSET_DELIMITER); return CSS_STRING;  }
-        case 477: break;
-        case 112: 
-        case 184: 
-        case 187: 
-          {  yybegin(ST_IMPORT_MEDIUM); return CSS_STRING;  }
-        case 478: break;
-        case 141: 
-        case 202: 
-        case 240: 
-        case 278: 
-        case 318: 
-        case 358: 
-        case 390: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_DIMENSION;  }
-        case 479: break;
-        case 144: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PERCENTAGE;  }
-        case 480: break;
-        case 146: 
-        case 247: 
-          {  yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_FUNCTION;  }
-        case 481: break;
-        case 19: 
-        case 21: 
-        case 24: 
-        case 25: 
-        case 26: 
-        case 28: 
-        case 30: 
-        case 31: 
-        case 33: 
-        case 34: 
-        case 35: 
-        case 37: 
-        case 38: 
-        case 39: 
-        case 41: 
-        case 45: 
-        case 50: 
-        case 53: 
-        case 58: 
-        case 61: 
-        case 64: 
-        case 65: 
-        case 66: 
-        case 69: 
-        case 75: 
-        case 76: 
-        case 77: 
-        case 80: 
-        case 81: 
-        case 82: 
-        case 84: 
-          { 
-	return UNDEFINED;
- }
-        case 482: break;
-        default: 
-          if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
-            yy_atEOF = true;
-              return null;
-          } 
-          else {
-            yy_ScanError(YY_NO_MATCH);
-          }
-      }
-    }
-  }    
-
-  /**
-   * Runs the scanner on input files.
-   *
-   * This main method is the debugging routine for the scanner.
-   * It prints each returned token to System.out until the end of
-   * file is reached, or an error occured.
-   *
-   * @param argv   the command line, contains the filenames to run
-   *               the scanner on.
-   */
-  public static void main(String argv[]) {
-    for (int i = 0; i < argv.length; i++) {
-      CSSTokenizer scanner = null;
-      try {
-        scanner = new CSSTokenizer( new java.io.FileReader(argv[i]) );
-      }
-      catch (java.io.FileNotFoundException e) {
-        System.out.println("File not found : \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (java.io.IOException e) {
-        System.out.println("Error opening file \""+argv[i]+"\"");
-        System.exit(1);
-      }
-      catch (ArrayIndexOutOfBoundsException e) {
-        System.out.println("Usage : java CSSTokenizer <inputfile>");
-        System.exit(1);
-      }
-
-      try {
-        do {
-          System.out.println(scanner.primGetNextToken());
-        } while (!scanner.yy_atEOF);
-
-      }
-      catch (java.io.IOException e) {
-        System.out.println("An I/O error occured while scanning :");
-        System.out.println(e);
-        System.exit(1);
-      }
-      catch (Exception e) {
-        e.printStackTrace();
-        System.exit(1);
-      }
-    }
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex
index 86481a4..1a269c6 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/CSSTokenizer.jflex
@@ -1,5 +1,5 @@
 /*******************************************************************************

- * Copyright (c) 2004 IBM Corporation and others.

+ * Copyright (c) 2004, 2008 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

@@ -29,10 +29,9 @@
 %function primGetNextToken

 %type String

 %char

-%line

 %unicode

 %caseless

-%debug

+//%debug

 %pack

 

 %{

@@ -163,7 +162,7 @@
 	

 	/* user method */

 	public final boolean isEOF() {

-		return yy_atEOF;

+		return zzAtEOF;

 	}

 

 	/* user method */

@@ -174,36 +173,36 @@
 	/* user method */

 	public final void reset(java.io.Reader in, int newOffset) {

 		/** the input device */

-		yy_reader = in;

+		zzReader = in;

 

 		/** the current state of the DFA */

-		yy_state = 0;

+		zzState = 0;

 

 		/** the current lexical state */

-		yy_lexical_state = fInitialState; //YYINITIAL;

+		zzLexicalState = fInitialState; //YYINITIAL;

 

 		/** this buffer contains the current text to be matched and is

 			the source of the yytext() string */

-		if (yy_buffer.length != fInitialBufferSize) {

-			yy_buffer = new char[fInitialBufferSize];

+		if (zzBuffer.length != fInitialBufferSize) {

+			zzBuffer = new char[fInitialBufferSize];

 		}

-		java.util.Arrays.fill(yy_buffer, (char)0);

+		java.util.Arrays.fill(zzBuffer, (char)0);

 

 		/** the textposition at the last accepting state */

-		yy_markedPos = 0;

+		zzMarkedPos = 0;

 

 		/** the textposition at the last state to be included in yytext */

-		yy_pushbackPos = 0;

+//		yy_pushbackPos = 0;

 

 		/** the current text position in the buffer */

-		yy_currentPos = 0;

+		zzCurrentPos = 0;

 

 		/** startRead marks the beginning of the yytext() string in the buffer */

-		yy_startRead = 0;

+		zzStartRead = 0;

 

 		/** endRead marks the last character in the buffer, that has been read

 			from input */

-		yy_endRead = 0;

+		zzEndRead = 0;

 

 		/** number of newlines encountered up to the start of the matched text */

 		yyline = 0;

@@ -220,10 +219,10 @@
 		/** 

 		 * yy_atBOL == true <=> the scanner is currently at the beginning of a line

 		 */

-		yy_atBOL = false;

+//		yy_atBOL = false;

 		

-		/** yy_atEOF == true <=> the scanner has returned a value for EOF */

-		yy_atEOF = false;

+		/** zzAtEOF == true <=> the scanner has returned a value for EOF */

+		zzAtEOF = false;

 

 		/* user variables */

 		//		fUndefined.delete(0, fUndefined.length());

@@ -234,6 +233,15 @@
 		super();

 	}

 

+	/**

+	 * Added to workaround stricter compilation options without creating

+	 * an alternate skeleton file

+	 */

+	void _usePrivates() {

+		System.out.print(yycolumn);

+		System.out.print(yyline);

+		System.out.print(Boolean.toString(zzAtBOL));

+	}

 %}

 

 %state ST_CHARSET_NAME

@@ -270,6 +278,7 @@
 string2 = \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\'

 

 ident = -?{nmstart}{nmchar}*

+value_ident = -?{nmstart}"."?({nmchar}+"."?)*

 

 name = {nmchar}+

 num = [+-]?([0-9]+|[0-9]*"."[0-9]+)

@@ -407,8 +416,8 @@
 <YYINITIAL, ST_SELECTOR_MODIFIER, ST_SELECTOR> {

 	"*" { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_UNIVERSAL; }

 	{hash} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_ID; }

-//	":"{ident} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; }

-	":"{ident}("("{s}*{ident}{s}*")")? { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; }

+//	":"{ident}("("{s}*{ident}{s}*")")? { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; }

+	":"({ident}("("{s}*{ident}{s}*")")?)? { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_PSEUDO; }

 	"."{name} { yybegin(ST_SELECTOR_MODIFIER); return CSS_SELECTOR_CLASS; }

 	"[" { yybegin(ST_SELECTOR_ATTRIBUTE_NAME); return CSS_SELECTOR_ATTRIBUTE_START; }

 }

@@ -420,7 +429,7 @@
 <ST_SELECTOR_MODIFIER> {

 	"," { yybegin(ST_SELECTOR); return CSS_SELECTOR_SEPARATOR; }

 	// using LOOKAHEAD

-	{s}+/[^+>\{] { yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR; }

+	{s}+/[^+>\{,/] { yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR; }

 	"+"|">" { yybegin(ST_SELECTOR); return CSS_SELECTOR_COMBINATOR; }

 	"{" { yybegin(ST_DECLARATION); return CSS_LBRACE; }

 }

@@ -469,7 +478,7 @@
 	// ordered following two rules deliberately, see 

 	//  https://bugs.eclipse.org/bugs/show_bug.cgi?id=129902

 	{num}{ident} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_DIMENSION; }

-	{ident} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IDENT; }

+	{value_ident} { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_IDENT; }

 

 

 	{num}"%" { yybegin(ST_DECLARATION_VALUE); return CSS_DECLARATION_VALUE_PERCENTAGE; }

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd
index 30fce78..d39ae78 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.cmd
@@ -1,7 +1,6 @@
 @echo off

-set PATH=%PATH%;c:\jdk1.4\bin

-java -Xmx470000000 -cp JFlex\lib\sed-jflex.jar;. JFlex.Main JSPTokenizer -skel skeleton.sed

-java -Xmx470000000 -cp JFlex\lib\sed-jflex.jar;. JFlex.Main XMLTokenizer -skel skeleton.sed

-rm -f JSPTokenizer.java~ JSPTokenizer~ XMLTokenizer.java~ XMLTokenizer~

-copy XMLTokenizer.java ..\..\..\..\sedmodel\com\ibm\sed\parser\internal

-copy JSPTokenizer.java ..\..\..\..\sedmodel\com\ibm\sed\parser\internal

+set JAVA_HOME=d:\jdk6_03

+set JFLEX_HOME=D:\JFlex\jflex-1.4.2

+

+%JAVA_HOME%\bin\java -Xmx470M -jar %JFLEX_HOME%\lib\JFlex.jar CSSTokenizer.jflex

+move CSSTokenizer.java ..\..\..\..\..\org.eclipse.wst.css.core\src\org\eclipse\wst\css\core\internal\parser\ && del CSSTokenizer.java*

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh
deleted file mode 100644
index f7872f3..0000000
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/CSSTokenizer/devel/flex.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh

-

-JAVADIR=C:/App/IBM/Java141/bin

-JAVAOPT=-Xmx470000000

-CLASSPATH=../../HTMLTokenizer/devel/JFlex/lib/sed-jflex.jar\;.

-DESTDIR=../../../../../org.eclipse.wst.sse.core.css/src/com/ibm/sse/model/css/internal/parser

-

-#export PATH=$PATH:/opt/IBMJava2-131/bin/:/opt/IBMJava2-13/bin/:/opt/jdk1.4

-#java -Xmx470000000 -cp JFlex/lib/sed-jflex.jar;. JFlex.Main CSSTokenizer -skel skeleton.sse

-

-$JAVADIR/java $JAVAOPT -cp $CLASSPATH JFlex.Main CSSTokenizer.jflex

-

-rm -f CSSTokenizer.java~ CSSTokenizer.jflex~

-cp -v CSSTokenizer.java $DESTDIR

-#$JAVADIR/javac $DESTDIR/*.java

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README
index 8bbbc73..3d820e1 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/README
@@ -1,9 +1,7 @@
 devel     - the active development environment (sans JDK)

             - latest version of HTMLTokenizer specification and generated code

-            - slightly updated JAR file to avoid any possible as-shipped

-              compilation errors

             - modified skeleton to prevent VM exits on unmatched input

-            - "flex" scripts to run JFlex with modified skeleton and updated JAR

+            - "flex" scripts to run JFlex with modified skeleton

             - active RCS archive

 resources - backup/pristine resources

             - Unmodified JFlex 1.2.2 download

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java
index 2fed20d..b424476 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.java
@@ -1,7 +1,7 @@
-/* The following code was generated by JFlex 1.2.2 on 4/29/08 9:05 PM */
+/* The following code was generated by JFlex 1.2.2 on 10/24/07 5:16 AM */
 
 /*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 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
@@ -35,8 +35,8 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 4/29/08 9:05 PM from the specification file
- * <tt>file:/E:/wtp-1.5/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
+ * on 10/24/07 5:16 AM from the specification file
+ * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex</tt>
  */
 public class JSPTokenizer implements BlockTokenizer, DOMJSPRegionContexts {
 
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
index d14c3d7..32fdb7b 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/JSPTokenizer.jflex
@@ -1,5 +1,5 @@
 /*******************************************************************************

- * Copyright (c) 2004, 2008 IBM Corporation and others.

+ * Copyright (c) 2004, 2007 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

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java
index d0537ad..b4607a2 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.java
@@ -1,7 +1,7 @@
-/* The following code was generated by JFlex 1.2.2 on 8/16/05 3:07 PM */
+/* The following code was generated by JFlex 1.2.2 on 10/17/07 4:27 AM */
 
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,7 +10,7 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*nlsXXX*/
+
 package org.eclipse.wst.xml.core.internal.parser;
 
 import java.io.CharArrayReader;
@@ -23,7 +23,7 @@
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTokenizer;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
 import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.StringUtils;
+import org.eclipse.wst.sse.core.utils.StringUtils;
 import org.eclipse.wst.xml.core.internal.Logger;
 import org.eclipse.wst.xml.core.internal.parser.regions.XMLParserRegionFactory;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
@@ -32,7 +32,7 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 8/16/05 3:07 PM from the specification file
+ * on 10/17/07 4:27 AM from the specification file
  * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex</tt>
  */
 public class XMLTokenizer implements BlockTokenizer, DOMRegionContext {
@@ -77,75 +77,75 @@
    * Translates characters to character classes
    */
   final private static String yycmap_packed = 
-    "\11\0\1\5\1\22\2\0\1\14\22\0\1\14\1\21\1\11\1\51"+
+    "\11\0\1\5\1\22\2\0\1\14\22\0\1\14\1\21\1\11\1\55"+
     "\1\16\1\17\1\12\1\13\1\16\1\16\1\16\1\16\1\16\1\7"+
-    "\1\6\1\3\12\15\1\10\1\54\1\1\1\43\1\2\1\4\1\16"+
-    "\1\32\1\55\1\30\1\31\1\35\1\52\1\34\1\34\1\40\1\34"+
-    "\1\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\33"+
-    "\1\53\2\34\1\23\1\44\1\34\1\27\1\0\1\20\1\0\1\10"+
-    "\1\0\1\47\1\55\1\56\1\50\1\35\1\52\1\34\1\34\1\40"+
-    "\2\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\46"+
-    "\1\53\1\34\1\34\1\24\1\44\1\34\1\0\1\0\72\0\1\60"+
-    "\10\0\27\57\1\0\37\57\1\0\72\57\2\0\13\57\2\0\10\57"+
-    "\1\0\65\57\1\0\104\57\11\0\44\57\3\0\2\57\4\0\36\57"+
-    "\70\0\131\57\22\0\7\57\16\0\2\60\56\0\106\60\32\0\2\60"+
-    "\44\0\1\57\1\60\3\57\1\0\1\57\1\0\24\57\1\0\54\57"+
-    "\1\0\7\57\3\0\1\57\1\0\1\57\1\0\1\57\1\0\1\57"+
-    "\1\0\22\57\15\0\14\57\1\0\102\57\1\0\14\57\1\0\44\57"+
-    "\1\0\4\60\11\0\65\57\2\0\2\57\2\0\2\57\3\0\34\57"+
-    "\2\0\10\57\2\0\2\57\67\0\46\57\2\0\1\57\7\0\46\57"+
-    "\12\0\21\60\1\0\27\60\1\0\3\60\1\0\1\60\1\0\2\60"+
-    "\1\0\1\60\13\0\33\57\5\0\3\57\56\0\32\57\5\0\1\60"+
-    "\12\57\10\60\15\0\12\60\6\0\1\60\107\57\2\0\5\57\1\0"+
-    "\17\57\1\0\4\57\1\0\1\57\17\60\2\57\2\60\1\0\4\60"+
-    "\2\0\12\60\u0207\0\3\60\1\0\65\57\2\0\1\60\1\57\20\60"+
-    "\3\0\4\60\3\0\12\57\2\60\2\0\12\60\21\0\3\60\1\0"+
-    "\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0\1\57\3\0"+
-    "\4\57\2\0\1\60\1\0\7\60\2\0\2\60\2\0\3\60\11\0"+
-    "\1\60\4\0\2\57\1\0\3\57\2\60\2\0\12\60\2\57\20\0"+
-    "\1\60\2\0\6\57\4\0\2\57\2\0\26\57\1\0\7\57\1\0"+
-    "\2\57\1\0\2\57\1\0\2\57\2\0\1\60\1\0\5\60\4\0"+
-    "\2\60\2\0\3\60\13\0\4\57\1\0\1\57\7\0\12\60\2\60"+
-    "\3\57\14\0\3\60\1\0\7\57\1\0\1\57\1\0\3\57\1\0"+
-    "\26\57\1\0\7\57\1\0\2\57\1\0\5\57\2\0\1\60\1\57"+
-    "\10\60\1\0\3\60\1\0\3\60\22\0\1\57\5\0\12\60\21\0"+
-    "\3\60\1\0\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0"+
-    "\2\57\2\0\4\57\2\0\1\60\1\57\6\60\3\0\2\60\2\0"+
-    "\3\60\10\0\2\60\4\0\2\57\1\0\3\57\4\0\12\60\22\0"+
-    "\2\60\1\0\6\57\3\0\3\57\1\0\4\57\3\0\2\57\1\0"+
-    "\1\57\1\0\2\57\3\0\2\57\3\0\3\57\3\0\10\57\1\0"+
-    "\3\57\4\0\5\60\3\0\3\60\1\0\4\60\11\0\1\60\17\0"+
-    "\11\60\21\0\3\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0"+
-    "\12\57\1\0\5\57\4\0\7\60\1\0\3\60\1\0\4\60\7\0"+
-    "\2\60\11\0\2\57\4\0\12\60\22\0\2\60\1\0\10\57\1\0"+
-    "\3\57\1\0\27\57\1\0\12\57\1\0\5\57\4\0\7\60\1\0"+
-    "\3\60\1\0\4\60\7\0\2\60\7\0\1\57\1\0\2\57\4\0"+
-    "\12\60\22\0\2\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0"+
-    "\20\57\4\0\6\60\2\0\3\60\1\0\4\60\11\0\1\60\10\0"+
-    "\2\57\4\0\12\60\221\0\56\57\1\0\1\57\1\60\2\57\7\60"+
-    "\5\0\6\57\1\60\10\60\1\0\12\60\47\0\2\57\1\0\1\57"+
-    "\2\0\2\57\1\0\1\57\2\0\1\57\6\0\4\57\1\0\7\57"+
-    "\1\0\3\57\1\0\1\57\1\0\1\57\2\0\2\57\1\0\2\57"+
-    "\1\0\1\57\1\60\2\57\6\60\1\0\2\60\1\57\2\0\5\57"+
-    "\1\0\1\60\1\0\6\60\2\0\12\60\76\0\2\60\6\0\12\60"+
-    "\13\0\1\60\1\0\1\60\1\0\1\60\4\0\2\60\10\57\1\0"+
-    "\41\57\7\0\24\60\1\0\6\60\4\0\6\60\1\0\1\60\1\0"+
-    "\25\60\3\0\7\60\1\0\1\60\346\0\46\57\12\0\47\57\11\0"+
-    "\1\57\1\0\2\57\1\0\3\57\1\0\1\57\1\0\2\57\1\0"+
-    "\5\57\51\0\1\57\1\0\1\57\1\0\1\57\13\0\1\57\1\0"+
-    "\1\57\1\0\1\57\3\0\2\57\3\0\1\57\5\0\3\57\1\0"+
-    "\1\57\1\0\1\57\1\0\1\57\1\0\1\57\3\0\2\57\3\0"+
-    "\2\57\1\0\1\57\50\0\1\57\11\0\1\57\2\0\1\57\2\0"+
-    "\2\57\7\0\2\57\1\0\1\57\1\0\7\57\50\0\1\57\4\0"+
-    "\1\57\10\0\1\57\u0c06\0\234\57\4\0\132\57\6\0\26\57\2\0"+
-    "\6\57\2\0\46\57\2\0\6\57\2\0\10\57\1\0\1\57\1\0"+
-    "\1\57\1\0\1\57\1\0\37\57\2\0\65\57\1\0\7\57\1\0"+
-    "\1\57\3\0\3\57\1\0\7\57\3\0\4\57\2\0\6\57\4\0"+
-    "\15\57\5\0\3\57\1\0\7\57\323\0\15\60\4\0\1\60\104\0"+
-    "\1\57\3\0\2\57\2\0\1\57\121\0\3\57\u0e82\0\1\60\1\0"+
-    "\1\57\31\0\11\57\6\60\1\0\5\60\13\0\124\57\4\0\2\60"+
-    "\2\0\2\60\2\0\132\57\1\0\3\60\6\0\50\57\u1cd3\0\u51a6\57"+
-    "\u0c5a\0\u2ba4\57\134\0\u0800\0\u1ffe\0\2\0";
+    "\1\6\1\3\12\15\1\10\1\61\1\1\1\45\1\2\1\4\1\16"+
+    "\1\34\1\62\1\32\1\33\1\50\1\57\1\36\1\36\1\42\1\36"+
+    "\1\36\1\27\1\25\1\44\1\43\1\47\1\36\1\40\1\56\1\35"+
+    "\1\60\2\36\1\23\1\46\1\36\1\31\1\0\1\20\1\0\1\10"+
+    "\1\0\1\52\1\62\1\63\1\53\1\37\1\57\1\36\1\66\1\42"+
+    "\2\36\1\30\1\26\1\44\1\43\1\47\1\36\1\40\1\41\1\51"+
+    "\1\60\1\36\1\36\1\24\1\54\1\36\1\0\1\0\72\0\1\65"+
+    "\10\0\27\64\1\0\37\64\1\0\72\64\2\0\13\64\2\0\10\64"+
+    "\1\0\65\64\1\0\104\64\11\0\44\64\3\0\2\64\4\0\36\64"+
+    "\70\0\131\64\22\0\7\64\16\0\2\65\56\0\106\65\32\0\2\65"+
+    "\44\0\1\64\1\65\3\64\1\0\1\64\1\0\24\64\1\0\54\64"+
+    "\1\0\7\64\3\0\1\64\1\0\1\64\1\0\1\64\1\0\1\64"+
+    "\1\0\22\64\15\0\14\64\1\0\102\64\1\0\14\64\1\0\44\64"+
+    "\1\0\4\65\11\0\65\64\2\0\2\64\2\0\2\64\3\0\34\64"+
+    "\2\0\10\64\2\0\2\64\67\0\46\64\2\0\1\64\7\0\46\64"+
+    "\12\0\21\65\1\0\27\65\1\0\3\65\1\0\1\65\1\0\2\65"+
+    "\1\0\1\65\13\0\33\64\5\0\3\64\56\0\32\64\5\0\1\65"+
+    "\12\64\10\65\15\0\12\65\6\0\1\65\107\64\2\0\5\64\1\0"+
+    "\17\64\1\0\4\64\1\0\1\64\17\65\2\64\2\65\1\0\4\65"+
+    "\2\0\12\65\u0207\0\3\65\1\0\65\64\2\0\1\65\1\64\20\65"+
+    "\3\0\4\65\3\0\12\64\2\65\2\0\12\65\21\0\3\65\1\0"+
+    "\10\64\2\0\2\64\2\0\26\64\1\0\7\64\1\0\1\64\3\0"+
+    "\4\64\2\0\1\65\1\0\7\65\2\0\2\65\2\0\3\65\11\0"+
+    "\1\65\4\0\2\64\1\0\3\64\2\65\2\0\12\65\2\64\20\0"+
+    "\1\65\2\0\6\64\4\0\2\64\2\0\26\64\1\0\7\64\1\0"+
+    "\2\64\1\0\2\64\1\0\2\64\2\0\1\65\1\0\5\65\4\0"+
+    "\2\65\2\0\3\65\13\0\4\64\1\0\1\64\7\0\12\65\2\65"+
+    "\3\64\14\0\3\65\1\0\7\64\1\0\1\64\1\0\3\64\1\0"+
+    "\26\64\1\0\7\64\1\0\2\64\1\0\5\64\2\0\1\65\1\64"+
+    "\10\65\1\0\3\65\1\0\3\65\22\0\1\64\5\0\12\65\21\0"+
+    "\3\65\1\0\10\64\2\0\2\64\2\0\26\64\1\0\7\64\1\0"+
+    "\2\64\2\0\4\64\2\0\1\65\1\64\6\65\3\0\2\65\2\0"+
+    "\3\65\10\0\2\65\4\0\2\64\1\0\3\64\4\0\12\65\22\0"+
+    "\2\65\1\0\6\64\3\0\3\64\1\0\4\64\3\0\2\64\1\0"+
+    "\1\64\1\0\2\64\3\0\2\64\3\0\3\64\3\0\10\64\1\0"+
+    "\3\64\4\0\5\65\3\0\3\65\1\0\4\65\11\0\1\65\17\0"+
+    "\11\65\21\0\3\65\1\0\10\64\1\0\3\64\1\0\27\64\1\0"+
+    "\12\64\1\0\5\64\4\0\7\65\1\0\3\65\1\0\4\65\7\0"+
+    "\2\65\11\0\2\64\4\0\12\65\22\0\2\65\1\0\10\64\1\0"+
+    "\3\64\1\0\27\64\1\0\12\64\1\0\5\64\4\0\7\65\1\0"+
+    "\3\65\1\0\4\65\7\0\2\65\7\0\1\64\1\0\2\64\4\0"+
+    "\12\65\22\0\2\65\1\0\10\64\1\0\3\64\1\0\27\64\1\0"+
+    "\20\64\4\0\6\65\2\0\3\65\1\0\4\65\11\0\1\65\10\0"+
+    "\2\64\4\0\12\65\221\0\56\64\1\0\1\64\1\65\2\64\7\65"+
+    "\5\0\6\64\1\65\10\65\1\0\12\65\47\0\2\64\1\0\1\64"+
+    "\2\0\2\64\1\0\1\64\2\0\1\64\6\0\4\64\1\0\7\64"+
+    "\1\0\3\64\1\0\1\64\1\0\1\64\2\0\2\64\1\0\2\64"+
+    "\1\0\1\64\1\65\2\64\6\65\1\0\2\65\1\64\2\0\5\64"+
+    "\1\0\1\65\1\0\6\65\2\0\12\65\76\0\2\65\6\0\12\65"+
+    "\13\0\1\65\1\0\1\65\1\0\1\65\4\0\2\65\10\64\1\0"+
+    "\41\64\7\0\24\65\1\0\6\65\4\0\6\65\1\0\1\65\1\0"+
+    "\25\65\3\0\7\65\1\0\1\65\346\0\46\64\12\0\47\64\11\0"+
+    "\1\64\1\0\2\64\1\0\3\64\1\0\1\64\1\0\2\64\1\0"+
+    "\5\64\51\0\1\64\1\0\1\64\1\0\1\64\13\0\1\64\1\0"+
+    "\1\64\1\0\1\64\3\0\2\64\3\0\1\64\5\0\3\64\1\0"+
+    "\1\64\1\0\1\64\1\0\1\64\1\0\1\64\3\0\2\64\3\0"+
+    "\2\64\1\0\1\64\50\0\1\64\11\0\1\64\2\0\1\64\2\0"+
+    "\2\64\7\0\2\64\1\0\1\64\1\0\7\64\50\0\1\64\4\0"+
+    "\1\64\10\0\1\64\u0c06\0\234\64\4\0\132\64\6\0\26\64\2\0"+
+    "\6\64\2\0\46\64\2\0\6\64\2\0\10\64\1\0\1\64\1\0"+
+    "\1\64\1\0\1\64\1\0\37\64\2\0\65\64\1\0\7\64\1\0"+
+    "\1\64\3\0\3\64\1\0\7\64\3\0\4\64\2\0\6\64\4\0"+
+    "\15\64\5\0\3\64\1\0\7\64\323\0\15\65\4\0\1\65\104\0"+
+    "\1\64\3\0\2\64\2\0\1\64\121\0\3\64\u0e82\0\1\65\1\0"+
+    "\1\64\31\0\11\64\6\65\1\0\5\65\13\0\124\64\4\0\2\65"+
+    "\2\0\2\65\2\0\132\64\1\0\3\65\6\0\50\64\u1cd3\0\u51a6\64"+
+    "\u0c5a\0\u2ba4\64\134\0\u0800\0\u1ffe\0\2\0";
 
   /** 
    * Translates characters to character classes
@@ -156,242 +156,276 @@
    * Translates a state to a row index in the transition table
    */
   final private static int yy_rowMap [] = { 
-        0,    49,    98,   147,   196,   245,   294,   343,   392,   441, 
-      490,   539,   588,   637,   686,   735,   784,   833,   882,   931, 
-      980,  1029,  1078,  1127,  1176,  1225,  1274,  1323,  1372,  1421, 
-     1470,  1519,  1568,  1617,  1666,  1715,  1764,  1715,  1764,  1813, 
-     1715,  1715,  1764,  1862,  1911,  1960,  2009,  2058,  2107,  2156, 
-     1715,  1764,  2205,  2254,  2303,  1715,  2352,  2352,  2401,  2450, 
-     2499,  2205,  1715,  2548,  2597,  1715,  2646,  2695,  2744,  2793, 
-     2842,  2891,  1715,  2940,  2989,  3038,  3087,  1715,  3136,  3185, 
-     3234,  3283,  3332,  1715,  3381,  3430,  3479,  3528,  3577,  3626, 
-     3675,  3724,  3724,  3773,  3822,  3871,  3920,  3920,  3969,  4018, 
-     4067,  4116,  4116,  4165,  4214,  4263,  4312,  1715,  4361,  4361, 
-     4410,  4459,  4508,  4557,  1715,  1715,  1764,  1715,  1715,  4606, 
-     4655,  4704,  4753,  4802,  4851,  4900,  4949,  1715,  4998,  5047, 
-     1715,  1715,  2352,  5096,  2450,  1715,  5145,  2499,  2548,  2646, 
-     2695,  5194,  2744,  1715,  5243,  2793,  1715,  3136,  5292,  3234, 
-     1715,  5341,  3283,  4606,  5390,  5439,  5488,  3528,  1715,  5537, 
-     5586,  3724,  5635,  3773,  1715,  5684,  5733,  5782,  5782,  5831, 
-     5880,  3871,  3724,  3920,  5929,  3969,  1715,  5978,  4018,  4067, 
-     3920,  4116,  6027,  4165,  1715,  6076,  6125,  6174,  6174,  6223, 
-     6272,  6321,  4361,  6370,  4410,  1715,  6419,  6468,  6517,  6517, 
-     6566,  6615,  6664,  6713,  6762,  6811,  6860,  1715,  6909,  6958, 
-     1715,  1715,  1715,  2009,  7007,  7056,  7105,  7154,  7203,  7252, 
-     5684,  7301,  7301,  6076,  7350,  7350,  7399,  6419,  7448,  7448, 
-     7497,  1715,  7546,  7595,  1715,  7644,  7693,  7742,  7791,  7840, 
-     7889,  7938,  5831,  6223,  7987,  6566,  8036,  8085,  8134,  8183, 
-     8232,  8281,  8330,  8379,  8428,  8477,  8526,  8575,  8624,  8673, 
-     8722,  1715,  1715,  8771,  8820,  8869,  8918,  1715,  1715,  1715, 
-     8967,  9016,  9065,  9114,  9163,  1715,  4263,  4508
+        0,    55,   110,   165,   220,   275,   330,   385,   440,   495, 
+      550,   605,   660,   715,   770,   825,   880,   935,   990,  1045, 
+     1100,  1155,  1210,  1265,  1320,  1375,  1430,  1485,  1540,  1595, 
+     1650,  1705,  1760,  1815,  1870,  1925,  1980,  1925,  1980,  2035, 
+     1925,  1925,  1980,  2090,  2145,  2200,  2255,  2310,  2365,  2420, 
+     2475,  1925,  1980,  2530,  2585,  2640,  1925,  2695,  2695,  2750, 
+     2805,  2860,  2530,  1925,  2915,  2970,  1925,  3025,  3080,  3135, 
+     3190,  3245,  3300,  1925,  3355,  3410,  3465,  3520,  1925,  3575, 
+     3630,  3685,  3740,  3795,  1925,  3850,  3905,  3960,  4015,  4070, 
+     4125,  4180,  4235,  4235,  4290,  4345,  4400,  4455,  4455,  4510, 
+     4565,  4620,  4675,  4675,  4730,  4785,  4840,  4895,  1925,  4950, 
+     4950,  5005,  5060,  5115,  5170,  1925,  1925,  1980,  1925,  1925, 
+     5225,  5280,  5335,  5390,  5445,  5500,  5555,  5610,  1925,  5665, 
+     5720,  5775,  1925,  1925,  2695,  5830,  2805,  1925,  5885,  2860, 
+     2915,  3025,  3080,  5940,  3135,  1925,  5995,  3190,  1925,  3575, 
+     6050,  3685,  1925,  6105,  3740,  5225,  6160,  6215,  6270,  4015, 
+     1925,  6325,  6380,  4235,  6435,  4290,  1925,  6490,  6545,  6600, 
+     6600,  6655,  6710,  4400,  4235,  4455,  6765,  4510,  1925,  6820, 
+     4565,  4620,  4455,  4675,  6875,  4730,  1925,  6930,  6985,  7040, 
+     7040,  7095,  7150,  7205,  4950,  7260,  5005,  1925,  7315,  7370, 
+     7425,  7425,  7480,  7535,  7590,  7645,  7700,  7755,  7810,  1925, 
+     7865,  7920,  1925,  1925,  1925,  2255,  7975,  8030,  8085,  8140, 
+     8195,  8250,  8305,  6490,  8360,  8360,  6930,  8415,  8415,  8470, 
+     7315,  8525,  8525,  8580,  1925,  8635,  8690,  1925,  8745,  8800, 
+     8855,  8910,  8965,  9020,  9075,  9130,  6655,  7095,  9185,  7480, 
+     9240,  9295,  9350,  9405,  9460,  9515,  9570,  9625,  9680,  9735, 
+     9790,  9845,  9900,  9955, 10010, 10065, 10120,  1925,  1925, 10175, 
+    10230, 10285, 10340, 10395,  1925,  1925,  1925, 10450, 10505, 10560, 
+    10615, 10670, 10725,  1925, 10780,  4840,  5115, 10835, 10890, 10945, 
+    11000,  2255
   };
 
   /** 
    * The packed transition table of the DFA
    */
   final private static String yy_packed = 
-    "\1\40\1\41\10\40\1\42\4\40\1\43\41\40\1\44"+
-    "\1\45\57\44\1\46\1\47\16\46\1\50\1\46\1\51"+
-    "\36\46\1\52\1\53\57\52\1\46\1\47\5\46\1\54"+
-    "\12\46\1\51\37\46\1\47\2\46\1\55\1\56\2\46"+
-    "\1\57\3\46\1\56\5\46\1\56\2\60\2\57\1\46"+
-    "\10\57\1\61\2\57\1\46\5\57\1\46\2\57\1\46"+
-    "\3\57\2\46\1\47\2\46\1\55\1\62\6\46\1\62"+
-    "\5\46\1\62\36\46\1\63\1\64\2\63\1\65\15\63"+
-    "\1\51\36\63\1\46\1\47\2\46\1\66\1\56\2\46"+
-    "\1\67\3\46\1\56\5\46\1\56\4\67\1\46\13\67"+
-    "\1\46\5\67\1\46\2\67\1\46\3\67\2\46\1\47"+
-    "\2\46\1\66\1\56\2\46\1\67\3\46\1\56\5\46"+
-    "\1\56\4\67\1\46\13\67\1\70\5\67\1\46\2\67"+
-    "\1\46\3\67\1\46\1\71\1\47\1\46\1\72\1\73"+
-    "\1\56\3\71\1\74\1\71\1\75\1\56\5\71\1\56"+
-    "\36\71\1\46\1\47\2\46\1\76\15\46\1\51\37\46"+
-    "\1\47\1\77\1\100\1\46\1\56\2\46\1\101\3\46"+
-    "\1\56\5\46\1\56\4\101\1\46\13\101\1\46\5\101"+
-    "\1\46\2\101\1\46\3\101\2\46\1\47\1\77\1\100"+
-    "\1\46\1\56\2\46\1\101\3\46\1\56\5\46\1\56"+
-    "\4\101\1\46\13\101\1\102\5\101\1\46\2\101\1\46"+
-    "\3\101\1\46\1\103\1\47\1\77\1\104\1\103\1\56"+
-    "\3\103\1\105\1\103\1\106\1\56\5\103\1\56\36\103"+
-    "\1\46\1\47\3\46\1\56\6\46\1\56\5\46\1\56"+
-    "\36\46\1\107\1\110\1\111\1\112\4\107\1\113\12\107"+
-    "\4\114\1\107\13\114\1\107\5\114\1\107\2\114\1\107"+
-    "\3\114\1\107\1\46\1\110\1\111\1\112\1\46\1\56"+
-    "\2\46\1\115\3\46\1\56\5\46\1\56\4\115\1\46"+
-    "\13\115\1\46\5\115\1\46\2\115\1\46\3\115\2\46"+
-    "\1\110\1\111\1\112\1\46\1\56\2\46\1\115\3\46"+
-    "\1\56\5\46\1\56\4\115\1\46\13\115\1\116\5\115"+
-    "\1\46\2\115\1\46\3\115\1\46\1\117\1\110\1\111"+
-    "\1\120\1\117\1\56\3\117\1\121\1\117\1\122\1\56"+
-    "\5\117\1\56\36\117\1\46\1\123\1\124\2\46\1\56"+
-    "\6\46\1\56\5\46\1\56\6\46\1\125\1\126\2\46"+
-    "\1\127\11\46\1\126\1\125\11\46\1\47\1\124\2\46"+
-    "\1\56\6\46\1\56\5\46\1\56\4\46\1\130\32\46"+
-    "\1\47\1\124\2\46\1\56\2\46\1\131\3\46\1\56"+
-    "\5\46\1\56\4\131\1\130\13\131\1\46\5\131\1\46"+
-    "\2\131\1\46\3\131\2\46\1\47\1\124\2\46\1\56"+
-    "\6\46\1\56\5\46\1\56\4\46\1\130\7\46\1\132"+
-    "\5\46\1\133\13\46\1\134\1\47\1\124\1\135\1\134"+
-    "\1\56\3\134\1\136\1\134\1\137\1\56\5\134\1\56"+
-    "\4\134\1\140\31\134\1\141\1\47\1\124\1\142\1\141"+
-    "\1\56\3\141\1\143\1\141\1\144\1\56\5\141\1\56"+
-    "\4\141\1\145\31\141\1\146\1\47\1\124\1\147\1\146"+
-    "\1\56\3\146\1\150\1\146\1\151\1\56\5\146\1\56"+
-    "\36\146\1\152\1\153\1\154\56\152\1\155\1\47\1\124"+
-    "\1\156\1\155\1\56\3\155\1\157\1\155\1\160\1\56"+
-    "\5\155\1\56\36\155\1\161\1\162\1\163\56\161\1\164"+
-    "\1\165\57\164\1\40\1\0\10\40\1\0\4\40\1\0"+
-    "\41\40\3\0\1\166\1\167\14\0\1\170\44\0\1\171"+
-    "\2\0\1\172\3\0\1\171\5\0\1\171\4\172\1\0"+
-    "\13\172\1\0\5\172\1\173\2\172\1\0\3\172\6\0"+
-    "\1\171\2\0\1\174\3\0\1\171\5\0\1\171\4\174"+
-    "\1\0\13\174\1\0\5\174\1\0\2\174\1\0\3\174"+
-    "\103\0\1\175\57\0\1\176\47\0\1\177\53\0\1\200"+
-    "\63\0\1\56\6\0\1\56\5\0\1\56\44\0\3\57"+
-    "\4\0\1\57\5\0\4\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57"+
-    "\5\0\2\57\1\201\1\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57"+
-    "\5\0\2\57\1\202\1\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\5\0\1\62\6\0\1\62"+
-    "\5\0\1\62\40\0\1\203\60\0\1\204\64\0\3\67"+
-    "\4\0\1\67\5\0\4\67\1\0\13\67\1\0\5\67"+
-    "\1\0\2\67\1\0\4\67\1\71\2\0\1\205\1\71"+
-    "\1\0\3\71\1\0\1\71\2\0\5\71\1\0\37\71"+
-    "\1\0\1\204\1\205\1\71\1\0\3\71\1\0\1\71"+
-    "\2\0\5\71\1\0\36\71\1\74\1\0\1\206\1\207"+
-    "\1\74\1\206\3\74\1\210\1\74\2\206\5\74\1\206"+
-    "\36\74\1\75\1\0\1\211\1\212\1\75\1\211\3\75"+
-    "\1\211\1\75\1\210\1\211\5\75\1\211\36\75\2\0"+
-    "\1\77\1\213\63\0\3\101\4\0\1\101\5\0\4\101"+
-    "\1\0\13\101\1\0\5\101\1\0\2\101\1\0\4\101"+
-    "\1\103\2\0\1\214\1\103\1\0\3\103\1\0\1\103"+
-    "\2\0\5\103\1\0\37\103\1\0\1\77\1\215\1\103"+
-    "\1\0\3\103\1\0\1\103\2\0\5\103\1\0\36\103"+
-    "\1\105\1\0\1\216\1\217\1\105\1\216\3\105\1\220"+
-    "\1\105\2\216\5\105\1\216\36\105\1\106\1\0\1\221"+
-    "\1\222\1\106\1\221\3\106\1\221\1\106\1\220\1\221"+
-    "\5\106\1\221\36\106\1\107\3\0\17\107\4\0\1\107"+
-    "\13\0\1\107\5\0\1\107\2\0\1\107\3\0\1\107"+
-    "\3\0\1\166\15\0\1\170\41\0\1\223\56\0\1\107"+
-    "\3\0\2\107\3\113\4\107\1\113\5\107\4\114\1\107"+
-    "\13\114\1\107\5\114\1\107\2\114\1\107\3\114\1\113"+
-    "\6\0\3\114\4\0\1\114\5\0\4\114\1\0\13\114"+
-    "\1\0\5\114\1\0\2\114\1\0\4\114\6\0\3\115"+
-    "\4\0\1\115\5\0\4\115\1\0\13\115\1\0\5\115"+
-    "\1\0\2\115\1\0\4\115\1\117\2\0\1\224\1\117"+
-    "\1\0\3\117\1\0\1\117\2\0\5\117\1\0\37\117"+
-    "\1\0\1\223\1\224\1\117\1\0\3\117\1\0\1\117"+
-    "\2\0\5\117\1\0\36\117\1\121\1\0\1\225\1\226"+
-    "\1\121\1\225\3\121\1\227\1\121\2\225\5\121\1\225"+
-    "\36\121\1\122\1\0\1\230\1\231\1\122\1\230\3\122"+
-    "\1\230\1\122\1\227\1\230\5\122\1\230\36\122\3\0"+
-    "\1\166\15\0\1\232\100\0\1\233\52\0\1\234\12\0"+
-    "\1\234\40\0\1\235\32\0\20\236\1\237\40\236\6\0"+
-    "\3\131\4\0\1\131\5\0\4\131\1\0\13\131\1\0"+
-    "\5\131\1\0\2\131\1\0\4\131\44\0\1\240\67\0"+
-    "\1\241\5\0\1\134\2\0\1\242\1\134\1\0\3\134"+
-    "\1\0\1\134\2\0\5\134\1\0\36\134\1\136\1\0"+
-    "\1\243\1\244\1\136\1\243\3\136\1\245\1\136\2\243"+
-    "\5\136\1\243\36\136\1\246\1\0\1\247\1\250\1\251"+
-    "\1\247\3\251\1\247\1\246\1\252\1\253\3\251\1\246"+
-    "\1\251\1\253\4\251\1\246\27\251\2\246\1\140\2\236"+
-    "\1\254\1\140\1\236\3\140\1\236\1\140\2\236\3\140"+
-    "\1\255\1\140\1\236\36\140\1\141\2\0\1\256\1\141"+
-    "\1\0\3\141\1\0\1\141\2\0\5\141\1\0\36\141"+
-    "\1\143\2\257\1\260\1\143\1\257\3\143\1\261\1\143"+
-    "\2\257\5\143\1\257\36\143\1\144\2\262\1\263\1\144"+
-    "\1\262\3\144\1\262\1\144\1\261\1\262\5\144\1\262"+
-    "\36\144\1\145\2\236\1\264\1\145\1\236\3\145\1\236"+
-    "\1\145\2\236\3\145\1\265\1\145\1\236\36\145\1\146"+
-    "\2\0\1\266\1\146\1\0\3\146\1\0\1\146\2\0"+
-    "\5\146\1\0\36\146\1\150\1\0\1\267\1\270\1\150"+
-    "\1\267\3\150\1\271\1\150\2\267\5\150\1\267\36\150"+
-    "\1\272\1\0\1\273\1\274\1\275\1\273\3\275\1\273"+
-    "\1\272\1\276\1\277\3\275\1\272\1\275\1\277\4\275"+
-    "\1\272\27\275\2\272\2\152\1\0\60\152\1\0\16\152"+
-    "\1\300\37\152\1\155\2\0\1\301\1\155\1\0\3\155"+
-    "\1\0\1\155\2\0\5\155\1\0\36\155\1\157\1\0"+
-    "\1\302\1\303\1\157\1\302\3\157\1\304\1\157\2\302"+
-    "\5\157\1\302\36\157\1\305\1\0\1\306\1\307\1\310"+
-    "\1\306\3\310\1\306\1\305\1\311\1\312\3\310\1\305"+
-    "\1\310\1\312\4\310\1\305\27\310\2\305\2\161\1\0"+
-    "\60\161\1\0\16\161\1\313\37\161\7\0\1\314\17\0"+
-    "\1\315\36\0\1\171\2\0\1\40\3\0\1\171\5\0"+
-    "\1\171\4\40\1\0\13\40\1\0\5\40\1\0\2\40"+
-    "\1\0\3\40\1\0\1\316\1\0\3\316\1\317\3\172"+
-    "\1\316\1\0\1\316\1\317\1\172\1\316\1\0\2\316"+
-    "\1\317\4\172\1\316\13\172\1\316\5\172\1\316\2\172"+
-    "\1\320\4\172\15\0\1\321\6\0\1\322\34\0\1\316"+
-    "\1\0\3\316\1\317\3\174\1\316\1\0\1\316\1\317"+
-    "\1\174\1\316\1\0\2\316\1\317\4\174\1\316\13\174"+
-    "\1\316\5\174\1\316\2\174\1\323\4\174\27\0\1\315"+
-    "\33\0\1\324\60\0\1\325\64\0\3\57\4\0\1\57"+
-    "\5\0\3\57\1\326\1\0\13\57\1\0\5\57\1\0"+
-    "\2\57\1\0\4\57\6\0\3\57\4\0\1\57\5\0"+
-    "\4\57\1\0\13\57\1\0\1\57\1\327\3\57\1\0"+
-    "\2\57\1\0\4\57\1\206\1\0\7\206\1\210\47\206"+
-    "\1\211\1\0\11\211\1\210\45\211\1\216\1\0\7\216"+
-    "\1\220\47\216\1\221\1\0\11\221\1\220\45\221\1\225"+
-    "\1\0\7\225\1\227\47\225\1\230\1\0\11\230\1\227"+
-    "\45\230\30\0\1\330\25\0\1\330\35\0\1\331\12\0"+
-    "\1\331\47\0\1\332\62\0\1\333\76\0\1\334\3\0"+
-    "\1\243\1\0\7\243\1\245\47\243\1\246\1\0\1\247"+
-    "\1\335\1\246\1\247\3\246\1\247\1\246\1\245\1\247"+
-    "\5\246\1\247\36\246\1\247\1\0\11\247\1\245\45\247"+
-    "\1\246\1\0\1\247\1\335\1\246\1\247\3\246\1\247"+
-    "\1\246\1\336\1\247\5\246\1\247\36\246\13\0\1\337"+
-    "\45\0\1\247\1\0\11\247\1\336\45\247\11\257\1\261"+
-    "\47\257\13\262\1\261\45\262\1\267\1\0\7\267\1\271"+
-    "\47\267\1\272\1\0\1\273\1\340\1\272\1\273\3\272"+
-    "\1\273\1\272\1\271\1\273\5\272\1\273\36\272\1\273"+
-    "\1\0\11\273\1\271\45\273\1\272\1\0\1\273\1\340"+
-    "\1\272\1\273\3\272\1\273\1\272\1\341\1\273\5\272"+
-    "\1\273\36\272\13\0\1\342\45\0\1\273\1\0\11\273"+
-    "\1\341\45\273\2\152\1\0\24\152\1\343\31\152\1\302"+
-    "\1\0\7\302\1\304\47\302\1\305\1\0\1\306\1\344"+
-    "\1\305\1\306\3\305\1\306\1\305\1\304\1\306\5\305"+
-    "\1\306\36\305\1\306\1\0\11\306\1\304\45\306\1\305"+
-    "\1\0\1\306\1\344\1\305\1\306\3\305\1\306\1\305"+
-    "\1\345\1\306\5\305\1\306\36\305\13\0\1\346\45\0"+
-    "\1\306\1\0\11\306\1\345\45\306\2\161\1\0\24\161"+
-    "\1\347\31\161\7\0\1\350\101\0\1\351\30\0\1\316"+
-    "\1\0\10\316\1\0\4\316\1\0\34\316\1\0\5\316"+
-    "\1\0\3\316\1\317\4\316\1\0\1\316\1\317\2\316"+
-    "\1\0\2\316\1\317\31\316\1\352\4\316\15\0\1\321"+
-    "\36\0\1\353\21\0\1\354\12\0\3\354\2\0\1\354"+
-    "\11\0\2\354\1\0\1\354\2\0\2\354\10\0\3\57"+
-    "\4\0\1\57\5\0\4\57\1\0\11\57\1\355\1\57"+
-    "\1\0\5\57\1\0\2\57\1\0\4\57\33\0\1\356"+
-    "\12\0\1\356\40\0\1\357\57\0\1\360\66\0\1\361"+
-    "\12\0\1\361\40\0\1\362\35\0\2\363\1\0\3\363"+
-    "\2\0\1\252\4\363\1\0\6\363\1\0\27\363\5\0"+
-    "\2\364\1\0\3\364\2\0\1\276\4\364\1\0\6\364"+
-    "\1\0\27\364\2\0\2\152\1\0\25\152\1\365\30\152"+
-    "\3\0\2\366\1\0\3\366\2\0\1\311\4\366\1\0"+
-    "\6\366\1\0\27\366\2\0\2\161\1\0\25\161\1\367"+
-    "\30\161\31\0\1\370\103\0\1\352\21\0\1\354\12\0"+
-    "\3\354\2\0\1\354\11\0\2\354\1\0\1\354\1\0"+
-    "\1\353\2\354\10\0\3\57\4\0\1\57\5\0\4\57"+
-    "\1\0\6\57\1\371\4\57\1\0\5\57\1\0\2\57"+
-    "\1\0\4\57\44\0\1\372\54\0\1\373\55\0\1\374"+
-    "\60\0\1\375\63\0\1\376\20\0\2\152\1\0\26\152"+
-    "\1\377\27\152\2\161\1\0\26\161\1\u0100\27\161\32\0"+
-    "\1\u0101\34\0\3\57\4\0\1\57\5\0\4\57\1\0"+
-    "\3\57\1\u0102\7\57\1\0\2\57\1\u0102\2\57\1\0"+
-    "\2\57\1\0\4\57\45\0\1\u0103\52\0\1\u0104\63\0"+
-    "\1\u0105\43\0\1\u0106\63\0\1\u0107\25\0\1\u0107\2\0"+
-    "\2\152\1\0\27\152\1\u0108\26\152\2\161\1\0\27\161"+
-    "\1\u0109\26\161\33\0\1\u010a\32\0\1\u010b\3\57\3\0"+
-    "\1\u010b\1\57\4\0\1\u010b\4\57\1\0\13\57\1\0"+
-    "\5\57\1\0\2\57\1\0\4\57\35\0\1\u010c\56\0"+
-    "\1\u010d\12\0\1\u010d\45\0\1\u010e\12\0\1\u010e\12\0"+
-    "\2\152\1\0\30\152\1\u010f\25\152\2\161\1\0\30\161"+
-    "\1\u0110\25\161\32\0\1\u0111\33\0\1\u010b\6\0\1\u010b"+
-    "\5\0\1\u010b\36\0\2\152\1\0\27\152\1\u0112\26\152"+
-    "\2\161\1\0\27\161\1\u0113\26\161\27\0\1\u0114\31\0"+
-    "\2\152\1\0\24\152\1\u0115\31\152\2\161\1\0\24\161"+
-    "\1\u0116\31\161";
+    "\1\40\1\41\10\40\1\42\4\40\1\43\47\40\1\44"+
+    "\1\45\65\44\1\46\1\47\16\46\1\50\1\46\1\51"+
+    "\44\46\1\52\1\53\65\52\1\46\1\47\5\46\1\54"+
+    "\12\46\1\51\45\46\1\47\2\46\1\55\1\56\2\46"+
+    "\1\57\3\46\1\56\5\46\1\56\1\60\1\61\4\57"+
+    "\1\46\10\57\1\62\2\57\1\46\7\57\1\46\3\57"+
+    "\1\46\3\57\1\46\1\57\1\46\1\47\2\46\1\55"+
+    "\1\63\6\46\1\63\5\46\1\63\44\46\1\64\1\65"+
+    "\2\64\1\66\15\64\1\51\44\64\1\46\1\47\2\46"+
+    "\1\67\1\56\2\46\1\70\3\46\1\56\5\46\1\56"+
+    "\6\70\1\46\13\70\1\46\7\70\1\46\3\70\1\46"+
+    "\3\70\1\46\1\70\1\46\1\47\2\46\1\67\1\56"+
+    "\2\46\1\70\3\46\1\56\5\46\1\56\6\70\1\46"+
+    "\13\70\1\71\7\70\1\46\3\70\1\46\3\70\1\46"+
+    "\1\70\1\72\1\47\1\46\1\73\1\74\1\56\3\72"+
+    "\1\75\1\72\1\76\1\56\5\72\1\56\44\72\1\46"+
+    "\1\47\2\46\1\77\15\46\1\51\45\46\1\47\1\100"+
+    "\1\101\1\46\1\56\2\46\1\102\3\46\1\56\5\46"+
+    "\1\56\6\102\1\46\13\102\1\46\7\102\1\46\3\102"+
+    "\1\46\3\102\1\46\1\102\1\46\1\47\1\100\1\101"+
+    "\1\46\1\56\2\46\1\102\3\46\1\56\5\46\1\56"+
+    "\6\102\1\46\13\102\1\103\7\102\1\46\3\102\1\46"+
+    "\3\102\1\46\1\102\1\104\1\47\1\100\1\105\1\104"+
+    "\1\56\3\104\1\106\1\104\1\107\1\56\5\104\1\56"+
+    "\44\104\1\46\1\47\3\46\1\56\6\46\1\56\5\46"+
+    "\1\56\44\46\1\110\1\111\1\112\1\113\4\110\1\114"+
+    "\12\110\6\115\1\110\13\115\1\110\7\115\1\110\3\115"+
+    "\1\110\3\115\1\110\1\115\1\46\1\111\1\112\1\113"+
+    "\1\46\1\56\2\46\1\116\3\46\1\56\5\46\1\56"+
+    "\6\116\1\46\13\116\1\46\7\116\1\46\3\116\1\46"+
+    "\3\116\1\46\1\116\1\46\1\111\1\112\1\113\1\46"+
+    "\1\56\2\46\1\116\3\46\1\56\5\46\1\56\6\116"+
+    "\1\46\13\116\1\117\7\116\1\46\3\116\1\46\3\116"+
+    "\1\46\1\116\1\120\1\111\1\112\1\121\1\120\1\56"+
+    "\3\120\1\122\1\120\1\123\1\56\5\120\1\56\44\120"+
+    "\1\46\1\124\1\125\2\46\1\56\6\46\1\56\5\46"+
+    "\1\56\10\46\1\126\1\127\2\46\1\130\10\46\1\130"+
+    "\1\46\1\127\1\126\14\46\1\47\1\125\2\46\1\56"+
+    "\6\46\1\56\5\46\1\56\6\46\1\131\36\46\1\47"+
+    "\1\125\2\46\1\56\2\46\1\132\3\46\1\56\5\46"+
+    "\1\56\6\132\1\131\13\132\1\46\7\132\1\46\3\132"+
+    "\1\46\3\132\1\46\1\132\1\46\1\47\1\125\2\46"+
+    "\1\56\6\46\1\56\5\46\1\56\6\46\1\131\7\46"+
+    "\1\133\5\46\1\134\6\46\1\133\10\46\1\135\1\47"+
+    "\1\125\1\136\1\135\1\56\3\135\1\137\1\135\1\140"+
+    "\1\56\5\135\1\56\6\135\1\141\35\135\1\142\1\47"+
+    "\1\125\1\143\1\142\1\56\3\142\1\144\1\142\1\145"+
+    "\1\56\5\142\1\56\6\142\1\146\35\142\1\147\1\47"+
+    "\1\125\1\150\1\147\1\56\3\147\1\151\1\147\1\152"+
+    "\1\56\5\147\1\56\44\147\1\153\1\154\1\155\64\153"+
+    "\1\156\1\47\1\125\1\157\1\156\1\56\3\156\1\160"+
+    "\1\156\1\161\1\56\5\156\1\56\44\156\1\162\1\163"+
+    "\1\164\64\162\1\165\1\166\65\165\1\40\1\0\10\40"+
+    "\1\0\4\40\1\0\47\40\3\0\1\167\1\170\14\0"+
+    "\1\171\52\0\1\172\2\0\1\173\3\0\1\172\5\0"+
+    "\1\172\6\173\1\0\13\173\1\0\7\173\1\174\3\173"+
+    "\1\0\3\173\1\0\1\173\5\0\1\172\2\0\1\175"+
+    "\3\0\1\172\5\0\1\172\6\175\1\0\13\175\1\0"+
+    "\7\175\1\0\3\175\1\0\3\175\1\0\1\175\110\0"+
+    "\1\176\65\0\1\177\55\0\1\200\61\0\1\201\71\0"+
+    "\1\56\6\0\1\56\5\0\1\56\52\0\3\57\4\0"+
+    "\1\57\5\0\6\57\1\0\13\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\2\57\2\202\2\57\1\0\13\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\2\57\1\202\1\203\2\57\1\0\13\57\1\0\7\57"+
+    "\1\0\3\57\1\0\5\57\6\0\3\57\4\0\1\57"+
+    "\5\0\2\57\2\204\2\57\1\0\13\57\1\0\7\57"+
+    "\1\0\3\57\1\0\5\57\5\0\1\63\6\0\1\63"+
+    "\5\0\1\63\46\0\1\205\66\0\1\206\72\0\3\70"+
+    "\4\0\1\70\5\0\6\70\1\0\13\70\1\0\7\70"+
+    "\1\0\3\70\1\0\5\70\1\72\2\0\1\207\1\72"+
+    "\1\0\3\72\1\0\1\72\2\0\5\72\1\0\45\72"+
+    "\1\0\1\206\1\207\1\72\1\0\3\72\1\0\1\72"+
+    "\2\0\5\72\1\0\44\72\1\75\1\0\1\210\1\211"+
+    "\1\75\1\210\3\75\1\212\1\75\2\210\5\75\1\210"+
+    "\44\75\1\76\1\0\1\213\1\214\1\76\1\213\3\76"+
+    "\1\213\1\76\1\212\1\213\5\76\1\213\44\76\2\0"+
+    "\1\100\1\215\71\0\3\102\4\0\1\102\5\0\6\102"+
+    "\1\0\13\102\1\0\7\102\1\0\3\102\1\0\5\102"+
+    "\1\104\2\0\1\216\1\104\1\0\3\104\1\0\1\104"+
+    "\2\0\5\104\1\0\45\104\1\0\1\100\1\217\1\104"+
+    "\1\0\3\104\1\0\1\104\2\0\5\104\1\0\44\104"+
+    "\1\106\1\0\1\220\1\221\1\106\1\220\3\106\1\222"+
+    "\1\106\2\220\5\106\1\220\44\106\1\107\1\0\1\223"+
+    "\1\224\1\107\1\223\3\107\1\223\1\107\1\222\1\223"+
+    "\5\107\1\223\44\107\1\110\3\0\17\110\6\0\1\110"+
+    "\13\0\1\110\7\0\1\110\3\0\1\110\3\0\1\110"+
+    "\4\0\1\167\15\0\1\171\47\0\1\225\64\0\1\110"+
+    "\3\0\2\110\3\114\4\110\1\114\5\110\6\115\1\110"+
+    "\13\115\1\110\7\115\1\110\3\115\1\110\3\115\1\114"+
+    "\1\115\6\0\3\115\4\0\1\115\5\0\6\115\1\0"+
+    "\13\115\1\0\7\115\1\0\3\115\1\0\5\115\6\0"+
+    "\3\116\4\0\1\116\5\0\6\116\1\0\13\116\1\0"+
+    "\7\116\1\0\3\116\1\0\5\116\1\120\2\0\1\226"+
+    "\1\120\1\0\3\120\1\0\1\120\2\0\5\120\1\0"+
+    "\45\120\1\0\1\225\1\226\1\120\1\0\3\120\1\0"+
+    "\1\120\2\0\5\120\1\0\44\120\1\122\1\0\1\227"+
+    "\1\230\1\122\1\227\3\122\1\231\1\122\2\227\5\122"+
+    "\1\227\44\122\1\123\1\0\1\232\1\233\1\123\1\232"+
+    "\3\123\1\232\1\123\1\231\1\232\5\123\1\232\44\123"+
+    "\3\0\1\167\15\0\1\234\110\0\1\235\60\0\1\236"+
+    "\13\0\1\236\44\0\2\237\36\0\20\240\1\241\46\240"+
+    "\6\0\3\132\4\0\1\132\5\0\6\132\1\0\13\132"+
+    "\1\0\7\132\1\0\3\132\1\0\5\132\46\0\1\242"+
+    "\5\0\1\242\72\0\1\243\6\0\1\135\2\0\1\244"+
+    "\1\135\1\0\3\135\1\0\1\135\2\0\5\135\1\0"+
+    "\44\135\1\137\1\0\1\245\1\246\1\137\1\245\3\137"+
+    "\1\247\1\137\2\245\5\137\1\245\44\137\1\250\1\0"+
+    "\1\251\1\252\1\253\1\251\3\253\1\251\1\250\1\254"+
+    "\1\255\3\253\1\250\1\253\1\255\6\253\1\250\32\253"+
+    "\2\250\1\253\1\141\2\240\1\256\1\141\1\240\3\141"+
+    "\1\240\1\141\2\240\3\141\1\257\1\141\1\240\44\141"+
+    "\1\142\2\0\1\260\1\142\1\0\3\142\1\0\1\142"+
+    "\2\0\5\142\1\0\44\142\1\144\2\261\1\262\1\144"+
+    "\1\261\3\144\1\263\1\144\2\261\5\144\1\261\44\144"+
+    "\1\145\2\264\1\265\1\145\1\264\3\145\1\264\1\145"+
+    "\1\263\1\264\5\145\1\264\44\145\1\146\2\240\1\266"+
+    "\1\146\1\240\3\146\1\240\1\146\2\240\3\146\1\267"+
+    "\1\146\1\240\44\146\1\147\2\0\1\270\1\147\1\0"+
+    "\3\147\1\0\1\147\2\0\5\147\1\0\44\147\1\151"+
+    "\1\0\1\271\1\272\1\151\1\271\3\151\1\273\1\151"+
+    "\2\271\5\151\1\271\44\151\1\274\1\0\1\275\1\276"+
+    "\1\277\1\275\3\277\1\275\1\274\1\300\1\301\3\277"+
+    "\1\274\1\277\1\301\6\277\1\274\32\277\2\274\1\277"+
+    "\2\153\1\0\66\153\1\0\16\153\1\302\45\153\1\156"+
+    "\2\0\1\303\1\156\1\0\3\156\1\0\1\156\2\0"+
+    "\5\156\1\0\44\156\1\160\1\0\1\304\1\305\1\160"+
+    "\1\304\3\160\1\306\1\160\2\304\5\160\1\304\44\160"+
+    "\1\307\1\0\1\310\1\311\1\312\1\310\3\312\1\310"+
+    "\1\307\1\313\1\314\3\312\1\307\1\312\1\314\6\312"+
+    "\1\307\32\312\2\307\1\312\2\162\1\0\66\162\1\0"+
+    "\16\162\1\315\45\162\7\0\1\316\21\0\1\317\42\0"+
+    "\1\172\2\0\1\40\3\0\1\172\5\0\1\172\6\40"+
+    "\1\0\13\40\1\0\7\40\1\0\3\40\1\0\3\40"+
+    "\1\0\1\40\1\320\1\0\3\320\1\321\3\173\1\320"+
+    "\1\0\1\320\1\321\1\173\1\320\1\0\2\320\1\321"+
+    "\6\173\1\320\13\173\1\320\7\173\1\320\3\173\1\322"+
+    "\5\173\15\0\1\323\6\0\1\324\42\0\1\320\1\0"+
+    "\3\320\1\321\3\175\1\320\1\0\1\320\1\321\1\175"+
+    "\1\320\1\0\2\320\1\321\6\175\1\320\13\175\1\320"+
+    "\7\175\1\320\3\175\1\325\5\175\31\0\1\317\37\0"+
+    "\1\326\66\0\1\327\72\0\3\57\4\0\1\57\5\0"+
+    "\4\57\2\330\1\0\13\57\1\0\7\57\1\0\3\57"+
+    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\4\57"+
+    "\1\330\1\331\1\0\13\57\1\0\7\57\1\0\3\57"+
+    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\6\57"+
+    "\1\0\13\57\1\0\1\57\1\332\5\57\1\0\3\57"+
+    "\1\0\5\57\1\210\1\0\7\210\1\212\55\210\1\213"+
+    "\1\0\11\213\1\212\53\213\1\220\1\0\7\220\1\222"+
+    "\55\220\1\223\1\0\11\223\1\222\53\223\1\227\1\0"+
+    "\7\227\1\231\55\227\1\232\1\0\11\232\1\231\53\232"+
+    "\32\0\1\333\30\0\1\333\40\0\1\334\13\0\1\334"+
+    "\54\0\1\335\10\0\1\335\57\0\1\336\14\0\1\336"+
+    "\72\0\1\337\4\0\1\245\1\0\7\245\1\247\55\245"+
+    "\1\250\1\0\1\251\1\340\1\250\1\251\3\250\1\251"+
+    "\1\250\1\247\1\251\5\250\1\251\44\250\1\251\1\0"+
+    "\11\251\1\247\53\251\1\250\1\0\1\251\1\340\1\250"+
+    "\1\251\3\250\1\251\1\250\1\341\1\251\5\250\1\251"+
+    "\44\250\13\0\1\342\53\0\1\251\1\0\11\251\1\341"+
+    "\53\251\11\261\1\263\55\261\13\264\1\263\53\264\1\271"+
+    "\1\0\7\271\1\273\55\271\1\274\1\0\1\275\1\343"+
+    "\1\274\1\275\3\274\1\275\1\274\1\273\1\275\5\274"+
+    "\1\275\44\274\1\275\1\0\11\275\1\273\53\275\1\274"+
+    "\1\0\1\275\1\343\1\274\1\275\3\274\1\275\1\274"+
+    "\1\344\1\275\5\274\1\275\44\274\13\0\1\345\53\0"+
+    "\1\275\1\0\11\275\1\344\53\275\2\153\1\0\26\153"+
+    "\1\346\35\153\1\304\1\0\7\304\1\306\55\304\1\307"+
+    "\1\0\1\310\1\347\1\307\1\310\3\307\1\310\1\307"+
+    "\1\306\1\310\5\307\1\310\44\307\1\310\1\0\11\310"+
+    "\1\306\53\310\1\307\1\0\1\310\1\347\1\307\1\310"+
+    "\3\307\1\310\1\307\1\350\1\310\5\307\1\310\44\307"+
+    "\13\0\1\351\53\0\1\310\1\0\11\310\1\350\53\310"+
+    "\2\162\1\0\26\162\1\352\35\162\7\0\1\353\111\0"+
+    "\1\354\34\0\1\320\1\0\10\320\1\0\4\320\1\0"+
+    "\41\320\1\0\6\320\1\0\3\320\1\321\4\320\1\0"+
+    "\1\320\1\321\2\320\1\0\2\320\1\321\36\320\1\355"+
+    "\5\320\15\0\1\323\43\0\1\356\22\0\1\357\14\0"+
+    "\3\357\2\0\1\357\10\0\1\357\1\0\2\357\3\0"+
+    "\1\357\2\0\2\357\11\0\1\57\1\360\1\57\4\0"+
+    "\1\57\5\0\6\57\1\0\13\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\6\57\1\0\11\57\1\361\1\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\35\0\1\362\13\0\1\362\44\0"+
+    "\2\363\63\0\2\364\75\0\1\365\13\0\1\365\44\0"+
+    "\2\366\41\0\2\367\1\0\3\367\2\0\1\254\4\367"+
+    "\1\0\10\367\1\0\32\367\2\0\1\367\3\0\2\370"+
+    "\1\0\3\370\2\0\1\300\4\370\1\0\10\370\1\0"+
+    "\32\370\2\0\1\370\2\153\1\0\27\153\1\371\34\153"+
+    "\3\0\2\372\1\0\3\372\2\0\1\313\4\372\1\0"+
+    "\10\372\1\0\32\372\2\0\1\372\2\162\1\0\27\162"+
+    "\1\373\34\162\33\0\1\374\114\0\1\355\22\0\1\357"+
+    "\14\0\3\357\2\0\1\357\10\0\1\357\1\0\2\357"+
+    "\3\0\1\357\1\0\1\356\2\357\11\0\3\57\4\0"+
+    "\1\57\5\0\6\57\1\0\7\57\1\375\3\57\1\0"+
+    "\7\57\1\0\3\57\1\0\5\57\6\0\3\57\4\0"+
+    "\1\57\5\0\6\57\1\0\6\57\1\376\4\57\1\0"+
+    "\7\57\1\0\3\57\1\0\5\57\46\0\1\377\5\0"+
+    "\1\377\54\0\1\u0100\63\0\1\u0101\10\0\1\u0101\55\0"+
+    "\1\u0102\10\0\1\u0102\60\0\1\u0103\24\0\2\153\1\0"+
+    "\30\153\1\u0104\33\153\2\162\1\0\30\162\1\u0105\33\162"+
+    "\34\0\1\u0106\40\0\3\57\4\0\1\57\5\0\6\57"+
+    "\1\0\13\57\1\0\3\57\1\u0107\3\57\1\0\3\57"+
+    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\6\57"+
+    "\1\0\3\57\1\u0108\7\57\1\0\3\57\1\u0108\3\57"+
+    "\1\0\3\57\1\0\5\57\47\0\1\u0109\60\0\1\u010a"+
+    "\14\0\1\u010a\54\0\1\u010b\47\0\2\u010c\72\0\1\u010d"+
+    "\30\0\1\u010d\3\0\2\153\1\0\31\153\1\u010e\32\153"+
+    "\2\162\1\0\31\162\1\u010f\32\162\35\0\1\u0110\37\0"+
+    "\3\57\4\0\1\57\5\0\6\57\1\0\13\57\1\0"+
+    "\6\57\1\u0111\1\0\3\57\1\0\5\57\5\0\1\u0112"+
+    "\3\57\3\0\1\u0112\1\57\4\0\1\u0112\6\57\1\0"+
+    "\13\57\1\0\7\57\1\0\3\57\1\0\5\57\37\0"+
+    "\1\u0113\10\0\1\u0113\53\0\1\u0114\13\0\1\u0114\52\0"+
+    "\1\u0115\13\0\1\u0115\15\0\2\153\1\0\32\153\1\u0116"+
+    "\31\153\2\162\1\0\32\162\1\u0117\31\162\34\0\1\u0118"+
+    "\40\0\3\57\4\0\1\57\5\0\5\57\1\u0119\1\0"+
+    "\13\57\1\0\7\57\1\0\3\57\1\0\5\57\5\0"+
+    "\1\u0112\6\0\1\u0112\5\0\1\u0112\44\0\2\153\1\0"+
+    "\31\153\1\u011a\32\153\2\162\1\0\31\162\1\u011b\32\162"+
+    "\31\0\1\u011c\43\0\3\57\4\0\1\57\5\0\6\57"+
+    "\1\0\5\57\1\u011d\5\57\1\0\7\57\1\0\3\57"+
+    "\1\0\5\57\2\153\1\0\26\153\1\u011e\35\153\2\162"+
+    "\1\0\26\162\1\u011f\35\162\6\0\3\57\4\0\1\57"+
+    "\5\0\6\57\1\0\7\57\1\u0120\3\57\1\0\7\57"+
+    "\1\0\3\57\1\0\5\57\6\0\3\57\4\0\1\57"+
+    "\5\0\6\57\1\0\13\57\1\0\7\57\1\0\3\57"+
+    "\1\0\4\57\1\u0121\6\0\3\57\4\0\1\57\5\0"+
+    "\6\57\1\0\5\57\1\u0122\5\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\6\57\1\0\5\57\1\u0123\5\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\6\57\1\0\13\57\1\0\3\57\1\u0124\3\57\1\0"+
+    "\3\57\1\0\5\57";
 
   /** 
    * The transition table of the DFA
@@ -420,21 +454,22 @@
      1,  0,  0,  0,  0,  1,  0,  0,  1,  1,  1,  0,  1,  1,  1,  1, 
      1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1, 
      1,  1,  1,  9,  1,  9,  1,  1,  9,  9,  1,  1,  1,  1,  1,  1, 
-     1,  1,  9,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1, 
-     1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  9,  1,  1, 
-     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1, 
-     1,  1,  9,  9,  1,  9,  9,  1,  0,  1,  0,  1,  0,  0,  0,  9, 
-     1,  1,  9,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  9, 
-     0,  0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  9,  0, 
-     0,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  0,  1,  0,  0,  0, 
-     9,  0,  0,  0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1, 
-     0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1,  0,  0,  1,  1,  9, 
-     0,  0,  9,  9,  9,  1,  1,  0,  0,  0,  0,  0,  0,  1,  0,  0, 
-     1,  0,  1,  0,  1,  0,  1,  9,  0,  1,  9,  0,  1,  0,  0,  0, 
-     0,  0,  0,  0,  1,  0,  1,  0,  1,  0,  0,  0,  0,  0,  1,  1, 
-     0,  1,  0,  0,  0,  9,  9,  1,  1,  0,  1,  9,  9,  9,  1,  1, 
-     0,  1,  1,  9,  1,  1
+     1,  1,  1,  9,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9, 
+     1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  9,  1, 
+     1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1, 
+     1,  1,  1,  9,  9,  1,  9,  9,  1,  0,  1,  0,  1,  0,  0,  0, 
+     9,  1,  1,  1,  9,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0, 
+     0,  9,  0,  0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0, 
+     9,  0,  0,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  0,  1,  0, 
+     0,  0,  9,  0,  0,  0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1, 
+     0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1,  0,  0,  1, 
+     1,  9,  0,  0,  9,  9,  9,  1,  1,  1,  0,  0,  0,  0,  0,  0, 
+     1,  0,  0,  1,  0,  1,  0,  1,  0,  1,  9,  0,  1,  9,  0,  1, 
+     1,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  1,  1,  0,  0, 
+     0,  0,  0,  1,  1,  0,  1,  1,  0,  0,  0,  9,  9,  1,  1,  0, 
+     1,  1,  9,  9,  9,  1,  1,  0,  1,  1,  1,  9,  1,  1,  1,  1, 
+     1,  1,  1,  1
   };
 
   /** the input device */
@@ -967,10 +1002,10 @@
    * @return         the unpacked transition table
    */
   private static int [] yy_unpack(String packed) {
-    int [] trans = new int[9212];
+    int [] trans = new int[11055];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 3220) {
+    while (i < 3734) {
       int count = packed.charAt(i++);
       int value = packed.charAt(i++);
       value--;
@@ -1293,9 +1328,17 @@
 
       switch (yy_action) {    
 
-        case 275: 
-        case 276: 
-        case 277: 
+        case 291: 
+          { 
+	if(Debug.debugTokenizer)
+		dump("XSL processing instruction target");//$NON-NLS-1$
+        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
+        return XML_TAG_NAME;
+ }
+        case 293: break;
+        case 283: 
+        case 285: 
+        case 286: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nCDATA start");//$NON-NLS-1$
@@ -1303,148 +1346,149 @@
 	yybegin(ST_CDATA_TEXT);
 	return XML_CDATA_OPEN;
  }
-        case 279: break;
-        case 269: 
+        case 294: break;
+        case 276: 
           { 
 	if(Debug.debugTokenizer)
 		dump("element");//$NON-NLS-1$
 	yybegin(ST_XML_ELEMENT_DECLARATION);
 	return XML_ELEMENT_DECLARATION;
  }
-        case 280: break;
-        case 268: 
+        case 295: break;
+        case 275: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist");//$NON-NLS-1$
 	yybegin(ST_XML_ATTLIST_DECLARATION);
 	return XML_ATTLIST_DECLARATION;
  }
-        case 281: break;
-        case 267: 
+        case 296: break;
+        case 274: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_DECLARATION);
 	return XML_DOCTYPE_DECLARATION;
  }
-        case 282: break;
-        case 262: 
+        case 297: break;
+        case 268: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype external id");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
 	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
  }
-        case 283: break;
-        case 261: 
+        case 298: break;
+        case 267: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype external id");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
 	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
  }
-        case 284: break;
-        case 257: 
-        case 266: 
+        case 299: break;
+        case 263: 
+        case 273: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction target");//$NON-NLS-1$
         yybegin(ST_DHTML_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 285: break;
-        case 234: 
+        case 300: break;
+        case 237: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nCharRef");//$NON-NLS-1$
 	return XML_CHAR_REFERENCE;
  }
-        case 286: break;
-        case 231: 
+        case 301: break;
+        case 234: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\ncomment start");//$NON-NLS-1$
 	yybegin(ST_XML_COMMENT);
 	return XML_COMMENT_OPEN;
  }
-        case 287: break;
-        case 213: 
+        case 302: break;
+        case 215: 
+        case 216: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction target");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 288: break;
-        case 212: 
+        case 303: break;
+        case 214: 
           { 
 	if(Debug.debugTokenizer)
 		dump("comment end");//$NON-NLS-1$
 	yybegin(YYINITIAL);
 	return XML_COMMENT_CLOSE;
  }
-        case 289: break;
-        case 211: 
+        case 304: break;
+        case 213: 
           { 
 	if(Debug.debugTokenizer)
 		dump("CDATA end");//$NON-NLS-1$
 	yybegin(fStateStack.pop());
 	return XML_CDATA_CLOSE;
  }
-        case 290: break;
-        case 210: 
+        case 305: break;
+        case 212: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nPEReference");//$NON-NLS-1$
 	return XML_PE_REFERENCE;
  }
-        case 291: break;
-        case 207: 
+        case 306: break;
+        case 209: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nEntityRef");//$NON-NLS-1$
 	return XML_ENTITY_REFERENCE;
  }
-        case 292: break;
-        case 158: 
-        case 172: 
-        case 180: 
+        case 307: break;
+        case 160: 
+        case 174: 
+        case 182: 
           { 
 	return XML_DOCTYPE_INTERNAL_SUBSET;
  }
-        case 293: break;
-        case 146: 
+        case 308: break;
+        case 148: 
           { 
         yybegin(YYINITIAL);
 	if(Debug.debugTokenizer)
 		dump("empty tag close");//$NON-NLS-1$
         return XML_EMPTY_TAG_CLOSE;
  }
-        case 294: break;
-        case 131: 
+        case 309: break;
+        case 133: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction end");//$NON-NLS-1$
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 295: break;
-        case 130: 
+        case 310: break;
+        case 132: 
           { 
 		// ended with nothing inside
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 296: break;
-        case 127: 
+        case 311: break;
+        case 128: 
           { 
 	if(Debug.debugTokenizer)
 		dump("processing instruction end");//$NON-NLS-1$
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 297: break;
-        case 119: 
+        case 312: break;
+        case 120: 
           { 
 	fStateStack.push(yystate());
 	if(Debug.debugTokenizer)
@@ -1452,80 +1496,92 @@
         yybegin(ST_XML_DECLARATION);
 	return XML_DECLARATION_OPEN;
  }
-        case 298: break;
-        case 118: 
+        case 313: break;
+        case 119: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nprocessing instruction start");//$NON-NLS-1$
 	yybegin(ST_PI);
         return XML_PI_OPEN;
  }
-        case 299: break;
-        case 62: 
+        case 314: break;
+        case 63: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction end");//$NON-NLS-1$
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 300: break;
-        case 56: 
-        case 58: 
+        case 315: break;
+        case 57: 
         case 59: 
         case 60: 
-        case 135: 
+        case 61: 
+        case 137: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction attribute value");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_NAME);
         return XML_TAG_ATTRIBUTE_VALUE;
  }
-        case 301: break;
-        case 55: 
+        case 316: break;
+        case 56: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction '='");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
         return XML_TAG_ATTRIBUTE_EQUALS;
  }
-        case 302: break;
-        case 54: 
+        case 317: break;
+        case 55: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction attribute name");//$NON-NLS-1$
         yybegin(ST_XML_PI_EQUALS);
         return XML_TAG_ATTRIBUTE_NAME;
  }
-        case 303: break;
-        case 50: 
+        case 318: break;
         case 51: 
         case 52: 
+        case 53: 
           { 
 	// block scan until close is found
 	return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
  }
-        case 304: break;
-        case 49: 
+        case 319: break;
+        case 50: 
           { 
         yybegin(ST_PI_CONTENT);
         return WHITE_SPACE;
  }
-        case 305: break;
+        case 320: break;
         case 46: 
         case 47: 
         case 48: 
-        case 128: 
+        case 49: 
         case 129: 
-        case 214: 
-        case 236: 
-        case 248: 
+        case 130: 
+        case 131: 
+        case 217: 
+        case 239: 
+        case 240: 
+        case 252: 
+        case 253: 
+        case 262: 
+        case 272: 
+        case 280: 
+        case 284: 
+        case 287: 
+        case 288: 
+        case 289: 
+        case 290: 
           { 
 	if(Debug.debugTokenizer)
 		dump("processing instruction target");//$NON-NLS-1$
         yybegin(ST_PI_WS);
         return XML_TAG_NAME;
  }
-        case 306: break;
+        case 321: break;
         case 41: 
         case 42: 
           { 
@@ -1533,27 +1589,27 @@
 		dump("comment content");//$NON-NLS-1$
 	return scanXMLCommentText();
  }
-        case 307: break;
+        case 322: break;
         case 40: 
           { 
 	if(Debug.debugTokenizer)
 		dump("LINE FEED");//$NON-NLS-1$
 	return WHITE_SPACE;
  }
-        case 308: break;
+        case 323: break;
         case 0: 
         case 31: 
-        case 121: 
-        case 123: 
-        case 205: 
-        case 206: 
-        case 233: 
+        case 122: 
+        case 124: 
+        case 207: 
+        case 208: 
+        case 236: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nXML content");//$NON-NLS-1$
 	return XML_CONTENT;
  }
-        case 309: break;
+        case 324: break;
         case 5: 
         case 8: 
         case 9: 
@@ -1579,58 +1635,58 @@
 		dump("white space");//$NON-NLS-1$
         return WHITE_SPACE;
  }
-        case 310: break;
+        case 325: break;
         case 16: 
-        case 70: 
+        case 71: 
           { 
 	if(Debug.debugTokenizer)
 		dump("inappropriate tag name");//$NON-NLS-1$
 	yybegin(YYINITIAL);
         return XML_CONTENT;
  }
-        case 311: break;
+        case 326: break;
         case 27: 
-        case 105: 
         case 106: 
-        case 191: 
-        case 226: 
-        case 244: 
-        case 254: 
-        case 263: 
-        case 270: 
-        case 273: 
+        case 107: 
+        case 193: 
+        case 229: 
+        case 248: 
+        case 259: 
+        case 269: 
+        case 277: 
+        case 281: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl contentspec");//$NON-NLS-1$
 	return XML_ELEMENT_DECL_CONTENT;
  }
-        case 312: break;
+        case 327: break;
         case 29: 
-        case 112: 
         case 113: 
-        case 202: 
-        case 230: 
-        case 246: 
-        case 255: 
-        case 264: 
-        case 271: 
-        case 274: 
+        case 114: 
+        case 204: 
+        case 233: 
+        case 250: 
+        case 260: 
+        case 270: 
+        case 278: 
+        case 282: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist contentspec");//$NON-NLS-1$
 	return XML_ATTLIST_DECL_CONTENT;
  }
-        case 313: break;
+        case 328: break;
         case 32: 
-        case 71: 
-        case 82: 
+        case 72: 
+        case 83: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nstart tag open");//$NON-NLS-1$
         yybegin(ST_XML_TAG_NAME);
         return XML_TAG_OPEN;
  }
-        case 314: break;
+        case 329: break;
         case 33: 
         case 34: 
         case 37: 
@@ -1638,30 +1694,30 @@
         case 39: 
         case 43: 
         case 44: 
-        case 53: 
-        case 57: 
-        case 61: 
-        case 63: 
-        case 67: 
-        case 73: 
-        case 79: 
-        case 84: 
+        case 54: 
+        case 58: 
+        case 62: 
+        case 64: 
+        case 68: 
+        case 74: 
+        case 80: 
         case 85: 
         case 86: 
         case 87: 
-        case 89: 
+        case 88: 
         case 90: 
-        case 92: 
-        case 97: 
-        case 102: 
-        case 109: 
+        case 91: 
+        case 93: 
+        case 98: 
+        case 103: 
+        case 110: 
           { 
 	if (Debug.debugTokenizer)
 		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
 			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
 	return UNDEFINED;
  }
-        case 315: break;
+        case 330: break;
         case 35: 
         case 36: 
           { 
@@ -1672,35 +1728,35 @@
 		yybegin(ST_CDATA_END);
 	return blockContext;
  }
-        case 316: break;
-        case 64: 
+        case 331: break;
+        case 65: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction attribute name");//$NON-NLS-1$
         yybegin(ST_DHTML_EQUALS);
         return XML_TAG_ATTRIBUTE_NAME;
  }
-        case 317: break;
-        case 65: 
+        case 332: break;
+        case 66: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction '='");//$NON-NLS-1$
         yybegin(ST_DHTML_ATTRIBUTE_VALUE);
         return XML_TAG_ATTRIBUTE_EQUALS;
  }
-        case 318: break;
-        case 66: 
-        case 68: 
+        case 333: break;
+        case 67: 
         case 69: 
-        case 143: 
+        case 70: 
+        case 145: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction attribute value");//$NON-NLS-1$
         yybegin(ST_DHTML_ATTRIBUTE_NAME);
         return XML_TAG_ATTRIBUTE_VALUE;
  }
-        case 319: break;
-        case 72: 
+        case 334: break;
+        case 73: 
           { 
 	if(Debug.debugTokenizer)
 		dump("tag close");//$NON-NLS-1$
@@ -1711,44 +1767,44 @@
         	yybegin(YYINITIAL);
         return XML_TAG_CLOSE;
  }
-        case 320: break;
-        case 74: 
+        case 335: break;
         case 75: 
+        case 76: 
           { 
 	if(Debug.debugTokenizer)
 		dump("tag name");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 321: break;
-        case 76: 
+        case 336: break;
+        case 77: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attr name");//$NON-NLS-1$
         yybegin(ST_XML_EQUALS);
         return XML_TAG_ATTRIBUTE_NAME;
  }
-        case 322: break;
-        case 77: 
+        case 337: break;
+        case 78: 
           { 
 	if(Debug.debugTokenizer)
 		dump("equals");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_VALUE);
         return XML_TAG_ATTRIBUTE_EQUALS;
  }
-        case 323: break;
-        case 78: 
-        case 80: 
+        case 338: break;
+        case 79: 
         case 81: 
-        case 150: 
+        case 82: 
+        case 152: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attr value");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_NAME);
         return XML_TAG_ATTRIBUTE_VALUE;
  }
-        case 324: break;
-        case 83: 
+        case 339: break;
+        case 84: 
           { 
 	if(Debug.debugTokenizer)
 		dump("declaration end");//$NON-NLS-1$
@@ -1759,59 +1815,59 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 325: break;
-        case 88: 
+        case 340: break;
+        case 89: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype type");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
 	return XML_DOCTYPE_NAME;
  }
-        case 326: break;
-        case 91: 
-        case 93: 
+        case 341: break;
+        case 92: 
         case 94: 
         case 95: 
-        case 164: 
-        case 165: 
-        case 168: 
-        case 169: 
-        case 221: 
+        case 96: 
+        case 166: 
+        case 167: 
+        case 170: 
+        case 171: 
+        case 224: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype public reference");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
 	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
  }
-        case 327: break;
-        case 96: 
-        case 98: 
+        case 342: break;
+        case 97: 
         case 99: 
         case 100: 
-        case 176: 
+        case 101: 
+        case 178: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype system reference");//$NON-NLS-1$
 	yybegin(ST_XML_DECLARATION_CLOSE);
 	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
  }
-        case 328: break;
-        case 101: 
-        case 103: 
+        case 343: break;
+        case 102: 
         case 104: 
-        case 184: 
-        case 185: 
-        case 188: 
-        case 189: 
-        case 224: 
+        case 105: 
+        case 186: 
+        case 187: 
+        case 190: 
+        case 191: 
+        case 227: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl name");//$NON-NLS-1$
 	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
 	return XML_ELEMENT_DECL_NAME;
  }
-        case 329: break;
-        case 107: 
+        case 344: break;
+        case 108: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl close");//$NON-NLS-1$
@@ -1822,23 +1878,23 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 330: break;
-        case 108: 
-        case 110: 
+        case 345: break;
+        case 109: 
         case 111: 
-        case 195: 
-        case 196: 
-        case 199: 
-        case 200: 
-        case 228: 
+        case 112: 
+        case 197: 
+        case 198: 
+        case 201: 
+        case 202: 
+        case 231: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist name");//$NON-NLS-1$
 	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
 	return XML_ATTLIST_DECL_NAME;
  }
-        case 331: break;
-        case 114: 
+        case 346: break;
+        case 115: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist close");//$NON-NLS-1$
@@ -1849,21 +1905,21 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 332: break;
-        case 117: 
+        case 347: break;
+        case 118: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nend tag open");//$NON-NLS-1$
         yybegin(ST_XML_TAG_NAME);
         return XML_END_TAG_OPEN;
  }
-        case 333: break;
-        case 115: 
+        case 348: break;
         case 116: 
+        case 117: 
           { 
 		return doBlockTagScan();
 	 }
-        case 334: break;
+        case 349: break;
         default: 
           if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
             yy_atEOF = true;
diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex
index 213dade..f4ef7b0 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex
@@ -1,5 +1,5 @@
 /*******************************************************************************

- * Copyright (c) 2004 IBM Corporation and others.

+ * Copyright (c) 2004, 2007 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

@@ -8,7 +8,7 @@
  * Contributors:

  *     IBM Corporation - initial API and implementation

  *******************************************************************************/

-/*nlsXXX*/

+

 package org.eclipse.wst.xml.core.internal.parser;

 

 import java.io.CharArrayReader;

@@ -21,7 +21,7 @@
 import org.eclipse.wst.sse.core.internal.ltk.parser.BlockTokenizer;

 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;

 import org.eclipse.wst.sse.core.internal.util.Debug;

-import org.eclipse.wst.sse.core.internal.util.StringUtils;

+import org.eclipse.wst.sse.core.utils.StringUtils;

 import org.eclipse.wst.xml.core.internal.Logger;

 import org.eclipse.wst.xml.core.internal.parser.regions.XMLParserRegionFactory;

 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;

@@ -1062,7 +1062,7 @@
 	yybegin(ST_PI);

         return XML_PI_OPEN;

 }

-// the next three are order dependent

+// the next four are order dependent

 <ST_PI> ((X|x)(M|m)(L|l)) {

 	if(Debug.debugTokenizer)

 		dump("XML processing instruction target");//$NON-NLS-1$

@@ -1075,6 +1075,12 @@
         yybegin(ST_DHTML_ATTRIBUTE_NAME);

         return XML_TAG_NAME;

 }

+<ST_PI> xml-stylesheet {

+	if(Debug.debugTokenizer)

+		dump("XSL processing instruction target");//$NON-NLS-1$

+        yybegin(ST_XML_PI_ATTRIBUTE_NAME);

+        return XML_TAG_NAME;

+}

 <ST_PI> {Name} {

 	if(Debug.debugTokenizer)

 		dump("processing instruction target");//$NON-NLS-1$

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd
index df212a6..e010e35 100644
--- a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/flexj.cmd
@@ -1,3 +1,3 @@
 @echo off

-PATH=%PATH%;c:\jdk1.4.2_09\bin

+PATH=%PATH%;d:\jdk6_01\bin

 java -Xmx470000000 -cp d:\JFlex\1.2.2\lib\JFlex.jar;. JFlex.Main JSPTokenizer.jflex -skel skeleton.sse && rm -f JSPTokenizer.java~ JSPTokenizer~ && copy JSPTokenizer.java ..\..\..\..\..\org.eclipse.jst.jsp.core\src\org\eclipse\jst\jsp\core\internal\parser\\internal\JSPTokenizer.java

diff --git a/bundles/org.eclipse.wst.sse.core/DevTimeSupport/devTimeSupportInfo.txt b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/devTimeSupportInfo.txt
new file mode 100644
index 0000000..a6d7aeb
--- /dev/null
+++ b/bundles/org.eclipse.wst.sse.core/DevTimeSupport/devTimeSupportInfo.txt
@@ -0,0 +1,16 @@
+
+
+This directory, DevTimeSupport, normally contains
+the source for some of our parser generators. 
+
+See wst/components/sse/plugins/
+org.eclipse.wst.sse.core\DevTimeSupport
+
+This particular text file you are reading 
+is the only one shipped 
+with an SDK build, since the other files 
+are seldom needed during development or debugging, 
+and some of those files cause problems with long 
+filename or paths that end up being too long for 
+some platforms, and some unzip programs. 
+
diff --git a/bundles/org.eclipse.wst.sse.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.sse.core/META-INF/MANIFEST.MF
index b85ad05..c96eb0c 100644
--- a/bundles/org.eclipse.wst.sse.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.sse.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.sse.core; singleton:=true
-Bundle-Version: 1.1.103.v200805300730
+Bundle-Version: 1.1.301.qualifier
 Bundle-Activator: org.eclipse.wst.sse.core.internal.SSECorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -37,11 +37,14 @@
  org.eclipse.wst.sse.core.text,
  org.eclipse.wst.sse.core.utils,
  org.eclipse.wst.sse.internal.contentproperties;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.sse.ui,org.eclipse.wst.xml.core,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui"
-Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.text;visibility:=reexport;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.filebuffers;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.common;bundle-version="[2.2.0,2.3.0)",
- com.ibm.icu;bundle-version="[3.4.4,3.5.0)"
-Eclipse-LazyStart: true
+Require-Bundle: org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.text;bundle-version="[3.4.0,4.0.0)";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.filebuffers;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.wst.common.uriresolver;bundle-version="[1.1.301,1.2.0)",
+ org.eclipse.emf.common;bundle-version="[2.4.0,3.0.0)",
+ org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)";resolution:=optional,
+ com.ibm.icu;bundle-version="[3.8.1,4.0.0)",
+ org.eclipse.core.expressions;bundle-version="[3.4.0,4.0.0)"
+Bundle-ActivationPolicy: lazy;exclude:="org.eclipse.wst.sse.core.internal.propertytester"
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.wst.sse.core/about.html b/bundles/org.eclipse.wst.sse.core/about.html
index 4ec5989..2199df3 100644
--- a/bundles/org.eclipse.wst.sse.core/about.html
+++ b/bundles/org.eclipse.wst.sse.core/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>May 2, 2006</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/bundles/org.eclipse.wst.sse.core/build.properties b/bundles/org.eclipse.wst.sse.core/build.properties
index 54b5ea1..37541b2 100644
--- a/bundles/org.eclipse.wst.sse.core/build.properties
+++ b/bundles/org.eclipse.wst.sse.core/build.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
+# Copyright (c) 2001, 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
 #     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -24,9 +24,11 @@
 bin.excludes = bin/**,\
                @dot/**,\
                temp.folder/**
-src.includes = DevTimeSupport/,\
-               schema/,\
+src.includes = schema/,\
                doc/,\
                component.xml,\
-               build.properties
+               DevTimeSupport/
 output.. = bin/
+src.excludes = DevTimeSupport/build.xml,\
+               DevTimeSupport/SedModel/,\
+               DevTimeSupport/HeadParsers/
diff --git a/bundles/org.eclipse.wst.sse.core/config/charset.properties b/bundles/org.eclipse.wst.sse.core/config/charset.properties
index e10e657..004a070 100644
--- a/bundles/org.eclipse.wst.sse.core/config/charset.properties
+++ b/bundles/org.eclipse.wst.sse.core/config/charset.properties
@@ -1,3 +1,13 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
 ! the number of codeset names
 totalnumber=25
 
diff --git a/bundles/org.eclipse.wst.sse.core/config/defaultIANA.properties b/bundles/org.eclipse.wst.sse.core/config/defaultIANA.properties
index 435c3d7..f47ed6e 100644
--- a/bundles/org.eclipse.wst.sse.core/config/defaultIANA.properties
+++ b/bundles/org.eclipse.wst.sse.core/config/defaultIANA.properties
@@ -1,3 +1,13 @@
+###############################################################################
+# Copyright (c) 2001, 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
+###############################################################################
 # This file lists charset mappings between an encoding and its default
 # equivalent encoding listed in charset.properties
 # format: anyname=iana name listed in charset.properties
@@ -13,4 +23,4 @@
 windows-936=GB18030
 x-mswin-936=GB18030
 GB2312=GB18030
-x-EUC-CN=GB18030
\ No newline at end of file
+x-EUC-CN=GB18030
diff --git a/bundles/org.eclipse.wst.sse.core/config/override.properties b/bundles/org.eclipse.wst.sse.core/config/override.properties
index 70438b1..ae703ba 100644
--- a/bundles/org.eclipse.wst.sse.core/config/override.properties
+++ b/bundles/org.eclipse.wst.sse.core/config/override.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
+# Copyright (c) 2001, 2005 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
 # http://www.eclipse.org/legal/epl-v10.html
-# 
+#
 # Contributors:
 #     IBM Corporation - initial API and implementation
 #     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/plugin.properties b/bundles/org.eclipse.wst.sse.core/plugin.properties
index a8ac67c..651ffcc 100644
--- a/bundles/org.eclipse.wst.sse.core/plugin.properties
+++ b/bundles/org.eclipse.wst.sse.core/plugin.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
+# Copyright (c) 2001, 2008 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
@@ -22,4 +22,4 @@
 Model_Handler_Extension.name=Model Handler Extension
 Format_Processors_Extension_Point.name=Format Processors Extension Point
 Task_Scanner_Extension_Point.name=Task Scanner Extension Point
-Structured_Sources_Task_Extension.name=Structured Sources Task
+Structured_Sources_Task_Extension.name=Detected Task
diff --git a/bundles/org.eclipse.wst.sse.core/plugin.xml b/bundles/org.eclipse.wst.sse.core/plugin.xml
index 789d85d..0036500 100644
--- a/bundles/org.eclipse.wst.sse.core/plugin.xml
+++ b/bundles/org.eclipse.wst.sse.core/plugin.xml
@@ -32,19 +32,27 @@
 	<!-- not for use by clients (internal)-->
 	<extension-point id="taskscanner" name="%Task_Scanner_Extension_Point.name" schema="schema/taskscanner.exsd"/>
 
-	<!-- define our task marker type -->
-	<extension
-		id="task"
-		name="%Structured_Sources_Task_Extension.name"
-		point="org.eclipse.core.resources.markers">
-		<super type="org.eclipse.core.resources.taskmarker" />
-		<persistent value="true" />
-	</extension>
-
 	<!-- Make sure default preference values are set at runtime -->
 	<extension point="org.eclipse.core.runtime.preferences">
 		<initializer
 			class="org.eclipse.wst.sse.core.internal.preferences.PreferenceInitializer" />
 	</extension>
 
+	<extension point="org.eclipse.wst.validation.validatorGroup">
+		<group id="structuredModelGroup">
+			<listener class="org.eclipse.wst.sse.core.internal.validate.ValidatorGroupListener"/>
+		</group>
+	</extension>
+	
+	<!-- Define the StructuredFilePropertyTester as it will handle tracing the entire -->
+	<!-- content type hierarchy for a file. Only operates on IFiles                   -->
+	<extension point="org.eclipse.core.expressions.propertyTesters">
+		<propertyTester
+			class="org.eclipse.wst.sse.core.internal.propertytester.StructuredFilePropertyTester"
+			id="org.eclipse.wst.sse.core.expressions.propertyTester.StructuredFilePropertyTester"
+			namespace="org.eclipse.wst.sse.core.resources"
+			properties="contentTypeId"
+			type="org.eclipse.core.resources.IFile">
+    </propertyTester>
+ </extension>
 </plugin>
diff --git a/bundles/org.eclipse.wst.sse.core/schema/formatProcessors.exsd b/bundles/org.eclipse.wst.sse.core/schema/formatProcessors.exsd
index e5bd5eb..8ed7304 100644
--- a/bundles/org.eclipse.wst.sse.core/schema/formatProcessors.exsd
+++ b/bundles/org.eclipse.wst.sse.core/schema/formatProcessors.exsd
@@ -6,7 +6,7 @@
          <meta.schema plugin="org.eclipse.wst.sse.core" id="formatProcessors" name="Format Processors Extension Point"/>

       </appInfo>

       <documentation>

-         This extension point is for defining the format processsor for a content type.

+         &lt;b&gt;This extension point is deprecated and should not be used.&lt;/b&gt;

       </documentation>

    </annotation>

 

@@ -69,7 +69,7 @@
          <meta.section type="since"/>

       </appInfo>

       <documentation>

-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;

+         &lt;b&gt;This extension point is deprecated and should not be used.&lt;/b&gt;

       </documentation>

    </annotation>

 

@@ -90,30 +90,14 @@
       </documentation>

    </annotation>

 

-   <annotation>

-      <appInfo>

-         <meta.section type="apiInfo"/>

-      </appInfo>

-      <documentation>

-         

-      </documentation>

-   </annotation>

 

-   <annotation>

-      <appInfo>

-         <meta.section type="implementation"/>

-      </appInfo>

-      <documentation>

-         

-      </documentation>

-   </annotation>

 

    <annotation>

       <appInfo>

          <meta.section type="copyright"/>

       </appInfo>

       <documentation>

-         Copyright (c) 2005 IBM Corporation and others.&lt;br&gt;

+         Copyright (c) 2005, 2007 IBM Corporation and others.&lt;br&gt;

 All rights reserved. This program and the accompanying materials are made 

 available under the terms of the Eclipse Public License v1.0 which accompanies 

 this distribution, and is available at &lt;a

diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/AbstractContentSettingsHandler.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/AbstractContentSettingsHandler.java
index e94bfa2..420e3a0 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/AbstractContentSettingsHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/AbstractContentSettingsHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/AbstractSubject.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/AbstractSubject.java
index 176a7a4..fcc98bc 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/AbstractSubject.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/AbstractSubject.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettings.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettings.java
index 3b37451..0c797e3 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettings.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettings.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -28,10 +28,10 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 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.wst.sse.core.internal.Logger;
+import org.eclipse.wst.sse.core.internal.SSECorePlugin;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -477,44 +477,28 @@
 	}
 
 	private String getContentSettingsPath(IResource resource) {
-		String projectPath = getProjectOf(resource);
-		StringBuffer strbuf = new StringBuffer(""); //$NON-NLS-1$
-		if (projectPath != null) {
-			strbuf.append(projectPath);
-			strbuf.append(IPath.SEPARATOR);
-			strbuf.append(contentSettingsName);
-		}
+		IProject project = null;
+		if (resource.getType() == IResource.PROJECT)
+			project = (IProject) resource;
 		else
-			return null;
+			project = resource.getProject();
 
-		String str = strbuf.toString();
-		strbuf.delete(0, strbuf.length());
-		return str;
+		IPath projectLocation = project.getLocation();
+		if (projectLocation == null) {
+			/**
+			 * As a deprecated class, perfect operation in new scenarios such
+			 * as with EFS is not promised.
+			 */
+			return SSECorePlugin.getDefault().getStateLocation().append(rootElementName).append(project.getName()).toString();
+		}
+
+		return projectLocation.addTrailingSeparator().append(contentSettingsName).toString();
 	}
 
 	public final String getPathAttr() {
 		return PATHATTR;
 	}
 
-
-	private String getProjectOf(IResource resource) {
-		// if (resource==null) return null;
-		currProject = resource.getProject();
-		// String projectPath=null;
-
-		IPath path = currProject.getLocation();
-		if (path == null) {
-			path = ResourcesPlugin.getWorkspace().getRoot().getLocation();
-			if (path != null) {
-				path = path.addTrailingSeparator();
-				path = path.append(currProject.getName());
-			}
-		}
-		return (path != null) ? path.toString() : null;
-
-	}
-
-
 	public synchronized Map getProperties(final IResource resource) {
 		if (resource == null)
 			return null;
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsChangeSubject.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsChangeSubject.java
index 858329d..7bc580b 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsChangeSubject.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsChangeSubject.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsCreator.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsCreator.java
index af1e31a..9dd355c 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsCreator.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsCreator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsFileHandler.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsFileHandler.java
index b7383d4..0c52604 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsFileHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsFileHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsSelfHandler.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsSelfHandler.java
index 9f1ee1b..27aa2b8 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsSelfHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsSelfHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsSynchronizer.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsSynchronizer.java
index b4f5bd2..0dc38b1 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsSynchronizer.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ContentSettingsSynchronizer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettings.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettings.java
index 1d0bb4a..058dd5c 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettings.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettings.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettingsHandler.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettingsHandler.java
index 3cce408..8ef8b45 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettingsHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettingsHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettingsListener.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettingsListener.java
index 581addd..41151f8 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettingsListener.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/IContentSettingsListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/INotify.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/INotify.java
index 338de9f..4dcf5fe 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/INotify.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/INotify.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ISubject.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ISubject.java
index 981a5b4..4ff4030 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ISubject.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/ISubject.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/SimpleNodeOperator.java b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/SimpleNodeOperator.java
index eb231d4..16da926 100644
--- a/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/SimpleNodeOperator.java
+++ b/bundles/org.eclipse.wst.sse.core/src-contentproperties/org/eclipse/wst/sse/internal/contentproperties/SimpleNodeOperator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedIO.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedIO.java
index a2d9998..1f31829 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedIO.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedIO.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -116,6 +116,7 @@
 				result.setUnicodeStream(true);
 			else if (detectedBom.length == 3)
 				result.setUTF83ByteBOMUsed(true);
+			result.setUnicodeBOM(detectedBom);
 		}
 		return result;
 	}
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedReaderCreator.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedReaderCreator.java
index 1bb216d..155ccdb 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedReaderCreator.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedReaderCreator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -64,6 +64,10 @@
 
 
 	private InputStream fInputStream;
+	
+	private static final String CHARSET_UTF_16= "UTF-16"; //$NON-NLS-1$
+	
+	private static final String CHARSET_UTF_16LE= "UTF-16LE"; //$NON-NLS-1$
 
 	public CodedReaderCreator() {
 
@@ -292,6 +296,11 @@
 		if (fEncodingRule == EncodingRule.FORCE_DEFAULT) {
 			charsetName = encodingMemento.getAppropriateDefault();
 		}
+		
+		// [228366] For files that have a unicode BOM, and a charset name of UTF-16, the charset decoder needs "UTF-16LE"
+		if(CHARSET_UTF_16.equals(charsetName) && encodingMemento.getUnicodeBOM() == IContentDescription.BOM_UTF_16LE)
+			charsetName = CHARSET_UTF_16LE;
+		
 		Charset charset = Charset.forName(charsetName);
 		CharsetDecoder charsetDecoder = charset.newDecoder();
 		if (fEncodingRule == EncodingRule.IGNORE_CONVERSION_ERROR) {
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedStreamCreator.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedStreamCreator.java
index 07d319f..ac1224c 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedStreamCreator.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CodedStreamCreator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonCharsetNames.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonCharsetNames.java
index 10e08f9..518c7b4 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonCharsetNames.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonCharsetNames.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java
index 70354d5..087e03a 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/CommonEncodingPreferenceNames.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -23,14 +23,17 @@
 
 	/**
 	 * Constant to be used when referring to CR/MAC line delimiter
+	 * @deprecated - no longer used
 	 */
 	public static final String CR = "EOL_Mac"; //$NON-NLS-1$
 	/**
 	 * Constant to be used when referring to CRLF/WINDOWS line delimiter
+	 * @deprecated - no longer used
 	 */
 	public static final String CRLF = "EOL_Windows"; //$NON-NLS-1$
 	/**
 	 * The end-of-line character(s) to use.
+	 * @deprecated - no longer used
 	 */
 	public static final String END_OF_LINE_CODE = "endOfLineCode";//$NON-NLS-1$
 	/**
@@ -40,10 +43,12 @@
 
 	/**
 	 * Constant to be used when referring to LF/UNIX line delimiter
+	 * @deprecated - no longer used
 	 */
 	public static final String LF = "EOL_Unix"; //$NON-NLS-1$
 	/**
 	 * Constant to be used when referring to No translation of line delimiters
+	 * @deprecated - no longer used
 	 */
 	public static final String NO_TRANSLATION = ""; //$NON-NLS-1$
 	/**
@@ -53,16 +58,19 @@
 
 	/**
 	 * String representation of CR/MAC line delimiter
+	 * @deprecated - no longer used
 	 */
 	public static final String STRING_CR = "\r";//$NON-NLS-1$
 
 	/**
 	 * String representation of CRLF/WINDOWS line delimiter
+	 * @deprecated - no longer used
 	 */
 	public static final String STRING_CRLF = "\r\n";//$NON-NLS-1$
 
 	/**
 	 * String representation of LF/UNIX line delimiter
+	 * @deprecated - no longer used
 	 */
 	public static final String STRING_LF = "\n";//$NON-NLS-1$
 
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ContentBasedPreferenceGateway.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ContentBasedPreferenceGateway.java
index 2d6ca30..cd28db3 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ContentBasedPreferenceGateway.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ContentBasedPreferenceGateway.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ContentTypeEncodingPreferences.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ContentTypeEncodingPreferences.java
index 432ad24..4c82676 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ContentTypeEncodingPreferences.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ContentTypeEncodingPreferences.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/EncodingMemento.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/EncodingMemento.java
index 853dfde..c195a84 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/EncodingMemento.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/EncodingMemento.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -73,6 +73,8 @@
 	private String fJavaCharsetName;
 	private boolean fUnicodeStream;
 	private boolean fUTF83ByteBOMUsed;
+	
+	private byte[] fBOM;
 
 	public EncodingMemento() {
 		super();
@@ -157,15 +159,8 @@
 		byte[] bom = null;
 		if (isUTF83ByteBOMUsed())
 			bom = IContentDescription.BOM_UTF_8;
-		else if (isUnicodeStream()) {
-			if (getJavaCharsetName().equals("UTF-16") || getJavaCharsetName().equals("UTF-16LE")) { //$NON-NLS-1$ //$NON-NLS-2$
-				bom = IContentDescription.BOM_UTF_16LE;
-			}
-			else if (getJavaCharsetName().equals("UTF-16BE")) { //$NON-NLS-1$
-				bom = IContentDescription.BOM_UTF_16BE;
-			}
-
-		}
+		else if (isUnicodeStream())
+			bom = fBOM;
 		return bom;
 	}
 
@@ -246,4 +241,7 @@
 		fUTF83ByteBOMUsed = uTF83ByteBOMUsed;
 	}
 
+	public void setUnicodeBOM(byte[] bom) {
+		fBOM = bom;
+	}
 }
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/EncodingRule.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/EncodingRule.java
index 53fbbe2..2d2988f 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/EncodingRule.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/EncodingRule.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ICodedResourcePlugin.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ICodedResourcePlugin.java
index 42b01de..4b4900f 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ICodedResourcePlugin.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/ICodedResourcePlugin.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IContentDescriptionExtended.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IContentDescriptionExtended.java
index a778ad3..db2e0a4 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IContentDescriptionExtended.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IContentDescriptionExtended.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IResourceCharsetDetector.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IResourceCharsetDetector.java
index 6995b51..20dcbbf 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IResourceCharsetDetector.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IResourceCharsetDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IStreamCharsetDetector.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IStreamCharsetDetector.java
index f51aecc..a2508f1 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IStreamCharsetDetector.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/IStreamCharsetDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/NonContentBasedEncodingRules.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/NonContentBasedEncodingRules.java
index b7c9ae6..dd7158d 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/NonContentBasedEncodingRules.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/NonContentBasedEncodingRules.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/Assert.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/Assert.java
index 85f18dd..4e1b370 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/Assert.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/Assert.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/BufferedLimitedStream.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/BufferedLimitedStream.java
index 7e20cb9..8928655 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/BufferedLimitedStream.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/BufferedLimitedStream.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/ByteReader.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/ByteReader.java
index e3dc503..35046e2 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/ByteReader.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/ByteReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/CodedResourcePlugin.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/CodedResourcePlugin.java
index 32c0b70..0c928cd 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/CodedResourcePlugin.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/CodedResourcePlugin.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/Logger.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/Logger.java
index 0e10147..9e911b9 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/Logger.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/Logger.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/NullInputStream.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/NullInputStream.java
index 43f3aa2..6b44f2f 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/NullInputStream.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/NullInputStream.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/ResourceBundleHelper.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/ResourceBundleHelper.java
index e57c7ed..14aaa1f 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/ResourceBundleHelper.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/ResourceBundleHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/UnicodeBOMEncodingDetector.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/UnicodeBOMEncodingDetector.java
index 6cc5194..e3c9d99 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/UnicodeBOMEncodingDetector.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/encoding/util/UnicodeBOMEncodingDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/CharConversionErrorWithDetail.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/CharConversionErrorWithDetail.java
index 8d5253c..1f19444 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/CharConversionErrorWithDetail.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/CharConversionErrorWithDetail.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/MalformedInputExceptionWithDetail.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/MalformedInputExceptionWithDetail.java
index 629567d..ff31bbd 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/MalformedInputExceptionWithDetail.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/MalformedInputExceptionWithDetail.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/MalformedOutputExceptionWithDetail.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/MalformedOutputExceptionWithDetail.java
index 6cf9f7c..6eec680 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/MalformedOutputExceptionWithDetail.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/MalformedOutputExceptionWithDetail.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -20,18 +20,10 @@
 	 */
 	private static final long serialVersionUID = 1L;
 
-	/**
-	 * Disallow default constructor. If attemptedEncoding and charPostion can
-	 * not be provided, use sun.io.MalformedException.
-	 */
-	private MalformedOutputExceptionWithDetail() {
-		// default constructor is disallowed, since if
-		// extra info can not be provided, the regular
-		// Malformed exception should be thrown
-	}
 
 	/**
-	 * Constructor for MalformedOutputExceptionWithDetail.
+	 * Constructor for MalformedOutputExceptionWithDetail. If attemptedEncoding and charPostion can
+	 * not be provided, use sun.io.MalformedException.
 	 * 
 	 * @param attemptedJavaEncoding
 	 * @param attemptedIANAEncoding
diff --git a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/UnsupportedCharsetExceptionWithDetail.java b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/UnsupportedCharsetExceptionWithDetail.java
index 7cdc40b..123af87 100644
--- a/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/UnsupportedCharsetExceptionWithDetail.java
+++ b/bundles/org.eclipse.wst.sse.core/src-encoding/org/eclipse/wst/sse/core/internal/exceptions/UnsupportedCharsetExceptionWithDetail.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/provisional/tasks/IFileTaskScanner.java b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/provisional/tasks/IFileTaskScanner.java
index 79c4780..d1655b2 100644
--- a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/provisional/tasks/IFileTaskScanner.java
+++ b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/provisional/tasks/IFileTaskScanner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -30,12 +30,18 @@
  */
 public interface IFileTaskScanner {
 	/**
-	 * Marker type ID of task markers that are created, all scanners are
-	 * expected to use this type or subtypes
+	 * Default marker type ID of task markers that are created.
 	 */
 	String TASK_MARKER_ID = SSECorePlugin.ID + ".task"; //$NON-NLS-1$;
 
 	/**
+	 * @return the task marker type that should be removed each time tasks are
+	 *         rescanned and used by default when creating task markers.
+	 *         Children of this marker type will be removed automatically.
+	 */
+	String getMarkerType();
+
+	/**
 	 * Requests that the list of automatically discovered tasks for the given
 	 * file be updated. Once completed, the list of tasks should correspond
 	 * exactly to the file's contents.
@@ -46,8 +52,13 @@
 	 *            the list of task tags for which to scan
 	 * @param monitor -
 	 *            a progress monitor
-	 * @return an array of maps containing the attributes for task markers to
+	 * @return an array of maps containing the attributes of task markers to
 	 *         be created
+	 *         <p>
+	 *         The reserved attribute name
+	 *         <b>org.eclipse.core.resources.taskmarker</b> may be used to
+	 *         specify a type to use when creating the task marker.
+	 *         </p>
 	 */
 	Map[] scan(IFile file, TaskTag[] taskTags, IProgressMonitor monitor);
 
diff --git a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java
index 430f18c..d191e71 100644
--- a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java
+++ b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/StructuredFileTaskScanner.java b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/StructuredFileTaskScanner.java
index 29e7e17..42271b4 100644
--- a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/StructuredFileTaskScanner.java
+++ b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/StructuredFileTaskScanner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -30,10 +30,9 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExecutableExtension;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.Document;
 import org.eclipse.jface.text.IDocument;
@@ -54,14 +53,15 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
 
 /**
- * A delegate to create IMarker.TASKs for "todos" and similiar comments.
+ * A delegate to create IMarker.TASKs for "todos" and similar comments.
  */
-public abstract class StructuredFileTaskScanner implements IFileTaskScanner {
+public abstract class StructuredFileTaskScanner implements IFileTaskScanner, IExecutableExtension {
 	// the list of attributes for the new tasks for the current file
 	protected List fNewMarkerAttributeMaps = null;
 
 	List oldMarkers = null;
 	private long time0;
+	private String runtimeMarkerType;
 
 	public StructuredFileTaskScanner() {
 		super();
@@ -81,12 +81,11 @@
 		Map attributes = new HashMap(6);
 		// marker line numbers are 1-based
 		attributes.put(IMarker.LINE_NUMBER, new Integer(documentLine + 1));
-		attributes.put(IMarker.TASK, IFileTaskScanner.TASK_MARKER_ID);
+		attributes.put(IMarker.TASK, getMarkerType());
 		attributes.put(IMarker.CHAR_START, new Integer(startOffset));
 		attributes.put(IMarker.CHAR_END, new Integer(startOffset + length));
 		attributes.put(IMarker.MESSAGE, text);
-		attributes.put(IMarker.USER_EDITABLE, Boolean.TRUE);
-		attributes.put("org.eclipse.ui.part.IShowInTarget", new String[]{""}); //$NON-NLS-1$ //$NON-NLS-2$
+		attributes.put(IMarker.USER_EDITABLE, Boolean.FALSE);
 
 		switch (priority) {
 			case IMarker.PRIORITY_HIGH : {
@@ -105,45 +104,26 @@
 		return attributes;
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.sse.core.internal.provisional.tasks.IFileTaskScanner#getMarkerType()
+	 */
+	public String getMarkerType() {
+		if (runtimeMarkerType != null)
+			return runtimeMarkerType;
+
+		return org.eclipse.core.resources.IMarker.TASK;
+	}
+
 	private String detectCharset(IFile file) {
 		if (file.getType() == IResource.FILE && file.isAccessible()) {
-			IContentDescription d = null;
 			try {
-				// optimized description lookup, might not succeed
-				d = file.getContentDescription();
-				if (d != null)
-					return d.getCharset();
-			}
-			catch (CoreException e) {
-				/*
-				 * should not be possible given the accessible and file type
-				 * check above
-				 */
-			}
-			InputStream contents = null;
-			try {
-				contents = file.getContents();
-				IContentDescription description = Platform.getContentTypeManager().getDescriptionFor(contents, file.getName(), new QualifiedName[]{IContentDescription.CHARSET});
-				if (description != null) {
-					return description.getCharset();
-				}
-			}
-			catch (IOException e) {
-				// will try to cleanup in finally
+				return file.getCharset(true);
 			}
 			catch (CoreException e) {
 				Logger.logException(e);
 			}
-			finally {
-				if (contents != null) {
-					try {
-						contents.close();
-					}
-					catch (Exception e) {
-						// not sure how to recover at this point
-					}
-				}
-			}
 		}
 		return ResourcesPlugin.getEncoding();
 	}
@@ -188,13 +168,12 @@
 		}
 	}
 
-	private void findTasks(IFile file, final TaskTag[] taskTags, IProgressMonitor monitor) {
+	private void findTasks(IFile file, final TaskTag[] taskTags, final IProgressMonitor monitor) {
 		try {
 			IModelHandler handler = ModelHandlerRegistry.getInstance().getHandlerFor(file);
 
 			// records if the optimized streamish parse was possible
 			boolean didStreamParse = false;
-			final IProgressMonitor progressMonitor = monitor;
 			final IEncodedDocument defaultDocument = handler.getDocumentLoader().createNewStructuredDocument();
 			if (defaultDocument instanceof IStructuredDocument) {
 				RegionParser parser = ((IStructuredDocument) defaultDocument).getParser();
@@ -204,6 +183,7 @@
 					StructuredDocumentRegionParser documentParser = (StructuredDocumentRegionParser) parser;
 					final IDocument textDocument = new Document();
 					setDocumentContent(textDocument, file.getContents(true), charset);
+					monitor.beginTask("", textDocument.getLength());
 					documentParser.reset(new DocumentReader(textDocument));
 					documentParser.addStructuredDocumentRegionHandler(new StructuredDocumentRegionHandler() {
 						public void nodeParsed(IStructuredDocumentRegion documentRegion) {
@@ -217,9 +197,10 @@
 								documentRegion.getPrevious().setPrevious(null);
 								documentRegion.getPrevious().setNext(null);
 							}
-							if (progressMonitor.isCanceled()) {
+							if (monitor.isCanceled()) {
 								textDocument.set(""); //$NON-NLS-1$
 							}
+							monitor.worked(documentRegion.getLength());
 						}
 
 						public void resetNodes() {
@@ -231,6 +212,7 @@
 			if (!didStreamParse) {
 				// Use a StructuredDocument
 				IEncodedDocument document = handler.getDocumentLoader().createNewStructuredDocument(file);
+				monitor.beginTask("", document.getLength());
 				if (document instanceof IStructuredDocument) {
 					IStructuredDocumentRegion documentRegion = ((IStructuredDocument) document).getFirstStructuredDocumentRegion();
 					while (documentRegion != null) {
@@ -239,6 +221,7 @@
 							ITextRegion comment = regions.get(j);
 							findTasks(document, taskTags, documentRegion, comment);
 						}
+						monitor.worked(documentRegion.getLength());
 						documentRegion = documentRegion.getNext();
 					}
 				}
@@ -248,11 +231,12 @@
 			Logger.logException("Exception with " + file.getFullPath().toString(), e); //$NON-NLS-1$
 		}
 		catch (CharacterCodingException e) {
-			Logger.log(Logger.INFO, "StructuredFileTaskScanner encountered CharacterCodingException reading " + file.getLocation()); //$NON-NLS-1$
+			Logger.log(Logger.INFO, "StructuredFileTaskScanner encountered CharacterCodingException reading " + file.getFullPath()); //$NON-NLS-1$
 		}
 		catch (Exception e) {
 			Logger.logException("Exception with " + file.getFullPath().toString(), e); //$NON-NLS-1$
 		}
+		monitor.done();
 	}
 
 	protected String getCommentedText(IDocument document, int begin, int length) throws BadLocationException {
@@ -273,7 +257,7 @@
 			findTasks(file, taskTags, monitor);
 		}
 		if (Logger.DEBUG_TASKSPERF) {
-			System.out.println("" + (System.currentTimeMillis() - time0) + "ms for " + file.getLocation()); //$NON-NLS-1$ //$NON-NLS-2$
+			System.out.println("" + (System.currentTimeMillis() - time0) + "ms for " + file.getFullPath()); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		return (Map[]) fNewMarkerAttributeMaps.toArray(new Map[fNewMarkerAttributeMaps.size()]);
 	}
@@ -307,6 +291,18 @@
 		}
 	}
 
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.IExecutableExtension#setInitializationData(org.eclipse.core.runtime.IConfigurationElement,
+	 *      java.lang.String, java.lang.Object)
+	 */
+	public void setInitializationData(IConfigurationElement config, String propertyName, Object data) throws CoreException {
+		if (data != null && data instanceof String) {
+			runtimeMarkerType = data.toString();
+		}
+	}
+
 	boolean shouldScan(IResource r) {
 		// skip "dot" files
 		String s = r.getName();
diff --git a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/TaskScanningJob.java b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/TaskScanningJob.java
index 64867ae..1183beb 100644
--- a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/TaskScanningJob.java
+++ b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/TaskScanningJob.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     
@@ -17,6 +17,7 @@
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.ProjectScope;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -25,6 +26,10 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.runtime.preferences.DefaultScope;
+import org.eclipse.core.runtime.preferences.IPreferencesService;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.wst.sse.core.internal.Logger;
 import org.eclipse.wst.sse.core.internal.SSECoreMessages;
 import org.eclipse.wst.sse.core.internal.SSECorePlugin;
@@ -35,8 +40,8 @@
  * Queueing Job for processing deltas and projects.
  */
 class TaskScanningJob extends Job {
-	static final int JOB_DELAY_DELTA = 500;
-	private static final int JOB_DELAY_PROJECT = 1000;
+	static final int JOB_DELAY_DELTA = 400;
+	private static final int JOB_DELAY_PROJECT = 2000;
 	static final String TASK_TAG_PROJECTS_ALREADY_SCANNED = "task-tag-projects-already-scanned"; //$NON-NLS-1$
 	private List fQueue = null;
 
@@ -47,39 +52,46 @@
 		super(SSECoreMessages.TaskScanner_0);
 		fQueue = new ArrayList();
 		setPriority(Job.DECORATE);
-		setSystem(false);
+		setSystem(true);
+		setUser(false);
 
 		SSECorePlugin.getDefault().getPluginPreferences().setDefault(TASK_TAG_PROJECTS_ALREADY_SCANNED, ""); //$NON-NLS-1$
 	}
 
-	synchronized void addDelta(IResourceDelta delta) {
-		fQueue.add(delta);
-		if (Logger.DEBUG_TASKSJOB) {
-			String kind = null;
-			switch (delta.getKind()) {
-				case IResourceDelta.ADDED :
-					kind = " [IResourceDelta.ADDED]"; //$NON-NLS-1$
-					break;
-				case IResourceDelta.CHANGED :
-					kind = " [IResourceDelta.CHANGED]"; //$NON-NLS-1$
-					break;
-				case IResourceDelta.REMOVED :
-					kind = " [IResourceDelta.REMOVED]"; //$NON-NLS-1$
-					break;
-				case IResourceDelta.ADDED_PHANTOM :
-					kind = " [IResourceDelta.ADDED_PHANTOM]"; //$NON-NLS-1$
-					break;
-				case IResourceDelta.REMOVED_PHANTOM :
-					kind = " [IResourceDelta.REMOVED_PHANTOM]"; //$NON-NLS-1$
-					break;
+	synchronized void addProjectDelta(IResourceDelta delta) {
+		IResource projectResource = delta.getResource();
+
+		if (projectResource.getType() == IResource.PROJECT) {
+			if (isEnabledOnProject((IProject) projectResource)) {
+				fQueue.add(delta);
+				if (Logger.DEBUG_TASKSJOB) {
+					String kind = null;
+					switch (delta.getKind()) {
+						case IResourceDelta.ADDED :
+							kind = " [IResourceDelta.ADDED]"; //$NON-NLS-1$
+							break;
+						case IResourceDelta.CHANGED :
+							kind = " [IResourceDelta.CHANGED]"; //$NON-NLS-1$
+							break;
+						case IResourceDelta.REMOVED :
+							kind = " [IResourceDelta.REMOVED]"; //$NON-NLS-1$
+							break;
+						case IResourceDelta.ADDED_PHANTOM :
+							kind = " [IResourceDelta.ADDED_PHANTOM]"; //$NON-NLS-1$
+							break;
+						case IResourceDelta.REMOVED_PHANTOM :
+							kind = " [IResourceDelta.REMOVED_PHANTOM]"; //$NON-NLS-1$
+							break;
+					}
+					System.out.println("Adding delta " + delta.getFullPath() + kind); //$NON-NLS-1$
+				}
+				schedule(JOB_DELAY_DELTA);
 			}
-			System.out.println("Adding delta " + delta.getFullPath() + kind); //$NON-NLS-1$
 		}
-		schedule(JOB_DELAY_DELTA);
 	}
 
 	synchronized void addProject(IProject project) {
-		if (isEnabledProject(project)) {
+		if (projectHasNotBeenFullyScanned(project)) {
 			fQueue.add(project);
 			if (Logger.DEBUG_TASKSJOB) {
 				System.out.println("Adding project " + project.getName()); //$NON-NLS-1$
@@ -105,8 +117,14 @@
 		}
 		return shuttingDown;
 	}
+	
+	private boolean isEnabledOnProject(IProject p) {
+		IPreferencesService preferencesService = Platform.getPreferencesService();
+		IScopeContext[] lookupOrder = new IScopeContext[]{new ProjectScope(p), new InstanceScope(), new DefaultScope()};
+		return preferencesService.getBoolean(TaskTagPreferenceKeys.TASK_TAG_NODE, TaskTagPreferenceKeys.TASK_TAG_ENABLE, false, lookupOrder);
+	}
 
-	private boolean isEnabledProject(IResource project) {
+	private boolean projectHasNotBeenFullyScanned(IResource project) {
 		String[] projectsScanned = StringUtils.unpack(SSECorePlugin.getDefault().getPluginPreferences().getString(TASK_TAG_PROJECTS_ALREADY_SCANNED));
 
 		boolean shouldScan = true;
@@ -131,7 +149,7 @@
 		if (frameworkIsShuttingDown())
 			return Status.CANCEL_STATUS;
 
-		validateRememberedProjectList(TASK_TAG_PROJECTS_ALREADY_SCANNED);
+		cleanupRememberedProjectList(TASK_TAG_PROJECTS_ALREADY_SCANNED);
 
 		IStatus status = null;
 		List currentQueue = retrieveQueue();
@@ -139,7 +157,7 @@
 		int ticks = currentQueue.size();
 		String taskName = null;
 		if (Logger.DEBUG_TASKSJOB) {
-			taskName = "Scanning (" + ticks + " work items)"; //$NON-NLS-1$ //$NON-NLS-2$
+			taskName = SSECoreMessages.TaskScanningJob_0 + " (" + ticks + " work items)"; //$NON-NLS-1$ //$NON-NLS-2$
 		}
 		else {
 			taskName = SSECoreMessages.TaskScanningJob_0;
@@ -152,17 +170,19 @@
 			if (frameworkIsShuttingDown())
 				return Status.CANCEL_STATUS;
 			try {
-				scanMonitor = new SubProgressMonitor(monitor, 1);
+				scanMonitor = new SubProgressMonitor(monitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
 				if (o instanceof IResourceDelta) {
 					WorkspaceTaskScanner.getInstance().scan((IResourceDelta) o, scanMonitor);
 				}
 				else if (o instanceof IProject) {
 					WorkspaceTaskScanner.getInstance().scan((IProject) o, scanMonitor);
-					String[] projectsPreviouslyScanned = StringUtils.unpack(SSECorePlugin.getDefault().getPluginPreferences().getString(TASK_TAG_PROJECTS_ALREADY_SCANNED));
-					String[] updatedProjects = new String[projectsPreviouslyScanned.length + 1];
-					updatedProjects[projectsPreviouslyScanned.length] = ((IResource) o).getName();
-					System.arraycopy(projectsPreviouslyScanned, 0, updatedProjects, 0, projectsPreviouslyScanned.length);
-					SSECorePlugin.getDefault().getPluginPreferences().setValue(TASK_TAG_PROJECTS_ALREADY_SCANNED, StringUtils.pack(updatedProjects));
+					if(!scanMonitor.isCanceled() ) {
+						String[] projectsPreviouslyScanned = StringUtils.unpack(SSECorePlugin.getDefault().getPluginPreferences().getString(TASK_TAG_PROJECTS_ALREADY_SCANNED));
+						String[] updatedProjects = new String[projectsPreviouslyScanned.length + 1];
+						updatedProjects[projectsPreviouslyScanned.length] = ((IResource) o).getName();
+						System.arraycopy(projectsPreviouslyScanned, 0, updatedProjects, 0, projectsPreviouslyScanned.length);
+						SSECorePlugin.getDefault().getPluginPreferences().setValue(TASK_TAG_PROJECTS_ALREADY_SCANNED, StringUtils.pack(updatedProjects));
+					}
 				}
 			}
 			catch (Exception e) {
@@ -191,7 +211,7 @@
 		return status;
 	}
 
-	private void validateRememberedProjectList(String preferenceName) {
+	private void cleanupRememberedProjectList(String preferenceName) {
 		String[] rememberedProjectNames = StringUtils.unpack(SSECorePlugin.getDefault().getPluginPreferences().getString(preferenceName));
 		IResource[] workspaceProjects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
 		String[] projectNames = new String[workspaceProjects.length];
@@ -219,4 +239,4 @@
 			SSECorePlugin.getDefault().getPluginPreferences().setValue(preferenceName, StringUtils.pack((String[]) projectNamesToRemember.toArray(new String[projectNamesToRemember.size()])));
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/TaskScanningScheduler.java b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/TaskScanningScheduler.java
index e15f13f..1ae5680 100644
--- a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/TaskScanningScheduler.java
+++ b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/TaskScanningScheduler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
  *     
@@ -53,7 +53,7 @@
 				if (resource.getType() == IResource.ROOT)
 					return true;
 				else if (resource.getType() == IResource.PROJECT) {
-					fJob.addDelta(delta);
+					fJob.addProjectDelta(delta);
 					return false;
 				}
 			}
@@ -103,7 +103,9 @@
 		/*
 		 * According to
 		 * http://www.eclipse.org/eclipse/development/performance/bloopers.html,
-		 * POST_CHANGE listeners add a trivial performance cost
+		 * POST_CHANGE listeners add a trivial performance cost.
+		 * 
+		 * Always add listener since we might be enabled per-project even if disabled workspace-wide.
 		 */
 		ResourcesPlugin.getWorkspace().addResourceChangeListener(scheduler.visitor, IResourceChangeEvent.POST_CHANGE);
 
diff --git a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/WorkspaceTaskScanner.java b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/WorkspaceTaskScanner.java
index 500067e..ad34bad 100644
--- a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/WorkspaceTaskScanner.java
+++ b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/WorkspaceTaskScanner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -13,8 +13,10 @@
 package org.eclipse.wst.sse.core.internal.tasks;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
@@ -25,8 +27,10 @@
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.IWorkspaceRunnable;
 import org.eclipse.core.resources.ProjectScope;
+import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.core.runtime.content.IContentDescription;
@@ -46,6 +50,8 @@
  */
 class WorkspaceTaskScanner {
 	private static WorkspaceTaskScanner _instance = null;
+	static final String SYNTHETIC_TASK = "org.eclipse.wst.sse.task-synthetic";
+	static final String MODIFICATION_STAMP = "org.eclipse.wst.sse.modification-stamp";
 
 	static synchronized WorkspaceTaskScanner getInstance() {
 		if (_instance == null) {
@@ -196,24 +202,17 @@
 			String name = resource.getName();
 			if (resource.isAccessible() && !resource.isDerived() && !resource.isPhantom() && !resource.isTeamPrivateMember() && name.length() != 0 && name.charAt(0) != '.') {
 				if ((resource.getType() & IResource.FOLDER) > 0 || (resource.getType() & IResource.PROJECT) > 0) {
-					SubProgressMonitor childMonitor = new SubProgressMonitor(scanMonitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
 					IResource[] children = ((IContainer) resource).members();
-					childMonitor.beginTask("", children.length); //$NON-NLS-1$
+					scanMonitor.beginTask("", children.length); //$NON-NLS-1$
 					for (int i = 0; i < children.length; i++) {
-						internalScan(project, children[i], childMonitor);
+						internalScan(project, children[i], new SubProgressMonitor(scanMonitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
 					}
-					childMonitor.done();
+					scanMonitor.done();
 				}
 				else if ((resource.getType() & IResource.FILE) > 0) {
 					scanFile(project, fCurrentTaskTags, (IFile) resource, scanMonitor);
-					scanMonitor.worked(1);
 				}
 			}
-			else {
-				scanMonitor.worked(1);
-
-			}
-			scanMonitor.done();
 		}
 		catch (CoreException e) {
 			Logger.logException(e);
@@ -229,71 +228,90 @@
 			if (!resource.isDerived() && !resource.isPhantom() && !resource.isTeamPrivateMember() && name.length() != 0 && name.charAt(0) != '.') {
 				if ((resource.getType() & IResource.FOLDER) > 0 || (resource.getType() & IResource.PROJECT) > 0) {
 					IResourceDelta[] children = delta.getAffectedChildren();
+					monitor.beginTask("", children.length);
 					if (name.length() != 0 && name.charAt(0) != '.' && children.length > 0) {
-						SubProgressMonitor childMonitor = new SubProgressMonitor(monitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
-						childMonitor.beginTask("", children.length); //$NON-NLS-1$
 						for (int i = children.length - 1; i >= 0; i--) {
-							internalScan(children[i], new SubProgressMonitor(childMonitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
+							internalScan(children[i], new SubProgressMonitor(monitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
 						}
-						childMonitor.done();
 					}
-					else {
-						monitor.worked(1);
-					}
+					monitor.done();
 				}
 				else if ((resource.getType() & IResource.FILE) > 0) {
 					if ((delta.getKind() & IResourceDelta.ADDED) > 0 || ((delta.getKind() & IResourceDelta.CHANGED) > 0 && (delta.getFlags() & IResourceDelta.CONTENT) > 0)) {
 						IFile file = (IFile) resource;
 						scanFile(file.getProject(), fCurrentTaskTags, file, monitor);
 					}
-					monitor.worked(1);
 				}
 			}
-			else {
-				monitor.worked(1);
-			}
 		}
 		catch (Exception e) {
-			monitor.done();
 			Logger.logException(e);
 		}
 	}
 
-	private void replaceTaskMarkers(final IFile file, final Map markerAttributes[], IProgressMonitor monitor) {
+	private void replaceTaskMarkers(final IFile file, final String[] markerTypes, final Map markerAttributeMaps[], IProgressMonitor monitor) {
 		final IFile finalFile = file;
 		if (file.isAccessible()) {
 			try {
 				IWorkspaceRunnable r = new IWorkspaceRunnable() {
 					public void run(IProgressMonitor progressMonitor) throws CoreException {
+						progressMonitor.beginTask("", 2);//$NON-NLS-1$
 						try {
 							/*
 							 * Delete old Task markers (don't delete regular
-							 * Tasks since that includes user-defined ones
+							 * Tasks since that includes user-defined ones)
 							 */
-							file.deleteMarkers(DEFAULT_MARKER_TYPE, true, IResource.DEPTH_ZERO);
+							for (int i = 0; i < markerTypes.length; i++) {
+								if (IMarker.TASK.equals(markerTypes[i])) {
+									// only remove if synthetic
+									IMarker[] foundMarkers = file.findMarkers(markerTypes[i], true, IResource.DEPTH_ZERO);
+									for (int j = 0; j < foundMarkers.length; j++) {
+										if (foundMarkers[j].getAttribute(SYNTHETIC_TASK) != null) {
+											foundMarkers[j].delete();
+										}
+									}
+								}
+								else {
+									file.deleteMarkers(markerTypes[i], true, IResource.DEPTH_ZERO);
+								}
+							}
 						}
 						catch (CoreException e) {
 							Logger.logException("exception deleting old tasks", e); //$NON-NLS-1$ 
 						}
-						if (markerAttributes != null && markerAttributes.length > 0) {
+						finally {
+							progressMonitor.worked(1);
+						}
+						if (markerAttributeMaps != null && markerAttributeMaps.length > 0) {
 							if (Logger.DEBUG_TASKS) {
-								System.out.println("" + markerAttributes.length + " tasks for " + file.getFullPath()); //$NON-NLS-1$ //$NON-NLS-2$
+								System.out.println("" + markerAttributeMaps.length + " tasks for " + file.getFullPath()); //$NON-NLS-1$ //$NON-NLS-2$
 							}
-							for (int i = 0; i < markerAttributes.length; i++) {
-								String specifiedMarkerType = (String) markerAttributes[i].get(IMarker.TASK);
-								IMarker marker = finalFile.createMarker(specifiedMarkerType != null ? specifiedMarkerType : DEFAULT_MARKER_TYPE);
-								marker.setAttributes(markerAttributes[i]);
+							for (int i = 0; i < markerAttributeMaps.length; i++) {
+								String specifiedMarkerType = (String) markerAttributeMaps[i].get(IMarker.TASK);
+								IMarker marker = finalFile.createMarker(specifiedMarkerType);
+								marker.setAttributes(markerAttributeMaps[i]);
+								marker.setAttribute(IMarker.USER_EDITABLE, Boolean.FALSE);
+								marker.setAttribute(MODIFICATION_STAMP, Long.toString(file.getModificationStamp()));
+								if (IMarker.TASK.equals(specifiedMarkerType)) {
+									// set to synthetic and make user editable
+									marker.setAttribute(SYNTHETIC_TASK, true);
+								}
 							}
 						}
+						progressMonitor.worked(1);
+						progressMonitor.done();
 					}
 				};
-				if(file.isAccessible()) {
-					finalFile.getWorkspace().run(r, file, IWorkspace.AVOID_UPDATE, monitor);
+				if (file.isAccessible()) {
+					finalFile.getWorkspace().run(r, ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(file), IWorkspace.AVOID_UPDATE, monitor);
 				}
 			}
 			catch (CoreException e1) {
 				Logger.logException(e1);
 			}
+			catch(OperationCanceledException e) {
+				// not an error condition
+			}
 		}
 	}
 
@@ -313,16 +331,9 @@
 		if (Logger.DEBUG_TASKSOVERALLPERF) {
 			time0 = System.currentTimeMillis();
 		}
-		try {
-			scanMonitor.beginTask("", project.members().length); //$NON-NLS-1$
-			if (init(project)) {
-				internalScan(project, project, scanMonitor);
-				shutdownDelegates(project);
-			}
-			scanMonitor.done();
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
+		if (init(project)) {
+			internalScan(project, project, scanMonitor);
+			shutdownDelegates(project);
 		}
 		if (Logger.DEBUG_TASKSOVERALLPERF) {
 			System.out.println("" + (System.currentTimeMillis() - time0) + "ms for " + project.getFullPath()); //$NON-NLS-1$ //$NON-NLS-2$
@@ -336,12 +347,10 @@
 		if (Logger.DEBUG_TASKSOVERALLPERF) {
 			time0 = System.currentTimeMillis();
 		}
-		monitor.beginTask("", 1); //$NON-NLS-1$
 		if (init(delta.getResource())) {
 			internalScan(delta, monitor);
 			shutdownDelegates(delta.getResource().getProject());
 		}
-		monitor.done();
 		if (Logger.DEBUG_TASKSOVERALLPERF) {
 			System.out.println("" + (System.currentTimeMillis() - time0) + "ms for " + delta.getFullPath()); //$NON-NLS-1$ //$NON-NLS-2$
 		}
@@ -351,9 +360,17 @@
 		if (monitor.isCanceled())
 			return;
 
-		SubProgressMonitor scannerMonitor = new SubProgressMonitor(monitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
+		// 3 "stages"
+		monitor.beginTask("", 8);//$NON-NLS-1$
+		monitor.subTask(file.getFullPath().toString().substring(1));
+
 		List markerAttributes = null;
 		IContentType[] types = detectContentTypes(file);
+		Set markerTypes = new HashSet(3);
+		// Always included for safety and migration
+		markerTypes.add(DEFAULT_MARKER_TYPE);
+		monitor.worked(1);
+
 		IFileTaskScanner[] fileScanners = null;
 		if (types != null) {
 			if (fCurrentIgnoreContentTypes.length == 0) {
@@ -373,17 +390,21 @@
 				}
 				fileScanners = registry.getFileTaskScanners((IContentType[]) validTypes.toArray(new IContentType[validTypes.size()]));
 			}
+			monitor.worked(1);
+
 			if (fileScanners.length > 0) {
+				IProgressMonitor scannerMonitor = new SubProgressMonitor(monitor, 3, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
+				scannerMonitor.beginTask("", fileScanners.length); //$NON-NLS-1$
 				for (int j = 0; fileScanners != null && j < fileScanners.length; j++) {
-					if (scannerMonitor.isCanceled())
+					if (monitor.isCanceled())
 						continue;
-					scannerMonitor.beginTask(file.getFullPath().toString(), fileScanners.length); //$NON-NLS-1$
 					try {
 						if (!fActiveScanners.contains(fileScanners[j]) && !monitor.isCanceled()) {
 							fileScanners[j].startup(file.getProject());
 							fActiveScanners.add(fileScanners[j]);
 						}
-						Map[] taskMarkerAttributes = fileScanners[j].scan(file, taskTags, scannerMonitor);
+						markerTypes.add(fileScanners[j].getMarkerType());
+						Map[] taskMarkerAttributes = fileScanners[j].scan(file, taskTags, new SubProgressMonitor(scannerMonitor, 1, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK));
 						/*
 						 * TODO: pool the marker results so there's only one
 						 * operation creating them
@@ -392,9 +413,12 @@
 							if (markerAttributes == null) {
 								markerAttributes = new ArrayList();
 							}
+							if (!taskMarkerAttributes[i].containsKey(IMarker.TASK)) {
+								taskMarkerAttributes[i].put(IMarker.TASK, fileScanners[j].getMarkerType());
+							}
+							taskMarkerAttributes[i].put(IMarker.SOURCE_ID, fileScanners[j].getClass().getName());
 							markerAttributes.add(taskMarkerAttributes[i]);
 						}
-						scannerMonitor.worked(1);
 					}
 					catch (Exception e) {
 						Logger.logException(file.getFullPath().toString(), e);
@@ -402,21 +426,24 @@
 				}
 				scannerMonitor.done();
 			}
-			else {
-				monitor.worked(1);
-			}
 		}
+		else {
+			monitor.worked(4);
+		}
+
 		if (monitor.isCanceled())
 			return;
 		// only update markers if we ran a scanner on this file
 		if (fileScanners != null && fileScanners.length > 0) {
+			IProgressMonitor markerUpdateMonitor = new SubProgressMonitor(monitor, 3, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
 			if (markerAttributes != null) {
-				replaceTaskMarkers(file, (Map[]) markerAttributes.toArray(new Map[markerAttributes.size()]), monitor);
-			}
-			else {
-				replaceTaskMarkers(file, null, monitor);
+				replaceTaskMarkers(file, (String[]) markerTypes.toArray(new String[markerTypes.size()]), (Map[]) markerAttributes.toArray(new Map[markerAttributes.size()]), markerUpdateMonitor);
 			}
 		}
+		else {
+			monitor.worked(3);
+		}
+		monitor.done();
 	}
 
 	private void shutdownDelegates(IProject project) {
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/StructuredModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/StructuredModelManager.java
index 0d54a3b..346f987 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/StructuredModelManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/StructuredModelManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
index 176cd50..0de5ec0 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/FileBufferModelManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -27,6 +27,7 @@
 import org.eclipse.core.filebuffers.IFileBufferListener;
 import org.eclipse.core.filebuffers.ITextFileBuffer;
 import org.eclipse.core.filebuffers.ITextFileBufferManager;
+import org.eclipse.core.filebuffers.LocationKind;
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
@@ -54,7 +55,14 @@
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.sse.core.internal.util.URIResolver;
 
-
+/**
+ * Not intended to be subclassed, referenced or instantiated by clients.
+ * 
+ * This class is responsible for coordinating the creation and disposal of
+ * structured models built on structured documents found in FileBuffers. It
+ * allows the SSE Model Manager to act as a client to the
+ * TextFileBufferManager.
+ */
 public class FileBufferModelManager {
 
 	static class DocumentInfo {
@@ -82,6 +90,13 @@
 
 		int bufferReferenceCount = 0;
 		int modelReferenceCount = 0;
+
+		/**
+		 * The default value is the "compatibility" kind from before there was
+		 * a LocationKind hint object--this is expected to be overridden at
+		 * runtime.
+		 */
+		LocationKind locationKind = LocationKind.NORMALIZE;
 	}
 
 	/**
@@ -138,6 +153,7 @@
 		}
 
 		public void setFileBaseLocation(String newLocation) {
+			fLocation = new Path(newLocation);
 		}
 
 		public void setProject(IProject newProject) {
@@ -149,18 +165,19 @@
 	 * resolver
 	 */
 	class CommonURIResolver implements URIResolver {
-		IPath fLocation;
+		String fLocation;
 		IPath fPath;
+		private IProject fProject;
 		final static String SEPARATOR = "/"; //$NON-NLS-1$ 
 		final static String FILE_PREFIX = "file://"; //$NON-NLS-1$
 
-		CommonURIResolver(IPath path, IPath location) {
-			fLocation = location;
-			fPath = path;
+		CommonURIResolver(IFile workspaceFile) {
+			fPath = workspaceFile.getFullPath();
+			fProject = workspaceFile.getProject();
 		}
 
 		public String getFileBaseLocation() {
-			return fLocation.toString();
+			return fLocation;
 		}
 
 		public String getLocationByURI(String uri) {
@@ -195,7 +212,7 @@
 		}
 
 		public IProject getProject() {
-			return ResourcesPlugin.getWorkspace().getRoot().getProject(fPath.segment(0));
+			return fProject;
 		}
 
 		public IContainer getRootLocation() {
@@ -203,7 +220,7 @@
 			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(root));
 			for (int i = 0; i < files.length; i++) {
 				if ((files[i].getType() & IResource.FOLDER) == IResource.FOLDER) {
-					if (((IFolder) files[i]).getFullPath().isPrefixOf(fPath)) {
+					if (fPath.isPrefixOf(((IFolder) files[i]).getFullPath())) {
 						return (IFolder) files[i];
 					}
 				}
@@ -216,9 +233,11 @@
 		}
 
 		public void setFileBaseLocation(String newLocation) {
+			fLocation = newLocation;
 		}
 
 		public void setProject(IProject newProject) {
+			fProject = newProject;
 		}
 	}
 
@@ -398,6 +417,28 @@
 		return id;
 	}
 
+	/**
+	 * Registers "interest" in a document, or rather the file buffer that
+	 * backs it. Intentionally used to alter the reference count of the file
+	 * buffer so it is not accidentally disposed of.
+	 */
+	public boolean connect(IDocument document) {
+		DocumentInfo info = (DocumentInfo) fDocumentMap.get(document);
+		if( info == null)
+			return false;
+		ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
+		IPath bufferLocation = info.buffer.getLocation();
+		boolean isOK = true;
+		try {
+			bufferManager.connect(bufferLocation, info.locationKind, null);
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+			isOK = false;
+		}
+		return isOK;
+	}
+
 	URIResolver createURIResolver(ITextFileBuffer buffer) {
 		IPath location = buffer.getLocation();
 		IFile workspaceFile = FileBuffers.getWorkspaceFileAtLocation(location);
@@ -406,9 +447,20 @@
 			IProject project = workspaceFile.getProject();
 			resolver = (URIResolver) project.getAdapter(URIResolver.class);
 			if (resolver == null) {
-				resolver = new CommonURIResolver(workspaceFile.getFullPath(), workspaceFile.getLocation());
+				resolver = new CommonURIResolver(workspaceFile);
 			}
-			resolver.setFileBaseLocation(workspaceFile.getLocation().toString());
+			
+			String baseLocation = null;
+			if (workspaceFile.getLocation() != null) {
+				baseLocation = workspaceFile.getLocation().toString();
+			}
+			if (baseLocation == null && workspaceFile.getLocationURI() != null) {
+				baseLocation = workspaceFile.getLocationURI().toString();
+			}
+			if (baseLocation == null) {
+				baseLocation = workspaceFile.getFullPath().toString();
+			}
+			resolver.setFileBaseLocation(baseLocation);
 		}
 		else {
 			resolver = new ExternalURIResolver(location);
@@ -472,6 +524,28 @@
 		return type;
 	}
 
+	/**
+	 * Deregisters "interest" in a document, or rather the file buffer that
+	 * backs it. Intentionally used to alter the reference count of the file
+	 * buffer so that it knows it can safely be disposed of.
+	 */
+	public boolean disconnect(IDocument document) {
+		DocumentInfo info = (DocumentInfo) fDocumentMap.get(document);
+		if( info == null)
+			return false;
+		ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
+		IPath bufferLocation = info.buffer.getLocation();
+		boolean isOK = true;
+		try {
+			bufferManager.disconnect(bufferLocation, info.locationKind, null);
+		}
+		catch (CoreException e) {
+			Logger.logException(e);
+			isOK = false;
+		}
+		return isOK;
+	}
+
 	public ITextFileBuffer getBuffer(IDocument document) {
 		if (document == null) {
 			Exception iae = new IllegalArgumentException("can not get a buffer without a document reference"); //$NON-NLS-1$ 
@@ -506,11 +580,24 @@
 			if (Logger.DEBUG_FILEBUFFERMODELMANAGEMENT) {
 				Logger.log(Logger.INFO, "FileBufferModelManager connecting to File " + location); //$NON-NLS-1$
 			}
-			bufferManager.connect(location, getProgressMonitor());
-			ITextFileBuffer buffer = bufferManager.getTextFileBuffer(location);
+			bufferManager.connect(location, LocationKind.LOCATION, getProgressMonitor());
+			ITextFileBuffer buffer = bufferManager.getTextFileBuffer(location, LocationKind.LOCATION);
 			if (buffer != null) {
 				DocumentInfo info = (DocumentInfo) fDocumentMap.get(buffer.getDocument());
-				info.selfConnected = true;
+				if (info != null) {
+					/*
+					 * Note: "info" being null at this point is a slight
+					 * error.
+					 * 
+					 * The connect call from above (or at some time earlier in
+					 * the session) would have notified the FileBufferMapper
+					 * of the creation of the corresponding text buffer and
+					 * created the DocumentInfo object for
+					 * IStructuredDocuments.
+					 */
+					info.locationKind = LocationKind.LOCATION;
+					info.selfConnected = true;
+				}
 				/*
 				 * Check the document type. Although returning null for
 				 * unknown documents would be fair, try to get a model if
@@ -523,13 +610,14 @@
 				else {
 					/*
 					 * 190768 - Quick diff marks do not disappear in the
-					 * vertical ruler of JavaScript editor
+					 * vertical ruler of JavaScript editor and
 					 * 
-					 * Disconnect the buffer if it's not an
-					 * IStructuredDocument since we won't be disconnecting
-					 * during the release of an IStructuredModel
+					 * 193805 - Changes are not thrown away when close
+					 * with no save for files with no structured model
+					 * associated with them (text files, javascript files,
+					 * etc) in web project
 					 */
-					bufferManager.disconnect(location, getProgressMonitor());
+					bufferManager.disconnect(location, LocationKind.IFILE, getProgressMonitor());
 				}
 			}
 		}
@@ -550,15 +638,15 @@
 		ITextFileBufferManager bufferManager = FileBuffers.getTextFileBufferManager();
 		try {
 			if (Logger.DEBUG_FILEBUFFERMODELMANAGEMENT) {
-				Logger.log(Logger.INFO, "FileBufferModelManager connecting to IFile " + file.getLocation()); //$NON-NLS-1$
+				Logger.log(Logger.INFO, "FileBufferModelManager connecting to IFile " + file.getFullPath()); //$NON-NLS-1$
 			}
 			// see TextFileDocumentProvider#createFileInfo about why we use
 			// IFile#getFullPath
 			// here, not IFile#getLocation.
 			IPath location = file.getFullPath();
 			if (location != null) {
-				bufferManager.connect(location, getProgressMonitor());
-				ITextFileBuffer buffer = bufferManager.getTextFileBuffer(location);
+				bufferManager.connect(location, LocationKind.IFILE, getProgressMonitor());
+				ITextFileBuffer buffer = bufferManager.getTextFileBuffer(location, LocationKind.IFILE);
 				if (buffer != null) {
 					DocumentInfo info = (DocumentInfo) fDocumentMap.get(buffer.getDocument());
 					if (info != null) {
@@ -573,6 +661,7 @@
 						 * DocumentInfo object for IStructuredDocuments.
 						 */
 						info.selfConnected = true;
+						info.locationKind = LocationKind.IFILE;
 					}
 					/*
 					 * Check the document type. Although returning null for
@@ -586,19 +675,20 @@
 					else {
 						/*
 						 * 190768 - Quick diff marks do not disappear in the
-						 * vertical ruler of JavaScript editor
+						 * vertical ruler of JavaScript editor and
 						 * 
-						 * Disconnect the buffer if it's not an
-						 * IStructuredDocument since we won't be disconnecting
-						 * during the release of an IStructuredModel
+						 * 193805 - Changes are not thrown away when close
+						 * with no save for files with no structured model
+						 * associated with them (text files, javascript files,
+						 * etc) in web project
 						 */
-						bufferManager.disconnect(location, getProgressMonitor());
+						bufferManager.disconnect(location, LocationKind.IFILE, getProgressMonitor());
 					}
 				}
 			}
 		}
 		catch (CoreException e) {
-			Logger.logException("Error getting model for " + file.getLocation(), e); //$NON-NLS-1$
+			Logger.logException("Error getting model for " + file.getFullPath(), e); //$NON-NLS-1$
 		}
 		return model;
 	}
@@ -682,7 +772,7 @@
 				}
 				IPath location = info.buffer.getLocation();
 				try {
-					FileBuffers.getTextFileBufferManager().disconnect(location, getProgressMonitor());
+					FileBuffers.getTextFileBufferManager().disconnect(location, info.locationKind, getProgressMonitor());
 				}
 				catch (CoreException e) {
 					Logger.logException("Error releasing model for " + location, e); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/IExecutionDelegate.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/IExecutionDelegate.java
index 2004918..097eb6d 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/IExecutionDelegate.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/IExecutionDelegate.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ILockable.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ILockable.java
index 0eec235..c8aa500 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ILockable.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ILockable.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/JSPAwareAdapterFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/JSPAwareAdapterFactory.java
index 72bc183..a9e2292 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/JSPAwareAdapterFactory.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/JSPAwareAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ModelManagerPluginRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ModelManagerPluginRegistryReader.java
index 2a4b786..2b9025f 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ModelManagerPluginRegistryReader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ModelManagerPluginRegistryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NullMemento.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NullMemento.java
index af3c72c..9da4305 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NullMemento.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/NullMemento.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/PropagatingAdapter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/PropagatingAdapter.java
index b1f7b5a..401c484 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/PropagatingAdapter.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/PropagatingAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/PropagatingAdapterFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/PropagatingAdapterFactory.java
index 9092882..70c84da 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/PropagatingAdapterFactory.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/PropagatingAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java
index 698469f..bb4e8f3 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePlugin.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePluginResources.properties b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePluginResources.properties
index a522f19..b6f01f8 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePluginResources.properties
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/SSECorePluginResources.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
+# Copyright (c) 2001, 2005 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/AbstractStructuredCleanupProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/AbstractStructuredCleanupProcessor.java
index 3343a7a..f525d5f 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/AbstractStructuredCleanupProcessor.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/AbstractStructuredCleanupProcessor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -22,16 +22,20 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.DocumentRewriteSession;
+import org.eclipse.jface.text.DocumentRewriteSessionType;
 import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IDocumentExtension4;
 import org.eclipse.jface.text.IRegion;
 import org.eclipse.jface.text.TextUtilities;
 import org.eclipse.wst.sse.core.StructuredModelManager;
 import org.eclipse.wst.sse.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Node;
 
@@ -92,7 +96,7 @@
 			return;
 
 		IStructuredModel structuredModel = null;
-		//OutputStream outputStream = null;
+		// OutputStream outputStream = null;
 		try {
 			// setup structuredModel
 			// Note: We are getting model for edit. Will save model if model
@@ -106,7 +110,7 @@
 			if (!structuredModel.isSharedForEdit() && structuredModel.isSaveNeeded())
 				structuredModel.save();
 		} finally {
-			//ensureClosed(outputStream, null);
+			// ensureClosed(outputStream, null);
 			// release from model manager
 			if (structuredModel != null)
 				structuredModel.releaseFromEdit();
@@ -119,7 +123,7 @@
 
 		if (start >= 0 && length >= 0 && start + length <= document.getLength()) {
 			IStructuredModel structuredModel = null;
-			//OutputStream outputStream = null;
+			// OutputStream outputStream = null;
 			try {
 				// setup structuredModel
 				// Note: We are getting model for edit. Will save model if
@@ -133,7 +137,7 @@
 				if (!structuredModel.isSharedForEdit() && structuredModel.isSaveNeeded())
 					structuredModel.save();
 			} finally {
-				//ensureClosed(outputStream, null);
+				// ensureClosed(outputStream, null);
 				// release from model manager
 				if (structuredModel != null)
 					structuredModel.releaseFromEdit();
@@ -143,7 +147,7 @@
 
 	public void cleanupFile(IFile file) throws IOException, CoreException {
 		IStructuredModel structuredModel = null;
-		//OutputStream outputStream = null;
+		// OutputStream outputStream = null;
 		try {
 			// setup structuredModel
 			structuredModel = StructuredModelManager.getModelManager().getModelForRead(file);
@@ -152,11 +156,11 @@
 			cleanupModel(structuredModel, 0, structuredModel.getStructuredDocument().getLength());
 
 			// save output to file
-			//outputStream = new
+			// outputStream = new
 			// FileOutputStream(file.getLocation().toString());
 			structuredModel.save(file);
 		} finally {
-			//ensureClosed(outputStream, null);
+			// ensureClosed(outputStream, null);
 			// release from model manager
 			if (structuredModel != null)
 				structuredModel.releaseFromRead();
@@ -165,7 +169,7 @@
 
 	public void cleanupFile(IFile file, int start, int length) throws IOException, CoreException {
 		IStructuredModel structuredModel = null;
-		//OutputStream outputStream = null;
+		// OutputStream outputStream = null;
 		try {
 			// setup structuredModel
 			structuredModel = StructuredModelManager.getModelManager().getModelForRead(file);
@@ -174,11 +178,11 @@
 			cleanupModel(structuredModel, start, length);
 
 			// save output to file
-			//outputStream = new
+			// outputStream = new
 			// FileOutputStream(file.getLocation().toString());
 			structuredModel.save(file);
 		} finally {
-			//ensureClosed(outputStream, null);
+			// ensureClosed(outputStream, null);
 			// release from model manager
 			if (structuredModel != null)
 				structuredModel.releaseFromRead();
@@ -188,7 +192,7 @@
 	public void cleanupFileName(String fileName) throws IOException, CoreException {
 		IStructuredModel structuredModel = null;
 		InputStream inputStream = null;
-		//OutputStream outputStream = null;
+		// OutputStream outputStream = null;
 		try {
 			// setup structuredModel
 			inputStream = new FileInputStream(fileName);
@@ -198,10 +202,10 @@
 			cleanupModel(structuredModel, 0, structuredModel.getStructuredDocument().getLength());
 
 			// save output to file
-			//outputStream = new FileOutputStream(fileName);
+			// outputStream = new FileOutputStream(fileName);
 			structuredModel.save();
 		} finally {
-			//ensureClosed(outputStream, inputStream);
+			// ensureClosed(outputStream, inputStream);
 			// release from model manager
 			if (structuredModel != null)
 				structuredModel.releaseFromRead();
@@ -211,7 +215,7 @@
 	public void cleanupFileName(String fileName, int start, int length) throws IOException, CoreException {
 		IStructuredModel structuredModel = null;
 		InputStream inputStream = null;
-		//OutputStream outputStream = null;
+		// OutputStream outputStream = null;
 		try {
 			// setup structuredModel
 			inputStream = new FileInputStream(fileName);
@@ -221,10 +225,10 @@
 			cleanupModel(structuredModel, start, length);
 
 			// save output to file
-			//outputStream = new FileOutputStream(fileName);
+			// outputStream = new FileOutputStream(fileName);
 			structuredModel.save();
 		} finally {
-			//ensureClosed(outputStream, inputStream);
+			// ensureClosed(outputStream, inputStream);
 			// release from model manager
 			if (structuredModel != null)
 				structuredModel.releaseFromRead();
@@ -249,61 +253,64 @@
 					boolean done = false;
 					Node eachNode = firstNode;
 					Node nextNode = null;
-					while (!done) {
-						// update "done"
-						done = (eachNode == lastNode);
+
+					// https://bugs.eclipse.org/bugs/show_bug.cgi?id=123621
+					// if doing any sort of cleanup, set up rewrite session/modelchanged
+					IDocumentExtension4 docExt4 = null;
+					if (structuredModel.getStructuredDocument() instanceof IDocumentExtension4) {
+						docExt4 = (IDocumentExtension4) structuredModel.getStructuredDocument();
+					}
+					DocumentRewriteSession rewriteSession = null;
+
+					try {
+						// whenever formatting model, fire
+						// abouttochange/modelchanged
+						structuredModel.aboutToChangeModel();
+						rewriteSession = (docExt4 == null || docExt4.getActiveRewriteSession() != null) ? null : docExt4.startRewriteSession(DocumentRewriteSessionType.UNRESTRICTED);
+
+						while (!done) {
+							// update "done"
+							done = (eachNode == lastNode);
 
 						// get next sibling before cleanup because eachNode
-						// may
-						// be deleted,
-						// for example when it's an empty text node
-						nextNode = eachNode.getNextSibling();
+							// may
+							// be deleted,
+							// for example when it's an empty text node
+							nextNode = eachNode.getNextSibling();
 
-						// cleanup selected node(s)
-						cleanupNode(eachNode);
+							// cleanup selected node(s)
+							cleanupNode(eachNode);
 
-						// update each node
-						if (nextNode != null && nextNode.getParentNode() == null)
-							// nextNode is deleted during cleanup
-							eachNode = eachNode.getNextSibling();
-						else
-							eachNode = nextNode;
+							// update each node
+							if (nextNode != null && nextNode.getParentNode() == null)
+								// nextNode is deleted during cleanup
+								eachNode = eachNode.getNextSibling();
+							else
+								eachNode = nextNode;
 
-						// This should not be needed, but just in case
-						// something went wrong with with eachNode.
-						// We don't want an infinite loop here.
-						if (eachNode == null)
-							done = true;
+							// This should not be needed, but just in case
+							// something went wrong with with eachNode.
+							// We don't want an infinite loop here.
+							if (eachNode == null)
+								done = true;
+						}
+
+						// format source
+						if (getFormatSourcePreference(structuredModel)) {
+							// format the document
+							IStructuredFormatProcessor formatProcessor = getFormatProcessor();
+							formatProcessor.formatModel(structuredModel);
+						}
 					}
-
-					// format source
-					if (getFormatSourcePreference(structuredModel)) {
-						// format the document
-						IStructuredFormatProcessor formatProcessor = getFormatProcessor();
-						formatProcessor.formatModel(structuredModel);
-					}
-
-					// convert EOL codes
-					if (getConvertEOLCodesPreference(structuredModel)) {
-						IDocument document = structuredModel.getStructuredDocument();
-						String endOfLineCode = getEOLCodePreference(structuredModel);
-						String endOfLineCodeString = null;
-						if (endOfLineCode.compareTo(CommonEncodingPreferenceNames.LF) == 0)
-							endOfLineCodeString = CommonEncodingPreferenceNames.STRING_LF;
-						else if (endOfLineCode.compareTo(CommonEncodingPreferenceNames.CR) == 0)
-							endOfLineCodeString = CommonEncodingPreferenceNames.STRING_CR;
-						else if (endOfLineCode.compareTo(CommonEncodingPreferenceNames.CRLF) == 0)
-							endOfLineCodeString = CommonEncodingPreferenceNames.STRING_CRLF;
-						if (endOfLineCodeString != null) {
-							convertLineDelimiters(document, endOfLineCodeString);
-							// DMW: 8/24/2002 setting line delimiter in
-							// document allows
-							// subsequent editing to insert the same line
-							// delimiter.
-							if (document instanceof IStructuredDocument) {
-								((IStructuredDocument) document).setLineDelimiter(endOfLineCodeString);
-							}
-							structuredModel.setDirtyState(true);
+					finally {
+						// we need two finally's, just in case first fails
+						try {
+							if ((docExt4 != null) && (rewriteSession != null))
+								docExt4.stopRewriteSession(rewriteSession);
+						}
+						finally {
+							// always make sure to fire changedmodel when done
+							structuredModel.changedModel();
 						}
 					}
 				}
@@ -334,7 +341,7 @@
 
 	protected void convertLineDelimiters(IDocument document, String newDelimiter) {
 		final int lineCount = document.getNumberOfLines();
-		Map partitioners = TextUtilities.removeDocumentPartitioners(document);		
+		Map partitioners = TextUtilities.removeDocumentPartitioners(document);
 		try {
 			for (int i = 0; i < lineCount; i++) {
 				final String delimiter = document.getLineDelimiter(i);
@@ -414,7 +421,8 @@
 
 	protected String getEOLCodePreference(IStructuredModel structuredModel) {
 
-		String eolCode = System.getProperty("line.separator"); //$NON-NLS-1$
+		IScopeContext[] scopeContext = new IScopeContext[]{new InstanceScope()};
+		String eolCode = Platform.getPreferencesService().getString(Platform.PI_RUNTIME, Platform.PREF_LINE_SEPARATOR, null, scopeContext);
 
 		IStructuredCleanupHandler cleanupHandler = getCleanupHandler((Node) structuredModel.getIndexedRegion(0));
 		if (cleanupHandler != null) {
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupHandler.java
index 1a0dd8a..4f98956 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupPreferences.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupPreferences.java
index a848532..7f5058d 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupPreferences.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupPreferences.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupProcessor.java
index 5b31c42..27bce4c 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupProcessor.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/IStructuredCleanupProcessor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredCleanupPreferences.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredCleanupPreferences.java
index 65fbfcf..a834418 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredCleanupPreferences.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredCleanupPreferences.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredContentCleanupHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredContentCleanupHandler.java
index 00869af..6c06ca0 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredContentCleanupHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredContentCleanupHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredContentCleanupHandlerImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredContentCleanupHandlerImpl.java
index 6b4c9d0..27a6246 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredContentCleanupHandlerImpl.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/cleanup/StructuredContentCleanupHandlerImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/AbstractDocumentLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/AbstractDocumentLoader.java
index e2298d6..ea9959e 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/AbstractDocumentLoader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/AbstractDocumentLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/DocumentReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/DocumentReader.java
index f9e0d67..ae28004 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/DocumentReader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/DocumentReader.java
@@ -4,7 +4,7 @@
  * 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
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/IDocumentCharsetDetector.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/IDocumentCharsetDetector.java
index 697b70e..4ea8b04 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/IDocumentCharsetDetector.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/IDocumentCharsetDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/IDocumentLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/IDocumentLoader.java
index e6b7b48..20a99d6 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/IDocumentLoader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/IDocumentLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/StructuredDocumentFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/StructuredDocumentFactory.java
index fe5df34..41618fa 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/StructuredDocumentFactory.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/document/StructuredDocumentFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/filebuffers/BasicStructuredDocumentFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/filebuffers/BasicStructuredDocumentFactory.java
index e69240e..16467b6 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/filebuffers/BasicStructuredDocumentFactory.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/filebuffers/BasicStructuredDocumentFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/AbstractStructuredFormatProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/AbstractStructuredFormatProcessor.java
index bd18d11..4b554be 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/AbstractStructuredFormatProcessor.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/AbstractStructuredFormatProcessor.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -41,6 +41,11 @@
 	protected IStructuredFormatContraints fFormatContraints = null;
 	protected IProgressMonitor fProgressMonitor = null;
 	public boolean refreshFormatPreferences = true; // special flag for JUnit
+	/*
+	 * Max length of text to be formatted to be considered a "small change"
+	 * Used for document rewrite session type.
+	 */
+	private final int MAX_SMALL_FORMAT_SIZE = 1000;
 
 	protected void ensureClosed(OutputStream outputStream, InputStream inputStream) {
 
@@ -161,11 +166,11 @@
 				// Note: We are getting model for edit. Will save model if
 				// model changed.
 				structuredModel = StructuredModelManager.getModelManager().getExistingModelForEdit(document);
-				
+
 				if (structuredModel != null) {
 					// format
 					formatModel(structuredModel, start, length);
-	
+
 					// save model if needed
 					if (!structuredModel.isSharedForEdit() && structuredModel.isSaveNeeded())
 						structuredModel.save();
@@ -315,7 +320,8 @@
 			try {
 				// whenever formatting model, fire abouttochange/modelchanged
 				structuredModel.aboutToChangeModel();
-				rewriteSession = (docExt4 == null) ? null : docExt4.startRewriteSession(DocumentRewriteSessionType.UNRESTRICTED);
+				DocumentRewriteSessionType rewriteType = (length > MAX_SMALL_FORMAT_SIZE) ? DocumentRewriteSessionType.UNRESTRICTED : DocumentRewriteSessionType.UNRESTRICTED_SMALL;
+				rewriteSession = (docExt4 == null || docExt4.getActiveRewriteSession() != null) ? null : docExt4.startRewriteSession(rewriteType);
 
 				if ((start == 0) && (length == structuredModel.getStructuredDocument().getLength()))
 					setFormatWithSiblingIndent(structuredModel, false);
@@ -373,7 +379,7 @@
 					structuredModel.changedModel();
 				}
 			}
-			
+
 			if (Logger.DEBUG_FORMAT) {
 				long endTime = System.currentTimeMillis();
 				System.out.println("formatModel time: " + (endTime - startTime)); //$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatContraints.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatContraints.java
index 87dc721..2730043 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatContraints.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatContraints.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatPreferences.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatPreferences.java
index f7819f3..2cef142 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatPreferences.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatPreferences.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatProcessor.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatProcessor.java
index 2f24813..b83aac3 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatProcessor.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatProcessor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatter.java
index c22ee6b..6c23d12 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatter.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/IStructuredFormatter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/StructuredFormatContraints.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/StructuredFormatContraints.java
index 6995c4f..ca47e41 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/StructuredFormatContraints.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/StructuredFormatContraints.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/StructuredFormatPreferences.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/StructuredFormatPreferences.java
index 67ad7cd..96f1b92 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/StructuredFormatPreferences.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/format/StructuredFormatPreferences.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/AbstractModelHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/AbstractModelHandler.java
index 629fa26..6c45577 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/AbstractModelHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/AbstractModelHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/EmbeddedTypeHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/EmbeddedTypeHandler.java
index 4e37d5c..2e4d314 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/EmbeddedTypeHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/EmbeddedTypeHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/IDocumentTypeHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/IDocumentTypeHandler.java
index b50c852..d4862a4 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/IDocumentTypeHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/IDocumentTypeHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/IModelHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/IModelHandler.java
index 102b3fa..c2947d4 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/IModelHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/modelhandler/IModelHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockMarker.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockMarker.java
index 267ff54..468b360 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockMarker.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockMarker.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -31,14 +31,6 @@
 	// etc.)
 	protected String fContext;
 
-	/**
-	 * It's not appropriate to make "empty" BlockMarker, so we'll mark as
-	 * private.
-	 */
-	private BlockMarker() {
-		super();
-	}
-
 	public BlockMarker(String tagName, ITextRegion marker, String context) {
 		this(tagName, marker, context, true);
 	}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockTagParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockTagParser.java
index 2c5d4d9..6bd6b70 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockTagParser.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockTagParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockTokenizer.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockTokenizer.java
index 6b83c46..b5ad534 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockTokenizer.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/BlockTokenizer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/JSPCapableParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/JSPCapableParser.java
index 367f5a6..3d55973 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/JSPCapableParser.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/JSPCapableParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/RegionParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/RegionParser.java
index ec8e972..628dfc6 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/RegionParser.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/RegionParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionHandler.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionHandler.java
index e9ce306..31e5cba 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionHandler.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionHandlerExtension.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionHandlerExtension.java
index 01db26f..85f2d7b 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionHandlerExtension.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionHandlerExtension.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionParser.java
index 34a2499..d4bbe5d 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionParser.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionParserExtension.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionParserExtension.java
index c3d8c1c..474950e 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionParserExtension.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/StructuredDocumentRegionParserExtension.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/TagMarker.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/TagMarker.java
index b732e6b..3de225d 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/TagMarker.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/ltk/parser/TagMarker.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractModelLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractModelLoader.java
index a9512d2..caafaaf 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractModelLoader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractModelLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -98,7 +98,7 @@
 			model.setStructuredDocument((IStructuredDocument) structuredDocument);
 			addFactories(model, getAdapterFactories());
 			//
-			initEmbeddedTypePre(model);
+			initEmbeddedTypePre(model, (IStructuredDocument) structuredDocument);
 			initEmbeddedTypePost(model);
 			// For types with propagating adapters, its important
 			// that the propagating adapter be in place before the contents
@@ -122,7 +122,7 @@
 		// that the propagating adapter be in place before the contents
 		// are set.
 		preLoadAdapt(model);
-		initEmbeddedTypePre(model);
+		initEmbeddedTypePre(model, structuredDocument);
 
 		model.setStructuredDocument(structuredDocument);
 		//
@@ -183,12 +183,28 @@
 	abstract public IDocumentLoader getDocumentLoader();
 
 	/**
-	 * Method initEmbeddedType. Nothing to do here in super class.
+	 * Method initEmbeddedType, "pre"-stage. Nothing to do here in super class.
 	 * 
 	 * @param model
 	 */
 	protected void initEmbeddedTypePre(IStructuredModel model) {
 	}
+
+	/**
+	 * Method initEmbeddedType, "pre"-stage. By default simply calls the
+	 * version of this method that uses only the structured model.
+	 * 
+	 * @param model
+	 *            the model for which to initialize
+	 * @param structuredDocument
+	 *            The structured document containing the text content for the
+	 *            model, which may be a different instance than what is in the
+	 *            model at this stage.
+	 */
+	protected void initEmbeddedTypePre(IStructuredModel model, IStructuredDocument structuredDocument) {
+		initEmbeddedTypePre(model);
+	}
+		
 	protected void initEmbeddedTypePost(IStructuredModel model) {
 	}
 
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractStructuredModel.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractStructuredModel.java
index 1bf561d..06e54162 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractStructuredModel.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/AbstractStructuredModel.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -1391,11 +1391,8 @@
 		// we must guard against reassigning an id to one that we already
 		// are managing.
 		if (getModelManager() != null) {
-			IStructuredModel newModel = getModelManager().getExistingModelForEdit(newId);
-			if (newModel != null) {
-				// be sure to release the reference we got unexepectantly
-				// (and no longer need)
-				newModel.releaseFromEdit();
+			boolean inUse = ((ModelManagerImpl)getModelManager()).isIdInUse(newId);
+			if (inUse) {
 				throw new ResourceInUse();
 			}
 		}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/FactoryRegistry.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/FactoryRegistry.java
index f536729..d0303903 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/FactoryRegistry.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/FactoryRegistry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/LifecycleNotificationManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/LifecycleNotificationManager.java
index ee2a932..adcf010 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/LifecycleNotificationManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/LifecycleNotificationManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelLifecycleEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelLifecycleEvent.java
index acab6d5..def66d0 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelLifecycleEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelLifecycleEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
index 9ec3006..06f6906 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/model/ModelManagerImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -21,12 +21,14 @@
 import java.io.OutputStream;
 import java.io.Reader;
 import java.io.UnsupportedEncodingException;
-import java.util.Dictionary;
 import java.util.Enumeration;
-import java.util.Hashtable;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.NoSuchElementException;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
 
 import org.eclipse.core.filebuffers.FileBuffers;
 import org.eclipse.core.filebuffers.ITextFileBuffer;
@@ -41,6 +43,8 @@
 import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.ILock;
+import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.jface.text.IRegion;
@@ -79,7 +83,7 @@
 /**
  * Not intended to be subclassed, referenced or instantiated by clients.
  * 
- * This class is responsible for creating, retriving, and caching
+ * This class is responsible for creating, retrieving, and caching
  * StructuredModels It retrieves the cached objects by an id which is
  * typically a String representing the resources URI. Note: Its important that
  * all clients that share a resource do so using <b>identical </b>
@@ -90,37 +94,6 @@
  */
 public class ModelManagerImpl implements IModelManager {
 
-	static class EnumeratedModelIds implements Enumeration {
-
-		Enumeration fSharedObjectKeys;
-
-		protected EnumeratedModelIds(Dictionary sharedObjects) {
-
-			if (sharedObjects == null) {
-				// if no shared objects yet, return empty enumeration
-				fSharedObjectKeys = null;
-			}
-			else {
-				fSharedObjectKeys = sharedObjects.keys();
-			}
-		}
-
-		public boolean hasMoreElements() {
-
-			boolean result = false;
-			if (fSharedObjectKeys != null)
-				result = fSharedObjectKeys.hasMoreElements();
-			return result;
-		}
-
-		public Object nextElement() {
-
-			if (fSharedObjectKeys == null)
-				throw new NoSuchElementException();
-			return fSharedObjectKeys.nextElement();
-		}
-	}
-
 	static class ReadEditType {
 		ReadEditType(String type) {
 		}
@@ -129,16 +102,45 @@
 	/**
 	 * A Data class to track our shared objects
 	 */
-	static class SharedObject {
+	 static class SharedObject {
 		int referenceCountForEdit;
 		int referenceCountForRead;
 		IStructuredModel theSharedModel;
-
+		boolean initializing = true;
+		boolean doWait = true;
+		
 		SharedObject(IStructuredModel sharedModel) {
 			theSharedModel = sharedModel;
 			referenceCountForRead = 0;
 			referenceCountForEdit = 0;
 		}
+		
+		/**
+		 * Waits until this shared object has been attempted to be loaded. 
+		 * The load is "attempted" because not all loads result in a model. 
+		 * However, upon leaving this method, theShareModel variable
+		 * is up-to-date.
+		 */
+		public synchronized void waitForLoadAttempt() {
+			while(initializing) {
+				try {
+					wait();
+				}
+				catch (InterruptedException e) {
+					// ignore interruption!
+				}
+			}
+		}
+		
+		/**
+		 * Flags this model as loaded. All waiting methods on 
+		 * {@link #waitForLoadAttempt()} will proceed after this 
+		 * method returns. 
+		 */
+		public synchronized void setLoaded() {
+			initializing = false;
+			notifyAll();
+		}
 	}
 
 	private Exception debugException = null;
@@ -162,72 +164,189 @@
 		return instance;
 	}
 
-	private final ReadEditType EDIT = new ReadEditType("edit"); //$NON-NLS-1$
 	/**
 	 * Our cache of managed objects
 	 */
-	private Dictionary fManagedObjects;
+	private Map fManagedObjects;
 
 	private ModelHandlerRegistry fModelHandlerRegistry;
-	private int modelManagerStateChanging;
 	private final ReadEditType READ = new ReadEditType("read"); //$NON-NLS-1$
-
+	private final ReadEditType EDIT = new ReadEditType("edit"); //$NON-NLS-1$
+	
+	private final ILock SYNC = Job.getJobManager().newLock();
 	/**
-	 * Intentially default access only.
+	 * Intentionally default access only.
 	 * 
 	 */
 	ModelManagerImpl() {
-
 		super();
-		fManagedObjects = new Hashtable();
+		fManagedObjects = new HashMap();
+		// To prevent deadlocks:  always acquire multiple locks in this order: SYNC, sharedObject. 
+		// DO NOT acquire a SYNC within a sharedObject lock, unless you already own the SYNC lock
+		// Tip: Try to hold the smallest number of locks you can
 	}
 
-	private IStructuredModel _commonCreateModel(InputStream inputStream, String id, IModelHandler handler, URIResolver resolver, ReadEditType rwType, EncodingRule encodingRule) throws IOException {
-
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		IStructuredModel model = null;
-		if (sharedObject == null) {
-			try {
-				model = _commonCreateModel(id, handler, resolver);
-				IModelLoader loader = handler.getModelLoader();
-				loader.load(Utilities.getMarkSupportedStream(inputStream), model, encodingRule);
+	private IStructuredModel _commonCreateModel(IFile file, String id, IModelHandler handler, URIResolver resolver, ReadEditType rwType, EncodingRule encodingRule) throws IOException,CoreException {
+		SharedObject sharedObject = null;
+		
+		SYNC.acquire();
+		sharedObject = (SharedObject) fManagedObjects.get(id);
+		SYNC.release();
+		
+		while(true) {
+			if (sharedObject!=null) {
+				sharedObject.waitForLoadAttempt();
 			}
-			catch (ResourceInUse e) {
-				// impossible, since we've already found
-				handleProgramError(e);
-			}
-			if (model != null) {
-				// add to our cache
-				sharedObject = new SharedObject(model);
-				_initCount(sharedObject, rwType);
+			SYNC.acquire();
+			// we know this object's model has passed the load, however, we don't know 
+			// it's reference count status. It might have already been disposed. Or it could have 
+			// been disposed and a concurrent thread has already begun loading it, in which case
+			// we should use the sharedobject they are loading. 
+			// NOTE: This pattern is applied 3 times in this class, but only doc'd once. The logic is 
+			// exactly the same. 
+			SharedObject testObject = (SharedObject) fManagedObjects.get(id);
+			if (testObject==null) {
+				// null means it's been disposed, we need to do the work to reload it.
+				sharedObject = new SharedObject(null);
 				fManagedObjects.put(id, sharedObject);
+				SYNC.release();
+				_doCommonCreateModel(file, id, handler, resolver, rwType, encodingRule,
+						sharedObject);
+				break;
+			} else if (sharedObject == testObject) {
+				// if nothing happened, just increment the could and return the shared model
+				synchronized(sharedObject) {
+					if (sharedObject.theSharedModel!=null) {
+						_incrCount(sharedObject, rwType);
+					}
+				}
+				SYNC.release();
+				break;
+			} else {
+				// sharedObject != testObject which means the object we were waiting on has been disposed
+				// a replacement has already been placed in the managedObjects table. Through away our
+				// stale sharedObject and continue on with the one we got from the queue. Note: We don't know its
+				// state, so continue the waitForLoad-check loop. 
+				SYNC.release();
+				sharedObject = testObject;
 			}
 		}
-		else {
-			// if shared object is initially in our cache, then simply
-			// increment its ref count,
-			// and return the object.
-			_incrCount(sharedObject, rwType);
-		}
+		
 		// we expect to always return something
 		if (sharedObject == null) {
 			debugException = new Exception("instance only for stack trace"); //$NON-NLS-1$
 			Logger.logException("Program Error: no model recorded for id " + id, debugException); //$NON-NLS-1$
 		}
-
-
+		
 		// note: clients must call release for each time they call get.
-		return sharedObject.theSharedModel;
+		return sharedObject==null ? null : sharedObject.theSharedModel;
+	}
+
+	private void _decrCount(SharedObject sharedObject, ReadEditType type) {
+		if (type == READ) {
+			sharedObject.referenceCountForRead--;
+			FileBufferModelManager.getInstance().disconnect(sharedObject.theSharedModel.getStructuredDocument());
+		}
+		else if (type == EDIT) {
+			sharedObject.referenceCountForEdit--;
+			FileBufferModelManager.getInstance().disconnect(sharedObject.theSharedModel.getStructuredDocument());
+		}
+		else
+			throw new IllegalArgumentException();
+	}
+
+	private void _doCommonCreateModel(IFile file, String id, IModelHandler handler,
+			URIResolver resolver, ReadEditType rwType, EncodingRule encodingRule,
+			SharedObject sharedObject) throws CoreException, IOException {
+		boolean doRemove = false;
+		synchronized(sharedObject) {
+			InputStream inputStream = null;
+			IStructuredModel model = null;
+			try {
+				model = _commonCreateModel(id, handler, resolver);
+				IModelLoader loader = handler.getModelLoader();
+				inputStream = Utilities.getMarkSupportedStream(file.getContents(true));
+				loader.load(Utilities.getMarkSupportedStream(inputStream), model, encodingRule);
+			}
+			catch (ResourceInUse e) {
+				// impossible, since we've already found
+				handleProgramError(e);
+			} finally {
+				if (inputStream!=null) {
+					try { 
+						inputStream.close();
+					} catch(IOException e) {
+					}
+				}
+			}
+			if (model != null) {
+				// add to our cache
+				sharedObject.theSharedModel=model;
+				_initCount(sharedObject, rwType);
+			} else {
+				doRemove = true;
+			}
+		}
+		if (doRemove) {
+			SYNC.acquire();	
+			fManagedObjects.remove(id);	
+			SYNC.release();
+		}
+		sharedObject.setLoaded();
 	}
 
 	private IStructuredModel _commonCreateModel(InputStream inputStream, String id, IModelHandler handler, URIResolver resolver, ReadEditType rwType, String encoding, String lineDelimiter) throws IOException {
-
+		
 		if (id == null) {
 			throw new IllegalArgumentException("Program Error: id may not be null"); //$NON-NLS-1$
 		}
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		IStructuredModel model = null;
-		if (sharedObject == null) {
+		SharedObject sharedObject = null;
+	
+		SYNC.acquire();
+		sharedObject = (SharedObject) fManagedObjects.get(id);
+		SYNC.release();
+		
+		while(true) {
+			if (sharedObject!=null) {
+				sharedObject.waitForLoadAttempt();
+			}
+			SYNC.acquire();
+			SharedObject testObject = (SharedObject) fManagedObjects.get(id);
+			if (testObject==null) {
+				// it was removed ,so lets create it
+				sharedObject = new SharedObject(null);
+				fManagedObjects.put(id, sharedObject);
+				SYNC.release();
+				_doCommonCreateModel(inputStream, id, handler, resolver, rwType,
+						encoding, lineDelimiter, sharedObject);
+				break;
+			} else if (sharedObject == testObject) {
+				synchronized(sharedObject) {
+					if (sharedObject.theSharedModel!=null) {
+						_incrCount(sharedObject, rwType);
+					}
+				}
+				SYNC.release();
+				break;
+			} else {
+				SYNC.release();
+				sharedObject = testObject;
+			}
+		}
+		
+		// we expect to always return something
+		Assert.isNotNull(sharedObject, "Program Error: no model recorded for id " + id); //$NON-NLS-1$
+		// note: clients must call release for each time they call get.
+		return sharedObject.theSharedModel;
+	
+	}
+
+	private void _doCommonCreateModel(InputStream inputStream, String id, IModelHandler handler,
+			URIResolver resolver, ReadEditType rwType, String encoding, String lineDelimiter,
+			SharedObject sharedObject) throws IOException {
+		boolean doRemove = false;
+		synchronized(sharedObject) {
+			IStructuredModel model = null;
 			try {
 				model = _commonCreateModel(id, handler, resolver);
 				IModelLoader loader = handler.getModelLoader();
@@ -241,22 +360,19 @@
 				handleProgramError(e);
 			}
 			if (model != null) {
-				// add to our cache
-				sharedObject = new SharedObject(model);
+				sharedObject.theSharedModel = model;
 				_initCount(sharedObject, rwType);
-				fManagedObjects.put(id, sharedObject);
+			} else {
+				doRemove = true;
 			}
 		}
-		else {
-			// if shared object is initially in our cache, then simply
-			// increment its ref count,
-			// and return the object.
-			_incrCount(sharedObject, rwType);
+		if (doRemove) {
+			SYNC.acquire();
+			// remove it if we didn't get one back
+			fManagedObjects.remove(id);
+			SYNC.release();
 		}
-		// we expect to always return something
-		Assert.isNotNull(sharedObject, "Program Error: no model recorded for id " + id); //$NON-NLS-1$
-		// note: clients must call release for each time they call get.
-		return sharedObject.theSharedModel;
+		sharedObject.setLoaded();
 	}
 
 	private IStructuredModel _commonCreateModel(String id, IModelHandler handler, URIResolver resolver) throws ResourceInUse {
@@ -287,15 +403,7 @@
 			String id = calculateId(iFile);
 			IModelHandler handler = calculateType(iFile);
 			URIResolver resolver = calculateURIResolver(iFile);
-			InputStream inputStream = Utilities.getMarkSupportedStream(iFile.getContents(true));
-			try {
-				model = _commonCreateModel(inputStream, id, handler, resolver, rwType, encodingRule);
-			}
-			finally {
-				if (inputStream != null) {
-					inputStream.close();
-				}
-			}
+			model = _commonCreateModel(iFile, id, handler, resolver, rwType, encodingRule);
 		}
 
 		return model;
@@ -314,36 +422,72 @@
 		if (id == null)
 			throw new IllegalArgumentException("Program Error: id may not be null"); //$NON-NLS-1$
 
-		IStructuredModel model = null;
-
+		SharedObject sharedObject = null;
 		if (file != null && file.exists()) {
-			SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-			if (sharedObject == null) {
-				model = FileBufferModelManager.getInstance().getModel(file);
-				if (model != null) {
-					// add to our cache
-					sharedObject = new SharedObject(model);
-					_initCount(sharedObject, rwType);
+			SYNC.acquire();
+			sharedObject = (SharedObject) fManagedObjects.get(id);
+			SYNC.release();
+			
+			while(true) {
+				if (sharedObject!=null) {
+					sharedObject.waitForLoadAttempt();
+				}
+				SYNC.acquire();
+				SharedObject testObject = (SharedObject) fManagedObjects.get(id);
+				if (testObject==null) {
+					// it was removed ,so lets create it
+					sharedObject = new SharedObject(null);
 					fManagedObjects.put(id, sharedObject);
+					
+					SYNC.release();
+					_doCommonGetModel(file, id, sharedObject,rwType);
+					break;
+				} else if (sharedObject == testObject) {
+					synchronized(sharedObject) {
+						if (sharedObject.theSharedModel!=null) {
+							_incrCount(sharedObject, rwType);
+						}
+					}
+					SYNC.release();
+					break;
+				} else {
+					// we got a different object than what we were expecting
+					SYNC.release();
+					// two threads were interested in models for the same id. 
+					// The other thread one, so lets back off and try again. 
+					sharedObject = testObject; 
 				}
 			}
-			else {
-				// if shared object is initially in our cache, then simply
-				// increment its ref count,
-				// and return the object.
-				_incrCount(sharedObject, rwType);
-			}
+		}
+		
+		// if we don't know how to create a model
+		// for this type of file, return null
+	
+		// note: clients must call release for each time they call
+		// get.
+			
+		return sharedObject==null ? null : sharedObject.theSharedModel;
+	}
 
-			// if we don't know how to create a model
-			// for this type of file, return null
-			if (sharedObject != null) {
-				// note: clients must call release for each time they call
-				// get.
-				model = sharedObject.theSharedModel;
+	private void _doCommonGetModel(IFile file, String id, SharedObject sharedObject,ReadEditType rwType) {
+		boolean doRemove = false;
+		synchronized(sharedObject) {
+			sharedObject.doWait=false;
+			IStructuredModel model = FileBufferModelManager.getInstance().getModel(file);
+			sharedObject.doWait=true;
+			if (model != null) {
+				sharedObject.theSharedModel=model;
+				_initCount(sharedObject, rwType);
+			} else {
+				doRemove = true;
 			}
 		}
-
-		return model;
+		if (doRemove) {
+			SYNC.acquire();
+			fManagedObjects.remove(id);
+			SYNC.release();
+		}
+		sharedObject.setLoaded();
 	}
 
 	private SharedObject _commonNewModel(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
@@ -354,24 +498,36 @@
 		if (iFile.exists() && !force) {
 			throw new ResourceAlreadyExists();
 		}
-
+		
+		SharedObject sharedObject = null;
 		String id = calculateId(iFile);
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-
-		if (sharedObject != null && !force) {
-			// if in cache already, and force is not true, then this is an
-			// error
-			// in call
-			throw new ResourceInUse();
+		try {
+			SYNC.acquire();
+		
+			 sharedObject = (SharedObject) fManagedObjects.get(id);
+	
+			if (sharedObject != null && !force) {
+				// if in cache already, and force is not true, then this is an
+				// error
+				// in call
+				throw new ResourceInUse();
+			}
+			
+			sharedObject = new SharedObject(null);
+			fManagedObjects.put(id, sharedObject);
+			
+		} finally {
+			SYNC.release();
 		}
-
-		// if we get to hear without above exceptions, then all is ok
+		
+		// if we get to here without above exceptions, then all is ok
 		// to get model like normal, but set 'new' attribute (where the
 		// 'new' attribute means this is a model without a corresponding
 		// underlying resource.
 		aSharedModel = FileBufferModelManager.getInstance().getModel(iFile);
 		aSharedModel.setNewState(true);
-		sharedObject = addToCache(id, aSharedModel);
+		
+		sharedObject.theSharedModel=aSharedModel;
 		// when resource is provided, we can set
 		// synchronization stamp ... otherwise client should
 		// Note: one client which does this is FileModelProvider.
@@ -380,44 +536,77 @@
 	}
 
 	public IStructuredModel _getModelFor(IStructuredDocument document, ReadEditType accessType) {
-		IStructuredModel model = null;
+
 		String id = FileBufferModelManager.getInstance().calculateId(document);
 		Assert.isNotNull(id, "unknown IStructuredDocument " + document); //$NON-NLS-1$
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null) {
-			sharedObject = (SharedObject) fManagedObjects.get(id);
-			_incrCount(sharedObject, accessType);
-			model = sharedObject.theSharedModel;
+		
+		SharedObject sharedObject = null;
+		SYNC.acquire();
+		sharedObject = (SharedObject) fManagedObjects.get(id);
+		SYNC.release();
+		
+		while(true) {
+			if (sharedObject!=null) {
+				sharedObject.waitForLoadAttempt();
+			}
+			SYNC.acquire();
+			SharedObject testObject = (SharedObject) fManagedObjects.get(id);
+			if (testObject==null) {
+				sharedObject = new SharedObject(null);
+				fManagedObjects.put(id, sharedObject);
+				SYNC.release();
+				synchronized(sharedObject) {
+					sharedObject.theSharedModel = FileBufferModelManager.getInstance().getModel(document);
+					_initCount(sharedObject, accessType);
+					sharedObject.setLoaded();
+				}
+				break;
+			} else if (sharedObject == testObject) {
+				synchronized(sharedObject) {
+					Assert.isTrue(sharedObject.referenceCountForEdit + sharedObject.referenceCountForRead > 0);
+					if (sharedObject.theSharedModel!=null) {
+						_incrCount(sharedObject, accessType);
+					}
+				}
+				SYNC.release();
+				break;
+			} else {
+				SYNC.release();
+				sharedObject = testObject;
+			}
 		}
-		else {
-			model = FileBufferModelManager.getInstance().getModel(document);
-			sharedObject = new SharedObject(model);
-			_initCount(sharedObject, accessType);
-			fManagedObjects.put(id, sharedObject);
-		}
-		return model;
+		
+		return sharedObject==null ? null : sharedObject.theSharedModel;
 	}
 
 	private void _incrCount(SharedObject sharedObject, ReadEditType type) {
-		if (type == READ) {
-			sharedObject.referenceCountForRead++;
+		synchronized(sharedObject) {
+			if (type == READ) {
+				sharedObject.referenceCountForRead++;
+				FileBufferModelManager.getInstance().connect(sharedObject.theSharedModel.getStructuredDocument());
+			}
+			else if (type == EDIT) {
+				sharedObject.referenceCountForEdit++;
+				FileBufferModelManager.getInstance().connect(sharedObject.theSharedModel.getStructuredDocument());
+			}
+			else
+				throw new IllegalArgumentException();
 		}
-		else if (type == EDIT) {
-			sharedObject.referenceCountForEdit++;
-		}
-		else
-			throw new IllegalArgumentException();
 	}
 
 	private void _initCount(SharedObject sharedObject, ReadEditType type) {
-		if (type == READ) {
-			sharedObject.referenceCountForRead = 1;
+		synchronized(sharedObject) {
+			if (type == READ) {
+				FileBufferModelManager.getInstance().connect(sharedObject.theSharedModel.getStructuredDocument());
+				sharedObject.referenceCountForRead = 1;
+			}
+			else if (type == EDIT) {
+				FileBufferModelManager.getInstance().connect(sharedObject.theSharedModel.getStructuredDocument());
+				sharedObject.referenceCountForEdit = 1;
+			}
+			else
+				throw new IllegalArgumentException();
 		}
-		else if (type == EDIT) {
-			sharedObject.referenceCountForEdit = 1;
-		}
-		else
-			throw new IllegalArgumentException();
 	}
 
 	private void addFactories(IStructuredModel model, IModelHandler handler) {
@@ -443,12 +632,6 @@
 		}
 	}
 
-	private SharedObject addToCache(String id, IStructuredModel aSharedModel) {
-		SharedObject sharedObject;
-		sharedObject = new SharedObject(aSharedModel);
-		fManagedObjects.put(id, sharedObject);
-		return sharedObject;
-	}
 
 	/**
 	 * Calculate id provides a common way to determine the id from the input
@@ -484,7 +667,11 @@
 		URIResolver resolver = (URIResolver) project.getAdapter(URIResolver.class);
 		if (resolver == null)
 			resolver = new ProjectResolver(project);
-		resolver.setFileBaseLocation(file.getLocation().toString());
+		Object location = file.getLocation();
+		if (location == null)
+			location = file.getLocationURI();
+		if (location != null)
+			resolver.setFileBaseLocation(location.toString());
 		return resolver;
 	}
 
@@ -567,7 +754,7 @@
 
 	/**
 	 */
-	public synchronized IStructuredModel copyModelForEdit(String oldId, String newId) throws ResourceInUse {
+	public IStructuredModel copyModelForEdit(String oldId, String newId) throws ResourceInUse {
 		IStructuredModel newModel = null;
 		// get the existing model associated with this id
 		IStructuredModel model = getExistingModel(oldId);
@@ -575,10 +762,18 @@
 		// be a programming error.
 		if (model == null)
 			return null;
-		// now be sure newModel does not exist
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(newId);
-		if (sharedObject != null) {
-			throw new ResourceInUse();
+		SharedObject sharedObject = null;
+		try {
+			SYNC.acquire();
+			// now be sure newModel does not exist
+			sharedObject = (SharedObject) fManagedObjects.get(newId);
+			if (sharedObject != null) {
+				throw new ResourceInUse();
+			}
+			sharedObject = new SharedObject(null);
+			fManagedObjects.put(newId,sharedObject);
+		} finally {
+			SYNC.release();
 		}
 		// get loader based on existing type (note the type assumption)
 		// Object type = ((IStructuredModel) model).getType();
@@ -586,14 +781,24 @@
 		// IModelLoader loader = (IModelLoader) getModelLoaders().get(type);
 		// IModelLoader loader = (IModelLoader) getModelLoaders().get(type);
 		// ask the loader to copy
-		newModel = copy(model, newId);
+		synchronized(sharedObject) {
+			sharedObject.doWait = false;
+			newModel = copy(model, newId);
+			sharedObject.doWait = true;
+		}
 		if (newModel != null) {
 			// add to our cache
-			sharedObject = new SharedObject(newModel);
-			sharedObject.referenceCountForEdit = 1;
-			fManagedObjects.put(newId, sharedObject);
-			trace("copied model", newId, sharedObject.referenceCountForEdit); //$NON-NLS-1$
+			synchronized(sharedObject) {
+				sharedObject.theSharedModel=newModel;
+				sharedObject.referenceCountForEdit = 1;
+				trace("copied model", newId, sharedObject.referenceCountForEdit); //$NON-NLS-1$
+			}
+		} else {
+			SYNC.acquire();
+			fManagedObjects.remove(newId);
+			SYNC.release();
 		}
+		sharedObject.setLoaded();
 		return newModel;
 	}
 
@@ -602,7 +807,7 @@
 	 * produces an unmanaged model, for temporary use. If a true shared model
 	 * is desired, use "copy".
 	 */
-	public synchronized IStructuredModel createNewInstance(IStructuredModel oldModel) throws IOException {
+	public IStructuredModel createNewInstance(IStructuredModel oldModel) throws IOException {
 		IModelHandler handler = oldModel.getModelHandler();
 		IModelLoader loader = handler.getModelLoader();
 		IStructuredModel newModel = loader.createModel(oldModel);
@@ -634,7 +839,7 @@
 	 * @throws ResourceInUse
 	 * 
 	 */
-	public synchronized IStructuredDocument createNewStructuredDocumentFor(IFile iFile) throws ResourceAlreadyExists, IOException, CoreException {
+	public  IStructuredDocument createNewStructuredDocumentFor(IFile iFile) throws ResourceAlreadyExists, IOException, CoreException {
 		if (iFile.exists()) {
 			throw new ResourceAlreadyExists(iFile.getFullPath().toOSString());
 		}
@@ -660,7 +865,7 @@
 	 * 
 	 * @throws ResourceInUse
 	 */
-	public synchronized IStructuredDocument createStructuredDocumentFor(IFile iFile) throws IOException, CoreException {
+	public  IStructuredDocument createStructuredDocumentFor(IFile iFile) throws IOException, CoreException {
 		if (!iFile.exists()) {
 			throw new FileNotFoundException(iFile.getFullPath().toOSString());
 		}
@@ -689,7 +894,7 @@
 	 *             we - want the handler that "goes with" a certain type of -
 	 *             file.
 	 */
-	public synchronized IStructuredDocument createStructuredDocumentFor(String contentTypeId) {
+	public  IStructuredDocument createStructuredDocumentFor(String contentTypeId) {
 		IDocumentLoader loader = null;
 		ModelHandlerRegistry cr = getModelHandlerRegistry();
 		IModelHandler handler = cr.getHandlerForContentTypeId(contentTypeId);
@@ -739,7 +944,7 @@
 	 * meta tag, its ignored since its assumed its all correctly decoded by
 	 * the HTTP charset.
 	 */
-	public synchronized IStructuredDocument createStructuredDocumentFor(String filename, InputStream inputStream, URIResolver resolver, String encoding) throws IOException {
+	public  IStructuredDocument createStructuredDocumentFor(String filename, InputStream inputStream, URIResolver resolver, String encoding) throws IOException {
 		String content = readInputStream(inputStream, encoding);
 		IStructuredDocument result = createStructuredDocumentFor(filename, content, resolver);
 		return result;
@@ -752,7 +957,7 @@
 	 * a String, it is assumed to already be decoded correctly so no
 	 * transformation is done.
 	 */
-	public synchronized IStructuredDocument createStructuredDocumentFor(String filename, String content, URIResolver resolver) throws IOException {
+	public  IStructuredDocument createStructuredDocumentFor(String filename, String content, URIResolver resolver) throws IOException {
 		// TODO: avoid all these String instances
 		StringBuffer contentBuffer = new StringBuffer(content);
 		IDocumentLoader loader = null;
@@ -795,7 +1000,7 @@
 	 * Conveience method. It depends on the loaders newModel method to return
 	 * an appropriate StrucuturedModel appropriately initialized.
 	 */
-	public synchronized IStructuredModel createUnManagedStructuredModelFor(IFile iFile) throws IOException, CoreException {
+	public IStructuredModel createUnManagedStructuredModelFor(IFile iFile) throws IOException, CoreException {
 		IStructuredModel result = null;
 		result = createUnManagedEmptyModelFor(iFile);
 
@@ -811,7 +1016,7 @@
 	 * Conveience method. It depends on the loaders newModel method to return
 	 * an appropriate StrucuturedModel appropriately initialized.
 	 */
-	public synchronized IStructuredModel createUnManagedStructuredModelFor(String contentTypeId) {
+	public  IStructuredModel createUnManagedStructuredModelFor(String contentTypeId) {
 		return createUnManagedStructuredModelFor(contentTypeId, null);
 	}
 
@@ -819,7 +1024,7 @@
 	 * Conveience method. It depends on the loaders newModel method to return
 	 * an appropriate StrucuturedModel appropriately initialized.
 	 */
-	public synchronized IStructuredModel createUnManagedStructuredModelFor(String contentTypeId, URIResolver resolver) {
+	public  IStructuredModel createUnManagedStructuredModelFor(String contentTypeId, URIResolver resolver) {
 		IStructuredModel result = null;
 		ModelHandlerRegistry cr = getModelHandlerRegistry();
 		IModelHandler handler = cr.getHandlerForContentTypeId(contentTypeId);
@@ -836,22 +1041,26 @@
 		return result;
 	}
 
-	private EnumeratedModelIds getEnumeratedModelIds() {
-		// return new instance each time so will "act like" proper enumeration
-		// to client
-		// (if we cached, may not be at beginning).
-		return new EnumeratedModelIds(fManagedObjects);
-	}
-
 	private IStructuredModel getExistingModel(Object id) {
-
 		IStructuredModel result = null;
+		
+		SYNC.acquire();
+		/**
+		 * While a good check in theory, it's possible for an event fired to
+		 * cause a listener to access a method that calls this one.
+		 */
+		//Assert.isTrue(SYNC.getDepth()==1, "depth not equal to 1");
 		// let's see if we already have it in our cache
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
 		// if not, then we'll simply return null
 		if (sharedObject != null) {
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
 			result = sharedObject.theSharedModel;
+		} else {
+			SYNC.release();
 		}
+		
 		return result;
 	}
 
@@ -859,17 +1068,29 @@
 	 * Note: users of this 'model' must still release it when finished.
 	 * Returns null if there's not a model corresponding to document.
 	 */
-	public synchronized IStructuredModel getExistingModelForEdit(IDocument document) {
+	public IStructuredModel getExistingModelForEdit(IDocument document) {
 		IStructuredModel result = null;
-		Enumeration ids = getEnumeratedModelIds();
-		while (ids.hasMoreElements()) {
-			Object potentialId = ids.nextElement();
-			IStructuredModel tempResult = getExistingModel(potentialId);
-			if (document == tempResult.getStructuredDocument()) {
-				result = getExistingModelForEdit(potentialId);
-				break;
+		
+		SYNC.acquire();		
+		// create a snapshot
+		Set ids = new HashSet(fManagedObjects.keySet());
+		SYNC.release();
+		for (Iterator iterator = ids.iterator(); iterator.hasNext();) {
+			Object potentialId = iterator.next();
+			SYNC.acquire();	
+			if (fManagedObjects.containsKey(potentialId)) {
+				// check to see if still valid
+				SYNC.release();
+				IStructuredModel tempResult = getExistingModel(potentialId);
+				if (tempResult!=null && document == tempResult.getStructuredDocument()) {
+					result = getExistingModelForEdit(potentialId);
+					break;
+				}
+			} else {
+				SYNC.release();
 			}
 		}
+		
 		return result;
 	}
 
@@ -879,7 +1100,7 @@
 	 * exists). If the model does not already exist in the cache of models,
 	 * null is returned.
 	 */
-	public synchronized IStructuredModel getExistingModelForEdit(IFile iFile) {
+	public  IStructuredModel getExistingModelForEdit(IFile iFile) {
 
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		Object id = calculateId(iFile);
@@ -895,22 +1116,40 @@
 	 * 
 	 * @deprecated use IFile form - this one will become protected or private
 	 */
-	public synchronized IStructuredModel getExistingModelForEdit(Object id) {
+	public IStructuredModel getExistingModelForEdit(Object id) {
 
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		IStructuredModel result = null;
+		boolean doRelease = true;
 		// let's see if we already have it in our cache
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		// if not, then we'll simply return null
-		if (sharedObject != null) {
-			// if shared object is in our cache, then simply increment its ref
-			// count,
-			// and return the object.
-			sharedObject.referenceCountForEdit++;
-			result = sharedObject.theSharedModel;
-			trace("got existing model for Edit: ", id); //$NON-NLS-1$
-			trace("   incremented referenceCountForEdit ", id, sharedObject.referenceCountForEdit); //$NON-NLS-1$
+		try {
+			SYNC.acquire();
+			SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
+			// if not, then we'll simply return null
+			if (sharedObject != null) {
+				// if shared object is in our cache, then simply increment its ref
+				// count,
+				// and return the object.
+				SYNC.release();
+				doRelease=false;
+				synchronized(sharedObject) {
+					if (sharedObject.doWait) {
+						sharedObject.waitForLoadAttempt();
+					}
+					if (sharedObject.theSharedModel!=null) {
+						_incrCount(sharedObject, EDIT);
+					}
+					result = sharedObject.theSharedModel;
+				}
+				trace("got existing model for Edit: ", id); //$NON-NLS-1$
+				trace("   incremented referenceCountForEdit ", id, sharedObject.referenceCountForEdit); //$NON-NLS-1$
+			}
+		} finally {
+			if (doRelease) {
+				SYNC.release();
+			}
 		}
+		
 		return result;
 	}
 
@@ -918,21 +1157,33 @@
 	 * Note: users of this 'model' must still release it when finished.
 	 * Returns null if there's not a model corresponding to document.
 	 */
-	public synchronized IStructuredModel getExistingModelForRead(IDocument document) {
+	public IStructuredModel getExistingModelForRead(IDocument document) {
 		IStructuredModel result = null;
-		Enumeration ids = getEnumeratedModelIds();
-		while (ids.hasMoreElements()) {
-			Object potentialId = ids.nextElement();
-			IStructuredModel tempResult = getExistingModel(potentialId);
-			if (document == tempResult.getStructuredDocument()) {
-				result = getExistingModelForRead(potentialId);
-				break;
+		
+		SYNC.acquire();		
+		// create a snapshot
+		Set ids = new HashSet(fManagedObjects.keySet());
+		SYNC.release();
+		for (Iterator iterator = ids.iterator(); iterator.hasNext();) {
+			Object potentialId = iterator.next();
+			SYNC.acquire();	
+			if (fManagedObjects.containsKey(potentialId)) {
+				// check to see if still valid
+				SYNC.release();
+				IStructuredModel tempResult = getExistingModel(potentialId);
+				if (tempResult!=null && document == tempResult.getStructuredDocument()) {
+					result = getExistingModelForRead(potentialId);
+					break;
+				}
+			} else {
+				SYNC.release();
 			}
 		}
+		
 		return result;
 	}
 
-	public synchronized IStructuredModel getExistingModelForRead(IFile iFile) {
+	public IStructuredModel getExistingModelForRead(IFile iFile) {
 
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		Object id = calculateId(iFile);
@@ -948,19 +1199,35 @@
 	 * 
 	 * @deprecated use IFile form - this one will become protected or private
 	 */
-	public synchronized IStructuredModel getExistingModelForRead(Object id) {
-
+	public  IStructuredModel getExistingModelForRead(Object id) {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		IStructuredModel result = null;
+		boolean doRelease = true;
 		// let's see if we already have it in our cache
-		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		// if not, then we'll simply return null
-		if (sharedObject != null) {
-			// if shared object is in our cache, then simply increment its ref
-			// count,
-			// and return the object.
-			sharedObject.referenceCountForRead++;
-			result = sharedObject.theSharedModel;
+		try {
+			SYNC.acquire();
+			SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
+			// if not, then we'll simply return null
+			if (sharedObject != null) {
+				// if shared object is in our cache, then simply increment its ref
+				// count,
+				// and return the object.
+				SYNC.release();
+				doRelease=false;
+
+				synchronized(sharedObject) {
+					if (sharedObject.doWait) {
+						sharedObject.waitForLoadAttempt();
+					}
+					if (sharedObject.theSharedModel!=null) {
+						_incrCount(sharedObject, READ);
+					}
+					result = sharedObject.theSharedModel;
+				}
+			}
+		} finally {
+			if (doRelease)
+				SYNC.release();
 		}
 		return result;
 	}
@@ -972,10 +1239,15 @@
 	 *             safe for one thread to get the Enumeration, when underlying
 	 *             data could be changed in another thread.
 	 */
-	public synchronized Enumeration getExistingModelIds() {
-
-		Enumeration result = getEnumeratedModelIds();
-		return result;
+	public  Enumeration getExistingModelIds() {
+		try {
+			SYNC.acquire();
+			// create a copy
+			Vector keys = new Vector( fManagedObjects.keySet() );
+			return keys.elements();
+		} finally {
+			SYNC.release();
+		}
 	}
 
 	// TODO: replace (or supplement) this is a "model info" association to the
@@ -999,24 +1271,24 @@
 	/**
 	 * One of the primary forms to get a managed model
 	 */
-	public synchronized IStructuredModel getModelForEdit(IFile iFile) throws IOException, CoreException {
+	public  IStructuredModel getModelForEdit(IFile iFile) throws IOException, CoreException {
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		return _commonGetModel(iFile, EDIT, null, null);
 	}
 
-	public synchronized IStructuredModel getModelForEdit(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
+	public  IStructuredModel getModelForEdit(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
 
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		return _commonGetModel(iFile, EDIT, encodingRule);
 	}
 
-	public synchronized IStructuredModel getModelForEdit(IFile iFile, String encoding, String lineDelimiter) throws java.io.UnsupportedEncodingException, IOException, CoreException {
+	public  IStructuredModel getModelForEdit(IFile iFile, String encoding, String lineDelimiter) throws java.io.UnsupportedEncodingException, IOException, CoreException {
 
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		return _commonGetModel(iFile, EDIT, encoding, lineDelimiter);
 	}
 
-	public synchronized IStructuredModel getModelForEdit(IStructuredDocument document) {
+	public  IStructuredModel getModelForEdit(IStructuredDocument document) {
 		return _getModelFor(document, EDIT);
 	}
 
@@ -1024,7 +1296,7 @@
 	 * @see IModelManager
 	 * @deprecated use IFile or String form
 	 */
-	public synchronized IStructuredModel getModelForEdit(Object id, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
+	public  IStructuredModel getModelForEdit(Object id, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
 
 		Assert.isNotNull(id, "IFile parameter can not be null"); //$NON-NLS-1$
 		String stringId = id.toString();
@@ -1035,14 +1307,14 @@
 	 * @see IModelManager
 	 * @deprecated - use IFile or String form
 	 */
-	public synchronized IStructuredModel getModelForEdit(Object id, Object modelType, String encodingName, String lineDelimiter, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
+	public  IStructuredModel getModelForEdit(Object id, Object modelType, String encodingName, String lineDelimiter, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
 
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		String stringId = id.toString();
 		return getModelForEdit(stringId, Utilities.getMarkSupportedStream(inputStream), resolver);
 	}
 
-	public synchronized IStructuredModel getModelForEdit(String id, InputStream inputStream, URIResolver resolver) throws IOException {
+	public  IStructuredModel getModelForEdit(String id, InputStream inputStream, URIResolver resolver) throws IOException {
 		if (id == null) {
 			throw new IllegalArgumentException("Program Error: id may not be null"); //$NON-NLS-1$
 		}
@@ -1062,23 +1334,23 @@
 	/**
 	 * One of the primary forms to get a managed model
 	 */
-	public synchronized IStructuredModel getModelForRead(IFile iFile) throws IOException, CoreException {
+	public  IStructuredModel getModelForRead(IFile iFile) throws IOException, CoreException {
 
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		return _commonGetModel(iFile, READ, null, null);
 	}
 
-	public synchronized IStructuredModel getModelForRead(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
+	public  IStructuredModel getModelForRead(IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		return _commonGetModel(iFile, READ, encodingRule);
 	}
 
-	public synchronized IStructuredModel getModelForRead(IFile iFile, String encodingName, String lineDelimiter) throws java.io.UnsupportedEncodingException, IOException, CoreException {
+	public  IStructuredModel getModelForRead(IFile iFile, String encodingName, String lineDelimiter) throws java.io.UnsupportedEncodingException, IOException, CoreException {
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		return _commonGetModel(iFile, READ, encodingName, lineDelimiter);
 	}
 
-	public synchronized IStructuredModel getModelForRead(IStructuredDocument document) {
+	public  IStructuredModel getModelForRead(IStructuredDocument document) {
 		return _getModelFor(document, READ);
 	}
 
@@ -1086,7 +1358,7 @@
 	 * @see IModelManager
 	 * @deprecated use IFile or String form
 	 */
-	public synchronized IStructuredModel getModelForRead(Object id, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
+	public  IStructuredModel getModelForRead(Object id, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		String stringId = id.toString();
 		return getModelForRead(stringId, Utilities.getMarkSupportedStream(inputStream), resolver);
@@ -1096,13 +1368,13 @@
 	 * @see IModelManager
 	 * @deprecated use IFile form
 	 */
-	public synchronized IStructuredModel getModelForRead(Object id, Object modelType, String encodingName, String lineDelimiter, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
+	public  IStructuredModel getModelForRead(Object id, Object modelType, String encodingName, String lineDelimiter, InputStream inputStream, URIResolver resolver) throws java.io.UnsupportedEncodingException, IOException {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		String stringId = id.toString();
 		return getModelForRead(stringId, Utilities.getMarkSupportedStream(inputStream), resolver);
 	}
 
-	public synchronized IStructuredModel getModelForRead(String id, InputStream inputStream, URIResolver resolver) throws IOException {
+	public  IStructuredModel getModelForRead(String id, InputStream inputStream, URIResolver resolver) throws IOException {
 		InputStream istream = Utilities.getMarkSupportedStream(inputStream);
 		IModelHandler handler = calculateType(id, istream);
 		IStructuredModel result = null;
@@ -1123,21 +1395,31 @@
 	/**
 	 * @see IModelManager#getNewModelForEdit(IFile, boolean)
 	 */
-	public synchronized IStructuredModel getNewModelForEdit(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
+	public  IStructuredModel getNewModelForEdit(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		SharedObject sharedObject = _commonNewModel(iFile, force);
-		sharedObject.referenceCountForEdit = 1;
+		synchronized(sharedObject) {
+			sharedObject.referenceCountForEdit = 1;
+		}
+		sharedObject.setLoaded();
 		return sharedObject.theSharedModel;
 	}
 
 	/**
 	 * @see IModelManager#getNewModelForRead(IFile, boolean)
 	 */
-	public synchronized IStructuredModel getNewModelForRead(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
+	public  IStructuredModel getNewModelForRead(IFile iFile, boolean force) throws ResourceAlreadyExists, ResourceInUse, IOException, CoreException {
 
 		Assert.isNotNull(iFile, "IFile parameter can not be null"); //$NON-NLS-1$
 		SharedObject sharedObject = _commonNewModel(iFile, force);
-		sharedObject.referenceCountForRead = 1;
+		SYNC.acquire();
+		synchronized(sharedObject) {
+			if (sharedObject.theSharedModel!=null) {
+				sharedObject.referenceCountForRead = 1;
+			}
+		}
+		SYNC.release();
+		sharedObject.setLoaded();
 		return sharedObject.theSharedModel;
 	}
 
@@ -1148,12 +1430,21 @@
 	 *            Object The id of the model TODO: try to refine the design
 	 *            not to use this function
 	 */
-	public synchronized int getReferenceCount(Object id) {
+	public  int getReferenceCount(Object id) {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		int count = 0;
+	
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForRead + sharedObject.referenceCountForEdit;
+		if (sharedObject != null) {
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			SYNC.acquire();
+			synchronized (sharedObject) {
+				count = sharedObject.referenceCountForRead + sharedObject.referenceCountForEdit;
+			}
+		}
+		SYNC.release();
 		return count;
 	}
 
@@ -1164,12 +1455,20 @@
 	 *            Object The id of the model TODO: try to refine the design
 	 *            not to use this function
 	 */
-	public synchronized int getReferenceCountForEdit(Object id) {
+	public int getReferenceCountForEdit(Object id) {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		int count = 0;
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForEdit;
+		if (sharedObject != null) {
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			synchronized(sharedObject) {
+				count = sharedObject.referenceCountForEdit;
+			}
+		} else {
+			SYNC.release();
+		}
 		return count;
 	}
 
@@ -1180,12 +1479,20 @@
 	 *            Object The id of the model TODO: try to refine the design
 	 *            not to use this function
 	 */
-	public synchronized int getReferenceCountForRead(Object id) {
+	public int getReferenceCountForRead(Object id) {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		int count = 0;
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForRead;
+		if (sharedObject != null) {
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			SYNC.acquire();
+			synchronized(sharedObject) {
+				count = sharedObject.referenceCountForRead;
+			}
+		}
+		SYNC.release();
 		return count;
 	}
 
@@ -1204,13 +1511,21 @@
 	 * This function returns true if there are other references to the
 	 * underlying model.
 	 */
-	public synchronized boolean isShared(Object id) {
+	public  boolean isShared(Object id) {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		int count = 0;
 		boolean result = false;
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForRead + sharedObject.referenceCountForEdit;
+		if (sharedObject != null) {
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			SYNC.acquire();
+			synchronized(sharedObject) {
+				count = sharedObject.referenceCountForRead + sharedObject.referenceCountForEdit;
+			}
+		}
+		SYNC.release();
 		result = count > 1;
 		return result;
 	}
@@ -1222,13 +1537,21 @@
 	 * @param id
 	 *            Object The id of the model
 	 */
-	public synchronized boolean isSharedForEdit(Object id) {
+	public  boolean isSharedForEdit(Object id) {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		int count = 0;
 		boolean result = false;
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForEdit;
+		if (sharedObject != null) {
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			synchronized(sharedObject) {
+				count = sharedObject.referenceCountForEdit;
+			}
+		} else {
+			SYNC.release();
+		}
 		result = count > 1;
 		return result;
 	}
@@ -1240,13 +1563,21 @@
 	 * @param id
 	 *            Object The id of the model
 	 */
-	public synchronized boolean isSharedForRead(Object id) {
+	public  boolean isSharedForRead(Object id) {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		int count = 0;
 		boolean result = false;
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
-		if (sharedObject != null)
-			count = sharedObject.referenceCountForRead;
+		if (sharedObject != null) {
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			SYNC.acquire();
+			synchronized(sharedObject) {
+				count = sharedObject.referenceCountForRead;
+			}
+		}
+		SYNC.release();
 		result = count > 1;
 		return result;
 	}
@@ -1254,18 +1585,22 @@
 	/**
 	 * This method can be called to determine if the model manager is within a
 	 * "aboutToChange" and "changed" sequence.
+	 * 
+	 * @deprecated the manager does not otherwise interact with these states
+	 * @return false
 	 */
-	public synchronized boolean isStateChanging() {
-
-		return modelManagerStateChanging > 0;
+	public boolean isStateChanging() {
+		// doesn't seem to be used anymore
+		return false;
 	}
 
 	/**
 	 * This method changes the id of the model. TODO: try to refine the design
 	 * not to use this function
 	 */
-	public synchronized void moveModel(Object oldId, Object newId) {
+	public void moveModel(Object oldId, Object newId) {
 		org.eclipse.wst.sse.core.internal.util.Assert.isNotNull(oldId, "id parameter can not be null"); //$NON-NLS-1$
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(oldId);
 		// if not found in cache, ignore request.
 		// this would normally be a program error
@@ -1273,6 +1608,7 @@
 			fManagedObjects.remove(oldId);
 			fManagedObjects.put(newId, sharedObject);
 		}
+		SYNC.release();
 	}
 
 	private String readInputStream(InputStream inputStream, String ianaEncodingName) throws UnsupportedEncodingException, IOException {
@@ -1317,7 +1653,7 @@
 	/*
 	 * @see IModelManager#reinitialize(IStructuredModel)
 	 */
-	public synchronized IStructuredModel reinitialize(IStructuredModel model) {
+	public IStructuredModel reinitialize(IStructuredModel model) {
 
 		// getHandler (assume its the "new one")
 		IModelHandler handler = model.getModelHandler();
@@ -1336,7 +1672,7 @@
 		return model;
 	}
 
-	synchronized void releaseFromEdit(IStructuredModel structuredModel) {
+	 void releaseFromEdit(IStructuredModel structuredModel) {
 		Object id = structuredModel.getId();
 		if (id.equals(UNMANAGED_MODEL) || id.equals(DUPLICATED_MODEL)) {
 			cleanupDiscardedModel(structuredModel);
@@ -1347,7 +1683,7 @@
 
 	}
 	
-	synchronized void releaseFromRead(IStructuredModel structuredModel) {
+	 void releaseFromRead(IStructuredModel structuredModel) {
 		Object id = structuredModel.getId();
 		if (id.equals(UNMANAGED_MODEL) || id.equals(DUPLICATED_MODEL)) {
 			cleanupDiscardedModel(structuredModel);
@@ -1361,7 +1697,7 @@
 	 * default for use in same package, not subclasses
 	 * 
 	 */
-	synchronized private void releaseFromEdit(Object id) {
+	 private void releaseFromEdit(Object id) {
 		// ISSUE: many of these asserts should be changed to "logs"
 		// and continue to limp along?
 
@@ -1376,29 +1712,48 @@
 			throw new IllegalArgumentException("Ids of UNMANAGED_MODEL or DUPLICATED_MODEL are illegal here");
 		}
 		else {
+			SYNC.acquire();
 			sharedObject = (SharedObject) fManagedObjects.get(id);
+			SYNC.release();
+			
 			Assert.isNotNull(sharedObject, "release was requested on a model that was not being managed"); //$NON-NLS-1$
-
-
-			if (sharedObject != null) {
-				sharedObject.referenceCountForEdit--;
+			sharedObject.waitForLoadAttempt();
+			
+			SYNC.acquire();
+			synchronized(sharedObject) {
+				_decrCount(sharedObject, EDIT);
 				if ((sharedObject.referenceCountForRead == 0) && (sharedObject.referenceCountForEdit == 0)) {
 					discardModel(id, sharedObject);
 				}
-				// if edit goes to zero, but still open for read,
-				// then we should reload here, so we are in synch with
-				// contents on disk.
-				// ISSUE: should we check isDirty here?
-				// ANSWER: here, for now now. model still has its own dirty
-				// flag for some reason.
-				// we need to address * that * too.
+			}
+			SYNC.release();
+			// if edit goes to zero, but still open for read,
+			// then we should reload here, so we are in synch with
+			// contents on disk.
+			// ISSUE: should we check isDirty here?
+			// ANSWER: here, for now now. model still has its own dirty
+			// flag for some reason.
+			// we need to address * that * too.
+
+			synchronized(sharedObject) {
 				if ((sharedObject.referenceCountForRead > 0) && (sharedObject.referenceCountForEdit == 0) && sharedObject.theSharedModel.isDirty()) {
 					signalPreLifeCycleListenerRevert(sharedObject.theSharedModel);
 					revertModel(id, sharedObject);
-					sharedObject.theSharedModel.setDirtyState(false);
+					/*
+					 * Because model events are fired to notify about the
+					 * revert's changes, and listeners can still get/release
+					 * the model from this thread (locking prevents it being
+					 * done from other threads), the reference counts could
+					 * have changed since we entered this if block, and the
+					 * model could have been discarded.  Check the counts again.
+					 */
+					if (sharedObject.referenceCountForRead > 0 && sharedObject.referenceCountForEdit == 0) {
+						sharedObject.theSharedModel.setDirtyState(false);
+					}
 					signalPostLifeCycleListenerRevert(sharedObject.theSharedModel);
 				}
 			}
+			
 		}
 	}
 
@@ -1423,7 +1778,9 @@
 	}
 
 	private void discardModel(Object id, SharedObject sharedObject) {
+		SYNC.acquire();
 		fManagedObjects.remove(id);
+		SYNC.release();
 		IStructuredDocument structuredDocument = sharedObject.theSharedModel.getStructuredDocument();
 
 		if (structuredDocument == null) {
@@ -1459,11 +1816,12 @@
 		structuredModel.setStructuredDocument(null);
 	}
 
+	
 	/**
 	 * default for use in same package, not subclasses
 	 * 
 	 */
-	synchronized private void releaseFromRead(Object id) {
+	 private void releaseFromRead(Object id) {
 		Assert.isNotNull(id, "id parameter can not be null"); //$NON-NLS-1$
 		SharedObject sharedObject = null;
 
@@ -1471,17 +1829,20 @@
 			throw new IllegalArgumentException("Ids of UNMANAGED_MODEL or DUPLICATED_MODEL are illegal here");
 		}
 		else {
-
+			SYNC.acquire();
 			sharedObject = (SharedObject) fManagedObjects.get(id);
+			SYNC.release();
 			Assert.isNotNull(sharedObject, "release was requested on a model that was not being managed"); //$NON-NLS-1$
+			sharedObject.waitForLoadAttempt();
 		}
-
-		if (sharedObject != null) {
-			sharedObject.referenceCountForRead--;
+		SYNC.acquire();
+		synchronized(sharedObject) {
+			_decrCount(sharedObject, READ);
 			if ((sharedObject.referenceCountForRead == 0) && (sharedObject.referenceCountForEdit == 0)) {
 				discardModel(id, sharedObject);
 			}
 		}
+		SYNC.release();
 	}
 
 	/**
@@ -1494,7 +1855,7 @@
 	 * 
 	 * @deprecated - will become protected, use reload directly on model
 	 */
-	public synchronized IStructuredModel reloadModel(Object id, java.io.InputStream inputStream) throws java.io.UnsupportedEncodingException {
+	public  IStructuredModel reloadModel(Object id, java.io.InputStream inputStream) throws java.io.UnsupportedEncodingException {
 
 		// get the existing model associated with this id
 		IStructuredModel structuredModel = getExistingModel(id);
@@ -1516,12 +1877,28 @@
 	}
 
 	public void saveModel(IFile iFile, String id, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
+
 		// let's see if we already have it in our cache
+	
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
 		if (sharedObject == null || sharedObject.theSharedModel == null) {
+			SYNC.release();
 			throw new IllegalStateException(SSECoreMessages.Program_Error__ModelManage_EXC_); //$NON-NLS-1$ = "Program Error: ModelManagerImpl::saveModel. Model should be in the cache"
-		}
+		} 
 		else {
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			
+			/**
+			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=221610
+			 * 
+			 * Sync removed from here to prevent deadlock. Although the model
+			 * instance may disappear or be made invalid while the save is
+			 * happening, the document itself still has the contents we're
+			 * trying to save. Simultaneous saves should be throttled by
+			 * resource locking without our intervention.
+			 */
 			boolean saved = false;
 			// if this model was based on a File Buffer and we're writing back
 			// to the same location, use the buffer to do the writing
@@ -1541,7 +1918,7 @@
 			}
 			sharedObject.theSharedModel.setDirtyState(false);
 			sharedObject.theSharedModel.setNewState(false);
-		}
+		}	
 	}
 
 	/**
@@ -1555,14 +1932,31 @@
 	 * @throws CoreException
 	 */
 	public void saveModel(String id, EncodingRule encodingRule) throws UnsupportedEncodingException, IOException, CoreException {
+
 		// let's see if we already have it in our cache
+
+		SYNC.acquire();
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
 		if (sharedObject == null) {
+			SYNC.release();
 			throw new IllegalStateException(SSECoreMessages.Program_Error__ModelManage_EXC_); //$NON-NLS-1$ = "Program Error: ModelManagerImpl::saveModel. Model should be in the cache"
 		}
 		else {
-			// if this model was based on a File Buffer and we're writing back
-			// to the same location, use the buffer to do the writing
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			/**
+			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=221610
+			 * 
+			 * Sync removed from here to prevent deadlock. Although the model
+			 * instance may disappear or be made invalid while the save is
+			 * happening, the document itself still has the contents we're
+			 * trying to save. Simultaneous saves should be throttled by
+			 * resource locking without our intervention.
+			 */
+			/*
+			 * if this model was based on a File Buffer and we're writing back
+			 * to the same location, use the buffer to do the writing
+			 */
 			if (FileBufferModelManager.getInstance().isExistingBuffer(sharedObject.theSharedModel.getStructuredDocument())) {
 				ITextFileBuffer buffer = FileBufferModelManager.getInstance().getBuffer(sharedObject.theSharedModel.getStructuredDocument());
 				buffer.commit(new NullProgressMonitor(), true);
@@ -1574,9 +1968,9 @@
 				saveStructuredDocument(document, iFile);
 				trace("saving model", id); //$NON-NLS-1$
 			}
+			sharedObject.theSharedModel.setDirtyState(false);
+			sharedObject.theSharedModel.setNewState(false);
 		}
-		sharedObject.theSharedModel.setDirtyState(false);
-		sharedObject.theSharedModel.setNewState(false);
 	}
 
 	/**
@@ -1585,23 +1979,28 @@
 	 *             in favor of the IFile form.
 	 */
 	public void saveModel(String id, OutputStream outputStream, EncodingRule encodingRule) throws UnsupportedEncodingException, CoreException, IOException {
-
+		SYNC.acquire();
 		// let's see if we already have it in our cache
 		SharedObject sharedObject = (SharedObject) fManagedObjects.get(id);
 		if (sharedObject == null) {
+			SYNC.release();
 			throw new IllegalStateException(SSECoreMessages.Program_Error__ModelManage_EXC_); //$NON-NLS-1$ = "Program Error: ModelManagerImpl::saveModel. Model should be in the cache"
 		}
 		else {
-			CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
-			codedStreamCreator.set(sharedObject.theSharedModel.getId(), new DocumentReader(sharedObject.theSharedModel.getStructuredDocument()));
-			codedStreamCreator.setPreviousEncodingMemento(sharedObject.theSharedModel.getStructuredDocument().getEncodingMemento());
-			ByteArrayOutputStream byteArrayOutputStream = codedStreamCreator.getCodedByteArrayOutputStream(encodingRule);
-			byte[] outputBytes = byteArrayOutputStream.toByteArray();
-			outputStream.write(outputBytes);
-			trace("saving model", id); //$NON-NLS-1$
+			SYNC.release();
+			sharedObject.waitForLoadAttempt();
+			synchronized(sharedObject) {
+				CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
+				codedStreamCreator.set(sharedObject.theSharedModel.getId(), new DocumentReader(sharedObject.theSharedModel.getStructuredDocument()));
+				codedStreamCreator.setPreviousEncodingMemento(sharedObject.theSharedModel.getStructuredDocument().getEncodingMemento());
+				ByteArrayOutputStream byteArrayOutputStream = codedStreamCreator.getCodedByteArrayOutputStream(encodingRule);
+				byte[] outputBytes = byteArrayOutputStream.toByteArray();
+				outputStream.write(outputBytes);
+				trace("saving model", id); //$NON-NLS-1$
+				sharedObject.theSharedModel.setDirtyState(false);
+				sharedObject.theSharedModel.setNewState(false);
+			}
 		}
-		sharedObject.theSharedModel.setDirtyState(false);
-		sharedObject.theSharedModel.setNewState(false);
 	}
 
 	public void saveStructuredDocument(IStructuredDocument structuredDocument, IFile iFile) throws UnsupportedEncodingException, CoreException, IOException {
@@ -1611,7 +2010,7 @@
 	public void saveStructuredDocument(IStructuredDocument structuredDocument, IFile iFile, EncodingRule encodingRule) throws UnsupportedEncodingException, CoreException, IOException {
 		if (FileBufferModelManager.getInstance().isExistingBuffer(structuredDocument)) {
 			ITextFileBuffer buffer = FileBufferModelManager.getInstance().getBuffer(structuredDocument);
-			if (iFile.getLocation().equals(buffer.getLocation())) {
+			if (buffer.getLocation().equals(iFile.getFullPath()) || buffer.getLocation().equals(iFile.getLocation())) {
 				buffer.commit(new NullProgressMonitor(), true);
 			}
 		}
@@ -1661,4 +2060,15 @@
 			Logger.log(Logger.INFO, msg + Utilities.makeShortId(id) + " (" + value + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
 		}
 	}
+
+	 boolean isIdInUse(String newId) {
+			boolean inUse = false;
+			SYNC.acquire();
+			SharedObject object =(SharedObject) fManagedObjects.get(newId);
+			if (object!=null) {
+				inUse = object.theSharedModel!=null;
+			}
+			SYNC.release();
+			return inUse;
+		}
 }
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistry.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistry.java
index 36d7563..60a10a8 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistry.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryImpl.java
index cfa88ae..8aa890f 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryImpl.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryReader.java
index 1344178..698f7a1 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryReader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/EmbeddedTypeRegistryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistry.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistry.java
index 2a63cfa..af83ded 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistry.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistryReader.java
index 9765b6b..c6d611f 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistryReader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerRegistryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerUtility.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerUtility.java
index acaef3a..f0b2a4b 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerUtility.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/ModelHandlerUtility.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/PluginContributedFactoryReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/PluginContributedFactoryReader.java
index 874534c..7d2e2dd 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/PluginContributedFactoryReader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/modelhandler/PluginContributedFactoryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ContextRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ContextRegion.java
index 3428768..caaafd5 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ContextRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ContextRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ForeignRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ForeignRegion.java
index f486d00..9bb5a36 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ForeignRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/parser/ForeignRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -24,13 +24,6 @@
 	private String language = null;
 	private String surroundingTag = null;
 
-	/**
-	 * ForeignRegion constructor comment.
-	 */
-	private ForeignRegion() {
-		super();
-	}
-
 	public ForeignRegion(String newContext, int newStart, int newTextLength, int newLength) {
 		super(newContext, newStart, newTextLength, newLength);
 	}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java
index 61a513b..a7ef278 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/CommonModelPreferenceNames.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceInitializer.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceInitializer.java
index d9b1f1e..7505633 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceInitializer.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/preferences/PreferenceInitializer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
@@ -29,4 +29,4 @@
 		taskTagDefaults.put(TaskTagPreferenceKeys.TASK_TAG_PRIORITIES, "1,2,1"); //$NON-NLS-1$
 		taskTagDefaults.put(TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED, ""); //$NON-NLS-1$
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/propertytester/StructuredFilePropertyTester.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/propertytester/StructuredFilePropertyTester.java
new file mode 100644
index 0000000..a64b6b7
--- /dev/null
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/propertytester/StructuredFilePropertyTester.java
@@ -0,0 +1,82 @@
+/******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.wst.sse.core.internal.propertytester;
+
+import org.eclipse.core.expressions.PropertyTester;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.content.IContentDescription;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.wst.sse.core.internal.Logger;
+
+/**
+ * A Property Tester that operates on IFiles and validates
+ * that the expected content type id matches that of the content
+ * type of the file, or any of the base content types.
+ * 
+ * Based on org.eclipse.core.internal.propertytester.FilePropertyTester
+ * 
+ */
+public class StructuredFilePropertyTester extends PropertyTester {
+
+	/**
+	 * A property indicating that we are looking to verify that the file matches
+	 * the content type matching the given identifier. The identifier is
+	 * provided as the expected value.
+	 */
+	private static final String PROPERTY_CONTENT_TYPE_ID = "contentTypeId"; //$NON-NLS-1$
+	
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.core.expressions.IPropertyTester#test(java.lang.Object, java.lang.String, java.lang.Object[], java.lang.Object)
+	 */
+	public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
+		if(PROPERTY_CONTENT_TYPE_ID.equals(property) && (expectedValue != null) && (receiver instanceof IFile) && ((IFile) receiver).exists())
+			return testContentType((IFile) receiver, expectedValue.toString());
+		return false;
+	}
+	
+	/**
+	 * Tests whether the content type for <code>file</code> (or any base content types) 
+	 * matches the <code>contentTypeId</code>. It is possible that this method call could
+	 * cause the file to be read. It is also possible (through poor plug-in
+	 * design) for this method to load plug-ins.
+	 * 
+	 * @param file
+	 *            The file for which the content type should be determined; must
+	 *            not be <code>null</code>.
+	 * @param contentTypeId
+	 *            The expected content type; must not be <code>null</code>.
+	 * @return <code>true</code> if the file's content type (or base content types) 
+	 *         has an identifier that matches <code>contentTypeId</code>;
+	 *         <code>false</code> otherwise.
+	 */
+	private boolean testContentType(final IFile file, String contentTypeId) {
+		final String expectedValue = contentTypeId.trim();
+
+		try {
+			IContentDescription contentDescription = file.getContentDescription();
+			if (contentDescription != null) {
+				IContentType contentType = contentDescription.getContentType();
+				while (contentType != null) {
+					if (expectedValue.equals(contentType.getId()))
+						return true;
+					contentType = contentType.getBaseType();
+				}
+			}
+		}
+		catch (Exception e) {
+			// [232831] - Log messages only when debugging
+			if(Logger.DEBUG)
+				Logger.logException(e);
+		}
+		return false;
+	}
+}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/AbstractNotifier.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/AbstractNotifier.java
index 1014270..6217f99 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/AbstractNotifier.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/AbstractNotifier.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -157,7 +157,7 @@
 		INodeAdapter result = null;
 		for (int i = 0; i < adapterCount; i++) {
 			INodeAdapter a = fAdapters[i];
-			if (a.isAdapterForType(type)) {
+			if (a != null && a.isAdapterForType(type)) {
 				result = a;
 				break;
 			}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/DocumentChanged.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/DocumentChanged.java
index f0987dc..6d7a4ec 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/DocumentChanged.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/DocumentChanged.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLifecycleListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLifecycleListener.java
index a0b7e97..87f8353 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLifecycleListener.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLifecycleListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLoader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLoader.java
index ccbff88..53308f0 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLoader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelManager.java
index 03155a8..d299322 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelStateListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelStateListener.java
index 0ebdd8b..b14e473 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelStateListener.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IModelStateListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeAdapter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeAdapter.java
index a81418e..e88a24f 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeAdapter.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeAdapterFactory.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeAdapterFactory.java
index 3967c48..d6a2506 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeAdapterFactory.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeNotifier.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeNotifier.java
index 13103b3..88d1888 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeNotifier.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/INodeNotifier.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IStructuredModel.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IStructuredModel.java
index ba79ac6..7370e92 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IStructuredModel.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IStructuredModel.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IndexedRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IndexedRegion.java
index 7bf5dca..bf9b7bc 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IndexedRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/IndexedRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/StructuredModelManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/StructuredModelManager.java
index 0016fdb..a136922 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/StructuredModelManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/StructuredModelManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2006 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/document/IEncodedDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/document/IEncodedDocument.java
index 48194ae..2d64715 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/document/IEncodedDocument.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/document/IEncodedDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/document/IStructuredDocumentProposed.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/document/IStructuredDocumentProposed.java
index 4d7dd6f..39832af 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/document/IStructuredDocumentProposed.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/document/IStructuredDocumentProposed.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/AboutToBeChangedEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/AboutToBeChangedEvent.java
index 583e75d..e549692 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/AboutToBeChangedEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/AboutToBeChangedEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/IModelAboutToBeChangedListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/IModelAboutToBeChangedListener.java
index 2af8184..df44547 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/IModelAboutToBeChangedListener.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/IModelAboutToBeChangedListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/IStructuredDocumentListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/IStructuredDocumentListener.java
index 8262a01..26535af 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/IStructuredDocumentListener.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/IStructuredDocumentListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NewDocumentContentEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NewDocumentContentEvent.java
index 7dbd179..038db77 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NewDocumentContentEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NewDocumentContentEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NewDocumentEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NewDocumentEvent.java
index bf78ce4..fe9a73a 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NewDocumentEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NewDocumentEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NoChangeEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NoChangeEvent.java
index 3f5e788..d5004bc 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NoChangeEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/NoChangeEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/RegionChangedEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/RegionChangedEvent.java
index 95c935d..29d4381 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/RegionChangedEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/RegionChangedEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/StructuredDocumentEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/StructuredDocumentEvent.java
index 6fa48cd..e3930ff 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/StructuredDocumentEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/StructuredDocumentEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -43,7 +43,7 @@
 	 *            the document being changed
 	 */
 	private StructuredDocumentEvent(IStructuredDocument document) {
-		super();
+		this();
 		if (document == null)
 			throw new IllegalArgumentException("null source"); //$NON-NLS-1$
 		fDocument = document;
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/StructuredDocumentRegionsReplacedEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/StructuredDocumentRegionsReplacedEvent.java
index 149e4d6..6942bf7 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/StructuredDocumentRegionsReplacedEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/events/StructuredDocumentRegionsReplacedEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/exceptions/ResourceAlreadyExists.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/exceptions/ResourceAlreadyExists.java
index 69233cc..a796e90 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/exceptions/ResourceAlreadyExists.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/exceptions/ResourceAlreadyExists.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/exceptions/ResourceInUse.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/exceptions/ResourceInUse.java
index 77dac51..e4f1ac1 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/exceptions/ResourceInUse.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/exceptions/ResourceInUse.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IModelManagerProposed.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IModelManagerProposed.java
index fb9c6b6..ace9420 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IModelManagerProposed.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IModelManagerProposed.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IModelStateListenerProposed.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IModelStateListenerProposed.java
index e4a4baa..484fc70 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IModelStateListenerProposed.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IModelStateListenerProposed.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IStructuredModelEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IStructuredModelEvent.java
index 3c5a16e..73bc3be 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IStructuredModelEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/model/IStructuredModelEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocument.java
index 9cff78e..97d4ef6 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocument.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocumentRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocumentRegion.java
index 314d1aa..8b03b2a 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocumentRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocumentRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocumentRegionList.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocumentRegionList.java
index 0d7db56..734431e 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocumentRegionList.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredDocumentRegionList.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredPartitionTypes.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredPartitionTypes.java
index 70c7b80..17c2019 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredPartitionTypes.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredPartitionTypes.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * 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.sse.core.internal.provisional.text;
 
 /**
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredTextPartitioner.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredTextPartitioner.java
index ff64c86..9e53f8f 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredTextPartitioner.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredTextPartitioner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredTextReParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredTextReParser.java
index e465fa9..5acdfa1 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredTextReParser.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/IStructuredTextReParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/ITextRegionList.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/ITextRegionList.java
index a013572..c0e46d6 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/ITextRegionList.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/provisional/text/ITextRegionList.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocument.java
index 1a4ae19..3452d7a 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocument.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocument.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -22,6 +22,8 @@
 import java.util.Map;
 
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.core.runtime.preferences.InstanceScope;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.jface.text.BadPartitioningException;
 import org.eclipse.jface.text.BadPositionCategoryException;
@@ -40,6 +42,7 @@
 import org.eclipse.jface.text.IDocumentPartitioner;
 import org.eclipse.jface.text.IDocumentPartitionerExtension;
 import org.eclipse.jface.text.IDocumentPartitionerExtension2;
+import org.eclipse.jface.text.IDocumentPartitionerExtension3;
 import org.eclipse.jface.text.IDocumentPartitioningListener;
 import org.eclipse.jface.text.IDocumentPartitioningListenerExtension;
 import org.eclipse.jface.text.IDocumentPartitioningListenerExtension2;
@@ -298,17 +301,11 @@
 	private byte[] listenerLock = new byte[0];
 	private NullDocumentEvent NULL_DOCUMENT_EVENT;
 
-	//
 	/**
-	 * in case preferred delimiter is not set, we'll assume the platform
-	 * default Note: it is not final static to make sure it won't be inlined
-	 * by compiler.
+	 * Theoretically, a document can contain mixed line delimiters, but the
+	 * user's preference is usually to be internally consistent.
 	 */
-	private final String PlatformLineDelimiter = System.getProperty("line.separator"); //$NON-NLS-1$
-	/**
-	 * theoretically, a document can contain mixed line delimiters
-	 */
-	private String preferedDelimiter;
+	private String fInitialLineDelimiter;
 	private final String READ_ONLY_REGIONS_CATEGORY = "_READ_ONLY_REGIONS_CATEGORY_"; //$NON-NLS-1$
 	/**
 	 * Current rewrite session, or none if not presently rewriting.
@@ -319,6 +316,10 @@
 	 */
 	private long fModificationStamp;
 	/**
+	 * Keeps track of next modification stamp.
+	 */
+	private long fNextModificationStamp= IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP;
+	/**
 	 * debug variable only
 	 * 
 	 * @param parser
@@ -457,6 +458,7 @@
 						((IDocumentListener) holdListeners[i]).documentChanged(NULL_DOCUMENT_EVENT);
 					}
 					else {
+						fDocumentEvent.fModificationStamp = getModificationStamp();
 						((IDocumentListener) holdListeners[i]).documentChanged(fDocumentEvent);
 					}
 				}
@@ -1314,28 +1316,35 @@
 	 * @see org.eclipse.jface.text.IDocumentExtension4#getDefaultLineDelimiter()
 	 */
 	public String getDefaultLineDelimiter() {
-		// specific preferred line delimiter
-		if (preferedDelimiter != null)
-			return preferedDelimiter;
+		
+		String lineDelimiter= null;
+		
+		try {
+			lineDelimiter= getLineDelimiter(0);
+		} catch (BadLocationException x) {
+		}
+	
+		if (lineDelimiter != null)
+			return lineDelimiter;
 
+		if (fInitialLineDelimiter != null)
+			return fInitialLineDelimiter;
 
-		// no line delimiter has been used so just use platform's default
-		String lineDelimiter = null;
-		String sysLineDelimiter = PlatformLineDelimiter;
-		String[] delimiters = getLegalLineDelimiters();
+		String sysLineDelimiter= System.getProperty("line.separator"); //$NON-NLS-1$
+		String[] delimiters= getLegalLineDelimiters();
 		Assert.isTrue(delimiters.length > 0);
-		for (int i = 0; i < delimiters.length; i++) {
+		for (int i= 0; i < delimiters.length; i++) {
 			if (delimiters[i].equals(sysLineDelimiter)) {
-				lineDelimiter = sysLineDelimiter;
+				lineDelimiter= sysLineDelimiter;
 				break;
 			}
 		}
-
-		// no platform default so just use first legal delimiter
+		
 		if (lineDelimiter == null)
-			lineDelimiter = delimiters[0];
-
+			lineDelimiter= delimiters[0];
+	
 		return lineDelimiter;
+		
 	}
 
 	/**
@@ -1936,8 +1945,10 @@
 			// documentAboutToBeChanged state
 
 			// increment modification stamp if modifications were made
-			if (result != null && !(result instanceof NoChangeEvent))
+			if (result != null && !(result instanceof NoChangeEvent)) {
 				fModificationStamp++;
+				fNextModificationStamp= Math.max(fModificationStamp, fNextModificationStamp);
+			}
 
 			if (result == null) {
 				// result should not be null, but if an exception was thrown,
@@ -2389,7 +2400,21 @@
 	}
 
 	public StructuredDocumentEvent replaceText(Object requester, int start, int replacementLength, String changes, boolean ignoreReadOnlySettings) {
-		return internalReplaceText(requester, start, replacementLength, changes, ignoreReadOnlySettings);
+		long modificationStamp;
+		
+		if (replacementLength == 0 && (changes == null || changes.length() == 0))
+			modificationStamp = getModificationStamp();
+		else
+			modificationStamp = getNextModificationStamp();
+		
+		return replaceText(requester, start, replacementLength, changes, ignoreReadOnlySettings, modificationStamp);
+	}
+	
+	private StructuredDocumentEvent replaceText(Object requester, int start, int replacementLength, String changes, boolean ignoreReadOnlySettings, long modificationStamp) {
+		StructuredDocumentEvent event = internalReplaceText(requester, start, replacementLength, changes, ignoreReadOnlySettings);
+		fModificationStamp = modificationStamp;
+		fNextModificationStamp= Math.max(fModificationStamp, fNextModificationStamp);
+		return event;
 	}
 
 	void resetParser(int startOffset, int endOffset) {
@@ -2508,16 +2533,16 @@
 	 * 
 	 * @see org.eclipse.jface.text.IDocumentExtension4#setInitialLineDelimiter(java.lang.String)
 	 */
-	public void setInitialLineDelimiter(String delimiter) {
+	public void setInitialLineDelimiter(String lineDelimiter) {
 		// make sure our preferred delimiter is
 		// one of the legal ones
-		if (Utilities.containsString(getLegalLineDelimiters(), delimiter)) {
-			preferedDelimiter = delimiter;
+		if (Utilities.containsString(getLegalLineDelimiters(), lineDelimiter)) {
+			fInitialLineDelimiter= lineDelimiter;
 		}
 		else {
 			if (Logger.DEBUG_DOCUMENT)
 				Logger.log(Logger.INFO, "Attempt to set linedelimiter to non-legal delimiter"); //$NON-NLS-1$ //$NON-NLS-2$
-			preferedDelimiter = PlatformLineDelimiter;
+			fInitialLineDelimiter = Platform.getPreferencesService().getString(Platform.PI_RUNTIME, Platform.PREF_LINE_SEPARATOR, System.getProperty("line.separator"), new IScopeContext[] { new InstanceScope() });//$NON-NLS-1$
 		}
 	}
 
@@ -2573,10 +2598,9 @@
 	 * One of the APIs to manipulate the IStructuredDocument in terms of text.
 	 */
 	public StructuredDocumentEvent setText(Object requester, String theString) {
-
 		StructuredDocumentEvent result = null;
 
-		result = replaceText(requester, 0, getLength(), theString, true);
+		result = replaceText(requester, 0, getLength(), theString, true, getNextModificationStamp());
 
 		return result;
 	}
@@ -2670,6 +2694,7 @@
 			fPositionManager.updatePositions(new DocumentEvent(this, start, lengthToReplace, changes));
 		}
 		fModificationStamp++;
+		fNextModificationStamp= Math.max(fModificationStamp, fNextModificationStamp);
 		resumePostNotificationProcessing();
 	}
 
@@ -2747,7 +2772,7 @@
 	 */
 	final protected DocumentRewriteSession internalStartRewriteSession(DocumentRewriteSessionType sessionType) throws IllegalStateException {
 		if (getActiveRewriteSession() != null)
-			throw new IllegalStateException();
+			throw new IllegalStateException("already in a rewrite session");
 
 		DocumentRewriteSession session = new StructuredDocumentRewriteSession(sessionType);
 		DocumentRewriteSessionEvent event = new DocumentRewriteSessionEvent(this, session, DocumentRewriteSessionEvent.SESSION_START);
@@ -2759,6 +2784,8 @@
 			extension.startRewriteSession(session);
 		}
 
+		startRewriteSessionOnPartitioners(session);
+
 		if (DocumentRewriteSessionType.SEQUENTIAL == sessionType)
 			startSequentialRewrite(false);
 		else if (DocumentRewriteSessionType.STRICTLY_SEQUENTIAL == sessionType)
@@ -2768,6 +2795,25 @@
 		return session;
 	}
 
+	/**
+	 * Starts the given rewrite session.
+	 *
+	 * @param session the rewrite session
+	 * @since 2.0
+	 */
+	final void startRewriteSessionOnPartitioners(DocumentRewriteSession session) {
+		if (fDocumentPartitioners != null) {
+			Iterator e= fDocumentPartitioners.values().iterator();
+			while (e.hasNext()) {
+				Object partitioner= e.next();
+				if (partitioner instanceof IDocumentPartitionerExtension3) {
+					IDocumentPartitionerExtension3 extension= (IDocumentPartitionerExtension3) partitioner;
+					extension.startRewriteSession(session);
+				}
+			}
+		}
+	}
+
 
 	public void stopRewriteSession(DocumentRewriteSession session) {
 		// delegate to sub-class, so UI threading is handled correctly
@@ -2786,6 +2832,8 @@
 			if (DocumentRewriteSessionType.SEQUENTIAL == sessionType || DocumentRewriteSessionType.STRICTLY_SEQUENTIAL == sessionType)
 				stopSequentialRewrite();
 
+			stopRewriteSessionOnPartitioners(session);
+
 			ILineTracker tracker = getTracker();
 			if (tracker instanceof ILineTrackerExtension) {
 				ILineTrackerExtension extension = (ILineTrackerExtension) tracker;
@@ -2798,6 +2846,30 @@
 		}
 	}
 
+	/**
+	 * Stops the given rewrite session.
+	 *
+	 * @param session the rewrite session
+	 * @since 2.0
+	 */
+	final void stopRewriteSessionOnPartitioners(DocumentRewriteSession session) {
+		if (fDocumentPartitioners != null) {
+			DocumentPartitioningChangedEvent event= new DocumentPartitioningChangedEvent(this);
+			Iterator e= fDocumentPartitioners.keySet().iterator();
+			while (e.hasNext()) {
+				String partitioning= (String) e.next();
+				IDocumentPartitioner partitioner= (IDocumentPartitioner) fDocumentPartitioners.get(partitioning);
+				if (partitioner instanceof IDocumentPartitionerExtension3) {
+					IDocumentPartitionerExtension3 extension= (IDocumentPartitionerExtension3) partitioner;
+					extension.stopRewriteSession(session);
+					event.setPartitionChange(partitioning, 0, getLength());
+				}
+			}
+			if (!event.isEmpty())
+				fireDocumentPartitioningChanged(event);
+		}
+	}
+
 	/*
 	 * (non-Javadoc)
 	 * 
@@ -2844,8 +2916,7 @@
 	 *      java.lang.String, long)
 	 */
 	public void replace(int offset, int length, String text, long modificationStamp) throws BadLocationException {
-		replaceText(this, offset, length, text);
-		fModificationStamp = modificationStamp;
+		replaceText(this, offset, length, text, false, modificationStamp);
 	}
 
 	/*
@@ -2856,9 +2927,7 @@
 	 */
 	public void set(String text, long modificationStamp) {
 		// bug 151069 - overwrite read only regions when setting entire document
-		 replaceText(null, 0, getLength(), text, true);
-
-		fModificationStamp = modificationStamp;
+		 replaceText(null, 0, getLength(), text, true, modificationStamp);
 	}
 
 	/*
@@ -2869,6 +2938,15 @@
 	public long getModificationStamp() {
 		return fModificationStamp;
 	}
+	
+	private long getNextModificationStamp() {
+		if (fNextModificationStamp == Long.MAX_VALUE || fNextModificationStamp == IDocumentExtension4.UNKNOWN_MODIFICATION_STAMP)
+			fNextModificationStamp= 0;
+		else
+			fNextModificationStamp= fNextModificationStamp + 1;
+
+		return fNextModificationStamp;
+	}
 
 	/**
 	 * Fires an event, as specified, to the associated listeners.
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java
index 61559cb..624956f 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/BasicStructuredDocumentRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -32,17 +32,22 @@
 	private static final String UNDEFINED = "org.eclipse.wst.sse.core.structuredDocument.UNDEFINED"; //$NON-NLS-1$
 
 	private ITextRegionList _regions;
-	private boolean fIsDeleted = false;
-	// private String fType;
+	/**
+	 * has this region been removed from its document
+	 */
+	private static final byte MASK_IS_DELETED = 1;
+	/**
+	 * was this region terminated normally
+	 */
+	private static final byte MASK_IS_ENDED = 1 << 1;
+
+	private byte fIsDeletedOrEnded = 0;
+
 	/**
 	 * allow a pointer back to this nodes model
 	 */
 	private IStructuredDocument fParentDocument;
-	/**
-	 * was this node terminated normally
-	 */
-	// 0 == false, 1 == true
-	private byte hasEnd = 0;
+	
 	protected int fLength;
 	private IStructuredDocumentRegion next = null;
 	private IStructuredDocumentRegion previous = null;
@@ -351,7 +356,7 @@
 	 * @see org.eclipse.wst.sse.core.text.IStructuredDocumentRegion#isDeleted()
 	 */
 	public boolean isDeleted() {
-		return fIsDeleted || (fParentDocument == null);
+		return (fIsDeletedOrEnded & MASK_IS_DELETED) != 0 || (fParentDocument == null);
 	}
 
 	/**
@@ -359,7 +364,7 @@
 	 * @return boolean
 	 */
 	public boolean isEnded() {
-		return (hasEnd == 1);
+		return (fIsDeletedOrEnded & MASK_IS_ENDED) != 0;
 	}
 
 	public boolean sameAs(IStructuredDocumentRegion region, int shift) {
@@ -464,8 +469,7 @@
 	 * @see org.eclipse.wst.sse.core.text.IStructuredDocumentRegion#setDelete(boolean)
 	 */
 	public void setDeleted(boolean isDeleted) {
-		fIsDeleted = isDeleted;
-
+		fIsDeletedOrEnded = (byte) (isDeleted ? fIsDeletedOrEnded | MASK_IS_DELETED : 0);
 	}
 
 	/**
@@ -474,12 +478,7 @@
 	 *            boolean
 	 */
 	public void setEnded(boolean newHasEnd) {
-		if (newHasEnd) {
-			hasEnd = 1;
-		}
-		else {
-			hasEnd = 0;
-		}
+		fIsDeletedOrEnded = (byte) (newHasEnd ? fIsDeletedOrEnded | MASK_IS_ENDED : 0);
 	}
 
 	public void setLength(int newLength) {
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CharSequenceReader.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CharSequenceReader.java
index 081f630..6ab29b5 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CharSequenceReader.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CharSequenceReader.java
@@ -43,10 +43,10 @@
 	}
 
 	/**
-	 * @param lock
+	 * @param lockObject
 	 */
-	CharSequenceReader(Object lock) {
-		super(lock);
+	CharSequenceReader(Object lockObject) {
+		super(lockObject);
 		// for thread safety, may need to add back locking mechanism
 		// in our custom constructor. This constructor left here just
 		// for a reminder.
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CoreNodeList.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CoreNodeList.java
index fef7449..6acd927 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CoreNodeList.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/CoreNodeList.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/DeleteEqualPositionUpdater.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/DeleteEqualPositionUpdater.java
index 3cdfd54..e33783e 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/DeleteEqualPositionUpdater.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/DeleteEqualPositionUpdater.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/GenericPositionManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/GenericPositionManager.java
index 2af50b0..0a422a3 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/GenericPositionManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/GenericPositionManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -28,7 +28,10 @@
 import org.eclipse.jface.text.Position;
 import org.eclipse.wst.sse.core.internal.util.Assert;
 
-
+/**
+ * Based on the Position management methods from
+ * org.eclipse.jface.text.AbstractDocument
+ */
 
 public class GenericPositionManager {
 	private CharSequence fCharSequence;
@@ -41,14 +44,14 @@
 
 	/**
 	 * don't allow instantiation with out document pointer
-	 *  
+	 * 
 	 */
 	private GenericPositionManager() {
 		super();
 	}
 
 	/**
-	 *  
+	 * 
 	 */
 	public GenericPositionManager(CharSequence charSequence) {
 		this();
@@ -64,7 +67,8 @@
 	public void addPosition(Position position) throws BadLocationException {
 		try {
 			addPosition(IDocument.DEFAULT_CATEGORY, position);
-		} catch (BadPositionCategoryException e) {
+		}
+		catch (BadPositionCategoryException e) {
 		}
 	}
 
@@ -173,12 +177,14 @@
 					right = left;
 				else
 					right = mid - 1;
-			} else if (offset > p.getOffset()) {
+			}
+			else if (offset > p.getOffset()) {
 				if (right == mid)
 					left = right;
 				else
 					left = mid + 1;
-			} else if (offset == p.getOffset()) {
+			}
+			else if (offset == p.getOffset()) {
 				left = right = mid;
 			}
 
@@ -189,7 +195,8 @@
 		if (offset > p.getOffset()) {
 			// append to the end
 			pos++;
-		} else {
+		}
+		else {
 			// entry will became the first of all entries with the same
 			// offset
 			do {
@@ -197,7 +204,8 @@
 				if (pos < 0)
 					break;
 				p = (Position) positions.get(pos);
-			} while (offset == p.getOffset());
+			}
+			while (offset == p.getOffset());
 			++pos;
 		}
 
@@ -255,8 +263,6 @@
 	/**
 	 * Returns all positions managed by the document grouped by category.
 	 * 
-	 * @deprecated - exposes volatile internals
-	 * 
 	 * @return the document's positions
 	 */
 	protected Map getDocumentManagedPositions() {
@@ -304,7 +310,7 @@
 	 * @see org.eclipse.jface.text.IDocument#insertPositionUpdater(org.eclipse.jface.text.IPositionUpdater,
 	 *      int)
 	 */
-	public void insertPositionUpdater(IPositionUpdater updater, int index) {
+	public synchronized void insertPositionUpdater(IPositionUpdater updater, int index) {
 
 		for (int i = fPositionUpdaters.size() - 1; i >= 0; i--) {
 			if (fPositionUpdaters.get(i) == updater)
@@ -323,7 +329,8 @@
 	public void removePosition(Position position) {
 		try {
 			removePosition(IDocument.DEFAULT_CATEGORY, position);
-		} catch (BadPositionCategoryException e) {
+		}
+		catch (BadPositionCategoryException e) {
 		}
 	}
 
@@ -370,7 +377,7 @@
 	/*
 	 * @see org.eclipse.jface.text.IDocument#removePositionUpdater(org.eclipse.jface.text.IPositionUpdater)
 	 */
-	public void removePositionUpdater(IPositionUpdater updater) {
+	public synchronized void removePositionUpdater(IPositionUpdater updater) {
 		for (int i = fPositionUpdaters.size() - 1; i >= 0; i--) {
 			if (fPositionUpdaters.get(i) == updater) {
 				fPositionUpdaters.remove(i);
@@ -389,7 +396,7 @@
 	 *            the document event describing the change to which to adapt
 	 *            the positions
 	 */
-	protected void updatePositions(DocumentEvent event) {
+	protected synchronized void updatePositions(DocumentEvent event) {
 		List list = new ArrayList(fPositionUpdaters);
 		Iterator e = list.iterator();
 		while (e.hasNext()) {
@@ -400,4 +407,3 @@
 
 
 }
-
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IExecutionDelegatable.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IExecutionDelegatable.java
index 4efbeb5..03ed267 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IExecutionDelegatable.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/IExecutionDelegatable.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/JobSafeStructuredDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/JobSafeStructuredDocument.java
index f38aaf5..5848016 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/JobSafeStructuredDocument.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/JobSafeStructuredDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/MinimalDocument.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/MinimalDocument.java
index a3d63f8..0d4675e 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/MinimalDocument.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/MinimalDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/ReadOnlyPosition.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/ReadOnlyPosition.java
index 51b5b69..4c4bccf 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/ReadOnlyPosition.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/ReadOnlyPosition.java
@@ -15,20 +15,20 @@
 class ReadOnlyPosition extends Position {
 	private boolean fIncludeStartOffset = false;
 
-	public ReadOnlyPosition(int offset, int length, boolean includeStart) {
-		super(offset, length);
+	public ReadOnlyPosition(int newOffset, int newLength, boolean includeStart) {
+		super(newOffset, newLength);
 		fIncludeStartOffset = includeStart;
 	}
 
-	public boolean overlapsWith(int offset, int length) {
-		boolean overlapsWith = super.overlapsWith(offset, length);
+	public boolean overlapsWith(int newOffset, int newLength) {
+		boolean overlapsWith = super.overlapsWith(newOffset, newLength);
 		if (overlapsWith) {
 			/*
 			 * BUG157526 If at the start of the read only region and length =
 			 * 0 most likely asking to insert and want to all inserting before
 			 * read only region
 			 */
-			if (fIncludeStartOffset && (length == 0) && (this.length != 0) && (offset == this.offset)) {
+			if (fIncludeStartOffset && (newLength == 0) && (this.length != 0) && (newOffset == this.offset)) {
 				overlapsWith = false;
 			}
 		}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentReParser.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentReParser.java
index 09c7b51..ead5dad 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentReParser.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentReParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionEnumeration.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionEnumeration.java
index 34f20b8..1191198 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionEnumeration.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionEnumeration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionIterator.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionIterator.java
index 5b222cb..c121b31 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionIterator.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentRegionIterator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentTextStore.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentTextStore.java
index 8a46e66..e825e72 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentTextStore.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/StructuredDocumentTextStore.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -122,8 +122,8 @@
 	private boolean regionMatches(int offset, String stringToCompare) {
 		boolean result = true;
 		int stringOffset = 0;
-		int len = offset + stringToCompare.length();
-		for (int i = offset; i < len; i++) {
+		int end = offset + stringToCompare.length();
+		for (int i = offset; i < end; i++) {
 			if (charAt(i) != stringToCompare.charAt(stringOffset++)) {
 				result = false;
 				break;
@@ -148,8 +148,8 @@
 	private boolean regionMatchesIgnoreCase(int offset, String stringToCompare) {
 		boolean result = true;
 		int stringOffset = 0;
-		int len = stringToCompare.length();
-		for (int i = offset; i < len; i++) {
+		int end = offset + stringToCompare.length();
+		for (int i = offset; i < end; i++) {
 			if (!matchesIgnoreCase(charAt(i), stringToCompare.charAt(stringOffset++))) {
 				result = false;
 				break;
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/TextRegionListImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/TextRegionListImpl.java
index 000c24c..ca92300 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/TextRegionListImpl.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/TextRegionListImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/IStructuredRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/IStructuredRegion.java
index e2a8138..f12b76a 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/IStructuredRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/IStructuredRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/IStructuredTypedRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/IStructuredTypedRegion.java
index 38a14af..1ea21a9 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/IStructuredTypedRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/IStructuredTypedRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/SimpleStructuredRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/SimpleStructuredRegion.java
index afa5efc..4ca1ded 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/SimpleStructuredRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/SimpleStructuredRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/SimpleStructuredTypedRegion.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/SimpleStructuredTypedRegion.java
index f30d54c..1822a8a 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/SimpleStructuredTypedRegion.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/SimpleStructuredTypedRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/StructuredTextPartitioner.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/StructuredTextPartitioner.java
index ebda2ce..5f078c7 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/StructuredTextPartitioner.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/text/rules/StructuredTextPartitioner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -504,23 +504,29 @@
 		IStructuredDocumentRegion structuredDocumentRegion = fStructuredDocument.getRegionAtCharacterOffset(offset);
 		// flatNode is null if empty document
 		// this is king of a "normal case" for empty document
-		if (structuredDocumentRegion == null && docLength == 0) {
-			// In order to prevent infinite error loops, this partition must
-			// never have a zero length
-			// unless the document is also zero length
-			setInternalPartition(offset, 0, getDefaultPartitionType());
-			partitionFound = true;
-		} else if (structuredDocumentRegion == null && docLength != 0) {
-			// this case is "unusual". When would region be null, and document
-			// longer
-			// than 0. I think this means somethings "out of sync". And we may
-			// want
-			// to "flag" that fact and just return one big region of
-			// 'unknown', instead
-			// of one character at a time.
-			setInternalPartition(offset, 1, getUnknown());
-			partitionFound = true;
-		} else if (checkBetween) {
+		if (structuredDocumentRegion == null) {
+			if (docLength == 0) {
+				/*
+				 * In order to prevent infinite error loops, this partition
+				 * must never have a zero length unless the document is also
+				 * zero length
+				 */
+				setInternalPartition(offset, 0, getDefaultPartitionType());
+				partitionFound = true;
+			}
+			else {
+				/*
+				 * This case is "unusual". When would region be null, and
+				 * document longer than 0. I think this means something's "out
+				 * of sync". And we may want to "flag" that fact and just
+				 * return one big region of 'unknown', instead of one
+				 * character at a time.
+				 */
+				setInternalPartition(offset, 1, getUnknown());
+				partitionFound = true;
+			}
+		}	
+		else if (checkBetween) {
 			// dmw: minimizes out to the first if test above
 			//			if (structuredDocumentRegion == null && docLength == 0) {
 			//				// known special case for an empty document
@@ -537,14 +543,8 @@
 				}
 			}
 		}
-		// dmw: Given the first two tests above minimize to this, this block
-		// can never run, right?
-		//		else if (structuredDocumentRegion == null) {
-		//			setInternalPartition(offset, 0, getDefault());
-		//			partitionFound = true;
-		//		}
 
-		if (!partitionFound) {
+		if (!partitionFound && structuredDocumentRegion != null) {
 			ITextRegion resultRegion = structuredDocumentRegion.getRegionAtCharacterOffset(offset);
 			partitionFound = isDocumentRegionBasedPartition(structuredDocumentRegion, resultRegion, offset);
 			if (!partitionFound) {
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/CommandCursorPosition.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/CommandCursorPosition.java
index 3c32f5b..439cf52 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/CommandCursorPosition.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/CommandCursorPosition.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/IDocumentSelectionMediator.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/IDocumentSelectionMediator.java
index a63882d..5632884 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/IDocumentSelectionMediator.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/IDocumentSelectionMediator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/IStructuredTextUndoManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/IStructuredTextUndoManager.java
index 57c741c..80351ba 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/IStructuredTextUndoManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/IStructuredTextUndoManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommand.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommand.java
index 3c7ad37..b085f5b 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommand.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommand.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommandImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommandImpl.java
index e8e282a..70f2bc2 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommandImpl.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCommandImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCompoundCommandImpl.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCompoundCommandImpl.java
index 86ca4a0..ddf7636 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCompoundCommandImpl.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextCompoundCommandImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextUndoManager.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextUndoManager.java
index ebd0280..3a2ff35 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextUndoManager.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/StructuredTextUndoManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -316,7 +316,6 @@
 				compoundCommand.setLabel(fCompoundCommandLabel);
 				compoundCommand.setDescription(fCompoundCommandDescription);
 				compoundCommand.append(textCommand);
-				fCommandStack.execute(compoundCommand);
 
 				fCompoundCommand = compoundCommand;
 			}
@@ -389,6 +388,13 @@
 			if (fRecordingCount > 0)
 				fRecordingCount--;
 			if (fRecordingCount == 0) {
+				
+				// Finally execute the commands accumulated in the compound command.
+				
+				if (fCompoundCommand != null) {
+					fCommandStack.execute(fCompoundCommand);
+				}
+				
 				fRecording = false;
 
 				// reset compound command only when fRecordingCount ==
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/UndoDocumentEvent.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/UndoDocumentEvent.java
index 2f2f8d7..0fee467 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/UndoDocumentEvent.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/undo/UndoDocumentEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Assert.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Assert.java
index 3e20a5f..f3d1ee0 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Assert.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Assert.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -121,7 +121,7 @@
 	public static void isNotNull(Object object, String message) {
 		if (object == null) {
 			//Logger.log(Logger.ERROR, "null_argument: " + message); //$NON-NLS-1$
-			throw new Assert().new AssertionFailedException();
+			throw new Assert().new AssertionFailedException(message);
 		}
 	}
 
@@ -152,7 +152,7 @@
 	 */
 	public static boolean isTrue(boolean expression, String message) {
 		if (!expression) {
-			throw new Assert().new AssertionFailedException();
+			throw new Assert().new AssertionFailedException(message);
 		}
 		return expression;
 	}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Debug.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Debug.java
index 428f035..d6126c3 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Debug.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Debug.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/DocumentInputStream.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/DocumentInputStream.java
index 6c259a2..fad0951 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/DocumentInputStream.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/DocumentInputStream.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/JarUtilities.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/JarUtilities.java
index b9463b9..5582df1 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/JarUtilities.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/JarUtilities.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -23,8 +23,12 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipException;
 import java.util.zip.ZipFile;
+import java.util.zip.ZipInputStream;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.wst.sse.core.internal.Logger;
 
 
@@ -121,10 +125,40 @@
 		}
 		return cache;
 	}
+	
+	private static InputStream copyAndCloseStream(InputStream original) {
+		ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+		InputStream cachedCopy = null;
+		
+		if (original != null) {
+			int c;
+			// array dim restriction?
+			byte bytes[] = new byte[2048];
+			try {
+				while ((c = original.read(bytes)) >= 0) {
+					buffer.write(bytes, 0, c);
+				}
+				cachedCopy = new ByteArrayInputStream(buffer.toByteArray());
+				closeStream(original);
+			}
+			catch (IOException ioe) {
+				// no cleanup can be done
+			}
+		}
+		return cachedCopy;
+	}
 
 	public static String[] getEntryNames(IResource jarResource) {
-		if (jarResource == null || jarResource.getLocation() == null)
+		if (jarResource == null || jarResource.getType() != IResource.FILE)
 			return new String[0];
+		if(jarResource.getLocation() == null) {
+			try {
+				return getEntryNames(new ZipInputStream(((IFile)jarResource).getContents()), true);
+			}
+			catch (CoreException e) {
+				Logger.logException("Problem reading contents of " + jarResource.getFullPath(), e);  //$NON-NLS-1$
+			}
+		}
 		return getEntryNames(jarResource.getLocation().toString());
 	}
 
@@ -132,6 +166,38 @@
 		return getEntryNames(jarFilename, true);
 	}
 
+	private static String[] getEntryNames(ZipInputStream jarInputStream, boolean excludeDirectories) {
+		List entryNames = new ArrayList();
+		try {
+			ZipEntry z = jarInputStream.getNextEntry();
+			while (z != null) {
+				if (!(z.isDirectory() && excludeDirectories))
+					entryNames.add(z.getName());
+				z = jarInputStream.getNextEntry();
+			}
+		}
+		catch (ZipException zExc) {
+			Logger.log(Logger.WARNING, "JarUtilities ZipException: (stream) " + zExc.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		catch (IOException ioExc) {
+			Logger.log(Logger.WARNING, "JarUtilities IOException: (stream) " + ioExc.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		finally {
+			closeStream(jarInputStream);
+		}
+		String[] names = (String[]) entryNames.toArray(new String[0]);
+		return names;
+	}
+
+	private static void closeStream(InputStream inputStream) {
+		try {
+			inputStream.close();
+		}
+		catch (IOException e) {
+			// nothing to do
+		}
+	}
+
 	public static String[] getEntryNames(String jarFilename, boolean excludeDirectories) {
 		ZipFile jarfile = null;
 		List entryNames = new ArrayList();
@@ -158,9 +224,43 @@
 	}
 
 	public static InputStream getInputStream(IResource jarResource, String entryName) {
-		if (jarResource == null)
+		if (jarResource == null || jarResource.getType() != IResource.FILE)
 			return null;
-		return getInputStream(jarResource.getLocation().toString(), entryName);
+		IPath location = jarResource.getLocation();
+		if(location == null) {
+			try {
+				InputStream zipStream = ((IFile)jarResource).getContents();
+				return getInputStream(new ZipInputStream(zipStream), entryName);
+			}
+			catch (CoreException e) {
+				Logger.logException("Problem reading contents of " + jarResource.getFullPath(), e);  //$NON-NLS-1$
+				return null;
+			}
+		}
+		return getInputStream(location.toString(), entryName);
+	}
+	
+	private static InputStream getInputStream(ZipInputStream zip, String entryName) {
+		InputStream result = null;
+		try {
+			ZipEntry z = zip.getNextEntry();
+			while (z != null && !z.getName().equals(entryName)) {
+				z = zip.getNextEntry();
+			}
+			if(z != null) {				
+				result = copyAndCloseStream(zip);
+			}
+		}
+		catch (ZipException zExc) {
+			Logger.log(Logger.WARNING, "JarUtilities ZipException: (stream) " + zExc.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		catch (IOException ioExc) {
+			Logger.log(Logger.WARNING, "JarUtilities IOException: (stream) " + ioExc.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+		finally {
+			closeStream(zip);
+		}
+		return result;
 	}
 
 	public static InputStream getInputStream(String jarFilename, String entryName) {
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/PathHelper.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/PathHelper.java
index fc12060..768f361 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/PathHelper.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/PathHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java
index 5f0116b..0a21f95 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ProjectResolver.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -15,13 +15,15 @@
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
-import com.ibm.icu.util.StringTokenizer;
 
+import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
 
+import com.ibm.icu.util.StringTokenizer;
+
 /**
  * @deprecated The URIResolver interface is deprecated. Use the resolver from
  *             org.eclipse.wst.common.uriresolver.
@@ -96,13 +98,24 @@
 		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=71223
 		// Workaround for problem in URIHelper; uris starting with '/' are
 		// returned as-is.
-		String location = uri;
+		String location = null;
 		if (uri.startsWith("/")) { //$NON-NLS-1$
 			IProject p = getProject();
-			if (p != null && p.exists())
-				location = p.getLocation().toString() + uri;
+			if (p != null && p.isAccessible()) {
+				IFile file = p.getFile(uri);
+				
+				if (file.getLocation() != null) {
+					location = file.getLocation().toString();
+				}
+				if (location == null && file.getLocationURI() != null) {
+					location = file.getLocationURI().toString();
+				}
+				if (location == null) {
+					location = file.getFullPath().toString();
+				}
+			}
 		}
-		else {
+		if(location == null) {
 			location = URIHelper.normalize(uri, baseReference, getRootLocationString());
 		}
 		return location;
@@ -188,13 +201,18 @@
 	}
 
 	protected String getRootLocationString() {
+		String location = null;
 		if (fProject == null)
 			return null;
-
-		String location = null;
 		if (fProject.getLocation() != null) {
 			location = fProject.getLocation().toString();
 		}
+		if (location == null && fProject.getLocationURI() != null) {
+			location = fProject.getLocationURI().toString();
+		}
+		if (location == null) {
+			location = fProject.getFullPath().toString();
+		}
 		return location;
 	}
 
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ResourceUtil.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ResourceUtil.java
index 0b2c8c3..ab59ecb 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ResourceUtil.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ResourceUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ScriptLanguageKeys.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ScriptLanguageKeys.java
index 56e268b..5d4d7aa 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ScriptLanguageKeys.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/ScriptLanguageKeys.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/TextUtilities.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/TextUtilities.java
index 65f94f3..423fa49 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/TextUtilities.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/TextUtilities.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/URIResolver.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/URIResolver.java
index ff34450..e2259eb 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/URIResolver.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/URIResolver.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Utilities.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Utilities.java
index 16ed649..911c5e9 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Utilities.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/util/Utilities.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -96,7 +96,17 @@
 	}
 
 	/**
+	 * <p>
 	 * Ensures that an InputStream has mark/reset support.
+	 * </p>
+	 * <p>
+	 * It's vital that a BufferedInputStream <b>not</b> be wrapped in another
+	 * BufferedInputStream as each can preemptively consume <i>n</i> bytes
+	 * (e.g. 2048) from the parent stream before any requests are made. The
+	 * cascading effect is that the second/inner BufferedInputStream can never
+	 * rewind itself to the first <i>n</i> bytes since they were already
+	 * consumed by its parent.
+	 * </p>
 	 */
 	public static InputStream getMarkSupportedStream(InputStream original) {
 		if (original == null)
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ErrorInfo.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ErrorInfo.java
new file mode 100644
index 0000000..d36b92c
--- /dev/null
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ErrorInfo.java
@@ -0,0 +1,26 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.sse.core.internal.validate;
+
+
+
+public interface ErrorInfo {
+
+	public String getHint();
+
+	public int getLength();
+
+	public int getOffset();
+
+	public int getState();
+
+	public short getTargetType();
+}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationAdapter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationAdapter.java
index f285ac7..336020e 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationAdapter.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationMessage.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationMessage.java
index 9cca9ff..5f2f605 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationMessage.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationMessage.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -17,6 +17,7 @@
 /**
  */
 public class ValidationMessage {
+	public static final int IGNORE = -1;
 	public static final int ERROR = 1;
 	public static final int INFORMATION = 3;
 	public static final int WARNING = 2;
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationReporter.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationReporter.java
index 4133d56..82a06b5 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationReporter.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidationReporter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -14,6 +14,7 @@
 
 
 
+
 /**
  */
 public interface ValidationReporter {
@@ -21,4 +22,7 @@
 	/**
 	 */
 	void report(ValidationMessage message);
+	
+	void report(ErrorInfo info);
+	
 }
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidatorGroupListener.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidatorGroupListener.java
new file mode 100644
index 0000000..d8c6f83
--- /dev/null
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/internal/validate/ValidatorGroupListener.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.sse.core.internal.validate;
+
+import java.util.HashMap;
+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.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.Logger;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.validation.IValidatorGroupListener;
+import org.eclipse.wst.validation.ValidationState;
+
+public class ValidatorGroupListener implements IValidatorGroupListener {
+
+	Map fDiagnosticMap = new HashMap();
+	private static final boolean _debug = false;
+
+	public ValidatorGroupListener() {
+	}
+
+	protected void finalize() throws Throwable {
+		super.finalize();
+		if (fDiagnosticMap != null && !fDiagnosticMap.isEmpty()) {
+			Object[] paths = fDiagnosticMap.keySet().toArray();
+			for (int i = 0; i < paths.length; i++) {
+				Logger.log(Logger.ERROR, "Leaked model: " + paths[i]);
+				validationFinishing(ResourcesPlugin.getWorkspace().getRoot().getFile((IPath) paths[i]), new NullProgressMonitor(), null);
+			}
+		}
+	}
+
+	public void validationFinishing(IResource resource, IProgressMonitor monitor, ValidationState state) {
+		if (_debug)
+			System.out.println("Finishing:" + resource.getFullPath());
+		if (resource.getType() != IResource.FILE)
+			return;
+
+		IStructuredModel model = (IStructuredModel) fDiagnosticMap.remove(resource.getFullPath());
+		if (model != null) {
+			model.releaseFromRead();
+		}
+	}
+
+	public void validationStarting(IResource resource, IProgressMonitor monitor, ValidationState state) {
+		if (_debug)
+			System.out.println("Starting: " + resource.getFullPath());
+		try {
+			if (monitor != null && !monitor.isCanceled()) {
+				if (resource.getType() != IResource.FILE)
+					return;
+
+				IStructuredModel model = StructuredModelManager.getModelManager().getModelForRead((IFile) resource);
+				if (model != null) {
+					fDiagnosticMap.put(resource.getFullPath(), model);
+				}
+			}
+		}
+		catch (Exception e) {
+			Logger.logException(e);
+		}
+	}
+}
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredPartitions.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredPartitions.java
index cf9df7d..e1cfc24 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredPartitions.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/text/IStructuredPartitions.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * 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.sse.core.text;
 
 /**
diff --git a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/utils/StringUtils.java b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/utils/StringUtils.java
index e62ced8..894fde2 100644
--- a/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/utils/StringUtils.java
+++ b/bundles/org.eclipse.wst.sse.core/src/org/eclipse/wst/sse/core/utils/StringUtils.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.sse.ui/.classpath b/bundles/org.eclipse.wst.sse.ui/.classpath
deleted file mode 100644
index bc5a565..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.classpath
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="src" path="src-extensions/"/>
-	<classpathentry kind="src" path="src-encoding"/>
-	<classpathentry kind="src" path="src-tasktags"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.sse.ui/.cvsignore b/bundles/org.eclipse.wst.sse.ui/.cvsignore
deleted file mode 100644
index 2b6bc40..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-editor.jar
-build.xml
-temp.folder
-org.eclipse.wst.sse.ui_1.0.0.jar
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.wst.sse.ui/.options b/bundles/org.eclipse.wst.sse.ui/.options
deleted file mode 100644
index 32f2194..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.options
+++ /dev/null
@@ -1,66 +0,0 @@
-org.eclipse.wst.sse.ui/debug=true
-org.eclipse.wst.sse.ui/debug/tracefilter=
-
-#org.eclipse.wst.sse.ui.edit.util.ActionContributer._showDebugStatus
-org.eclipse.wst.sse.ui/actioncontributor/debugstatusfields=false
-
-
-#org.eclipse.wst.sse.ui.extension.TransferBuilder.debugTime
-org.eclipse.wst.sse.ui/transferbuilder/time=false
-
-org.eclipse.wst.sse.ui/extendedconfigurationbuilder=false
-#org.eclipse.wst.sse.ui.extension.ExtendedConfigurationBuilder.debugTime
-org.eclipse.wst.sse.ui/extendedconfigurationbuilder/time=false
-
-
-org.eclipse.wst.sse.ui/extendededitoractionbuilder=false
-
-#org.eclipse.wst.sse.ui.extension.ExtendedEditorActionBuilder.debugReadTime
-org.eclipse.wst.sse.ui/extendededitoractionbuilder/readtime=false
-
-#org.eclipse.wst.sse.ui.extension.ExtendedEditorActionBuilder.debugContributeTime
-org.eclipse.wst.sse.ui/extendededitoractionbuilder/contributetime=false
-
-
-#org.eclipse.wst.sse.ui.extension.ExtendedEditorActionBuilder.debugMenu
-org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugmenu=false
-
-#org.eclipse.wst.sse.ui.extension.ExtendedEditorActionBuilder.debugPopup
-org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugpopup=false
-
-#org.eclipse.wst.sse.ui.extension.ExtendedEditorActionBuilder.debugToolbar
-org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugtoolbar=false
-
-
-#org.eclipse.wst.sse.ui.FileModelProvider.debugOperations
-org.eclipse.wst.sse.ui/filemodelprovider/operations=false
-
-#org.eclipse.wst.sse.ui.FileModelProvider.debugLifecyclelistener
-org.eclipse.wst.sse.ui/filemodelprovider/lifecyclelistener=false
-
-#org.eclipse.wst.sse.ui.FileModelProvider.debugModelStatelistener
-org.eclipse.wst.sse.ui/filemodelprovider/modelstatelistener=false
-
-
-#org.eclipse.wst.sse.ui.StorageModelProvider.debugOperations
-org.eclipse.wst.sse.ui/storagemodelprovider/operations=false
-
-#org.eclipse.wst.sse.ui.StorageModelProvider.debugElementStatelistener
-org.eclipse.wst.sse.ui/storagemodelprovider/elementstatelistener=false
-
-org.eclipse.wst.sse.ui/contentOutline=false
-org.eclipse.wst.sse.ui/propertySheet=false
-
-#org.eclipse.wst.sse.ui.views.contentoutline.PropertyChangeUpdateActionContributionItem.debug
-org.eclipse.wst.sse.ui/propertyChangeUpdateActionContributionItem=false
-
-org.eclipse.wst.sse.ui/debug/reconcilerjob=false
-
-#org.eclipse.wst.sse.ui.internal.GotoAnnotationAction._debug
-org.eclipse.wst.sse.ui/gotoNextAnnotation=false
-
-org.eclipse.wst.sse.ui/preferences-properties=false
-
-org.eclipse.wst.sse.ui/debug/reconcilerSpelling=false
-
-org.eclipse.wst.sse.ui/debug/reconcilerValidators=false
diff --git a/bundles/org.eclipse.wst.sse.ui/.project b/bundles/org.eclipse.wst.sse.ui/.project
deleted file mode 100644
index 78bd94c..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.project
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.sse.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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index afa5c91..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 782e417..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,80 +0,0 @@
-#Sun Apr 16 17:23:39 EDT 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=ignore

-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.annotationSuperInterface=warning

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

-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore

-org.eclipse.jdt.core.compiler.problem.deprecation=ignore

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

-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore

-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

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

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

-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore

-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error

-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error

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

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

-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore

-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error

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

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled

-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=error

-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore

-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.missingOverrideAnnotation=ignore

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

-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error

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

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

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

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled

-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error

-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning

-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore

-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

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

-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning

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

-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error

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

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

-org.eclipse.jdt.core.compiler.problem.unusedImport=error

-org.eclipse.jdt.core.compiler.problem.unusedLabel=error

-org.eclipse.jdt.core.compiler.problem.unusedLocal=error

-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=error

-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

-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.sse.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index ef2ac65..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:39 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index c59368c..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 2223723..0000000
--- a/bundles/org.eclipse.wst.sse.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Sun Apr 16 14:05:29 EDT 2006

-compilers.p.build=0

-compilers.p.deprecated=1

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

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

-compilers.p.not-externalized-att=0

-compilers.p.unknown-attribute=0

-compilers.p.unknown-class=0

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=0

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

-compilers.p.unresolved-import=0

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

-compilers.use-project=true

-eclipse.preferences.version=1

diff --git a/bundles/org.eclipse.wst.sse.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.sse.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index a1d3d32..0000000
--- a/bundles/org.eclipse.wst.sse.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,65 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.sse.ui; singleton:=true
-Bundle-Version: 1.0.204.qualifier
-Bundle-Activator: org.eclipse.wst.sse.ui.internal.SSEUIPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.sse.ui,
- org.eclipse.wst.sse.ui.internal;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.actions;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.contentassist;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.contentoutline;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.contentproperties.ui;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.correction;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.debug;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.derived;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.edit.util;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.editor;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.encoding.ui;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.extension;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.format;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.hyperlink;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.openon;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.preferences;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.preferences.ui;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.projection;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.properties;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.provisional.extensions;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.provisional.preferences;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.provisional.registry;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.provisional.style;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.reconcile;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.reconcile.validator;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.search;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.selection;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.spelling;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.taginfo;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.text;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.ui;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.util;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.internal.view.events;x-friends:="org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.sse.ui.views.contentoutline,
- org.eclipse.wst.sse.ui.views.properties
-Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jface.text;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.debug.core;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.debug.ui;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.editors;visibility:=reexport;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.search;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.swt;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jface;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.workbench;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.views;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.core.filebuffers;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.common;bundle-version="[2.2.0,2.3.0)",
- com.ibm.icu;bundle-version="[3.4.4,3.5.0)"
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.wst.sse.ui/README.txt b/bundles/org.eclipse.wst.sse.ui/README.txt
deleted file mode 100644
index efe4522..0000000
--- a/bundles/org.eclipse.wst.sse.ui/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-The base editor of the sse framework. It provides the hooks for content assist,
-breakpoints, debugging, open-on, quickfix, spell checking and a content outline.
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/about.html b/bundles/org.eclipse.wst.sse.ui/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/bundles/org.eclipse.wst.sse.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" 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 ("Redistributor") 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 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.wst.sse.ui/build.properties b/bundles/org.eclipse.wst.sse.ui/build.properties
deleted file mode 100644
index a5b77be..0000000
--- a/bundles/org.eclipse.wst.sse.ui/build.properties
+++ /dev/null
@@ -1,30 +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
-#     
-###############################################################################
-bin.includes = plugin.xml,\
-               .options,\
-               .,\
-               icons/,\
-               plugin.properties,\
-               META-INF/,\
-               about.html
-bin.excludes = bin/**,\
-               @dot/**,\
-               temp.folder/**
-src.includes = toc.xml,\
-               testToc.xml,\
-               schema/,\
-               html/
-source.. = src/,\
-           src-extensions/,\
-           src-encoding,\
-           src-tasktags/
diff --git a/bundles/org.eclipse.wst.sse.ui/html/maintopic.html b/bundles/org.eclipse.wst.sse.ui/html/maintopic.html
deleted file mode 100644
index a476078..0000000
--- a/bundles/org.eclipse.wst.sse.ui/html/maintopic.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-	<title>Main Topic</title>
-</head>
-
-<body>
-<h1>Main Topic</h1>
-Please enter your text here.
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/html/subtopic.html b/bundles/org.eclipse.wst.sse.ui/html/subtopic.html
deleted file mode 100644
index 8a61c50..0000000
--- a/bundles/org.eclipse.wst.sse.ui/html/subtopic.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-	<title>Sub Topic</title>
-</head>
-
-<body>
-<h1>Sub Topic</h1>
-Please enter your text here.
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/html/toc.html b/bundles/org.eclipse.wst.sse.ui/html/toc.html
deleted file mode 100644
index 326f0a9..0000000
--- a/bundles/org.eclipse.wst.sse.ui/html/toc.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
-	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-	<title>Table of Contents</title>
-</head>
-
-<body>
-<h1>Table of Contents</h1>
-Please enter your text here.
-</body>
-</html>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/ctool16/spellcheck.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/ctool16/spellcheck.gif
deleted file mode 100644
index c71de32..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/ctool16/spellcheck.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/collapseall.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/collapseall.gif
deleted file mode 100644
index 7dc0de5..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/delete.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/delete.gif
deleted file mode 100644
index 2e197c2..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/delete.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/synced.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/synced.gif
deleted file mode 100644
index 4b9e567..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/dlcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/dtool16/spellcheck.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/dtool16/spellcheck.gif
deleted file mode 100644
index a4cf55f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/dtool16/spellcheck.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/collapseall.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/collapseall.gif
deleted file mode 100644
index a2d80a9..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/collapseall.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/delete.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/delete.gif
deleted file mode 100644
index 0ae6dec..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/delete.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/synced.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/synced.gif
deleted file mode 100644
index 05cefef..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/elcl16/synced.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/etool16/spellcheck.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/etool16/spellcheck.gif
deleted file mode 100644
index c71de32..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/etool16/spellcheck.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/occ_match.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/occ_match.gif
deleted file mode 100644
index 9e033de..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/occ_match.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/preferences.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/preferences.gif
deleted file mode 100644
index 4c07fea..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/preferences.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/prop_ps.gif b/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/prop_ps.gif
deleted file mode 100644
index 3aec64d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/full/obj16/prop_ps.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/icons/sourceEditor.gif b/bundles/org.eclipse.wst.sse.ui/icons/sourceEditor.gif
deleted file mode 100644
index 75ebdb8..0000000
--- a/bundles/org.eclipse.wst.sse.ui/icons/sourceEditor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.sse.ui/plugin.properties b/bundles/org.eclipse.wst.sse.ui/plugin.properties
deleted file mode 100644
index dbbb50c..0000000
--- a/bundles/org.eclipse.wst.sse.ui/plugin.properties
+++ /dev/null
@@ -1,81 +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
-#     
-###############################################################################
-providerName=Eclipse.org
-pluginName=Structured Source Editor
-Standalone_Structured_Source_Editor.name=Standalone Structured Source Editor
-# Name on preferences page
-WEB_AND_XML_Files.name=Web and XML
-Structured_Text_Editor.name=Structured Text Editors
-Task_Tags_Preferences.name=Task Tags
-
-#
-sourceEditorFontDefiniton.label=Structured Text Editor Text Font
-sourceEditorFontDefintion.description=The Structured text editor text font is used by Structured text editors.
-
-Adapter_Factory_Description_Extension.name=Adapter Factory Description Extension
-Extended_Editor_Actions_Extension.name=Extended Editor Actions Extension
-Drop_Target_Transfers_Extension.name=Drop Target Transfers Extension
-Extended_Editor_Configuration_Extension.name=Extended Editor Configuration Extension
-##########################################################################
-# These strings are used in Workbench Keys Preferences
-##########################################################################
-scope.structuredTextEditor.name=Editing in Structured Text Editors
-scope.structuredTextEditor.description=Editing in Structured Text Editors
-command.toggle.comment.name=Toggle Comment
-command.toggle.comment.description=Toggle Comment
-command.add.block.comment.name=Add Block Comment
-command.add.block.comment.description=Add Block Comment
-command.remove.block.comment.name=Remove Block Comment
-command.remove.block.comment.description=Remove Block Comment
-command.cleanup.document.name=Cleanup Document
-command.cleanup.document.description=Cleanup document
-command.format.document.name=Format Document
-command.format.document.description=Format document
-command.format.active.elements.name=Format Active Elements
-command.format.active.elements.description=Format active elements
-command.open.file.from.source.name=Open Selection
-command.open.file.from.source.description=Open an editor on the selected link
-command.search.find.occurrences.name=Occurrences in File
-command.search.find.occurrences.description=Find occurrences of the selection in the file
-ActionDefinition.selectEnclosing.name=Select Enclosing Element
-ActionDefinition.selectEnclosing.description=Expand selection to include enclosing element
-ActionDefinition.selectNext.name=Select Next Element
-ActionDefinition.selectNext.description=Expand selection to include next sibling
-ActionDefinition.selectPrevious.name=Select Previous Element
-ActionDefinition.selectPrevious.description=Expand selection to include previous sibling
-ActionDefinition.selectLast.name=Restore Last Selection
-ActionDefinition.selectLast.description=Restore last selection
-ActionDefinition.showJavadoc.name=Show Tooltip Description
-ActionDefinition.showJavadoc.description=Displays the hover help for the selected element
-ActionDefinition.quickFix.name=Quick Fix
-ActionDefinition.quickFix.description=Quick Fix
-
-#
-AddBookmark.label=Add Boo&kmark...
-SelectRuler.label=Select Ruler
-#
-##########################################################################
-# These strings are used in file and container resource popup menu
-##########################################################################
-Source=&Source
-FormatDocument=&Format document
-##
-Breakpoint_Extension_Point.name=Breakpoint Extension Point
-Source_Validation_Extension_Point.name=Reconcile Validator Extension Point
-###############################################################################
-# The following property keys maybe unused. Commented out on 4/12/2005. Uncomment if needed.
-#Bean_Info_Provider_Extension.name=Bean Info Provider Extension
-#SpellCheck_Extension_Point.name=SpellCheck Extension Point
-#Open_On_Extension_Point.name=Open On Extension Point
-#Spell_Check_label=Spell Check
-#Spell_Check_tooltip=Spell Check
diff --git a/bundles/org.eclipse.wst.sse.ui/plugin.xml b/bundles/org.eclipse.wst.sse.ui/plugin.xml
deleted file mode 100644
index 0d1925d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/plugin.xml
+++ /dev/null
@@ -1,474 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-	<extension-point
-		id="adapterFactoryDescription"
-		name="%Adapter_Factory_Description_Extension.name" />
-	<extension-point
-		id="extendedEditorActions"
-		name="%Extended_Editor_Actions_Extension.name" />
-	<extension-point
-		id="dropTargetTransfers"
-		name="%Drop_Target_Transfers_Extension.name" />
-	<extension-point
-		id="editorConfiguration"
-		name="%Extended_Editor_Configuration_Extension.name"
-		schema="schema/editorconfiguration.exsd" />
-
-
-	<!-- Make sure default preference values are set at runtime -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.wst.sse.ui.internal.PreferenceInitializer" />
-	</extension>
-
-
-	<!-- reusable extensions -->
-	<extension point="org.eclipse.wst.sse.ui.editorConfiguration">
-		<sourceViewerConfiguration
-			class="org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration"
-			target="org.eclipse.wst.sse.ui.StructuredTextEditor" />
-		<provisionalDefinition
-			type="preferencepages"
-			value="org.eclipse.wst.sse.ui.preferences.editor"
-			target="org.eclipse.wst.sse.ui.StructuredTextEditor" />
-	</extension>
-	<!-- associate the NavigateActionSet with various parts of the XML perspective-->
-	<extension point="org.eclipse.ui.actionSetPartAssociations">
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.edit.text.actionSet.annotationNavigation">
-			<part
-				id="org.eclipse.wst.sse.ui.StructuredTextEditor">
-			</part>
-		</actionSetPartAssociation>
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.NavigateActionSet">
-			<!--
-				<part id="org.eclipse.ui.views.ResourceNavigator"/>
-				<part id="org.eclipse.ui.views.ContentOutline"/>
-			-->
-			<!--
-				should probably only "force" association of action sets for workbench parts that we own
-				or only if the view is focusse in the XMLPerspective
-			-->
-			<part
-				id="org.eclipse.wst.sse.ui.StructuredTextEditor">
-			</part>
-		</actionSetPartAssociation>
-	</extension>
-	<extension point="org.eclipse.ui.preferencePages">
-		<!-- ROOT PREFERENCE PAGE FOR WEB AND XML FILES -->
-		<!--  Comment out for now since this preference page is not used
-			<page
-			name="%WEB_AND_XML_Files.name"
-			class="org.eclipse.wst.sse.ui.internal.preferences.ui.FilePreferencePage"
-			id="org.eclipse.wst.sse.ui.internal.provisional.preferences">
-			</page>
-		-->
-		<page
-			name="%WEB_AND_XML_Files.name"
-			class="org.eclipse.wst.sse.ui.internal.preferences.ui.EmptyFilePreferencePage"
-			id="org.eclipse.wst.sse.ui.internal.provisional.preferences">
-		</page>
-		<!-- "common" task tags preference page -->
-		<page
-			name="%Task_Tags_Preferences.name"
-			category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
-			class="org.eclipse.wst.sse.ui.internal.preferences.ui.TaskTagPreferencePage"
-			id="org.eclipse.wst.sse.ui.preferences.tasktags">
-		</page>
-
-		<!-- Source Editor Preference page under Workbench->Editors -->
-		<page
-			name="%Structured_Text_Editor.name"
-			category="org.eclipse.ui.preferencePages.Editors"
-			class="org.eclipse.wst.sse.ui.internal.preferences.ui.StructuredTextEditorPreferencePage"
-			id="org.eclipse.wst.sse.ui.preferences.editor">
-		</page>
-	</extension>
-	<!-- ================================================================================================ -->
-	<!-- common task tags property page -->
-	<!-- ================================================================================================ -->
-	<extension point="org.eclipse.ui.propertyPages">
-		<page
-			id="org.eclipse.wst.sse.ui.project.properties.tasktags"
-			name="%Task_Tags_Preferences.name"
-			objectClass="org.eclipse.core.resources.IProject"
-			adaptable="true"
-			class="org.eclipse.wst.sse.ui.internal.preferences.ui.TaskTagPreferencePage" />
-	</extension>
-
-	<!--
-		<extension-point id="dragSourceTransfers" name="Drag Source Transfers"/>
-	-->
-	<extension point="org.eclipse.ui.commands">
-		<!-- Edit commands -->
-		<command
-			name="%ActionDefinition.selectEnclosing.name"
-			description="%ActionDefinition.selectEnclosing.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.structure.select.enclosing">
-		</command>
-		<command
-			name="%ActionDefinition.selectNext.name"
-			description="%ActionDefinition.selectNext.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.structure.select.next">
-		</command>
-		<command
-			name="%ActionDefinition.selectPrevious.name"
-			description="%ActionDefinition.selectPrevious.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.structure.select.previous">
-		</command>
-		<command
-			name="%ActionDefinition.selectLast.name"
-			description="%ActionDefinition.selectLast.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.structure.select.last">
-		</command>
-		<command
-			name="%ActionDefinition.showJavadoc.name"
-			description="%ActionDefinition.showJavadoc.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.show.javadoc">
-		</command>
-		<command
-			name="%ActionDefinition.quickFix.name"
-			description="%ActionDefinition.quickFix.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.edit.text.java.correction.assist.proposals">
-		</command>
-		<!-- Source commands -->
-		<command
-			name="%command.toggle.comment.name"
-			description="%command.toggle.comment.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.toggle.comment">
-		</command>
-		<command
-			name="%command.add.block.comment.name"
-			description="%command.add.block.comment.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.add.block.comment">
-		</command>
-		<command
-			name="%command.remove.block.comment.name"
-			description="%command.remove.block.comment.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.remove.block.comment">
-		</command>
-		<command
-			name="%command.cleanup.document.name"
-			description="%command.cleanup.document.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.cleanup.document">
-		</command>
-		<command
-			name="%command.format.document.name"
-			description="%command.format.document.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.format.document">
-		</command>
-		<command
-			name="%command.format.active.elements.name"
-			description="%command.format.active.elements.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.format.active.elements">
-		</command>
-		<!-- Navigate commands -->
-		<command
-			name="%command.open.file.from.source.name"
-			description="%command.open.file.from.source.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.open.file.from.source">
-		</command>
-		<!-- Find Occurrences -->
-		<command
-			name="%command.search.find.occurrences.name"
-			description="%command.search.find.occurrences.description"
-			categoryId="org.eclipse.ui.category.edit"
-			id="org.eclipse.wst.sse.ui.search.find.occurrences">
-		</command>
-	</extension>
-	<!-- Keybinding scope for source editor -->
-	<extension point="org.eclipse.ui.contexts">
-		<context
-			name="%scope.structuredTextEditor.name"
-			parentId="org.eclipse.ui.textEditorScope"
-			description="%scope.structuredTextEditor.description"
-			id="org.eclipse.wst.sse.ui.structuredTextEditorScope">
-		</context>
-	</extension>
-	<!-- Keybindings for source editor -->
-	<extension point="org.eclipse.ui.bindings">
-	    <!--  win32:  M1=CTRL, M2=SHIFT, M3=ALT -->
-		<!-- Edit commands -->
-		<key
-			sequence="M2+M3+ARROW_UP"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.structure.select.enclosing"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="M2+M3+ARROW_RIGHT"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.structure.select.next"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="M2+M3+ARROW_LEFT"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.structure.select.previous"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="M2+M3+ARROW_DOWN"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.structure.select.last"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="F2"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.show.javadoc"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="M1+1"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.edit.text.java.correction.assist.proposals"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<!-- Source commands -->
-		<key
-			sequence="M1+M2+C"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.toggle.comment"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="M1+M2+/"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.add.block.comment"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="M1+M2+\"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.remove.block.comment"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="M1+M2+F"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.format.document"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<key
-			sequence="M1+I"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.format.active.elements"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<!-- Navigate commands -->
-		<key
-			sequence="F3"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.open.file.from.source"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-		<!-- Find Occurrences -->
-		<key
-			sequence="M1+M2+A"
-			contextId="org.eclipse.wst.sse.ui.structuredTextEditorScope"
-			commandId="org.eclipse.wst.sse.ui.search.find.occurrences"
-			schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
-		</key>
-	</extension>
-	<!-- Font and colors contributions -->
-	<extension point="org.eclipse.ui.themes">
-		<themeElementCategory
-			label="%Structured_Text_Editor.name"
-			id="org.eclipse.wst.sse.ui">
-		</themeElementCategory>
-		<fontDefinition
-			label="%sourceEditorFontDefiniton.label"
-			categoryId="org.eclipse.wst.sse.ui"
-			defaultsTo="org.eclipse.jface.textfont"
-			id="org.eclipse.wst.sse.ui.textfont">
-			<description>
-				%sourceEditorFontDefintion.description
-			</description>
-		</fontDefinition>
-	</extension>
-	<extension point="org.eclipse.wst.sse.ui.dropTargetTransfers">
-		<dropTargetContribution
-			targetID="org.eclipse.wst.sse.ui.StructuredTextEditor"
-			id="org.eclipse.wst.sse.ui.extension.ExtendedTransfers">
-			<transfer
-				priority="mid"
-				singleton="true"
-				class="org.eclipse.swt.dnd.FileTransfer"
-				method="getInstance"
-				id="org.eclipse.swt.dnd.FileTransfer">
-			</transfer>
-			<dropAction
-				class="org.eclipse.wst.sse.ui.internal.FileDropAction"
-				transferID="org.eclipse.swt.dnd.FileTransfer"
-				id="org.eclipse.wst.sse.ui.internal.FileDropAction">
-			</dropAction>
-			<transfer
-				priority="low"
-				singleton="true"
-				class="org.eclipse.swt.dnd.TextTransfer"
-				method="getInstance"
-				id="org.eclipse.swt.dnd.TextTransfer">
-			</transfer>
-			<dropAction
-				class="org.eclipse.wst.sse.ui.internal.TextDropAction"
-				transferID="org.eclipse.swt.dnd.TextTransfer"
-				id="org.eclipse.wst.sse.ui.internal.TextDropAction">
-			</dropAction>
-		</dropTargetContribution>
-	</extension>
-
-	<extension point="org.eclipse.ui.editors.annotationTypes">
-		<type
-			super="org.eclipse.ui.workbench.texteditor.error"
-			markerType="org.eclipse.wst.sse.problem"
-			name="org.eclipse.wst.sse.ui.temp.error"
-			markerSeverity="2">
-		</type>
-		<type
-			super="org.eclipse.ui.workbench.texteditor.warning"
-			markerType="org.eclipse.wst.sse.problem"
-			name="org.eclipse.wst.sse.ui.temp.warning"
-			markerSeverity="1">
-		</type>
-
-		<type
-			super="org.eclipse.ui.workbench.texteditor.info"
-			markerType="org.eclipse.wst.sse.problem"
-			name="org.eclipse.wst.sse.ui.temp.info"
-			markerSeverity="0">
-		</type>
-	</extension>
-	<extension
-		point="org.eclipse.ui.editors.markerAnnotationSpecification">
-
-		<!--================================================================================================-->
-		<!-- same as eclipse text ui (including preference keys), except for vertical ruler & preference page -->
-		<!--================================================================================================-->
-		<specification
-			annotationType="org.eclipse.wst.sse.ui.temp.error"
-			annotationImageProvider="org.eclipse.wst.sse.ui.internal.ui.StructuredTextAnnotationImageProvider"
-			verticalRulerPreferenceValue="true"
-			verticalRulerPreferenceKey="sseErrorIndicationInVerticalRuler"
-			includeOnPreferencePage="false">
-		</specification>
-		<specification
-			annotationType="org.eclipse.wst.sse.ui.temp.warning"
-			annotationImageProvider="org.eclipse.wst.sse.ui.internal.ui.StructuredTextAnnotationImageProvider"
-			verticalRulerPreferenceValue="false"
-			verticalRulerPreferenceKey="sseWarningIndicationInVerticalRuler"
-			includeOnPreferencePage="false">
-		</specification>
-		<specification
-			annotationImageProvider="org.eclipse.wst.sse.ui.internal.ui.StructuredTextAnnotationImageProvider"
-			annotationType="org.eclipse.wst.sse.ui.temp.info">
-		</specification>
-	</extension>
-	<!-- dynamic content type supporting editor, no supported file extensions by default -->
-	<extension point="org.eclipse.ui.editors">
-		<editor
-			name="%Standalone_Structured_Source_Editor.name"
-			icon="$nl$/icons/sourceEditor.gif"
-			contributorClass="org.eclipse.wst.sse.ui.internal.actions.ActionContributor"
-			class="org.eclipse.wst.sse.ui.StructuredTextEditor"
-			symbolicFontName="org.eclipse.wst.sse.ui.textfont"
-			id="org.eclipse.wst.sse.ui.StructuredTextEditor">
-		</editor>
-	</extension>
-	<extension point="org.eclipse.ui.popupMenus">
-		<objectContribution
-			objectClass="org.eclipse.core.resources.IContainer"
-			id="org.eclipse.wst.sse.ui.actions.ContainerSourceActions">
-			<menu
-				label="%Source"
-				path="additions"
-				id="source">
-				<groupMarker name="sourceGroup"></groupMarker>
-			</menu>
-			<action
-				label="%FormatDocument"
-				class="org.eclipse.wst.sse.ui.internal.actions.FormatActionDelegate"
-				menubarPath="source/sourceGroup"
-				enablesFor="+"
-				id="org.eclipse.wst.sse.ui.actions.ContainerSourceActions.Format">
-			</action>
-		</objectContribution>
-		<objectContribution
-			objectClass="org.eclipse.core.resources.IFile"
-			id="org.eclipse.wst.sse.ui.actions.FileSourceActions">
-			<menu
-				label="%Source"
-				path="additions"
-				id="source">
-				<groupMarker name="sourceGroup"></groupMarker>
-			</menu>
-			<action
-				label="%FormatDocument"
-				class="org.eclipse.wst.sse.ui.internal.actions.FormatActionDelegate"
-				menubarPath="source/sourceGroup"
-				enablesFor="+"
-				id="org.eclipse.wst.sse.ui.actions.FileSourceActions.Format">
-			</action>
-		</objectContribution>
-   	</extension>
-   <extension
-         point="org.eclipse.ui.editorActions">
-      <editorContribution
-            targetID="org.eclipse.wst.sse.ui.StructuredTextEditor"
-            id="org.eclipse.wst.sse.ui.StructuredTextEditor.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>
-         <action
-               label="%SelectRuler.label"
-               class="org.eclipse.ui.texteditor.SelectRulerAction"
-               actionID="RulerClick"
-               id="org.eclipse.ui.texteditor.SelectRulerAction">
-         </action>
-      </editorContribution>
-   </extension>
-
-	<!--================================================================================================-->
-	<!-- contribute a SearchResultViewPage for Occurrences in file                                      -->
-	<!--================================================================================================-->
-	<extension
-		id="Occurrences search page"
-		point="org.eclipse.search.searchResultViewPages">
-		<viewPage
-			id="org.eclipse.wst.sse.ui.search.OccurrencesSearchResultPage"
-			searchResultClass="org.eclipse.wst.sse.ui.internal.search.OccurrencesSearchResult"
-			class="org.eclipse.wst.sse.ui.internal.search.OccurrencesSearchViewPage">
-		</viewPage>
-	</extension>
-
-	<!-- extension point for breakpoint extension -->
-	<extension-point
-		id="breakpoint"
-		name="%Breakpoint_Extension_Point.name" />
-	<!-- extension point for source validation -->
-	<!-- interfaces for this extension point can be found in org.eclipse.wst.validation -->
-	<extension-point
-		id="sourcevalidation"
-		name="%Source_Validation_Extension_Point.name"
-		schema="schema/org.eclipse.wst.sse.editor.sourcevalidation.exsd" />
-</plugin>
diff --git a/bundles/org.eclipse.wst.sse.ui/reexport-info.txt b/bundles/org.eclipse.wst.sse.ui/reexport-info.txt
deleted file mode 100644
index 9c8c7c7..0000000
--- a/bundles/org.eclipse.wst.sse.ui/reexport-info.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-we reexport eclipse.ui.editors 
-since one of our APIs, StructuredSourceViewerConfiguration 
-requires it. 
-
diff --git a/bundles/org.eclipse.wst.sse.ui/schema/editorconfiguration.exsd b/bundles/org.eclipse.wst.sse.ui/schema/editorconfiguration.exsd
deleted file mode 100644
index 66e2130..0000000
--- a/bundles/org.eclipse.wst.sse.ui/schema/editorconfiguration.exsd
+++ /dev/null
@@ -1,256 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.sse.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.sse.ui" id="editorConfiguration" name="Editor Configuration"/>
-      </appInfo>
-      <documentation>
-         The SSE StructuredTextEditor is intended to be as flexible as possible.  Much of its design centers around the notion of defining and redefining its behavior and appearance based on the content type of its input.  This extension point allows clients to provide an editor configuration to the StructuredTextEditor without having to subclass the editor.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="sourceViewerConfiguration" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="contentOutlineConfiguration" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="propertySheetConfiguration" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="provisionalConfiguration" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="provisionalDefinition" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="sourceViewerConfiguration">
-      <annotation>
-         <documentation>
-            Defines the source viewer configuration, affecting syntax highlighting, content assist, hover help, and more in the current editor.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="target" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A string defining when to use this extension, either an editor or content type id.  Multiple targets may be given as a comma delimited value.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Must subclass org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="contentOutlineConfiguration">
-      <annotation>
-         <documentation>
-            Defines how the current editor&apos;s input maps to elements with in a Tree control, as well as selection filtering, toolbar and menu contributions, etc in the Outline view.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="target" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A string defining when to use this extension, either an editor or content type id.  Multiple targets may be given as a comma delimited value.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Must subclass org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="propertySheetConfiguration">
-      <annotation>
-         <documentation>
-            Defines how the current editor&apos;s input maps to properties in a Table control, as well as toolbar contributions, etc in the Properties view.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="target" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A string defining when to use this extension, either an editor or content type id.  Multiple targets may be given as a comma delimited value.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Must subclass org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="provisionalConfiguration">
-      <annotation>
-         <documentation>
-            Declares a class fulfilling the requirements of a type to be used for the given target(s).
-&lt;br /&gt;Note: this is not API and is only used for provisional configuration types.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="target" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A string defining when to use this extension, either an editor or content type id.  Multiple targets may be given as a comma delimited value.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="type" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The type of configuration to find.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string" use="required">
-            <annotation>
-               <documentation>
-                  Implementation class for this type.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="provisionalDefinition">
-      <annotation>
-         <documentation>
-            Defines a value for a type to be used for the given target(s).
-&lt;br /&gt;Note: this is not API and is only used for provisional configuration types.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="type" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The type of definition to find.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="value" type="string">
-            <annotation>
-               <documentation>
-                  The value of this definition.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="target" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A string defining when to use this extension, either an editor or content type id.  Multiple targets may be given as a comma delimited value.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         1.0
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         &lt;pre&gt;
-   &lt;extension 
-         point=&quot;org.eclipse.wst.sse.ui.editorConfiguration&quot;&gt;
-      &lt;!-- associating a source viewer configuration to an input&apos;s content type--&gt;
-      &lt;sourceViewerConfiguration
-            class=&quot;org.eclipse.wst.html.ui.StructuredTextViewerConfigurationHTML&quot;
-            target=&quot;org.eclipse.wst.html.core.htmlsource&quot;/&gt;
-      &lt;!-- associating an outline configuration to an input&apos;s content type --&gt;
-      &lt;contentOutlineConfiguration
-           class=&quot;org.eclipse.wst.sse.xml.ui.views.contentoutline.XMLContentOutlineConfiguration&quot;
-            target=&quot;org.eclipse.core.runtime.xml&quot;/&gt;
-      &lt;!-- associating a property sheet configuration to multiple content types --&gt;
-      &lt;propertySheetConfiguration
-            class=&quot;org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration&quot;
-            target=&quot;org.eclipse.wst.sse.contenttype.xml, org.eclipse.wst.html.core.htmlsource, org.eclipse.jst.jsp.core.jspsource&quot;/&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         see &lt;code&gt;org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration&lt;/code&gt;, &lt;code&gt;org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration&lt;/code&gt;, &lt;code&gt;org.eclipse.wst.sse.ui.views.properties.StructuredPropertySheetConfiguration&lt;/code&gt;.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005 IBM Corporation and others.
-All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.sse.ui/schema/sourcevalidation.exsd b/bundles/org.eclipse.wst.sse.ui/schema/sourcevalidation.exsd
deleted file mode 100644
index 5250d31..0000000
--- a/bundles/org.eclipse.wst.sse.ui/schema/sourcevalidation.exsd
+++ /dev/null
@@ -1,191 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.sse.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.sse.ui" id="sourcevalidation" name="Source Validation"/>
-      </appInfo>
-      <documentation>
-         This extension point is provided to allow clients to contribute a validator (&lt;code&gt;org.eclipse.wst.validation.internal.provisional.core.IValidator&lt;/code&gt;)
-for as-you-type (source) validation.&lt;br&gt;
-
-If your validator can handle &quot;partial document&quot; validation, it should also implement ISourceValidator.  The validate call on ISourceValidator gets passed an IRegion representation of the part of the document that&apos;s dirty.&lt;br&gt;
-
-This should be much more efficient than validating the entire file each time someone types.&lt;br&gt;
-
-The validator is enabled for specific content type/partition combinations.&lt;br&gt;
-
-Required plugins are:&lt;br&gt;
-   org.eclipse.wst.sse.ui&lt;br&gt;
-   org.eclipse.wst.validation
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="validator"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  a fully qualified identifier of the target extension point
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  an optional identifier of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  an optional name of the extension instance
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="validator">
-      <complexType>
-         <sequence>
-            <element ref="contentTypeIdentifier" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="scope" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="partitionType">
-      <complexType>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="contentTypeIdentifier">
-      <complexType>
-         <sequence>
-            <element ref="partitionType" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         Example demonstrating how HTMLValidator contributes to as-you-type validation in the source editor.
-
-&lt;pre&gt;
-   &lt;extension
-         point=&quot;org.eclipse.wst.sse.ui.extensions.sourcevalidation&quot;&gt;
-      &lt;validator
-            scope=&quot;total&quot;
-            class=&quot;org.eclipse.wst.validation.html.HTMLValidator&quot;
-            id=&quot;org.eclipse.wst.validation.htmlsourcevalidator&quot;&gt;
-         &lt;contentTypeIdentifier
-               id=&quot;org.eclipse.wst.html.core.htmlsource&quot;&gt;
-            &lt;partitionType
-                  id=&quot;org.eclipse.wst.html.HTML_DEFAULT&quot;/&gt;
-         &lt;/contentTypeIdentifier&gt;
-         &lt;contentTypeIdentifier
-               id=&quot;org.eclipse.jst.jsp.core.jspsource&quot;&gt;
-            &lt;partitionType
-                  id=&quot;org.eclipse.wst.html.HTML_DEFAULT&quot;/&gt;
-         &lt;/contentTypeIdentifier&gt;
-      &lt;/validator&gt;
-   &lt;/extension&gt;
-&lt;/pre&gt;
-&lt;p&gt;
-Using ISourceValidator
-&lt;/p&gt;
-&lt;p&gt;
-If your validator can handle &quot;partial document&quot; validation, it should  implement ISourceValidator.  
-&lt;/p&gt;
-&lt;p&gt;
-The validate call on ISourceValidator gets passed an IRegion of the document which represents just the part that&apos;s dirty.  This should be much more efficient than validating the entire file each time someone types.
-&lt;/p&gt;
-&lt;p&gt;
-ISourceValidator has its &quot;connect(IDocument doc)&quot; method called when it&apos;s hooked up to the document (when the editor is opened), and &quot;disconnect(IDocument doc)&quot; called when the editor is closed, where any &quot;unhooking&quot; should take place.
-&lt;/p&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         Currently there is no supplied implementation for IValidator.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.sse.ui/src-encoding/org/eclipse/wst/sse/ui/internal/encoding/ui/EncodingPreferencePage.java b/bundles/org.eclipse.wst.sse.ui/src-encoding/org/eclipse/wst/sse/ui/internal/encoding/ui/EncodingPreferencePage.java
deleted file mode 100644
index 32cf3dd..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-encoding/org/eclipse/wst/sse/ui/internal/encoding/ui/EncodingPreferencePage.java
+++ /dev/null
@@ -1,109 +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.wst.sse.ui.internal.encoding.ui;
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.encoding.util.CodedResourcePlugin;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-/**
- * @deprecated - this should not be handled by the platform and not WTP
- */
-
-public class EncodingPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-	Button fUse3ByteBOMWithUTF8CheckBox = null;
-
-	private Button createCheckBox(Composite parent, String label) {
-		Button button = new Button(parent, SWT.CHECK | SWT.LEFT | SWT.WRAP);
-		button.setText(label);
-
-		boolean selection = CodedResourcePlugin.getDefault().getPluginPreferences().getBoolean(CommonEncodingPreferenceNames.USE_3BYTE_BOM_WITH_UTF8);
-		button.setSelection(selection);
-
-		return button;
-	}
-
-	private Composite createComposite(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-
-		//GridLayout
-		GridLayout layout = new GridLayout(1, true);
-		composite.setLayout(layout);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL_BOTH);
-		composite.setLayoutData(data);
-
-		return composite;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		Composite composite = createComposite(parent);
-
-		String description = SSEUIMessages.EncodingPreferencePage_0; //$NON-NLS-1$
-		
-		// ISSUE: the following to lines look redundant, 
-		// not sure what was trying to be accomplished. 
-		// May be dead code. 
-		createLabel(composite, description);
-		createLabel(composite, ""); //$NON-NLS-1$
-
-		String checkBoxLabel = SSEUIMessages.EncodingPreferencePage_1; //$NON-NLS-1$
-		fUse3ByteBOMWithUTF8CheckBox = createCheckBox(composite, checkBoxLabel);
-
-		return composite;
-	}
-
-	private Label createLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(text);
-
-		return label;
-	}
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPreferencePage#init(org.eclipse.ui.IWorkbench)
-	 */
-	public void init(IWorkbench workbench) {
-	}
-
-	public void performDefaults() {
-		boolean defaultSelection = CodedResourcePlugin.getDefault().getPluginPreferences().getDefaultBoolean(CommonEncodingPreferenceNames.USE_3BYTE_BOM_WITH_UTF8);
-		fUse3ByteBOMWithUTF8CheckBox.setSelection(defaultSelection);
-	}
-
-	public boolean performOk() {
-		CodedResourcePlugin.getDefault().getPluginPreferences().setValue(CommonEncodingPreferenceNames.USE_3BYTE_BOM_WITH_UTF8, fUse3ByteBOMWithUTF8CheckBox.getSelection());
-		CodedResourcePlugin.getDefault().savePluginPreferences();
-
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ConfigurationPointCalculator.java b/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ConfigurationPointCalculator.java
deleted file mode 100644
index fdb15cb..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ConfigurationPointCalculator.java
+++ /dev/null
@@ -1,151 +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.wst.sse.ui.internal.provisional.extensions;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.part.MultiPageEditorSite;
-
-public class ConfigurationPointCalculator {
-	public static final String DESIGN = ".design"; //$NON-NLS-1$
-	public static final String SOURCE = ".source"; //$NON-NLS-1$
-
-	public static String[] getConfigurationPoints(IEditorPart part, String contentType, String subContext, Class rootClass) {
-		ConfigurationPointCalculator calculator = new ConfigurationPointCalculator();
-		calculator.setContentType(contentType);
-		calculator.setPart(part);
-		calculator.setRootClass(rootClass);
-		calculator.setSubContext(subContext);
-		return calculator.getConfigurationPoints();
-	}
-
-	protected String fContentType = null;
-	protected IEditorPart fPart = null;
-
-	protected Class fRootClass = null;
-	protected String fSubContext = null;
-
-	/**
-	 * 
-	 */
-	public ConfigurationPointCalculator() {
-		super();
-	}
-
-	public String[] getConfigurationPoints() {
-		List points = new ArrayList(2);
-
-		IEditorSite site = fPart.getEditorSite();
-		String id = site.getId();
-		if (id != null && id.length() > 0 && !id.equals(fRootClass.getName()))
-			points.add(id);
-
-		if (site instanceof MultiPageEditorSite) {
-			String multipageID = ((MultiPageEditorSite) site).getMultiPageEditor().getSite().getId();
-			if (!points.contains(multipageID))
-				points.add(multipageID);
-			String sourcePageID = ((MultiPageEditorSite) site).getMultiPageEditor().getSite().getId() + ".source"; //$NON-NLS-1$
-			if (!points.contains(sourcePageID))
-				points.add(sourcePageID);
-		}
-		if (site instanceof MultiPageEditorSite) {
-			String multipageClassName = ((MultiPageEditorSite) site).getMultiPageEditor().getClass().getName();
-			if (!points.contains(multipageClassName))
-				points.add(multipageClassName);
-		}
-		Class editorClass = fPart.getClass();
-		while (editorClass != null && fRootClass != null && !editorClass.equals(fRootClass)) {
-			if (!points.contains(editorClass.getName()))
-				points.add(editorClass.getName());
-			editorClass = editorClass.getSuperclass();
-		}
-
-		IContentType contentType = Platform.getContentTypeManager().getContentType(fContentType);
-		while (contentType != null && !contentType.getId().equals(IContentTypeManager.CT_TEXT)) {
-			if (!points.contains(contentType.getId()))
-				points.add(contentType.getId());
-			contentType = contentType.getBaseType();
-		}
-
-		if (!points.contains(fRootClass.getName()))
-			points.add(fRootClass.getName());
-		return (String[]) points.toArray(new String[0]);
-	}
-
-	/**
-	 * @return Returns the contentType.
-	 */
-	public String getContentType() {
-		return fContentType;
-	}
-
-	/**
-	 * @return Returns the part.
-	 */
-	public IEditorPart getPart() {
-		return fPart;
-	}
-
-	/**
-	 * @return Returns the rootClass.
-	 */
-	public Class getRootClass() {
-		return fRootClass;
-	}
-
-	/**
-	 * @return Returns the subContext.
-	 */
-	public String getSubContext() {
-		return fSubContext;
-	}
-
-	/**
-	 * @param contentType
-	 *            The contentType to set.
-	 */
-	public void setContentType(String contentType) {
-		fContentType = contentType;
-	}
-
-	/**
-	 * @param part
-	 *            The part to set.
-	 */
-	public void setPart(IEditorPart part) {
-		fPart = part;
-	}
-
-	/**
-	 * @param rootClass
-	 *            The rootClass to set.
-	 */
-	public void setRootClass(Class rootClass) {
-		fRootClass = rootClass;
-	}
-
-	/**
-	 * @param subContext
-	 *            The subContext to set.
-	 */
-	public void setSubContext(String subContext) {
-		fSubContext = subContext;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ISelfValidateEditAction.java b/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ISelfValidateEditAction.java
deleted file mode 100644
index 0dedc21..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ISelfValidateEditAction.java
+++ /dev/null
@@ -1,27 +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.wst.sse.ui.internal.provisional.extensions;
-
-
-
-/**
- * This is a marker interface to control ValidateEdit call Usually framework
- * calls IExtendedSimpleEditor#validateEdit() before calling
- * IExtendedEditorAction's run() method. However, if the action implements
- * this interface, framework won't call validateEdit() method.
- * 
- * The action should call validateEdit() at their own appropriate timing.
- */
-public interface ISelfValidateEditAction {
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ISourceEditingTextTools.java b/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ISourceEditingTextTools.java
deleted file mode 100644
index d30edf2..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/ISourceEditingTextTools.java
+++ /dev/null
@@ -1,50 +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.wst.sse.ui.internal.provisional.extensions;
-
-
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * Interface to provide convenient functions for editors that may not be
- * ITextEditors, but need to expose properties usually found in text editors
- */
-public interface ISourceEditingTextTools {
-
-	/**
-	 * @return the document offset at which the Caret is located
-	 */
-	public int getCaretOffset();
-
-	/**
-	 * @return the IDocument being edited. If this editor supports multiple
-	 *         documents, the document currently possessing the caret will be
-	 *         returned.
-	 */
-	public IDocument getDocument();
-
-	/**
-	 * @return The IEditorPart instance for this editor that is known to the
-	 *         workbench.
-	 */
-	public IEditorPart getEditorPart();
-
-	/**
-	 * @return The current selection within the editor. Implementors may
-	 *         support other types of selection.
-	 */
-	public ITextSelection getSelection();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IBreakpointConstants.java b/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IBreakpointConstants.java
deleted file mode 100644
index a78e448..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IBreakpointConstants.java
+++ /dev/null
@@ -1,21 +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.wst.sse.ui.internal.provisional.extensions.breakpoint;
-
-/**
- * @author pavery
- */
-public interface IBreakpointConstants {
-	String ATTR_HIDDEN = "hidden"; //$NON-NLS-1$
-	String RESOURCE_PATH = "org.eclipse.wst.sse.ui.extensions.breakpoint.path"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IBreakpointProvider.java b/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IBreakpointProvider.java
deleted file mode 100644
index 89855d1..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IBreakpointProvider.java
+++ /dev/null
@@ -1,62 +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.wst.sse.ui.internal.provisional.extensions.breakpoint;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-
-/**
- * Interface to provide breakpoint creation
- */
-public interface IBreakpointProvider {
-
-	/**
-	 * Adds breakpoint to specified position
-	 * 
-	 * @param document
-	 *            IDocument object
-	 * @param input
-	 *            current editor input, not necessarily an IFileEditorInput or
-	 *            linked to a resource in any way
-	 * @param lineNumber
-	 *            current line number
-	 * @param offset
-	 *            current caret offset
-	 * @throws CoreException
-	 * @return IStatus the status after being asked to add a breakpoint. The
-	 *         Severity of ERROR should only be used if the location
-	 *         information is both valid for a breakpoint and one could not be
-	 *         added.
-	 */
-	IStatus addBreakpoint(IDocument document, IEditorInput input, int lineNumber, int offset) throws CoreException;
-
-	/**
-	 * Returns corresponding resource from editor input
-	 * 
-	 * @param input
-	 * @return IResource
-	 */
-	IResource getResource(IEditorInput input);
-
-	/**
-	 * Set ISourceEditingTextTools object
-	 * 
-	 * @param tool
-	 *            ISourceEditingTextTools object
-	 */
-	void setSourceEditingTextTools(ISourceEditingTextTools tool);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IExtendedStorageEditorInput.java b/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IExtendedStorageEditorInput.java
deleted file mode 100644
index dc41472..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/IExtendedStorageEditorInput.java
+++ /dev/null
@@ -1,37 +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.wst.sse.ui.internal.provisional.extensions.breakpoint;
-
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.texteditor.IElementStateListener;
-
-public interface IExtendedStorageEditorInput extends IStorageEditorInput {
-	/**
-	 * Adds the given element state listener to this input. Has no effect if
-	 * an identical listener is already registered. Typically used by the
-	 * IDocumentProvider to register itself for change notification.
-	 * 
-	 * @param listener
-	 *            the listener
-	 */
-	void addElementStateListener(IElementStateListener listener);
-
-	/**
-	 * Removes the given element state listener from this input. Has no affect
-	 * if an identical listener is not registered.
-	 * 
-	 * @param listener
-	 *            the listener
-	 */
-	void removeElementStateListener(IElementStateListener listener);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/NodeLocation.java b/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/NodeLocation.java
deleted file mode 100644
index 7874d98..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/NodeLocation.java
+++ /dev/null
@@ -1,48 +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.wst.sse.ui.internal.provisional.extensions.breakpoint;
-
-
-public interface NodeLocation {
-	/**
-	 * Returns the document end offset of the end tag, -1 of there is no end
-	 * tag
-	 * 
-	 * @return
-	 */
-	int getEndTagEndOffset();
-
-	/**
-	 * Returns the document start offset of the end tag, -1 of there is no end
-	 * tag
-	 * 
-	 * @return
-	 */
-	int getEndTagStartOffset();
-
-	/**
-	 * Returns the document end offset of the start tag, -1 of there is no
-	 * start tag
-	 * 
-	 * @return
-	 */
-	int getStartTagEndOffset();
-
-	/**
-	 * Returns the document start offset of the start tag, -1 of there is no
-	 * start tag
-	 * 
-	 * @return
-	 */
-	int getStartTagStartOffset();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/NullSourceEditingTextTools.java b/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/NullSourceEditingTextTools.java
deleted file mode 100644
index 65758a6..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-extensions/org/eclipse/wst/sse/ui/internal/provisional/extensions/breakpoint/NullSourceEditingTextTools.java
+++ /dev/null
@@ -1,63 +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.wst.sse.ui.internal.provisional.extensions.breakpoint;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-
-public class NullSourceEditingTextTools implements ISourceEditingTextTools {
-	public static final String ID = "sourceeditingtexttools"; //$NON-NLS-1$
-	private ITextEditor fTextEditor;
-
-	/**
-	 * @return
-	 */
-	public synchronized static ISourceEditingTextTools getInstance() {
-		return new NullSourceEditingTextTools();
-	}
-
-	private NullSourceEditingTextTools() {
-		super();
-	}
-
-	public int getCaretOffset() {
-		ISelection sel = fTextEditor.getSelectionProvider().getSelection();
-		if (sel instanceof ITextSelection) {
-			return ((ITextSelection) sel).getOffset();
-		}
-		return -1;
-	}
-
-	public IDocument getDocument() {
-		return fTextEditor.getDocumentProvider().getDocument(fTextEditor.getEditorInput());
-	}
-
-	public IEditorPart getEditorPart() {
-		return fTextEditor;
-	}
-
-	public ITextSelection getSelection() {
-		if (fTextEditor != null)
-			return (ITextSelection) fTextEditor.getSelectionProvider().getSelection();
-		return TextSelection.emptySelection();
-	}
-
-	public void setTextEditor(ITextEditor editor) {
-		fTextEditor = editor;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/ExclusionsTab.java b/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/ExclusionsTab.java
deleted file mode 100644
index 03fcdfc..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/ExclusionsTab.java
+++ /dev/null
@@ -1,373 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.preferences.ui;
-
-import com.ibm.icu.text.Collator;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Locale;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IPreferencesService;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.internal.tasks.FileTaskScannerRegistryReader;
-import org.eclipse.wst.sse.core.internal.tasks.TaskTagPreferenceKeys;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.util.Sorter;
-
-class ExclusionsTab implements IPreferenceTab {
-	private class ArrayTreeContentProvider implements ITreeContentProvider {
-		public ArrayTreeContentProvider() {
-			super();
-		}
-
-		public void dispose() {
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof Object[])
-				return fContentTypeSorter.sort((Object[]) parentElement);
-			return new Object[0];
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		public Object getParent(Object element) {
-			return null;
-		}
-
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-
-	private class ContentTypeLabelProvider extends LabelProvider {
-		public String getText(Object element) {
-			if (element != null) {
-				Object o = element;
-				if (o instanceof String) {
-					o = fContentTypeManager.getContentType(o.toString());
-				}
-				if (o instanceof IContentType) {
-					return ((IContentType) o).getName();
-				}
-			}
-			return super.getText(element);
-		}
-	}
-
-	/**
-	 * A QuickSorter that sorts and returns a IContentType-typed array
-	 */
-	private class ContentTypeSorter extends Sorter {
-		private Collator collator = Collator.getInstance(Locale.ENGLISH);
-
-		public boolean compare(Object elementOne, Object elementTwo) {
-			return (collator.compare(((IContentType) elementOne).getName(), ((IContentType) elementTwo).getName())) < 0;
-		}
-
-		public Object[] sort(Object[] unSortedCollection) {
-			Object[] types = super.sort(unSortedCollection);
-			IContentType[] sortedTypes = new IContentType[types.length];
-			if (types.length > 0) {
-				System.arraycopy(types, 0, sortedTypes, 0, sortedTypes.length);
-			}
-			return sortedTypes;
-		}
-	}
-
-	private class ContentTypeTreeProvider implements ITreeContentProvider {
-		public ContentTypeTreeProvider() {
-			super();
-		}
-
-		public void dispose() {
-		}
-
-		boolean equals(Object left, Object right) {
-			return left == null ? right == null : ((right != null) && left.equals(right));
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof Object[]) {
-				return (Object[]) parentElement;
-			}
-			if (parentElement instanceof IContentType) {
-				List elements = new ArrayList(0);
-				IContentType[] allTypes = fContentTypeManager.getAllContentTypes();
-				for (int i = 0; i < allTypes.length; i++) {
-					if (!fSupportedContentTypes.contains(allTypes[i]) && equals(allTypes[i].getBaseType(), parentElement)) {
-						elements.add(allTypes[i]);
-					}
-				}
-				return fContentTypeSorter.sort(elements.toArray());
-			}
-			return new Object[0];
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		public Object getParent(Object element) {
-			Object parent = null;
-			if (element instanceof IContentType) {
-				parent = ((IContentType) element).getBaseType();
-			}
-			return parent;
-		}
-
-		public boolean hasChildren(Object element) {
-			return getChildren(element).length > 0;
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-	}
-
-	/**
-	 * A QuickSorter that sorts and returns a String-typed array
-	 */
-	private class StringSorter extends Sorter {
-		Collator collator = Collator.getInstance(Locale.ENGLISH);
-
-		public boolean compare(Object elementOne, Object elementTwo) {
-			return (collator.compare(elementOne.toString(), elementTwo.toString()) < 0);
-		}
-
-		public Object[] sort(Object[] unSortedCollection) {
-			Object[] sortedCollection = super.sort(unSortedCollection);
-			String[] strings = new String[sortedCollection.length];
-			// copy the array so can return a new sorted collection
-			if (strings.length > 0) {
-				System.arraycopy(sortedCollection, 0, strings, 0, strings.length);
-			}
-			return strings;
-		}
-	}
-
-	private static final boolean _debugPreferences = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/tasks/preferences")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private CheckboxTreeViewer fContentTypeList;
-
-	private IContentTypeManager fContentTypeManager = null;
-
-	ContentTypeSorter fContentTypeSorter = new ContentTypeSorter();
-
-	private IContentType[] fIgnoreContentTypes = null;
-
-	private IContentType[] fOriginalIgnoreContentTypes = null;
-
-	private TaskTagPreferencePage fOwner = null;
-
-	private IScopeContext[] fPreferencesLookupOrder = null;
-
-	private IPreferencesService fPreferencesService = null;
-
-	private List fSupportedContentTypes = null;
-
-	public ExclusionsTab(TaskTagPreferencePage parent, IPreferencesService preferencesService, IScopeContext[] lookupOrder) {
-		super();
-		fOwner = parent;
-		fPreferencesLookupOrder = lookupOrder;
-		fPreferencesService = preferencesService;
-		fContentTypeManager = Platform.getContentTypeManager();
-
-		String[] supportedContentTypeIDs = FileTaskScannerRegistryReader.getInstance().getSupportedContentTypeIds();
-		fSupportedContentTypes = new ArrayList(supportedContentTypeIDs.length);
-		for (int i = 0; i < supportedContentTypeIDs.length; i++) {
-			IContentType type = fContentTypeManager.getContentType(supportedContentTypeIDs[i]);
-			if (type != null) {
-				fSupportedContentTypes.add(type);
-			}
-		}
-		String[] ignoreContentTypes = StringUtils.unpack(fPreferencesService.getString(TaskTagPreferenceKeys.TASK_TAG_NODE, TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED, SSECorePlugin.getDefault().getPluginPreferences().getDefaultString(TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED), fPreferencesLookupOrder));
-		List contentTypes = new ArrayList();
-		for (int i = 0; i < ignoreContentTypes.length; i++) {
-			IContentType type = fContentTypeManager.getContentType(ignoreContentTypes[i]);
-			if (type != null) {
-				contentTypes.add(type);
-			}
-		}
-		fOriginalIgnoreContentTypes = fIgnoreContentTypes = (IContentType[]) contentTypes.toArray(new IContentType[contentTypes.size()]);
-	}
-
-	public Control createContents(Composite tabFolder) {
-		Composite composite = new Composite(tabFolder, SWT.NONE);
-		composite.setLayout(new GridLayout(2, true));
-		Text description = new Text(composite, SWT.READ_ONLY);
-		description.setText(SSEUIMessages.TaskTagExclusionTab_02);
-		description.setBackground(composite.getBackground());
-
-		fContentTypeList = new CheckboxTreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
-		fContentTypeList.setLabelProvider(new ContentTypeLabelProvider());
-		fContentTypeList.setContentProvider(new ArrayTreeContentProvider());
-
-		fContentTypeList.setInput(fSupportedContentTypes.toArray());
-		fContentTypeList.setCheckedElements(fSupportedContentTypes.toArray());
-		fContentTypeList.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-		for (int i = 0; i < fIgnoreContentTypes.length; i++) {
-			fContentTypeList.setChecked(fIgnoreContentTypes[i], false);
-		}
-
-		Button selectAll = new Button(composite, SWT.PUSH);
-		selectAll.setText(SSEUIMessages.TaskTagPreferenceTab_17);
-		selectAll.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
-		selectAll.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				fContentTypeList.setCheckedElements(fSupportedContentTypes.toArray());
-			}
-		});
-
-		Button selectNone = new Button(composite, SWT.PUSH);
-		selectNone.setText(SSEUIMessages.TaskTagPreferenceTab_18);
-		selectNone.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
-		selectNone.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				fContentTypeList.setCheckedElements(new Object[0]);
-			}
-		});
-
-		new Label(composite, SWT.NONE).setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-
-		Text affectedTypesLabel = new Text(composite, SWT.READ_ONLY);
-		affectedTypesLabel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1));
-		affectedTypesLabel.setBackground(composite.getBackground());
-		affectedTypesLabel.setText(SSEUIMessages.TaskTagExclusionTab_03);
-
-		final TreeViewer contentTypeTreeViewer = new TreeViewer(composite, SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
-		contentTypeTreeViewer.setLabelProvider(new ContentTypeLabelProvider());
-		contentTypeTreeViewer.setContentProvider(new ContentTypeTreeProvider());
-		contentTypeTreeViewer.setInput(new Object[0]);
-		contentTypeTreeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-
-		fContentTypeList.addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				if (event.getSelection() instanceof IStructuredSelection) {
-					Object[] o = ((IStructuredSelection) event.getSelection()).toArray();
-					contentTypeTreeViewer.setInput(o);
-					contentTypeTreeViewer.expandAll();
-					if (o.length > 0) {
-						contentTypeTreeViewer.reveal(o[0]);
-					}
-				}
-			}
-		});
-
-		return composite;
-	}
-
-	public String getTitle() {
-		return SSEUIMessages.TaskTagExclusionTab_01;
-	}
-
-	public void performApply() {
-		save();
-	}
-
-	public void performDefaults() {
-		if (_debugPreferences) {
-			System.out.println("Loading defaults in " + getClass().getName()); //$NON-NLS-1$
-		}
-		IEclipsePreferences[] defaultPreferences = new IEclipsePreferences[fPreferencesLookupOrder.length - 1];
-		for (int i = 1; i < defaultPreferences.length; i++) {
-			defaultPreferences[i - 1] = fPreferencesLookupOrder[i].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE);
-		}
-		String[] defaultIgnoreTypes = StringUtils.unpack(fPreferencesService.get(TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED, null, defaultPreferences)); //$NON-NLS-1$
-
-		List contentTypes = new ArrayList();
-		for (int i = 0; i < defaultIgnoreTypes.length; i++) {
-			IContentType type = fContentTypeManager.getContentType(defaultIgnoreTypes[i]);
-			if (type != null) {
-				contentTypes.add(type);
-			}
-		}
-		fIgnoreContentTypes = (IContentType[]) contentTypes.toArray(new IContentType[contentTypes.size()]);
-		fContentTypeList.setCheckedElements(fContentTypeManager.getAllContentTypes());
-		for (int i = 0; i < fIgnoreContentTypes.length; i++) {
-			fContentTypeList.setChecked(fIgnoreContentTypes[i], false);
-		}
-	}
-
-	public void performOk() {
-		List ignoredIds = save();
-		String[] ignoreIDs = (String[]) new StringSorter().sort(ignoredIds.toArray());
-		fIgnoreContentTypes = new IContentType[ignoreIDs.length];
-		for (int i = 0; i < ignoreIDs.length; i++) {
-			fIgnoreContentTypes[i] = fContentTypeManager.getContentType(ignoreIDs[i]);
-		}
-
-		if (!Arrays.equals(fOriginalIgnoreContentTypes, fIgnoreContentTypes)) {
-			fOwner.requestRedetection();
-		}
-		fOriginalIgnoreContentTypes = fIgnoreContentTypes;
-	}
-
-	private List save() {
-		List ignoredIds = new ArrayList();
-		List checked = Arrays.asList(fContentTypeList.getCheckedElements());
-		for (int i = 0; i < fSupportedContentTypes.size(); i++) {
-			if (!checked.contains(fSupportedContentTypes.get(i))) {
-				ignoredIds.add(((IContentType) fSupportedContentTypes.get(i)).getId());
-			}
-		}
-		IEclipsePreferences[] defaultPreferences = new IEclipsePreferences[fPreferencesLookupOrder.length - 1];
-		for (int i = 1; i < defaultPreferences.length; i++) {
-			defaultPreferences[i - 1] = fPreferencesLookupOrder[i].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE);
-		}
-
-		String defaultIgnoredContentTypeIds = StringUtils.pack((String[]) new StringSorter().sort(StringUtils.unpack(fPreferencesService.get(TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED, "", defaultPreferences)))); //$NON-NLS-1$
-		String ignoredContentTypeIds = StringUtils.pack((String[]) new StringSorter().sort(ignoredIds.toArray()));
-		if (ignoredContentTypeIds.equals(defaultIgnoredContentTypeIds)) {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED + " from scope " + fPreferencesLookupOrder[0].getName() + ":" + fPreferencesLookupOrder[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-			fPreferencesLookupOrder[0].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE).remove(TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED);
-		}
-		else {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " setting " + TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED + " \"" + ignoredContentTypeIds + "\" in scope " + fPreferencesLookupOrder[0].getName() + ":" + fPreferencesLookupOrder[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-			fPreferencesLookupOrder[0].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE).put(TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED, ignoredContentTypeIds);
-		}
-		return ignoredIds;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/MainTab.java b/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/MainTab.java
deleted file mode 100644
index a04565e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/MainTab.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.preferences.ui;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IPreferencesService;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.window.Window;
-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.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.sse.core.internal.provisional.tasks.TaskTag;
-import org.eclipse.wst.sse.core.internal.tasks.TaskTagPreferenceKeys;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-class MainTab implements IPreferenceTab {
-	public class TaskTagDialog extends Dialog {
-		public TaskTag taskTag = null;
-
-		Combo priorityCombo = null;
-		Text tagText = null;
-
-		public TaskTagDialog(Shell parentShell) {
-			super(parentShell);
-			setShellStyle(getShellStyle() | SWT.RESIZE);
-		}
-
-		protected void configureShell(Shell newShell) {
-			super.configureShell(newShell);
-			newShell.setText(SSEUIMessages.TaskTagPreferenceTab_5); //$NON-NLS-1$
-		}
-
-		protected Control createButtonBar(Composite parent) {
-			Control c = super.createButtonBar(parent);
-			getButton(IDialogConstants.OK_ID).setEnabled(taskTag == null || taskTag.getTag().length() > 0);
-			return c;
-		}
-
-		protected Control createDialogArea(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			composite.setLayout(new GridLayout(2, false));
-			GridData gridData = new GridData(GridData.FILL_BOTH);
-			gridData.widthHint = parent.getDisplay().getClientArea().width / 5;
-			composite.setLayoutData(gridData);
-			Label label = new Label(composite, SWT.NONE);
-			label.setText(SSEUIMessages.TaskTagPreferenceTab_6); //$NON-NLS-1$
-			label.setLayoutData(new GridData());
-			tagText = new Text(composite, SWT.NONE);
-			tagText.setText(taskTag != null ? taskTag.getTag() : ""); //$NON-NLS-1$
-			tagText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			tagText.addModifyListener(new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					String testTag = tagText.getText();
-					String[] tags = new String[fTaskTags.length];
-					for (int i = 0; i < tags.length; i++) {
-						tags[i] = fTaskTags[i].getTag();
-					}
-					getButton(IDialogConstants.OK_ID).setEnabled(tagText.getText().length() > 0 && !Arrays.asList(tags).contains(testTag));
-					taskTag = new TaskTag(tagText.getText(), priorityCombo.getSelectionIndex());
-				}
-			});
-
-			label = new Label(composite, SWT.NONE);
-			label.setText(SSEUIMessages.TaskTagPreferenceTab_7); //$NON-NLS-1$
-			label.setLayoutData(new GridData());
-			priorityCombo = new Combo(composite, SWT.READ_ONLY | SWT.SINGLE);
-			priorityCombo.setItems(new String[]{SSEUIMessages.TaskTagPreferenceTab_0, SSEUIMessages.TaskTagPreferenceTab_1, SSEUIMessages.TaskTagPreferenceTab_2});
-			priorityCombo.select(taskTag != null ? taskTag.getPriority() : TaskTag.PRIORITY_NORMAL);
-			priorityCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			priorityCombo.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					taskTag = new TaskTag(taskTag.getTag(), priorityCombo.getSelectionIndex());
-				}
-			});
-			return composite;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
-		 */
-		protected void okPressed() {
-			taskTag = new TaskTag(tagText.getText(), priorityCombo.getSelectionIndex());
-			super.okPressed();
-		}
-	}
-
-	public class TaskTagTableLabelProvider extends LabelProvider implements ITableLabelProvider {
-		public TaskTagTableLabelProvider() {
-			super();
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			if (columnIndex < 1)
-				return ((TaskTag) element).getTag();
-			for (int i = 0; i < fTaskTags.length; i++) {
-				if (fTaskTags[i].equals(element)) {
-					if (fTaskTags[i].getPriority() == IMarker.PRIORITY_LOW) {
-						return SSEUIMessages.TaskTagPreferenceTab_0; //$NON-NLS-1$
-					}
-					else if (fTaskTags[i].getPriority() == IMarker.PRIORITY_HIGH) {
-						return SSEUIMessages.TaskTagPreferenceTab_2; //$NON-NLS-1$
-					}
-					else {
-						return SSEUIMessages.TaskTagPreferenceTab_1; //$NON-NLS-1$
-					}
-				}
-			}
-			return SSEUIMessages.TaskTagPreferenceTab_3; //$NON-NLS-1$
-		}
-	}
-
-	private static final boolean _debugPreferences = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/tasks/preferences")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private Control fControl;
-
-	private TaskTag[] fOriginalTaskTags;
-	private TaskTagPreferencePage fOwner = null;
-	private IScopeContext[] fPreferencesLookupOrder = null;
-
-	private IPreferencesService fPreferencesService = null;
-
-	private TaskTag[] fTaskTags;
-
-	private TableViewer valueTable = null;
-
-
-	public MainTab(TaskTagPreferencePage parent, IPreferencesService preferencesService, IScopeContext[] lookupOrder) {
-		super();
-		fOwner = parent;
-		fPreferencesLookupOrder = lookupOrder;
-		fPreferencesService = preferencesService;
-	}
-
-
-	private void addTag() {
-		TaskTagDialog dlg = new TaskTagDialog(fControl.getShell());
-		int result = dlg.open();
-		if (result == Window.OK) {
-			TaskTag newTag = dlg.taskTag;
-			List newTags = new ArrayList(Arrays.asList(fTaskTags));
-			newTags.add(newTag);
-			fTaskTags = (TaskTag[]) newTags.toArray(new TaskTag[newTags.size()]);
-			valueTable.setInput(fTaskTags);
-			valueTable.getTable().setSelection(fTaskTags.length - 1);
-		}
-	}
-
-	public Control createContents(Composite tabFolder) {
-		loadPreferenceValues();
-		fOriginalTaskTags = fTaskTags;
-
-		Composite composite = new Composite(tabFolder, SWT.NONE);
-		composite.setLayout(new GridLayout(2, false));
-		fControl = composite;
-
-		Text description = new Text(composite, SWT.READ_ONLY | SWT.SINGLE);
-		description.setText(SSEUIMessages.TaskTagPreferenceTab_33); //$NON-NLS-1$
-		description.setBackground(composite.getBackground());
-		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=104403
-		Point sizeHint = description.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-		gd.widthHint = sizeHint.x;
-		description.setLayoutData(gd);
-
-		valueTable = new TableViewer(composite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
-		valueTable.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-		TableColumn textColumn = new TableColumn(valueTable.getTable(), SWT.NONE, 0);
-		textColumn.setText(SSEUIMessages.TaskTagPreferenceTab_12); //$NON-NLS-1$
-		TableColumn priorityColumn = new TableColumn(valueTable.getTable(), SWT.NONE, 1);
-		priorityColumn.setText(SSEUIMessages.TaskTagPreferenceTab_13); //$NON-NLS-1$
-		valueTable.setContentProvider(new ArrayContentProvider());
-		valueTable.setLabelProvider(new TaskTagTableLabelProvider());
-		valueTable.getTable().setLinesVisible(true);
-		valueTable.getTable().setHeaderVisible(true);
-		TableLayout layout = new TableLayout();
-		layout.addColumnData(new ColumnWeightData(1, 140, true));
-		layout.addColumnData(new ColumnWeightData(1, 140, true));
-		valueTable.getTable().setLayout(layout);
-
-		Composite buttons = new Composite(composite, SWT.NONE);
-		buttons.setLayout(new GridLayout());
-		buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-
-		final Button addButton = new Button(buttons, SWT.PUSH);
-		addButton.setText(SSEUIMessages.TaskTagPreferenceTab_14); //$NON-NLS-1$
-		addButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		final Button editButton = new Button(buttons, SWT.PUSH);
-		editButton.setText(SSEUIMessages.TaskTagPreferenceTab_15); //$NON-NLS-1$
-		editButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		final Button removeButton = new Button(buttons, SWT.PUSH);
-		removeButton.setText(SSEUIMessages.TaskTagPreferenceTab_16); //$NON-NLS-1$
-		removeButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		editButton.setEnabled(false);
-		removeButton.setEnabled(false);
-
-		Label warning = new Label(composite, SWT.NONE);
-		warning.setLayoutData(new GridData());
-		warning.setText(SSEUIMessages.TaskTagPreferenceTab_19); //$NON-NLS-1$
-
-		final ISelectionChangedListener selectionChangedListener = new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				boolean enabledForSelection = !valueTable.getSelection().isEmpty();
-				editButton.setEnabled(enabledForSelection);
-				removeButton.setEnabled(enabledForSelection);
-			}
-		};
-		valueTable.addPostSelectionChangedListener(selectionChangedListener);
-		addButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				addTag();
-				valueTable.getTable().setSelection(fTaskTags.length - 1);
-				selectionChangedListener.selectionChanged(null);
-			}
-		});
-		editButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				int i = valueTable.getTable().getSelectionIndex();
-				editTag(i);
-				if (i >= 0) {
-					valueTable.getTable().setSelection(i);
-					selectionChangedListener.selectionChanged(null);
-				}
-			}
-		});
-		removeButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				int i = valueTable.getTable().getSelectionIndex();
-				removeTag(valueTable.getTable().getSelectionIndex());
-				if (i >= 0 && i < fTaskTags.length) {
-					valueTable.getTable().setSelection(i);
-				}
-			}
-		});
-		valueTable.addDoubleClickListener(new IDoubleClickListener() {
-			public void doubleClick(DoubleClickEvent event) {
-				int i = valueTable.getTable().getSelectionIndex();
-				editTag(i);
-				if (i >= 0) {
-					valueTable.getTable().setSelection(i);
-					selectionChangedListener.selectionChanged(null);
-				}
-			}
-		});
-
-		valueTable.setInput(fTaskTags);
-
-		return composite;
-	}
-
-	/**
-	 * @param selection
-	 */
-	private void editTag(int i) {
-		if (i < 0) {
-			return;
-		}
-
-		int selection = valueTable.getTable().getSelectionIndex();
-		TaskTagDialog dlg = new TaskTagDialog(fControl.getShell());
-		dlg.taskTag = fTaskTags[selection];
-		int result = dlg.open();
-		if (result == Window.OK) {
-			fTaskTags[selection] = dlg.taskTag;
-			valueTable.refresh();
-		}
-	}
-
-	public String getTitle() {
-		return SSEUIMessages.TaskTagPreferenceTab_20;
-	}
-
-	private void loadPreferenceValues() {
-		String tags = fPreferencesService.getString(TaskTagPreferenceKeys.TASK_TAG_NODE, TaskTagPreferenceKeys.TASK_TAG_TAGS, "", fPreferencesLookupOrder); //$NON-NLS-1$
-		String priorities = fPreferencesService.getString(TaskTagPreferenceKeys.TASK_TAG_NODE, TaskTagPreferenceKeys.TASK_TAG_PRIORITIES, "", fPreferencesLookupOrder); //$NON-NLS-1$
-		loadTagsAndPrioritiesFrom(tags, priorities);
-	}
-
-	/**
-	 * @param tags
-	 * @param priorities
-	 */
-	private void loadTagsAndPrioritiesFrom(String tagString, String priorityString) {
-		String[] tags = StringUtils.unpack(tagString);
-
-		StringTokenizer toker = null;
-		List list = new ArrayList();
-
-		toker = new StringTokenizer(priorityString, ","); //$NON-NLS-1$
-		while (toker.hasMoreTokens()) {
-			Integer number = null;
-			try {
-				number = Integer.valueOf(toker.nextToken());
-			}
-			catch (NumberFormatException e) {
-				number = new Integer(IMarker.PRIORITY_NORMAL);
-			}
-			list.add(number);
-		}
-		Integer[] priorities = (Integer[]) list.toArray(new Integer[0]);
-
-		fTaskTags = new TaskTag[Math.min(tags.length, priorities.length)];
-		for (int i = 0; i < fTaskTags.length; i++) {
-			fTaskTags[i] = new TaskTag(tags[i], priorities[i].intValue());
-		}
-	}
-
-	public void performApply() {
-		save();
-
-		if (!Arrays.equals(fOriginalTaskTags, fTaskTags)) {
-			fOwner.requestRedetection();
-		}
-		fOriginalTaskTags = fTaskTags;
-	}
-
-	public void performDefaults() {
-		if (_debugPreferences) {
-			System.out.println("Loading defaults in " + getClass().getName()); //$NON-NLS-1$
-		}
-		IEclipsePreferences[] preferences = new IEclipsePreferences[fPreferencesLookupOrder.length];
-		for (int i = 0; i < preferences.length; i++) {
-			preferences[i] = fPreferencesLookupOrder[i].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE);
-		}
-		String tags = fPreferencesService.get(TaskTagPreferenceKeys.TASK_TAG_TAGS, null, preferences);
-		String priorities = fPreferencesService.get(TaskTagPreferenceKeys.TASK_TAG_PRIORITIES, null, preferences);
-		loadTagsAndPrioritiesFrom(tags, priorities);
-		int selection = valueTable.getTable().getSelectionIndex();
-		valueTable.setInput(fTaskTags);
-		valueTable.getTable().setSelection(selection);
-	}
-
-	public void performOk() {
-		performApply();
-	}
-
-	/**
-	 * @param selection
-	 */
-	private void removeTag(int i) {
-		if (i < 0) {
-			return;
-		}
-		List taskTags = new ArrayList(Arrays.asList(fTaskTags));
-		taskTags.remove(i);
-		fTaskTags = (TaskTag[]) taskTags.toArray(new TaskTag[taskTags.size()]);
-		valueTable.setInput(fTaskTags);
-	}
-
-	private void save() {
-		IEclipsePreferences defaultPreferences = new DefaultScope().getNode(TaskTagPreferenceKeys.TASK_TAG_NODE);
-		String defaultTags = defaultPreferences.get(TaskTagPreferenceKeys.TASK_TAG_TAGS, null);
-		String defaultPriorities = defaultPreferences.get(TaskTagPreferenceKeys.TASK_TAG_PRIORITIES, null);
-
-		StringBuffer buf = new StringBuffer();
-		for (int i = 0; i < fTaskTags.length; i++) {
-			if (i > 0) {
-				buf.append(","); //$NON-NLS-1$
-			}
-			buf.append(fTaskTags[i].getTag());
-		}
-		String currentTags = buf.toString();
-		if (currentTags.equals(defaultTags) && !fPreferencesLookupOrder[0].getName().equals(DefaultScope.SCOPE)) {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_TAGS + " from scope " + fPreferencesLookupOrder[0].getName() + ":" + fPreferencesLookupOrder[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-			fPreferencesLookupOrder[0].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE).remove(TaskTagPreferenceKeys.TASK_TAG_TAGS);
-		}
-		else {
-			fOwner.requestRedetection();
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " setting " + TaskTagPreferenceKeys.TASK_TAG_TAGS + " \"" + currentTags + "\" in scope " + fPreferencesLookupOrder[0].getName() + ":" + fPreferencesLookupOrder[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-			fPreferencesLookupOrder[0].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE).put(TaskTagPreferenceKeys.TASK_TAG_TAGS, currentTags);
-		}
-
-		StringBuffer buf2 = new StringBuffer();
-		for (int i = 0; i < fTaskTags.length; i++) {
-			if (i > 0) {
-				buf2.append(","); //$NON-NLS-1$
-			}
-			buf2.append(String.valueOf(fTaskTags[i].getPriority()));
-		}
-		String priorities = buf2.toString();
-
-		if (priorities.equals(defaultPriorities) && !fPreferencesLookupOrder[0].getName().equals(DefaultScope.SCOPE)) {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_PRIORITIES + " from scope " + fPreferencesLookupOrder[0].getName() + ":" + fPreferencesLookupOrder[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-			fPreferencesLookupOrder[0].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE).remove(TaskTagPreferenceKeys.TASK_TAG_PRIORITIES);
-		}
-		else {
-			fOwner.requestRedetection();
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " setting " + TaskTagPreferenceKeys.TASK_TAG_PRIORITIES + " \"" + priorities + "\" in scope " + fPreferencesLookupOrder[0].getName() + ":" + fPreferencesLookupOrder[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-			fPreferencesLookupOrder[0].getNode(TaskTagPreferenceKeys.TASK_TAG_NODE).put(TaskTagPreferenceKeys.TASK_TAG_PRIORITIES, priorities);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/PropertyPreferencePage.java b/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/PropertyPreferencePage.java
deleted file mode 100644
index d390958..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/PropertyPreferencePage.java
+++ /dev/null
@@ -1,269 +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.wst.sse.ui.internal.preferences.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.dialogs.ControlEnableState;
-import org.eclipse.jface.viewers.DecoratingLabelProvider;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.dialogs.ListDialog;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.model.WorkbenchLabelProvider;
-import org.eclipse.ui.views.navigator.ResourceSorter;
-import org.eclipse.wst.sse.core.internal.tasks.TaskTagPreferenceKeys;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-abstract class PropertyPreferencePage extends PropertyPage implements IWorkbenchPreferencePage {
-	private static final boolean _debugPreferences = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/preferences-properties")); //$NON-NLS-1$ //$NON-NLS-2$
-	/*
-	 * Disable link data, prevents the display of a "workspace" or "project"
-	 * settings link to prevent recursive dialog launching
-	 */
-	private static final Object DISABLE_LINK = "DISABLE_LINK"; //$NON-NLS-1$
-
-	private Map fData = null;
-
-	private Button fEnableProjectSettings;
-
-	private Link fProjectSettingsLink;
-
-	public PropertyPreferencePage() {
-		super();
-	}
-
-	public final void applyData(Object data) {
-		super.applyData(data);
-		if (data instanceof Map) {
-			fData = (Map) data;
-			updateLinkEnablement();
-		}
-	}
-
-	protected abstract Control createCommonContents(Composite composite);
-
-	public final Control createContents(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		GridLayout layout = new GridLayout();
-		composite.setLayout(layout);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		composite.setLayoutData(data);
-
-		Composite checkLinkComposite = new Composite(composite, SWT.NONE);
-		checkLinkComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
-		checkLinkComposite.setLayout(new GridLayout(2, false));
-
-		if (getProject() != null) {
-			fEnableProjectSettings = new Button(checkLinkComposite, SWT.CHECK);
-			fEnableProjectSettings.setText(SSEUIMessages.EnableProjectSettings); //$NON-NLS-1$//$NON-NLS-2$
-			fEnableProjectSettings.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
-			boolean enabledForProject = createPreferenceScopes()[0].getNode(getPreferenceNodeQualifier()).getBoolean(getProjectSettingsKey(), false);
-			fEnableProjectSettings.setSelection(enabledForProject);
-		}
-		else {
-			Label spacer = new Label(checkLinkComposite, SWT.CHECK);
-			spacer.setLayoutData(new GridData());
-		}
-
-		fProjectSettingsLink = new Link(checkLinkComposite, SWT.NONE);
-		fProjectSettingsLink.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, true, false));
-
-		/*
-		 * "element" should be a project, if null, link to per-project
-		 * properties
-		 */
-		if (getProject() != null) {
-			fProjectSettingsLink.setText("<a>" + SSEUIMessages.ConfigureWorkspaceSettings + "</a>"); //$NON-NLS-1$//$NON-NLS-2$
-		}
-		else {
-			fProjectSettingsLink.setText("<a>" + SSEUIMessages.ConfigureProjectSettings + "</a>"); //$NON-NLS-1$//$NON-NLS-2$
-		}
-
-		updateLinkEnablement();
-
-		fProjectSettingsLink.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				widgetSelected(e);
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				if (getProject() == null) {
-					openProjectSettings();
-				}
-				else {
-					openWorkspaceSettings();
-				}
-			}
-
-		});
-
-		if (getProject() != null) {
-			Label line = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
-			line.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		}
-
-		final Control common = createCommonContents(composite);
-		common.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		if (fEnableProjectSettings != null) {
-			SelectionAdapter selectionAdapter = new SelectionAdapter() {
-				ControlEnableState enablements = null;
-
-				public void widgetSelected(SelectionEvent e) {
-					super.widgetSelected(e);
-					if (fEnableProjectSettings.getSelection()) {
-						if (enablements != null) {
-							enablements.restore();
-							enablements = null;
-						}
-					}
-					else {
-						enablements = ControlEnableState.disable(common);
-					}
-				}
-			};
-			selectionAdapter.widgetSelected(null);
-			fEnableProjectSettings.addSelectionListener(selectionAdapter);
-		}
-		
-		applyDialogFont(composite);
-		return composite;
-	}
-
-	public void createControl(Composite parent) {
-		if (getProject() != null) {
-			noDefaultAndApplyButton();
-		}
-		super.createControl(parent);
-	}
-
-	protected IScopeContext[] createPreferenceScopes() {
-		IProject project = getProject();
-		if (project != null) {
-			return new IScopeContext[]{new ProjectScope(project), new InstanceScope(), new DefaultScope()};
-		}
-		return new IScopeContext[]{new InstanceScope(), new DefaultScope()};
-	}
-
-	protected abstract String getPreferenceNodeQualifier();
-
-	protected abstract String getPreferencePageID();
-
-	protected IProject getProject() {
-		if (getElement() != null && getElement() instanceof IProject) {
-			return (IProject) getElement();
-		}
-		return null;
-	}
-
-	protected abstract String getProjectSettingsKey();
-
-	protected abstract String getPropertyPageID();
-
-	protected boolean isElementSettingsEnabled() {
-		return fEnableProjectSettings != null && fEnableProjectSettings.getSelection();
-	}
-
-	void openProjectSettings() {
-		ListDialog dialog = new ListDialog(getShell()) {
-
-			protected Control createDialogArea(Composite container) {
-				Control area = super.createDialogArea(container);
-				getTableViewer().setSorter(new ResourceSorter(ResourceSorter.NAME));
-				return area;
-			}
-		};
-		dialog.setMessage(SSEUIMessages.PropertyPreferencePage_02);
-		dialog.setContentProvider(new IStructuredContentProvider() {
-			public void dispose() {
-			}
-
-			public Object[] getElements(Object inputElement) {
-				return ((IWorkspace) inputElement).getRoot().getProjects();
-			}
-
-			public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			}
-		});
-		dialog.setLabelProvider(new DecoratingLabelProvider(new WorkbenchLabelProvider(), SSEUIPlugin.getDefault().getWorkbench().getDecoratorManager().getLabelDecorator()));
-		dialog.setInput(ResourcesPlugin.getWorkspace());
-		dialog.setTitle(SSEUIMessages.PropertyPreferencePage_01);
-		if (dialog.open() == Window.OK) {
-			Object[] result = dialog.getResult();
-			if (result.length > 0) {
-				IProject project = (IProject) dialog.getResult()[0];
-				Map data = new HashMap();
-				data.put(DISABLE_LINK, Boolean.TRUE);
-				PreferencesUtil.createPropertyDialogOn(getShell(), project, getPropertyPageID(), new String[]{getPropertyPageID()}, data).open();
-			}
-		}
-	}
-
-	void openWorkspaceSettings() {
-		Map data = new HashMap();
-		data.put(DISABLE_LINK, Boolean.TRUE);
-		PreferencesUtil.createPreferenceDialogOn(getShell(), getPreferencePageID(), new String[]{getPreferencePageID()}, data).open();
-	}
-
-	public boolean performOk() {
-		boolean ok = super.performOk();
-		IScopeContext[] preferenceScopes = createPreferenceScopes();
-		if (getProject() != null) {
-			if (isElementSettingsEnabled()) {
-				if (_debugPreferences) {
-					System.out.println(getClass().getName() + " setting " + TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT + " (" + true + ") in scope " + preferenceScopes[0].getName() + ":" + preferenceScopes[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  
-				}
-				preferenceScopes[0].getNode(getPreferenceNodeQualifier()).putBoolean(getProjectSettingsKey(), fEnableProjectSettings.getSelection());
-			}
-			else {
-				if (_debugPreferences) {
-					System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT + " from scope " + preferenceScopes[0].getName() + ":" + preferenceScopes[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				}
-				preferenceScopes[0].getNode(getPreferenceNodeQualifier()).remove(getProjectSettingsKey());
-			}
-		}
-		return ok;
-	}
-
-	private void updateLinkEnablement() {
-		if (fData != null && fProjectSettingsLink != null) {
-			fProjectSettingsLink.setEnabled(!Boolean.TRUE.equals(fData.get(DISABLE_LINK)));
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/TaskTagPreferencePage.java b/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/TaskTagPreferencePage.java
deleted file mode 100644
index 3f05cc2..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src-tasktags/org/eclipse/wst/sse/ui/internal/preferences/ui/TaskTagPreferencePage.java
+++ /dev/null
@@ -1,353 +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.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IPreferencesService;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.jface.dialogs.ControlEnableState;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.core.internal.tasks.TaskScanningScheduler;
-import org.eclipse.wst.sse.core.internal.tasks.TaskTagPreferenceKeys;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.ui.internal.preferences.TabFolderLayout;
-import org.osgi.service.prefs.BackingStoreException;
-
-public class TaskTagPreferencePage extends PropertyPreferencePage {
-
-	private static final boolean _debugPreferences = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.core/tasks/preferences")); //$NON-NLS-1$ //$NON-NLS-2$
-	// Remember the last displayed tab for convenience
-	private static final String TASK_TAG_LAST_TAB = "task-tag-last-tab"; //$NON-NLS-1$
-
-	private int detectionRequested = 0;
-
-	private Button fEnableCheckbox = null;
-
-	private boolean fEnableTaskTags = true;
-
-	private boolean fOriginalEnableTaskTags = true;
-
-	private IPreferencesService fPreferencesService = null;
-
-	private Button fRedetectButton;
-
-	private SelectionListener fTabEnablementListener;
-
-	private TabFolder fTabFolder;
-	private IPreferenceTab[] fTabs = null;
-
-	public TaskTagPreferencePage() {
-		super();
-		fPreferencesService = Platform.getPreferencesService();
-	}
-
-	protected void contributeButtons(Composite parent) {
-		if (getElement() == null) {
-			((GridLayout) parent.getLayout()).numColumns += 2;
-			fRedetectButton = new Button(parent, SWT.PUSH);
-			fRedetectButton.setText(SSEUIMessages.TaskTagPreferencePage_32); //$NON-NLS-1$
-			fRedetectButton.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_FILL));
-			fRedetectButton.setEnabled(true);
-			fRedetectButton.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					Job redetectJob = new Job(SSEUIMessages.TaskTagPreferenceTab_27) { //$NON-NLS-1$
-						public Object getAdapter(Class adapter) {
-							return null;
-						}
-
-						protected IStatus run(IProgressMonitor monitor) {
-							TaskScanningScheduler.refresh();
-							return Status.OK_STATUS;
-						}
-					};
-					redetectJob.schedule();
-				}
-			});
-			Label spacer = new Label(parent, SWT.NONE);
-			spacer.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END | GridData.VERTICAL_ALIGN_CENTER));
-		}
-		super.contributeButtons(parent);
-	}
-
-	protected Control createCommonContents(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		GridLayout compositeLayout = new GridLayout();
-		compositeLayout.marginLeft = 0;
-		compositeLayout.marginRight = 0;
-		composite.setLayout(compositeLayout);
-
-		IScopeContext[] preferenceScopes = createPreferenceScopes();
-		fOriginalEnableTaskTags = fEnableTaskTags = fPreferencesService.getBoolean(getPreferenceNodeQualifier(), TaskTagPreferenceKeys.TASK_TAG_ENABLE, false, preferenceScopes);
-		fEnableCheckbox = new Button(composite, SWT.CHECK);
-		fEnableCheckbox.setSelection(fEnableTaskTags);
-		fEnableCheckbox.setText(SSEUIMessages.TaskTagPreferenceTab_31); //$NON-NLS-1$
-		fEnableCheckbox.setSelection(fEnableTaskTags);
-		fEnableCheckbox.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING, GridData.VERTICAL_ALIGN_END, false, false, 1, 1));
-
-		fTabFolder = new TabFolder(composite, SWT.NONE);
-		fTabFolder.setLayout(new TabFolderLayout());
-		fTabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
-
-		TabItem taskItem = new TabItem(fTabFolder, SWT.NONE);
-		MainTab mainTab = new MainTab(this, fPreferencesService, preferenceScopes);
-		taskItem.setText(mainTab.getTitle());
-		final Control taskTagsControl = mainTab.createContents(fTabFolder);
-		taskItem.setControl(taskTagsControl);
-
-		TabItem exclusionItem = new TabItem(fTabFolder, SWT.NONE);
-		ExclusionsTab exclusionsTab = new ExclusionsTab(this, fPreferencesService, preferenceScopes);
-		exclusionItem.setText(exclusionsTab.getTitle());
-		final Control exclusionControl = exclusionsTab.createContents(fTabFolder);
-		exclusionItem.setControl(exclusionControl);
-
-		fTabs = new IPreferenceTab[]{mainTab, exclusionsTab};
-
-		fTabEnablementListener = new SelectionAdapter() {
-			ControlEnableState[] lastEnableStates = null;
-
-			public void widgetSelected(SelectionEvent e) {
-				fEnableTaskTags = fEnableCheckbox.getSelection();
-				if (fEnableTaskTags) {
-					if (lastEnableStates != null) {
-						for (int i = 0; i < lastEnableStates.length; i++) {
-							if (lastEnableStates[i] != null) {
-								lastEnableStates[i].restore();
-							}
-						}
-						lastEnableStates = null;
-						fTabFolder.redraw();
-					}
-				}
-				else if (lastEnableStates == null) {
-					lastEnableStates = new ControlEnableState[fTabs.length + 1];
-					lastEnableStates[0] = ControlEnableState.disable(taskTagsControl);
-					lastEnableStates[1] = ControlEnableState.disable(exclusionControl);
-					if (fRedetectButton != null) {
-						lastEnableStates[2] = ControlEnableState.disable(fRedetectButton);
-					}
-				}
-			}
-		};
-		fTabEnablementListener.widgetSelected(null);
-		fEnableCheckbox.addSelectionListener(fTabEnablementListener);
-
-		// restore last selected tab
-		int activeTab = new DefaultScope().getNode(getPreferenceNodeQualifier()).getInt(TASK_TAG_LAST_TAB, 0);
-		if (activeTab > 0) {
-			fTabFolder.setSelection(activeTab);
-		}
-
-		SSEUIPlugin.getDefault().getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.PREFWEBX_TASKTAGS_HELPID);
-		return composite;
-	}
-
-	protected String getPreferenceNodeQualifier() {
-		return TaskTagPreferenceKeys.TASK_TAG_NODE;
-	}
-
-	protected String getPreferencePageID() {
-		return "org.eclipse.wst.sse.ui.preferences.tasktags";//$NON-NLS-1$
-
-	}
-
-	protected String getProjectSettingsKey() {
-		return TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT;
-	}
-
-	protected String getPropertyPageID() {
-		return "org.eclipse.wst.sse.ui.project.properties.tasktags";//$NON-NLS-1$
-	}
-
-	public String getTitle() {
-		return SSEUIMessages.TaskTagPreferenceTab_20; //$NON-NLS-1$
-	}
-
-	public void init(IWorkbench workbench) {
-	}
-
-	public void performApply() {
-		super.performApply();
-		save();
-
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performApply();
-		}
-
-		promptForRedetectIfNecessary();
-	}
-
-	public void performDefaults() {
-		super.performDefaults();
-		IEclipsePreferences defaultPreferences = createPreferenceScopes()[1].getNode(getPreferenceNodeQualifier());
-		fEnableTaskTags = defaultPreferences.getBoolean(TaskTagPreferenceKeys.TASK_TAG_ENABLE, false);
-		fEnableCheckbox.setSelection(fEnableTaskTags);
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performDefaults();
-		}
-		fTabEnablementListener.widgetSelected(null);
-		if (_debugPreferences) {
-			System.out.println("Loading defaults in " + getClass().getName()); //$NON-NLS-1$
-		}
-	}
-
-	public boolean performOk() {
-		boolean ok = super.performOk();
-		save();
-
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performOk();
-		}
-
-		promptForRedetectIfNecessary();
-
-		// save last tab (use Default scope since it won't be persisted)
-		new DefaultScope().getNode(getPreferenceNodeQualifier()).putInt(TASK_TAG_LAST_TAB, fTabFolder.getSelectionIndex());
-
-		IScopeContext[] contexts = createPreferenceScopes();
-		// remove project-specific information if it's not enabled
-		if (getProject() != null && !isElementSettingsEnabled()) {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT + " (" + true + ") in scope " + contexts[0].getName() + ":" + contexts[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  
-			}
-			contexts[0].getNode(getPreferenceNodeQualifier()).remove(TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT);
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED + " (" + true + ") in scope " + contexts[0].getName() + ":" + contexts[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  
-			}
-			contexts[0].getNode(getPreferenceNodeQualifier()).remove(TaskTagPreferenceKeys.TASK_TAG_CONTENTTYPES_IGNORED);
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_PRIORITIES + " (" + true + ") in scope " + contexts[0].getName() + ":" + contexts[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  
-			}
-			contexts[0].getNode(getPreferenceNodeQualifier()).remove(TaskTagPreferenceKeys.TASK_TAG_PRIORITIES);
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_TAGS + " (" + true + ") in scope " + contexts[0].getName() + ":" + contexts[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  
-			}
-			contexts[0].getNode(getPreferenceNodeQualifier()).remove(TaskTagPreferenceKeys.TASK_TAG_TAGS);
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_ENABLE + " (" + true + ") in scope " + contexts[0].getName() + ":" + contexts[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  
-			}
-			contexts[0].getNode(getPreferenceNodeQualifier()).remove(TaskTagPreferenceKeys.TASK_TAG_ENABLE);
-		}
-		for (int i = 0; i < contexts.length; i++) {
-			try {
-				contexts[i].getNode(getPreferenceNodeQualifier()).flush();
-			}
-			catch (BackingStoreException e) {
-				Logger.logException("problem saving preference settings to scope " + contexts[i].getName(), e); //$NON-NLS-1$
-			}
-		}
-
-		return ok;
-	}
-
-
-	private void promptForRedetectIfNecessary() {
-		if (detectionRequested > 0) {
-			MessageDialog dialog = new MessageDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SSEUIMessages.TaskTagPreferenceTab_22, PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().getImage(), SSEUIMessages.TaskTagPreferenceTab_23, MessageDialog.QUESTION, new String[]{SSEUIMessages.TaskTagPreferenceTab_24, SSEUIMessages.TaskTagPreferenceTab_25, SSEUIMessages.TaskTagPreferenceTab_26}, 2); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-			int button = dialog.open();
-			if (button == 0) {
-				Job redetectJob = new Job(SSEUIMessages.TaskTagPreferenceTab_27) { //$NON-NLS-1$
-					public Object getAdapter(Class adapter) {
-						return null;
-					}
-
-					protected IStatus run(IProgressMonitor monitor) {
-						if (getProject() == null) {
-							if (_debugPreferences) {
-								System.out.println(getClass().getName() + ": rescanning all"); //$NON-NLS-1$
-							}
-							TaskScanningScheduler.refresh();
-						}
-						else {
-							if (_debugPreferences) {
-								System.out.println(getClass().getName() + ": rescanning " + getProject()); //$NON-NLS-1$
-							}
-							TaskScanningScheduler.refresh(getProject());
-						}
-						return Status.OK_STATUS;
-					}
-				};
-				redetectJob.schedule(500);
-			}
-			detectionRequested = 0;
-		}
-	}
-
-	void requestRedetection() {
-		detectionRequested++;
-	}
-
-	private void save() {
-		if (fEnableTaskTags != fOriginalEnableTaskTags) {
-			requestRedetection();
-		}
-		fOriginalEnableTaskTags = fEnableTaskTags;
-
-		IScopeContext[] preferenceScopes = createPreferenceScopes();
-		IEclipsePreferences defaultPreferences = preferenceScopes[1].getNode(getPreferenceNodeQualifier());
-		boolean defaultEnable = defaultPreferences.getBoolean(TaskTagPreferenceKeys.TASK_TAG_ENABLE, false);
-		if (fEnableTaskTags == defaultEnable) {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_ENABLE + " from scope " + preferenceScopes[0].getName() + ":" + preferenceScopes[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-			preferenceScopes[0].getNode(getPreferenceNodeQualifier()).remove(TaskTagPreferenceKeys.TASK_TAG_ENABLE);
-		}
-		else {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " setting " + TaskTagPreferenceKeys.TASK_TAG_ENABLE + " \"" + fEnableTaskTags + "\" in scope " + preferenceScopes[0].getName() + ":" + preferenceScopes[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-			preferenceScopes[0].getNode(getPreferenceNodeQualifier()).putBoolean(TaskTagPreferenceKeys.TASK_TAG_ENABLE, fEnableTaskTags);
-		}
-		if (getProject() != null && isElementSettingsEnabled()) {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " setting " + TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT + " (" + true + ") in scope " + preferenceScopes[0].getName() + ":" + preferenceScopes[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$  
-			}
-			preferenceScopes[0].getNode(getPreferenceNodeQualifier()).putBoolean(TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT, true);
-		}
-		else {
-			if (_debugPreferences) {
-				System.out.println(getClass().getName() + " removing " + TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT + " from scope " + preferenceScopes[0].getName() + ":" + preferenceScopes[0].getLocation()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			}
-			preferenceScopes[0].getNode(getPreferenceNodeQualifier()).remove(TaskTagPreferenceKeys.TASK_TAG_PER_PROJECT);
-		}
-		try {
-			fPreferencesService.getRootNode().flush();
-		}
-		catch (BackingStoreException e) {
-			// log it, there is no recovery
-			Logger.logException(e);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/EditorExecutionContext.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/EditorExecutionContext.java
deleted file mode 100644
index 388a27d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/EditorExecutionContext.java
+++ /dev/null
@@ -1,85 +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.wst.sse.ui;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.core.internal.IExecutionDelegate;
-
-
-
-class EditorExecutionContext implements IExecutionDelegate {
-
-
-	StructuredTextEditor fEditor;
-
-	public EditorExecutionContext(StructuredTextEditor editor) {
-		super();
-		fEditor = editor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.internal.document.IExecutionDelegate#execute(java.lang.Runnable)
-	 */
-	public void execute(final Runnable runnable) {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		final Display display = workbench.getDisplay();
-		if (display.getThread() == Thread.currentThread()) {
-			// if already in display thread, we can simply run, "as usual"
-			runnable.run();
-		} else {
-			// this is the part that's really new, that
-			// accomidate's a change in a document
-			// from background thread, by forcing it on
-			// the display thread.
-			final StructuredTextEditor editor = fEditor;
-			// if not in display thread, we "force" to run on display thread.
-			// see editors begin/end background job for other
-			// activities to best accomidate (for example, there
-			// is a "timed delay" before the editor itself leaves
-			// background-update mode).
-			// NOTE: this execute method itself is always called from
-			// inside of an ILock block, so another
-			// block is not not needed here for all these sycnExec's
-			display.syncExec(new Runnable() {
-				public void run() {
-					if (display != null && !display.isDisposed()) {
-						editor.beginBackgroundOperation();
-						try {
-							// here's where the document update/modification
-							// occurs
-							runnable.run();
-
-							// for future, possibly explore solutions such as
-							// this
-							//							IWorkbenchSiteProgressService jobService =
-							// (IWorkbenchSiteProgressService)
-							// editor.getEditorPart().getSite().getAdapter(IWorkbenchSiteProgressService.class);
-							//							jobService.runInUI(xxxxx)
-						} finally {
-							// this 'end' is just a signal to editor that this
-							// particular update is done. Its up to the editor
-							// to decide exactly when to leave its "background
-							// mode"
-							editor.endBackgroundOperation();
-						}
-					}
-				}
-			});
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/FoldingActionGroup.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/FoldingActionGroup.java
deleted file mode 100644
index c442ac7..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/FoldingActionGroup.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.sse.ui;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.source.projection.IProjectionListener;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.ui.editors.text.IFoldingCommandIds;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.ui.texteditor.ResourceAction;
-import org.eclipse.ui.texteditor.TextOperationAction;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.projection.IStructuredTextFoldingProvider;
-
-class FoldingActionGroup extends ActionGroup {
-	private static abstract class PreferenceAction extends ResourceAction implements IUpdate {
-		PreferenceAction(ResourceBundle bundle, String prefix, int style) {
-			super(bundle, prefix, style);
-		}
-	}
-
-	private ProjectionViewer fViewer;
-
-	private final PreferenceAction fToggle;
-	private final TextOperationAction fExpandAll;
-	private final IProjectionListener fProjectionListener;
-	private final TextOperationAction fCollapseAll;
-
-
-	/**
-	 * Creates a new projection action group for <code>editor</code>. If
-	 * the supplied viewer is not an instance of <code>ProjectionViewer</code>,
-	 * the action group is disabled.
-	 * 
-	 * @param editor
-	 *            the text editor to operate on
-	 * @param viewer
-	 *            the viewer of the editor
-	 */
-	public FoldingActionGroup(final ITextEditor editor, ITextViewer viewer) {
-		if (!(viewer instanceof ProjectionViewer)) {
-			fToggle = null;
-			fExpandAll = null;
-			fCollapseAll = null;
-			fProjectionListener = null;
-			return;
-		}
-
-		fViewer = (ProjectionViewer) viewer;
-
-		fProjectionListener = new IProjectionListener() {
-
-			public void projectionEnabled() {
-				update();
-			}
-
-			public void projectionDisabled() {
-				update();
-			}
-		};
-
-		fViewer.addProjectionListener(fProjectionListener);
-
-		fToggle = new PreferenceAction(SSEUIMessages.getResourceBundle(), "Projection_Toggle_", IAction.AS_CHECK_BOX) { //$NON-NLS-1$
-			public void run() {
-				IPreferenceStore store = SSEUIPlugin.getDefault().getPreferenceStore();
-				boolean current = store.getBoolean(IStructuredTextFoldingProvider.FOLDING_ENABLED);
-				store.setValue(IStructuredTextFoldingProvider.FOLDING_ENABLED, !current);
-			}
-
-			public void update() {
-				ITextOperationTarget target = (ITextOperationTarget) editor.getAdapter(ITextOperationTarget.class);
-
-				boolean isEnabled = (target != null && target.canDoOperation(ProjectionViewer.TOGGLE));
-				setEnabled(isEnabled);
-			}
-		};
-		fToggle.setChecked(true);
-		fToggle.setActionDefinitionId(IFoldingCommandIds.FOLDING_TOGGLE);
-		editor.setAction("FoldingToggle", fToggle); //$NON-NLS-1$
-
-		fExpandAll = new TextOperationAction(SSEUIMessages.getResourceBundle(), "Projection_ExpandAll_", editor, ProjectionViewer.EXPAND_ALL, true); //$NON-NLS-1$
-		fExpandAll.setActionDefinitionId(IFoldingCommandIds.FOLDING_EXPAND_ALL);
-		editor.setAction("FoldingExpandAll", fExpandAll); //$NON-NLS-1$
-
-		fCollapseAll = new TextOperationAction(SSEUIMessages.getResourceBundle(), "Projection_CollapseAll_", editor, ProjectionViewer.COLLAPSE_ALL, true); //$NON-NLS-1$
-		fCollapseAll.setActionDefinitionId(IFoldingCommandIds.FOLDING_COLLAPSE_ALL);
-		editor.setAction("FoldingCollapseAll", fCollapseAll); //$NON-NLS-1$
-	}
-
-	/**
-	 * Returns <code>true</code> if the group is enabled.
-	 * 
-	 * <pre>
-	 *        Invariant: isEnabled() &lt;=&gt; fViewer and all actions are != null.
-	 * </pre>
-	 * 
-	 * @return <code>true</code> if the group is enabled
-	 */
-	protected boolean isEnabled() {
-		return fViewer != null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.actions.ActionGroup#dispose()
-	 */
-	public void dispose() {
-		if (isEnabled()) {
-			fViewer.removeProjectionListener(fProjectionListener);
-			fViewer = null;
-		}
-		super.dispose();
-	}
-
-	/**
-	 * Updates the actions.
-	 */
-	protected void update() {
-		if (isEnabled()) {
-			fToggle.update();
-			fToggle.setChecked(fViewer.isProjectionMode());
-			fExpandAll.update();
-			fCollapseAll.update();
-		}
-	}
-
-	/**
-	 * Fills the menu with all folding actions.
-	 * 
-	 * @param manager
-	 *            the menu manager for the folding submenu
-	 */
-	public void fillMenu(IMenuManager manager) {
-		if (isEnabled()) {
-			update();
-			manager.add(fToggle);
-			manager.add(fExpandAll);
-			manager.add(fCollapseAll);
-		}
-	}
-
-	/*
-	 * @see org.eclipse.ui.actions.ActionGroup#updateActionBars()
-	 */
-	public void updateActionBars() {
-		update();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/InformationProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/InformationProvider.java
deleted file mode 100644
index 8f84759..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/InformationProvider.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui;
-
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension;
-import org.eclipse.jface.text.information.IInformationProviderExtension2;
-
-/**
- * Information provider used to present the information.
- * 
- * @see org.eclipse.jdt.internal.ui.javaeditor.JavaEditor#InformationDispatchAction
- * @see org.eclipse.wst.sse.ui.StructuredTextEditor#InformationDispatchAction
- */
-class InformationProvider implements IInformationProvider, IInformationProviderExtension, IInformationProviderExtension2 {
-
-	private IRegion fHoverRegion;
-	private String fHoverInfo;
-	private IInformationControlCreator fControlCreator;
-
-	InformationProvider(IRegion hoverRegion, String hoverInfo, IInformationControlCreator controlCreator) {
-		fHoverRegion = hoverRegion;
-		fHoverInfo = hoverInfo;
-		fControlCreator = controlCreator;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getSubject(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IRegion getSubject(ITextViewer textViewer, int invocationOffset) {
-		return fHoverRegion;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getInformation(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
-	}
-
-	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
-		return fHoverInfo;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.information.IInformationProviderExtension2#getInformationPresenterControlCreator()
-	 * @since 3.0
-	 */
-	public IInformationControlCreator getInformationPresenterControlCreator() {
-		return fControlCreator;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java
deleted file mode 100644
index efe4d95..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextEditor.java
+++ /dev/null
@@ -1,3436 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui;
-
-import java.io.IOException;
-import java.lang.ref.WeakReference;
-import java.lang.reflect.Method;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ResourceBundle;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
-import org.eclipse.emf.common.command.Command;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DefaultInformationControl;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IInformationControl;
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ISelectionValidator;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextOperationTarget;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITextViewerExtension;
-import org.eclipse.jface.text.ITextViewerExtension2;
-import org.eclipse.jface.text.ITextViewerExtension4;
-import org.eclipse.jface.text.ITextViewerExtension5;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension2;
-import org.eclipse.jface.text.information.InformationPresenter;
-import org.eclipse.jface.text.source.ICharacterPairMatcher;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.jface.text.source.LineChangeHover;
-import org.eclipse.jface.text.source.SourceViewerConfiguration;
-import org.eclipse.jface.text.source.projection.ProjectionSupport;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackAdapter;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.editors.text.ITextEditorHelpContextIds;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.help.IWorkbenchHelpSystem;
-import org.eclipse.ui.part.IShowInTargetList;
-import org.eclipse.ui.progress.IWorkbenchSiteProgressService;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.ui.texteditor.ChainedPreferenceStore;
-import org.eclipse.ui.texteditor.DefaultRangeIndicator;
-import org.eclipse.ui.texteditor.IAbstractTextEditorHelpContextIds;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.IStatusField;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
-import org.eclipse.ui.texteditor.SourceViewerDecorationSupport;
-import org.eclipse.ui.texteditor.TextEditorAction;
-import org.eclipse.ui.texteditor.TextOperationAction;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.document.IDocumentCharsetDetector;
-import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
-import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.text.IExecutionDelegatable;
-import org.eclipse.wst.sse.core.internal.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder;
-import org.eclipse.wst.sse.ui.internal.ExtendedEditorActionBuilder;
-import org.eclipse.wst.sse.ui.internal.ExtendedEditorDropTargetAdapter;
-import org.eclipse.wst.sse.ui.internal.IExtendedContributor;
-import org.eclipse.wst.sse.ui.internal.IModelProvider;
-import org.eclipse.wst.sse.ui.internal.IPopupMenuContributor;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.ReadOnlyAwareDropTargetAdapter;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.StorageModelProvider;
-import org.eclipse.wst.sse.ui.internal.StructuredLineChangeHover;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.UnknownContentTypeDialog;
-import org.eclipse.wst.sse.ui.internal.actions.ActionDefinitionIds;
-import org.eclipse.wst.sse.ui.internal.actions.StructuredTextEditorActionConstants;
-import org.eclipse.wst.sse.ui.internal.contentoutline.ConfigurableContentOutlinePage;
-import org.eclipse.wst.sse.ui.internal.correction.CorrectionAssistantProvider;
-import org.eclipse.wst.sse.ui.internal.debug.BreakpointRulerAction;
-import org.eclipse.wst.sse.ui.internal.debug.EditBreakpointAction;
-import org.eclipse.wst.sse.ui.internal.debug.ManageBreakpointAction;
-import org.eclipse.wst.sse.ui.internal.debug.ToggleBreakpointAction;
-import org.eclipse.wst.sse.ui.internal.debug.ToggleBreakpointsTarget;
-import org.eclipse.wst.sse.ui.internal.derived.HTMLTextPresenter;
-import org.eclipse.wst.sse.ui.internal.editor.EditorModelUtil;
-import org.eclipse.wst.sse.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.ui.internal.editor.StructuredModelDocumentProvider;
-import org.eclipse.wst.sse.ui.internal.extension.BreakpointProviderBuilder;
-import org.eclipse.wst.sse.ui.internal.hyperlink.OpenHyperlinkAction;
-import org.eclipse.wst.sse.ui.internal.preferences.EditorPreferenceNames;
-import org.eclipse.wst.sse.ui.internal.projection.IStructuredTextFoldingProvider;
-import org.eclipse.wst.sse.ui.internal.properties.ConfigurablePropertySheetPage;
-import org.eclipse.wst.sse.ui.internal.properties.ShowPropertiesAction;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ConfigurationPointCalculator;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.NullSourceEditingTextTools;
-import org.eclipse.wst.sse.ui.internal.selection.SelectionHistory;
-import org.eclipse.wst.sse.ui.internal.text.DocumentRegionEdgeMatcher;
-import org.eclipse.wst.sse.ui.internal.util.Assert;
-import org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration;
-import org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration;
-
-/**
- * A Text Editor for editing structured models and structured documents.
- * <p>
- * This class is not meant to be subclassed.<br />
- * New content types may associate source viewer, content outline, and
- * property sheet configurations to extend the existing functionality.
- * </p>
- * 
- * @see org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration
- * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration
- * @see org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration
- * 
- * @since 1.0
- */
-
-public class StructuredTextEditor extends TextEditor {
-
-
-	// ISSUE: This use case is not clear to me.
-	// Is this listner and dance with dirty state for non-editor driven
-	// updates?
-	class InternalDocumentListener implements IDocumentListener {
-		// This is for the IDocumentListener interface
-		public void documentAboutToBeChanged(DocumentEvent event) {
-			fDirtyBeforeDocumentEvent = isDirty();
-		}
-
-		// This is for the IDocumentListener interface
-		public void documentChanged(DocumentEvent event) {
-			if (isEditorInputReadOnly()) {
-				// stop listening to document event
-				// caused by the undo after validateEdit
-				final int offset = event.getOffset() + event.getLength();
-				final IStructuredModel internalModel = getInternalModel();
-				fCurrentRunnable = new Runnable() {
-					public void run() {
-						if (!fEditorDisposed) {
-							boolean status = validateEditorInputState();
-							if (!status) {
-								if (internalModel != null) {
-									internalModel.getUndoManager().undo();
-									getSourceViewer().setSelectedRange(offset, 0);
-									if (!fDirtyBeforeDocumentEvent) {
-										// reset dirty state if
-										// model not dirty before
-										// document event
-										internalModel.setDirtyState(false);
-									}
-								}
-							}
-						}
-						fCurrentRunnable = null;
-					}
-				};
-				/*
-				 * We need to ensure that this is run via 'asyncExec' since
-				 * these notifications can come from a non-ui thread.
-				 * 
-				 * The non-ui thread call would occur when creating a new file
-				 * under ClearCase (or other library) control. The creation of
-				 * the new file would trigger a validateEdit call, on another
-				 * thread, that would prompt the user to add the new file to
-				 * version control.
-				 */
-				Display display = getDisplay();
-				if (display != null) {
-					if (Thread.currentThread() != display.getThread())
-						// future_TODO: there's probably a better
-						// way than relying on asycnExec
-						display.asyncExec(fCurrentRunnable);
-					else
-						fCurrentRunnable.run();
-				}
-			}
-		}
-	}
-
-	private class InternalModelStateListener implements IModelStateListener {
-		public void modelAboutToBeChanged(IStructuredModel model) {
-			if (getTextViewer() != null) {
-				// getTextViewer().setRedraw(false);
-			}
-		}
-
-		public void modelAboutToBeReinitialized(IStructuredModel structuredModel) {
-			if (getTextViewer() != null) {
-				// getTextViewer().setRedraw(false);
-				getTextViewer().unconfigure();
-			}
-		}
-
-		public void modelChanged(IStructuredModel model) {
-			if (getTextViewer() != null) {
-				// getTextViewer().setRedraw(true);
-				// Since the model can be changed on a background
-				// thread, we will update menus on display thread,
-				// if we are not already on display thread,
-				// and if there is not an update already pending.
-				// (we can get lots of 'modelChanged' events in rapid
-				// succession, so only need to do one.
-				if (!fUpdateMenuTextPending) {
-					runOnDisplayThreadIfNeededed(new Runnable() {
-						public void run() {
-							updateMenuText();
-							fUpdateMenuTextPending = false;
-						}
-					});
-				}
-
-			}
-		}
-
-		public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
-			// do nothing
-		}
-
-		public void modelReinitialized(IStructuredModel structuredModel) {
-			try {
-				if (getSourceViewer() != null) {
-					SourceViewerConfiguration cfg = getSourceViewerConfiguration();
-					getSourceViewer().configure(cfg);
-				}
-			}
-			catch (Exception e) {
-				// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=1166
-				// investigate each error case post beta
-				Logger.logException("problem trying to configure after model change", e); //$NON-NLS-1$
-			}
-			finally {
-				// so we don't freeze workbench (eg. during page language or
-				// content type change)
-				((ITextViewerExtension) getSourceViewer()).setRedraw(true);
-			}
-		}
-
-		// Note: this one should probably be used to
-		// control viewer
-		// instead of viewer having its own listener
-		public void modelResourceDeleted(IStructuredModel model) {
-			// do nothing
-		}
-
-		public void modelResourceMoved(IStructuredModel originalmodel, IStructuredModel movedmodel) {
-			// do nothing
-		}
-
-		/**
-		 * This 'Runnable' should be very brief, and should not "call out" to
-		 * other code especially if it depends on the state of the model.
-		 * 
-		 * @param r
-		 */
-		private void runOnDisplayThreadIfNeededed(Runnable r) {
-			// if there is no Display at all (that is, running headless),
-			// or if we are already running on the display thread, then
-			// simply execute the runnable.
-			if (getDisplay() == null || (Thread.currentThread() == getDisplay().getThread())) {
-				r.run();
-			}
-			else {
-				// otherwise force the runnable to run on the display thread.
-				getDisplay().asyncExec(r);
-			}
-		}
-	}
-
-	class MouseTracker extends MouseTrackAdapter implements MouseMoveListener {
-		/** The tracker's subject control. */
-		private Control fSubjectControl;
-
-		/**
-		 * Creates a new mouse tracker.
-		 */
-		public MouseTracker() {
-			// do nothing
-		}
-
-		public void mouseHover(MouseEvent event) {
-			// System.out.println("hover: "+event.x + "x" + event.y);
-			hoverX = event.x;
-			hoverY = event.y;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(org.eclipse.swt.events.MouseEvent)
-		 */
-		public void mouseMove(MouseEvent e) {
-			hoverX = e.x;
-			hoverY = e.y;
-		}
-
-		/**
-		 * Starts this mouse tracker. The given control becomes this tracker's
-		 * subject control. Installs itself as mouse track listener on the
-		 * subject control.
-		 * 
-		 * @param subjectControl
-		 *            the subject control
-		 */
-		public void start(Control subjectControl) {
-			fSubjectControl = subjectControl;
-			if (fSubjectControl != null && !fSubjectControl.isDisposed()) {
-				fSubjectControl.addMouseMoveListener(this);
-				fSubjectControl.addMouseTrackListener(this);
-				fSubjectControl.addDisposeListener(new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						stop();
-					}
-				});
-			}
-		}
-
-		/**
-		 * Stops this mouse tracker. Removes itself as mouse track, mouse
-		 * move, and shell listener from the subject control.
-		 */
-		public void stop() {
-			if (fSubjectControl != null && !fSubjectControl.isDisposed()) {
-				fSubjectControl.removeMouseMoveListener(this);
-				fSubjectControl.removeMouseTrackListener(this);
-				fSubjectControl = null;
-			}
-		}
-	}
-
-	/**
-	 * Listens to double-click and selection from the outline page
-	 */
-	private class OutlinePageListener implements IDoubleClickListener, ISelectionChangedListener {
-		public void doubleClick(DoubleClickEvent event) {
-			if (event.getSelection().isEmpty())
-				return;
-
-			int start = -1;
-			int length = 0;
-			if (event.getSelection() instanceof IStructuredSelection) {
-				ISelection currentSelection = getSelectionProvider().getSelection();
-				if (currentSelection instanceof IStructuredSelection) {
-					Object current = ((IStructuredSelection) currentSelection).toArray();
-					Object newSelection = ((IStructuredSelection) event.getSelection()).toArray();
-					if (!current.equals(newSelection)) {
-						IStructuredSelection selection = (IStructuredSelection) event.getSelection();
-						Object o = selection.getFirstElement();
-						if (o instanceof IndexedRegion) {
-							start = ((IndexedRegion) o).getStartOffset();
-							length = ((IndexedRegion) o).getEndOffset() - start;
-						}
-						else if (o instanceof ITextRegion) {
-							start = ((ITextRegion) o).getStart();
-							length = ((ITextRegion) o).getEnd() - start;
-						}
-						else if (o instanceof IRegion) {
-							start = ((ITextRegion) o).getStart();
-							length = ((ITextRegion) o).getLength();
-						}
-					}
-				}
-			}
-			else if (event.getSelection() instanceof ITextSelection) {
-				start = ((ITextSelection) event.getSelection()).getOffset();
-				length = ((ITextSelection) event.getSelection()).getLength();
-			}
-			if (start > -1) {
-				getSourceViewer().setRangeIndication(start, length, false);
-				selectAndReveal(start, length);
-			}
-		}
-
-		public void selectionChanged(SelectionChangedEvent event) {
-			/*
-			 * Do not allow selection from other parts to affect selection in
-			 * the text widget if it has focus, or if we're still firing a
-			 * change of selection. Selection events "bouncing" off of other
-			 * parts are all that we can receive if we have focus (since we
-			 * forwarded our selection to the service just a moment ago), and
-			 * only the user should affect selection if we have focus.
-			 */
-
-			/* The isFiringSelection check only works if a selection listener */
-			if (event.getSelection().isEmpty() || fStructuredSelectionProvider.isFiringSelection())
-				return;
-
-			if (getSourceViewer() != null && getSourceViewer().getTextWidget() != null && !getSourceViewer().getTextWidget().isDisposed() && !getSourceViewer().getTextWidget().isFocusControl()) {
-				int start = -1;
-				int length = 0;
-				if (event.getSelection() instanceof IStructuredSelection) {
-					ISelection current = getSelectionProvider().getSelection();
-					if (current instanceof IStructuredSelection) {
-						Object[] currentSelection = ((IStructuredSelection) current).toArray();
-						Object[] newSelection = ((IStructuredSelection) event.getSelection()).toArray();
-						if (!Arrays.equals(currentSelection, newSelection)) {
-							if (newSelection.length > 0) {
-								/*
-								 * No ordering is guaranteed for multiple
-								 * selection
-								 */
-								Object o = newSelection[0];
-								if (o instanceof IndexedRegion) {
-									start = ((IndexedRegion) o).getStartOffset();
-									int end = ((IndexedRegion) o).getEndOffset();
-									if (newSelection.length > 1) {
-										for (int i = 1; i < newSelection.length; i++) {
-											start = Math.min(start, ((IndexedRegion) newSelection[i]).getStartOffset());
-											end = Math.max(end, ((IndexedRegion) newSelection[i]).getEndOffset());
-										}
-										length = end - start;
-									}
-								}
-								else if (o instanceof ITextRegion) {
-									start = ((ITextRegion) o).getStart();
-									int end = ((ITextRegion) o).getEnd();
-									if (newSelection.length > 1) {
-										for (int i = 1; i < newSelection.length; i++) {
-											start = Math.min(start, ((ITextRegion) newSelection[i]).getStart());
-											end = Math.max(end, ((ITextRegion) newSelection[i]).getEnd());
-										}
-										length = end - start;
-									}
-								}
-								else if (o instanceof IRegion) {
-									start = ((IRegion) o).getOffset();
-									int end = start + ((IRegion) o).getLength();
-									if (newSelection.length > 1) {
-										for (int i = 1; i < newSelection.length; i++) {
-											start = Math.min(start, ((IRegion) newSelection[i]).getOffset());
-											end = Math.max(end, ((IRegion) newSelection[i]).getOffset() + ((IRegion) newSelection[i]).getLength());
-										}
-										length = end - start;
-									}
-								}
-							}
-						}
-					}
-				}
-				else if (event.getSelection() instanceof ITextSelection) {
-					start = ((ITextSelection) event.getSelection()).getOffset();
-				}
-				if (start > -1) {
-					updateRangeIndication(event.getSelection());
-					selectAndReveal(start, length);
-				}
-			}
-		}
-	}
-
-	private class ShowInTargetListAdapter implements IShowInTargetList {
-		/**
-		 * Array of ID Strings that define the default show in targets for
-		 * this editor.
-		 * 
-		 * @see org.eclipse.ui.part.IShowInTargetList#getShowInTargetIds()
-		 * @return the array of ID Strings that define the default show in
-		 *         targets for this editor.
-		 */
-		public String[] getShowInTargetIds() {
-			return fShowInTargetIds;
-		}
-	}
-
-	/**
-	 * A post selection provider that wraps the provider implemented in
-	 * AbstractTextEditor to provide a StructuredTextSelection to post
-	 * selection listeners. Listens to selection changes from the source
-	 * viewer.
-	 */
-	private static class StructuredSelectionProvider implements IPostSelectionProvider, ISelectionValidator {
-		/**
-		 * A "hybrid" text and structured selection class. Converts the source
-		 * viewer text selection to a generic "getIndexedRegion"-derived
-		 * structured selection, allowing selection changed listeners to
-		 * possibly not need to reference the model directly.
-		 */
-		private static class StructuredTextSelection extends TextSelection implements IStructuredSelection, ITextSelection {
-			private WeakReference weakSelectedStructured;
-			private InternalTextSelection fInternalTextSelection;
-
-			StructuredTextSelection(ITextSelection selection, IDocument document, IStructuredModel model) {
-				// note: we do not currently use super class at all, but, only
-				// subclass TextSelection,
-				// because some infrastructure code uses "instanceof
-				// TextSelection" instead of ITextSelection.
-				super(selection.getOffset(), selection.getLength());
-				fInternalTextSelection = new InternalTextSelection(document, selection.getOffset(), selection.getLength());
-				weakSelectedStructured = new WeakReference(initializeInferredSelectedObjects(selection, model));
-			}
-
-			StructuredTextSelection(ITextSelection selection, Object[] selectedObjects, IDocument document) {
-				super(selection.getOffset(), selection.getLength());
-				fInternalTextSelection = new InternalTextSelection(document, selection.getOffset(), selection.getLength());
-				weakSelectedStructured = new WeakReference(selectedObjects);
-			}
-
-			StructuredTextSelection(IDocument document, int offset, int length, Object[] selectedObjects) {
-				super(offset, length);
-				fInternalTextSelection = new InternalTextSelection(document, offset, length);
-				weakSelectedStructured = new WeakReference(selectedObjects);
-			}
-
-			public Object getFirstElement() {
-				Object[] selectedStructures = getSelectedStructures();
-				return selectedStructures.length > 0 ? selectedStructures[0] : null;
-			}
-
-			private Object[] getSelectedStructures() {
-				Object[] selectedStructures = (Object[]) weakSelectedStructured.get();
-				if (selectedStructures == null) {
-					selectedStructures = new Object[0];
-				}
-				return selectedStructures;
-			}
-
-			private Object[] initializeInferredSelectedObjects(ITextSelection selection, IStructuredModel model) {
-				Object[] localSelectedStructures = null;
-				if (model != null) {
-					IndexedRegion region = model.getIndexedRegion(selection.getOffset());
-					int end = selection.getOffset() + selection.getLength();
-					if (region != null) {
-						if (end <= region.getEndOffset()) {
-							// single selection
-							localSelectedStructures = new Object[1];
-							localSelectedStructures[0] = region;
-						}
-						else {
-							// multiple selection
-							int maxLength = model.getStructuredDocument().getLength();
-							List structures = new ArrayList(2);
-							while (region != null && region.getEndOffset() <= end && region.getEndOffset() < maxLength) {
-								structures.add(region);
-								region = model.getIndexedRegion(region.getEndOffset() + 1);
-							}
-							localSelectedStructures = structures.toArray();
-						}
-					}
-				}
-				if (localSelectedStructures == null) {
-					localSelectedStructures = new Object[0];
-				}
-				return localSelectedStructures;
-			}
-
-			public boolean isEmpty() {
-				return fInternalTextSelection.isEmpty() && getSelectedStructures().length == 0;
-			}
-
-			public Iterator iterator() {
-				return toList().iterator();
-			}
-
-			public int size() {
-				return getSelectedStructures().length;
-			}
-
-			public Object[] toArray() {
-				return getSelectedStructures();
-			}
-
-			public List toList() {
-				return Arrays.asList(getSelectedStructures());
-			}
-
-			public String toString() {
-				return fInternalTextSelection.getOffset() + ":" + fInternalTextSelection.getLength() + "@" + getSelectedStructures(); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-
-
-			private static class InternalTextSelection implements ITextSelection {
-
-
-				private WeakReference weakDocument;
-
-				/** Offset of the selection */
-				private int fOffset;
-				/** Length of the selection */
-				private int fLength;
-
-
-				/**
-				 * Creates an empty text selection.
-				 */
-				private InternalTextSelection() {
-					this(null, -1, -1);
-				}
-
-				/**
-				 * Creates a text selection for the given range. This
-				 * selection object describes generically a text range and is
-				 * intended to be an argument for the
-				 * <code>setSelection</code> method of selection providers.
-				 * 
-				 * @param offset
-				 *            the offset of the range
-				 * @param length
-				 *            the length of the range
-				 */
-				InternalTextSelection(int offset, int length) {
-					this(null, offset, length);
-				}
-
-				/**
-				 * Creates a text selection for the given range of the given
-				 * document. This selection object is created by selection
-				 * providers in responds <code>getSelection</code>.
-				 * 
-				 * @param document
-				 *            the document whose text range is selected in a
-				 *            viewer
-				 * @param offset
-				 *            the offset of the selected range
-				 * @param length
-				 *            the length of the selected range
-				 */
-				InternalTextSelection(IDocument document, int offset, int length) {
-					weakDocument = new WeakReference(document);
-					fOffset = offset;
-					fLength = length;
-				}
-
-				/**
-				 * 
-				 * Returns true if the offset and length are smaller than 0. A
-				 * selection of length 0, is a valid text selection as it
-				 * describes, e.g., the cursor position in a viewer.
-				 * 
-				 * @return <code>true</code> if this selection is empty
-				 * @see org.eclipse.jface.viewers.ISelection#isEmpty()
-				 */
-				public boolean isEmpty() {
-					return fOffset < 0 || fLength < 0;
-				}
-
-				/*
-				 * @see org.eclipse.jface.text.ITextSelection#getOffset()
-				 */
-				public int getOffset() {
-					return fOffset;
-				}
-
-				/*
-				 * @see org.eclipse.jface.text.ITextSelection#getLength()
-				 */
-				public int getLength() {
-					return fLength;
-				}
-
-				/*
-				 * @see org.eclipse.jface.text.ITextSelection#getStartLine()
-				 */
-				public int getStartLine() {
-
-					IDocument document = (IDocument) weakDocument.get();
-					try {
-						if (document != null)
-							return document.getLineOfOffset(fOffset);
-					}
-					catch (BadLocationException x) {
-					}
-
-					return -1;
-				}
-
-				/*
-				 * @see org.eclipse.jface.text.ITextSelection#getEndLine()
-				 */
-				public int getEndLine() {
-					IDocument document = (IDocument) weakDocument.get();
-					try {
-						if (document != null) {
-							int endOffset = fOffset + fLength;
-							if (fLength != 0)
-								endOffset--;
-							return document.getLineOfOffset(endOffset);
-						}
-					}
-					catch (BadLocationException x) {
-					}
-
-					return -1;
-				}
-
-				/*
-				 * @see org.eclipse.jface.text.ITextSelection#getText()
-				 */
-				public String getText() {
-					IDocument document = (IDocument) weakDocument.get();
-					try {
-						if (document != null)
-							return document.get(fOffset, fLength);
-					}
-					catch (BadLocationException x) {
-					}
-
-					return null;
-				}
-
-				/*
-				 * @see java.lang.Object#equals(Object)
-				 */
-				public boolean equals(Object obj) {
-					if (obj == this)
-						return true;
-
-					if (obj == null || getClass() != obj.getClass())
-						return false;
-
-					InternalTextSelection s = (InternalTextSelection) obj;
-					boolean sameRange = (s.fOffset == fOffset && s.fLength == fLength);
-					if (sameRange) {
-
-						IDocument document = (IDocument) weakDocument.get();
-						IDocument sDocument = s.getDocument();
-
-						// ISSUE: why does not IDocument .equals suffice?
-						if (sDocument == null && document == null)
-							return true;
-						if (sDocument == null || document == null)
-							return false;
-
-						try {
-							// ISSUE: pricey! (a cached hash might be in order, if this 
-							// was ever really ever used very often.
-							String sContent = sDocument.get(fOffset, fLength);
-							String content = document.get(fOffset, fLength);
-							return sContent.equals(content);
-						}
-						catch (BadLocationException x) {
-							// return false, can not be equal
-						}
-					}
-
-					return false;
-				}
-
-				/*
-				 * @see java.lang.Object#hashCode()
-				 */
-				public int hashCode() {
-					IDocument document = (IDocument) weakDocument.get();
-					int low = document != null ? document.hashCode() : 0;
-					return (fOffset << 24) | (fLength << 16) | low;
-				}
-
-				private IDocument getDocument() {
-					if (weakDocument == null)
-						return null;
-					return (IDocument) weakDocument.get();
-				}
-			}
-
-			public int getOffset() {
-				return fInternalTextSelection.getOffset();
-			}
-
-
-			public int getLength() {
-				return fInternalTextSelection.getLength();
-			}
-
-			public int getStartLine() {
-				return fInternalTextSelection.getStartLine();
-			}
-
-			public int getEndLine() {
-				return fInternalTextSelection.getEndLine();
-			}
-
-			public String getText() {
-				return fInternalTextSelection.getText();
-			}
-		}
-
-		private WeakReference weakDocument;
-		private ISelectionProvider fParentProvider = null;
-		private boolean isFiringSelection = false;
-		private ListenerList listeners = new ListenerList();
-		private ListenerList postListeners = new ListenerList();
-		private ISelection fLastSelection = null;
-		private ISelectionProvider fLastSelectionProvider = null;
-		private SelectionChangedEvent fLastUpdatedSelectionChangedEvent = null;
-		private WeakReference weakEditor;
-
-
-		StructuredSelectionProvider(ISelectionProvider parentProvider, StructuredTextEditor structuredTextEditor) {
-			fParentProvider = parentProvider;
-			weakEditor = new WeakReference(structuredTextEditor);
-			IDocument document = structuredTextEditor.getDocumentProvider().getDocument(structuredTextEditor.getEditorInput());
-			if (document != null) {
-				setDocument(document);
-			}
-			fParentProvider.addSelectionChangedListener(new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					handleSelectionChanged(event);
-				}
-			});
-			if (fParentProvider instanceof IPostSelectionProvider) {
-				((IPostSelectionProvider) fParentProvider).addPostSelectionChangedListener(new ISelectionChangedListener() {
-					public void selectionChanged(SelectionChangedEvent event) {
-						handlePostSelectionChanged(event);
-					}
-				});
-			}
-		}
-
-		public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
-			postListeners.add(listener);
-		}
-
-		public void addSelectionChangedListener(ISelectionChangedListener listener) {
-			listeners.add(listener);
-		}
-
-		private void fireSelectionChanged(final SelectionChangedEvent event, ListenerList listenerList) {
-			Object[] listeners = listenerList.getListeners();
-			isFiringSelection = true;
-			for (int i = 0; i < listeners.length; ++i) {
-				final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
-				SafeRunner.run(new SafeRunnable() {
-					public void run() {
-						l.selectionChanged(event);
-					}
-				});
-			}
-			isFiringSelection = false;
-		}
-
-		private ISelectionProvider getParentProvider() {
-			return fParentProvider;
-		}
-
-		public ISelection getSelection() {
-			fLastSelection = null;
-			fLastSelectionProvider = null;
-			fLastUpdatedSelectionChangedEvent = null;
-
-			/*
-			 * When a client explicitly asks for selection, provide the hybrid
-			 * result.
-			 */
-			ISelection selection = getParentProvider().getSelection();
-			if (!(selection instanceof IStructuredSelection) && selection instanceof ITextSelection) {
-				IStructuredModel model = null;
-				StructuredTextEditor localEditor = getStructuredTextEditor();
-				if (localEditor != null) {
-					model = localEditor.getModel();
-					selection = new StructuredTextSelection((ITextSelection) selection, getDocument(), model);
-				}
-				else {
-					selection = new StructuredTextSelection((ITextSelection) selection, getDocument(), null);
-				}
-			}
-			return selection;
-		}
-
-		private StructuredTextEditor getStructuredTextEditor() {
-			StructuredTextEditor editor = null;
-			if (weakEditor != null) {
-				editor = (StructuredTextEditor) weakEditor.get();
-			}
-			return editor;
-		}
-
-		void handlePostSelectionChanged(SelectionChangedEvent event) {
-			SelectionChangedEvent updatedEvent = null;
-			if (fLastSelection == event.getSelection() && fLastSelectionProvider == event.getSelectionProvider()) {
-				updatedEvent = fLastUpdatedSelectionChangedEvent;
-			}
-			else {
-				updatedEvent = updateEvent(event);
-			}
-			// only update the range indicator on post selection
-			StructuredTextEditor localEditor = (StructuredTextEditor) weakEditor.get();
-
-			if (localEditor != null) {
-				localEditor.updateRangeIndication(updatedEvent.getSelection());
-				fireSelectionChanged(updatedEvent, postListeners);
-			}
-		}
-
-		void handleSelectionChanged(SelectionChangedEvent event) {
-			SelectionChangedEvent updatedEvent = event;
-			if (fLastSelection != event.getSelection() || fLastSelectionProvider != event.getSelectionProvider()) {
-				fLastSelection = event.getSelection();
-				fLastSelectionProvider = event.getSelectionProvider();
-				fLastUpdatedSelectionChangedEvent = updatedEvent = updateEvent(event);
-			}
-			fireSelectionChanged(updatedEvent, listeners);
-		}
-
-		IDocument getDocument() {
-			IDocument document = null;
-			if (weakDocument != null) {
-				document = (IDocument) weakDocument.get();
-			}
-			return document;
-		}
-
-
-		boolean isFiringSelection() {
-			return isFiringSelection;
-		}
-
-		public boolean isValid(ISelection selection) {
-			// ISSUE: is not clear default behavior should be true?
-			// But not clear is this default would apply for our editor.
-			boolean result = true;
-			// if editor is "gone", can not be valid
-			StructuredTextEditor e = getStructuredTextEditor(); 
-			if (e == null || e.fEditorDisposed) {
-				result = false;
-			}
-			// else defer to parent
-			else if (getParentProvider() instanceof ISelectionValidator) {
-				result = ((ISelectionValidator) getParentProvider()).isValid(selection);
-			}
-			return result;
-		}
-
-		public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
-			postListeners.remove(listener);
-		}
-
-		public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-			listeners.remove(listener);
-		}
-
-		public void setSelection(ISelection selection) {
-			if (isFiringSelection()) {
-				return;
-			}
-
-			fLastSelection = null;
-			fLastSelectionProvider = null;
-			fLastUpdatedSelectionChangedEvent = null;
-
-			ISelection textSelection = updateSelection(selection);
-			getParentProvider().setSelection(textSelection);
-			StructuredTextEditor localEditor = getStructuredTextEditor();
-			if (localEditor != null) {
-				localEditor.updateRangeIndication(textSelection);
-			}
-		}
-
-		/**
-		 * Create a corresponding event that contains a
-		 * StructuredTextselection
-		 * 
-		 * @param event
-		 * @return
-		 */
-		private SelectionChangedEvent updateEvent(SelectionChangedEvent event) {
-			ISelection selection = event.getSelection();
-			if (selection instanceof ITextSelection && !(selection instanceof IStructuredSelection)) {
-				IStructuredModel structuredModel = null;
-				StructuredTextEditor localEditor = getStructuredTextEditor();
-				if (localEditor != null) {
-					structuredModel = localEditor.getInternalModel();
-				}
-				selection = new StructuredTextSelection((ITextSelection) event.getSelection(), getDocument(), structuredModel);
-			}
-			SelectionChangedEvent newEvent = new SelectionChangedEvent(event.getSelectionProvider(), selection);
-			return newEvent;
-		}
-
-		/**
-		 * Create a corresponding StructuredTextselection
-		 * 
-		 * @param selection
-		 * @return
-		 */
-		private ISelection updateSelection(ISelection selection) {
-			ISelection updated = selection;
-			if (selection instanceof IStructuredSelection && !(selection instanceof ITextSelection) && !selection.isEmpty()) {
-				Object[] selectedObjects = ((IStructuredSelection) selection).toArray();
-				if (selectedObjects.length > 0) {
-					int start = -1;
-					int length = 0;
-
-					// no ordering is guaranteed for multiple selection
-					Object o = selectedObjects[0];
-					if (o instanceof IndexedRegion) {
-						start = ((IndexedRegion) o).getStartOffset();
-						int end = ((IndexedRegion) o).getEndOffset();
-						if (selectedObjects.length > 1) {
-							for (int i = 1; i < selectedObjects.length; i++) {
-								start = Math.min(start, ((IndexedRegion) selectedObjects[i]).getStartOffset());
-								end = Math.max(end, ((IndexedRegion) selectedObjects[i]).getEndOffset());
-							}
-							length = end - start;
-						}
-					}
-					else if (o instanceof ITextRegion) {
-						start = ((ITextRegion) o).getStart();
-						int end = ((ITextRegion) o).getEnd();
-						if (selectedObjects.length > 1) {
-							for (int i = 1; i < selectedObjects.length; i++) {
-								start = Math.min(start, ((ITextRegion) selectedObjects[i]).getStart());
-								end = Math.max(end, ((ITextRegion) selectedObjects[i]).getEnd());
-							}
-							length = end - start;
-						}
-					}
-
-					if (start > -1) {
-						updated = new StructuredTextSelection(getDocument(), start, length, selectedObjects);
-					}
-				}
-			}
-			return updated;
-		}
-
-		public void setDocument(IDocument document) {
-			weakDocument = new WeakReference(document);
-		}
-	}
-
-	class TimeOutExpired extends TimerTask {
-		public void run() {
-			getDisplay().syncExec(new Runnable() {
-				public void run() {
-					if (getDisplay() != null && !getDisplay().isDisposed())
-						endBusyStateInternal();
-				}
-			});
-		}
-
-	}
-
-	private class ConfigurationAndTarget {
-		private String fTargetId;
-		private StructuredTextViewerConfiguration fConfiguration;
-
-		public ConfigurationAndTarget(String targetId, StructuredTextViewerConfiguration config) {
-			fTargetId = targetId;
-			fConfiguration = config;
-		}
-
-		public String getTargetId() {
-			return fTargetId;
-		}
-
-		public StructuredTextViewerConfiguration getConfiguration() {
-			return fConfiguration;
-		}
-	}
-
-	/**
-	 * This action behaves in two different ways: If there is no current text
-	 * hover, the javadoc is displayed using information presenter. If there
-	 * is a current text hover, it is converted into a information presenter
-	 * in order to make it sticky.
-	 * 
-	 * @see org.eclipse.jdt.internal.ui.javaeditor.JavaEditor#InformationDispatchAction
-	 */
-	class InformationDispatchAction extends TextEditorAction {
-
-		/** The wrapped text operation action. */
-		private final TextOperationAction fTextOperationAction;
-
-		/**
-		 * Creates a dispatch action.
-		 * 
-		 * @param resourceBundle
-		 *            the resource bundle
-		 * @param prefix
-		 *            the prefix
-		 * @param textOperationAction
-		 *            the text operation action
-		 */
-		public InformationDispatchAction(ResourceBundle resourceBundle, String prefix, final TextOperationAction textOperationAction) {
-			super(resourceBundle, prefix, StructuredTextEditor.this);
-			if (textOperationAction == null)
-				throw new IllegalArgumentException();
-			fTextOperationAction = textOperationAction;
-		}
-
-		/*
-		 * @see org.eclipse.jface.action.IAction#run()
-		 */
-		public void run() {
-			ISourceViewer sourceViewer = getSourceViewer();
-			if (sourceViewer == null) {
-				fTextOperationAction.run();
-				return;
-			}
-
-			if (sourceViewer instanceof ITextViewerExtension4) {
-				ITextViewerExtension4 extension4 = (ITextViewerExtension4) sourceViewer;
-				if (extension4.moveFocusToWidgetToken())
-					return;
-			}
-
-			if (!(sourceViewer instanceof ITextViewerExtension2)) {
-				fTextOperationAction.run();
-				return;
-			}
-
-			ITextViewerExtension2 textViewerExtension2 = (ITextViewerExtension2) sourceViewer;
-
-			// does a text hover exist?
-			ITextHover textHover = textViewerExtension2.getCurrentTextHover();
-			if (textHover == null) {
-				fTextOperationAction.run();
-				return;
-			}
-
-			Point hoverEventLocation = textViewerExtension2.getHoverEventLocation();
-			int offset = computeOffsetAtLocation(sourceViewer, hoverEventLocation.x, hoverEventLocation.y);
-			if (offset == -1) {
-				fTextOperationAction.run();
-				return;
-			}
-
-			try {
-				// get the text hover content
-				String contentType = TextUtilities.getContentType(sourceViewer.getDocument(), IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING, offset, true);
-
-				IRegion hoverRegion = textHover.getHoverRegion(sourceViewer, offset);
-				if (hoverRegion == null)
-					return;
-
-				String hoverInfo = textHover.getHoverInfo(sourceViewer, hoverRegion);
-
-				IInformationControlCreator controlCreator = null;
-				if (textHover instanceof IInformationProviderExtension2)
-					controlCreator = ((IInformationProviderExtension2) textHover).getInformationPresenterControlCreator();
-
-				IInformationProvider informationProvider = new InformationProvider(hoverRegion, hoverInfo, controlCreator);
-
-				fInformationPresenter.setOffset(offset);
-				fInformationPresenter.setDocumentPartitioning(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING);
-				fInformationPresenter.setInformationProvider(informationProvider, contentType);
-				fInformationPresenter.showInformation();
-
-			}
-			catch (BadLocationException e) {
-				// No good information to display
-			}
-		}
-
-		// modified version from TextViewer
-		private int computeOffsetAtLocation(ITextViewer textViewer, int x, int y) {
-
-			StyledText styledText = textViewer.getTextWidget();
-			IDocument document = textViewer.getDocument();
-
-			if (document == null)
-				return -1;
-
-			try {
-				int widgetLocation = styledText.getOffsetAtLocation(new Point(x, y));
-				if (textViewer instanceof ITextViewerExtension5) {
-					ITextViewerExtension5 extension = (ITextViewerExtension5) textViewer;
-					return extension.widgetOffset2ModelOffset(widgetLocation);
-				}
-				else {
-					IRegion visibleRegion = textViewer.getVisibleRegion();
-					return widgetLocation + visibleRegion.getOffset();
-				}
-			}
-			catch (IllegalArgumentException e) {
-				return -1;
-			}
-
-		}
-	}
-
-	/**
-	 * Not API. May be removed in the future.
-	 */
-	protected final static char[] BRACKETS = {'{', '}', '(', ')', '[', ']'};
-
-	private static final long BUSY_STATE_DELAY = 1000;
-	/**
-	 * Not API. May be removed in the future.
-	 */
-	protected static final String DOT = "."; //$NON-NLS-1$
-	private static final String EDITOR_CONTEXT_MENU_ID = "org.eclipse.wst.sse.ui.StructuredTextEditor.EditorContext"; //$NON-NLS-1$
-	private static final String EDITOR_CONTEXT_MENU_SUFFIX = ".source.EditorContext"; //$NON-NLS-1$
-	/** Non-NLS strings */
-	private static final String EDITOR_KEYBINDING_SCOPE_ID = "org.eclipse.wst.sse.ui.structuredTextEditorScope"; //$NON-NLS-1$
-	/**
-	 * Not API. May be removed in the future.
-	 */
-	public static final String GROUP_NAME_ADDITIONS = "additions"; //$NON-NLS-1$
-	/**
-	 * Not API. May be removed in the future.
-	 */
-	public static final String GROUP_NAME_FORMAT = "Format"; //$NON-NLS-1$
-	/**
-	 * Not API. May be removed in the future.
-	 */
-	public static final String GROUP_NAME_FORMAT_EXT = "Format.ext"; //$NON-NLS-1$
-
-	private static final String REDO_ACTION_DESC = SSEUIMessages.Redo___0___UI_; //$NON-NLS-1$ = "Redo: {0}."
-	private static final String REDO_ACTION_DESC_DEFAULT = SSEUIMessages.Redo_Text_Change__UI_; //$NON-NLS-1$ = "Redo Text Change."
-	private static final String REDO_ACTION_TEXT = SSEUIMessages._Redo__0___Ctrl_Y_UI_; //$NON-NLS-1$ = "&Redo {0} @Ctrl+Y"
-	private static final String REDO_ACTION_TEXT_DEFAULT = SSEUIMessages._Redo_Text_Change__Ctrl_Y_UI_; //$NON-NLS-1$ = "&Redo Text Change @Ctrl+Y"
-	private static final String RULER_CONTEXT_MENU_ID = "org.eclipse.wst.sse.ui.StructuredTextEditor.RulerContext"; //$NON-NLS-1$
-	private static final String RULER_CONTEXT_MENU_SUFFIX = ".source.RulerContext"; //$NON-NLS-1$
-
-	private final static String UNDERSCORE = "_"; //$NON-NLS-1$
-	/** Translatable strings */
-	private static final String UNDO_ACTION_DESC = SSEUIMessages.Undo___0___UI_; //$NON-NLS-1$ = "Undo: {0}."
-
-	private static final String UNDO_ACTION_DESC_DEFAULT = SSEUIMessages.Undo_Text_Change__UI_; //$NON-NLS-1$ = "Undo Text Change."
-	private static final String UNDO_ACTION_TEXT = SSEUIMessages._Undo__0___Ctrl_Z_UI_; //$NON-NLS-1$ = "&Undo {0} @Ctrl+Z"
-	private static final String UNDO_ACTION_TEXT_DEFAULT = SSEUIMessages._Undo_Text_Change__Ctrl_Z_UI_; //$NON-NLS-1$ = "&Undo Text Change @Ctrl+Z"
-	// development time/debug variables only
-	private int adapterRequests;
-
-	private long adapterTime;
-	private boolean fBackgroundJobEnded;
-	private boolean fBusyState;
-	private Timer fBusyTimer;
-	Runnable fCurrentRunnable = null;
-	boolean fDirtyBeforeDocumentEvent = false;
-	private ExtendedEditorDropTargetAdapter fDropAdapter;
-	private DropTarget fDropTarget;
-	boolean fEditorDisposed = false;
-	private IEditorPart fEditorPart;
-	private IDocumentListener fInternalDocumentListener;
-	private InternalModelStateListener fInternalModelStateListener;
-	private MouseTracker fMouseTracker;
-	private IContentOutlinePage fOutlinePage;
-
-	private OutlinePageListener fOutlinePageListener = null;
-	/** This editor's projection model updater */
-	private IStructuredTextFoldingProvider fProjectionModelUpdater;
-	/** This editor's projection support */
-	private ProjectionSupport fProjectionSupport;
-	private IPropertySheetPage fPropertySheetPage;
-	private String fRememberTitle;
-	/** The ruler context menu to be disposed. */
-	private Menu fRulerContextMenu;
-	/** The ruler context menu manager to be disposed. */
-	private MenuManager fRulerContextMenuManager;
-
-	String[] fShowInTargetIds = new String[]{IPageLayout.ID_RES_NAV};
-
-	private IAction fShowPropertiesAction = null;
-	private IStructuredModel fStructuredModel;
-	StructuredSelectionProvider fStructuredSelectionProvider = null;
-	/** The text context menu to be disposed. */
-	private Menu fTextContextMenu;
-	/** The text context menu manager to be disposed. */
-	private MenuManager fTextContextMenuManager;
-	private String fViewerConfigurationTargetId;
-	/** The selection history of the editor */
-	private SelectionHistory fSelectionHistory;
-	/** The information presenter. */
-	private InformationPresenter fInformationPresenter;
-	private boolean fUpdateMenuTextPending;
-	int hoverX = -1;
-	int hoverY = -1;
-
-	private boolean shouldClose = false;
-	private long startPerfTime;
-	private boolean fisReleased;
-	/**
-	 * The action group for folding.
-	 */
-	private FoldingActionGroup fFoldingGroup;
-
-	/**
-	 * Creates a new Structured Text Editor.
-	 */
-	public StructuredTextEditor() {
-		super();
-		initializeDocumentProvider(null);
-	}
-
-	private void aboutToSaveModel() {
-		if (getInternalModel() != null) {
-			getInternalModel().aboutToChangeModel();
-		}
-	}
-
-	private void abstractTextEditorContextMenuAboutToShow(IMenuManager menu) {
-		menu.add(new Separator(ITextEditorActionConstants.GROUP_UNDO));
-		menu.add(new GroupMarker(ITextEditorActionConstants.GROUP_SAVE));
-		menu.add(new Separator(ITextEditorActionConstants.GROUP_COPY));
-		menu.add(new Separator(ITextEditorActionConstants.GROUP_PRINT));
-		menu.add(new Separator(ITextEditorActionConstants.GROUP_EDIT));
-		menu.add(new Separator(ITextEditorActionConstants.GROUP_FIND));
-		menu.add(new Separator(IWorkbenchActionConstants.GROUP_ADD));
-		menu.add(new Separator(ITextEditorActionConstants.GROUP_REST));
-		menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-
-		if (isEditable()) {
-			addAction(menu, ITextEditorActionConstants.GROUP_UNDO, ITextEditorActionConstants.UNDO);
-			addAction(menu, ITextEditorActionConstants.GROUP_UNDO, ITextEditorActionConstants.REVERT_TO_SAVED);
-			addAction(menu, ITextEditorActionConstants.GROUP_SAVE, ITextEditorActionConstants.SAVE);
-			addAction(menu, ITextEditorActionConstants.GROUP_COPY, ITextEditorActionConstants.CUT);
-			addAction(menu, ITextEditorActionConstants.GROUP_COPY, ITextEditorActionConstants.COPY);
-			addAction(menu, ITextEditorActionConstants.GROUP_COPY, ITextEditorActionConstants.PASTE);
-		}
-		else {
-			addAction(menu, ITextEditorActionConstants.GROUP_COPY, ITextEditorActionConstants.COPY);
-		}
-
-		// from AbstractDecoratedTextEditor
-		IAction preferencesAction = getAction(ITextEditorActionConstants.CONTEXT_PREFERENCES);
-		menu.appendToGroup(IWorkbenchActionConstants.MB_ADDITIONS, new Separator(ITextEditorActionConstants.GROUP_SETTINGS));
-		menu.appendToGroup(ITextEditorActionConstants.GROUP_SETTINGS, preferencesAction);
-	}
-
-	protected void addContextMenuActions(IMenuManager menu) {
-		// Only offer actions that affect the text if the viewer allows
-		// modification and supports any of these operations
-		IAction formatAll = getAction(StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_DOCUMENT);
-		IAction formatSelection = getAction(StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_ACTIVE_ELEMENTS);
-		IAction cleanupAll = getAction(StructuredTextEditorActionConstants.ACTION_NAME_CLEANUP_DOCUMENT);
-		boolean enableFormatMenu = (formatAll != null && formatAll.isEnabled()) || (formatSelection != null && formatSelection.isEnabled()) || (cleanupAll != null && cleanupAll.isEnabled());
-
-		if (getSourceViewer().isEditable() && enableFormatMenu) {
-			String label = SSEUIMessages.FormatMenu_label; //$NON-NLS-1$ = "Format"
-			MenuManager subMenu = new MenuManager(label, GROUP_NAME_FORMAT);
-			subMenu.add(new GroupMarker(GROUP_NAME_FORMAT_EXT));
-			addAction(subMenu, StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_DOCUMENT);
-			addAction(subMenu, StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_ACTIVE_ELEMENTS);
-			subMenu.add(new GroupMarker(GROUP_NAME_ADDITIONS));
-			addAction(menu, ITextEditorActionConstants.GROUP_EDIT, StructuredTextEditorActionConstants.ACTION_NAME_CLEANUP_DOCUMENT);
-			menu.appendToGroup(ITextEditorActionConstants.GROUP_EDIT, subMenu);
-		}
-
-		// Some Design editors (DTD) rely on this view for their own uses
-		menu.appendToGroup(IWorkbenchActionConstants.GROUP_ADD, fShowPropertiesAction);
-	}
-
-	private void addExtendedContextMenuActions(IMenuManager menu) {
-		IEditorActionBarContributor c = getEditorSite().getActionBarContributor();
-		if (c instanceof IPopupMenuContributor) {
-			((IPopupMenuContributor) c).contributeToPopupMenu(menu);
-		}
-		else {
-			ExtendedEditorActionBuilder builder = new ExtendedEditorActionBuilder();
-			IExtendedContributor pmc = builder.readActionExtensions(getConfigurationPoints());
-			if (pmc != null) {
-				pmc.setActiveEditor(this);
-				pmc.contributeToPopupMenu(menu);
-			}
-		}
-	}
-
-	protected void addExtendedRulerContextMenuActions(IMenuManager menu) {
-		// none at this level
-	}
-
-
-
-	/**
-	 * Starts background mode.
-	 * <p>
-	 * Not API. May be removed in the future.
-	 * </p>
-	 */
-	void beginBackgroundOperation() {
-		fBackgroundJobEnded = false;
-		// if already in busy state, no need to do anything
-		// and, we only start, or reset, the timed busy
-		// state when we get the "endBackgroundOperation" call.
-		if (!inBusyState()) {
-			beginBusyStateInternal();
-		}
-	}
-
-	private void beginBusyStateInternal() {
-
-		fBusyState = true;
-		startBusyTimer();
-
-		ISourceViewer viewer = getSourceViewer();
-		if (viewer instanceof StructuredTextViewer) {
-			((StructuredTextViewer) viewer).beginBackgroundUpdate();
-
-		}
-		showBusy(true);
-	}
-
-	// private void addFindOccurrencesAction(String matchType, String
-	// matchText, IMenuManager menu) {
-	//
-	// AbstractFindOccurrencesAction action = new
-	// AbstractFindOccurrencesAction(getFileInEditor(), new
-	// SearchUIConfiguration(), (IStructuredDocument) getDocument(),
-	// matchType, matchText, getProgressMonitor());
-	// action.setText("Occurrences of \"" + matchText + "\" in File");
-	// menu.appendToGroup(ITextEditorActionConstants.GROUP_EDIT, action);
-	// }
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.ITextEditor#close(boolean)
-	 */
-	public void close(final boolean save) {
-		/*
-		 * Instead of us closing directly, we have to close with our
-		 * containing (multipage) editor, if it exists.
-		 */
-		if (getSite() == null) {
-			// if site hasn't been set yet, then we're not
-			// completely open
-			// so set a flag not to open
-			shouldClose = true;
-		}
-		else {
-			if (getEditorPart() != null) {
-				Display display = getSite().getShell().getDisplay();
-				display.asyncExec(new Runnable() {
-
-					public void run() {
-						getSite().getPage().closeEditor(getEditorPart(), save);
-					}
-				});
-			}
-			else {
-				super.close(save);
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#collectContextMenuPreferencePages()
-	 */
-	protected String[] collectContextMenuPreferencePages() {
-		List allIds = new ArrayList(0);
-
-		// get contributed preference pages
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] configurationIds = getConfigurationPoints();
-		for (int i = 0; i < configurationIds.length; i++) {
-			String[] definitions = builder.getDefinitions("preferencepages", configurationIds[i]); //$NON-NLS-1$
-			for (int j = 0; j < definitions.length; j++) {
-				String someIds = definitions[j];
-				if (someIds != null && someIds.length() > 0) {
-					// supports multiple comma-delimited page IDs in one
-					// element
-					String[] ids = StringUtils.unpack(someIds);
-					for (int k = 0; k < ids.length; k++) {
-						// trim, just to keep things clean
-						String id = ids[k].trim();
-						if (!allIds.contains(id)) {
-							allIds.add(id);
-						}
-					}
-				}
-			}
-		}
-
-		// add pages contributed by super
-		String[] superPages = super.collectContextMenuPreferencePages();
-		for (int m = 0; m < superPages.length; m++) {
-			// trim, just to keep things clean
-			String id = superPages[m].trim();
-			if (!allIds.contains(id)) {
-				allIds.add(id);
-			}
-		}
-
-		return (String[]) allIds.toArray(new String[0]);
-	}
-
-	/**
-	 * Compute and set double-click action for the vertical ruler
-	 */
-	private void computeAndSetDoubleClickAction() {
-		/*
-		 * Make double-clicking on the ruler toggle a breakpoint instead of
-		 * toggling a bookmark. For lines where a breakpoint won't be created,
-		 * create a bookmark through the contributed RulerDoubleClick action.
-		 */
-		setAction(ITextEditorActionConstants.RULER_DOUBLE_CLICK, new ToggleBreakpointAction(this, getVerticalRuler(), getAction(ITextEditorActionConstants.RULER_DOUBLE_CLICK)));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.ExtendedTextEditor#configureSourceViewerDecorationSupport(org.eclipse.ui.texteditor.SourceViewerDecorationSupport)
-	 */
-	protected void configureSourceViewerDecorationSupport(SourceViewerDecorationSupport support) {
-		support.setCharacterPairMatcher(createCharacterPairMatcher());
-		support.setMatchingCharacterPainterPreferenceKeys(EditorPreferenceNames.MATCHING_BRACKETS, EditorPreferenceNames.MATCHING_BRACKETS_COLOR);
-
-		super.configureSourceViewerDecorationSupport(support);
-	}
-
-	protected void createActions() {
-		super.createActions();
-		ResourceBundle resourceBundle = SSEUIMessages.getResourceBundle();
-		IWorkbenchHelpSystem helpSystem = SSEUIPlugin.getDefault().getWorkbench().getHelpSystem();
-		// TextView Action - moving the selected text to
-		// the clipboard
-		// override the cut/paste/delete action to make
-		// them run on read-only
-		// files
-		Action action = new TextOperationAction(resourceBundle, "Editor_Cut_", this, ITextOperationTarget.CUT, true); //$NON-NLS-1$
-		action.setActionDefinitionId(IWorkbenchActionDefinitionIds.CUT);
-		setAction(ITextEditorActionConstants.CUT, action);
-		helpSystem.setHelp(action, IAbstractTextEditorHelpContextIds.CUT_ACTION);
-		// TextView Action - inserting the clipboard
-		// content at the current
-		// position
-		// override the cut/paste/delete action to make
-		// them run on read-only
-		// files
-		action = new TextOperationAction(resourceBundle, "Editor_Paste_", this, ITextOperationTarget.PASTE, true); //$NON-NLS-1$
-		action.setActionDefinitionId(IWorkbenchActionDefinitionIds.PASTE);
-		setAction(ITextEditorActionConstants.PASTE, action);
-		helpSystem.setHelp(action, IAbstractTextEditorHelpContextIds.PASTE_ACTION);
-		// TextView Action - deleting the selected text or
-		// if selection is
-		// empty the character at the right of the current
-		// position
-		// override the cut/paste/delete action to make
-		// them run on read-only
-		// files
-		action = new TextOperationAction(resourceBundle, "Editor_Delete_", this, ITextOperationTarget.DELETE, true); //$NON-NLS-1$
-		action.setActionDefinitionId(IWorkbenchActionDefinitionIds.DELETE);
-		setAction(ITextEditorActionConstants.DELETE, action);
-		helpSystem.setHelp(action, IAbstractTextEditorHelpContextIds.DELETE_ACTION);
-		// SourceView Action - requesting information at
-		// the current insertion
-		// position
-		action = new TextOperationAction(SSEUIMessages.getResourceBundle(), StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION + UNDERSCORE, this, ISourceViewer.INFORMATION, true);
-		action = new InformationDispatchAction(SSEUIMessages.getResourceBundle(), StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION + UNDERSCORE, (TextOperationAction) action);
-		action.setActionDefinitionId(ActionDefinitionIds.INFORMATION);
-		setAction(StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION, action);
-		markAsStateDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION, true);
-		// SourceView Action - requesting content assist to
-		// show completetion
-		// proposals for the current insert position
-		action = new TextOperationAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_PROPOSALS + UNDERSCORE, this, ISourceViewer.CONTENTASSIST_PROPOSALS, true);
-		helpSystem.setHelp(action, IHelpContextIds.CONTMNU_CONTENTASSIST_HELPID);
-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
-		setAction(StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_PROPOSALS, action);
-		markAsStateDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_PROPOSALS, true);
-		// SourceView Action - requesting content assist to
-		// show the content
-		// information for the current insert position
-		action = new TextOperationAction(SSEUIMessages.getResourceBundle(), StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_CONTEXT_INFORMATION + UNDERSCORE, this, ISourceViewer.CONTENTASSIST_CONTEXT_INFORMATION);
-		action.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_CONTEXT_INFORMATION);
-		setAction(StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_CONTEXT_INFORMATION, action);
-		markAsStateDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_CONTEXT_INFORMATION, true);
-		// StructuredTextViewer Action - requesting
-		// correction assist to show
-		// correction proposals for the current position
-		action = new TextOperationAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_QUICK_FIX + UNDERSCORE, this, StructuredTextViewer.QUICK_FIX, true);
-		action.setActionDefinitionId(ActionDefinitionIds.QUICK_FIX);
-		setAction(StructuredTextEditorActionConstants.ACTION_NAME_QUICK_FIX, action);
-		markAsStateDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_QUICK_FIX, true);
-		// StructuredTextViewer Action - requesting format
-		// of the whole
-		// document
-		action = new TextOperationAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_DOCUMENT + UNDERSCORE, this, StructuredTextViewer.FORMAT_DOCUMENT);
-		helpSystem.setHelp(action, IHelpContextIds.CONTMNU_FORMAT_DOC_HELPID);
-		action.setActionDefinitionId(ActionDefinitionIds.FORMAT_DOCUMENT);
-		setAction(StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_DOCUMENT, action);
-		markAsStateDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_DOCUMENT, true);
-		markAsSelectionDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_DOCUMENT, true);
-		// StructuredTextViewer Action - requesting format
-		// of the active
-		// elements
-		action = new TextOperationAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_ACTIVE_ELEMENTS + UNDERSCORE, this, StructuredTextViewer.FORMAT_ACTIVE_ELEMENTS);
-		helpSystem.setHelp(action, IHelpContextIds.CONTMNU_FORMAT_ELEMENTS_HELPID);
-		action.setActionDefinitionId(ActionDefinitionIds.FORMAT_ACTIVE_ELEMENTS);
-		setAction(StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_ACTIVE_ELEMENTS, action);
-		markAsStateDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_ACTIVE_ELEMENTS, true);
-		markAsSelectionDependentAction(StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_ACTIVE_ELEMENTS, true);
-
-		// StructuredTextEditor Action - add breakpoints (falling back to the
-		// current double-click if they can't be added)
-		action = new ToggleBreakpointAction(this, getVerticalRuler());
-		setAction(ActionDefinitionIds.TOGGLE_BREAKPOINTS, action);
-		// StructuredTextEditor Action - manage breakpoints
-		action = new ManageBreakpointAction(this, getVerticalRuler());
-		setAction(ActionDefinitionIds.MANAGE_BREAKPOINTS, action);
-		// StructuredTextEditor Action - edit breakpoints
-		action = new EditBreakpointAction(this, getVerticalRuler());
-		setAction(ActionDefinitionIds.EDIT_BREAKPOINTS, action);
-		// StructuredTextViewer Action - open file on selection
-		action = new OpenHyperlinkAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE + UNDERSCORE, this, getSourceViewer());
-		action.setActionDefinitionId(ActionDefinitionIds.OPEN_FILE);
-		setAction(StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE, action);
-
-		computeAndSetDoubleClickAction();
-
-		fShowPropertiesAction = new ShowPropertiesAction();
-		fFoldingGroup = new FoldingActionGroup(this, getSourceViewer());
-	}
-
-	protected LineChangeHover createChangeHover() {
-		return new StructuredLineChangeHover();
-	}
-
-	protected ICharacterPairMatcher createCharacterPairMatcher() {
-		ICharacterPairMatcher matcher = null;
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] ids = getConfigurationPoints();
-		for (int i = 0; matcher == null && i < ids.length; i++) {
-			matcher = (ICharacterPairMatcher) builder.getConfiguration(DocumentRegionEdgeMatcher.ID, ids[i]);
-		}
-		if (matcher == null) {
-			matcher = new ICharacterPairMatcher() {
-
-				public void clear() {
-				}
-
-				public void dispose() {
-				}
-
-				public int getAnchor() {
-					return ICharacterPairMatcher.LEFT;
-				}
-
-				public IRegion match(IDocument iDocument, int i) {
-					return null;
-				}
-			};
-		}
-		return matcher;
-	}
-
-	/**
-	 * Create a preference store that combines the source editor preferences
-	 * with the base editor's preferences.
-	 * 
-	 * @return IPreferenceStore
-	 */
-	private IPreferenceStore createCombinedPreferenceStore() {
-		IPreferenceStore sseEditorPrefs = SSEUIPlugin.getDefault().getPreferenceStore();
-		IPreferenceStore baseEditorPrefs = EditorsUI.getPreferenceStore();
-		return new ChainedPreferenceStore(new IPreferenceStore[]{sseEditorPrefs, baseEditorPrefs});
-	}
-
-	private ContentOutlineConfiguration createContentOutlineConfiguration() {
-		ContentOutlineConfiguration cfg = null;
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] ids = getConfigurationPoints();
-		for (int i = 0; cfg == null && i < ids.length; i++) {
-			cfg = (ContentOutlineConfiguration) builder.getConfiguration(ExtendedConfigurationBuilder.CONTENTOUTLINECONFIGURATION, ids[i]);
-		}
-		return cfg;
-	}
-
-	/**
-	 * Only gets the correction assistant associted with the current source
-	 * viewer configuration.
-	 * 
-	 * @return IContentAssistant or null
-	 */
-	private IContentAssistant createCorrectionAssistant() {
-		IContentAssistant assist = null;
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		CorrectionAssistantProvider provider = (CorrectionAssistantProvider) builder.getConfiguration("correctionassistant", fViewerConfigurationTargetId); //$NON-NLS-1$
-		if (provider != null) {
-			assist = provider.getCorrectionAssistant(getSourceViewer());
-		}
-		return assist;
-	}
-
-	protected void createModelDependentFields() {
-		// none at this level
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * <p>
-	 * Use StructuredTextViewerConfiguration if a viewerconfiguration has not
-	 * already been set. Also initialize StructuredTextViewer.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createPartControl(Composite parent) {
-		if (getSourceViewerConfiguration() == null) {
-			ConfigurationAndTarget cat = createSourceViewerConfiguration();
-			fViewerConfigurationTargetId = cat.getTargetId();
-			StructuredTextViewerConfiguration newViewerConfiguration = cat.getConfiguration();
-			setSourceViewerConfiguration(newViewerConfiguration);
-		}
-
-		super.createPartControl(parent);
-
-		// instead of calling setInput twice, use initializeSourceViewer() to
-		// handle source viewer initialization previously handled by setInput
-		initializeSourceViewer();
-
-		// update editor context menu, vertical ruler context menu, infopop
-		if (getInternalModel() != null) {
-			updateEditorControlsForContentType(getInternalModel().getContentTypeIdentifier());
-		}
-		else {
-			updateEditorControlsForContentType(null);
-		}
-
-		// used for Show Tooltip Description
-		IInformationControlCreator informationControlCreator = new IInformationControlCreator() {
-			public IInformationControl createInformationControl(Shell shell) {
-				boolean cutDown = false;
-				int style = cutDown ? SWT.NONE : (SWT.V_SCROLL | SWT.H_SCROLL);
-				return new DefaultInformationControl(shell, SWT.RESIZE | SWT.TOOL, style, new HTMLTextPresenter(cutDown));
-			}
-		};
-
-		fInformationPresenter = new InformationPresenter(informationControlCreator);
-		fInformationPresenter.setSizeConstraints(60, 10, true, true);
-		fInformationPresenter.install(getSourceViewer());
-	}
-
-	protected PropertySheetConfiguration createPropertySheetConfiguration() {
-		PropertySheetConfiguration cfg = null;
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] ids = getConfigurationPoints();
-		for (int i = 0; cfg == null && i < ids.length; i++) {
-			cfg = (PropertySheetConfiguration) builder.getConfiguration(ExtendedConfigurationBuilder.PROPERTYSHEETCONFIGURATION, ids[i]);
-		}
-		return cfg;
-	}
-
-	/**
-	 * Loads the Show In Target IDs from the Extended Configuration extension
-	 * point.
-	 * 
-	 * @return
-	 */
-	private String[] createShowInTargetIds() {
-		List allIds = new ArrayList(0);
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] configurationIds = getConfigurationPoints();
-		for (int i = 0; i < configurationIds.length; i++) {
-			String[] definitions = builder.getDefinitions("showintarget", configurationIds[i]); //$NON-NLS-1$
-			for (int j = 0; j < definitions.length; j++) {
-				String someIds = definitions[j];
-				if (someIds != null && someIds.length() > 0) {
-					String[] ids = StringUtils.unpack(someIds);
-					for (int k = 0; k < ids.length; k++) {
-						// trim, just to keep things clean
-						String id = ids[k].trim();
-						if (!allIds.contains(id)) {
-							allIds.add(id);
-						}
-					}
-				}
-			}
-		}
-
-		if (!allIds.contains(IPageLayout.ID_RES_NAV)) {
-			allIds.add(IPageLayout.ID_RES_NAV);
-		}
-		if (!allIds.contains(IPageLayout.ID_OUTLINE)) {
-			allIds.add(IPageLayout.ID_OUTLINE);
-		}
-		return (String[]) allIds.toArray(new String[0]);
-	}
-
-	/**
-	 * @return
-	 */
-	private ISourceEditingTextTools createSourceEditingTextTools() {
-		ISourceEditingTextTools tools = null;
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] ids = getConfigurationPoints();
-		for (int i = 0; tools == null && i < ids.length; i++) {
-			tools = (ISourceEditingTextTools) builder.getConfiguration(NullSourceEditingTextTools.ID, ids[i]);
-		}
-		if (tools == null) {
-			tools = NullSourceEditingTextTools.getInstance();
-			((NullSourceEditingTextTools) tools).setTextEditor(this);
-		}
-		Method method = null; //$NON-NLS-1$
-		try {
-			method = tools.getClass().getMethod("setTextEditor", new Class[]{StructuredTextEditor.class}); //$NON-NLS-1$
-		}
-		catch (NoSuchMethodException e) {
-		}
-		if (method == null) {
-			try {
-				method = tools.getClass().getMethod("setTextEditor", new Class[]{ITextEditor.class}); //$NON-NLS-1$
-			}
-			catch (NoSuchMethodException e) {
-			}
-		}
-		if (method == null) {
-			try {
-				method = tools.getClass().getMethod("setTextEditor", new Class[]{IEditorPart.class}); //$NON-NLS-1$
-			}
-			catch (NoSuchMethodException e) {
-			}
-		}
-		if (method != null) {
-			if (!method.isAccessible()) {
-				method.setAccessible(true);
-			}
-			try {
-				method.invoke(tools, new Object[]{this});
-			}
-			catch (Exception e) {
-				Logger.logException("Problem creating ISourceEditingTextTools implementation", e); //$NON-NLS-1$
-			}
-		}
-
-		return tools;
-	}
-
-	/**
-	 * Creates the source viewer to be used by this editor
-	 */
-	protected ISourceViewer createSourceViewer(Composite parent, IVerticalRuler verticalRuler, int styles) {
-		fAnnotationAccess = createAnnotationAccess();
-		fOverviewRuler = createOverviewRuler(getSharedColors());
-		StructuredTextViewer sourceViewer = createStructedTextViewer(parent, verticalRuler, styles);
-		initSourceViewer(sourceViewer);
-		return sourceViewer;
-	}
-
-	private ConfigurationAndTarget createSourceViewerConfiguration() {
-		ConfigurationAndTarget cat = null;
-		StructuredTextViewerConfiguration cfg = null;
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] ids = getConfigurationPoints();
-		for (int i = 0; cfg == null && i < ids.length; i++) {
-			cfg = (StructuredTextViewerConfiguration) builder.getConfiguration(ExtendedConfigurationBuilder.SOURCEVIEWERCONFIGURATION, ids[i]);
-			cat = new ConfigurationAndTarget(ids[i], cfg);
-		}
-		if (cfg == null) {
-			cfg = new StructuredTextViewerConfiguration();
-			String targetid = getClass().getName() + "#default"; //$NON-NLS-1$
-			cat = new ConfigurationAndTarget(targetid, cfg);
-		}
-		return cat;
-	}
-
-	protected StructuredTextViewer createStructedTextViewer(Composite parent, IVerticalRuler verticalRuler, int styles) {
-		return new StructuredTextViewer(parent, verticalRuler, getOverviewRuler(), isOverviewRulerVisible(), styles);
-	}
-
-	protected void createUndoRedoActions() {
-		// overridden to add icons to actions
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=111877
-		super.createUndoRedoActions();
-		IAction action = getAction(ITextEditorActionConstants.UNDO);
-		if (action != null) {
-			action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_UNDO));
-		}
-
-		action = getAction(ITextEditorActionConstants.REDO);
-		if (action != null) {
-			action.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_REDO));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
-	public void dispose() {
-		Logger.trace("Source Editor", "StructuredTextEditor::dispose entry"); //$NON-NLS-1$ //$NON-NLS-2$
-		if (org.eclipse.wst.sse.core.internal.util.Debug.perfTestAdapterClassLoading) {
-			System.out.println("Total calls to getAdapter: " + adapterRequests); //$NON-NLS-1$
-			System.out.println("Total time in getAdapter: " + adapterTime); //$NON-NLS-1$
-			System.out.println("Average time per call: " + (adapterTime / adapterRequests)); //$NON-NLS-1$
-		}
-
-		// dispose of information presenter
-		if (fInformationPresenter != null) {
-			fInformationPresenter.dispose();
-			fInformationPresenter = null;
-		}
-
-		// dispose of selection history
-		if (fSelectionHistory != null) {
-			fSelectionHistory.dispose();
-			fSelectionHistory = null;
-		}
-
-		// dispose of document folding support
-		if (fProjectionModelUpdater != null) {
-			fProjectionModelUpdater.uninstall();
-			fProjectionModelUpdater = null;
-		}
-
-		if (fProjectionSupport != null) {
-			fProjectionSupport.dispose();
-			fProjectionSupport = null;
-		}
-
-		if (fFoldingGroup != null) {
-			fFoldingGroup.dispose();
-			fFoldingGroup = null;
-		}
-
-		// subclass may not have mouse tracker created
-		// need to check for null before stopping
-		if (fMouseTracker != null) {
-			fMouseTracker.stop();
-			fMouseTracker = null;
-		}
-
-		// dispose of menus that were being tracked
-		if (fTextContextMenu != null) {
-			fTextContextMenu.dispose();
-		}
-		if (fRulerContextMenu != null) {
-			fRulerContextMenu.dispose();
-		}
-		if (fTextContextMenuManager != null) {
-			fTextContextMenuManager.removeMenuListener(getContextMenuListener());
-			fTextContextMenuManager.removeAll();
-			fTextContextMenuManager.dispose();
-		}
-		if (fRulerContextMenuManager != null) {
-			fRulerContextMenuManager.removeMenuListener(getContextMenuListener());
-			fRulerContextMenuManager.removeAll();
-			fRulerContextMenuManager.dispose();
-		}
-
-		// added this 2/20/2004 based on probe results --
-		// seems should be handled by setModel(null), but
-		// that's a more radical change.
-		// and, technically speaking, should not be needed,
-		// but makes a memory leak
-		// less severe.
-		if (fStructuredModel != null) {
-			if (fStructuredModel.getStructuredDocument() != null) {
-				fStructuredModel.getStructuredDocument().removeDocumentListener(getInternalDocumentListener());
-			}
-			fStructuredModel.removeModelStateListener(getInternalModelStateListener());
-		}
-
-		// BUG155335 - if there was no document provider, there was nothing added
-		// to document, so nothing to remove
-		if (getDocumentProvider() != null) {
-			IDocument doc = getDocumentProvider().getDocument(getEditorInput());
-			if (doc != null) {
-				doc.removeDocumentListener(getInternalDocumentListener());
-				if (doc instanceof IExecutionDelegatable) {
-					((IExecutionDelegatable) doc).setExecutionDelegate(null);
-				}
-			}
-		}
-
-		// some things in the configuration need to clean
-		// up after themselves
-		if (fOutlinePage != null) {
-			if (fOutlinePage instanceof ConfigurableContentOutlinePage && fOutlinePageListener != null) {
-				((ConfigurableContentOutlinePage) fOutlinePage).removeDoubleClickListener(fOutlinePageListener);
-			}
-			if (fOutlinePageListener != null) {
-				fOutlinePage.removeSelectionChangedListener(fOutlinePageListener);
-			}
-		}
-
-		fEditorDisposed = true;
-		disposeModelDependentFields();
-
-		if (fDropTarget != null)
-			fDropTarget.dispose();
-
-		setPreferenceStore(null);
-
-		// strictly speaking, but following null outs
-		// should not be needed,
-		// but in the event of a memory leak, they make the
-		// memory leak less
-		// severe
-		fDropAdapter = null;
-		fDropTarget = null;
-
-		super.dispose();
-
-		Logger.trace("Source Editor", "StructuredTextEditor::dispose exit"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#disposeDocumentProvider()
-	 */
-	protected void disposeDocumentProvider() {
-		if (fStructuredModel != null && !fisReleased && !(getDocumentProvider() instanceof IModelProvider)) {
-			fStructuredModel.releaseFromEdit();
-			fisReleased = true;
-		}
-		super.disposeDocumentProvider();
-	}
-
-	/**
-	 * Disposes model specific editor helpers such as statusLineHelper.
-	 * Basically any code repeated in update() & dispose() should be placed
-	 * here.
-	 */
-	private void disposeModelDependentFields() {
-		// none at this level
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.ITextEditor#doRevertToSaved()
-	 */
-	public void doRevertToSaved() {
-		super.doRevertToSaved();
-		if (fOutlinePage != null && fOutlinePage instanceof IUpdate) {
-			((IUpdate) fOutlinePage).update();
-		}
-		// reset undo
-		IDocument doc = getDocumentProvider().getDocument(getEditorInput());
-		if (doc instanceof IStructuredDocument) {
-			((IStructuredDocument) doc).getUndoManager().getCommandStack().flush();
-		}
-
-		// update menu text
-		updateMenuText();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor progressMonitor) {
-		try {
-			aboutToSaveModel();
-			updateEncodingMemento();
-			super.doSave(progressMonitor);
-		}
-		finally {
-			savedModel();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#doSetInput(org.eclipse.ui.IEditorInput)
-	 */
-	protected void doSetInput(IEditorInput input) throws CoreException {
-		// TODO: if opened in more than one editor, this will cause
-		// problems.
-		IEditorInput oldInput = getEditorInput();
-		if (oldInput != null) {
-			IDocument olddoc = getDocumentProvider().getDocument(oldInput);
-			if (olddoc != null && olddoc instanceof IExecutionDelegatable) {
-				((IExecutionDelegatable) olddoc).setExecutionDelegate(null);
-			}
-		}
-
-		if (fStructuredModel != null && !(getDocumentProvider() instanceof IModelProvider)) {
-			fStructuredModel.releaseFromEdit();
-		}
-
-		super.doSetInput(input);
-
-		IDocument newDocument = getDocumentProvider().getDocument(input);
-		if (newDocument instanceof IExecutionDelegatable) {
-			((IExecutionDelegatable) newDocument).setExecutionDelegate(new EditorExecutionContext(this));
-		}
-
-		IStructuredModel model = null;
-		// if we have a Model provider, get the model from it
-		if (getDocumentProvider() instanceof IModelProvider) {
-			model = ((IModelProvider) getDocumentProvider()).getModel(getEditorInput());
-			if (!model.isShared()) {
-				EditorModelUtil.addFactoriesTo(model);
-			}
-		}
-		else {
-			if (newDocument instanceof IStructuredDocument) {
-				// corresponding releaseFromEdit occurs in
-				// dispose()
-				model = StructuredModelManager.getModelManager().getModelForEdit((IStructuredDocument) newDocument);
-				EditorModelUtil.addFactoriesTo(model);
-			}
-
-			else {
-				logUnexpectedDocumentKind(input);
-			}
-		}
-
-		if (fStructuredModel != null || model != null) {
-			setModel(model);
-		}
-
-		if (getInternalModel() != null) {
-			updateEditorControlsForContentType(getInternalModel().getContentTypeIdentifier());
-		}
-		else {
-			updateEditorControlsForContentType(null);
-		}
-
-		if (fProjectionModelUpdater != null)
-			fProjectionModelUpdater.initialize();
-
-		// start editor with smart insert mode
-		setInsertMode(SMART_INSERT);
-	}
-
-	/**
-	 * Sets up this editor's context menu before it is made visible.
-	 * <p>
-	 * Not API. May be reduced to protected method in the future.
-	 * </p>
-	 * 
-	 * @param menu
-	 *            the menu
-	 */
-	public void editorContextMenuAboutToShow(IMenuManager menu) {
-		// To be consistant with the Java Editor, we want
-		// to remove
-		// ShiftRight and ShiftLeft from the context menu.
-		//
-		// ShiftRight and ShiftLeft were added in the super
-		// implemenation of
-		// this method. We want to skip it and call
-		// AbstractTextEditor's
-		// implementation directly. The easiest way is to
-		// copy the method here.
-
-		// super.editorContextMenuAboutToShow(menu);
-		abstractTextEditorContextMenuAboutToShow(menu);
-
-		addContextMenuActions(menu);
-		addExtendedContextMenuActions(menu);
-	}
-
-	/**
-	 * End background mode.
-	 * <p>
-	 * Not API. May be removed in the future.
-	 * </p>
-	 */
-	void endBackgroundOperation() {
-		fBackgroundJobEnded = true;
-		// note, we don't immediately end our 'internal busy' state,
-		// since we may get many calls in a short period of
-		// time. We always wait for the time out.
-		resetBusyState();
-	}
-
-	/**
-	 * Note this method can be called indirectly from background job operation
-	 * ... but expected to be gaurded there with ILock, plus, can be called
-	 * directly from timer thread, so the timer's run method guards with ILock
-	 * too.
-	 */
-	private void endBusyStateInternal() {
-		if (fBackgroundJobEnded) {
-			fBusyTimer.cancel();
-			showBusy(false);
-
-			ISourceViewer viewer = getSourceViewer();
-			if (viewer instanceof StructuredTextViewer) {
-				((StructuredTextViewer) viewer).endBackgroundUpdate();
-			}
-			fBusyState = false;
-		}
-		else {
-			// we will only be in this branch for a back ground job that is
-			// taking
-			// longer than our normal time-out period (meaning we got notified
-			// of
-			// the timeout "inbetween" calls to 'begin' and
-			// 'endBackgroundOperation'.
-			// (which, remember, can only happen since there are many calls to
-			// begin/end in a short period of time, and we only "reset" on the
-			// 'ends').
-			// In this event, there's really nothing to do, we're still in
-			// "busy state"
-			// and should start a new reset cycle once endBackgroundjob is
-			// called.
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class required) {
-		if (org.eclipse.wst.sse.core.internal.util.Debug.perfTestAdapterClassLoading) {
-			startPerfTime = System.currentTimeMillis();
-		}
-		Object result = null;
-		// text editor
-		IStructuredModel internalModel = getInternalModel();
-		if (ITextEditor.class.equals(required)) {
-			result = this;
-		}
-		else if (IWorkbenchSiteProgressService.class.equals(required)) {
-			return getEditorPart().getSite().getAdapter(IWorkbenchSiteProgressService.class);
-		}
-		// content outline page
-		else if (IContentOutlinePage.class.equals(required)) {
-			if (fOutlinePage == null || fOutlinePage.getControl() == null || fOutlinePage.getControl().isDisposed()) {
-				ContentOutlineConfiguration cfg = createContentOutlineConfiguration();
-				if (cfg != null) {
-					ConfigurableContentOutlinePage outlinePage = new ConfigurableContentOutlinePage();
-					outlinePage.setConfiguration(cfg);
-					if (internalModel != null) {
-						outlinePage.setInputContentTypeIdentifier(internalModel.getContentTypeIdentifier());
-						outlinePage.setInput(internalModel);
-					}
-
-					if (fOutlinePageListener == null) {
-						fOutlinePageListener = new OutlinePageListener();
-					}
-
-					outlinePage.addSelectionChangedListener(fOutlinePageListener);
-					outlinePage.addDoubleClickListener(fOutlinePageListener);
-
-					fOutlinePage = outlinePage;
-				}
-			}
-			result = fOutlinePage;
-		}
-		// property sheet page, but only if the input's editable
-		else if (IPropertySheetPage.class.equals(required) && isEditable()) {
-			if (fPropertySheetPage == null || fPropertySheetPage.getControl() == null || fPropertySheetPage.getControl().isDisposed()) {
-				PropertySheetConfiguration cfg = createPropertySheetConfiguration();
-				if (cfg != null) {
-					ConfigurablePropertySheetPage propertySheetPage = new ConfigurablePropertySheetPage();
-					propertySheetPage.setConfiguration(cfg);
-					fPropertySheetPage = propertySheetPage;
-				}
-			}
-			result = fPropertySheetPage;
-		}
-		else if (IDocument.class.equals(required)) {
-			result = getDocumentProvider().getDocument(getEditorInput());
-		}
-		else if (ISourceEditingTextTools.class.equals(required)) {
-			result = createSourceEditingTextTools();
-		}
-		else if (IToggleBreakpointsTarget.class.equals(required)) {
-			result = ToggleBreakpointsTarget.getInstance();
-		}
-		else if (IShowInTargetList.class.equals(required)) {
-			return new ShowInTargetListAdapter();
-		}
-		else if (SelectionHistory.class.equals(required)) {
-			if (fSelectionHistory == null)
-				fSelectionHistory = new SelectionHistory(this);
-			return fSelectionHistory;
-		}
-		else {
-			if (result == null && internalModel != null) {
-				result = internalModel.getAdapter(required);
-			}
-			// others
-			if (result == null)
-				result = super.getAdapter(required);
-		}
-		if (org.eclipse.wst.sse.core.internal.util.Debug.perfTestAdapterClassLoading) {
-			long stop = System.currentTimeMillis();
-			adapterRequests++;
-			adapterTime += (stop - startPerfTime);
-		}
-		if (org.eclipse.wst.sse.core.internal.util.Debug.perfTestAdapterClassLoading) {
-			System.out.println("Total calls to getAdapter: " + adapterRequests); //$NON-NLS-1$
-			System.out.println("Total time in getAdapter: " + adapterTime); //$NON-NLS-1$
-			System.out.println("Average time per call: " + (adapterTime / adapterRequests)); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	private String[] getConfigurationPoints() {
-		String contentTypeIdentifierID = null;
-		if (getInternalModel() != null) {
-			contentTypeIdentifierID = getInternalModel().getContentTypeIdentifier();
-		}
-		return ConfigurationPointCalculator.getConfigurationPoints(this, contentTypeIdentifierID, ConfigurationPointCalculator.SOURCE, StructuredTextEditor.class);
-	}
-
-	/**
-	 * added checks to overcome bug such that if we are shutting down in an
-	 * error condition, then viewer will have already been disposed.
-	 */
-	protected String getCursorPosition() {
-		String result = null;
-		// this may be too expensive in terms of
-		// performance, to do this check
-		// every time, just to gaurd against error
-		// condition.
-		// perhaps there's a better way?
-		if (getSourceViewer() != null && getSourceViewer().getTextWidget() != null && !getSourceViewer().getTextWidget().isDisposed()) {
-			result = super.getCursorPosition();
-		}
-		else {
-			result = "0:0"; //$NON-NLS-1$
-		}
-		return result;
-	}
-
-
-	Display getDisplay() {
-		return PlatformUI.getWorkbench().getDisplay();
-	}
-
-	/**
-	 * Returns this editor part.
-	 * <p>
-	 * Not API. May be removed in the future.
-	 * </p>
-	 * 
-	 * @return this editor part
-	 */
-	public IEditorPart getEditorPart() {
-		if (fEditorPart == null)
-			return this;
-		return fEditorPart;
-	}
-
-	private IDocumentListener getInternalDocumentListener() {
-		if (fInternalDocumentListener == null) {
-			fInternalDocumentListener = new InternalDocumentListener();
-		}
-		return fInternalDocumentListener;
-	}
-
-	IStructuredModel getInternalModel() {
-		return fStructuredModel;
-	}
-
-	private InternalModelStateListener getInternalModelStateListener() {
-		if (fInternalModelStateListener == null) {
-			fInternalModelStateListener = new InternalModelStateListener();
-		}
-		return fInternalModelStateListener;
-	}
-
-	/**
-	 * Returns this editor's StructuredModel.
-	 * <p>
-	 * Not API. Will be removed in the future.
-	 * </p>
-	 * 
-	 * @return returns this editor's IStructuredModel
-	 * @deprecated - This method allowed for uncontrolled access to the model
-	 *             instance and will be removed in the future. It is
-	 *             recommended that the current document provider be asked for
-	 *             the current document and the IModelManager then asked for
-	 *             the corresponding model with
-	 *             getExistingModelFor*(IDocument).
-	 */
-	public IStructuredModel getModel() {
-		if (getDocumentProvider() == null) {
-			// this indicated an error in startup sequence
-			Logger.trace(getClass().getName(), "Program Info Only: document provider was null when model requested"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		boolean initialModelNull = false;
-		if (fStructuredModel == null)
-			initialModelNull = true;
-		if (fStructuredModel == null) {
-			// lazily set the model instance, although this is an ABNORMAL
-			// CODE PATH
-			if (getDocumentProvider() instanceof IModelProvider) {
-				fStructuredModel = ((IModelProvider) getDocumentProvider()).getModel(getEditorInput());
-				fisReleased = false;
-			}
-			else {
-				IDocument doc = getDocumentProvider().getDocument(getEditorInput());
-				if (doc instanceof IStructuredDocument) {
-					IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForEdit(doc);
-					if (model == null) {
-						model = StructuredModelManager.getModelManager().getModelForEdit((IStructuredDocument) doc);
-					}
-					fStructuredModel = model;
-					fisReleased = false;
-				}
-			}
-
-			// ISSUE: this looks bad ... edit-time factories not initialized
-			// unless someone calls getModel?
-			// factories will not be re-added if already exists
-			EditorModelUtil.addFactoriesTo(fStructuredModel);
-
-			if (initialModelNull && fStructuredModel != null) {
-				/*
-				 * DMW: 9/1/2002 -- why is update called here? No change has
-				 * been indicated? I'd like to remove, but will leave for now
-				 * to avoid breaking this hack. Should measure/breakpoint to
-				 * see how large the problem is. May cause performance
-				 * problems.
-				 * 
-				 * DMW: 9/8/2002 -- not sure why this was here initially, but
-				 * the intent/hack must have been to call update if this was
-				 * the first time fStructuredModel was set. So, I added the
-				 * logic to check for that "first time" case. It would appear
-				 * we don't really need. may remove in future when can test
-				 * more.
-				 */
-				update();
-			}
-		}
-		return fStructuredModel;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.IWorkbenchPartOrientation#getOrientation()
-	 */
-	public int getOrientation() {
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=88714
-		return SWT.LEFT_TO_RIGHT;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.ITextEditor#getSelectionProvider()
-	 */
-	public ISelectionProvider getSelectionProvider() {
-		if (fStructuredSelectionProvider == null) {
-			ISelectionProvider parentProvider = super.getSelectionProvider();
-			if (parentProvider != null) {
-				fStructuredSelectionProvider = new StructuredSelectionProvider(parentProvider, this);
-			}
-		}
-		if (fStructuredSelectionProvider == null) {
-			return super.getSelectionProvider();
-		}
-		return fStructuredSelectionProvider;
-	}
-
-	/**
-	 * Returns the editor's source viewer. This method was created to expose
-	 * the protected final getSourceViewer() method.
-	 * <p>
-	 * Not API. May be removed in the future.
-	 * </p>
-	 * 
-	 * @return the editor's source viewer
-	 */
-	public StructuredTextViewer getTextViewer() {
-		return (StructuredTextViewer) getSourceViewer();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#handleCursorPositionChanged()
-	 */
-	protected void handleCursorPositionChanged() {
-		super.handleCursorPositionChanged();
-		updateStatusField(StructuredTextEditorActionConstants.STATUS_CATEGORY_OFFSET);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#handlePreferenceStoreChanged(org.eclipse.jface.util.PropertyChangeEvent)
-	 */
-	protected void handlePreferenceStoreChanged(PropertyChangeEvent event) {
-		String property = event.getProperty();
-
-		if (EditorPreferenceNames.EDITOR_TEXT_HOVER_MODIFIERS.equals(property)) {
-			updateHoverBehavior();
-		}
-
-		if (IStructuredTextFoldingProvider.FOLDING_ENABLED.equals(property)) {
-			if (getSourceViewer() instanceof ProjectionViewer) {
-				// install projection support if it has not even been
-				// installed yet
-				if (isFoldingEnabled() && (fProjectionSupport == null) && (fProjectionModelUpdater == null)) {
-					installProjectionSupport();
-				}
-				ProjectionViewer pv = (ProjectionViewer) getSourceViewer();
-				if (pv.isProjectionMode() != isFoldingEnabled()) {
-					if (pv.canDoOperation(ProjectionViewer.TOGGLE))
-						pv.doOperation(ProjectionViewer.TOGGLE);
-				}
-			}
-			return;
-		}
-		super.handlePreferenceStoreChanged(event);
-	}
-
-	private boolean inBusyState() {
-		return fBusyState;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorPart#init(org.eclipse.ui.IEditorSite,
-	 *      org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		// if we've gotten an error elsewhere, before
-		// we've actually opened, then don't open.
-		if (shouldClose) {
-			setSite(site);
-			close(false);
-		}
-		else {
-			super.init(site, input);
-		}
-	}
-
-	/**
-	 * Set the document provider for this editor.
-	 * <p>
-	 * Not API. May be removed in the future.
-	 * </p>
-	 * 
-	 * @param documentProvider
-	 *            documentProvider to initialize
-	 */
-	public void initializeDocumentProvider(IDocumentProvider documentProvider) {
-		if (documentProvider != null) {
-			setDocumentProvider(documentProvider);
-		}
-	}
-
-	protected void initializeDrop(ITextViewer textViewer) {
-		int operations = DND.DROP_COPY | DND.DROP_MOVE;
-		fDropTarget = new DropTarget(textViewer.getTextWidget(), operations);
-		fDropAdapter = new ReadOnlyAwareDropTargetAdapter(true);
-		fDropAdapter.setTargetEditor(this);
-		fDropAdapter.setTargetIDs(getConfigurationPoints());
-		fDropAdapter.setTextViewer(textViewer);
-		fDropTarget.setTransfer(fDropAdapter.getTransfers());
-		fDropTarget.addDropListener(fDropAdapter);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#initializeEditor()
-	 */
-	protected void initializeEditor() {
-		super.initializeEditor();
-		// FIXME: here's where to add back in our custom encoding support
-		fEncodingSupport = null;
-		setPreferenceStore(createCombinedPreferenceStore());
-
-		setRangeIndicator(new DefaultRangeIndicator());
-		setEditorContextMenuId(EDITOR_CONTEXT_MENU_ID);
-		initializeDocumentProvider(null);
-		// set the infopop for source viewer
-		String helpId = getHelpContextId();
-		// no infopop set or using default text editor help, use default
-		if (helpId == null || ITextEditorHelpContextIds.TEXT_EDITOR.equals(helpId))
-			helpId = IHelpContextIds.XML_SOURCE_VIEW_HELPID;
-		setHelpContextId(helpId);
-		// defect 203158 - disable ruler context menu for
-		// beta
-		// setRulerContextMenuId(RULER_CONTEXT_MENU_ID);
-		configureInsertMode(SMART_INSERT, true);
-
-		// enable the base source editor activity when editor opens
-		try {
-			// FIXME: - commented out to avoid minor dependancy during
-			// transition to org.eclipse
-			// WTPActivityBridge.getInstance().enableActivity(CORE_SSE_ACTIVITY_ID,
-			// true);
-		}
-		catch (Exception t) {
-			// if something goes wrong with enabling activity, just log the
-			// error but dont
-			// have it break the editor
-			Logger.log(Logger.WARNING_DEBUG, t.getMessage(), t);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.editors.text.TextEditor#initializeKeyBindingScopes()
-	 */
-	protected void initializeKeyBindingScopes() {
-		setKeyBindingScopes(new String[]{EDITOR_KEYBINDING_SCOPE_ID});
-	}
-
-	/**
-	 * Initializes the editor's source viewer and other items that were source
-	 * viewer-dependent.
-	 */
-	private void initializeSourceViewer() {
-		IAction contentAssistAction = getAction(StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_PROPOSALS);
-		if (contentAssistAction instanceof IUpdate) {
-			((IUpdate) contentAssistAction).update();
-		}
-		IAction openHyperlinkAction = getAction(StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE);
-		if (openHyperlinkAction instanceof OpenHyperlinkAction) {
-			((OpenHyperlinkAction) openHyperlinkAction).setHyperlinkDetectors(getSourceViewerConfiguration().getHyperlinkDetectors(getSourceViewer()));
-		}
-
-		// do not even install projection support until folding is actually
-		// enabled
-		if (isFoldingEnabled()) {
-			installProjectionSupport();
-		}
-
-		// initialize source viewer's correction assistant
-		IContentAssistant correctionAssistant = createCorrectionAssistant();
-		getTextViewer().setCorrectionAssistant(correctionAssistant);
-	}
-
-	protected void initSourceViewer(StructuredTextViewer sourceViewer) {
-		// ensure decoration support is configured
-		getSourceViewerDecorationSupport(sourceViewer);
-		fMouseTracker = new MouseTracker();
-		fMouseTracker.start(sourceViewer.getTextWidget());
-		initializeDrop(sourceViewer);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.editors.text.TextEditor#installEncodingSupport()
-	 */
-	protected void installEncodingSupport() {
-		// TODO: install our custom support that can
-		// update document appropriately
-		// super.installEncodingSupport();
-	}
-
-	/**
-	 * Install everything necessary to get document folding working and enable
-	 * document folding
-	 */
-	private void installProjectionSupport() {
-		ProjectionViewer projectionViewer = (ProjectionViewer) getSourceViewer();
-
-		fProjectionSupport = new ProjectionSupport(projectionViewer, getAnnotationAccess(), getSharedColors());
-		fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.error"); //$NON-NLS-1$
-		fProjectionSupport.addSummarizableAnnotationType("org.eclipse.ui.workbench.texteditor.warning"); //$NON-NLS-1$
-		fProjectionSupport.setHoverControlCreator(new IInformationControlCreator() {
-			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent);
-			}
-		});
-		fProjectionSupport.install();
-
-		IStructuredTextFoldingProvider updater = null;
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] ids = getConfigurationPoints();
-		for (int i = 0; updater == null && i < ids.length; i++) {
-			updater = (IStructuredTextFoldingProvider) builder.getConfiguration(IStructuredTextFoldingProvider.ID, ids[i]);
-		}
-
-		fProjectionModelUpdater = updater;
-		if (fProjectionModelUpdater != null)
-			fProjectionModelUpdater.install(projectionViewer);
-
-		if (isFoldingEnabled())
-			projectionViewer.doOperation(ProjectionViewer.TOGGLE);
-	}
-
-	/**
-	 * Return whether document folding should be enabled according to the
-	 * preference store settings.
-	 * 
-	 * @return <code>true</code> if document folding should be enabled
-	 */
-	private boolean isFoldingEnabled() {
-		IPreferenceStore store = getPreferenceStore();
-		// check both preference store and vm argument
-		return (store.getBoolean(IStructuredTextFoldingProvider.FOLDING_ENABLED));
-	}
-
-	private void logUnexpectedDocumentKind(IEditorInput input) {
-		// display a dialog informing user of uknown content type
-		if (SSEUIPlugin.getDefault().getPreferenceStore().getBoolean(EditorPreferenceNames.SHOW_UNKNOWN_CONTENT_TYPE_MSG)) {
-			Job job = new UIJob(SSEUIMessages.StructuredTextEditor_0) {
-				public IStatus runInUIThread(IProgressMonitor monitor) {
-					UnknownContentTypeDialog dialog = new UnknownContentTypeDialog(getSite().getShell(), SSEUIPlugin.getDefault().getPreferenceStore(), EditorPreferenceNames.SHOW_UNKNOWN_CONTENT_TYPE_MSG);
-					dialog.open();
-					return Status.OK_STATUS;
-				}
-			};
-			job.schedule();
-		}
-
-		Logger.log(Logger.WARNING, "StructuredTextEditor being used without StructuredDocument"); //$NON-NLS-1$
-		String name = null;
-		if (input != null) {
-			name = input.getName();
-		}
-		else {
-			name = "input was null"; //$NON-NLS-1$
-		}
-		Logger.log(Logger.WARNING, "         Input Name: " + name); //$NON-NLS-1$
-		String implClass = null;
-		IDocument document = getDocumentProvider().getDocument(input);
-		if (document != null) {
-			implClass = document.getClass().getName();
-		}
-		else {
-			implClass = "document was null"; //$NON-NLS-1$
-		}
-		Logger.log(Logger.WARNING, "        Unexpected IDocumentProvider implementation: " + getDocumentProvider().getClass().getName()); //$NON-NLS-1$
-		Logger.log(Logger.WARNING, "        Unexpected IDocument implementation: " + implClass); //$NON-NLS-1$
-	}
-
-	/*
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#performRevert()
-	 */
-	protected void performRevert() {
-		ProjectionViewer projectionViewer = (ProjectionViewer) getSourceViewer();
-		projectionViewer.setRedraw(false);
-		try {
-
-			boolean projectionMode = projectionViewer.isProjectionMode();
-			if (projectionMode) {
-				projectionViewer.disableProjection();
-				if (fProjectionModelUpdater != null)
-					fProjectionModelUpdater.uninstall();
-			}
-
-			super.performRevert();
-
-			if (projectionMode) {
-				if (fProjectionModelUpdater != null)
-					fProjectionModelUpdater.install(projectionViewer);
-				projectionViewer.enableProjection();
-			}
-
-		}
-		finally {
-			projectionViewer.setRedraw(true);
-		}
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * <p>
-	 * Not API. May be reduced to protected method in the future.
-	 * </p>
-	 */
-	public void rememberSelection() {
-		/*
-		 * This method was made public for use by editors that use
-		 * StructuredTextEditor (like some clients)
-		 */
-		super.rememberSelection();
-	}
-
-
-	/**
-	 * both starts and resets the busy state timer
-	 */
-	private void resetBusyState() {
-		// reset the "busy" timeout
-		if (fBusyTimer != null) {
-			fBusyTimer.cancel();
-		}
-		startBusyTimer();
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * <p>
-	 * Not API. May be reduced to protected method in the future.
-	 * </p>
-	 */
-	public void restoreSelection() {
-		/*
-		 * This method was made public for use by editors that use
-		 * StructuredTextEditor (like some clients)
-		 */
-		// catch odd case where source viewer has no text
-		// widget (defect
-		// 227670)
-		if ((getSourceViewer() != null) && (getSourceViewer().getTextWidget() != null))
-			super.restoreSelection();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#rulerContextMenuAboutToShow(org.eclipse.jface.action.IMenuManager)
-	 */
-	protected void rulerContextMenuAboutToShow(IMenuManager menu) {
-		super.rulerContextMenuAboutToShow(menu);
-
-		IMenuManager foldingMenu = new MenuManager(SSEUIMessages.Folding, "projection"); //$NON-NLS-1$
-		menu.appendToGroup(ITextEditorActionConstants.GROUP_RULERS, foldingMenu);
-
-		IAction action = getAction("FoldingToggle"); //$NON-NLS-1$
-		foldingMenu.add(action);
-		action = getAction("FoldingExpandAll"); //$NON-NLS-1$
-		foldingMenu.add(action);
-		action = getAction("FoldingCollapseAll"); //$NON-NLS-1$
-		foldingMenu.add(action);
-
-		IStructuredModel internalModel = getInternalModel();
-		if (internalModel != null) {
-			boolean debuggingAvailable = BreakpointProviderBuilder.getInstance().isAvailable(internalModel.getContentTypeIdentifier(), BreakpointRulerAction.getFileExtension(getEditorInput()));
-			if (debuggingAvailable) {
-				// append actions to "debug" group (created in
-				// AbstractDecoratedTextEditor.rulerContextMenuAboutToShow(IMenuManager)
-				menu.appendToGroup("debug", getAction(ActionDefinitionIds.TOGGLE_BREAKPOINTS)); //$NON-NLS-1$
-				menu.appendToGroup("debug", getAction(ActionDefinitionIds.MANAGE_BREAKPOINTS)); //$NON-NLS-1$
-				menu.appendToGroup("debug", getAction(ActionDefinitionIds.EDIT_BREAKPOINTS)); //$NON-NLS-1$
-			}
-			addExtendedRulerContextMenuActions(menu);
-		}
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * <p>
-	 * Overridden to expose part activation handling for multi-page editors.
-	 * </p>
-	 * <p>
-	 * Not API. May be reduced to protected method in the future.
-	 * </p>
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#safelySanityCheckState(org.eclipse.ui.IEditorInput)
-	 */
-	public void safelySanityCheckState(IEditorInput input) {
-		super.safelySanityCheckState(input);
-	}
-
-	private void savedModel() {
-		if (getInternalModel() != null) {
-			getInternalModel().changedModel();
-		}
-	}
-
-	/**
-	 * Ensure that the correct IDocumentProvider is used. For direct models, a
-	 * special provider is used. For StorageEditorInputs, use a custom
-	 * provider that creates a usable ResourceAnnotationModel. For everything
-	 * else, use the base support.
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#setDocumentProvider(org.eclipse.ui.IEditorInput)
-	 */
-	protected void setDocumentProvider(IEditorInput input) {
-		if (input instanceof IStructuredModel) {
-			// largely untested
-			setDocumentProvider(StructuredModelDocumentProvider.getInstance());
-		}
-		else if (input instanceof IStorageEditorInput && !(input instanceof IFileEditorInput) && !(input instanceof IPathEditorInput)) {
-			setDocumentProvider(StorageModelProvider.getInstance());
-		}
-		else {
-			super.setDocumentProvider(input);
-		}
-	}
-
-	/**
-	 * Set editor part associated with this editor.
-	 * <p>
-	 * Not API. May be removed in the future.
-	 * </p>
-	 * 
-	 * @param editorPart
-	 *            editor part associated with this editor
-	 */
-	public void setEditorPart(IEditorPart editorPart) {
-		fEditorPart = editorPart;
-	}
-
-	/**
-	 * Sets the model field within this editor.
-	 * 
-	 * @deprecated - can eventually be eliminated
-	 */
-	private void setModel(IStructuredModel newModel) {
-		Assert.isNotNull(getDocumentProvider(), "document provider can not be null when setting model"); //$NON-NLS-1$
-		if (fStructuredModel != null) {
-			if (fStructuredModel.getStructuredDocument() != null) {
-				fStructuredModel.getStructuredDocument().removeDocumentListener(getInternalDocumentListener());
-			}
-			fStructuredModel.removeModelStateListener(getInternalModelStateListener());
-		}
-		fStructuredModel = newModel;
-		if (fStructuredModel != null) {
-			if (fStructuredModel.getStructuredDocument() != null) {
-				fStructuredModel.getStructuredDocument().addDocumentListener(getInternalDocumentListener());
-			}
-			fStructuredModel.addModelStateListener(getInternalModelStateListener());
-		}
-		// update() should be called whenever the model is
-		// set or changed
-		update();
-	}
-
-	/**
-	 * Sets the editor's source viewer configuration which it uses to
-	 * configure it's internal source viewer. This method was overwritten so
-	 * that viewer configuration could be set after editor part was created.
-	 */
-	protected void setSourceViewerConfiguration(SourceViewerConfiguration config) {
-		super.setSourceViewerConfiguration(config);
-		StructuredTextViewer stv = getTextViewer();
-		if (stv != null) {
-			// there should be no need to unconfigure
-			// before configure because
-			// configure will
-			// also unconfigure before configuring
-			stv.unconfigure();
-			stv.configure(config);
-
-			// update source viewer's correction assistant as well
-			IContentAssistant correctionAssistant = createCorrectionAssistant();
-			stv.setCorrectionAssistant(correctionAssistant);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.WorkbenchPart#showBusy(boolean)
-	 */
-	public void showBusy(boolean busy) {
-		if (busy) {
-			fRememberTitle = getPartName();
-			// update title and/or fonts and/or background
-			//
-			// temp solution, for testing, uses "busy"
-			setPartName(SSEUIMessages.busy); //$NON-NLS-1$
-		}
-		else {
-			// reset to what it was
-			setPartName(fRememberTitle);
-		}
-	}
-
-	private void startBusyTimer() {
-		// TODO: we need a resettable timer, so not so
-		// many are created
-		fBusyTimer = new Timer(true);
-		fBusyTimer.schedule(new TimeOutExpired(), BUSY_STATE_DELAY);
-	}
-
-	/**
-	 * Update should be called whenever the model is set or changed (as in
-	 * swapped)
-	 * <p>
-	 * Not API. May be removed in the future.
-	 * </p>
-	 */
-	public void update() {
-		if (fOutlinePage != null && fOutlinePage instanceof ConfigurableContentOutlinePage) {
-			ContentOutlineConfiguration cfg = createContentOutlineConfiguration();
-			((ConfigurableContentOutlinePage) fOutlinePage).setConfiguration(cfg);
-			IStructuredModel internalModel = getInternalModel();
-			((ConfigurableContentOutlinePage) fOutlinePage).setInputContentTypeIdentifier(internalModel.getContentTypeIdentifier());
-			((ConfigurableContentOutlinePage) fOutlinePage).setInput(internalModel);
-		}
-		if (fPropertySheetPage != null && fPropertySheetPage instanceof ConfigurablePropertySheetPage) {
-			PropertySheetConfiguration cfg = createPropertySheetConfiguration();
-			((ConfigurablePropertySheetPage) fPropertySheetPage).setConfiguration(cfg);
-		}
-		disposeModelDependentFields();
-
-		fShowInTargetIds = createShowInTargetIds();
-
-		updateSourceViewerConfiguration();
-		
-		if (fStructuredSelectionProvider != null) {
-			fStructuredSelectionProvider.setDocument(getInternalModel().getStructuredDocument());
-		}
-
-		createModelDependentFields();
-	}
-
-	/**
-	 * Updates all content dependent actions.
-	 */
-	protected void updateContentDependentActions() {
-		super.updateContentDependentActions();
-		// super.updateContentDependentActions only updates
-		// the enable/disable
-		// state of all
-		// the content dependent actions.
-		// StructuredTextEditor's undo and redo actions
-		// have a detail label and
-		// description.
-		// They needed to be updated.
-		if (!fEditorDisposed)
-			updateMenuText();
-	}
-
-
-	/**
-	 * Updates the editor context menu by creating a new context menu with the
-	 * given menu id
-	 * 
-	 * @param contextMenuId
-	 *            Cannot be null
-	 */
-	private void updateEditorContextMenuId(String contextMenuId) {
-		// update editor context menu id if updating to a new id or if context
-		// menu is not already set up
-		if (!contextMenuId.equals(getEditorContextMenuId()) || (fTextContextMenu == null)) {
-			setEditorContextMenuId(contextMenuId);
-
-			if (getSourceViewer() != null) {
-				StyledText styledText = getSourceViewer().getTextWidget();
-				if (styledText != null) {
-					// dispose of previous context menu
-					if (fTextContextMenu != null) {
-						fTextContextMenu.dispose();
-					}
-					if (fTextContextMenuManager != null) {
-						fTextContextMenuManager.removeMenuListener(getContextMenuListener());
-						fTextContextMenuManager.removeAll();
-						fTextContextMenuManager.dispose();
-					}
-
-					fTextContextMenuManager = new MenuManager(getEditorContextMenuId(), getEditorContextMenuId());
-					fTextContextMenuManager.setRemoveAllWhenShown(true);
-					fTextContextMenuManager.addMenuListener(getContextMenuListener());
-
-					fTextContextMenu = fTextContextMenuManager.createContextMenu(styledText);
-					styledText.setMenu(fTextContextMenu);
-
-					getSite().registerContextMenu(getEditorContextMenuId(), fTextContextMenuManager, getSelectionProvider());
-
-					// also register this menu for source page part and
-					// structured text editor ids
-					String partId = getSite().getId();
-					if (partId != null) {
-						getSite().registerContextMenu(partId + EDITOR_CONTEXT_MENU_SUFFIX, fTextContextMenuManager, getSelectionProvider());
-					}
-					getSite().registerContextMenu(EDITOR_CONTEXT_MENU_ID, fTextContextMenuManager, getSelectionProvider());
-				}
-			}
-		}
-	}
-
-	/**
-	 * Updates editor context menu, vertical ruler menu, help context id for
-	 * new content type
-	 * 
-	 * @param contentType
-	 */
-	private void updateEditorControlsForContentType(String contentType) {
-		if (contentType == null) {
-			updateEditorContextMenuId(EDITOR_CONTEXT_MENU_ID);
-			updateRulerContextMenuId(RULER_CONTEXT_MENU_ID);
-			updateHelpContextId(ITextEditorHelpContextIds.TEXT_EDITOR);
-		}
-		else {
-			updateEditorContextMenuId(contentType + EDITOR_CONTEXT_MENU_SUFFIX);
-			updateRulerContextMenuId(contentType + RULER_CONTEXT_MENU_SUFFIX);
-			updateHelpContextId(contentType + "_source_HelpId"); //$NON-NLS-1$
-		}
-	}
-
-	private void updateEncodingMemento() {
-		boolean failed = false;
-		IStructuredModel internalModel = getInternalModel();
-		if (internalModel != null) {
-			IStructuredDocument doc = internalModel.getStructuredDocument();
-			EncodingMemento memento = doc.getEncodingMemento();
-			IDocumentCharsetDetector detector = internalModel.getModelHandler().getEncodingDetector();
-			if (memento != null && detector != null)
-				detector.set(doc);
-			try {
-				detector.getEncoding();
-			}
-			catch (IOException e) {
-				failed = true;
-			}
-			// be sure to use the new instance
-			// but only if no exception occurred.
-			// (we may find cases we need to do more error recover there)
-			// should be near impossible to get IOException from processing
-			// the
-			// *document*
-			if (!failed) {
-				doc.setEncodingMemento(memento);
-			}
-		}
-	}
-
-	/**
-	 * Updates the help context of the editor with the given help context id
-	 * 
-	 * @param helpContextId
-	 *            Cannot be null
-	 */
-	private void updateHelpContextId(String helpContextId) {
-		if (!helpContextId.equals(getHelpContextId())) {
-			setHelpContextId(helpContextId);
-
-			if (getSourceViewer() != null) {
-				StyledText styledText = getSourceViewer().getTextWidget();
-				if (styledText != null) {
-					IWorkbenchHelpSystem helpSystem = PlatformUI.getWorkbench().getHelpSystem();
-					helpSystem.setHelp(styledText, getHelpContextId());
-				}
-			}
-		}
-	}
-
-	/*
-	 * Update the hovering behavior depending on the preferences.
-	 */
-	private void updateHoverBehavior() {
-		SourceViewerConfiguration configuration = getSourceViewerConfiguration();
-		String[] types = configuration.getConfiguredContentTypes(getSourceViewer());
-
-		for (int i = 0; i < types.length; i++) {
-
-			String t = types[i];
-
-			ISourceViewer sourceViewer = getSourceViewer();
-			if (sourceViewer instanceof ITextViewerExtension2) {
-				// Remove existing hovers
-				((ITextViewerExtension2) sourceViewer).removeTextHovers(t);
-
-				int[] stateMasks = configuration.getConfiguredTextHoverStateMasks(getSourceViewer(), t);
-
-				if (stateMasks != null) {
-					for (int j = 0; j < stateMasks.length; j++) {
-						int stateMask = stateMasks[j];
-						ITextHover textHover = configuration.getTextHover(sourceViewer, t, stateMask);
-						((ITextViewerExtension2) sourceViewer).setTextHover(textHover, t, stateMask);
-					}
-				}
-				else {
-					ITextHover textHover = configuration.getTextHover(sourceViewer, t);
-					((ITextViewerExtension2) sourceViewer).setTextHover(textHover, t, ITextViewerExtension2.DEFAULT_HOVER_STATE_MASK);
-				}
-			}
-			else
-				sourceViewer.setTextHover(configuration.getTextHover(sourceViewer, t), t);
-		}
-	}
-
-	private void updateMenuText() {
-		if (fStructuredModel != null && !fStructuredModel.isModelStateChanging() && getTextViewer().getTextWidget() != null) {
-			// performance: don't force an update of the action bars unless
-			// required as it is expensive
-			String previousUndoText = null;
-			String previousUndoDesc = null;
-			String previousRedoText = null;
-			String previousRedoDesc = null;
-			boolean updateActions = false;
-			IAction undoAction = getAction(ITextEditorActionConstants.UNDO);
-			IAction redoAction = getAction(ITextEditorActionConstants.REDO);
-			if (undoAction != null) {
-				previousUndoText = undoAction.getText();
-				previousUndoDesc = undoAction.getDescription();
-				updateActions = updateActions || previousUndoText == null || previousUndoDesc == null;
-				undoAction.setText(UNDO_ACTION_TEXT_DEFAULT);
-				undoAction.setDescription(UNDO_ACTION_DESC_DEFAULT);
-			}
-			if (redoAction != null) {
-				previousRedoText = redoAction.getText();
-				previousRedoDesc = redoAction.getDescription();
-				updateActions = updateActions || previousRedoText == null || previousRedoDesc == null;
-				redoAction.setText(REDO_ACTION_TEXT_DEFAULT);
-				redoAction.setDescription(REDO_ACTION_DESC_DEFAULT);
-			}
-			if (fStructuredModel.getUndoManager() != null) {
-				IStructuredTextUndoManager undoManager = fStructuredModel.getUndoManager();
-				// get undo command
-				Command undoCommand = undoManager.getUndoCommand();
-				// set undo label and description
-				undoAction.setEnabled(undoManager.undoable());
-				if (undoCommand != null) {
-					String label = undoCommand.getLabel();
-					if (label != null) {
-						String customText = MessageFormat.format(UNDO_ACTION_TEXT, new String[]{label});
-						updateActions = updateActions || customText == null || previousUndoText == null || !customText.equals(previousUndoText);
-						undoAction.setText(customText);
-					}
-					String desc = undoCommand.getDescription();
-					if (desc != null) {
-						String customDesc = MessageFormat.format(UNDO_ACTION_DESC, new String[]{desc});
-						updateActions = updateActions || customDesc == null || previousRedoDesc == null || !customDesc.equals(previousUndoDesc);
-						undoAction.setDescription(customDesc);
-					}
-				}
-				// get redo command
-				Command redoCommand = undoManager.getRedoCommand();
-				// set redo label and description
-				redoAction.setEnabled(undoManager.redoable());
-				if (redoCommand != null) {
-					String label = redoCommand.getLabel();
-					if (label != null) {
-						String customText = MessageFormat.format(REDO_ACTION_TEXT, new String[]{label});
-						updateActions = updateActions || customText == null || previousRedoText == null || !customText.equals(previousRedoText);
-						redoAction.setText(customText);
-					}
-					String desc = redoCommand.getDescription();
-					if (desc != null) {
-						String customDesc = MessageFormat.format(REDO_ACTION_DESC, new String[]{desc});
-						updateActions = updateActions || customDesc == null || previousRedoDesc == null || !customDesc.equals(previousRedoDesc);
-						redoAction.setDescription(customDesc);
-					}
-				}
-			}
-			// tell the action bars to update
-			if (updateActions) {
-				if (getEditorSite().getActionBars() != null) {
-					getEditorSite().getActionBars().updateActionBars();
-				}
-				else if (getEditorPart() != null && getEditorPart().getEditorSite().getActionBars() != null) {
-					getEditorPart().getEditorSite().getActionBars().updateActionBars();
-				}
-			}
-		}
-	}
-
-	void updateRangeIndication(ISelection selection) {
-		boolean rangeUpdated = false;
-		if (selection instanceof IStructuredSelection && !((IStructuredSelection) selection).isEmpty()) {
-			Object[] objects = ((IStructuredSelection) selection).toArray();
-			if (objects.length > 0 && objects[0] instanceof IndexedRegion) {
-				int start = ((IndexedRegion) objects[0]).getStartOffset();
-				int end = ((IndexedRegion) objects[0]).getEndOffset();
-				if (objects.length > 1) {
-					for (int i = 1; i < objects.length; i++) {
-						start = Math.min(start, ((IndexedRegion) objects[i]).getStartOffset());
-						end = Math.max(end, ((IndexedRegion) objects[i]).getEndOffset());
-					}
-				}
-				getSourceViewer().setRangeIndication(start, end - start, false);
-				rangeUpdated = true;
-			}
-		}
-		if (!rangeUpdated) {
-			if (selection instanceof ITextSelection) {
-				getSourceViewer().setRangeIndication(((ITextSelection) selection).getOffset(), ((ITextSelection) selection).getLength(), false);
-			}
-			else {
-				getSourceViewer().removeRangeIndication();
-			}
-		}
-	}
-
-
-	/**
-	 * Updates the editor vertical ruler menu by creating a new vertical ruler
-	 * context menu with the given menu id
-	 * 
-	 * @param rulerMenuId
-	 *            Cannot be null
-	 */
-	private void updateRulerContextMenuId(String rulerMenuId) {
-		// update ruler context menu id if updating to a new id or if context
-		// menu is not already set up
-		if (!rulerMenuId.equals(getRulerContextMenuId()) || (fRulerContextMenu == null)) {
-			setRulerContextMenuId(rulerMenuId);
-
-			if (getVerticalRuler() != null) {
-				// dispose of previous ruler context menu
-				if (fRulerContextMenu != null) {
-					fRulerContextMenu.dispose();
-				}
-				if (fRulerContextMenuManager != null) {
-					fRulerContextMenuManager.removeMenuListener(getContextMenuListener());
-					fRulerContextMenuManager.removeAll();
-					fRulerContextMenuManager.dispose();
-				}
-
-				fRulerContextMenuManager = new MenuManager(getRulerContextMenuId(), getRulerContextMenuId());
-				fRulerContextMenuManager.setRemoveAllWhenShown(true);
-				fRulerContextMenuManager.addMenuListener(getContextMenuListener());
-
-				Control rulerControl = getVerticalRuler().getControl();
-				fRulerContextMenu = fRulerContextMenuManager.createContextMenu(rulerControl);
-				rulerControl.setMenu(fRulerContextMenu);
-
-				getSite().registerContextMenu(getRulerContextMenuId(), fRulerContextMenuManager, getSelectionProvider());
-
-				// also register this menu for source page part and structured
-				// text editor ids
-				String partId = getSite().getId();
-				if (partId != null) {
-					getSite().registerContextMenu(partId + RULER_CONTEXT_MENU_SUFFIX, fRulerContextMenuManager, getSelectionProvider());
-				}
-				getSite().registerContextMenu(RULER_CONTEXT_MENU_ID, fRulerContextMenuManager, getSelectionProvider());
-			}
-		}
-	}
-
-	private void updateSourceViewerConfiguration() {
-		SourceViewerConfiguration configuration = getSourceViewerConfiguration();
-		// no need to update source viewer configuration if one does not exist
-		// yet
-		if (configuration == null) {
-			return;
-		}
-		// do not configure source viewer configuration twice
-		boolean configured = false;
-
-		// structuredtextviewer only works with
-		// structuredtextviewerconfiguration
-		if (!(configuration instanceof StructuredTextViewerConfiguration)) {
-			ConfigurationAndTarget cat = createSourceViewerConfiguration();
-			fViewerConfigurationTargetId = cat.getTargetId();
-			configuration = cat.getConfiguration();
-			setSourceViewerConfiguration(configuration);
-			configured = true;
-		}
-		else {
-			ConfigurationAndTarget cat = createSourceViewerConfiguration();
-			StructuredTextViewerConfiguration newViewerConfiguration = cat.getConfiguration();
-			if (!(cat.getTargetId().equals(fViewerConfigurationTargetId))) {
-				// d282894 use newViewerConfiguration
-				fViewerConfigurationTargetId = cat.getTargetId();
-				configuration = newViewerConfiguration;
-				setSourceViewerConfiguration(configuration);
-				configured = true;
-			}
-		}
-
-		if (getSourceViewer() != null) {
-			// not sure if really need to reconfigure when input changes
-			// (maybe only need to reset viewerconfig's document)
-			if (!configured)
-				getSourceViewer().configure(configuration);
-			IAction contentAssistAction = getAction(StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_PROPOSALS);
-			if (contentAssistAction instanceof IUpdate) {
-				((IUpdate) contentAssistAction).update();
-			}
-			IAction openHyperlinkAction = getAction(StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE);
-			if (openHyperlinkAction instanceof OpenHyperlinkAction) {
-				((OpenHyperlinkAction) openHyperlinkAction).setHyperlinkDetectors(getSourceViewerConfiguration().getHyperlinkDetectors(getSourceViewer()));
-			}
-		}
-	}
-
-	protected void updateStatusField(String category) {
-		super.updateStatusField(category);
-
-		if (category == null)
-			return;
-
-		if (StructuredTextEditorActionConstants.STATUS_CATEGORY_OFFSET.equals(category)) {
-			IStatusField field = getStatusField(category);
-			if (field != null) {
-				Point selection = getTextViewer().getTextWidget().getSelection();
-				int offset1 = widgetOffset2ModelOffset(getSourceViewer(), selection.x);
-				int offset2 = widgetOffset2ModelOffset(getSourceViewer(), selection.y);
-				String text = null;
-				if (offset1 != offset2)
-					text = "[" + offset1 + "-" + offset2 + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				else
-					text = "[ " + offset1 + " ]"; //$NON-NLS-1$ //$NON-NLS-2$
-				field.setText(text == null ? fErrorLabel : text);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java
deleted file mode 100644
index 5ca2617..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerConfiguration.java
+++ /dev/null
@@ -1,471 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.DefaultInformationControl;
-import org.eclipse.jface.text.IInformationControl;
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.IUndoManager;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.formatter.IContentFormatter;
-import org.eclipse.jface.text.hyperlink.IHyperlinkPresenter;
-import org.eclipse.jface.text.information.IInformationPresenter;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.InformationPresenter;
-import org.eclipse.jface.text.presentation.IPresentationReconciler;
-import org.eclipse.jface.text.reconciler.IReconciler;
-import org.eclipse.jface.text.source.IAnnotationHover;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.editors.text.TextSourceViewerConfiguration;
-import org.eclipse.ui.texteditor.ChainedPreferenceStore;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.StructuredTextAnnotationHover;
-import org.eclipse.wst.sse.ui.internal.contentassist.StructuredContentAssistant;
-import org.eclipse.wst.sse.ui.internal.derived.HTMLTextPresenter;
-import org.eclipse.wst.sse.ui.internal.hyperlink.HighlighterHyperlinkPresenter;
-import org.eclipse.wst.sse.ui.internal.provisional.preferences.CommonEditorPreferenceNames;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor;
-import org.eclipse.wst.sse.ui.internal.taginfo.AnnotationHoverProcessor;
-import org.eclipse.wst.sse.ui.internal.taginfo.BestMatchHover;
-import org.eclipse.wst.sse.ui.internal.taginfo.ProblemAnnotationHoverProcessor;
-import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager;
-
-
-/**
- * Configuration for the source viewer used by StructuredTextEditor.<br />
- * Note: While ISourceViewer is passed in for each get configuration, clients
- * should create a new viewer configuration instance for each instance of
- * source viewer as some methods return the same instance of an object,
- * regardless of the sourceviewer.
- * <p>
- * Clients should subclass and override just those methods which must be
- * specific to their needs.
- * </p>
- * 
- * @see org.eclipse.wst.sse.ui.StructuredTextEditor
- * @see org.eclipse.wst.sse.ui.internal.StructuredTextViewer
- * @since 1.0
- */
-public class StructuredTextViewerConfiguration extends TextSourceViewerConfiguration {
-	/*
-	 * One instance per configuration because creating a second assistant that
-	 * is added to a viewer can cause odd key-eating by the wrong one.
-	 */
-	private StructuredContentAssistant fContentAssistant = null;
-	/*
-	 * One instance per configuration
-	 */
-	private IReconciler fReconciler;
-
-
-	/**
-	 * Creates a structured text viewer configuration.
-	 */
-	public StructuredTextViewerConfiguration() {
-		super();
-		// initialize fPreferenceStore with same preference store used in
-		// StructuredTextEditor
-		fPreferenceStore = createCombinedPreferenceStore();
-	}
-
-	/**
-	 * Create a preference store that combines the source editor preferences
-	 * with the base editor's preferences.
-	 * 
-	 * @return IPreferenceStore
-	 */
-	private IPreferenceStore createCombinedPreferenceStore() {
-		IPreferenceStore sseEditorPrefs = SSEUIPlugin.getDefault().getPreferenceStore();
-		IPreferenceStore baseEditorPrefs = EditorsUI.getPreferenceStore();
-		return new ChainedPreferenceStore(new IPreferenceStore[]{sseEditorPrefs, baseEditorPrefs});
-	}
-
-	/**
-	 * Returns the annotation hover which will provide the information to be
-	 * shown in a hover popup window when requested for the given source
-	 * viewer.<br />
-	 * Note: Clients cannot override this method because this method returns a
-	 * specially configured Annotation Hover for the StructuredTextViewer.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return an annotation hover specially configured for
-	 *         StructuredTextViewer
-	 */
-	final public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) {
-		/*
-		 * This implmentation returns an annotation hover that works with
-		 * StructuredTextViewer and breakpoints. Important! must remember to
-		 * release it when done with it (during viewer.unconfigure)
-		 */
-		return new StructuredTextAnnotationHover();
-	}
-
-	/**
-	 * Returns the configured partitioning for the given source viewer. The
-	 * partitioning is used when the querying content types from the source
-	 * viewer's input document.<br />
-	 * Note: Clients cannot override this method at this time.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return the configured partitioning
-	 * @see #getConfiguredContentTypes(ISourceViewer)
-	 */
-	final public String getConfiguredDocumentPartitioning(ISourceViewer sourceViewer) {
-		/*
-		 * This implementation returns default structured text partitioning
-		 */
-		return IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING;
-	}
-
-	public int[] getConfiguredTextHoverStateMasks(ISourceViewer sourceViewer, String contentType) {
-		/*
-		 * This implementation returns configured text hover state masks for
-		 * StructuredTextViewers
-		 */
-		TextHoverManager.TextHoverDescriptor[] hoverDescs = SSEUIPlugin.getDefault().getTextHoverManager().getTextHovers();
-		int stateMasks[] = new int[hoverDescs.length];
-		int stateMasksLength = 0;
-		for (int i = 0; i < hoverDescs.length; i++) {
-			if (hoverDescs[i].isEnabled()) {
-				int j = 0;
-				int stateMask = computeStateMask(hoverDescs[i].getModifierString());
-				while (j < stateMasksLength) {
-					if (stateMasks[j] == stateMask)
-						break;
-					j++;
-				}
-				if (j == stateMasksLength)
-					stateMasks[stateMasksLength++] = stateMask;
-			}
-		}
-		if (stateMasksLength == hoverDescs.length)
-			return stateMasks;
-
-		int[] shortenedStateMasks = new int[stateMasksLength];
-		System.arraycopy(stateMasks, 0, shortenedStateMasks, 0, stateMasksLength);
-		return shortenedStateMasks;
-	}
-
-	/**
-	 * Returns the content assistant ready to be used with the given source
-	 * viewer.<br />
-	 * Note: The same instance of IContentAssistant is returned regardless of
-	 * the source viewer passed in.
-	 * <p>
-	 * Clients cannot override this method. Instead, clients wanting to add
-	 * their own processors should override
-	 * <code>getContentAssistProcessors(ISourceViewer, String)</code>
-	 * </p>
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return a content assistant
-	 * @see #getContentAssistProcessors(ISourceViewer, String)
-	 */
-	final public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
-		/*
-		 * Note: This method was made final so that StructuredContentAssist is
-		 * always used and content assist extension point always works.
-		 */
-		if (fContentAssistant == null) {
-			fContentAssistant = new StructuredContentAssistant();
-
-			// content assistant configurations
-			fContentAssistant.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
-			fContentAssistant.enableAutoActivation(true);
-			fContentAssistant.setAutoActivationDelay(500);
-			fContentAssistant.setProposalPopupOrientation(IContentAssistant.PROPOSAL_OVERLAY);
-			fContentAssistant.setContextInformationPopupOrientation(IContentAssistant.CONTEXT_INFO_ABOVE);
-			fContentAssistant.setInformationControlCreator(getInformationControlCreator(sourceViewer));
-
-			// add content assist processors for each partition type
-			String[] types = getConfiguredContentTypes(sourceViewer);
-			for (int i = 0; i < types.length; i++) {
-				String type = types[i];
-
-				// add all content assist processors for current partiton type
-				IContentAssistProcessor[] processors = getContentAssistProcessors(sourceViewer, type);
-				if (processors != null) {
-					for (int j = 0; j < processors.length; j++) {
-						fContentAssistant.setContentAssistProcessor(processors[j], type);
-					}
-				}
-			}
-		}
-		return fContentAssistant;
-	}
-
-	/**
-	 * Returns the content assist processors that will be used for content
-	 * assist in the given source viewer and for the given partition type.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @param partitionType
-	 *            the partition type for which the content assist processors
-	 *            are applicable
-	 * @return IContentAssistProcessors or null if should not be supported
-	 */
-	protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
-		return null;
-	}
-
-	/**
-	 * Returns the content formatter ready to be used with the given source
-	 * viewer.
-	 * <p>
-	 * It is not recommended that clients override this method as it may
-	 * become <code>final</code> in the future and replaced by an extensible
-	 * framework.
-	 * </p>
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return a content formatter or <code>null</code> if formatting should
-	 *         not be supported
-	 */
-	public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {
-		return null;
-	}
-
-	/**
-	 * Returns the hyperlink presenter for the given source viewer.<br />
-	 * Note: Clients cannot override this method because this method returns a
-	 * specially configured hyperlink presenter for the StructuredTextViewer.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return a hyperlink presenter specially configured for
-	 *         StructuredTextViewer
-	 */
-	final public IHyperlinkPresenter getHyperlinkPresenter(ISourceViewer sourceViewer) {
-		/*
-		 * This implementation returns a hyperlink presenter that uses
-		 * Highlither instead of PresentationReconciler
-		 */
-		if (fPreferenceStore == null) {
-			return super.getHyperlinkPresenter(sourceViewer);
-		}
-		return new HighlighterHyperlinkPresenter(fPreferenceStore);
-	}
-
-	/**
-	 * Returns the information control creator. The creator is a factory
-	 * creating information controls for the given source viewer.<br />
-	 * Note: Clients cannot override this method at this time.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return the information control creator
-	 */
-	final public IInformationControlCreator getInformationControlCreator(ISourceViewer sourceViewer) {
-		// used by hover help
-		return new IInformationControlCreator() {
-			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent, SWT.NONE, new HTMLTextPresenter(true));
-			}
-		};
-	}
-
-	/**
-	 * Returns the information presenter ready to be used with the given
-	 * source viewer.
-	 * <p>
-	 * Clients cannot override this method. Instead, clients wanting to add
-	 * their own information providers should override
-	 * <code>getInformationProvider(ISourceViewer, String)</code>
-	 * </p>
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return a content assistant
-	 * @see #getInformationProvider(ISourceViewer, String)
-	 */
-	final public IInformationPresenter getInformationPresenter(ISourceViewer sourceViewer) {
-		InformationPresenter presenter = new InformationPresenter(getInformationPresenterControlCreator(sourceViewer));
-
-		// information presenter configurations
-		presenter.setSizeConstraints(60, 10, true, true);
-		presenter.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
-
-		// add information providers for each partition type
-		String[] types = getConfiguredContentTypes(sourceViewer);
-		for (int i = 0; i < types.length; i++) {
-			String type = types[i];
-
-			IInformationProvider provider = getInformationProvider(sourceViewer, type);
-			if (provider != null) {
-				presenter.setInformationProvider(provider, type);
-			}
-		}
-
-		return presenter;
-	}
-
-	/**
-	 * Returns the information provider that will be used for information
-	 * presentation in the given source viewer and for the given partition
-	 * type.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @param partitionType
-	 *            the partition type for which the information provider is
-	 *            applicable
-	 * @return IInformationProvider or null if should not be supported
-	 */
-	protected IInformationProvider getInformationProvider(ISourceViewer sourceViewer, String partitionType) {
-		return null;
-	}
-
-	/**
-	 * Returns the information presenter control creator. The creator is a
-	 * factory creating the presenter controls for the given source viewer.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return an information control creator
-	 */
-	private IInformationControlCreator getInformationPresenterControlCreator(ISourceViewer sourceViewer) {
-		return new IInformationControlCreator() {
-			public IInformationControl createInformationControl(Shell parent) {
-				int shellStyle = SWT.RESIZE | SWT.TOOL;
-				int style = SWT.V_SCROLL | SWT.H_SCROLL;
-				return new DefaultInformationControl(parent, shellStyle, style, new HTMLTextPresenter(false));
-			}
-		};
-	}
-
-	/**
-	 * Returns the line style providers that will be used for syntax
-	 * highlighting in the given source viewer.
-	 * <p>
-	 * Not fully API since return type LineStyleProvider is not API.
-	 * </p>
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @param partitionType
-	 *            the partition type for which the lineStyleProviders are
-	 *            applicable
-	 * @return LineStyleProvders or null if should not be supported
-	 */
-	public LineStyleProvider[] getLineStyleProviders(ISourceViewer sourceViewer, String partitionType) {
-		return null;
-	}
-
-	/**
-	 * StructuredTextViewer currently does not support presentation
-	 * reconciler, so clients cannot override this method to provide their own
-	 * presentation reconciler. <br />
-	 * See <code>getLineStyleProviders(ISourceViewer, String)</code> for
-	 * alternative way to provide highlighting information.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return always returns null
-	 * @see #getLineStyleProviders(ISourceViewer, String)
-	 */
-	final public IPresentationReconciler getPresentationReconciler(ISourceViewer sourceViewer) {
-		/*
-		 * This implementation returns null because StructuredTextViewer does
-		 * not use presentation reconciler
-		 */
-		return null;
-	}
-
-	/**
-	 * Returns the reconciler ready to be used with the given source viewer.<br />
-	 * Note: The same instance of IReconciler is returned regardless of the
-	 * source viewer passed in.
-	 * <p>
-	 * Clients cannot override this method. Instead, clients wanting to add
-	 * their own reconciling strategy should use the
-	 * <code>org.eclipse.wst.sse.ui.extensions.sourcevalidation</code>
-	 * extension point.
-	 * </p>
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return a reconciler
-	 */
-	final public IReconciler getReconciler(ISourceViewer sourceViewer) {
-		boolean reconcilingEnabled = fPreferenceStore.getBoolean(CommonEditorPreferenceNames.EVALUATE_TEMPORARY_PROBLEMS);
-		if (sourceViewer == null || !reconcilingEnabled)
-			return null;
-
-		/*
-		 * Only create reconciler if sourceviewer is present
-		 */
-		if (fReconciler == null && sourceViewer != null) {
-			StructuredRegionProcessor reconciler = new StructuredRegionProcessor();
-
-			// reconciler configurations
-			reconciler.setDocumentPartitioning(getConfiguredDocumentPartitioning(sourceViewer));
-
-			fReconciler = reconciler;
-		}
-		return fReconciler;
-	}
-
-	public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType, int stateMask) {
-		ITextHover textHover = null;
-
-		/*
-		 * Returns a default problem, annotation, and best match hover
-		 * depending on stateMask
-		 */
-		TextHoverManager.TextHoverDescriptor[] hoverDescs = SSEUIPlugin.getDefault().getTextHoverManager().getTextHovers();
-		int i = 0;
-		while (i < hoverDescs.length && textHover == null) {
-			if (hoverDescs[i].isEnabled() && computeStateMask(hoverDescs[i].getModifierString()) == stateMask) {
-				String hoverType = hoverDescs[i].getId();
-				if (TextHoverManager.PROBLEM_HOVER.equalsIgnoreCase(hoverType))
-					textHover = new ProblemAnnotationHoverProcessor();
-				else if (TextHoverManager.ANNOTATION_HOVER.equalsIgnoreCase(hoverType))
-					textHover = new AnnotationHoverProcessor();
-				else if (TextHoverManager.COMBINATION_HOVER.equalsIgnoreCase(hoverType))
-					textHover = new BestMatchHover(null);
-			}
-			i++;
-		}
-		return textHover;
-	}
-
-	/**
-	 * Returns the undo manager for the given source viewer.<br />
-	 * Note: Clients cannot override this method because this method returns a
-	 * specially configured undo manager for the StructuredTextViewer.
-	 * 
-	 * @param sourceViewer
-	 *            the source viewer to be configured by this configuration
-	 * @return an undo manager specially configured for StructuredTextViewer
-	 */
-	final public IUndoManager getUndoManager(ISourceViewer sourceViewer) {
-		/*
-		 * This implementation returns an UndoManager that is used exclusively
-		 * in StructuredTextViewer
-		 */
-		return new StructuredTextViewerUndoManager();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerUndoManager.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerUndoManager.java
deleted file mode 100644
index 33797c5..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/StructuredTextViewerUndoManager.java
+++ /dev/null
@@ -1,200 +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.wst.sse.ui;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.IUndoManager;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-
-
-/**
- * Undo manager exclusively for StructuredTextViewers ONLY. This undo manager
- * is aware that structured documents have their own undo manager. This
- * handles communication between IUndoManager and IStructuredTextUndoManager.
- */
-class StructuredTextViewerUndoManager implements IUndoManager {
-	class UndoNotifier implements ISelectionChangedListener {
-		public void selectionChanged(SelectionChangedEvent event) {
-			if ((fUndoManager != null) && (event != null)) {
-				if (event.getSelection() instanceof ITextSelection) {
-					fUndoManager.forceEndOfPendingCommand(this, ((ITextSelection) event.getSelection()).getOffset(), ((ITextSelection) event.getSelection()).getLength());
-				}
-			}
-		}
-
-	}
-
-	private StructuredTextViewer fTextViewer = null;
-	private IStructuredTextUndoManager fUndoManager = null;
-	private ISelectionChangedListener fUndoNotifier = new UndoNotifier();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#beginCompoundChange()
-	 */
-	public void beginCompoundChange() {
-		// forward the request to the model-based undo manager
-		if (fUndoManager != null)
-			fUndoManager.beginRecording(fTextViewer);
-	}
-
-	/**
-	 * Associates a viewer to this undo manager and also attempts to get the
-	 * correct document-specific undo manager.
-	 * 
-	 * @param viewer -
-	 *            Assumes viewer instanceof StructuredTextViewer
-	 */
-	public void connect(ITextViewer viewer) {
-		// future_TODO could probably optimize this to check if already
-		// connected to same viewer/undo manager, dont do anything
-
-		// disconnect from any old manager/viewer
-		disconnect();
-
-		// connect to new viewer/undo manager
-		fTextViewer = (StructuredTextViewer) viewer;
-		IDocument doc = fTextViewer.getDocument();
-		if (doc instanceof IStructuredDocument) {
-			IStructuredDocument structuredDocument = (IStructuredDocument) doc;
-			setDocument(structuredDocument);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#disconnect()
-	 */
-	public void disconnect() {
-		// disconnect the viewer from the undo manager
-		if (fUndoManager != null) {
-			fTextViewer.removeSelectionChangedListener(fUndoNotifier);
-			fUndoManager.disconnect(fTextViewer);
-		}
-
-		// null out the viewer and undo manager
-		fTextViewer = null;
-		fUndoManager = null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#endCompoundChange()
-	 */
-	public void endCompoundChange() {
-		// forward the request to the model-based undo manager
-		if (fUndoManager != null)
-			fUndoManager.endRecording(fTextViewer);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#redo()
-	 */
-	public void redo() {
-		// forward the request to the model-based undo manager
-		if (fUndoManager != null)
-			fUndoManager.redo(fTextViewer);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#redoable()
-	 */
-	public boolean redoable() {
-		boolean canRedo = false;
-
-		// forward the request to the model-based undo manager
-		if (fUndoManager != null)
-			canRedo = fUndoManager.redoable();
-
-		return canRedo;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#reset()
-	 */
-	public void reset() {
-		// cannot really reset model-based undo manager because other clients
-		// will be affected
-	}
-
-	/**
-	 * Disconnect from the old undo manager and connect to the undo manager
-	 * associated with the new document.
-	 * 
-	 * @param document -
-	 *            assumes document is not null
-	 */
-	public void setDocument(IStructuredDocument document) {
-		if (fUndoManager != null) {
-			fTextViewer.removeSelectionChangedListener(fUndoNotifier);
-			fUndoManager.disconnect(fTextViewer);
-		}
-
-		fUndoManager = document.getUndoManager();
-		if (fUndoManager != null) {
-			fUndoManager.connect(fTextViewer);
-			fTextViewer.addSelectionChangedListener(fUndoNotifier);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#setMaximalUndoLevel(int)
-	 */
-	public void setMaximalUndoLevel(int undoLevel) {
-		// cannot really set maximal undo level on model-based undo manager
-		// because other clients will be affected
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#undo()
-	 */
-	public void undo() {
-		// forward the request to the model-based undo manager
-		if (fUndoManager != null)
-			fUndoManager.undo(fTextViewer);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.IUndoManager#undoable()
-	 */
-	public boolean undoable() {
-		boolean canUndo = false;
-
-		// forward the request to the model-based undo manager
-		if (fUndoManager != null)
-			canUndo = fUndoManager.undoable();
-
-		return canUndo;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/AbstractDropAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/AbstractDropAction.java
deleted file mode 100644
index d1771aa..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/AbstractDropAction.java
+++ /dev/null
@@ -1,94 +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.wst.sse.ui.internal;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-
-/**
- */
-public abstract class AbstractDropAction implements IDropAction {
-
-	/*
-	 * Replaces targetEditor's current selection by "text"
-	 */
-	protected boolean insert(String text, IEditorPart targetEditor) {
-		if (text == null || text.length() == 0) {
-			return true;
-		}
-
-		ITextSelection textSelection = null;
-		IDocument doc = null;
-		ISelection selection = null;
-
-		ISourceEditingTextTools tools = (ISourceEditingTextTools) targetEditor.getAdapter(ISourceEditingTextTools.class);
-		if (tools != null) {
-			doc = tools.getDocument();
-			selection = tools.getSelection();
-		}
-
-		ITextEditor textEditor = null;
-		if (targetEditor instanceof ITextEditor) {
-			textEditor = (ITextEditor) targetEditor;
-		}
-		if (textEditor == null) {
-			textEditor = (ITextEditor) ((IAdaptable) targetEditor).getAdapter(ITextEditor.class);
-		}
-		if (textEditor == null && tools != null && tools.getEditorPart() instanceof ITextEditor) {
-			textEditor = (ITextEditor) tools.getEditorPart();
-		}
-		if (textEditor == null && tools != null && tools.getEditorPart() != null) {
-			textEditor = (ITextEditor) tools.getEditorPart().getAdapter(ITextEditor.class);
-		}
-
-		if (selection == null && textEditor != null) {
-			selection = textEditor.getSelectionProvider().getSelection();
-		}
-		if (doc == null && textEditor != null) {
-			doc = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
-		}
-
-		if (selection instanceof ITextSelection) {
-			textSelection = (ITextSelection) selection;
-			try {
-				doc.replace(textSelection.getOffset(), textSelection.getLength(), text);
-			}
-			catch (BadLocationException e) {
-				return false;
-			}
-		}
-		if (textEditor != null && textSelection != null) {
-			ISelectionProvider sp = textEditor.getSelectionProvider();
-			ITextSelection sel = new TextSelection(textSelection.getOffset(), text.length());
-			sp.setSelection(sel);
-			textEditor.selectAndReveal(sel.getOffset(), sel.getLength());
-		}
-
-		return true;
-	}
-
-	public boolean isSupportedData(Object data) {
-		return true;
-	}
-
-	public abstract boolean run(DropTargetEvent event, IEditorPart targetEditor);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/CaretMediator.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/CaretMediator.java
deleted file mode 100644
index e78d467..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/CaretMediator.java
+++ /dev/null
@@ -1,284 +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.wst.sse.ui.internal;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.sse.ui.internal.view.events.CaretEvent;
-import org.eclipse.wst.sse.ui.internal.view.events.ICaretListener;
-
-/**
- * Has the responsibility of listening for key events, and mouse events,
- * deciding if the caret has moved (without a text change), and if so, will
- * notify CaretListeners that the caret has moved. Objects which are
- * interested in ALL caret postion changes will also have to listen for
- * textChanged events.
- * 
- * @deprecated - use base selection notification
- */
-public class CaretMediator implements Listener {
-
-	class CaretMediatorListener implements KeyListener, MouseListener {
-		public void keyPressed(KeyEvent e) {
-			internalKeyPressed(e);
-		}
-
-		public void keyReleased(KeyEvent e) {
-			internalKeyReleased(e);
-		}
-
-		public void mouseDoubleClick(MouseEvent e) {
-		}
-
-		public void mouseDown(MouseEvent e) {
-			internalMouseDown(e);
-		}
-
-		public void mouseUp(MouseEvent e) {
-			internalMouseUp(e);
-		}
-	}
-
-	class RefreshDelayJob extends Job {
-		private int fDelay = 0;
-		RefreshDelayJob(int delay) {
-			super(SSEUIMessages.caret_update); //$NON-NLS-1$
-			setSystem(true);
-			fDelay = delay;
-		}
-
-		/**
-		 * Setup a delayed CaretEvent firing
-		 */
-		void touch() {
-			cancel();
-			schedule(fDelay);
-		}
-
-		protected IStatus run(IProgressMonitor monitor) {
-			handleEvent(null);
-			return Status.OK_STATUS;
-		}
-	}
-	
-	RefreshDelayJob fDelayer = null;
-	private static final int DELAY = 300;
-
-	/** used just for debug print outs */
-	private long endTime;
-	private long startTime;
-
-	protected ICaretListener[] fCaretListeners;
-	protected CaretMediatorListener internalListener;
-	protected StyledText textWidget;
-
-	/**
-	 * CaretMediator constructor comment.
-	 */
-	public CaretMediator() {
-		super();
-	}
-
-	/**
-	 * CaretMediator constructor comment. Must always provide the widget its
-	 * supposed to listen to.
-	 */
-	public CaretMediator(StyledText styledTextWidget) {
-		this();
-		setTextWidget(styledTextWidget);
-	}
-
-	public synchronized void addCaretListener(ICaretListener listener) {
-		if (Debug.debugStructuredDocument) {
-			System.out.println("CaretMediator::addCaretListener. Request to add an instance of " + listener.getClass() + " as a listener on caretlistner.");//$NON-NLS-2$//$NON-NLS-1$
-		}
-		// make sure listener is not already in listening array
-		// (and if it is, print a warning to aid debugging, if needed)
-
-		if (Utilities.contains(fCaretListeners, listener)) {
-			if (Debug.displayWarnings) {
-				System.out.println("CaretMediator::addCaretListener. listener " + listener + " was added more than once. ");//$NON-NLS-2$//$NON-NLS-1$
-			}
-		} else {
-			if (Debug.debugStructuredDocument) {
-				System.out.println("CaretMediator::addCaretListener. Adding an instance of " + listener.getClass() + " as a listener on caret mediator.");//$NON-NLS-2$//$NON-NLS-1$
-			}
-			int oldSize = 0;
-			if (fCaretListeners != null) {
-				// normally won't be null, but we need to be sure, for first
-				// time through
-				oldSize = fCaretListeners.length;
-			}
-			int newSize = oldSize + 1;
-			ICaretListener[] newListeners = new ICaretListener[newSize];
-			if (fCaretListeners != null) {
-				System.arraycopy(fCaretListeners, 0, newListeners, 0, oldSize);
-			}
-			// add listener to last position
-			newListeners[newSize - 1] = listener;
-			//
-			// now switch new for old
-			fCaretListeners = newListeners;
-
-		}
-	}
-
-	protected void fireCaretEvent(CaretEvent event) {
-		if (fCaretListeners != null) {
-			// we must assign listeners to local variable to be thread safe,
-			// since the add and remove listner methods
-			// can change this object's actual instance of the listener array
-			// from another thread
-			// (and since object assignment is atomic, we don't need to
-			// synchronize
-			ICaretListener[] holdListeners = fCaretListeners;
-			//
-			for (int i = 0; i < holdListeners.length; i++) {
-				holdListeners[i].caretMoved(event);
-			}
-		}
-	}
-
-	public void handleEvent(Event e) {
-		Display display = null;
-
-		if (Debug.debugCaretMediator) {
-			endTime = System.currentTimeMillis();
-			System.out.println("Timer fired: " + (endTime - startTime)); //$NON-NLS-1$
-		}
-
-		// check if 'okToUse'
-		if (textWidget != null && !textWidget.isDisposed()) {
-			display = textWidget.getDisplay();
-			if ((display != null) && (!display.isDisposed())) {
-				display.asyncExec(new Runnable() {
-					public void run() {
-						if (textWidget != null && !textWidget.isDisposed()) {
-							fireCaretEvent(new CaretEvent(textWidget, textWidget.getCaretOffset()));
-						}
-					}
-				});
-			}
-		}
-	}
-
-	protected void internalKeyPressed(KeyEvent e) {
-		fDelayer.cancel();
-	}
-
-	protected void internalKeyReleased(KeyEvent e) {
-		switch (e.keyCode) {
-			case SWT.ARROW_DOWN :
-			case SWT.ARROW_UP :
-			case SWT.ARROW_LEFT :
-			case SWT.ARROW_RIGHT :
-			case SWT.HOME :
-			case SWT.END :
-			case SWT.PAGE_DOWN :
-			case SWT.PAGE_UP : {
-				fDelayer.touch();
-				break;
-			}
-			default : {
-				// always update cursor postion, even during normal typing
-				// (the logic may look funny, since we always to the same
-				// thing, but we haven't always done the same thing, so I
-				// wanted to leave that fact documented via code.)
-				fDelayer.touch();
-			}
-		}
-	}
-
-	protected void internalMouseDown(MouseEvent e) {
-		fDelayer.cancel();
-	}
-
-	protected void internalMouseUp(MouseEvent e) {
-		// Note, even during a swipe select, when the mouse button goes up,
-		// and the widget is
-		// queried for the current caret postion, it always returns the
-		// beginning of the selection,
-		// which is desirable (at least for the known use of this feature,
-		// which is to signal
-		// that the property sheet can update itself.
-		fDelayer.touch();
-	}
-
-	public void release() {
-		fDelayer.cancel();
-		if (textWidget != null && !textWidget.isDisposed()) {
-			textWidget.removeKeyListener(internalListener);
-			textWidget.removeMouseListener(internalListener);
-			textWidget = null;
-		}
-	}
-
-	public synchronized void removeCaretListener(ICaretListener listener) {
-		if ((fCaretListeners != null) && (listener != null)) {
-			// if its not in the listeners, we'll ignore the request
-			if (Utilities.contains(fCaretListeners, listener)) {
-				int oldSize = fCaretListeners.length;
-				int newSize = oldSize - 1;
-				ICaretListener[] newListeners = new ICaretListener[newSize];
-				int index = 0;
-				for (int i = 0; i < oldSize; i++) {
-					if (fCaretListeners[i] == listener) { // ignore
-					} else {
-						// copy old to new if its not the one we are removing
-						newListeners[index++] = fCaretListeners[i];
-					}
-				}
-				// now that we have a new array, let's switch it for the old
-				// one
-				fCaretListeners = newListeners;
-			}
-		}
-	}
-
-	public void setTextWidget(StyledText newTextWidget) {
-		if(fDelayer == null) {
-			fDelayer = new RefreshDelayJob(DELAY);
-		}
-
-		// unhook from previous, if any
-		if (this.textWidget != null) {
-			fDelayer.cancel();
-			this.textWidget.removeKeyListener(internalListener);
-			this.textWidget.removeMouseListener(internalListener);
-		}
-
-		this.textWidget = newTextWidget;
-
-		if (internalListener == null) {
-			internalListener = new CaretMediatorListener();
-		}
-
-		if (this.textWidget != null) {
-			this.textWidget.addKeyListener(internalListener);
-			this.textWidget.addMouseListener(internalListener);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedConfigurationBuilder.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedConfigurationBuilder.java
deleted file mode 100644
index e28996b..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedConfigurationBuilder.java
+++ /dev/null
@@ -1,265 +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.wst.sse.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.extension.RegistryReader;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Simple generic ID to class to mapping. Loads a specified class defined in a
- * configuration element with the matching type and target ID. Example
- * plugin.xml section:
- * 
- * &lt;extension
- * point=&quot;org.eclipse.wst.sse.ui.editorConfiguration&quot;&gt;contentoutlineconfiguration
- * target=&quot;org.eclipse.wst.sse.dtd.core.dtdsource&quot;
- * class=&quot;org.eclipse.wst.sse.ui.dtd.views.contentoutline.DTDContentOutlineConfiguration&quot;/&gt;
- * &lt;/extension&gt;
- * 
- * Used in code by getConfiguration(&quot;contentoutlineconfiguration&quot;,
- * &quot;org.eclipse.wst.dtd.ui.StructuredTextEditorDTD&quot;);
- * 
- */
-public class ExtendedConfigurationBuilder extends RegistryReader {
-	/**
-	 * Extension type to pass into getConfigurations to get content outline
-	 * configuration
-	 */
-	public static final String CONTENTOUTLINECONFIGURATION = "contentOutlineConfiguration"; //$NON-NLS-1$
-	/**
-	 * Extension type to pass into getConfigurations to get property sheet
-	 * configuration
-	 */
-	public static final String PROPERTYSHEETCONFIGURATION = "propertySheetConfiguration"; //$NON-NLS-1$
-	/**
-	 * Extension type to pass into getConfigurations to get source viewer
-	 * configuration
-	 */
-	public static final String SOURCEVIEWERCONFIGURATION = "sourceViewerConfiguration"; //$NON-NLS-1$
-
-	private static final String ATT_CLASS = "class"; //$NON-NLS-1$
-	private static final String ATT_TARGET = "target"; //$NON-NLS-1$
-	private static final String ATT_TYPE = "type"; //$NON-NLS-1$
-	private static final String CONFIGURATION = "provisionalConfiguration"; //$NON-NLS-1$
-	private static Map configurationMap = null;
-	private final static boolean debugTime = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/extendedconfigurationbuilder/time")); //$NON-NLS-1$  //$NON-NLS-2$
-	private static final String DEFINITION = "provisionalDefinition"; //$NON-NLS-1$
-	private static final String EP_EXTENDEDCONFIGURATION = "editorConfiguration"; //$NON-NLS-1$
-	private static ExtendedConfigurationBuilder instance = null;
-	public static final String VALUE = "value"; //$NON-NLS-1$
-
-	/**
-	 * Creates an extension. If the extension plugin has not been loaded a
-	 * busy cursor will be activated during the duration of the load.
-	 * 
-	 * @param element
-	 *            the config element defining the extension
-	 * @param classAttribute
-	 *            the name of the attribute carrying the class
-	 * @returns the extension object if successful. If an error occurs when
-	 *          createing executable extension, the exception is logged, and
-	 *          null returned.
-	 */
-	static Object createExtension(final IConfigurationElement element, final String classAttribute, final String targetID) {
-		final Object[] result = new Object[1];
-		String pluginId = element.getDeclaringExtension().getNamespace();
-		Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle.getState() == Bundle.ACTIVE) {
-			try {
-				result[0] = element.createExecutableExtension(classAttribute);
-			}
-			catch (Exception e) {
-				// catch and log ANY exception while creating the extension
-				Logger.logException("error loading class " + classAttribute + " for " + targetID, e); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-		else {
-			BusyIndicator.showWhile(null, new Runnable() {
-				public void run() {
-					try {
-						result[0] = element.createExecutableExtension(classAttribute);
-					}
-					catch (Exception e) {
-						// catch and log ANY exception from extension point
-						Logger.logException("error loading class " + classAttribute + " for " + targetID, e); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-				}
-			});
-		}
-		return result[0];
-	}
-
-	public synchronized static ExtendedConfigurationBuilder getInstance() {
-		if (instance == null)
-			instance = new ExtendedConfigurationBuilder();
-		return instance;
-	}
-
-	long time0 = 0;
-
-	private ExtendedConfigurationBuilder() {
-		super();
-	}
-
-	private List createConfigurations(List configurations, String extensionType, String targetID) {
-		if (configurations == null)
-			return new ArrayList(0);
-		List result = new ArrayList(1);
-		for (int i = 0; i < configurations.size(); i++) {
-			IConfigurationElement element = (IConfigurationElement) configurations.get(i);
-			if ((element.getName().equals(extensionType) || (element.getName().equals(CONFIGURATION) && extensionType.equals(element.getAttribute(ATT_TYPE))))) {
-				String[] targets = StringUtils.unpack(element.getAttribute(ATT_TARGET));
-				for (int j = 0; j < targets.length; j++) {
-					if (targetID.equals(targets[j].trim())) {
-						Object o = createExtension(element, ATT_CLASS, targetID);
-						if (o != null) {
-							result.add(o);
-						}
-					}
-				}
-			}
-		}
-		return result;
-	}
-
-	private IConfigurationElement[] findConfigurationElements(List configurations, String extensionType, String targetID) {
-		if (configurations == null)
-			return new IConfigurationElement[0];
-		List result = new ArrayList(1);
-		for (int i = 0; i < configurations.size(); i++) {
-			IConfigurationElement element = (IConfigurationElement) configurations.get(i);
-			if ((element.getName().equals(extensionType) || (element.getName().equals(DEFINITION) && extensionType.equals(element.getAttribute(ATT_TYPE))))) {
-				String[] targets = StringUtils.unpack(element.getAttribute(ATT_TARGET));
-				for (int j = 0; j < targets.length; j++) {
-					if (targetID.equals(targets[j].trim())) {
-						result.add(element);
-					}
-				}
-			}
-		}
-		return (IConfigurationElement[]) result.toArray(new IConfigurationElement[0]);
-	}
-
-	/**
-	 * Returns a configuration for the given extensionType matching the
-	 * targetID, if one is available. If more than one configuration is
-	 * defined, the first one found is returned.
-	 * 
-	 * @param extensionType
-	 * @param targetID
-	 * @return a configuration object, if one was defined
-	 */
-	public Object getConfiguration(String extensionType, String targetID) {
-		if (targetID == null || targetID.length() == 0)
-			return null;
-		List configurations = getConfigurations(extensionType, targetID);
-		if (configurations.isEmpty())
-			return null;
-		return configurations.get(0);
-	}
-
-	/**
-	 * Returns all configurations for the given extensionType matching the
-	 * targetID, if any are available.
-	 * 
-	 * @param extensionType
-	 * @param targetID
-	 * @return a List of configuration objects, which may or may not be empty
-	 */
-	public List getConfigurations(String extensionType, String targetID) {
-		if (targetID == null || targetID.length() == 0)
-			return new ArrayList(0);
-		if (configurationMap == null) {
-			configurationMap = new HashMap(0);
-			synchronized (configurationMap) {
-				readRegistry(Platform.getExtensionRegistry(), SSEUIPlugin.ID, EP_EXTENDEDCONFIGURATION);
-				if (debugTime) {
-					System.out.println(getClass().getName() + "#readRegistry():  " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-					time0 = System.currentTimeMillis();
-				}
-			}
-		}
-		List extensions = (List) configurationMap.get(extensionType);
-		List configurations = createConfigurations(extensions, extensionType, targetID);
-		if (debugTime) {
-			if (!configurations.isEmpty())
-				System.out.println(getClass().getName() + "#getConfiguration(" + extensionType + ", " + targetID + "): configurations loaded in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			else
-				System.out.println(getClass().getName() + "#getConfiguration(" + extensionType + ", " + targetID + "): ran in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-		return configurations;
-	}
-
-	/**
-	 * Returns all declared definitions for the given extensionType matching
-	 * the targetID, if any are available.
-	 * 
-	 * @param extensionType
-	 * @param targetID
-	 * @return An array containing the definitions, empty if none were
-	 *         declared
-	 */
-	public String[] getDefinitions(String extensionType, String targetID) {
-		if (targetID == null || targetID.length() == 0)
-			return new String[0];
-		if (debugTime) {
-			time0 = System.currentTimeMillis();
-		}
-		if (configurationMap == null) {
-			configurationMap = new HashMap(0);
-			synchronized (configurationMap) {
-				readRegistry(Platform.getExtensionRegistry(), SSEUIPlugin.ID, EP_EXTENDEDCONFIGURATION);
-				if (debugTime) {
-					System.out.println(getClass().getName() + "#readRegistry():  " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-					time0 = System.currentTimeMillis();
-				}
-			}
-		}
-		List definitions = (List) configurationMap.get(extensionType);
-		IConfigurationElement[] elements = findConfigurationElements(definitions, extensionType, targetID);
-		String[] values = new String[elements.length];
-		for (int i = 0; i < values.length; i++) {
-			values[i] = elements[i].getAttribute(VALUE);
-		}
-		if (debugTime) {
-			if (values.length > 0)
-				System.out.println(getClass().getName() + "#getDefinitions(" + extensionType + ", " + targetID + "): definition loaded in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			else
-				System.out.println(getClass().getName() + "#getDefinitions(" + extensionType + ", " + targetID + "): ran in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-		return values;
-	}
-
-	protected boolean readElement(IConfigurationElement element) {
-		String name = element.getName();
-		if (name.equals(CONFIGURATION) || name.equals(DEFINITION))
-			name = element.getAttribute(ATT_TYPE);
-		List configurations = (List) configurationMap.get(name);
-		if (configurations == null) {
-			configurations = new ArrayList(1);
-			configurationMap.put(name, configurations);
-		}
-		configurations.add(element);
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedEditorActionBuilder.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedEditorActionBuilder.java
deleted file mode 100644
index ef7f745..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedEditorActionBuilder.java
+++ /dev/null
@@ -1,789 +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.wst.sse.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IKeyBindingService;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.part.MultiPageEditorSite;
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.wst.sse.ui.internal.extension.ActionDescriptor;
-import org.eclipse.wst.sse.ui.internal.extension.IExtendedEditorActionProxyForDelayLoading;
-import org.eclipse.wst.sse.ui.internal.extension.RegistryReader;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-
-
-/**
- * This class reads the registry for extensions that plug into 'editorActions'
- * extension point.
- */
-
-public class ExtendedEditorActionBuilder extends RegistryReader {
-
-	public class ExtendedContributor implements IExtendedContributor, IMenuListener {
-		private IExtendedSimpleEditor activeExtendedEditor = null;
-
-		private List cache;
-		private Map map = new HashMap();
-		private IMenuManager menuBar = null;
-
-		private Set menus = new HashSet();
-
-		public ExtendedContributor(List cache) {
-			this.cache = cache;
-		}
-
-		private IExtendedSimpleEditor computeExtendedEditor(final IEditorPart editor) {
-			IExtendedSimpleEditor simpleEditor = null;
-			if (editor instanceof IExtendedSimpleEditor) {
-				simpleEditor = (IExtendedSimpleEditor) editor;
-			}
-			if (editor != null && simpleEditor == null) {
-				final ISourceEditingTextTools tools = (ISourceEditingTextTools) editor.getAdapter(ISourceEditingTextTools.class);
-				if (tools != null) {
-					simpleEditor = new IExtendedSimpleEditor() {
-						public int getCaretPosition() {
-							return tools.getCaretOffset();
-						}
-
-						public IDocument getDocument() {
-							return tools.getDocument();
-						}
-
-						public IEditorPart getEditorPart() {
-							return tools.getEditorPart();
-						}
-
-						public Point getSelectionRange() {
-							ITextSelection selection = tools.getSelection();
-							return new Point(selection.getOffset(), selection.getOffset() + selection.getLength());
-						}
-
-					};
-				}
-			}
-			return simpleEditor;
-		}
-
-		public void contributeToMenu(IMenuManager menu) {
-			menuBar = menu;
-			long time0 = System.currentTimeMillis();
-			for (int i = 0; i < cache.size(); i++) {
-				Object obj = cache.get(i);
-				if (obj instanceof IConfigurationElement) {
-					IConfigurationElement menuElement = (IConfigurationElement) obj;
-					if ((menuElement.getName()).equals(TAG_MENU)) {
-						contributeMenu(menuElement, menu, true);
-						if (debugMenu)
-							System.out.println(getClass().getName() + "#contributeToMenu() added: " + menuElement.getAttribute(ATT_ID)); //$NON-NLS-1$
-					}
-				}
-				else if (obj instanceof ActionDescriptor) {
-					try {
-						ActionDescriptor ad = (ActionDescriptor) obj;
-						IMenuManager mm = contributeMenuAction(ad, menu, true, false);
-						if (mm != null) {
-							map.put(ad.getContributionItem(), mm);
-							mm.addMenuListener(this);
-							menus.add(mm);
-							if (debugMenu)
-								System.out.println(getClass().getName() + "#contributeToMenu() added: " + ad.getId()); //$NON-NLS-1$
-						}
-					}
-					catch (Exception e) {
-						Logger.logException("contributing to menu", e); //$NON-NLS-1$
-					}
-				}
-			}
-			if (debugContributeTime)
-				System.out.println(getClass().getName() + "#contributeToMenu(): ran in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		public void contributeToPopupMenu(IMenuManager menu) {
-			long time0 = System.currentTimeMillis();
-			for (int i = 0; i < cache.size(); i++) {
-				Object obj = cache.get(i);
-				if (obj instanceof IConfigurationElement) {
-					IConfigurationElement menuElement = (IConfigurationElement) obj;
-					if ((menuElement.getName()).equals(TAG_POPUPMENU)) {
-						contributeMenu(menuElement, menu, true);
-					}
-				}
-				else if (obj instanceof ActionDescriptor) {
-					try {
-						ActionDescriptor ad = (ActionDescriptor) obj;
-						IAction a = ad.getAction();
-						if (a instanceof IExtendedEditorAction) {
-							// uncaught exceptions could cause the menu to not
-							// be shown
-							try {
-								if (((ad.getPopupMenuPath() != null) || (ad.getPopupMenuGroup() != null)) && (a instanceof IExtendedEditorActionProxyForDelayLoading)) {
-								    ((IExtendedEditorActionProxyForDelayLoading)a).realize();
-								}
-
-								IExtendedEditorAction eea = (IExtendedEditorAction) a;
-								eea.setActiveExtendedEditor(activeExtendedEditor);
-								eea.update();
-								if (eea.isVisible()) {
-									IMenuManager parent = contributeMenuAction(ad, menu, true, true);
-									if (debugPopup && parent != null)
-										System.out.println(getClass().getName() + "#contributeToPopupMenu() added: " + ad.getId()); //$NON-NLS-1$
-								}
-							}
-							catch (Exception e) {
-								Logger.logException(e);
-							}
-
-						}
-						else {
-							IMenuManager parent = contributeMenuAction(ad, menu, true, true);
-							if (debugPopup && parent != null)
-								System.out.println(getClass().getName() + "#contributeToPopupMenu() added: " + ad.getId()); //$NON-NLS-1$
-						}
-					}
-					catch (Exception e) {
-						Logger.logException("contributing to popup", e); //$NON-NLS-1$
-					}
-				}
-			}
-			if (debugContributeTime)
-				System.out.println(getClass().getName() + "#contributeToPopupMenu(): ran in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		public void contributeToStatusLine(IStatusLineManager manager) {
-			// nothing from here
-		}
-
-		public void contributeToToolBar(IToolBarManager manager) {
-			long time0 = System.currentTimeMillis();
-			for (int i = 0; i < cache.size(); i++) {
-				Object obj = cache.get(i);
-				if (obj instanceof ActionDescriptor) {
-					try {
-						ActionDescriptor ad = (ActionDescriptor) obj;
-						IAction a = ad.getAction();
-						if (a instanceof IExtendedEditorAction) {
-							if (((ad.getToolbarPath() != null) || (ad.getToolbarGroup() != null)) && (a instanceof IExtendedEditorActionProxyForDelayLoading)) {
-							    ((IExtendedEditorActionProxyForDelayLoading)a).realize();
-							}
-							IExtendedEditorAction eea = (IExtendedEditorAction) a;
-							eea.setActiveExtendedEditor(activeExtendedEditor);
-							eea.update();
-							if (eea.isVisible()) {
-								boolean contributed = contributeToolbarAction(ad, manager, true);
-								if (debugToolbar && contributed)
-									System.out.println(getClass().getName() + "#contributeToToolBar() added: " + ad.getId()); //$NON-NLS-1$
-							}
-							else {
-								if (debugToolbar)
-									System.out.println(getClass().getName() + "#contributeToToolBar(): [skipped] " + ad.getId()); //$NON-NLS-1$
-							}
-						}
-						else {
-							boolean contributed = contributeToolbarAction(ad, manager, true);
-							if (debugToolbar && contributed)
-								System.out.println(getClass().getName() + "#contributeToToolBar() added: " + ad.getId()); //$NON-NLS-1$
-						}
-					}
-					catch (Exception e) {
-						Logger.logException("contributing to toolbar", e); //$NON-NLS-1$
-					}
-				}
-			}
-			if (debugContributeTime)
-				System.out.println(getClass().getName() + "#contributeToToolBar(): ran in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		public void dispose() {
-			Iterator it = menus.iterator();
-			while (it.hasNext()) {
-				Object o = it.next();
-				if (o instanceof IMenuManager) {
-					((IMenuManager) o).removeMenuListener(this);
-				}
-			}
-		}
-
-		public void init(IActionBars bars, IWorkbenchPage page) {
-			// nothing from here
-		}
-
-		public void menuAboutToShow(IMenuManager menu) {
-			// slows down the menu and interferes with it for other editors;
-			// optimize on visibility
-			IEditorSite site = null;
-			boolean activeEditorIsVisible = false;
-
-			if (activeExtendedEditor != null && activeExtendedEditor.getEditorPart() != null)
-				site = activeExtendedEditor.getEditorPart().getEditorSite();
-			if (site == null)
-				return;
-
-			// Eclipse bug 48784 - [MPE] ClassCast exception Workbench page
-			// isPartVisiable for MultiPageSite
-			if (site instanceof MultiPageEditorSite) {
-				Object multiPageEditor = ((MultiPageEditorSite) site).getMultiPageEditor();
-				activeEditorIsVisible = multiPageEditor.equals(site.getPage().getActiveEditor()) || multiPageEditor.equals(site.getPage().getActivePart());
-			}
-			else {
-				activeEditorIsVisible = site.getWorkbenchWindow().getPartService().getActivePart().equals(activeExtendedEditor.getEditorPart());
-			}
-			// due to a delay class loading, don't return now
-//			if (!activeEditorIsVisible)
-//				return;
-
-			IContributionItem[] items = menu.getItems();
-			if (items == null || items.length == 0)
-				return;
-
-			for (int i = 0; i < items.length; ++i) {
-				// add menu listener to submenu
-				if (items[i] instanceof IMenuManager) {
-					((IMenuManager) items[i]).addMenuListener(this);
-					menus.add(items[i]);
-				}
-			}
-
-			Set keys = map.keySet();
-			Iterator it = keys.iterator();
-			boolean needActionContributionItemUpdate = false;
-			while (it.hasNext()) {
-				IContributionItem item = (IContributionItem) it.next();
-				IMenuManager mm = (IMenuManager) map.get(item);
-				if (menu.getId() != null && menu.getId().equals(mm.getId()) && item instanceof ActionContributionItem) {
-					try {
-						IAction action = ((ActionContributionItem) item).getAction();
-
-						if (action instanceof IExtendedEditorActionProxyForDelayLoading) {
-						    IExtendedEditorActionProxyForDelayLoading eea = (IExtendedEditorActionProxyForDelayLoading)action;
-						    if (eea.isRealized() == false) {
-						        eea.realize();
-						        needActionContributionItemUpdate = true;
-						    }
-						}
-
-						if (activeEditorIsVisible || needActionContributionItemUpdate) {
-							if (action instanceof IUpdate) {
-								((IUpdate) action).update();
-							}
-						}
-
-						if (activeEditorIsVisible || needActionContributionItemUpdate) {
-							boolean visible = true;
-							if (action instanceof IExtendedEditorAction) {
-								visible = ((IExtendedEditorAction) action).isVisible();
-							}
-							item.setVisible(visible);
-						}
-
-						if (needActionContributionItemUpdate) {
-						    ((ActionContributionItem)item).update();
-						}
-
-					}
-					catch (Exception e) {
-						Logger.logException("updating actions", e); //$NON-NLS-1$
-					}
-				}
-			}
-			if (activeEditorIsVisible || needActionContributionItemUpdate) {
-			    if (needActionContributionItemUpdate) {
-			        // the action is realized so that need to update the menu w/
-			        // force set to true
-			        menu.update(true);
-			    } else {
-			        menu.update(false);
-			    }
-			}
-		}
-
-		public void setActiveEditor(IEditorPart editor) {
-			activeExtendedEditor = computeExtendedEditor(editor);
-			IKeyBindingService svc = (editor != null) ? editor.getEditorSite().getKeyBindingService() : null;
-			for (int i = 0; i < cache.size(); i++) {
-				Object obj = cache.get(i);
-				if (obj instanceof ActionDescriptor) {
-					ActionDescriptor ad = (ActionDescriptor) obj;
-					try {
-						IAction action = ad.getAction();
-						if (action instanceof IExtendedEditorAction) {
-							((IExtendedEditorAction) action).setActiveExtendedEditor(activeExtendedEditor);
-							((IExtendedEditorAction) action).update();
-							// update visibility right now so that the menu
-							// will show/hide properly
-							if (!((IExtendedEditorAction) action).isVisible() && ad.getContributionItem() != null)
-								ad.getContributionItem().setVisible(false);
-							if (svc != null && action.getActionDefinitionId() != null) {
-								svc.registerAction(action);
-							}
-						}
-					}
-					catch (Exception e) {
-						Logger.logException("setting active editor on actions", e); //$NON-NLS-1$
-					}
-				}
-			}
-
-			if (menuBar != null && editor != null) {
-				// Class clz = editor.getClass();
-				// while (clz != null) {
-				// if (clz.getName().equals(targetID)) {
-				// contributeToMenu(menuBar);
-				// break;
-				// }
-				// clz = clz.getSuperclass();
-				// }
-				if (targetIDs.contains(editor.getEditorSite().getId())) {
-					contributeToMenu(menuBar);
-				}
-			}
-
-			updateToolbarActions();
-		}
-
-		public void updateToolbarActions() {
-			for (int i = 0; i < cache.size(); i++) {
-				Object obj = cache.get(i);
-				if (obj instanceof ActionDescriptor) {
-					try {
-						ActionDescriptor ad = (ActionDescriptor) obj;
-						if (ad.getToolbarPath() != null) {
-							IAction action = ad.getAction();
-							if (action instanceof IUpdate) {
-								((IUpdate) action).update();
-							}
-						}
-					}
-					catch (Exception e) {
-						Logger.logException("updating toolbar actions", e); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-	}
-
-	public static final String ATT_ID = "id"; //$NON-NLS-1$
-	public static final String ATT_LABEL = "label"; //$NON-NLS-1$
-	public static final String ATT_NAME = "name"; //$NON-NLS-1$
-	public static final String ATT_PATH = "path"; //$NON-NLS-1$
-
-	public static final String ATT_TARGET_ID = "targetID"; //$NON-NLS-1$
-	protected final static boolean debugContributeTime = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/extendededitoractionbuilder/contributetime")); //$NON-NLS-1$  //$NON-NLS-2$
-
-	protected final static boolean debugMenu = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugmenu")); //$NON-NLS-1$  //$NON-NLS-2$;
-	protected final static boolean debugPopup = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugpopup")); //$NON-NLS-1$  //$NON-NLS-2$;
-	protected final static boolean debugReadTime = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/extendededitoractionbuilder/readtime")); //$NON-NLS-1$  //$NON-NLS-2$
-	protected final static boolean debugToolbar = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/extendededitoractionbuilder/debugtoolbar")); //$NON-NLS-1$  //$NON-NLS-2$;
-
-	private static final String EXTENDED_EDITOR = "extendedEditor"; //$NON-NLS-1$
-
-	public static final String PL_EXTENDED_EDITOR_ACTIONS = "extendedEditorActions"; //$NON-NLS-1$
-
-	public static final String PLUGIN_ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-	public static final String TAG_ACTION = "action"; //$NON-NLS-1$
-
-	public static final String TAG_CONTRIBUTION_TYPE = "editorContribution"; //$NON-NLS-1$
-
-	public static final String TAG_MENU = "menu"; //$NON-NLS-1$
-	public static final String TAG_POPUPMENU = "popupmenu"; //$NON-NLS-1$
-	public static final String TAG_RULERMENU = "rulermenu"; //$NON-NLS-1$
-	public static final String TAG_SEPARATOR = "separator"; //$NON-NLS-1$
-
-	protected List readingCache;
-
-	protected String targetContributionTag;
-	protected List targetIDs;
-
-	/**
-	 * The constructor.
-	 */
-	public ExtendedEditorActionBuilder() {
-		super();
-	}
-
-	/**
-	 * Creates a menu from the information in the menu configuration element
-	 * and adds it into the provided menu manager. If 'appendIfMissing' is
-	 * true, and menu path slot is not found, it will be created and menu will
-	 * be added into it. Otherwise, add operation will fail.
-	 */
-	protected void contributeMenu(IConfigurationElement menuElement, IMenuManager mng, boolean appendIfMissing) {
-		// Get config data.
-		String id = menuElement.getAttribute(ATT_ID);
-		String label = menuElement.getAttribute(ATT_LABEL);
-		String path = menuElement.getAttribute(ATT_PATH);
-		if (label == null) {
-			Logger.log(Logger.ERROR, "Invalid Menu Extension (label == null): " + id); //$NON-NLS-1$
-			return;
-		}
-
-		// Calculate menu path and group.
-		String group = null;
-		if (path != null) {
-			int loc = path.lastIndexOf('/');
-			if (loc != -1) {
-				group = path.substring(loc + 1);
-				path = path.substring(0, loc);
-			}
-			else {
-				// assume that path represents a slot
-				// so actual path portion should be null
-				group = path;
-				path = null;
-			}
-		}
-
-		// Find parent menu.
-		IMenuManager parent = mng;
-		if (path != null) {
-			parent = mng.findMenuUsingPath(path);
-			if (parent == null) {
-				// Logger.log("Invalid Menu Extension (Path is invalid): " +
-				// id);//$NON-NLS-1$
-				return;
-			}
-			// IMenuManager.findMenuUsingPath() returns invisible menu item if
-			// the manager can't find
-			// the specified path and create new MenuManager for it.
-			// I don't know this is a specification or bug.
-			// Anyway, to ensure the menu can be visible, setVisible(true)
-			// needs to be called.
-			parent.setVisible(true);
-		}
-
-		// Find reference group.
-		if (group == null)
-			group = IWorkbenchActionConstants.MB_ADDITIONS;
-		IContributionItem sep = parent.find(group);
-		if (sep == null) {
-			if (appendIfMissing)
-				parent.add(new Separator(group));
-			else {
-				Logger.log(Logger.ERROR, "Invalid Menu Extension (Group is invalid): " + id); //$NON-NLS-1$
-				return;
-			}
-		}
-
-		// If the menu does not exist create it.
-		IMenuManager newMenu = parent.findMenuUsingPath(id);
-		if (newMenu == null)
-			newMenu = new MenuManager(label, id);
-
-		// Create separators.
-		IConfigurationElement[] children = menuElement.getChildren(TAG_SEPARATOR);
-		for (int i = 0; i < children.length; i++) {
-			contributeSeparator(newMenu, children[i]);
-		}
-
-		// Add new menu
-		try {
-			parent.insertAfter(group, newMenu);
-		}
-		catch (IllegalArgumentException e) {
-			Logger.log(Logger.ERROR, "Invalid Menu Extension (Group is missing): " + id); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Contributes action from action descriptor into the provided menu
-	 * manager.
-	 */
-	protected IMenuManager contributeMenuAction(ActionDescriptor ad, IMenuManager menu, boolean appendIfMissing, boolean popupmenu) {
-		if (ad.getContributionItem() == null || ad.getAction() == null)
-			return null;
-
-		// Get config data.
-		String mpath = popupmenu ? ad.getPopupMenuPath() : ad.getMenuPath();
-		String mgroup = popupmenu ? ad.getPopupMenuGroup() : ad.getMenuGroup();
-		if (mpath == null && mgroup == null)
-			return null;
-
-		// Find parent menu.
-		IMenuManager parent = menu;
-		if (mpath != null) {
-			parent = parent.findMenuUsingPath(mpath);
-			if (parent == null) {
-				// Logger.log("Invalid Menu Extension (Path is invalid): " +
-				// ad.getId()); //$NON-NLS-1$
-				return null;
-			}
-			// IMenuManager.findMenuUsingPath() returns invisible menu item if
-			// the manager can't find
-			// the specified path and create new MenuManager for it.
-			// I don't know this is a specification or bug.
-			// Anyway, to ensure the menu can be visible, setVisible(true)
-			// needs to be called.
-			parent.setVisible(true);
-		}
-
-		// First remove existing menu item
-		IContributionItem item = parent.find(ad.getId());
-		if (item != null) {
-			parent.remove(ad.getId());
-		}
-
-		// Find reference group.
-		if (mgroup == null)
-			mgroup = IWorkbenchActionConstants.MB_ADDITIONS;
-		IContributionItem sep = parent.find(mgroup);
-		if (sep == null) {
-			if (appendIfMissing)
-				parent.add(sep = new Separator(mgroup));
-			else {
-				Logger.log(Logger.ERROR, "Invalid Menu Extension (Group is invalid): " + ad.getId()); //$NON-NLS-1$
-				return null;
-			}
-		}
-
-		// Add action.
-		try {
-			if (popupmenu) {
-				// Context menu need a newly created contribution item
-				if (sep != null && sep.isGroupMarker())
-					parent.appendToGroup(sep.getId(), ad.getAction());
-				else
-					parent.insertAfter(mgroup, ad.getAction());
-			}
-			else {
-				// Normal menu need to add existing contribution item to
-				// remove it from menu listener
-				if (sep != null && sep.isGroupMarker())
-					parent.appendToGroup(sep.getId(), ad.getContributionItem());
-				else
-					parent.insertAfter(mgroup, ad.getContributionItem());
-			}
-		}
-		catch (IllegalArgumentException e) {
-			Logger.log(Logger.ERROR, "Invalid Menu Extension (Group is missing): " + ad.getId()); //$NON-NLS-1$
-			parent = null;
-		}
-
-		return parent;
-	}
-
-	/**
-	 * Creates a named menu separator from the information in the
-	 * configuration element. If the separator already exists do not create a
-	 * second.
-	 */
-	protected boolean contributeSeparator(IMenuManager menu, IConfigurationElement element) {
-		String id = element.getAttribute(ATT_NAME);
-		if (id == null || id.length() <= 0)
-			return false;
-		IContributionItem sep = menu.find(id);
-		if (sep != null)
-			return false;
-		menu.add(new Separator(id));
-		return true;
-	}
-
-	/**
-	 * Contributes action from the action descriptor into the provided tool
-	 * bar manager.
-	 */
-	protected boolean contributeToolbarAction(ActionDescriptor ad, IToolBarManager toolbar, boolean appendIfMissing) {
-		if (ad.getContributionItem() == null || ad.getAction() == null)
-			return false;
-
-		// Get config data.
-		String tpath = ad.getToolbarPath();
-		String tgroup = ad.getToolbarGroup();
-		if (tpath == null && tgroup == null)
-			return false;
-
-		// First remove existing toolbar item
-		IContributionItem item = toolbar.find(ad.getId());
-		if (item != null) {
-			toolbar.remove(ad.getId());
-		}
-
-		// Find reference group.
-		if (tgroup == null)
-			tgroup = IWorkbenchActionConstants.MB_ADDITIONS;
-		IContributionItem sep = toolbar.find(tgroup);
-		if (sep == null) {
-			if (appendIfMissing)
-				toolbar.add(new Separator(tgroup));
-			else {
-				Logger.log(Logger.ERROR, "Invalid Toolbar Extension (Group is invalid): " + ad.getId()); //$NON-NLS-1$
-				return false;
-			}
-		}
-
-		// Add action to tool bar.
-		try {
-			if (sep != null && sep.isGroupMarker())
-				toolbar.appendToGroup(sep.getId(), ad.getAction());
-			else
-				toolbar.insertAfter(tgroup, ad.getAction());
-		}
-		catch (IllegalArgumentException e) {
-			Logger.log(Logger.ERROR, "Invalid Toolbar Extension (Group is missing): " + ad.getId()); //$NON-NLS-1$
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * This factory method returns a new ActionDescriptor for the
-	 * configuration element. It should be implemented by subclasses.
-	 */
-	protected ActionDescriptor createActionDescriptor(IConfigurationElement element) {
-		ActionDescriptor ad = null;
-		try {
-			ad = new ActionDescriptor(element);
-			// these cases like "class not found" are handled
-			// at lower level, so no action if formed. In that
-			// case, we also don't want to form an action descriptor.
-			if ((ad != null) && (ad.getAction() == null)) {
-				ad = null;
-			}
-		}
-		catch (Exception e) {
-			Logger.traceException(EXTENDED_EDITOR, e);
-			ad = null;
-		}
-		return ad;
-	}
-
-	/**
-	 * Returns the name of the part ID attribute that is expected in the
-	 * target extension.
-	 */
-	protected String getTargetID(IConfigurationElement element) {
-		String value = element.getAttribute(ATT_TARGET_ID);
-		return value != null ? value : "???"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Reads editor contributor if specified directly in the 'editor'
-	 * extension point, and all external contributions for this editor's ID
-	 * registered in 'editorActions' extension point.
-	 */
-	public IExtendedContributor readActionExtensions(String editorId) {
-		return readActionExtensions(new String[]{editorId});
-	}
-
-	/**
-	 * Reads editor contributor if specified directly in the 'editor'
-	 * extension point, and all external contributions for this editor's ID
-	 * registered in 'editorActions' extension point.
-	 */
-	public IExtendedContributor readActionExtensions(String[] ids) {
-		long time0 = System.currentTimeMillis();
-		ExtendedContributor ext = null;
-		readContributions(ids, TAG_CONTRIBUTION_TYPE, PL_EXTENDED_EDITOR_ACTIONS);
-		if (debugReadTime) {
-			String idlist = ""; //$NON-NLS-1$
-			if (ids.length > 0) {
-				for (int i = 0; i < ids.length; i++) {
-					idlist += ids[i];
-					if (i < ids.length - 1)
-						idlist += ","; //$NON-NLS-1$
-				}
-			}
-			System.out.println(getClass().getName() + "#readActionExtensions(" + idlist + "): read in " + (System.currentTimeMillis() - time0) + "ms [" + (readingCache != null ? readingCache.size() : 0) + " contributions]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-		if (readingCache != null) {
-			ext = new ExtendedContributor(readingCache);
-			readingCache = null;
-		}
-		return ext;
-	}
-
-	/**
-	 * Reads the contributions from the registry for the provided workbench
-	 * part and the provided extension point IDs.
-	 */
-	protected void readContributions(String[] ids, String tag, String extensionPoint) {
-		readingCache = null;
-		targetIDs = Arrays.asList(ids);
-		targetContributionTag = tag;
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		readRegistry(registry, PLUGIN_ID, extensionPoint);
-	}
-
-	/**
-	 * Implements abstract method to handle the provided XML element in the
-	 * registry.
-	 */
-	protected boolean readElement(IConfigurationElement element) {
-		String tag = element.getName();
-		if (tag.equals(targetContributionTag)) {
-			String id = getTargetID(element);
-			if (id == null || !targetIDs.contains(id)) {
-				// This is not of interest to us - don't go deeper
-				return true;
-			}
-		}
-		else if (tag.equals(TAG_MENU)) {
-			if (readingCache == null)
-				readingCache = new ArrayList();
-			readingCache.add(element);
-			return true; // just cache the element - don't go into it
-		}
-		else if (tag.equals(TAG_POPUPMENU)) {
-			if (readingCache == null)
-				readingCache = new ArrayList();
-			readingCache.add(element);
-			return true; // just cache the element - don't go into it
-		}
-		else if (tag.equals(TAG_RULERMENU)) {
-			if (readingCache == null)
-				readingCache = new ArrayList();
-			readingCache.add(element);
-			return true; // just cache the element - don't go into it
-		}
-		else if (tag.equals(TAG_ACTION)) {
-			if (readingCache == null)
-				readingCache = new ArrayList();
-			ActionDescriptor ad = createActionDescriptor(element);
-			if (ad != null)
-				readingCache.add(ad);
-			return true; // just cache the action - don't go into
-		}
-		else {
-			return false;
-		}
-
-		readElementChildren(element);
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedEditorDropTargetAdapter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedEditorDropTargetAdapter.java
deleted file mode 100644
index a425c2e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ExtendedEditorDropTargetAdapter.java
+++ /dev/null
@@ -1,351 +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.wst.sse.ui.internal;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITextViewerExtension5;
-import org.eclipse.swt.custom.ST;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetAdapter;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.FileTransfer;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Caret;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.sse.ui.internal.TransferBuilder.TransferProxyForDelayLoading;
-
-/**
- * ExtendedEditorDropTargetAdapter
- */
-public class ExtendedEditorDropTargetAdapter extends DropTargetAdapter {
-
-	private Point caret = null;
-	private String[] editorIds;
-	private int orgOffset = 0;
-	private IEditorPart targetEditor = null;
-	private ITextViewer textViewer = null;
-
-	private Transfer[] transfers = null;
-
-	private boolean useProxy;
-
-	/**
-	 * @deprecated use ExtendedEditorDropTargetAdapter(boolean useProxy) for
-	 *             the performance
-	 */
-	public ExtendedEditorDropTargetAdapter() {
-		this(false);
-	}
-
-	public ExtendedEditorDropTargetAdapter(boolean useProxy) {
-		super();
-		this.useProxy = useProxy;
-	}
-
-	protected boolean doDrop(Transfer transfer, DropTargetEvent event) {
-		TransferBuilder tb = new TransferBuilder(useProxy);
-
-		IDropAction[] as = null;
-		if (editorIds != null && editorIds.length > 0)
-			as = tb.getDropActions(editorIds, transfer);
-		else
-			as = tb.getDropActions(getTargetEditor().getClass().getName(), transfer);
-
-		for (int i = 0; i < as.length; ++i) {
-			IDropAction da = as[i];
-			Transfer actualTransfer;
-			if (transfer instanceof TransferProxyForDelayLoading) {
-				actualTransfer = ((TransferProxyForDelayLoading) transfer).getTransferClass();
-			}
-			else {
-				actualTransfer = transfer;
-			}
-			if (actualTransfer instanceof FileTransfer) {
-				if (event.data == null) {
-					Logger.log(Logger.ERROR, "No data in DropTargetEvent from " + event.widget); //$NON-NLS-1$
-					return false;
-				}
-				String[] strs = (String[]) event.data;
-				boolean[] bs = new boolean[strs.length];
-				int c = 0;
-				for (int j = 0; j < strs.length; ++j) {
-					bs[j] = false;
-					if (da.isSupportedData(strs[j])) {
-						event.data = new String[]{strs[j]};
-						if (!da.run(event, targetEditor)) {
-							bs[j] = true;
-							c++;
-						}
-					}
-					else {
-						bs[j] = true;
-						c++;
-					}
-				}
-				if (c == 0) {
-					return true;
-				}
-
-				int k = 0;
-				String[] rests = new String[c];
-				for (int j = 0; j < strs.length; ++j) {
-					if (bs[j])
-						rests[k++] = strs[j];
-				}
-				event.data = rests;
-			}
-			else if (da.isSupportedData(event.data)) {
-				if (da.run(event, targetEditor)) {
-					return true;
-				}
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 */
-	public void dragEnter(DropTargetEvent event) {
-		caret = null;
-		TransferData data = null;
-		Transfer[] ts = getTransfers();
-		for (int i = 0; i < ts.length; i++) {
-			for (int j = 0; j < event.dataTypes.length; j++) {
-				if (ts[i].isSupportedType(event.dataTypes[j])) {
-					data = event.dataTypes[j];
-					break;
-				}
-			}
-			if (data != null) {
-				event.currentDataType = data;
-				break;
-			}
-		}
-
-		if (textViewer != null) {
-			orgOffset = textViewer.getTextWidget().getCaretOffset();
-		}
-	}
-
-	public void dragLeave(DropTargetEvent event) {
-		if (textViewer != null) {
-			StyledText st = textViewer.getTextWidget();
-			st.setCaretOffset(orgOffset);
-			st.redraw();
-			st.update();
-		}
-	}
-
-	/**
-	 */
-	public void dragOver(DropTargetEvent event) {
-		event.operations &= ~DND.DROP_MOVE;
-		event.detail = DND.DROP_COPY;
-
-		if (textViewer != null) {
-			Point pt = toControl(new Point(event.x, event.y));
-			StyledText st = textViewer.getTextWidget();
-
-			// auto scroll
-			Rectangle ca = st.getClientArea();
-			int margin = st.getLineHeight();
-
-			if (pt.y < margin) { // up
-				st.invokeAction(ST.LINE_UP);
-			}
-			else if (pt.y > ca.height - margin) { // down
-				st.invokeAction(ST.LINE_DOWN);
-			}
-
-			// draw insertion point
-			int offset = getDropOffset(st, pt);
-			if (offset != st.getCaretOffset()) {
-				st.setCaretOffset(offset);
-				st.setSelection(offset);
-			}
-
-			Point newCaret = st.getLocationAtOffset(offset);
-			if (newCaret.equals(caret))
-				return;
-
-			Caret ct = st.getCaret();
-			Point size = ct.getSize();
-
-			GC gc = new GC(st);
-			gc.setLineWidth(size.x);
-
-			// erase old caret
-			if (caret != null) {
-				Color originalForeground = gc.getForeground();
-				gc.setForeground(st.getBackground());
-				gc.drawRectangle(caret.x, caret.y, size.x, size.y);
-				gc.setForeground(originalForeground);
-			}
-
-			st.redraw();
-			st.update();
-
-			// draw new caret
-			caret = newCaret;
-			if (ct.getImage() != null)
-				gc.drawImage(ct.getImage(), caret.x, caret.y);
-			else {
-				gc.drawLine(caret.x, caret.y, caret.x, caret.y + size.y);
-			}
-
-			gc.dispose();
-		}
-	}
-
-	/**
-	 */
-	public void drop(DropTargetEvent event) {
-		if (event.operations == DND.DROP_NONE)
-			return;
-
-		if (textViewer != null) {
-			Point pt = toControl(new Point(event.x, event.y));
-			StyledText st = textViewer.getTextWidget();
-
-			int offset = getDropOffset(st, pt);
-			if (offset != st.getCaretOffset()) {
-				st.setCaretOffset(offset);
-			}
-
-			// ISelectionProvider sp = textViewer.getSelectionProvider();
-			// ISelection sel = new TextSelection(offset, 0);
-			// sp.setSelection(sel);
-			// BUG145392 - need to account for folded regions
-			if (textViewer instanceof ITextViewerExtension5) {
-				offset = ((ITextViewerExtension5) textViewer).widgetOffset2ModelOffset(offset);
-			}
-			textViewer.setSelectedRange(offset, 0);
-		}
-
-		Transfer[] ts = getTransfers();
-		for (int i = 0; i < ts.length; i++) {
-			if (ts[i].isSupportedType(event.currentDataType)) {
-				if (doDrop(ts[i], event)) {
-					break;
-				}
-			}
-		}
-	}
-
-	protected int getDropOffset(DropTargetEvent event) {
-		Point pt = getTextViewer().getTextWidget().toControl(new Point(event.x, event.y));
-		StyledText st = textViewer.getTextWidget();
-		return getDropOffset(st, pt);
-	}
-
-	private int getDropOffset(StyledText st, Point pt) {
-		int offset = st.getCaretOffset();
-		try {
-			offset = st.getOffsetAtLocation(pt);
-		}
-		catch (IllegalArgumentException e) {
-			// This is normal case if mouse cursor is on outside of valid
-			// text.
-			boolean found = false;
-			Point p = new Point((pt.x > 0 ? pt.x : 0), pt.y);
-			// search nearest character
-			for (; p.x > -1; p.x--) {
-				try {
-					offset = st.getOffsetAtLocation(p);
-
-					/*
-					 * Now that a valid offset has been found, try to place at
-					 * the end of the line
-					 */
-					/*
-					 * partial line folding invalidates any "move to EOL"
-					 * action we might take
-					 */
-					// if (textViewer != null && textViewer.getDocument() !=
-					// null) {
-					// IRegion lineInfo = null;
-					// try {
-					// if (textViewer instanceof ITextViewerExtension5) {
-					// lineInfo =
-					// textViewer.getDocument().getLineInformationOfOffset(((ITextViewerExtension5)textViewer).widgetOffset2ModelOffset(offset));
-					// }
-					// else {
-					// lineInfo =
-					// textViewer.getDocument().getLineInformationOfOffset(offset);
-					// }
-					// } catch (BadLocationException e1) {
-					// }
-					// if (lineInfo != null)
-					// offset = lineInfo.getOffset() + lineInfo.getLength();
-					// }
-					found = true;
-					break;
-				}
-				catch (IllegalArgumentException ex) {
-				}
-			}
-
-			if (!found) {
-				offset = st.getCharCount();
-			}
-		}
-		return offset;
-	}
-
-	public IEditorPart getTargetEditor() {
-		return targetEditor;
-	}
-
-	public ITextViewer getTextViewer() {
-		return textViewer;
-	}
-
-	/**
-	 * @return org.eclipse.swt.dnd.Transfer[]
-	 */
-	public Transfer[] getTransfers() {
-		if (transfers == null) {
-			TransferBuilder tb = new TransferBuilder(useProxy);
-			if (editorIds == null || editorIds.length == 0)
-				transfers = tb.getDropTargetTransfers(getTargetEditor().getClass().getName());
-			else
-				transfers = tb.getDropTargetTransfers(editorIds);
-		}
-		return transfers;
-	}
-
-	/**
-	 */
-	public void setTargetEditor(IEditorPart targetEditor) {
-		this.targetEditor = targetEditor;
-	}
-
-	public void setTargetIDs(String[] ids) {
-		editorIds = ids;
-	}
-
-	public void setTextViewer(ITextViewer textViewer) {
-		this.textViewer = textViewer;
-	}
-
-	private Point toControl(Point point) {
-		return (textViewer != null ? textViewer.getTextWidget().toControl(point) : point);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/FileDropAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/FileDropAction.java
deleted file mode 100644
index c8a3b31..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/FileDropAction.java
+++ /dev/null
@@ -1,47 +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.wst.sse.ui.internal;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * Action for file drop
- */
-public class FileDropAction extends AbstractDropAction {
-	public boolean run(DropTargetEvent event, IEditorPart targetEditor) {
-		String[] strs = (String[]) event.data;
-		if (strs == null || strs.length == 0) {
-			return false;
-		}
-
-		String str = ""; //$NON-NLS-1$
-		for (int i = 0; i < strs.length; ++i) {
-			IPath path = new Path(strs[i]);
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			IFile file = root.getFileForLocation(path);
-			if (file != null) {
-				path = file.getProjectRelativePath();
-			}
-
-			str += "\"" + path.toString() + "\""; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		return insert(str, targetEditor);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/FormatProcessorsExtensionReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/FormatProcessorsExtensionReader.java
deleted file mode 100644
index 78badf8..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/FormatProcessorsExtensionReader.java
+++ /dev/null
@@ -1,102 +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.wst.sse.ui.internal;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.ui.internal.extension.RegistryReader;
-import org.osgi.framework.Bundle;
-
-public class FormatProcessorsExtensionReader extends RegistryReader {
-	private static FormatProcessorsExtensionReader instance;
-
-	public synchronized static FormatProcessorsExtensionReader getInstance() {
-		if (instance == null) {
-			instance = new FormatProcessorsExtensionReader();
-
-			IExtensionRegistry registry = Platform.getExtensionRegistry();
-			instance.readRegistry(registry, "org.eclipse.wst.sse.core", "formatProcessors"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return instance;
-	}
-
-	private Map map = new HashMap();
-//	 TODO: private field never read locally
-	String processorClassName;
-
-	public IStructuredFormatProcessor getFormatProcessor(String contentTypeId) {
-		if (contentTypeId == null)
-			return null;
-
-		IStructuredFormatProcessor formatProcessor = null;
-		if (map.containsKey(contentTypeId)) {
-			formatProcessor = (IStructuredFormatProcessor) map.get(contentTypeId);
-		} else {
-			IContentTypeManager manager = Platform.getContentTypeManager();
-			IContentType queryContentType = manager.getContentType(contentTypeId);
-			boolean found = false;
-			for (Iterator iter = map.keySet().iterator(); iter.hasNext();) {
-				String elementContentTypeId = (String) iter.next();
-				IContentType elementContentType = manager.getContentType(elementContentTypeId);
-				if (queryContentType.isKindOf(elementContentType)) {
-					formatProcessor = (IStructuredFormatProcessor) map.get(elementContentTypeId);
-					map.put(contentTypeId, formatProcessor);
-					found = true;
-					break;
-				}
-			}
-
-			if (!found)
-				map.put(contentTypeId, null);
-		}
-
-		return formatProcessor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.internal.extension.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-	 */
-	protected boolean readElement(IConfigurationElement element) {
-		if (element.getName().equals("processor")) { //$NON-NLS-1$
-			String contentTypeId = element.getAttribute("contentTypeId"); //$NON-NLS-1$
-			String processorClassName = element.getAttribute("class"); //$NON-NLS-1$
-			String pluginID = element.getDeclaringExtension().getNamespace();
-			Bundle bundle = Platform.getBundle(pluginID);
-
-			try {
-				IStructuredFormatProcessor processor = (IStructuredFormatProcessor)bundle.loadClass(processorClassName).newInstance();
-				map.put(contentTypeId, processor);
-
-				return true;
-			} catch (InstantiationException e) {
-				e.printStackTrace();
-			} catch (IllegalAccessException e) {
-				e.printStackTrace();
-			} catch (ClassNotFoundException e) {
-				e.printStackTrace();
-			}
-		}
-
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/GotoAnnotationAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/GotoAnnotationAction.java
deleted file mode 100644
index e3eded8..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/GotoAnnotationAction.java
+++ /dev/null
@@ -1,370 +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.wst.sse.ui.internal;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.Iterator;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.part.EditorActionBarContributor;
-import org.eclipse.ui.texteditor.AnnotationPreference;
-import org.eclipse.ui.texteditor.IEditorStatusLine;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.MarkerAnnotation;
-import org.eclipse.ui.texteditor.TextEditorAction;
-
-/**
- * Based on org.eclipse.jdt.internal.ui.javaeditor.GotoAnnotationAction and
- * the org.eclipse.jdt.internal.ui.JavaEditor's gotoError() method. Rewritten
- * based on 3.0M7 version to operate generically.
- * 
- * @deprecated - use org.eclipse.ui.texteditor.GotoAnnotationAction
- * 
- */
-public class GotoAnnotationAction extends TextEditorAction {
-
-	private static final boolean _debug = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/gotoNextAnnotation")); //$NON-NLS-1$  //$NON-NLS-2$
-
-	/**
-	 * Clears the status line on selection changed.
-	 */
-	protected class StatusLineClearer implements ISelectionChangedListener {
-		IStatusLineManager fStatusLineManager = null;
-
-		protected StatusLineClearer(IStatusLineManager mgr) {
-			super();
-			fStatusLineManager = mgr;
-		}
-
-		/*
-		 * @see ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-		 */
-		public void selectionChanged(SelectionChangedEvent event) {
-			getTextEditor().getSelectionProvider().removeSelectionChangedListener(StatusLineClearer.this);
-
-			fStatusLineManager.setErrorMessage(null, null);
-			fStatusLineManager.setMessage(null, null);
-		}
-	}
-
-	private boolean fForward;
-	private String fLabel;
-
-	private String fPrefix;
-
-	/**
-	 * @param prefix
-	 * @param editor
-	 */
-	public GotoAnnotationAction(String prefix, boolean forward) {
-		super(SSEUIMessages.getResourceBundle(), prefix, null);
-		fForward = forward;
-		fPrefix = prefix;
-		fLabel = SSEUIMessages.getResourceBundle().getString(fPrefix);
-	}
-
-	/*
-	 * This is the default label used for description
-	 */
-	public String getDefaultLabel() {
-		return fLabel;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#getDescription()
-	 */
-	public String getDescription() {
-		return getDefaultLabel();
-	}
-
-	/**
-	 * Returns the annotation closest to the given range respecting the given
-	 * direction. If an annotation is found, the annotations current position
-	 * is copied into the provided annotation position.
-	 * 
-	 * @param offset
-	 *            the region offset
-	 * @param length
-	 *            the region length
-	 * @param forward
-	 *            <code>true</code> for forwards, <code>false</code> for
-	 *            backward
-	 * @param annotationPosition
-	 *            the position of the found annotation
-	 * @return the found annotation
-	 */
-	protected Annotation getNextAnnotation(final int offset, final int length, boolean forward, Position annotationPosition) {
-		Annotation nextAnnotation = null;
-		Position nextAnnotationPosition = null;
-		Annotation containingAnnotation = null;
-		Position containingAnnotationPosition = null;
-		boolean currentAnnotation = false;
-
-		IDocument document = getTextEditor().getDocumentProvider().getDocument(getTextEditor().getEditorInput());
-		int endOfDocument = document.getLength();
-		int distance = Integer.MAX_VALUE;
-
-		IAnnotationModel model = getTextEditor().getDocumentProvider().getAnnotationModel(getTextEditor().getEditorInput());
-		// external files may not have an annotation model
-		if (model != null) {
-			Iterator e = model.getAnnotationIterator();
-			while (e.hasNext()) {
-				Annotation a = (Annotation) e.next();
-				if (!isNavigationTarget(a))
-					continue;
-
-				Position p = model.getPosition(a);
-				if (p == null)
-					continue;
-
-				if (forward && p.offset == offset || !forward && p.offset + p.getLength() == offset + length) {
-					if (containingAnnotation == null || (forward && p.length >= containingAnnotationPosition.length || !forward && p.length >= containingAnnotationPosition.length)) {
-						containingAnnotation = a;
-						containingAnnotationPosition = p;
-						currentAnnotation = p.length == length;
-					}
-				}
-				else {
-					int currentDistance = 0;
-
-					if (forward) {
-						currentDistance = p.getOffset() - offset;
-						if (currentDistance < 0) {
-							currentDistance = endOfDocument + currentDistance;
-						}
-
-						if (currentDistance < distance || currentDistance == distance && p.length < nextAnnotationPosition.length) {
-							distance = currentDistance;
-							nextAnnotation = a;
-							nextAnnotationPosition = p;
-						}
-					}
-					else {
-						currentDistance = offset + length - (p.getOffset() + p.length);
-						if (currentDistance < 0)
-							currentDistance = endOfDocument + currentDistance;
-
-						if (currentDistance < distance || currentDistance == distance && p.length < nextAnnotationPosition.length) {
-							distance = currentDistance;
-							nextAnnotation = a;
-							nextAnnotationPosition = p;
-						}
-					}
-				}
-			}
-		}
-		if (containingAnnotationPosition != null && (!currentAnnotation || nextAnnotation == null)) {
-			annotationPosition.setOffset(containingAnnotationPosition.getOffset());
-			annotationPosition.setLength(containingAnnotationPosition.getLength());
-			return containingAnnotation;
-		}
-		if (nextAnnotationPosition != null) {
-			annotationPosition.setOffset(nextAnnotationPosition.getOffset());
-			annotationPosition.setLength(nextAnnotationPosition.getLength());
-		}
-
-		return nextAnnotation;
-	}
-
-	private IStatusLineManager getStatusLineManager() {
-		// The original JavaEditor M7 implementation made use of an adapter,
-		// but that approach
-		// fails with a MultiPageEditorSite
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window == null)
-			return null;
-		IWorkbenchPage page = window.getActivePage();
-		if (page == null)
-			return null;
-		IEditorPart editor = page.getActiveEditor();
-		if (editor == null)
-			return null;
-		IEditorActionBarContributor contributor = editor.getEditorSite().getActionBarContributor();
-		if (contributor instanceof EditorActionBarContributor) {
-			return ((EditorActionBarContributor) contributor).getActionBars().getStatusLineManager();
-		}
-		return null;
-	}
-
-	public String getText() {
-		return getDefaultLabel();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return getDefaultLabel();
-	}
-
-	/**
-	 * Jumps to the error next according to the given direction based off
-	 * JavaEditor#gotoAnnotation()
-	 * 
-	 * @param forward
-	 *            is the direction
-	 */
-	public void gotoAnnotation(boolean forward) {
-		ITextSelection selection = (ITextSelection) getTextEditor().getSelectionProvider().getSelection();
-		Position position = new Position(0, 0);
-		if (false /* delayed - see bug 18316 */) {
-			getNextAnnotation(selection.getOffset(), selection.getLength(), forward, position);
-			getTextEditor().selectAndReveal(position.getOffset(), position.getLength());
-		}
-		else /* no delay - see bug 18316 */{
-			Annotation annotation = getNextAnnotation(selection.getOffset(), selection.getLength(), forward, position);
-			IEditorStatusLine editorStatusLine = (IEditorStatusLine) getTextEditor().getAdapter(IEditorStatusLine.class);
-			if (editorStatusLine != null) {
-				editorStatusLine.setMessage(true, null, null);
-				editorStatusLine.setMessage(false, null, null);
-			}
-			else {
-				IStatusLineManager mgr = getStatusLineManager();
-				if (mgr != null) {
-					mgr.setErrorMessage(null);
-					mgr.setMessage(null, null);
-				}
-			}
-			if (annotation != null) {
-				updateAnnotationViews(annotation);
-				if (_debug) {
-					System.out.println("select and reveal " + annotation.getType() + "@" + position.getOffset() + ":" + position.getLength()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				}
-				getTextEditor().selectAndReveal(position.getOffset(), position.getLength());
-				if (editorStatusLine != null) {
-					editorStatusLine.setMessage(true, null, null);
-					editorStatusLine.setMessage(false, annotation.getText(), null);
-				}
-				else {
-					IStatusLineManager mgr = getStatusLineManager();
-					if (mgr != null) {
-						mgr.setErrorMessage(null);
-						mgr.setMessage(null, annotation.getText());
-					}
-					getTextEditor().getSelectionProvider().addSelectionChangedListener(new StatusLineClearer(mgr));
-				}
-			}
-		}
-	}
-
-	/**
-	 * Returns whether the given annotation is configured as a target for the
-	 * "Go to Next/Previous Annotation" actions
-	 * 
-	 * @param annotation
-	 *            the annotation
-	 * @return <code>true</code> if this is a target, <code>false</code>
-	 *         otherwise
-	 * @see Eclipse 3.0
-	 */
-	protected boolean isNavigationTarget(Annotation annotation) {
-		Preferences preferences = EditorsUI.getPluginPreferences();
-		AnnotationPreference preference = EditorsUI.getAnnotationPreferenceLookup().getAnnotationPreference(annotation);
-		// See bug 41689
-		// String key= forward ? preference.getIsGoToNextNavigationTargetKey()
-		// : preference.getIsGoToPreviousNavigationTargetKey();
-		String key = preference == null ? null : preference.getIsGoToNextNavigationTargetKey();
-		return (key != null && preferences.getBoolean(key));
-	}
-
-	public void run() {
-		gotoAnnotation(fForward);
-	}
-
-	public void setEditor(ITextEditor editor) {
-		super.setEditor(editor);
-		update();
-	}
-
-	/**
-	 * Updates the annotation views that show the given annotation.
-	 * 
-	 * @param annotation
-	 *            the annotation
-	 */
-	protected void updateAnnotationViews(Annotation annotation) {
-		IMarker marker = null;
-		if (annotation instanceof MarkerAnnotation)
-			marker = ((MarkerAnnotation) annotation).getMarker();
-
-		if (marker != null) {
-			try {
-				IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-				if (window != null) {
-					IWorkbenchPage page = window.getActivePage();
-					if (page != null) {
-						IViewPart view = null;
-						if (marker.isSubtypeOf(IMarker.PROBLEM)) {
-							view = page.findView(IPageLayout.ID_PROBLEM_VIEW);
-						}
-						else if (marker.isSubtypeOf(IMarker.TASK)) {
-							view = page.findView(IPageLayout.ID_TASK_LIST);
-						}
-						else if (marker.isSubtypeOf(IMarker.BOOKMARK)) {
-							view = page.findView(IPageLayout.ID_BOOKMARKS);
-						}
-						// If the view isn't open on this perspective, don't
-						// interact with it
-						if (view != null) {
-							Method method = view.getClass().getMethod("setSelection", new Class[]{IStructuredSelection.class, boolean.class}); //$NON-NLS-1$
-							if (method != null) {
-								method.invoke(view, new Object[]{new StructuredSelection(marker), Boolean.TRUE});
-								page.bringToTop(view);
-							}
-						}
-					}
-				}
-			}
-			// ignore exceptions, don't update any of the lists, just set
-			// statusline
-			catch (CoreException x) {
-				//
-			}
-			catch (NoSuchMethodException x) {
-				//
-			}
-			catch (IllegalAccessException x) {
-				//
-			}
-			catch (InvocationTargetException x) {
-				//
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IActionValidator.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IActionValidator.java
deleted file mode 100644
index 81d6eaa..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IActionValidator.java
+++ /dev/null
@@ -1,17 +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.wst.sse.ui.internal;
-
-public interface IActionValidator {
-	boolean isValidAction();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IDropAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IDropAction.java
deleted file mode 100644
index ac2a70b..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IDropAction.java
+++ /dev/null
@@ -1,37 +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.wst.sse.ui.internal;
-
-
-
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.ui.IEditorPart;
-
-/**
- */
-public interface IDropAction {
-
-
-	/**
-	 * @param data
-	 *            DropTargetEvent.data will be passed.
-	 * @return boolean true for supported data type
-	 */
-	public boolean isSupportedData(Object data);
-
-	/**
-	 * @return boolean true for the action is actually processed false for the
-	 *         action is not processed.
-	 */
-	public boolean run(DropTargetEvent event, IEditorPart targetEditor);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedContributor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedContributor.java
deleted file mode 100644
index 6839ff1..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedContributor.java
+++ /dev/null
@@ -1,30 +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.wst.sse.ui.internal;
-
-
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IEditorActionBarContributor;
-
-public interface IExtendedContributor extends IEditorActionBarContributor, IPopupMenuContributor {
-	public void contributeToMenu(IMenuManager menu);
-
-	public void contributeToStatusLine(IStatusLineManager manager);
-
-	public void contributeToToolBar(IToolBarManager manager);
-
-	public void updateToolbarActions();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedEditorAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedEditorAction.java
deleted file mode 100644
index 7347734..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedEditorAction.java
+++ /dev/null
@@ -1,38 +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.wst.sse.ui.internal;
-
-
-
-import org.eclipse.ui.texteditor.IUpdate;
-
-public interface IExtendedEditorAction extends IUpdate {
-
-	/**
-	 * Returns whether this action item is visible
-	 * 
-	 * @return <code>true</code> if this item is visible, and
-	 *         <code>false</code> otherwise
-	 */
-	public boolean isVisible();
-
-	/**
-	 * Sets the active editor for the action. Implementors should disconnect
-	 * from the old editor, connect to the new editor, and update the action
-	 * to reflect the new editor.
-	 * 
-	 * @param targetEditor
-	 *            the new editor target
-	 */
-	public void setActiveExtendedEditor(IExtendedSimpleEditor targetEditor);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedMarkupEditor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedMarkupEditor.java
deleted file mode 100644
index e35eaa5..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedMarkupEditor.java
+++ /dev/null
@@ -1,47 +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.wst.sse.ui.internal;
-
-
-
-import java.util.List;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * IExtendedMarkupEditor
- * 
- * @deprecated use the editor's ISourceEditingTextTools adapter and cast to
- *             IDOMSourceEditingTextTools when appropriate
- */
-public interface IExtendedMarkupEditor  {
-
-	/**
-	 * @deprecated - use the IDOMSourceEditingTextTools.getNode(int) method
-	 *             with ISourceEditingTextTools.getCaretOffset()
-	 * @return
-	 */
-	public Node getCaretNode();
-
-	/**
-	 * @deprecated - use method on IDOMSourceEditingTextTools
-	 */
-	public Document getDOMDocument();
-
-	/**
-	 * @deprecated - some editors will provide the list of selected nodes as
-	 *             part of ISourceEditingTextTools.getSelection()
-	 */
-	public List getSelectedNodes();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedSimpleEditor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedSimpleEditor.java
deleted file mode 100644
index d93ad56..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IExtendedSimpleEditor.java
+++ /dev/null
@@ -1,33 +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.wst.sse.ui.internal;
-
-/**
- * @deprecated, obtain a ISourceEditingTextTools adapter from the editor part
- */
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.IEditorPart;
-
-public interface IExtendedSimpleEditor {
-
-	public int getCaretPosition();
-
-	public IDocument getDocument();
-
-	public IEditorPart getEditorPart();
-
-	public Point getSelectionRange();
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IModelProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IModelProvider.java
deleted file mode 100644
index 5a7d739..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IModelProvider.java
+++ /dev/null
@@ -1,21 +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.wst.sse.ui.internal;
-
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-
-
-public interface IModelProvider extends IDocumentProvider {
-	IStructuredModel getModel(Object element);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IPopupMenuContributor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IPopupMenuContributor.java
deleted file mode 100644
index dfe5190..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IPopupMenuContributor.java
+++ /dev/null
@@ -1,22 +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.wst.sse.ui.internal;
-
-
-
-import org.eclipse.jface.action.IMenuManager;
-
-public interface IPopupMenuContributor {
-
-	public void contributeToPopupMenu(IMenuManager menu);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IReleasable.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IReleasable.java
deleted file mode 100644
index 5806815..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/IReleasable.java
+++ /dev/null
@@ -1,20 +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.wst.sse.ui.internal;
-
-public interface IReleasable {
-	/**
-	 * Generic catch-all for releasing resources and other references
-	 */
-	void release();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ISourceViewerActionBarContributor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ISourceViewerActionBarContributor.java
deleted file mode 100644
index 0425582..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ISourceViewerActionBarContributor.java
+++ /dev/null
@@ -1,29 +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.wst.sse.ui.internal;
-
-
-
-import org.eclipse.ui.IEditorActionBarContributor;
-
-public interface ISourceViewerActionBarContributor extends IEditorActionBarContributor {
-
-	/**
-	 * Enables disables actions that are specific to the source viewer (and
-	 * should only work when the source viewer is enabled)
-	 * 
-	 * @param enabled
-	 *            true if source viewer is currently enabled, false otherwise
-	 */
-	public void setViewerSpecificContributionsEnabled(boolean enabled);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ITemporaryAnnotation.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ITemporaryAnnotation.java
deleted file mode 100644
index fc25631..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ITemporaryAnnotation.java
+++ /dev/null
@@ -1,17 +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.wst.sse.ui.internal;
-
-public interface ITemporaryAnnotation {
-	Object getKey();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/Logger.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/Logger.java
deleted file mode 100644
index 06265e4..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/Logger.java
+++ /dev/null
@@ -1,161 +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.wst.sse.ui.internal;
-
-
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-/**
- * Small convenience class to log messages to plugin's log file and also, if
- * desired, the console. This class should only be used by classes in this
- * plugin. Other plugins should make their own copy, with appropriate ID.
- */
-public class Logger {
-	private static final String PLUGIN_ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-	
-	public static final int ERROR = IStatus.ERROR; // 4
-	public static final int ERROR_DEBUG = 200 + ERROR;
-	public static final int INFO = IStatus.INFO; // 1
-	public static final int INFO_DEBUG = 200 + INFO;
-
-	public static final int OK = IStatus.OK; // 0
-
-	public static final int OK_DEBUG = 200 + OK;
-
-	private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
-	public static final int WARNING = IStatus.WARNING; // 2
-	public static final int WARNING_DEBUG = 200 + WARNING;
-
-	/**
-	 * Adds message to log.
-	 * 
-	 * @param level
-	 *            severity level of the message (OK, INFO, WARNING, ERROR,
-	 *            OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
-	 * @param message
-	 *            text to add to the log
-	 * @param exception
-	 *            exception thrown
-	 */
-	protected static void _log(int level, String message, Throwable exception) {
-		if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
-			if (!isDebugging())
-				return;
-		}
-
-		int severity = IStatus.OK;
-		switch (level) {
-			case INFO_DEBUG :
-			case INFO :
-				severity = IStatus.INFO;
-				break;
-			case WARNING_DEBUG :
-			case WARNING :
-				severity = IStatus.WARNING;
-				break;
-			case ERROR_DEBUG :
-			case ERROR :
-				severity = IStatus.ERROR;
-		}
-		message = (message != null) ? message : "null"; //$NON-NLS-1$
-		Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		if (bundle != null) 
-			Platform.getLog(bundle).log(statusObj);
-
-	}
-
-	/**
-	 * Prints message to log if category matches /debug/tracefilter option.
-	 * 
-	 * @param message
-	 *            text to print
-	 * @param category
-	 *            category of the message, to be compared with
-	 *            /debug/tracefilter
-	 */
-	protected static void _trace(String category, String message, Throwable exception) {
-		if (isTracing(category)) {
-			message = (message != null) ? message : "null"; //$NON-NLS-1$
-			Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
-			Bundle bundle = Platform.getBundle(PLUGIN_ID);
-			if (bundle != null) 
-				Platform.getLog(bundle).log(statusObj);
-
-		}
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-
-	/**
-	 * Determines if currently tracing a category
-	 * 
-	 * @param category
-	 * @return true if tracing category, false otherwise
-	 */
-	public static boolean isTracing(String category) {
-		if (!isDebugging())
-			return false;
-
-		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
-		if (traceFilter != null) {
-			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				String cat = tokenizer.nextToken().trim();
-				if (category.equals(cat)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static void log(int level, String message) {
-		_log(level, message, null);
-	}
-
-	public static void log(int level, String message, Throwable exception) {
-		_log(level, message, exception);
-	}
-
-	public static void logException(String message, Throwable exception) {
-		_log(ERROR, message, exception);
-	}
-
-	public static void logException(Throwable exception) {
-		_log(ERROR, exception.getMessage(), exception);
-	}
-
-	public static void trace(String category, String message) {
-		_trace(category, message, null);
-	}
-
-	public static void traceException(String category, String message, Throwable exception) {
-		_trace(category, message, exception);
-	}
-
-	public static void traceException(String category, Throwable exception) {
-		_trace(category, exception.getMessage(), exception);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/PreferenceInitializer.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/PreferenceInitializer.java
deleted file mode 100644
index 61b56d9..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/PreferenceInitializer.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.wst.sse.ui.internal.preferences.EditorPreferenceNames;
-import org.eclipse.wst.sse.ui.internal.projection.IStructuredTextFoldingProvider;
-import org.eclipse.wst.sse.ui.internal.provisional.preferences.CommonEditorPreferenceNames;
-
-
-public class PreferenceInitializer extends AbstractPreferenceInitializer {
-	/* (non-Javadoc)
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = SSEUIPlugin.getDefault().getPreferenceStore();
-
-		// use the base annotation & quick diff preference page
-		EditorsUI.useAnnotationsPreferencePage(store);
-		EditorsUI.useQuickDiffPreferencePage(store);
-
-		// let annotations show up in the vertical ruler if that's what the
-		// preference is
-		//		// these annotation preferences have a different default value than
-		// the one the base provides
-		//		store.setDefault("errorIndicationInVerticalRuler", false);
-		// //$NON-NLS-1$
-		//		store.setDefault("warningIndicationInVerticalRuler", false);
-		// //$NON-NLS-1$
-
-		// these annotation preferences are not part of base text editor
-		// preference
-		store.setDefault(CommonEditorPreferenceNames.EVALUATE_TEMPORARY_PROBLEMS, true);
-
-		setMatchingBracketsPreferences(store);
-
-		// hover help preferences are not part of base text editor preference
-		String mod2Name = Action.findModifierString(SWT.MOD2); // SWT.COMMAND
-		// on Mac;
-		// SWT.CONTROL
-		// elsewhere
-		store.setDefault(EditorPreferenceNames.EDITOR_TEXT_HOVER_MODIFIERS, "combinationHover|true|0;problemHover|false|0;documentationHover|false|0;annotationHover|true|" + mod2Name); //$NON-NLS-1$
-
-		// set default read-only foreground color scale value
-		store.setDefault(EditorPreferenceNames.READ_ONLY_FOREGROUND_SCALE, 30);
-		
-		// set default enable folding value
-		store.setDefault(IStructuredTextFoldingProvider.FOLDING_ENABLED, false);
-		
-		// set default for show message dialog when unknown content type in editor
-		store.setDefault(EditorPreferenceNames.SHOW_UNKNOWN_CONTENT_TYPE_MSG, true);
-	}
-
-	private void setMatchingBracketsPreferences(IPreferenceStore store) {
-		// matching brackets is not part of base text editor preference
-		store.setDefault(EditorPreferenceNames.MATCHING_BRACKETS, true);
-		PreferenceConverter.setDefault(store, EditorPreferenceNames.MATCHING_BRACKETS_COLOR, new RGB(192, 192, 192));
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ReadOnlyAwareDropTargetAdapter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ReadOnlyAwareDropTargetAdapter.java
deleted file mode 100644
index 1fb0b9d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ReadOnlyAwareDropTargetAdapter.java
+++ /dev/null
@@ -1,50 +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.wst.sse.ui.internal;
-
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-
-
-public class ReadOnlyAwareDropTargetAdapter extends ExtendedEditorDropTargetAdapter {
-
-	/**
-	 * @deprecated - use ReadOnlyAwareDropTargetAdapter(boolean useProxy) for
-	 *             the performance
-	 */
-	public ReadOnlyAwareDropTargetAdapter() {
-		super();
-	}
-
-	public ReadOnlyAwareDropTargetAdapter(boolean useProxy) {
-		super(useProxy);
-	}
-
-	public void drop(DropTargetEvent event) {
-		IDocument document = getTextViewer().getDocument();
-		if (document instanceof IStructuredDocument) {
-			if (((IStructuredDocument) document).containsReadOnly(getDropOffset(event), 0)) {
-				event.operations = DND.DROP_NONE;
-				event.detail = DND.DROP_NONE;
-				getTextViewer().getTextWidget().redraw();
-				getTextViewer().getTextWidget().update();
-				getTextViewer().getTextWidget().getDisplay().beep();
-			}
-		}
-		super.drop(event);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIMessages.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIMessages.java
deleted file mode 100644
index 88809b7..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIMessages.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.wst.sse.ui.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by SSE UI
- * 
- * @plannedfor 1.0
- */
-public class SSEUIMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.sse.ui.internal.SSEUIPluginResources";//$NON-NLS-1$
-	private static ResourceBundle fResourceBundle;
-
-	public static ResourceBundle getResourceBundle() {
-		try {
-			if (fResourceBundle == null)
-				fResourceBundle = ResourceBundle.getBundle(BUNDLE_NAME);
-		}
-		catch (MissingResourceException x) {
-			fResourceBundle = null;
-		}
-		return fResourceBundle;
-	}
-
-	private SSEUIMessages() {
-		// cannot create new instance
-	}
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, SSEUIMessages.class);
-	}
-
-	public static String Error_opening_file_UI_;
-	public static String _UI_File_is_read_only;
-	public static String _32concat_EXC_;
-	public static String Multiple_errors;
-	public static String _Undo_Text_Change__Ctrl_Z_UI_;
-	public static String Undo_Text_Change__UI_;
-	public static String _Undo__0___Ctrl_Z_UI_;
-	public static String Undo___0___UI_;
-	public static String _Redo_Text_Change__Ctrl_Y_UI_;
-	public static String Redo_Text_Change__UI_;
-	public static String _Redo__0___Ctrl_Y_UI_;
-	public static String Redo___0___UI_;
-	public static String FormatMenu_label;
-	public static String Format_Document_UI_;
-	public static String Format_Active_Elements_UI_;
-	public static String Text_Cut_UI_;
-	public static String Text_Paste_UI_;
-
-	public static String Cleanup_Document_UI_;
-
-	public static String Editor_Cut_label;
-	public static String Editor_Cut_tooltip;
-	public static String Editor_Cut_image;
-	public static String Editor_Cut_description;
-	public static String Editor_Copy_label;
-	public static String Editor_Copy_tooltip;
-	public static String Editor_Copy_image;
-	public static String Editor_Copy_description;
-	public static String Editor_Paste_label;
-	public static String Editor_Paste_tooltip;
-	public static String Editor_Paste_image;
-	public static String Editor_Paste_description;
-	public static String Editor_Delete_label;
-	public static String Editor_Delete_tooltip;
-	public static String Editor_Delete_image;
-	public static String Editor_Delete_description;
-
-	public static String ContentAssistProposals_label;
-	public static String ContentAssistProposals_tooltip;
-	public static String ContentAssistProposals_description;
-	public static String QuickFix_label;
-	public static String QuickFix_tooltip;
-	public static String QuickFix_image;
-	public static String QuickFix_description;
-	public static String ToggleComment_label;
-	public static String ToggleComment_tooltip;
-	public static String ToggleComment_image;
-	public static String ToggleComment_description;
-	public static String AddBlockComment_label;
-	public static String AddBlockComment_tooltip;
-	public static String AddBlockComment_image;
-	public static String AddBlockComment_description;
-	public static String RemoveBlockComment_label;
-	public static String RemoveBlockComment_tooltip;
-	public static String RemoveBlockComment_image;
-	public static String RemoveBlockComment_description;
-	public static String CleanupDocument_label;
-	public static String CleanupDocument_tooltip;
-	public static String CleanupDocument_image;
-	public static String CleanupDocument_description;
-	public static String FormatDocument_label;
-	public static String FormatDocument_tooltip;
-	public static String FormatDocument_image;
-	public static String FormatDocument_description;
-	public static String FormatActiveElements_label;
-	public static String FormatActiveElements_tooltip;
-	public static String FormatActiveElements_image;
-	public static String FormatActiveElements_description;
-	public static String OpenFileFromSource_label;
-	public static String OpenFileFromSource_tooltip;
-	public static String OpenFileFromSource_image;
-	public static String OpenFileFromSource_description;
-	public static String ShowTooltipDesc_label;
-	public static String ShowTooltipDesc_tooltip;
-	public static String ShowTooltipDesc_image;
-	public static String ShowTooltipDesc_description;
-	public static String StructureSelectEnclosing_label;
-	public static String StructureSelectEnclosing_tooltip;
-	public static String StructureSelectEnclosing_description;
-	public static String StructureSelectNext_label;
-	public static String StructureSelectNext_tooltip;
-	public static String StructureSelectNext_description;
-	public static String StructureSelectPrevious_label;
-	public static String StructureSelectPrevious_tooltip;
-	public static String StructureSelectPrevious_description;
-	public static String StructureSelectHistory_label;
-	public static String StructureSelectHistory_tooltip;
-	public static String StructureSelectHistory_description;
-	public static String Text_Shift_Right_UI_;
-	public static String Text_Shift_Left_UI_;
-
-	public static String _4concat;
-	public static String Content_type__UI_;
-	public static String Foreground_UI_;
-	public static String Background_UI_;
-	public static String Bold_UI_;
-	public static String Italics_UI;
-	public static String Restore_Default_UI_;
-	public static String Sample_text__UI_;
-
-	public static String AddBreakpoint_label;
-	public static String AddBreakpoint_tooltip;
-	public static String AddBreakpoint_description;
-	public static String AddBreakpoint_error_dialog_title;
-	public static String AddBreakpoint_error_dialog_message;
-	public static String ToggleBreakpoint_label;
-	public static String ToggleBreakpoint_tooltip;
-	public static String ToggleBreakpoint_description;
-	public static String EnableBreakpoint_label;
-	public static String EnableBreakpoint_tooltip;
-	public static String EnableBreakpoint_description;
-	public static String DisableBreakpoint_label;
-	public static String DisableBreakpoint_tooltip;
-	public static String DisableBreakpoint_description;
-	public static String ManageBreakpoints_add_label;
-	public static String ManageBreakpoints_remove_label;
-	public static String ManageBreakpoints_tooltip;
-	public static String ManageBreakpoints_error_adding_title1;
-	public static String ManageBreakpoints_error_adding_message1;
-
-	public static String AbstractColorPageDescription;
-	public static String EditorModelUtil_0;
-	public static String EditorModelUtil_1;
-
-	// TODO: These should be removed when ContentSettingsPropertyPage is
-	// deleted
-	// web content settings
-	public static String UI_Default_HTML_DOCTYPE_ID___1;
-	public static String UI_CSS_profile___2;
-	public static String UI_Target_Device___3;
-
-	public static String Editor_ToggleInsertMode_label;
-
-	//
-	// These strings are used in Workbench menu bar
-	//
-	public static String ExpandSelectionToMenu_label;
-	public static String SourceMenu_label;
-
-	public static String FindOccurrencesActionProvider_0;
-	public static String RemoveAction_0;
-	public static String ShowPropertiesAction_0;
-	public static String ContentOutlineConfiguration_0;
-	public static String ContentOutlineConfiguration_1;
-	public static String AbstractOpenOn_0;
-	public static String FormatActionDelegate_jobName;
-	public static String FormatActionDelegate_errorStatusMessage;
-	public static String FormatActionDelegate_3;
-	public static String FormatActionDelegate_4;
-	public static String FormatActionDelegate_5;
-
-	public static String TranslucencyPreferenceTab_0;
-	public static String TranslucencyPreferenceTab_1;
-	public static String StructuredTextEditorPreferencePage_2;
-	public static String StructuredTextEditorPreferencePage_6;
-	public static String StructuredTextEditorPreferencePage_20;
-	public static String StructuredTextEditorPreferencePage_23;
-	public static String StructuredTextEditorPreferencePage_24;
-	public static String StructuredTextEditorPreferencePage_30;
-	public static String StructuredTextEditorPreferencePage_37;
-	public static String StructuredTextEditorPreferencePage_38;
-	public static String StructuredTextEditorPreferencePage_40;
-	public static String TaskTagPreferenceTab_0;
-	public static String TaskTagPreferenceTab_1;
-	public static String TaskTagPreferenceTab_2;
-	public static String TaskTagPreferenceTab_3;
-	public static String TaskTagPreferenceTab_5;
-	public static String TaskTagPreferenceTab_6;
-	public static String TaskTagPreferenceTab_7;
-	public static String TaskTagPreferenceTab_12;
-	public static String TaskTagPreferenceTab_13;
-	public static String TaskTagPreferenceTab_14;
-	public static String TaskTagPreferenceTab_15;
-	public static String TaskTagPreferenceTab_16;
-	public static String TaskTagPreferenceTab_17;
-	public static String TaskTagPreferenceTab_18;
-	public static String TaskTagPreferenceTab_19;
-	public static String TaskTagPreferenceTab_20;
-	public static String TaskTagPreferenceTab_22;
-	public static String TaskTagPreferenceTab_23;
-	public static String TaskTagPreferenceTab_24;
-	public static String TaskTagPreferenceTab_25;
-	public static String TaskTagPreferenceTab_26;
-	public static String TaskTagPreferenceTab_27;
-	public static String TaskTagPreferenceTab_28;
-	public static String TaskTagPreferenceTab_29;
-	public static String TaskTagPreferenceTab_30;
-	public static String TaskTagPreferenceTab_31;
-	public static String TaskTagPreferencePage_32;
-	public static String TaskTagPreferenceTab_33;
-	public static String TaskTagExclusionTab_01;
-	public static String TaskTagExclusionTab_02;
-	public static String TaskTagExclusionTab_03;
-
-	public static String PropertyPreferencePage_01;
-	public static String PropertyPreferencePage_02;
-
-	public static String FilePreferencePage_0;
-	public static String NoModificationCompletionProposal_0;
-	public static String ToggleBreakpointAction_0;
-	public static String ManageBreakpointAction_0;
-	public static String ManageBreakpointAction_1;
-	public static String EditBreakpointAction_0;
-	// Used in Structured Text Editor Preference Page / Hovers Tab
-	public static String TextHoverPreferenceTab_title;
-	public static String TextHoverPreferenceTab_hoverPreferences;
-	public static String TextHoverPreferenceTab_keyModifier;
-	public static String TextHoverPreferenceTab_description;
-	public static String TextHoverPreferenceTab_modifierIsNotValid;
-	public static String TextHoverPreferenceTab_modifierIsNotValidForHover;
-	public static String TextHoverPreferenceTab_duplicateModifier;
-	public static String TextHoverPreferenceTab_nameColumnTitle;
-	public static String TextHoverPreferenceTab_modifierColumnTitle;
-	public static String TextHoverPreferenceTab_delimiter;
-	public static String TextHoverPreferenceTab_insertDelimiterAndModifierAndDelimiter;
-	public static String TextHoverPreferenceTab_insertModifierAndDelimiter;
-	public static String TextHoverPreferenceTab_insertDelimiterAndModifier;
-
-	// used dynamically
-	public static String combinationHover_label;
-	public static String combinationHover_desc;
-	public static String problemHover_label;
-	public static String problemHover_desc;
-	public static String documentationHover_label;
-	public static String documentationHover_desc;
-	public static String annotationHover_label;
-	public static String annotationHover_desc;
-
-	public static String EditStructuredTextEditorPreferencesAction_0;
-	public static String StructuredTextEditorPreferencePage_0;
-	public static String PreferenceManager_0;
-
-	public static String OccurrencesSearchQuery_0;
-	public static String OccurrencesSearchQuery_2;
-	public static String ShowView_errorTitle;
-	public static String proc_dirty_regions_0;
-
-	public static String textHoverMakeStickyHint;
-
-	// Encoding
-	public static String EncodingPreferencePage_0;
-	public static String EncodingPreferencePage_1;
-
-	public static String busy;
-	public static String caret_update;
-	public static String EmptyFilePreferencePage_0;
-
-	public static String OffsetStatusLineContributionItem_0;
-	public static String OffsetStatusLineContributionItem_2;
-	public static String OffsetStatusLineContributionItem_3;
-	public static String OffsetStatusLineContributionItem_4;
-	public static String OffsetStatusLineContributionItem_5;
-	public static String OffsetStatusLineContributionItem_6;
-	public static String OffsetStatusLineContributionItem_7;
-	public static String OffsetStatusLineContributionItem_8;
-	public static String OffsetStatusLineContributionItem_9;
-	public static String OffsetStatusLineContributionItem_10;
-	public static String OffsetStatusLineContributionItem_11;
-	public static String OffsetStatusLineContributionItem_12;
-	public static String OffsetStatusLineContributionItem_13;
-	public static String OffsetStatusLineContributionItem_14;
-	public static String OffsetStatusLineContributionItem_15;
-	public static String OffsetStatusLineContributionItem_16;
-	public static String OffsetStatusLineContributionItem_17;
-	public static String OffsetStatusLineContributionItem_18;
-	public static String OffsetStatusLineContributionItem_19;
-
-	/*
-	 * *****Below are possibly unused strings that may be removed *****
-	 */
-	public static String Save_label;
-	public static String An_error_has_occurred_when_ERROR_;
-	public static String Problems_During_Save_As_UI_;
-	public static String Save_could_not_be_complete_UI_;
-	public static String ManageBreakpoints_error_removing_title1;
-	public static String ManageBreakpoints_error_removing_message1;
-	public static String ManageBreakpoints_error_retrieving_message;
-	public static String JSPSourcePreferencePageDescription;
-	public static String Editor_error_save_message;
-	public static String Editor_error_save_title;
-	public static String Editor_warning_save_delete;
-
-	public static String Previous_annotation;
-	public static String Next_annotation;
-
-	public static String AnnotationTypes_Errors;
-	public static String AnnotationTypes_Warnings;
-	public static String AnnotationTypes_Tasks;
-	public static String AnnotationTypes_SearchResults;
-	public static String AnnotationTypes_Bookmarks;
-	public static String AnnotationTypes_Others;
-
-	public static String Editor_ConvertToWindows_label;
-	public static String Editor_ConvertToWindows_tooltip;
-	public static String Editor_ConvertToWindows_image;
-	public static String Editor_ConvertToWindows_description;
-
-	public static String Editor_ConvertToUNIX_label;
-	public static String Editor_ConvertToUNIX_tooltip;
-	public static String Editor_ConvertToUNIX_image;
-	public static String Editor_ConvertToUNIX_description;
-
-	public static String Editor_ConvertToMac_label;
-	public static String Editor_ConvertToMac_tooltip;
-	public static String Editor_ConvertToMac_image;
-	public static String Editor_ConvertToMac_description;
-	public static String ConvertLineDelimitersMenu_label;
-	public static String FindOccurrences_label;
-
-	public static String ConvertLineDelimitersToCRLFActionDelegate_jobName;
-	public static String ConvertLineDelimitersToCRLFActionDelegate_errorStatusMessage;
-	public static String ConvertLineDelimitersToCRLFActionDelegate_3;
-	public static String ConvertLineDelimitersToCRLFActionDelegate_4;
-
-	public static String TextHoverPreferenceTab_annotationRollover;
-	public static String TextHoverPreferenceTab_showAffordance;
-	public static String TextHoverPreferenceTab_enabled;
-
-	public static String BasicFindOccurrencesAction_0;
-	public static String BasicSearchLabelProvider_0;
-	public static String NavigationPreferenceTab_0;
-	public static String OccurrencesSearchQuery_1;
-	public static String FileModelProvider_0;
-	public static String JFaceNodeAdapter_0;
-
-	public static String ConfigureProjectSettings;
-	public static String ConfigureWorkspaceSettings;
-	public static String EnableProjectSettings;
-
-	public static String LoadingReferencedGrammars;
-
-	public static String Folding;
-	public static String StructuredTextEditorPreferencePage_3;
-	public static String Projection_Toggle_label;
-	public static String Projection_Toggle_tooltip;
-	public static String Projection_Toggle_description;
-	public static String Projection_Toggle_image;
-	public static String Projection_ExpandAll_label;
-	public static String Projection_ExpandAll_tooltip;
-	public static String Projection_ExpandAll_description;
-	public static String Projection_ExpandAll_image;
-	public static String Projection_CollapseAll_label;
-	public static String Projection_CollapseAll_tooltip;
-	public static String Projection_CollapseAll_description;
-	public static String Projection_CollapseAll_image;
-
-	// These strings are accessed using resource bundle and in properties
-	// file, need to use '.' instead of '_' in some keys
-	public static String Editor_ManageBookmarks_tooltip;
-	public static String Editor_ManageBookmarks_image;
-	public static String Editor_ManageBookmarks_description;
-	public static String Editor_ManageBookmarks_add_label;
-	public static String Editor_ManageBookmarks_remove_label;
-	public static String Editor_ManageBookmarks_add_dialog_title;
-	public static String Editor_ManageBookmarks_add_dialog_message;
-	public static String Editor_ManageBookmarks_error_dialog_title;
-	public static String Editor_ManageBookmarks_error_dialog_message;
-	public static String Editor_ManageTasks_tooltip;
-	public static String Editor_ManageTasks_image;
-	public static String Editor_ManageTasks_description;
-	public static String Editor_ManageTasks_add_label;
-	public static String Editor_ManageTasks_remove_label;
-	public static String Editor_ManageTasks_add_dialog_title;
-	public static String Editor_ManageTasks_add_dialog_message;
-	public static String Editor_ManageTasks_error_dialog_title;
-	public static String Editor_ManageTasks_error_dialog_message;
-	/*
-	 * *****Above are possibly unused strings that may be removed*****
-	 */
-	
-	public static String StructuredTextEditorPreferencePage_39;
-	public static String StructuredTextEditor_0;
-	public static String UnknownContentTypeDialog_0;
-	public static String UnknownContentTypeDialog_1;
-	public static String UnknownContentTypeDialog_2;
-	public static String StyledTextColorPicker_0;
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPlugin.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPlugin.java
deleted file mode 100644
index 50783e7..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPlugin.java
+++ /dev/null
@@ -1,80 +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.wst.sse.ui.internal;
-
-
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.sse.core.internal.tasks.TaskScanningScheduler;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryImpl;
-import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager;
-import org.osgi.framework.BundleContext;
-
-
-public class SSEUIPlugin extends AbstractUIPlugin {
-
-	public final static String ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-
-	static SSEUIPlugin instance = null;
-
-	public static SSEUIPlugin getDefault() {
-		return instance;
-	}
-
-	public synchronized static SSEUIPlugin getInstance() {
-		return instance;
-	}
-
-	private TextHoverManager fTextHoverManager;
-
-	public SSEUIPlugin() {
-		super();
-		instance = this;
-	}
-
-	public AdapterFactoryRegistry getAdapterFactoryRegistry() {
-		return AdapterFactoryRegistryImpl.getInstance();
-
-	}
-
-	/**
-	 * Return text hover manager
-	 * 
-	 * @return TextHoverManager
-	 */
-	public TextHoverManager getTextHoverManager() {
-		if (fTextHoverManager == null) {
-			fTextHoverManager = new TextHoverManager();
-		}
-		return fTextHoverManager;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		/**
-		 * If the user starts the workbench with
-		 * -Dorg.eclipse.wst.sse.core.taskscanner=off, the scanner should be
-		 * disabled
-		 */
-		String scan = System.getProperty("org.eclipse.wst.sse.core.taskscanner"); //$NON-NLS-1$
-		if (scan == null || !scan.equalsIgnoreCase("off")) { //$NON-NLS-1$
-			TaskScanningScheduler.startup();
-		}
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		TaskScanningScheduler.shutdown();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPluginResources.properties b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPluginResources.properties
deleted file mode 100644
index 8fe20c0..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/SSEUIPluginResources.properties
+++ /dev/null
@@ -1,395 +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
-#
-###############################################################################
-Error_opening_file_UI_=Error opening file
-_UI_File_is_read_only=File {0} is read-only.
-_32concat_EXC_=Editor could not be open on {0}
-Multiple_errors=Multiple annotations found at this line:
-_Undo_Text_Change__Ctrl_Z_UI_=&Undo Text Change @Ctrl+Z
-Undo_Text_Change__UI_=Undo Text Change.
-_Undo__0___Ctrl_Z_UI_=&Undo {0} @Ctrl+Z
-Undo___0___UI_=Undo: {0}.
-_Redo_Text_Change__Ctrl_Y_UI_=&Redo Text Change @Ctrl+Y
-Redo_Text_Change__UI_=Redo Text Change.
-_Redo__0___Ctrl_Y_UI_=&Redo {0} @Ctrl+Y
-Redo___0___UI_=Redo: {0}.
-FormatMenu_label=F&ormat
-Format_Document_UI_=Format Document
-Format_Active_Elements_UI_=Format Active Elements
-Text_Cut_UI_=Text Cut
-Text_Paste_UI_=Text Paste
-###############################################################################
-Cleanup_Document_UI_=Cleanup Document
-
-Editor_Cut_label=Cu&t@Ctrl+X
-Editor_Cut_tooltip=Cut
-Editor_Cut_image=
-Editor_Cut_description=Cut
-
-Editor_Copy_label=&Copy@Ctrl+C
-Editor_Copy_tooltip=Copy
-Editor_Copy_image=
-Editor_Copy_description=Copy
-
-Editor_Paste_label=&Paste@Ctrl+V
-Editor_Paste_tooltip=Paste
-Editor_Paste_image=
-Editor_Paste_description=Paste
-
-Editor_Delete_label=&Delete@Delete
-Editor_Delete_tooltip=Delete
-Editor_Delete_image=
-Editor_Delete_description=Delete
-
-ContentAssistProposals_label=Con&tent Assist
-ContentAssistProposals_tooltip=Content Assist
-ContentAssistProposals_description=Content Assist
-
-QuickFix_label=&Quick Fix
-QuickFix_tooltip=Quick Fix
-QuickFix_image=
-QuickFix_description=Quick Fix
-
-ToggleComment_label=Togg&le Comment
-ToggleComment_tooltip=Toggle Comment
-ToggleComment_image=
-ToggleComment_description=Toggle Comment
-AddBlockComment_label=Add &Block Comment
-AddBlockComment_tooltip=Add Block Comment
-AddBlockComment_image=
-AddBlockComment_description=Add Block Comment
-RemoveBlockComment_label=Remove Bloc&k Comment
-RemoveBlockComment_tooltip=Remove Block Comment
-RemoveBlockComment_image=
-RemoveBlockComment_description=Remove Block Comment
-CleanupDocument_label=C&leanup Document...
-CleanupDocument_tooltip=Cleanup Document
-CleanupDocument_image=
-CleanupDocument_description=Cleanup Document
-FormatDocument_label=&Document
-FormatDocument_tooltip=Format Document
-FormatDocument_image=
-FormatDocument_description=Format Document
-FormatActiveElements_label=Act&ive Elements
-FormatActiveElements_tooltip=Format Active Elements
-FormatActiveElements_image=
-FormatActiveElements_description=Format Active Elements
-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
-ShowTooltipDesc_label=Show &Tooltip Description
-ShowTooltipDesc_tooltip=Displays the hover help for the selected element
-ShowTooltipDesc_image=
-ShowTooltipDesc_description=Displays the hover help for the selected element
-StructureSelectEnclosing_label=&Enclosing Element
-StructureSelectEnclosing_tooltip=Expand selection to include enclosing element
-StructureSelectEnclosing_description=Expand selection to include enclosing element
-StructureSelectNext_label=&Next Element
-StructureSelectNext_tooltip=Expand selection to include next sibling
-StructureSelectNext_description=Expand selection to include next sibling
-StructureSelectPrevious_label=&Previous Element
-StructureSelectPrevious_tooltip=Expand selection to include previous sibling
-StructureSelectPrevious_description=Expand selection to include previous sibling
-StructureSelectHistory_label=&Restore Last Selection
-StructureSelectHistory_tooltip=Restore last selection
-StructureSelectHistory_description=Restore last selection
-Text_Shift_Right_UI_=Text Shift Right
-Text_Shift_Left_UI_=Text Shift Left
-
-_4concat=''{0}'' is not a valid input
-## The following strings are for "XML->XML Source->XML Style" Preferences, "Web Tools->Source->HTML Style" Preferences, and "Web Tools->Source->JavaScript Style" Preferences
-Content_type__UI_=Co&ntent type:
-Foreground_UI_=&Foreground:
-Background_UI_=&Background:
-Bold_UI_=B&old
-Italics_UI=Italics
-Restore_Default_UI_=&Restore Default
-Sample_text__UI_=&Sample text:
-##
-AddBreakpoint_label=Add &Breakpoint
-AddBreakpoint_tooltip=Add Breakpoint
-AddBreakpoint_description=Add Breakpoint
-AddBreakpoint_error_dialog_title=Add Breakpoint
-AddBreakpoint_error_dialog_message=Cannot add breakpoint
-##
-ToggleBreakpoint_label=Toggle Breakpoint
-ToggleBreakpoint_tooltip=Toggle Breakpoint
-ToggleBreakpoint_description=Toggle Breakpoint
-##
-EnableBreakpoint_label=Enable Breakpoint
-EnableBreakpoint_tooltip=Enable Breakpoint
-EnableBreakpoint_description=Enable Breakpoint
-##
-DisableBreakpoint_label=Disable Breakpoint
-DisableBreakpoint_tooltip=Disable Breakpoint
-DisableBreakpoint_description=Disable Breakpoint
-##
-ManageBreakpoints_add_label=Add &Breakpoint
-ManageBreakpoints_remove_label=Remove Breakpoint
-ManageBreakpoints_tooltip=Add/Remove Breakpoint
-ManageBreakpoints_error_adding_title1=Add Breakpoint
-ManageBreakpoints_error_adding_message1=Cannot add breakpoint
-
-AbstractColorPageDescription=Customize the syntax highlighting by selecting the type of text whose style you want to customize from either the combo box or the sample text area
-##
-EditorModelUtil_0=model in invalid state
-EditorModelUtil_1=There was a problem adding adapter factories
-
-# web content settings
-UI_Default_HTML_DOCTYPE_ID___1=&Document type:
-UI_CSS_profile___2=&CSS profile:
-UI_Target_Device___3=&Target device:
-
-Editor_ToggleInsertMode_label=Sma&rt Insert Mode
-
-##########################################################################
-# These strings are used in Workbench menu bar
-##########################################################################
-ExpandSelectionToMenu_label=E&xpand Selection To
-SourceMenu_label=&Source
-#
-FindOccurrencesActionProvider_0=Current selection does not resolve to a searchable element
-RemoveAction_0=Remove Property
-ShowPropertiesAction_0=P&roperties
-ContentOutlineConfiguration_0=Collapse All
-ContentOutlineConfiguration_1=Link with Editor
-AbstractOpenOn_0=Current text selection does not resolve to a file
-FormatActionDelegate_jobName=Formatting documents
-FormatActionDelegate_errorStatusMessage=Exceptions occurred while formatting documents
-FormatActionDelegate_3=Formatting {0}
-FormatActionDelegate_4=Exception occurred while formatting document {0}
-FormatActionDelegate_5=MalformedInputException occurred while formatting document {0}
-TranslucencyPreferenceTab_0=Read-Only text style
-TranslucencyPreferenceTab_1=Read-Only contrast percentage:
-StructuredTextEditorPreferencePage_2=Matching brackets highlight
-StructuredTextEditorPreferencePage_6=The following preferences apply to the HTML, JSP, XML, and other source editors.
-StructuredTextEditorPreferencePage_20=Highlight &matching brackets
-StructuredTextEditorPreferencePage_23=Appearance co&lor options:
-StructuredTextEditorPreferencePage_24=C&olor:
-StructuredTextEditorPreferencePage_30=&Report problems as you type
-StructuredTextEditorPreferencePage_37=Empty input
-StructuredTextEditorPreferencePage_38=is not a valid input.
-StructuredTextEditorPreferencePage_39=Inform when unsupported content type is in editor
-StructuredTextEditorPreferencePage_40=Also see the <a>''{0}''</a> preferences.
-TaskTagPreferenceTab_0=Low
-TaskTagPreferenceTab_1=Normal
-TaskTagPreferenceTab_2=High
-TaskTagPreferenceTab_3=N/A
-TaskTagPreferenceTab_5=Task Tag
-TaskTagPreferenceTab_6=Tag:
-TaskTagPreferenceTab_7=Priority:
-TaskTagPreferenceTab_12=Tag
-TaskTagPreferenceTab_13=Priority
-TaskTagPreferenceTab_14=New...
-TaskTagPreferenceTab_15=Edit...
-TaskTagPreferenceTab_16=Remove
-TaskTagPreferenceTab_17=Select All
-TaskTagPreferenceTab_18=Deselect All
-TaskTagPreferenceTab_19=Note: tags are case insensitive
-TaskTagPreferenceTab_20=Task Tags
-TaskTagPreferenceTab_22=Task Tags Settings Changed
-TaskTagPreferenceTab_23=The task tags settings have changed.  Make these changes effective now?
-TaskTagPreferenceTab_24=Yes
-TaskTagPreferenceTab_25=No
-TaskTagPreferenceTab_26=Cancel
-TaskTagPreferenceTab_27=Scanning files for tasks
-TaskTagPreferenceTab_28=detection aborted
-TaskTagPreferenceTab_29=detection completed
-TaskTagPreferenceTab_30=detection encountered errors
-TaskTagPreferenceTab_31=Enable searching for Task Tags
-TaskTagPreferencePage_32=Clean and redetect Tasks
-TaskTagPreferenceTab_33=Tags in comments indicating Tasks:
-TaskTagExclusionTab_01=Filters
-TaskTagExclusionTab_02=Scan the selected Content Types:
-TaskTagExclusionTab_03=Affected Content Types:
-
-PropertyPreferencePage_01=Project Specific Configuration
-PropertyPreferencePage_02=Select the project to configure:
-
-FilePreferencePage_0=Expand the tree to edit preferences for a specific content type.
-NoModificationCompletionProposal_0=No corrections available
-ToggleBreakpointAction_0=Toggle &Breakpoints
-ManageBreakpointAction_0=&Enable Breakpoints
-ManageBreakpointAction_1=&Disable Breakpoints
-EditBreakpointAction_0=Breakpoint &Properties...
-## Used in Structured Text Editor Preference Page / Hovers Tab
-TextHoverPreferenceTab_title=Hovers
-TextHoverPreferenceTab_hoverPreferences=Text &Hover key modifier preferences:
-TextHoverPreferenceTab_keyModifier=Pressed key &modifier while hovering:
-TextHoverPreferenceTab_description=Description:
-TextHoverPreferenceTab_modifierIsNotValid=Modifier ''{0}'' is not valid.
-TextHoverPreferenceTab_modifierIsNotValidForHover=Modifier ''{0}'' for ''{1}'' hover is not valid.
-TextHoverPreferenceTab_duplicateModifier=''{0}'' hover uses the same modifier as ''{1}'' hover.
-TextHoverPreferenceTab_nameColumnTitle=Text Hover Name
-TextHoverPreferenceTab_modifierColumnTitle=Pressed Key Modifier While Hovering
-TextHoverPreferenceTab_delimiter=+
-TextHoverPreferenceTab_insertDelimiterAndModifierAndDelimiter=\ + {0} +
-TextHoverPreferenceTab_insertModifierAndDelimiter=\ {0} +
-TextHoverPreferenceTab_insertDelimiterAndModifier=\ + {0}
-combinationHover_label=Combined Hover
-combinationHover_desc=Tries the hovers in the sequence listed in the table below this one and uses the one which fits best for the selected element and the current context.
-problemHover_label=Problem Description
-problemHover_desc=Shows the description of the selected problem.
-documentationHover_label=Documentation Description
-documentationHover_desc=Shows the documentation of the selected element.
-annotationHover_label=Annotation Description
-annotationHover_desc=Shows the description of the selected annotation.
-EditStructuredTextEditorPreferencesAction_0=Editor Preferences
-StructuredTextEditorPreferencePage_0=Appearance
-PreferenceManager_0=Original Error:
-
-OccurrencesSearchQuery_0={0} - {1} Occurrences in {2}
-OccurrencesSearchQuery_2=file
-ShowView_errorTitle=Problems Showing View
-proc_dirty_regions_0 = Processing Dirty Regions
-
-textHoverMakeStickyHint=Press ''{0}'' for focus.
-
-## Encoding
-EncodingPreferencePage_0=Encoding settings for Web and XML files:
-EncodingPreferencePage_1=Use 3 byte BOM (Byte Order Mark) when saving UTF-8 encoded files
-busy=busy
-caret_update=caret update
-EmptyFilePreferencePage_0=Expand the tree to edit preferences for a specific content type.
-OffsetStatusLineContributionItem_0=Selection Information:
-OffsetStatusLineContributionItem_2=Partitions
-OffsetStatusLineContributionItem_3=ITextRegions
-OffsetStatusLineContributionItem_4=Structured Model Content-Type: 
-OffsetStatusLineContributionItem_5=Model Handler: 
-OffsetStatusLineContributionItem_6=Document Class: 
-OffsetStatusLineContributionItem_7=Document Provider Class: 
-OffsetStatusLineContributionItem_8=Partitionings:
-OffsetStatusLineContributionItem_9=Start
-OffsetStatusLineContributionItem_10=Length
-OffsetStatusLineContributionItem_11=Type
-OffsetStatusLineContributionItem_12=Input Type: 
-OffsetStatusLineContributionItem_13=Partitioner: 
-OffsetStatusLineContributionItem_14=Selection
-OffsetStatusLineContributionItem_15=Start
-OffsetStatusLineContributionItem_16=Length
-OffsetStatusLineContributionItem_17=Text Length
-OffsetStatusLineContributionItem_18=Context
-OffsetStatusLineContributionItem_19=Workbench Selection
-
-StructuredTextEditor_0=Unsupported content type warning
-UnknownContentTypeDialog_0=Unsupported Content Type
-UnknownContentTypeDialog_1=Do not show this message again
-UnknownContentTypeDialog_2=Unsupported content type in editor.\nTo associate file extension with a supported content type,\nplease see <a>Content Types Preference Page</a>
-
-################################################################################
-## Below are possibly unused strings that may be removed
-################################################################################
-Save_label=&Save
-An_error_has_occurred_when_ERROR_=An error has occurred when retrieving resources for the source editor. The Eclipse Workbench installation may have been corrupted.
-## save as problems (next two) should match what is in workbench
-Problems_During_Save_As_UI_=Problems During Save As...
-Save_could_not_be_complete_UI_=Save could not be completed.
-ManageBreakpoints_error_removing_title1=Remove Breakpoint
-ManageBreakpoints_error_removing_message1=Cannot remove breakpoint
-ManageBreakpoints_error_retrieving_message=Retrieving markers failed:
-JSPSourcePreferencePageDescription=Embedded content type\'s source preferences will be used. Select the file type for customization
-# The following lines copied from org\eclipse\ui\editors\text\TextEditorMessages.properties in org.eclipse.ui plugin
-Editor_error_save_message=Save could not be completed. {0}
-Editor_error_save_title=Problems During Save As...
-Editor_warning_save_delete=The original file ''{0}'' has been deleted.
-
-# actions
-Previous_annotation=Previous Annotation
-Next_annotation=Next Annotation
-# Annotation Types
-AnnotationTypes_Errors=Errors
-AnnotationTypes_Warnings=Warnings
-AnnotationTypes_Tasks=Tasks
-AnnotationTypes_SearchResults=Search Results
-AnnotationTypes_Bookmarks=Bookmarks
-AnnotationTypes_Others=Others
-
-Editor_ConvertToWindows_label=&Windows
-Editor_ConvertToWindows_tooltip=Converts line delimiters to Windows
-Editor_ConvertToWindows_image=
-Editor_ConvertToWindows_description=Converts line delimiters to Windows
-
-Editor_ConvertToUNIX_label=&UNIX
-Editor_ConvertToUNIX_tooltip=Converts line delimiters to UNIX
-Editor_ConvertToUNIX_image=
-Editor_ConvertToUNIX_description=Converts line delimiters to UNIX
-
-Editor_ConvertToMac_label=&Mac
-Editor_ConvertToMac_tooltip=Converts line delimiters to Mac
-Editor_ConvertToMac_image=
-Editor_ConvertToMac_description=Converts line delimiters to Mac
-ConvertLineDelimitersMenu_label=Co&nvert Line Delimiters to
-FindOccurrences_label=O&ccurrences in File
-
-ConvertLineDelimitersToCRLFActionDelegate_jobName=Converting line delimiters
-ConvertLineDelimitersToCRLFActionDelegate_errorStatusMessage=Exceptions occurred while converting line delimiters
-ConvertLineDelimitersToCRLFActionDelegate_3=Converting line delimiters for {0}
-ConvertLineDelimitersToCRLFActionDelegate_4=Exception occurred while converting line delimiters for document {0}
-TextHoverPreferenceTab_annotationRollover=&Enable annotation roll-over (on new editors)
-TextHoverPreferenceTab_showAffordance=&Show affordance in hover on how to make it sticky
-TextHoverPreferenceTab_enabled=&Enabled
-
-BasicFindOccurrencesAction_0=region match:
-BasicSearchLabelProvider_0=line
-NavigationPreferenceTab_0=Modifier ''{0}'' is not valid.
-OccurrencesSearchQuery_1={0} - 1 Occurrence in {1}
-FileModelProvider_0=Error reloading {0}
-JFaceNodeAdapter_0=Update Outline
-
-ConfigureProjectSettings=Configure Project Specific Settings...
-ConfigureWorkspaceSettings=Configure Workspace Settings...
-EnableProjectSettings=Enable project specific settings
-
-LoadingReferencedGrammars=Loading referenced grammars
-
-## Folding
-Folding=Folding
-StructuredTextEditorPreferencePage_3=Enable &folding
-Projection_Toggle_label= &Enable Folding
-Projection_Toggle_tooltip= Toggles Folding
-Projection_Toggle_description= Toggles folding for the current editor
-Projection_Toggle_image=
-Projection_ExpandAll_label= Expand &All
-Projection_ExpandAll_tooltip= Expands All Collapsed Regions
-Projection_ExpandAll_description= Expands any collapsed regions in the current editor
-Projection_ExpandAll_image=
-Projection_CollapseAll_label= Collapse A&ll
-Projection_CollapseAll_tooltip= Collapses All Expanded Regions
-Projection_CollapseAll_description= Collapse any expanded regions in the current editor
-Projection_CollapseAll_image=
-
-## These are copied from org.eclipse.ui.texteditor.EditorMessages.properties
-## They are needed temporarily until CMVC defect 203158 / Bugzilla defect 20054 is fixed
-Editor_ManageBookmarks_tooltip=Adds and Removes Bookmarks
-Editor_ManageBookmarks_image=
-Editor_ManageBookmarks_description=Adds and removes Bookmarks
-Editor_ManageBookmarks_add_label=Add Boo&kmark...
-Editor_ManageBookmarks_remove_label=Remove Boo&kmark
-Editor_ManageBookmarks_add_dialog_title=Add Bookmark
-Editor_ManageBookmarks_add_dialog_message=Enter Bookmark name
-Editor_ManageBookmarks_error_dialog_title=Managing Bookmarks
-Editor_ManageBookmarks_error_dialog_message=Problems managing bookmarks
-
-Editor_ManageTasks_tooltip=Adds and Removes Tasks
-Editor_ManageTasks_image=
-Editor_ManageTasks_description=Adds and removes Tasks
-Editor_ManageTasks_add_label=Add &Task...
-Editor_ManageTasks_remove_label=Remove &Task
-Editor_ManageTasks_add_dialog_title=Add Task
-Editor_ManageTasks_add_dialog_message=Enter Task description
-Editor_ManageTasks_error_dialog_title=Managing Tasks
-Editor_ManageTasks_error_dialog_message=Problems managing tasks
-################################################################################
-## Above are possibly unused strings that may be removed
-###############################################################################
-StyledTextColorPicker_0=Pick a color
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ShowViewAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ShowViewAction.java
deleted file mode 100644
index 6e43f03..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ShowViewAction.java
+++ /dev/null
@@ -1,99 +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.wst.sse.ui.internal;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-
-/**
- * Surfaces a View.
- * 
- * @author Nitin Dahyabhai
- */
-public abstract class ShowViewAction extends Action {
-	/**
-	 *  
-	 */
-	public ShowViewAction() {
-		super();
-	}
-
-	/**
-	 * @param text
-	 */
-	public ShowViewAction(String text) {
-		super(text);
-	}
-
-	/**
-	 * @param text
-	 * @param image
-	 */
-	public ShowViewAction(String text, ImageDescriptor image) {
-		super(text, image);
-	}
-
-	/**
-	 * @param text
-	 * @param style
-	 */
-	public ShowViewAction(String text, int style) {
-		super(text, style);
-	}
-
-	/**
-	 * @return
-	 */
-	protected abstract String getViewID();
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#run()
-	 */
-	public void run() {
-		super.run();
-		showView();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.Action#runWithEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void runWithEvent(Event event) {
-		super.runWithEvent(event);
-		showView();
-	}
-
-	/**
-	 *  
-	 */
-	private void showView() {
-		IWorkbenchWindow window = SSEUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow();
-		IWorkbenchPage page = window.getActivePage();
-		if (page != null) {
-			try {
-				page.showView(getViewID());
-			} catch (PartInitException e) {
-				ErrorDialog.openError(window.getShell(), SSEUIMessages.ShowView_errorTitle, //$NON-NLS-1$
-							e.getMessage(), e.getStatus());
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StorageModelProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StorageModelProvider.java
deleted file mode 100644
index 576cc07..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StorageModelProvider.java
+++ /dev/null
@@ -1,681 +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.wst.sse.ui.internal;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IStorage;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.source.AnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.editors.text.FileDocumentProvider;
-import org.eclipse.ui.editors.text.StorageDocumentProvider;
-import org.eclipse.ui.texteditor.IElementStateListener;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.encoding.CodedReaderCreator;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.sse.ui.internal.debug.BreakpointRulerAction;
-import org.eclipse.wst.sse.ui.internal.editor.EditorModelUtil;
-import org.eclipse.wst.sse.ui.internal.extension.BreakpointProviderBuilder;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IExtendedStorageEditorInput;
-
-/**
- * A StorageDocumentProvider that is IStructuredModel aware
- */
-public class StorageModelProvider extends StorageDocumentProvider implements IModelProvider {
-
-	private class InternalElementStateListener implements IElementStateListener {
-		public void elementContentAboutToBeReplaced(Object element) {
-			if (debugElementStatelistener) {
-				System.out.println("StorageModelProvider: elementContentAboutToBeReplaced: " + ((IEditorInput) element).getName()); //$NON-NLS-1$
-			}
-			// we just forward the event
-			StorageModelProvider.this.fireElementContentAboutToBeReplaced(element);
-		}
-
-		public void elementContentReplaced(Object element) {
-			if (debugElementStatelistener) {
-				System.out.println("StorageModelProvider: elementContentReplaced: " + ((IEditorInput) element).getName()); //$NON-NLS-1$
-			}
-
-			StorageInfo info = (StorageInfo) getElementInfo(element);
-
-			/**
-			 * Force a reload of the markers into annotations since their
-			 * previous Positions have been deleted. Disconnecting and
-			 * reconnecting forces a call to the private catchupWithMarkers
-			 * method.
-			 */
-			if (info != null && info.fModel != null) {
-				info.fModel.disconnect(info.fDocument);
-			}
-
-			Reader reader = null;
-			IStructuredDocument innerdocument = null;
-			try {
-				// update document from input's contents
-				CodedReaderCreator codedReaderCreator = new CodedReaderCreator(calculateID((IStorageEditorInput) element), Utilities.getMarkSupportedStream(((IStorageEditorInput) element).getStorage().getContents()));
-				reader = codedReaderCreator.getCodedReader();
-
-				innerdocument = (IStructuredDocument) info.fDocument;
-
-				int originalLengthToReplace = innerdocument.getLength();
-
-				StringBuffer stringBuffer = new StringBuffer();
-				int bufferSize = 2048;
-				char[] buffer = new char[bufferSize];
-				int nRead = 0;
-				boolean eof = false;
-				while (!eof) {
-					nRead = reader.read(buffer, 0, bufferSize);
-					if (nRead == -1) {
-						eof = true;
-					}
-					else {
-						stringBuffer.append(buffer, 0, nRead);
-					}
-				}
-				innerdocument.replaceText(this, 0, originalLengthToReplace, stringBuffer.toString(), true);
-			}
-			catch (CoreException e) {
-				Logger.logException(e);
-			}
-			catch (IOException e) {
-				Logger.logException(e);
-			}
-			finally {
-				if (reader != null) {
-					try {
-						reader.close();
-					}
-					catch (IOException e1) {
-						// would be highly unusual
-						Logger.logException(e1);
-					}
-				}
-			}
-
-			// forward the event
-			if (info.fCanBeSaved) {
-				info.fCanBeSaved = false;
-				addUnchangedElementListeners(element, info);
-			}
-			fireElementContentReplaced(element);
-			fireElementDirtyStateChanged(element, false);
-
-			if (info != null && info.fModel != null) {
-				info.fModel.connect(info.fDocument);
-			}
-		}
-
-		public void elementDeleted(Object element) {
-			if (debugElementStatelistener) {
-				System.out.println("StorageModelProvider: elementDeleted: " + ((IEditorInput) element).getName()); //$NON-NLS-1$
-			}
-			// we just forward the event
-			StorageModelProvider.this.fireElementDeleted(element);
-		}
-
-		public void elementDirtyStateChanged(Object element, boolean isDirty) {
-			if (debugElementStatelistener) {
-				System.out.println("StorageModelProvider: elementDirtyStateChanged: " + ((IEditorInput) element).getName() + " (" + isDirty + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-			// we just forward the event
-			StorageModelProvider.this.fireElementDirtyStateChanged(element, isDirty);
-		}
-
-		public void elementMoved(Object originalElement, Object movedElement) {
-			if (debugElementStatelistener) {
-				System.out.println("StorageModelProvider: elementMoved " + originalElement + " --> " + movedElement); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			// we just forward the event
-			StorageModelProvider.this.fireElementMoved(originalElement, movedElement);
-		}
-	}
-
-	/**
-	 * Collection of info that goes with a model.
-	 */
-	private class ModelInfo {
-		public IEditorInput fElement;
-		public boolean fShouldReleaseOnInfoDispose;
-		public IStructuredModel fStructuredModel;
-
-		public ModelInfo(IStructuredModel structuredModel, IEditorInput element, boolean selfCreated) {
-			fElement = element;
-			fStructuredModel = structuredModel;
-			fShouldReleaseOnInfoDispose = selfCreated;
-		}
-	}
-
-	static final boolean debugElementStatelistener = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/storagemodelprovider/elementstatelistener")); //$NON-NLS-1$ //$NON-NLS-2$
-	static final boolean debugOperations = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/storagemodelprovider/operations")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private static StorageModelProvider fInstance = null;
-
-	public synchronized static StorageModelProvider getInstance() {
-		if (fInstance == null)
-			fInstance = new StorageModelProvider();
-		return fInstance;
-	}
-
-	private IElementStateListener fInternalListener;
-	/** IStructuredModel information of all connected elements */
-	private Map fModelInfoMap = new HashMap();
-	private boolean fReuseModelDocument = true;
-
-	private StorageModelProvider() {
-		super();
-		fInternalListener = new InternalElementStateListener();
-	}
-
-	String calculateBaseLocation(IStorageEditorInput input) {
-		String location = null;
-		try {
-			IStorage storage = input.getStorage();
-			if (storage != null) {
-				IPath storagePath = storage.getFullPath();
-				String name = storage.getName();
-				if (storagePath != null) {
-					// If they are different, the IStorage contract is not
-					// being honored
-					// (https://bugs.eclipse.org/bugs/show_bug.cgi?id=73098).
-					// Favor the name.
-					if (!storagePath.lastSegment().equals(name)) {
-						IPath workingPath = storagePath.addTrailingSeparator();
-						location = workingPath.append(name).toString();
-					}
-					else {
-						location = storagePath.makeAbsolute().toString();
-					}
-				}
-				if (location == null)
-					location = name;
-			}
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-		finally {
-			if (location == null)
-				location = input.getName();
-		}
-		return location;
-	}
-
-	String calculateID(IStorageEditorInput input) {
-		/**
-		 * Typically CVS will return a path of "filename.ext" and the input's
-		 * name will be "filename.ext version". The path must be used to load
-		 * the model so that the suffix will be available to compute the
-		 * contentType properly. The editor input name can then be set as the
-		 * base location for display on the editor title bar.
-		 * 
-		 */
-		String path = null;
-		boolean addHash = false;
-		try {
-			IStorage storage = input.getStorage();
-			if (storage != null) {
-				IPath storagePath = storage.getFullPath();
-				String name = storage.getName();
-				// if either the name or storage path are null or they are
-				// identical, add a hash to it to guarantee uniqueness
-				addHash = storagePath == null || storagePath.toString().equals(name);
-				if (storagePath != null) {
-					// If they are different, the IStorage contract is not
-					// being honored
-					// (https://bugs.eclipse.org/bugs/show_bug.cgi?id=73098).
-					// Favor the name.
-					if (!storagePath.lastSegment().equals(name)) {
-						IPath workingPath = storagePath.addTrailingSeparator();
-						path = workingPath.append(name).toString();
-					}
-					else {
-						path = storagePath.makeAbsolute().toString();
-					}
-				}
-				if (path == null)
-					path = name;
-			}
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-		finally {
-			if (path == null)
-				path = ""; //$NON-NLS-1$
-		}
-		if (addHash)
-			path = input.hashCode() + path;
-		return path;
-	}
-
-	// public boolean canSaveDocument(Object element) {
-	// return false;
-	// }
-
-	protected IAnnotationModel createAnnotationModel(Object element) throws CoreException {
-		IAnnotationModel model = null;
-		if (debugOperations) {
-			if (element instanceof IStorageEditorInput)
-				System.out.println("StorageModelProvider: createAnnotationModel for " + ((IStorageEditorInput) element).getStorage().getFullPath()); //$NON-NLS-1$
-			else
-				System.out.println("StorageModelProvider: createAnnotationModel for " + element); //$NON-NLS-1$
-		}
-		if (element instanceof IStorageEditorInput) {
-			IStorageEditorInput input = (IStorageEditorInput) element;
-			String contentType = (getModel(input) != null ? getModel(input).getContentTypeIdentifier() : null);
-			String ext = BreakpointRulerAction.getFileExtension((IEditorInput) element);
-			IResource res = BreakpointProviderBuilder.getInstance().getResource(input, contentType, ext);
-			String id = input.getName();
-			if (input.getStorage() != null && input.getStorage().getFullPath() != null) {
-				id = input.getStorage().getFullPath().toString();
-			}
-			// we can only create a resource marker annotationmodel off of a
-			// valid resource
-			if (res != null)
-				model = new StructuredResourceMarkerAnnotationModel(res, id);
-			else
-				model = new AnnotationModel();
-		}
-		if (model == null) {
-			model = super.createAnnotationModel(element);
-		}
-		return model;
-	}
-
-	protected IDocument createDocument(Object element) {
-		if (debugOperations) {
-			if (element instanceof IStorageEditorInput)
-				try {
-					System.out.println("StorageModelProvider: createDocument for " + ((IStorageEditorInput) element).getStorage().getFullPath()); //$NON-NLS-1$
-				}
-				catch (CoreException e) {
-					System.out.println("StorageModelProvider: createDocument for " + element + "(exception caught)"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			else {
-				System.out.println("StorageModelProvider: createDocument for " + element); //$NON-NLS-1$
-			}
-		}
-
-		// The following is largely copied from FileModelProvider
-
-		IDocument document = null;
-		if (element instanceof IEditorInput) {
-			// create a new IDocument for the element; should always reflect
-			// the contents of the resource
-			ModelInfo info = getModelInfoFor((IEditorInput) element);
-			if (info == null) {
-				throw new IllegalArgumentException("no corresponding model info found"); //$NON-NLS-1$
-			}
-			IStructuredModel model = info.fStructuredModel;
-			if (model != null) {
-				if (!fReuseModelDocument && element instanceof IStorageEditorInput) {
-					Reader reader = null;
-					IStructuredDocument innerdocument = null;
-					try {
-						// update document from input's contents
-
-						CodedReaderCreator codedReaderCreator = new CodedReaderCreator(calculateID((IStorageEditorInput) element), Utilities.getMarkSupportedStream(((IStorageEditorInput) element).getStorage().getContents()));
-						reader = codedReaderCreator.getCodedReader();
-
-						innerdocument = model.getStructuredDocument();
-
-						int originalLengthToReplace = innerdocument.getLength();
-
-						/*
-						 * TODO_future: we could implement with sequential
-						 * rewrite, if we don't pickup automatically from
-						 * FileBuffer support, so not so much has to be pulled
-						 * into memory (as an extra big string), but we need
-						 * to carry that API through so that StructuredModel
-						 * is not notified until done.
-						 */
-
-						// innerdocument.startSequentialRewrite(true);
-						// innerdocument.replaceText(this, 0,
-						// innerdocument.getLength(), "");
-						StringBuffer stringBuffer = new StringBuffer();
-						int bufferSize = 2048;
-						char[] buffer = new char[bufferSize];
-						int nRead = 0;
-						boolean eof = false;
-						while (!eof) {
-							nRead = reader.read(buffer, 0, bufferSize);
-							if (nRead == -1) {
-								eof = true;
-							}
-							else {
-								stringBuffer.append(buffer, 0, nRead);
-								// innerdocument.replaceText(this,
-								// innerdocument.getLength(), 0, new
-								// String(buffer, 0, nRead));
-							}
-						}
-						// ignore read-only settings if reverting whole
-						// document
-						innerdocument.replaceText(this, 0, originalLengthToReplace, stringBuffer.toString(), true);
-						model.setDirtyState(false);
-
-					}
-					catch (CoreException e) {
-						Logger.logException(e);
-					}
-					catch (IOException e) {
-						Logger.logException(e);
-					}
-					finally {
-						if (reader != null) {
-							try {
-								reader.close();
-							}
-							catch (IOException e1) {
-								// would be highly unusual
-								Logger.logException(e1);
-							}
-						}
-						// if (innerdocument != null) {
-						// innerdocument.stopSequentialRewrite();
-						// }
-					}
-
-				}
-				if (document == null) {
-					document = model.getStructuredDocument();
-				}
-			}
-		}
-		return document;
-	}
-
-	/**
-	 * Also create ModelInfo - extra resource synchronization classes should
-	 * be stored within the ModelInfo
-	 */
-	protected ElementInfo createElementInfo(Object element) throws CoreException {
-		// create the corresponding ModelInfo if necessary
-		if (debugOperations) {
-			if (element instanceof IStorageEditorInput)
-				try {
-					System.out.println("StorageModelProvider: createElementInfo for " + ((IStorageEditorInput) element).getStorage().getFullPath()); //$NON-NLS-1$
-				}
-				catch (CoreException e) {
-					System.out.println("StorageModelProvider: createElementInfo for " + element + "(exception caught)"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			else
-				System.out.println("storageModelProvider: createElementInfo for " + element); //$NON-NLS-1$
-		}
-
-		if (getModelInfoFor((IEditorInput) element) == null) {
-			createModelInfo((IEditorInput) element);
-		}
-
-		ElementInfo info = super.createElementInfo(element);
-		return info;
-	}
-
-	public void createModelInfo(IEditorInput input) {
-		if (getModelInfoFor(input) == null) {
-			IStructuredModel structuredModel = selfCreateModel(input);
-			if (structuredModel != null) {
-				createModelInfo(input, structuredModel, true);
-			}
-		}
-	}
-
-	/**
-	 * To be used when model is provided to us, ensures that when setInput is
-	 * used on this input, the given model will be used.
-	 */
-	public void createModelInfo(IEditorInput input, IStructuredModel structuredModel, boolean releaseModelOnDisconnect) {
-		// we have to make sure factories are added, whether we created or
-		// not.
-		if (getModelInfoFor(input) != null || getModelInfoFor(structuredModel) != null) {
-			if (debugOperations) {
-				if (input instanceof IStorageEditorInput) {
-
-					try {
-						System.out.println("StorageModelProvider: DUPLICATE createModelInfo for " + ((IStorageEditorInput) input).getStorage().getFullPath()); //$NON-NLS-1$
-					}
-					catch (CoreException e) {
-						System.out.println("StorageModelProvider: DUPLICATE createModelInfo for " + input + "(exception caught)"); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-				}
-				else {
-					System.out.println("storageModelProvider: DUPLICATE createModelInfo for " + input); //$NON-NLS-1$
-				}
-			}
-			return;
-		}
-
-		if (debugOperations) {
-			if (input instanceof IStorageEditorInput) {
-				try {
-					System.out.println("StorageModelProvider: createModelInfo for " + ((IStorageEditorInput) input).getStorage().getFullPath()); //$NON-NLS-1$
-				}
-				catch (CoreException e) {
-					System.out.println("StorageModelProvider: createModelInfo for " + input + "(exception caught)"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-			else {
-				System.out.println("StorageModelProvider: createModelInfo for " + input); //$NON-NLS-1$
-			}
-		}
-
-
-		if (input instanceof IExtendedStorageEditorInput) {
-			((IExtendedStorageEditorInput) input).addElementStateListener(fInternalListener);
-		}
-
-		EditorModelUtil.addFactoriesTo(structuredModel);
-
-		ModelInfo modelInfo = new ModelInfo(structuredModel, input, releaseModelOnDisconnect);
-		fModelInfoMap.put(input, modelInfo);
-	}
-
-	protected void disposeElementInfo(Object element, ElementInfo info) {
-		if (debugOperations) {
-			if (element instanceof IStorageEditorInput) {
-				try {
-					System.out.println("StorageModelProvider: disposeElementInfo for " + ((IStorageEditorInput) element).getStorage().getFullPath()); //$NON-NLS-1$
-				}
-				catch (CoreException e) {
-					System.out.println("StorageModelProvider: disposeElementInfo for " + element + "(exception caught)"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-			else {
-				System.out.println("StorageModelProvider: disposeElementInfo for " + element); //$NON-NLS-1$
-			}
-		}
-
-		if (element instanceof IEditorInput) {
-			IEditorInput input = (IEditorInput) element;
-			ModelInfo modelInfo = getModelInfoFor(input);
-			disposeModelInfo(modelInfo);
-		}
-		super.disposeElementInfo(element, info);
-	}
-
-	/**
-	 * disconnect from this model info
-	 * 
-	 * @param info
-	 */
-	public void disposeModelInfo(ModelInfo info) {
-		if (debugOperations) {
-			if (info.fElement instanceof IStorageEditorInput) {
-				try {
-					System.out.println("StorageModelProvider: disposeModelInfo for " + ((IStorageEditorInput) info.fElement).getStorage().getFullPath()); //$NON-NLS-1$
-				}
-				catch (CoreException e) {
-					System.out.println("StorageModelProvider: disposeModelInfo for " + info.fElement + "(exception caught)"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-			else {
-				System.out.println("StorageModelProvider: disposeModelInfo for " + info.fElement); //$NON-NLS-1$
-			}
-		}
-
-		if (info.fElement instanceof IStorageEditorInput) {
-			if (info.fElement instanceof IExtendedStorageEditorInput) {
-				((IExtendedStorageEditorInput) info.fElement).removeElementStateListener(fInternalListener);
-			}
-			if (info.fShouldReleaseOnInfoDispose) {
-				info.fStructuredModel.releaseFromEdit();
-			}
-		}
-		fModelInfoMap.remove(info.fElement);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractDocumentProvider#doResetDocument(java.lang.Object,
-	 *      org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	protected void doResetDocument(Object element, IProgressMonitor monitor) throws CoreException {
-		fReuseModelDocument = false;
-		super.doResetDocument(element, monitor);
-		fReuseModelDocument = true;
-	}
-
-	/**
-	 * @see org.eclipse.ui.texteditor.AbstractDocumentProvider#doSaveDocument(org.eclipse.core.runtime.IProgressMonitor,
-	 *      java.lang.Object, org.eclipse.jface.text.IDocument, boolean)
-	 */
-	protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException {
-		new FileDocumentProvider().saveDocument(monitor, element, document, overwrite);
-	}
-
-	public IStructuredModel getModel(IEditorInput element) {
-		IStructuredModel result = null;
-		ModelInfo info = getModelInfoFor(element);
-		if (info != null) {
-			result = info.fStructuredModel;
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.IModelProvider#getModel(java.lang.Object)
-	 */
-	public IStructuredModel getModel(Object element) {
-		if (element instanceof IEditorInput)
-			return getModel((IEditorInput) element);
-		return null;
-	}
-
-	private ModelInfo getModelInfoFor(IEditorInput element) {
-		ModelInfo result = (ModelInfo) fModelInfoMap.get(element);
-		return result;
-	}
-
-	private ModelInfo getModelInfoFor(IStructuredModel structuredModel) {
-		ModelInfo result = null;
-		if (structuredModel != null) {
-			ModelInfo[] modelInfos = (ModelInfo[]) fModelInfoMap.values().toArray(new ModelInfo[0]);
-			for (int i = 0; i < modelInfos.length; i++) {
-				ModelInfo info = modelInfos[i];
-				if (structuredModel.equals(info.fStructuredModel)) {
-					result = info;
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Method loadModel.
-	 * 
-	 * @param input
-	 * @return IStructuredModel
-	 */
-	public IStructuredModel loadModel(IStorageEditorInput input) {
-		return loadModel(input, false);
-	}
-
-	/**
-	 * Method loadModel.
-	 * 
-	 * @param input
-	 * @param logExceptions
-	 * @return IStructuredModel
-	 */
-	public IStructuredModel loadModel(IStorageEditorInput input, boolean logExceptions) {
-		String id = calculateID(input);
-		if (id == null) {
-			return null;
-		}
-
-		InputStream contents = null;
-		try {
-			contents = input.getStorage().getContents();
-		}
-		catch (CoreException noStorageExc) {
-			if (logExceptions)
-				Logger.logException(NLS.bind(SSEUIMessages._32concat_EXC_, new Object[]{input.getName()}), noStorageExc);
-		}
-
-		IStructuredModel model = null;
-		try {
-			// first parameter must be unique
-			model = StructuredModelManager.getModelManager().getModelForEdit(id, contents, null);
-			model.setBaseLocation(calculateBaseLocation(input));
-		}
-		catch (IOException e) {
-			if (logExceptions)
-				Logger.logException(NLS.bind(SSEUIMessages._32concat_EXC_, new Object[]{input}), e);
-		}
-		finally {
-			if (contents != null) {
-				try {
-					contents.close();
-				}
-				catch (IOException e) {
-					// nothing
-				}
-				catch (Exception e) {
-					Logger.logException(e);
-				}
-			}
-		}
-		return model;
-	}
-
-	/**
-	 * @param input
-	 * @return
-	 */
-	private IStructuredModel selfCreateModel(IEditorInput input) {
-		return loadModel((IStorageEditorInput) input);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredDocumentToTextAdapter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredDocumentToTextAdapter.java
deleted file mode 100644
index 58993f9..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredDocumentToTextAdapter.java
+++ /dev/null
@@ -1,1332 +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.wst.sse.ui.internal;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.jobs.ILock;
-import org.eclipse.jface.text.AbstractDocument;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.ConfigurableLineTracker;
-import org.eclipse.jface.text.DefaultLineTracker;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentAdapter;
-import org.eclipse.jface.text.IDocumentAdapterExtension;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.IRepairableDocument;
-import org.eclipse.jface.text.ITextStore;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.projection.ProjectionDocument;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.custom.TextChangeListener;
-import org.eclipse.swt.custom.TextChangedEvent;
-import org.eclipse.swt.custom.TextChangingEvent;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.core.internal.ILockable;
-import org.eclipse.wst.sse.core.internal.provisional.events.IStructuredDocumentListener;
-import org.eclipse.wst.sse.core.internal.provisional.events.NewDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.NoChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionChangedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
-import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentRegionsReplacedEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegionList;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.sse.ui.internal.util.Assert;
-
-
-/**
- * Adapts IStructuredDocument events and methods to StyledTextContent events
- * and methods
- */
-public class StructuredDocumentToTextAdapter implements IDocumentAdapter, IDocumentAdapterExtension {
-
-	private class DocumentClone extends AbstractDocument {
-
-
-		/**
-		 * Creates a new document clone with the given content.
-		 * 
-		 * @param content
-		 *            the content
-		 * @param lineDelimiters
-		 *            the line delimiters
-		 */
-		public DocumentClone(String content, String[] lineDelimiters) {
-			super();
-			setTextStore(new StringTextStore(content));
-			ConfigurableLineTracker tracker = new ConfigurableLineTracker(lineDelimiters);
-			setLineTracker(tracker);
-			getTracker().set(content);
-			completeInitialization();
-		}
-	}
-
-	// A pre-notification listener for the viewer's Document
-	class DocumentListener implements IDocumentListener {
-		protected boolean allTextChanged = false;
-
-		protected DocumentEvent currentEvent;
-
-		synchronized public void documentAboutToBeChanged(DocumentEvent event) {
-			if (isStoppedForwardingChanges())
-				return;
-
-			pendingDocumentChangedEvent = true;
-			allTextChanged = event.getOffset() <= 0 && event.getLength() >= StructuredDocumentToTextAdapter.this.getDocument().getLength();
-			currentEvent = event;
-
-			StructuredDocumentToTextAdapter.this.relayTextChanging(event.getOffset(), event.getLength(), event.getText());
-		}
-
-		synchronized public void documentChanged(DocumentEvent event) {
-			if (isStoppedForwardingChanges())
-				return;
-
-			if (currentEvent != null && event == currentEvent) {
-				if (allTextChanged) {
-					StructuredDocumentToTextAdapter.this.relayTextSet();
-				}
-				else {
-					// temp work around for immediate thread
-					// problem.
-					// should have more general solution
-					// soon. 'syncExec' are rumored to be
-					// prone to hang.
-					StructuredDocumentToTextAdapter.this.relayTextChanged();
-				}
-			}
-
-			currentEvent = null;
-			pendingDocumentChangedEvent = false;
-			handlePendingEvents();
-			lastEvent = null;
-
-		}
-	}
-
-	private static class StringTextStore implements ITextStore {
-
-		private String fContent;
-
-		/**
-		 * Creates a new string text store with the given content.
-		 * 
-		 * @param content
-		 *            the content
-		 */
-		public StringTextStore(String content) {
-			Assert.isNotNull(content, "content can not be null when setting text store"); //$NON-NLS-1$
-			fContent = content;
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.ITextStore#get(int)
-		 */
-		public char get(int offset) {
-			return fContent.charAt(offset);
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.ITextStore#get(int, int)
-		 */
-		public String get(int offset, int length) {
-			return fContent.substring(offset, offset + length);
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.ITextStore#getLength()
-		 */
-		public int getLength() {
-			return fContent.length();
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.ITextStore#replace(int, int,
-		 *      java.lang.String)
-		 */
-		public void replace(int offset, int length, String text) {
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.ITextStore#set(java.lang.String)
-		 */
-		public void set(String text) {
-		}
-
-	}
-
-	/**
-	 * Changes to the Document/IStructuredDocument can extend beyond the text
-	 * change area and require more redrawing to keep the hilighting correct.
-	 * The event must be saved so that the redraw is only sent after a
-	 * textChanged event is received.
-	 */
-	class StructuredDocumentListener implements IStructuredDocumentListener {
-
-		public void newModel(NewDocumentEvent structuredDocumentEvent) {
-
-			if (isStoppedForwardingChanges()) {
-				// if
-				// (StructuredDocumentToTextAdapter.this.fStopRelayingChanges)
-				// {
-				if (Debug.debugStructuredDocument) {
-					System.out.println("skipped relaying StructuredDocumentEvent " + structuredDocumentEvent.getClass().getName()); //$NON-NLS-1$
-				}
-				return;
-			}
-			// should use textSet when all contents have
-			// changed
-			// otherwise need to use the pair of
-			// textChanging and
-			// textChanged.
-			StructuredDocumentToTextAdapter.this.lastEvent = structuredDocumentEvent;
-		}
-
-		public void noChange(final NoChangeEvent structuredDocumentEvent) {
-
-			if (Debug.debugStructuredDocument) {
-				System.out.println("skipped relaying StructuredDocumentEvent " + structuredDocumentEvent.getClass().getName()); //$NON-NLS-1$
-			}
-			if (structuredDocumentEvent.reason == NoChangeEvent.READ_ONLY_STATE_CHANGE) {
-				if (pendingDocumentChangedEvent) {
-					if (lastEventQueue == null) {
-						lastEventQueue = new ArrayList();
-					}
-					lastEventQueue.add(structuredDocumentEvent);
-				}
-				else {
-					StructuredDocumentToTextAdapter.this.lastEvent = structuredDocumentEvent;
-				}
-			}
-		}
-
-		public void nodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
-
-			if (isStoppedForwardingChanges()) {
-				// if
-				// (StructuredDocumentToTextAdapter.this.fStopRelayingChanges)
-				// {
-				if (Debug.debugStructuredDocument) {
-					System.out.println("not relaying StructuredDocumentEvent " + structuredDocumentEvent.getClass().getName()); //$NON-NLS-1$
-				}
-				return;
-			}
-			if (Debug.debugStructuredDocument) {
-				System.out.println("saving StructuredDocumentEvent " + structuredDocumentEvent.getClass().getName()); //$NON-NLS-1$
-			}
-			StructuredDocumentToTextAdapter.this.lastEvent = structuredDocumentEvent;
-		}
-
-		public void regionChanged(RegionChangedEvent structuredDocumentEvent) {
-
-			if (isStoppedForwardingChanges()) {
-				// if
-				// (StructuredDocumentToTextAdapter.this.fStopRelayingChanges)
-				// {
-				if (Debug.debugStructuredDocument) {
-					System.out.println("not relaying StructuredDocumentEvent " + structuredDocumentEvent.getClass().getName()); //$NON-NLS-1$
-				}
-				return;
-			}
-			if (Debug.debugStructuredDocument) {
-				System.out.println("saving StructuredDocumentEvent " + structuredDocumentEvent.getClass().getName()); //$NON-NLS-1$
-			}
-			StructuredDocumentToTextAdapter.this.lastEvent = structuredDocumentEvent;
-		}
-
-		public void regionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
-
-			if (isStoppedForwardingChanges()) {
-				// if
-				// (StructuredDocumentToTextAdapter.this.fStopRelayingChanges)
-				// {
-				if (Debug.debugStructuredDocument) {
-					System.out.println("not relaying StructuredDocumentEvent " + structuredDocumentEvent.getClass().getName()); //$NON-NLS-1$
-				}
-				return;
-			}
-			if (Debug.debugStructuredDocument) {
-				System.out.println("saving StructuredDocumentEvent " + structuredDocumentEvent.getClass().getName()); //$NON-NLS-1$
-			}
-			StructuredDocumentToTextAdapter.this.lastEvent = structuredDocumentEvent;
-		}
-	}
-
-	private static final String EMPTY_STRING = ""; //$NON-NLS-1$
-
-	private final static boolean redrawBackground = true;
-
-	/** The visible child document. */
-	private ProjectionDocument fChildDocument;
-
-	/** The master document */
-	private IDocument fDocument;
-	/** The document clone for the non-forwarding case. */
-	private IDocument fDocumentClone;
-
-	// only use this temp work around if on GTK
-	// it causes funny "cursor blinking" if used on windows
-	private final boolean forceRedrawOnRegionChanged = Platform.getWS().equals("gtk"); //$NON-NLS-1$
-	/** The original content */
-	private String fOriginalContent;
-	/** The original line delimiters */
-	private String[] fOriginalLineDelimiters;
-
-	private int fStopRelayingChangesRequests = 0;
-
-	private StyledText fStyledTextWidget;
-
-	/** The registered text changed listeners */
-	TextChangeListener[] fTextChangeListeners;
-	protected DocumentListener internalDocumentListener;
-
-	// The listeners for relaying DocumentEvents and
-	// requesting repaints
-	// after modification
-	private IStructuredDocumentListener internalStructuredDocumentListener;
-
-	protected StructuredDocumentEvent lastEvent = null;
-	List lastEventQueue;
-	boolean pendingDocumentChangedEvent;
-
-	private static final boolean DEBUG = false;
-
-	/**
-	 * TEST ONLY - TEST ONLY - TEST ONLY NOT API use this constructor only for
-	 * tests. Creates a new document adapter which is initiallly not connected
-	 * to any document.
-	 */
-	public StructuredDocumentToTextAdapter() {
-
-		internalStructuredDocumentListener = new StructuredDocumentListener();
-		internalDocumentListener = new DocumentListener();
-		// for testing only
-		// setDocument(getModelManager().createStructuredDocumentFor(ContentTypeIdentifierForXML.ContentTypeID_XML));
-	}
-
-	/**
-	 * Creates a new document adapter which is initiallly not connected to any
-	 * document.
-	 */
-	public StructuredDocumentToTextAdapter(StyledText styledTextWidget) {
-
-		// do not use 'this()' in this case
-		super();
-		internalStructuredDocumentListener = new StructuredDocumentListener();
-		internalDocumentListener = new DocumentListener();
-		fStyledTextWidget = styledTextWidget;
-	}
-
-	private void _setDocument(IDocument newDoc) {
-		if (fDocument instanceof IStructuredDocument) {
-			((IStructuredDocument) fDocument).removeDocumentChangedListener(internalStructuredDocumentListener);
-		}
-		fDocument = newDoc;
-		if (!isStoppedForwardingChanges()) {
-			fDocumentClone = null;
-			fOriginalContent = getDocument() != null ? getDocument().get() : null;
-			fOriginalLineDelimiters = getDocument() != null ? getDocument().getLegalLineDelimiters() : null;
-		}
-
-		if (DEBUG && fDocument != null && !(fDocument instanceof ILockable)) {
-
-			System.out.println("Warning: non ILockable document used in StructuredDocumentToTextAdapter"); //$NON-NLS-1$
-			System.out.println("         document updates on non-display thread will not be safe if editor open"); //$NON-NLS-1$
-		}
-		if (fDocument instanceof IStructuredDocument) {
-			((IStructuredDocument) fDocument).addDocumentChangedListener(internalStructuredDocumentListener);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.custom.StyledTextContent#addTextChangeListener(org.eclipse.swt.custom.TextChangeListener)
-	 */
-	public synchronized void addTextChangeListener(TextChangeListener listener) {
-
-		// make sure listener is not already in listening
-		// (and if it is, print a warning to aid debugging,
-		// if needed)
-
-		if (Utilities.contains(fTextChangeListeners, listener)) {
-			if (Debug.displayWarnings) {
-				System.out.println("StructuredDocumentToTextAdapter::addTextChangedListeners. listener " + listener + " was added more than once. "); //$NON-NLS-2$//$NON-NLS-1$
-			}
-		}
-		else {
-			if (Debug.debugStructuredDocument) {
-				System.out.println("StructuredDocumentToTextAdapter::addTextChangedListeners. Adding an instance of " + listener.getClass() + " as a listener on text adapter."); //$NON-NLS-2$//$NON-NLS-1$
-			}
-			int oldSize = 0;
-			if (fTextChangeListeners != null) {
-				// normally won't be null, but we need to be
-				// sure, for first time through
-				oldSize = fTextChangeListeners.length;
-			}
-			int newSize = oldSize + 1;
-			TextChangeListener[] newListeners = new TextChangeListener[newSize];
-			if (fTextChangeListeners != null) {
-				System.arraycopy(fTextChangeListeners, 0, newListeners, 0, oldSize);
-			}
-			// add listener to last position
-			newListeners[newSize - 1] = listener;
-			//
-			// now switch new for old
-			fTextChangeListeners = newListeners;
-			//
-		}
-	}
-
-	/*
-	 * @see org.eclipse.swt.custom.StyledTextContent#getCharCount()
-	 */
-	public int getCharCount() {
-
-		// getDocument can sometimes be null during startup
-		// and dispose
-		int result = 0;
-		IDocument doc = getDocument();
-		if (doc != null) {
-			result = getSafeDocument().getLength();
-		}
-		return result;
-	}
-
-	private IDocument getClonedDocument() {
-		if (fDocumentClone == null) {
-			String content = fOriginalContent == null ? "" : fOriginalContent; //$NON-NLS-1$
-			String[] delims = fOriginalLineDelimiters == null ? DefaultLineTracker.DELIMITERS : fOriginalLineDelimiters;
-			fDocumentClone = new DocumentClone(content, delims);
-		}
-		return fDocumentClone;
-	}
-
-	Display getDisplay() {
-
-		// Note: the workbench should always have a display
-		// (unless running headless), whereas Display.getCurrent()
-		// only returns the display if the currently executing thread
-		// has one.
-		if (PlatformUI.isWorkbenchRunning())
-			return PlatformUI.getWorkbench().getDisplay();
-		else
-			return null;
-	}
-
-	/**
-	 * Returns the visible document.
-	 * 
-	 * @return IDocument
-	 */
-	protected IDocument getDocument() {
-
-		if (fChildDocument == null)
-			return fDocument;
-		return fChildDocument;
-	}
-
-	/**
-	 * Returns region in master document of given region (should be region in
-	 * projection document)
-	 * 
-	 * @return region if no projection document exists, region of master
-	 *         document if possible, null otherwise
-	 */
-	private IRegion getProjectionToMasterRegion(IRegion region) {
-		IRegion originalRegion = region;
-		if (fChildDocument != null) {
-			try {
-				originalRegion = fChildDocument.getProjectionMapping().toOriginRegion(region);
-			}
-			catch (BadLocationException e) {
-				Logger.logException(e);
-			}
-		}
-
-		return originalRegion;
-	}
-
-	/**
-	 * Returns offset in projection document of given offset (should be offset
-	 * in master document)
-	 * 
-	 * @return offset if no projection document exists, offset of projection
-	 *         document if possible, -1 otherwise
-	 */
-	private int getMasterToProjectionOffset(int offset) {
-		int originalOffset = offset;
-		if (fChildDocument != null) {
-			try {
-				originalOffset = fChildDocument.getProjectionMapping().toImageOffset(offset);
-			}
-			catch (BadLocationException e) {
-				Logger.logException(e);
-			}
-		}
-
-		return originalOffset;
-	}
-
-	/**
-	 * Return the line at the given character offset without delimiters.
-	 * <p>
-	 * 
-	 * @param offset
-	 *            offset of the line to return. Does not include delimiters of
-	 *            preceeding lines. Offset 0 is the first character of the
-	 *            document.
-	 * @return the line text without delimiters
-	 */
-	public java.lang.String getLine(int lineNumber) {
-
-		String result = null;
-		if (lineNumber >= getLineCount()) {
-			if (Debug.displayWarnings) {
-				System.out.println("Development Debug: IStructuredDocument:getLine() error. lineNumber requested (" + lineNumber + ") was greater than number of lines(" + getLineCount() + "). EmptyString returned"); //$NON-NLS-1$//$NON-NLS-3$//$NON-NLS-2$
-			}
-			result = EMPTY_STRING;
-		}
-		else {
-			IDocument doc = getSafeDocument();
-			if (doc == null) {
-				result = EMPTY_STRING;
-			}
-			else {
-				try {
-					IRegion r = doc.getLineInformation(lineNumber);
-					if (r.getLength() > 0) {
-						result = doc.get(r.getOffset(), r.getLength());
-					}
-					else {
-						result = EMPTY_STRING;
-					}
-				}
-				catch (BadLocationException e) {
-					result = EMPTY_STRING;
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Tries to repair the line information.
-	 * 
-	 * @param document
-	 *            the document
-	 * @see IRepairableDocument#repairLineInformation()
-	 * @see Eclipse 3.0
-	 */
-	private void repairLineInformation(IDocument document) {
-		if (document instanceof IRepairableDocument) {
-			IRepairableDocument repairable = (IRepairableDocument) document;
-			repairable.repairLineInformation();
-		}
-	}
-
-	/**
-	 * Return the line index at the given character offset.
-	 * <p>
-	 * 
-	 * @param offset
-	 *            offset of the line to return. The first character of the
-	 *            document is at offset 0. An offset of getLength() is valid
-	 *            and should answer the number of lines.
-	 * @return the line index. The first line is at index 0. If the character
-	 *         at offset is a delimiter character, answer the line index of
-	 *         the line that is delimited. For example, text = "\r\n\r\n",
-	 *         delimiter = "\r\n", then: getLineAtOffset(0) == 0
-	 *         getLineAtOffset(1) == 0 getLineAtOffset(2) == 1
-	 *         getLineAtOffset(3) == 1 getLineAtOffset(4) == 2
-	 */
-	public int getLineAtOffset(int offset) {
-
-		int result = 0;
-		IDocument doc = getSafeDocument();
-		if (doc != null) {
-			try {
-				result = doc.getLineOfOffset(offset);
-			}
-			catch (BadLocationException x) {
-				repairLineInformation(doc);
-				try {
-					result = doc.getLineOfOffset(offset);
-				}
-				catch (BadLocationException x2) {
-					// should not occur, but seems to for projection
-					// documents, related to repainting overview ruler
-					result = 0;
-				}
-			}
-		}
-		return result;
-	}
-
-	public int getLineCount() {
-		int result = 0;
-		IDocument doc = getSafeDocument();
-		if (doc != null) {
-			result = doc.getNumberOfLines();
-		}
-		return result;
-	}
-
-	/*
-	 * @see org.eclipse.swt.custom.StyledTextContent#getLineDelimiter
-	 */
-	public String getLineDelimiter() {
-		String result = null;
-		if (getParentDocument() instanceof IStructuredDocument) {
-			result = ((IStructuredDocument) getParentDocument()).getLineDelimiter();
-		}
-		else {
-			IDocument doc = getSafeDocument();
-			result = TextUtilities.getDefaultLineDelimiter(doc);
-		}
-		return result;
-	}
-
-	/**
-	 * Return the character offset of the first character of the given line.
-	 * <p>
-	 * 
-	 * @param lineIndex
-	 *            index of the line. The first line is at index 0.
-	 * @return offset offset of the first character of the line. The first
-	 *         character of the document is at offset 0. The return value
-	 *         should include line delimiters. For example, text =
-	 *         "\r\ntest\r\n", delimiter = "\r\n", then: getOffsetAtLine(0) ==
-	 *         0 getOffsetAtLine(1) == 2 getOffsetAtLine(2) == 8 NOTE: When
-	 *         there is no text (i.e., no lines), getOffsetAtLine(0) is a
-	 *         valid call that should return 0.
-	 */
-	public int getOffsetAtLine(int lineIndex) {
-
-		int result = 0;
-		IDocument doc = getSafeDocument();
-		if (doc != null) {
-			try {
-				result = doc.getLineOffset(lineIndex);
-			}
-			catch (BadLocationException e) {
-				result = 0;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Returns the parent document
-	 * 
-	 * @return the parent document
-	 */
-	private IDocument getParentDocument() {
-		return fDocument;
-	}
-
-	/**
-	 * This is the document to use for request from the StyledText widget. Its
-	 * either the live documnet or a clone of it, depending on stop/resume
-	 * state.
-	 */
-	private IDocument getSafeDocument() {
-		IDocument result = null;
-		if (isStoppedForwardingChanges()) {
-			result = getClonedDocument();
-		}
-		else {
-			// note, this document can be normal structured text document,
-			// or the projection/child document
-			result = getDocument();
-		}
-		return result;
-	}
-
-	/**
-	 * @return org.eclipse.swt.custom.StyledText
-	 */
-	StyledText getStyledTextWidget() {
-		return fStyledTextWidget;
-	}
-
-	/**
-	 * Returns a string representing the content at the given range.
-	 * <p>
-	 * 
-	 * @param start
-	 *            the start offset of the text to return. Offset 0 is the
-	 *            first character of the document.
-	 * @param length
-	 *            the length of the text to return
-	 * @return the text at the given range
-	 */
-	public String getTextRange(int start, int length) {
-		String result = null;
-		try {
-			IDocument doc = getSafeDocument();
-			result = doc.get(start, length);
-		}
-		catch (BadLocationException e) {
-			result = EMPTY_STRING;
-		}
-		return result;
-	}
-
-	/**
-	 * assume only for "no change" events, for now
-	 */
-	protected void handlePendingEvents() {
-
-		if (lastEventQueue == null)
-			return;
-
-		Iterator iterator = lastEventQueue.iterator();
-		while (iterator.hasNext()) {
-			NoChangeEvent noChangeEvent = (NoChangeEvent) iterator.next();
-			redrawNoChange(noChangeEvent);
-		}
-
-		lastEventQueue = null;
-		lastEvent = null;
-	}
-
-	boolean isStoppedForwardingChanges() {
-		return fStopRelayingChangesRequests > 0;
-	}
-
-	/**
-	 * this method is assumed to be called only for read only region changes.
-	 */
-	protected void redrawNoChange(NoChangeEvent structuredDocumentEvent) {
-
-		if (isStoppedForwardingChanges())
-			return;
-		if (Debug.debugStructuredDocument) {
-			System.out.println("maybe redraw stuff"); //$NON-NLS-1$
-		}
-
-		int startOffset = structuredDocumentEvent.getOffset();
-		int length = structuredDocumentEvent.getLength();
-		redrawRangeWithLength(startOffset, length);
-
-	}
-
-	/**
-	 * Request a redraw of the text range occupied by the given
-	 * StructuredDocumentRegionsReplacedEvent
-	 * 
-	 * @param structuredDocumentEvent
-	 */
-	protected void redrawNodesReplaced(StructuredDocumentRegionsReplacedEvent structuredDocumentEvent) {
-
-		if (isStoppedForwardingChanges())
-			return;
-		if (Debug.debugStructuredDocument) {
-			System.out.println("maybe redraw stuff"); //$NON-NLS-1$
-		}
-		// just the new stuff
-		IStructuredDocumentRegionList newStructuredDocumentRegions = structuredDocumentEvent.getNewStructuredDocumentRegions();
-
-		int nNewNodes = newStructuredDocumentRegions.getLength();
-		if (nNewNodes > 0) {
-			IStructuredDocumentRegion firstNode = newStructuredDocumentRegions.item(0);
-			IStructuredDocumentRegion lastNode = newStructuredDocumentRegions.item(nNewNodes - 1);
-			redrawRange(firstNode.getStartOffset(), lastNode.getEndOffset());
-		}
-	}
-
-	/**
-	 * Redraws the give offsets in terms of the StructuredDocument. If only
-	 * part of the model is visible, ensures that only the visible portion of
-	 * the given range is redrawn.
-	 * 
-	 * @param startModelOffset
-	 * @param endModelOffset
-	 */
-	private void redrawRange(final int startModelOffset, final int endModelOffset) {
-
-		if (getDocument() == null)
-			return;
-		if (Debug.debugStructuredDocument) {
-			System.out.println("redraw stuff: " + startModelOffset + "-" + endModelOffset); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (fChildDocument == null) {
-			Runnable runnable = new Runnable() {
-				public void run() {
-					getStyledTextWidget().redrawRange(startModelOffset, endModelOffset - startModelOffset, redrawBackground);
-				}
-			};
-			runOnDisplayThreadIfNeedede(runnable);
-
-		}
-		else {
-			int high = getDocument().getLength();
-			int startOffset = getMasterToProjectionOffset(startModelOffset);
-
-			int endOffset = getMasterToProjectionOffset(endModelOffset);
-
-			// if offsets were not visible, just try to redraw everything in
-			// the child document
-			// // not visible
-			// if (endOffset < 0 || startOffset > high)
-			// return;
-			// restrict lower bound
-			if (startOffset < 0) {
-				startOffset = 0;
-			}
-			// restrict upper bound
-			// if (endOffset > high) {
-			// endOffset = high;
-			// }
-			if (endOffset < 0) {
-				endOffset = high;
-			}
-
-			int length = endOffset - startOffset;
-			// redrawBackground with false would be faster
-			// but assumes background (or font) is not
-			// changing
-			final int finalStartOffset = startOffset;
-			final int finallength = length;
-
-			Runnable runnable = new Runnable() {
-				public void run() {
-					getStyledTextWidget().redrawRange(finalStartOffset, finallength, redrawBackground);
-				}
-			};
-			runOnDisplayThreadIfNeedede(runnable);
-
-		}
-	}
-
-	/**
-	 * Redraws the give offsets in terms of the Flat Node model. If only part
-	 * of the model is visible, ensures that only the visible portion of the
-	 * given range is redrawn.
-	 * 
-	 * @param startModelOffset
-	 * @param endModelOffset
-	 */
-	private void redrawRangeWithLength(final int startModelOffset, final int length) {
-
-		if (getDocument() == null)
-			return;
-		if (Debug.debugStructuredDocument) {
-			System.out.println("redraw stuff: " + startModelOffset + "-" + length); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (fChildDocument == null) {
-			Runnable runnable = new Runnable() {
-				public void run() {
-					getStyledTextWidget().redrawRange(startModelOffset, length, redrawBackground);
-				}
-			};
-			runOnDisplayThreadIfNeedede(runnable);
-		}
-		else {
-			int high = getDocument().getLength();
-			// TODO need to take into account segmented visible regions
-			int startOffset = getMasterToProjectionOffset(startModelOffset);
-			// not visible
-			if (startOffset > high || length < 1)
-				return;
-			// restrict lower bound
-			if (startOffset < 0) {
-				startOffset = 0;
-			}
-			int endOffset = startOffset + length - 1;
-			// restrict upper bound
-			if (endOffset > high) {
-				endOffset = high;
-			}
-
-			// note: length of the child documnet should be
-			// updated,
-			// need to investigate why its not at this
-			// point, but is
-			// probably just because the document event
-			// handling is not
-			// completely finished.
-			int newLength = endOffset - startOffset; // d283007
-
-			// redrawBackground with false would be faster
-			// but assumes background (or font) is not
-			// changing
-			final int finalStartOffset = startOffset;
-			final int finalNewLength = newLength;
-			Runnable runnable = new Runnable() {
-				public void run() {
-					getStyledTextWidget().redrawRange(finalStartOffset, finalNewLength, redrawBackground);
-				}
-			};
-			runOnDisplayThreadIfNeedede(runnable);
-		}
-	}
-
-	/**
-	 * Request a redraw of the text range occupied by the given
-	 * RegionChangedEvent for certain (not all) ITextRegion contexts
-	 * 
-	 * @param structuredDocumentEvent
-	 */
-	protected void redrawRegionChanged(RegionChangedEvent structuredDocumentEvent) {
-
-		if (isStoppedForwardingChanges()) {
-			return;
-		}
-		if (Debug.debugStructuredDocument) {
-			System.out.println("maybe redraw stuff"); //$NON-NLS-1$
-		}
-
-
-		// (nsd) TODO: try to make this reliable somehow
-		// without being directly content dependent
-		// if ((region instanceof ITextRegionContainer) ||
-		// (type == XMLJSPRegionContexts.BLOCK_TEXT) ||
-		// (type == XMLJSPRegionContexts.JSP_CONTENT)) {
-		// IStructuredDocumentRegion flatNode =
-		// structuredDocumentEvent.getStructuredDocumentRegion();
-		// // redraw background of false is faster,
-		// // but assumes background (or font) is not
-		// changing
-		// redrawRange(flatNode.getStartOffset(region),
-		// flatNode.getEndOffset(region));
-		// }
-		if (forceRedrawOnRegionChanged) {
-			// workaround for redrawing problems on Linux-GTK
-			int startOffset = structuredDocumentEvent.getOffset();
-			int endOffset = structuredDocumentEvent.getOffset() + structuredDocumentEvent.getLength();
-			try {
-				IRegion startLine = structuredDocumentEvent.fDocument.getLineInformationOfOffset(startOffset);
-				IRegion endLine = structuredDocumentEvent.fDocument.getLineInformationOfOffset(endOffset);
-				if (startLine != null && endLine != null) {
-					redrawRange(startLine.getOffset(), endLine.getOffset() + endLine.getLength());
-				}
-			}
-			catch (BadLocationException e) {
-				// nothing for now
-			}
-		}
-	}
-
-	/**
-	 * Request a redraw of the text range occupied by the given
-	 * RegionsReplacedEvent
-	 * 
-	 * @param structuredDocumentEvent
-	 */
-	protected void redrawRegionsReplaced(RegionsReplacedEvent structuredDocumentEvent) {
-
-		if (isStoppedForwardingChanges())
-			return;
-		if (Debug.debugStructuredDocument) {
-			System.out.println("maybe redraw stuff"); //$NON-NLS-1$
-		}
-		ITextRegionList newRegions = structuredDocumentEvent.getNewRegions();
-		int nRegions = newRegions.size();
-		if (nRegions > 0) {
-			ITextRegion firstRegion = newRegions.get(0);
-			ITextRegion lastRegion = newRegions.get(nRegions - 1);
-			IStructuredDocumentRegion flatNode = structuredDocumentEvent.getStructuredDocumentRegion();
-			redrawRange(flatNode.getStartOffset(firstRegion), flatNode.getEndOffset(lastRegion));
-		}
-	}
-
-	protected void redrawTextChanged() {
-
-		if (lastEvent != null) {
-			// update display, since some cases can effect
-			// highlighting beyond the changed text area.
-			if (lastEvent instanceof StructuredDocumentRegionsReplacedEvent)
-				redrawNodesReplaced((StructuredDocumentRegionsReplacedEvent) lastEvent);
-			if (lastEvent instanceof RegionsReplacedEvent)
-				redrawRegionsReplaced((RegionsReplacedEvent) lastEvent);
-			if (lastEvent instanceof RegionChangedEvent)
-				redrawRegionChanged((RegionChangedEvent) lastEvent);
-			// moved following line to 'document changed' so
-			// the "last event" can be
-			// re-drawn after pending re-draws
-			// lastEvent = null;
-		}
-	}
-
-	/**
-	 * Sends a text replace event to all registered listeners.
-	 */
-	protected void relayTextChanged() {
-
-		if (isStoppedForwardingChanges()) {
-			if (Debug.debugStructuredDocument && getDocument() != null) {
-				System.out.println("NOT relaying text changed (" + getDocument().getLength() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			return;
-		}
-		if (Debug.debugStructuredDocument && getDocument() != null) {
-			System.out.println("relaying text changed (" + getDocument().getLength() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		final TextChangedEvent textChangedEvent = new TextChangedEvent(this);
-
-		// we must assign listeners to local variable, since
-		// the add and remove listener
-		// methods can change the actual instance of the
-		// listener array from another thread
-
-		Runnable runnable = new Runnable() {
-			public void run() {
-				if (fTextChangeListeners != null) {
-					Object[] holdListeners = fTextChangeListeners;
-					for (int i = 0; i < holdListeners.length; i++) {
-						// this is a safe cast, since addListeners
-						// requires a IStructuredDocumentListener
-						((TextChangeListener) holdListeners[i]).textChanged(textChangedEvent);
-					}
-				}
-			}
-		};
-		runOnDisplayThreadIfNeedede(runnable);
-		redrawTextChanged();
-	}
-
-	/**
-	 * Sends a text change to all registered listeners
-	 */
-	protected void relayTextChanging(int requestedStart, int requestedLength, String requestedChange) {
-
-		if (getDocument() == null)
-			return;
-		if (isStoppedForwardingChanges()) {
-			if (Debug.debugStructuredDocument && getDocument() != null) {
-				System.out.println("NOT relaying text changing: " + requestedStart + ":" + getDocument().getLength()); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			return;
-		}
-		if (Debug.debugStructuredDocument && getDocument() != null) {
-			System.out.println("relaying text changing: " + requestedStart + ":" + getDocument().getLength()); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		lastEvent = null;
-		try {
-			final TextChangingEvent textChangingEvent = new TextChangingEvent(this);
-
-			textChangingEvent.start = requestedStart;
-			textChangingEvent.replaceCharCount = requestedLength;
-			textChangingEvent.newCharCount = (requestedChange == null ? 0 : requestedChange.length());
-			textChangingEvent.replaceLineCount = getDocument().getNumberOfLines(requestedStart, requestedLength) - 1;
-			textChangingEvent.newText = requestedChange;
-			textChangingEvent.newLineCount = (requestedChange == null ? 0 : getDocument().computeNumberOfLines(requestedChange));
-
-			// we must assign listeners to local variable,
-			// since the add and remove listner
-			// methods can change the actual instance of the
-			// listener array from another thread
-			Runnable runnable = new Runnable() {
-				public void run() {
-					if (fTextChangeListeners != null) {
-						TextChangeListener[] holdListeners = fTextChangeListeners;
-						for (int i = 0; i < holdListeners.length; i++) {
-							// this is a safe cast, since
-							// addListeners requires a
-							// IStructuredDocumentListener
-							holdListeners[i].textChanging(textChangingEvent);
-						}
-					}
-				}
-			};
-			runOnDisplayThreadIfNeedede(runnable);
-		}
-		catch (BadLocationException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	/**
-	 * Sends a text set event to all registered listeners. Widget should
-	 * redraw itself automatically.
-	 */
-	protected void relayTextSet() {
-
-		if (isStoppedForwardingChanges()) {
-			if (Debug.debugStructuredDocument && getDocument() != null) {
-				System.out.println("NOT relaying text set (" + getDocument().getLength() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			return;
-		}
-		if (Debug.debugStructuredDocument && getDocument() != null) {
-			System.out.println("relaying text set (" + getDocument().getLength() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		lastEvent = null;
-		final TextChangedEvent textChangedEvent = new TextChangedEvent(this);
-
-		// we must assign listeners to local variable, since
-		// the add and remove listner
-		// methods can change the actual instance of the
-		// listener array from another thread
-		Runnable runnable = new Runnable() {
-			public void run() {
-				if (fTextChangeListeners != null) {
-					TextChangeListener[] holdListeners = fTextChangeListeners;
-					for (int i = 0; i < holdListeners.length; i++) {
-						holdListeners[i].textSet(textChangedEvent);
-					}
-				}
-			}
-		};
-		runOnDisplayThreadIfNeedede(runnable);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.swt.custom.StyledTextContent#removeTextChangeListener(org.eclipse.swt.custom.TextChangeListener)
-	 */
-	public synchronized void removeTextChangeListener(final TextChangeListener listener) {
-
-		if ((fTextChangeListeners != null) && (listener != null)) {
-			// if its not in the listeners, we'll ignore the
-			// request
-			if (!Utilities.contains(fTextChangeListeners, listener)) {
-				if (Debug.displayWarnings) {
-					System.out.println("StructuredDocumentToTextAdapter::removeTextChangedListeners. listener " + listener + " was not present. "); //$NON-NLS-2$//$NON-NLS-1$
-				}
-			}
-			else {
-				if (Debug.debugStructuredDocument) {
-					System.out.println("StructuredDocumentToTextAdapter::addTextChangedListeners. Removing an instance of " + listener.getClass() + " as a listener on text adapter."); //$NON-NLS-2$//$NON-NLS-1$
-				}
-				final int oldSize = fTextChangeListeners.length;
-				int newSize = oldSize - 1;
-				final TextChangeListener[] newListeners = new TextChangeListener[newSize];
-
-				Runnable runnable = new Runnable() {
-					public void run() {
-						int index = 0;
-						for (int i = 0; i < oldSize; i++) {
-							if (fTextChangeListeners[i] != listener) {
-								// copy old to new if its not the
-								// one we are removing
-								newListeners[index++] = fTextChangeListeners[i];
-							}
-						}
-					}
-				};
-				runOnDisplayThreadIfNeedede(runnable);
-				// now that we have a new array, let's
-				// switch it for the old one
-				fTextChangeListeners = newListeners;
-			}
-		}
-	}
-
-	/**
-	 * Replace the text with "newText" starting at position "start" for a
-	 * length of "replaceLength".
-	 * <p>
-	 * Implementors have to notify TextChanged listeners after the content has
-	 * been updated. The TextChangedEvent should be set as follows:
-	 * <ul>
-	 * <li>event.type = SWT.TextReplaced
-	 * <li>event.start = start of the replaced text
-	 * <li>event.numReplacedLines = number of replaced lines
-	 * <li>event.numNewLines = number of new lines
-	 * <li>event.replacedLength = length of the replaced text
-	 * <li>event.newLength = length of the new text
-	 * </ul>
-	 * <b>NOTE: </b> numNewLines is the number of inserted lines and
-	 * numReplacedLines is the number of deleted lines based on the change
-	 * that occurs visually. For example:
-	 * <ul>
-	 * <li>(replacedText, newText) ==> (numReplacedLines, numNewLines)
-	 * <li>("", "\n") ==> (0, 1)
-	 * <li>("\n\n", "a") ==> (2, 0)
-	 * <li>("a", "\n\n") ==> (0, 2)
-	 * <li>("\n", "") ==> (1, 0)
-	 * </ul>
-	 * </p>
-	 * 
-	 * @param start
-	 *            start offset of text to replace, none of the offsets include
-	 *            delimiters of preceeding lines, offset 0 is the first
-	 *            character of the document
-	 * @param replaceLength
-	 *            start offset of text to replace
-	 * @param newText
-	 *            start offset of text to replace
-	 */
-	public void replaceTextRange(int start, int replaceLength, String text) {
-
-		if (getParentDocument() instanceof IStructuredDocument) {
-			// the structuredDocument initiates the "changing"
-			// and "changed" events.
-			// they are both fired by the time this method
-			// returns.
-			IRegion region = getProjectionToMasterRegion(new Region(start, replaceLength));
-			if (region != null) {
-				((IStructuredDocument) getParentDocument()).replaceText(this, region.getOffset(), region.getLength(), text);
-				return;
-			}
-		}
-		// default is to just try and replace text range in current document
-		try {
-			getDocument().replace(start, replaceLength, text);
-		}
-		catch (BadLocationException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.IDocumentAdapterExtension#resumeForwardingDocumentChanges()
-	 */
-	public void resumeForwardingDocumentChanges() {
-
-		// from re-reading the textSet API in StyledText, we
-		// must call
-		// textSet if all the contents changed. If all the
-		// contents did
-		// not change, we need to call the pair of APIs,
-		// textChanging and
-		// textChanged. So, if we ever keep careful track of
-		// changes
-		// during stop forwarding and resume forwarding, we
-		// can
-		// investigate change make use of the pair of APIs.
-		fStopRelayingChangesRequests--;
-		if (fStopRelayingChangesRequests == 0) {
-			// fIsForwarding= true;
-			fDocumentClone = null;
-			fOriginalContent = null;
-			fOriginalLineDelimiters = null;
-			// fireTextSet();
-			relayTextSet();
-		}
-	}
-
-	/**
-	 * This 'Runnable' should be very brief, and should not "call out" to
-	 * other code which itself might call syncExec, or deadlock might occur.
-	 * 
-	 * @param r
-	 */
-	private void runOnDisplayThreadIfNeedede(Runnable r) {
-		// if there is no Display at all (that is, running headless),
-		// or if we are already running on the display thread, then
-		// simply execute the runnable.
-		if (getDisplay() == null || (Thread.currentThread() == getDisplay().getThread())) {
-			r.run();
-		}
-		else {
-			// otherwise force the runnable to run on the display thread.
-			//
-			// Its unclear if we need this at all, once
-			// we "force" document update to always take place on display
-			// thread.
-			IDocument doc = getDocument();
-			if (doc instanceof ILockable) {
-
-				ILock lock = null;
-				try {
-					lock = ((ILockable) doc).getLockObject();
-					lock.acquire();
-					getDisplay().syncExec(r);
-				}
-				finally {
-					if (lock != null) {
-						lock.release();
-					}
-				}
-			}
-			else {
-				// else, ignore!, since risk of deadlock
-				throw new IllegalStateException("non lockable document used for structuredDocumentToTextAdapter"); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * @param newModel
-	 */
-	public void setDocument(IDocument document) {
-
-		if (getDocument() != null) {
-			getDocument().removePrenotifiedDocumentListener(internalDocumentListener);
-		}
-		lastEvent = null;
-		if (document instanceof ProjectionDocument) {
-			fChildDocument = (ProjectionDocument) document;
-			_setDocument(fChildDocument.getMasterDocument());
-		}
-		else {
-			fChildDocument = null;
-			_setDocument(document);
-		}
-		if (getDocument() != null) {
-			getDocument().addPrenotifiedDocumentListener(internalDocumentListener);
-		}
-	}
-
-	/**
-	 * @see IDocument#setText
-	 */
-	public void setText(String string) {
-
-		if (isStoppedForwardingChanges()) {
-			fDocumentClone = null;
-			fOriginalContent = getDocument().get();
-			fOriginalLineDelimiters = getDocument().getLegalLineDelimiters();
-		}
-		else if (getParentDocument() instanceof IStructuredDocument) {
-			((IStructuredDocument) getDocument()).setText(this, string);
-		}
-		else {
-			getDocument().set(string);
-		}
-		relayTextSet();
-	}
-
-	/**
-	 * This method was added to make testing easier. Normally, the widget is
-	 * specified on the constructor.
-	 */
-	public void setWidget(StyledText widget) {
-
-		fStyledTextWidget = widget;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.IDocumentAdapterExtension#stopForwardingDocumentChanges()
-	 */
-	public void stopForwardingDocumentChanges() {
-
-		fStopRelayingChangesRequests++;
-		// only need to take snapshot on first request
-		if (fStopRelayingChangesRequests == 1) {
-			fDocumentClone = null;
-			fOriginalContent = getDocument().get();
-			fOriginalLineDelimiters = getDocument().getLegalLineDelimiters();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredLineChangeHover.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredLineChangeHover.java
deleted file mode 100644
index fa5dc33..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredLineChangeHover.java
+++ /dev/null
@@ -1,48 +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.wst.sse.ui.internal;
-
-import org.eclipse.jface.text.DefaultInformationControl;
-import org.eclipse.jface.text.IInformationControl;
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.source.LineChangeHover;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * Escapes diff hover presentation text (converts < to &lt; > to &gt; etc...)
- * so that html in the diff file (displayed in hover) isn't presented as style
- * (bold, italic, colors, etc...)
- * 
- * @author pavery
- */
-public class StructuredLineChangeHover extends LineChangeHover {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.IAnnotationHoverExtension#getHoverControlCreator()
-	 */
-	public IInformationControlCreator getHoverControlCreator() {
-		// use the default information control creator that just displays text
-		// as text, not html content
-		// because there is no special html that should be presented when just
-		// showing diff
-		// in the future, sourceviewer should be used instead of this plain
-		// text control like java uses
-		// SourceViewerInformationControl
-		return new IInformationControlCreator() {
-			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent);
-			}
-		};
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredMarkerAnnotation.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredMarkerAnnotation.java
deleted file mode 100644
index 197bb5a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredMarkerAnnotation.java
+++ /dev/null
@@ -1,125 +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.wst.sse.ui.internal;
-
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.source.IAnnotationPresentation;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.MarkerAnnotation;
-import org.eclipse.wst.sse.ui.internal.reconcile.TemporaryAnnotation;
-
-
-/**
- * This is overridden to get around the problem of being registered as a
- * org.eclipse.wst.validation.core.problemmarker rather than a
- * org.eclipse.core.resource.problemmarker causing all problems to be skipped
- * in the OverviewRuler
- */
-public class StructuredMarkerAnnotation extends MarkerAnnotation implements IAnnotationPresentation {
-	// controls if icon should be painted gray
-	private boolean fIsGrayed = false;
-	String fAnnotationType = null;
-
-	StructuredMarkerAnnotation(IMarker marker) {
-		super(marker);
-	}
-
-	public final String getAnnotationType() {
-		return fAnnotationType;
-	}
-
-	/**
-	 * Eventually will have to use IAnnotationPresentation &
-	 * IAnnotationExtension
-	 * 
-	 * @see org.eclipse.ui.texteditor.MarkerAnnotation#getImage(org.eclipse.swt.widgets.Display)
-	 */
-	protected Image getImage(Display display) {
-		Image image = null;
-		if (fAnnotationType == TemporaryAnnotation.ANNOT_ERROR) {
-			image = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
-		}
-		else if (fAnnotationType == TemporaryAnnotation.ANNOT_WARNING) {
-			image = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK);
-		}
-		else if (fAnnotationType == TemporaryAnnotation.ANNOT_INFO) {
-			image = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_INFO_TSK);
-		}
-
-		if (image != null && isGrayed())
-			setImage(getGrayImage(display, image));
-		else
-			setImage(image);
-
-		return super.getImage(display);
-	}
-
-	private Image getGrayImage(Display display, Image image) {
-		if (image != null) {
-			String key = Integer.toString(image.hashCode());
-			// make sure we cache the gray image
-			Image grayImage = JFaceResources.getImageRegistry().get(key);
-			if (grayImage == null) {
-				grayImage = new Image(display, image, SWT.IMAGE_GRAY);
-				JFaceResources.getImageRegistry().put(key, grayImage);
-			}
-			image = grayImage;
-		}
-		return image;
-	}
-
-	public final boolean isGrayed() {
-		return fIsGrayed;
-	}
-
-	public final void setGrayed(boolean grayed) {
-		fIsGrayed = grayed;
-	}
-
-	/**
-	 * Initializes the annotation's icon representation and its drawing layer
-	 * based upon the properties of the underlying marker.
-	 */
-	protected void initAnnotationType() {
-
-		IMarker marker = getMarker();
-		fAnnotationType = TemporaryAnnotation.ANNOT_UNKNOWN;
-		try {
-			if (marker.isSubtypeOf(IMarker.PROBLEM)) {
-				int severity = marker.getAttribute(IMarker.SEVERITY, -1);
-				switch (severity) {
-					case IMarker.SEVERITY_ERROR :
-						fAnnotationType = TemporaryAnnotation.ANNOT_ERROR;
-						break;
-					case IMarker.SEVERITY_WARNING :
-						fAnnotationType = TemporaryAnnotation.ANNOT_WARNING;
-						break;
-					case IMarker.SEVERITY_INFO :
-						fAnnotationType = TemporaryAnnotation.ANNOT_INFO;
-						break;
-				}
-			}
-
-		}
-		catch (CoreException e) {
-			Logger.logException(e);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredResourceMarkerAnnotationModel.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredResourceMarkerAnnotationModel.java
deleted file mode 100644
index c6af5e5..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredResourceMarkerAnnotationModel.java
+++ /dev/null
@@ -1,108 +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.wst.sse.ui.internal;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.Position;
-import org.eclipse.ui.texteditor.MarkerAnnotation;
-import org.eclipse.ui.texteditor.MarkerUtilities;
-import org.eclipse.ui.texteditor.ResourceMarkerAnnotationModel;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointConstants;
-
-
-/**
- * Source editor resource marker annotation model implementation
- */
-public class StructuredResourceMarkerAnnotationModel extends ResourceMarkerAnnotationModel {
-	public final static String SECONDARY_ID_KEY = IBreakpointConstants.RESOURCE_PATH;
-	protected IResource fMarkerResource;
-	protected String fSecondaryMarkerAttributeValue;
-
-	/**
-	 * Constructor
-	 * 
-	 * @param resource
-	 */
-	public StructuredResourceMarkerAnnotationModel(IResource resource) {
-		super(resource);
-		fMarkerResource = resource;
-	}
-
-	public StructuredResourceMarkerAnnotationModel(IResource resource, String secondaryID) {
-		super(resource);
-		fMarkerResource = resource;
-		fSecondaryMarkerAttributeValue = secondaryID;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel#createMarkerAnnotation(org.eclipse.core.resources.IMarker)
-	 */
-	protected MarkerAnnotation createMarkerAnnotation(IMarker marker) {
-		/*
-		 * We need to do some special processing if marker is a validation
-		 * (aka problem) marker or if marker is a breakpoint marker so create
-		 * a special marker annotation for those markers. Otherwise, use
-		 * default.
-		 */
-		if (MarkerUtilities.isMarkerType(marker, IMarker.PROBLEM)) {
-			return new StructuredMarkerAnnotation(marker);
-		}
-		return super.createMarkerAnnotation(marker);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel#getMarkerPosition(org.eclipse.core.resources.IMarker)
-	 */
-	public Position getMarkerPosition(IMarker marker) {
-		Position pos = super.getMarkerPosition(marker);
-
-		// if ((pos == null || pos.getLength() == 0) && marker.getType() ==
-		// IInternalDebugUIConstants.ANN_INSTR_POINTER_CURRENT) {
-		if (pos == null || pos.getLength() == 0) {
-			// We probably should create position from marker if marker
-			// attributes specify a valid position
-			pos = createPositionFromMarker(marker);
-		}
-
-		return pos;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel#isAcceptable(org.eclipse.core.resources.IMarker)
-	 */
-	protected boolean isAcceptable(IMarker marker) {
-		try {
-			Object attr = marker.getAttribute(IBreakpointConstants.ATTR_HIDDEN);
-			if (attr != null && ((Boolean) attr).equals(Boolean.TRUE))
-				return false;
-		}
-		catch (CoreException e) {
-			// ignore
-		}
-
-		if (fSecondaryMarkerAttributeValue == null)
-			return super.isAcceptable(marker);
-		String markerSecondaryMarkerAttributeValue = marker.getAttribute(SECONDARY_ID_KEY, ""); //$NON-NLS-1$
-		boolean isSameFile = fSecondaryMarkerAttributeValue.equalsIgnoreCase(markerSecondaryMarkerAttributeValue);
-		return super.isAcceptable(marker) && isSameFile;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredResourceMarkerAnnotationModelFactory.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredResourceMarkerAnnotationModelFactory.java
deleted file mode 100644
index 4844776..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredResourceMarkerAnnotationModelFactory.java
+++ /dev/null
@@ -1,49 +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.wst.sse.ui.internal;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.ui.texteditor.ResourceMarkerAnnotationModelFactory;
-
-/**
- * 
- * @author nsd
- * 
- * Used by the org.eclipse.core.filebuffers.annotationModelCreation extension
- * point
- */
-public class StructuredResourceMarkerAnnotationModelFactory extends ResourceMarkerAnnotationModelFactory {
-
-	public StructuredResourceMarkerAnnotationModelFactory() {
-		super();
-	}
-
-	/*
-	 * @see org.eclipse.core.filebuffers.IAnnotationModelFactory#createAnnotationModel(org.eclipse.core.runtime.IPath)
-	 */
-	public IAnnotationModel createAnnotationModel(IPath location) {
-		IAnnotationModel model = null;
-		IFile file = FileBuffers.getWorkspaceFileAtLocation(location);
-		if (file != null) {
-			model = new StructuredResourceMarkerAnnotationModel(file);
-		}
-		else {
-			model = new StructuredResourceMarkerAnnotationModel(ResourcesPlugin.getWorkspace().getRoot(), location.toString());
-		}
-		return model;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextAnnotationHover.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextAnnotationHover.java
deleted file mode 100644
index d2d3e33..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextAnnotationHover.java
+++ /dev/null
@@ -1,391 +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.wst.sse.ui.internal;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.debug.ui.IDebugModelPresentation;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationHover;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.texteditor.MarkerAnnotation;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-
-public class StructuredTextAnnotationHover implements IAnnotationHover {
-
-	/**
-	 * Provides a set of convenience methods for creating HTML pages. Taken
-	 * from org.eclipse.jdt.internal.ui.text.HTMLPrinter
-	 */
-	class HTMLPrinter {
-
-		HTMLPrinter() {
-		}
-
-		void addBullet(StringBuffer buffer, String bullet) {
-			if (bullet != null) {
-				buffer.append("<li>"); //$NON-NLS-1$
-				buffer.append(bullet);
-				buffer.append("</li>"); //$NON-NLS-1$
-			}
-		}
-
-		void addPageEpilog(StringBuffer buffer) {
-			buffer.append("</font></body></html>"); //$NON-NLS-1$
-		}
-
-		void addPageProlog(StringBuffer buffer) {
-			insertPageProlog(buffer, buffer.length());
-		}
-
-		void addParagraph(StringBuffer buffer, Reader paragraphReader) {
-			if (paragraphReader != null)
-				addParagraph(buffer, read(paragraphReader));
-		}
-
-		void addParagraph(StringBuffer buffer, String paragraph) {
-			if (paragraph != null) {
-				buffer.append("<p>"); //$NON-NLS-1$
-				buffer.append(paragraph);
-			}
-		}
-
-		void addSmallHeader(StringBuffer buffer, String header) {
-			if (header != null) {
-				buffer.append("<h5>"); //$NON-NLS-1$
-				buffer.append(header);
-				buffer.append("</h5>"); //$NON-NLS-1$
-			}
-		}
-
-		String convertToHTMLContent(String content) {
-			content = replace(content, '<', "&lt;"); //$NON-NLS-1$
-			return replace(content, '>', "&gt;"); //$NON-NLS-1$
-		}
-
-		void endBulletList(StringBuffer buffer) {
-			buffer.append("</ul>"); //$NON-NLS-1$
-		}
-
-		void insertPageProlog(StringBuffer buffer, int position) {
-			buffer.insert(position, "<html><body text=\"#000000\" bgcolor=\"#FFFF88\"><font size=-1>"); //$NON-NLS-1$
-		}
-
-		String read(Reader rd) {
-
-			StringBuffer buffer = new StringBuffer();
-			char[] readBuffer = new char[2048];
-
-			try {
-				int n = rd.read(readBuffer);
-				while (n > 0) {
-					buffer.append(readBuffer, 0, n);
-					n = rd.read(readBuffer);
-				}
-				return buffer.toString();
-			}
-			catch (IOException x) {
-			}
-
-			return null;
-		}
-
-		private String replace(String text, char c, String s) {
-
-			int previous = 0;
-			int current = text.indexOf(c, previous);
-
-			if (current == -1)
-				return text;
-
-			StringBuffer buffer = new StringBuffer();
-			while (current > -1) {
-				buffer.append(text.substring(previous, current));
-				buffer.append(s);
-				previous = current + 1;
-				current = text.indexOf(c, previous);
-			}
-			buffer.append(text.substring(previous));
-
-			return buffer.toString();
-		}
-
-		void startBulletList(StringBuffer buffer) {
-			buffer.append("<ul>"); //$NON-NLS-1$
-		}
-	}
-
-	private IDebugModelPresentation fDebugModelPresentation;
-
-	private HTMLPrinter printer = new HTMLPrinter();
-
-	/**
-	 * Returns the distance to the ruler line.
-	 */
-	private int compareRulerLine(Position position, IDocument document, int line) {
-
-		if (position.getOffset() > -1 && position.getLength() > -1) {
-			try {
-				int markerLine = document.getLineOfOffset(position.getOffset());
-				if (line == markerLine)
-					return 1;
-				if (markerLine <= line && line <= document.getLineOfOffset(position.getOffset() + position.getLength()))
-					return 2;
-			}
-			catch (BadLocationException x) {
-			}
-		}
-
-		return 0;
-	}
-
-	/*
-	 * Formats the message of this hover to fit onto the screen.
-	 */
-	private String formatHoverText(String text, ISourceViewer sourceViewer) {
-		String result = null;
-		String lineDelim = new String();
-		try {
-			lineDelim = sourceViewer.getDocument().getLineDelimiter(0);
-		}
-		catch (org.eclipse.jface.text.BadLocationException exception) {
-			// skip, just use default
-		}
-		Display display = sourceViewer.getTextWidget().getDisplay();
-
-		// replace special characters in text with html entity (like <, >, &
-		// to &lt;, &gt;, &&;)
-		text = StringUtils.convertToHTMLContent(text);
-
-		Reader textReader = new StringReader(text);
-		GC gc = new GC(display);
-		try {
-			StringBuffer buf = new StringBuffer();
-
-			StructuredTextLineBreakingReader reader = new StructuredTextLineBreakingReader(textReader, gc, getHoverWidth(display));
-			String line = reader.readLine();
-			while (line != null) {
-				if (buf.length() != 0) {
-					buf.append(lineDelim);
-				}
-				buf.append(line);
-				line = reader.readLine();
-			}
-			result = buf.toString();
-		}
-		catch (IOException exception) {
-			Logger.logException(exception);
-		}
-		finally {
-			gc.dispose();
-		}
-		return result;
-	}
-
-	/*
-	 * Formats several message as HTML text.
-	 */
-	private String formatMultipleHoverText(List messages) {
-
-		StringBuffer buffer = new StringBuffer();
-		printer.addPageProlog(buffer);
-		printer.addParagraph(buffer, SSEUIMessages.Multiple_errors); //$NON-NLS-1$
-
-		printer.startBulletList(buffer);
-		Iterator e = messages.iterator();
-		while (e.hasNext())
-			printer.addBullet(buffer, printer.convertToHTMLContent((String) e.next()));
-		printer.endBulletList(buffer);
-
-		printer.addPageEpilog(buffer);
-		return buffer.toString();
-	}
-
-	/**
-	 * @see IVerticalRulerHover#getHoverInfo(ISourceViewer, int)
-	 */
-	public String getHoverInfo(ISourceViewer sourceViewer, int lineNumber) {
-		IMarker marker = getMarker(sourceViewer, lineNumber);
-		List messages = new ArrayList(marker == null ? 0 : 1);
-		if (marker != null) {
-			String text = marker.getAttribute(IMarker.MESSAGE, (String) null);
-			if (text != null) {
-				messages.add(text);
-			}
-			else {
-				try {
-					if (marker.isSubtypeOf(IBreakpoint.BREAKPOINT_MARKER)) {
-						IBreakpointManager manager = DebugPlugin.getDefault().getBreakpointManager();
-						IBreakpoint[] breakpoints = manager.getBreakpoints();
-						for (int i = 0; i < breakpoints.length; i++) {
-							IBreakpoint breakpoint = breakpoints[i];
-							if (breakpoint.getMarker().equals(marker)) {
-								if (fDebugModelPresentation == null) {
-									fDebugModelPresentation = DebugUITools.newDebugModelPresentation();
-								}
-								text = fDebugModelPresentation.getText(breakpoint);
-								if (text != null) {
-									messages.add(text);
-								}
-							}
-						}
-					}
-				}
-				catch (CoreException e) {
-					Logger.logException(e);
-				}
-			}
-		}
-		List temporaryAnnotations = getTemporaryAnnotationsForLine(sourceViewer, lineNumber);
-		for (int i = 0; i < temporaryAnnotations.size(); i++) {
-			String message = ((Annotation) temporaryAnnotations.get(i)).getText();
-			if (message != null) {
-				boolean duplicated = false;
-				for (int j = 0; j < messages.size(); j++)
-					duplicated = duplicated || messages.get(j).equals(message);
-				if (!duplicated) {
-					messages.add(message);
-				}
-
-			}
-			else
-				messages.add(((ITemporaryAnnotation) temporaryAnnotations.get(i)).toString());
-		}
-		if (messages.size() > 1)
-			return formatMultipleHoverText(messages);
-		else if (messages.size() > 0)
-			return formatHoverText(messages.get(0).toString(), sourceViewer);
-		else
-			return null;
-	}
-
-	private int getHoverWidth(Display display) {
-		Rectangle displayBounds = display.getBounds();
-		int hoverWidth = displayBounds.width - (display.getCursorLocation().x - displayBounds.x);
-		hoverWidth -= 12; // XXX: Add some space to the border, Revisit
-		if (hoverWidth < 200) {
-			hoverWidth = 200;
-		}
-		return hoverWidth;
-	}
-
-	/**
-	 * Returns one marker which includes the ruler's line of activity.
-	 */
-	private IMarker getMarker(ISourceViewer viewer, int line) {
-
-		IDocument document = viewer.getDocument();
-		IAnnotationModel model = viewer.getAnnotationModel();
-
-		if (model == null)
-			return null;
-
-		List exact = new ArrayList();
-		List including = new ArrayList();
-
-		Iterator e = model.getAnnotationIterator();
-		while (e.hasNext()) {
-			Object o = e.next();
-			if (o instanceof MarkerAnnotation) {
-				MarkerAnnotation a = (MarkerAnnotation) o;
-				switch (compareRulerLine(model.getPosition(a), document, line)) {
-					case 1 :
-						exact.add(a.getMarker());
-						break;
-					case 2 :
-						including.add(a.getMarker());
-						break;
-				}
-			}
-		}
-
-		return select(exact, including);
-	}
-
-	/**
-	 * Returns one marker which includes the ruler's line of activity.
-	 */
-	private List getTemporaryAnnotationsForLine(ISourceViewer viewer, int line) {
-
-		IDocument document = viewer.getDocument();
-		IAnnotationModel model = viewer.getAnnotationModel();
-
-		if (model == null)
-			return null;
-
-		List exact = new ArrayList();
-		List including = new ArrayList();
-
-		Iterator e = model.getAnnotationIterator();
-		while (e.hasNext()) {
-			Object o = e.next();
-			if (o instanceof ITemporaryAnnotation) {
-				ITemporaryAnnotation a = (ITemporaryAnnotation) o;
-				Position position = model.getPosition((Annotation) a);
-				if (position == null)
-					continue;
-
-				switch (compareRulerLine(position, document, line)) {
-					case 1 :
-						exact.add(a);
-						break;
-					case 2 :
-						including.add(a);
-						break;
-				}
-			}
-		}
-
-		return exact;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.IReleasable#release()
-	 */
-	public void release() {
-		if (fDebugModelPresentation != null) {
-			fDebugModelPresentation.dispose();
-		}
-	}
-
-	/**
-	 * Selects one marker from the two lists.
-	 */
-	private IMarker select(List firstChoice, List secondChoice) {
-		if (!firstChoice.isEmpty())
-			return (IMarker) firstChoice.get(0);
-		if (!secondChoice.isEmpty())
-			return (IMarker) secondChoice.get(0);
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextLineBreakingReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextLineBreakingReader.java
deleted file mode 100644
index 1140fab..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextLineBreakingReader.java
+++ /dev/null
@@ -1,114 +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.wst.sse.ui.internal;
-
-
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.swt.graphics.GC;
-
-/*
- * Not a real reader. Could change if requested
- */
-public class StructuredTextLineBreakingReader {
-	private GC fGC;
-	private int fIndex;
-	private String fLine;
-	private int fMaxWidth;
-
-	private BufferedReader fReader;
-
-	/**
-	 * Creates a reader that breaks an input text to fit in a given width.
-	 * 
-	 * @param reader
-	 *            Reader of the input text
-	 * @param gc
-	 *            The graphic context that defines the currently used font
-	 *            sizes
-	 * @param maxLineWidth
-	 *            The max width (pixes) where the text has to fit in
-	 */
-	public StructuredTextLineBreakingReader(Reader reader, GC gc, int maxLineWidth) {
-		fReader = new BufferedReader(reader);
-		fGC = gc;
-		fMaxWidth = maxLineWidth;
-		fLine = null;
-		fIndex = 0;
-	}
-
-	private int findNextBreakIndex(int currIndex) {
-		int currWidth = 0;
-		int lineLength = fLine.length();
-
-		while (currIndex < lineLength) {
-			char ch = fLine.charAt(currIndex);
-			int nextIndex = currIndex + 1;
-			// leading whitespaces are counted to the following word
-			if (Character.isWhitespace(ch)) {
-				while (nextIndex < lineLength && Character.isWhitespace(fLine.charAt(nextIndex))) {
-					nextIndex++;
-				}
-			}
-			while (nextIndex < lineLength && !Character.isWhitespace(fLine.charAt(nextIndex))) {
-				nextIndex++;
-			}
-			String word = fLine.substring(currIndex, nextIndex);
-			int wordWidth = fGC.textExtent(word).x;
-			int nextWidth = wordWidth + currWidth;
-			if (nextWidth > fMaxWidth && wordWidth < fMaxWidth) {
-				return currIndex;
-			}
-			currWidth = nextWidth;
-			currIndex = nextIndex;
-		}
-		return currIndex;
-	}
-
-	private int findWordBegin(int idx) {
-		while (idx < fLine.length() && Character.isWhitespace(fLine.charAt(idx))) {
-			idx++;
-		}
-		return idx;
-	}
-
-	/**
-	 * Reads the next line. The lengths of the line will not exceed the gived
-	 * maximum width.
-	 */
-	public String readLine() throws IOException {
-		if (fLine == null) {
-			String line = fReader.readLine();
-			if (line == null) {
-				return null;
-			}
-			int lineLen = fGC.textExtent(line).x;
-			if (lineLen < fMaxWidth) {
-				return line;
-			}
-			fLine = line;
-			fIndex = 0;
-		}
-		int breakIdx = findNextBreakIndex(fIndex);
-		String res = fLine.substring(fIndex, breakIdx);
-		if (breakIdx < fLine.length()) {
-			fIndex = findWordBegin(breakIdx);
-		} else {
-			fLine = null;
-		}
-		return res;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextSelectionChangedEvent.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextSelectionChangedEvent.java
deleted file mode 100644
index 1b1dfe0..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextSelectionChangedEvent.java
+++ /dev/null
@@ -1,35 +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.wst.sse.ui.internal;
-
-
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-
-/**
- * This event is used by the SourceEditorTreeViewer to tell the
- * ViewerSelectionManager that the selection really came from a user click on
- * the content outliner, instead of being set programatically.
- */
-public class StructuredTextSelectionChangedEvent extends org.eclipse.jface.viewers.SelectionChangedEvent {
-
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-
-	public StructuredTextSelectionChangedEvent(ISelectionProvider source, ISelection selection) {
-		super(source, selection);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextViewer.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextViewer.java
deleted file mode 100644
index 17f9a23..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/StructuredTextViewer.java
+++ /dev/null
@@ -1,793 +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.wst.sse.ui.internal;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentAdapter;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewerExtension2;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.text.contentassist.ContentAssistant;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.formatter.FormattingContext;
-import org.eclipse.jface.text.formatter.FormattingContextProperties;
-import org.eclipse.jface.text.formatter.IContentFormatterExtension;
-import org.eclipse.jface.text.formatter.IFormattingContext;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.information.IInformationPresenter;
-import org.eclipse.jface.text.projection.ProjectionDocument;
-import org.eclipse.jface.text.reconciler.IReconciler;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.IOverviewRuler;
-import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.jface.text.source.SourceViewerConfiguration;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.IEditorStatusLine;
-import org.eclipse.wst.sse.core.internal.cleanup.StructuredContentCleanupHandler;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.undo.IDocumentSelectionMediator;
-import org.eclipse.wst.sse.core.internal.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.core.internal.undo.UndoDocumentEvent;
-import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration;
-import org.eclipse.wst.sse.ui.internal.provisional.style.Highlighter;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.reconcile.StructuredRegionProcessor;
-import org.eclipse.wst.sse.ui.internal.util.PlatformStatusLineUtil;
-
-public class StructuredTextViewer extends ProjectionViewer implements IDocumentSelectionMediator {
-	/** Text operation codes */
-	private static final int BASE = ProjectionViewer.COLLAPSE_ALL; // see
-	// ProjectionViewer.COLLAPSE_ALL
-	private static final int CLEANUP_DOCUMENT = BASE + 1;
-	public static final int FORMAT_ACTIVE_ELEMENTS = BASE + 3;
-
-	private static final String FORMAT_ACTIVE_ELEMENTS_TEXT = SSEUIMessages.Format_Active_Elements_UI_; //$NON-NLS-1$
-	public static final int FORMAT_DOCUMENT = BASE + 2;
-	private static final String FORMAT_DOCUMENT_TEXT = SSEUIMessages.Format_Document_UI_; //$NON-NLS-1$
-	public static final int QUICK_FIX = BASE + 4;
-	private static final String TEXT_CUT = SSEUIMessages.Text_Cut_UI_; //$NON-NLS-1$
-	private static final String TEXT_PASTE = SSEUIMessages.Text_Paste_UI_; //$NON-NLS-1$
-	private static final String TEXT_SHIFT_LEFT = SSEUIMessages.Text_Shift_Left_UI_; //$NON-NLS-1$ = "Text Shift Left"
-	private static final String TEXT_SHIFT_RIGHT = SSEUIMessages.Text_Shift_Right_UI_; //$NON-NLS-1$ = "Text Shift Right"
-	private static final boolean TRACE_EXCEPTIONS = true;
-
-	private boolean fBackgroundupdateInProgress;
-	private StructuredContentCleanupHandler fContentCleanupHandler = null;
-	private IContentAssistant fCorrectionAssistant;
-	private boolean fCorrectionAssistantInstalled;
-	private IDocumentAdapter fDocAdapter;
-
-	private Highlighter fHighlighter;
-
-	// private ViewerSelectionManager fViewerSelectionManager;
-	private SourceViewerConfiguration fConfiguration;
-
-	/**
-	 * @see org.eclipse.jface.text.source.SourceViewer#SourceViewer(Composite,
-	 *      IVerticalRuler, IOverviewRuler, boolean, int)
-	 */
-	public StructuredTextViewer(Composite parent, IVerticalRuler verticalRuler, IOverviewRuler overviewRuler, boolean showAnnotationsOverview, int styles) {
-		super(parent, verticalRuler, overviewRuler, showAnnotationsOverview, styles);
-	}
-
-	/**
-	 * 
-	 */
-	private void beep() {
-		getTextWidget().getDisplay().beep();
-	}
-
-	public void beginBackgroundUpdate() {
-		fBackgroundupdateInProgress = true;
-		setRedraw(false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextOperationTarget#canDoOperation(int)
-	 */
-	public boolean canDoOperation(int operation) {
-		if (fBackgroundupdateInProgress) {
-			return false;
-		}
-		switch (operation) {
-			case CONTENTASSIST_PROPOSALS : {
-				// (pa) if position isn't READ_ONLY (containsReadOnly()
-				// returns false),
-				// Otherwise, you DO want content assist (return true)
-				IDocument doc = getDocument();
-				if (doc != null && doc instanceof IStructuredDocument) {
-					return isEditable() && (!((IStructuredDocument) doc).containsReadOnly(getSelectedRange().x, 0));
-				}
-				break;
-			}
-			case QUICK_FIX : {
-				return isEditable();
-			}
-			case CLEANUP_DOCUMENT : {
-				return (fContentCleanupHandler != null && isEditable());
-			}
-			case FORMAT_DOCUMENT :
-			case FORMAT_ACTIVE_ELEMENTS : {
-				return (fContentFormatter != null && isEditable());
-			}
-		}
-		return super.canDoOperation(operation);
-	}
-
-	/**
-	 * Should be identical to superclass version. Plus, we get our own special
-	 * Highlighter. Plus we uninstall before installing.
-	 */
-	public void configure(SourceViewerConfiguration configuration) {
-
-		if (getTextWidget() == null)
-			return;
-
-		setDocumentPartitioning(configuration.getConfiguredDocumentPartitioning(this));
-
-		// always uninstall highlighter and null it out on new configuration
-		if (fHighlighter != null) {
-			fHighlighter.uninstall();
-			fHighlighter = null;
-		}
-
-		// install content type independent plugins
-		if (fPresentationReconciler != null)
-			fPresentationReconciler.uninstall();
-		fPresentationReconciler = configuration.getPresentationReconciler(this);
-		if (fPresentationReconciler != null)
-			fPresentationReconciler.install(this);
-
-		IReconciler newReconciler = configuration.getReconciler(this);
-
-		if (newReconciler != fReconciler || newReconciler == null || fReconciler == null) {
-
-			if (fReconciler != null) {
-				fReconciler.uninstall();
-			}
-
-			fReconciler = newReconciler;
-
-			if (fReconciler != null) {
-				fReconciler.install(this);
-				// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=3858
-				// still need set document on the reconciler (strategies)
-				((StructuredRegionProcessor) fReconciler).setDocument(getDocument());
-			}
-		}
-
-		IContentAssistant newAssistant = configuration.getContentAssistant(this);
-		if (newAssistant != fContentAssistant || newAssistant == null || fContentAssistant == null) {
-			if (fContentAssistant != null)
-				fContentAssistant.uninstall();
-
-			fContentAssistant = newAssistant;
-
-			if (fContentAssistant != null) {
-				fContentAssistant.install(this);
-				fContentAssistantInstalled = true;
-			}
-			else {
-				// 248036
-				// disable the content assist operation if no content
-				// assistant
-				enableOperation(CONTENTASSIST_PROPOSALS, false);
-			}
-		}
-
-		fContentFormatter = configuration.getContentFormatter(this);
-
-		// do not uninstall old information presenter if it's the same
-		IInformationPresenter newInformationPresenter = configuration.getInformationPresenter(this);
-		if (newInformationPresenter == null || fInformationPresenter == null || !(newInformationPresenter.equals(fInformationPresenter))) {
-			if (fInformationPresenter != null)
-				fInformationPresenter.uninstall();
-			fInformationPresenter = newInformationPresenter;
-			if (fInformationPresenter != null)
-				fInformationPresenter.install(this);
-		}
-
-		// disconnect from the old undo manager before setting the new one
-		if (fUndoManager != null) {
-			fUndoManager.disconnect();
-		}
-		setUndoManager(configuration.getUndoManager(this));
-
-		// release old annotation hover before setting new one
-		if (fAnnotationHover instanceof StructuredTextAnnotationHover) {
-			((StructuredTextAnnotationHover) fAnnotationHover).release();
-		}
-		setAnnotationHover(configuration.getAnnotationHover(this));
-
-		// release old annotation hover before setting new one
-		if (fOverviewRulerAnnotationHover instanceof StructuredTextAnnotationHover) {
-			((StructuredTextAnnotationHover) fOverviewRulerAnnotationHover).release();
-		}
-		setOverviewRulerAnnotationHover(configuration.getAnnotationHover(this));
-
-		getTextWidget().setTabs(configuration.getTabWidth(this));
-		setHoverControlCreator(configuration.getInformationControlCreator(this));
-
-		// if hyperlink manager has already been created, uninstall it
-		if (fHyperlinkManager != null) {
-			setHyperlinkDetectors(null, SWT.NONE);
-		}
-		setHyperlinkPresenter(configuration.getHyperlinkPresenter(this));
-		IHyperlinkDetector[] hyperlinkDetectors = configuration.getHyperlinkDetectors(this);
-		int eventStateMask = configuration.getHyperlinkStateMask(this);
-		setHyperlinkDetectors(hyperlinkDetectors, eventStateMask);
-
-		// install content type specific plugins
-		String[] types = configuration.getConfiguredContentTypes(this);
-
-		// clear autoindent/autoedit strategies
-		fAutoIndentStrategies = null;
-		for (int i = 0; i < types.length; i++) {
-			String t = types[i];
-			setAutoEditStrategies(configuration.getAutoEditStrategies(this, t), t);
-			setTextDoubleClickStrategy(configuration.getDoubleClickStrategy(this, t), t);
-
-			int[] stateMasks = configuration.getConfiguredTextHoverStateMasks(this, t);
-			if (stateMasks != null) {
-				for (int j = 0; j < stateMasks.length; j++) {
-					int stateMask = stateMasks[j];
-					setTextHover(configuration.getTextHover(this, t, stateMask), t, stateMask);
-				}
-			}
-			else {
-				setTextHover(configuration.getTextHover(this, t), t, ITextViewerExtension2.DEFAULT_HOVER_STATE_MASK);
-			}
-
-			String[] prefixes = configuration.getIndentPrefixes(this, t);
-			if (prefixes != null && prefixes.length > 0)
-				setIndentPrefixes(prefixes, t);
-
-			prefixes = configuration.getDefaultPrefixes(this, t);
-			if (prefixes != null && prefixes.length > 0)
-				setDefaultPrefixes(prefixes, t);
-
-			// add highlighter/linestyleprovider
-			// BUG139753 - only create Highlighter if we have a valid document
-			if (configuration instanceof StructuredTextViewerConfiguration && getDocument() instanceof IStructuredDocument) {
-				LineStyleProvider[] providers = ((StructuredTextViewerConfiguration) configuration).getLineStyleProviders(this, t);
-				if (providers != null) {
-					for (int j = 0; j < providers.length; ++j) {
-						// delay creation of highlighter till
-						// linestyleprovider needs to be added
-						if (fHighlighter == null)
-							fHighlighter = new Highlighter();
-						fHighlighter.addProvider(t, providers[j]);
-					}
-				}
-			}
-		}
-
-		// initialize highlighter after linestyleproviders were added
-		if (fHighlighter != null) {
-			fHighlighter.setDocumentPartitioning(configuration.getConfiguredDocumentPartitioning(this));
-			fHighlighter.setDocument((IStructuredDocument) getDocument());
-			fHighlighter.install(this);
-		}
-
-		activatePlugins();
-
-		fConfiguration = configuration;
-	}
-
-	/**
-	 * @param document
-	 * @param startOffset
-	 * @param endOffset
-	 * @return
-	 */
-	private boolean containsReadOnly(IDocument document, int startOffset, int endOffset) {
-
-		int start = startOffset;
-		int end = endOffset;
-		IStructuredDocument structuredDocument = null;
-		if (document instanceof IStructuredDocument) {
-			structuredDocument = (IStructuredDocument) document;
-		}
-		else {
-			if (document instanceof ProjectionDocument) {
-				IDocument doc = ((ProjectionDocument) document).getMasterDocument();
-				if (doc instanceof IStructuredDocument) {
-					structuredDocument = (IStructuredDocument) doc;
-					int adjust = ((ProjectionDocument) document).getProjectionMapping().getCoverage().getOffset();
-					start = adjust + start;
-					end = adjust + end;
-				}
-			}
-		}
-		if (structuredDocument == null) {
-			return false;
-		}
-		else {
-			int length = end - start;
-			return structuredDocument.containsReadOnly(start, length);
-		}
-	}
-
-	protected IDocumentAdapter createDocumentAdapter() {
-
-		fDocAdapter = new StructuredDocumentToTextAdapter(getTextWidget());
-		return fDocAdapter;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextOperationTarget#doOperation(int)
-	 */
-	public void doOperation(int operation) {
-
-		Point selection = getTextWidget().getSelection();
-		int cursorPosition = selection.x;
-		int selectionLength = selection.y - selection.x;
-		switch (operation) {
-			case CUT :
-				beginRecording(TEXT_CUT, TEXT_CUT, cursorPosition, selectionLength);
-				super.doOperation(operation);
-				selection = getTextWidget().getSelection();
-				cursorPosition = selection.x;
-				selectionLength = selection.y - selection.x;
-				endRecording(cursorPosition, selectionLength);
-				break;
-			case PASTE :
-				beginRecording(TEXT_PASTE, TEXT_PASTE, cursorPosition, selectionLength);
-				super.doOperation(operation);
-				selection = getTextWidget().getSelection();
-				cursorPosition = selection.x;
-				selectionLength = selection.y - selection.x;
-				endRecording(cursorPosition, selectionLength);
-				break;
-			case CONTENTASSIST_PROPOSALS :
-				// maybe not configured?
-				if (fContentAssistant != null && isEditable()) {
-					// CMVC 263269
-					// need an explicit check here because the
-					// contentAssistAction is no longer being updated on
-					// cursor
-					// position
-					if (canDoOperation(CONTENTASSIST_PROPOSALS)) {
-						String err = fContentAssistant.showPossibleCompletions();
-						if (err != null) {
-							// don't wanna beep if there is no error
-							PlatformStatusLineUtil.displayErrorMessage(err);
-						}
-						PlatformStatusLineUtil.addOneTimeClearListener();
-					}
-					else
-						beep();
-				}
-				break;
-			case CONTENTASSIST_CONTEXT_INFORMATION :
-				if (fContentAssistant != null) {
-					String err = fContentAssistant.showContextInformation();
-					PlatformStatusLineUtil.displayErrorMessage(err);
-					PlatformStatusLineUtil.addOneTimeClearListener();
-					// setErrorMessage(err);
-					// new OneTimeListener(getTextWidget(), new
-					// ClearErrorMessage());
-				}
-				break;
-			case QUICK_FIX :
-				if (isEditable() && fCorrectionAssistant != null && fCorrectionAssistantInstalled) {
-					String msg = fCorrectionAssistant.showPossibleCompletions();
-					setErrorMessage(msg);
-				}
-				break;
-			case SHIFT_RIGHT :
-				beginRecording(TEXT_SHIFT_RIGHT, TEXT_SHIFT_RIGHT, cursorPosition, selectionLength);
-				updateIndentationPrefixes();
-				super.doOperation(SHIFT_RIGHT);
-				selection = getTextWidget().getSelection();
-				cursorPosition = selection.x;
-				selectionLength = selection.y - selection.x;
-				endRecording(cursorPosition, selectionLength);
-				break;
-			case SHIFT_LEFT :
-				beginRecording(TEXT_SHIFT_LEFT, TEXT_SHIFT_LEFT, cursorPosition, selectionLength);
-				updateIndentationPrefixes();
-				super.doOperation(SHIFT_LEFT);
-				selection = getTextWidget().getSelection();
-				cursorPosition = selection.x;
-				selectionLength = selection.y - selection.x;
-				endRecording(cursorPosition, selectionLength);
-				break;
-			case FORMAT_DOCUMENT :
-				try {
-					// begin recording
-					beginRecording(FORMAT_DOCUMENT_TEXT, FORMAT_DOCUMENT_TEXT, cursorPosition, selectionLength);
-
-					// format
-					IRegion region = getModelCoverage();
-					if (fContentFormatter instanceof IContentFormatterExtension) {
-						IContentFormatterExtension extension = (IContentFormatterExtension) fContentFormatter;
-						IFormattingContext context = new FormattingContext();
-						context.setProperty(FormattingContextProperties.CONTEXT_DOCUMENT, Boolean.TRUE);
-						context.setProperty(FormattingContextProperties.CONTEXT_REGION, region);
-						extension.format(getDocument(), context);
-					}
-					else {
-						fContentFormatter.format(getDocument(), region);
-					}
-				}
-				finally {
-					// end recording
-					selection = getTextWidget().getSelection();
-					cursorPosition = selection.x;
-					selectionLength = selection.y - selection.x;
-					endRecording(cursorPosition, selectionLength);
-				}
-				break;
-			case FORMAT_ACTIVE_ELEMENTS :
-				try {
-					// begin recording
-					beginRecording(FORMAT_ACTIVE_ELEMENTS_TEXT, FORMAT_ACTIVE_ELEMENTS_TEXT, cursorPosition, selectionLength);
-
-					// format
-					Point s = getSelectedRange();
-					IRegion region = new Region(s.x, s.y);
-					fContentFormatter.format(getDocument(), region);
-				}
-				finally {
-					// end recording
-					selection = getTextWidget().getSelection();
-					cursorPosition = selection.x;
-					selectionLength = selection.y - selection.x;
-					endRecording(cursorPosition, selectionLength);
-				}
-				break;
-			default :
-				super.doOperation(operation);
-		}
-	}
-
-	private void endRecording(int cursorPosition, int selectionLength) {
-		IDocument doc = getDocument();
-		if (doc instanceof IStructuredDocument) {
-			IStructuredDocument structuredDocument = (IStructuredDocument) doc;
-			IStructuredTextUndoManager undoManager = structuredDocument.getUndoManager();
-			undoManager.endRecording(this, cursorPosition, selectionLength);
-		}
-		else {
-			// TODO: how to handle other document types?
-		}
-	}
-
-	private void beginRecording(String label, String description, int cursorPosition, int selectionLength) {
-		IDocument doc = getDocument();
-		if (doc instanceof IStructuredDocument) {
-			IStructuredDocument structuredDocument = (IStructuredDocument) doc;
-			IStructuredTextUndoManager undoManager = structuredDocument.getUndoManager();
-			undoManager.beginRecording(this, label, description, cursorPosition, selectionLength);
-		}
-		else {
-			// TODO: how to handle other document types?
-		}
-	}
-
-	public void endBackgroundUpdate() {
-		fBackgroundupdateInProgress = false;
-		setRedraw(true);
-	}
-
-	protected void handleDispose() {
-		Logger.trace("Source Editor", "StructuredTextViewer::handleDispose entry"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		// before we dispose, we set a special "empty" selection, to prevent
-		// the "leak one document" that
-		// otherwise occurs when editor closed (since last selection stays in
-		// SelectedResourceManager.
-		// the occurance of the "leak" isn't so bad, but makes debugging other
-		// leaks very hard.
-		setSelection(TextSelection.emptySelection());
-
-		if (fHighlighter != null) {
-			fHighlighter.uninstall();
-			fHighlighter = null;
-		}
-		super.handleDispose();
-
-		Logger.trace("Source Editor", "StructuredTextViewer::handleDispose exit"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/*
-	 * Overridden for special support of background update and read-only
-	 * regions
-	 */
-	protected void handleVerifyEvent(VerifyEvent e) {
-		IRegion modelRange = event2ModelRange(e);
-		if (exposeModelRange(modelRange)) {
-			e.doit = false;
-			return;
-		}
-
-		if (fEventConsumer != null) {
-			fEventConsumer.processEvent(e);
-			if (!e.doit)
-				return;
-		}
-		if (fBackgroundupdateInProgress) {
-			e.doit = false;
-			beep();
-			return;
-		}
-		// for read-only support
-		if (containsReadOnly(getVisibleDocument(), e.start, e.end)) {
-			e.doit = false;
-			beep();
-			return;
-		}
-
-		try {
-			super.handleVerifyEvent(e);
-		}
-		catch (Exception x) {
-			// note, we catch and log any exception,
-			// since an otherwise can actually prevent typing!
-			// see https://bugs.eclipse.org/bugs/show_bug.cgi?id=111318
-
-			if (TRACE_EXCEPTIONS)
-				Logger.logException("StructuredTextViewer.exception.verifyText", x); //$NON-NLS-1$
-
-		}
-	}
-
-	public int modelLine2WidgetLine(int modelLine) {
-		/**
-		 * need to override this method as a workaround for Bug 85709
-		 */
-		if (fInformationMapping == null) {
-			IDocument document = getDocument();
-			if (document != null) {
-				try {
-					IRegion modelLineRegion = getDocument().getLineInformation(modelLine);
-					IRegion region = getModelCoverage();
-					if (modelLineRegion != null && region != null) {
-						int modelEnd = modelLineRegion.getOffset() + modelLineRegion.getLength();
-						int regionEnd = region.getOffset() + region.getLength();
-						// returns -1 if modelLine is invalid
-						if ((modelLineRegion.getOffset() < region.getOffset()) || (modelEnd > regionEnd))
-							return -1;
-					}
-				}
-				catch (BadLocationException e) {
-					// returns -1 if modelLine is invalid
-					return -1;
-				}
-			}
-		}
-		return super.modelLine2WidgetLine(modelLine);
-	}
-
-	public int modelOffset2WidgetOffset(int modelOffset) {
-		/**
-		 * need to override this method as a workaround for Bug 85709
-		 */
-		if (fInformationMapping == null) {
-			IRegion region = getModelCoverage();
-			if (region != null) {
-				// returns -1 if modelOffset is invalid
-				if (modelOffset < region.getOffset() || modelOffset > (region.getOffset() + region.getLength()))
-					return -1;
-			}
-		}
-		return super.modelOffset2WidgetOffset(modelOffset);
-	}
-
-	public IRegion modelRange2WidgetRange(IRegion modelRange) {
-		// need to override this method as workaround for Bug85709
-		if (fInformationMapping == null) {
-			IRegion region = getModelCoverage();
-			if (region != null && modelRange != null) {
-				int modelEnd = modelRange.getOffset() + modelRange.getLength();
-				int regionEnd = region.getOffset() + region.getLength();
-				// returns null if modelRange is invalid
-				if ((modelRange.getOffset() < region.getOffset()) || (modelEnd > regionEnd))
-					return null;
-			}
-		}
-		return super.modelRange2WidgetRange(modelRange);
-	}
-
-	/**
-	 * Sets the correction assistant for the viewer. This method is temporary
-	 * workaround until the base adds a generic way to add
-	 * quickfix/quickassist.
-	 * 
-	 * @param correctionAssistant
-	 */
-	public void setCorrectionAssistant(IContentAssistant correctionAssistant) {
-		// correction assistant
-		if (fCorrectionAssistant != null)
-			fCorrectionAssistant.uninstall();
-		fCorrectionAssistant = correctionAssistant;
-		if (fCorrectionAssistant != null) {
-			// configuration
-			if (fCorrectionAssistant instanceof ContentAssistant) {
-				((ContentAssistant) fCorrectionAssistant).setDocumentPartitioning(getDocumentPartitioning());
-			}
-
-			fCorrectionAssistant.install(this);
-			fCorrectionAssistantInstalled = true;
-		}
-		else {
-			// disable the correction assist operation if no correction
-			// assistant
-			enableOperation(QUICK_FIX, false);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.ISourceViewer#setDocument(org.eclipse.jface.text.IDocument,
-	 *      org.eclipse.jface.text.source.IAnnotationModel, int, int)
-	 */
-	public void setDocument(IDocument document, IAnnotationModel annotationModel, int modelRangeOffset, int modelRangeLength) {
-		// partial fix for:
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=1970
-		// when our document is set, especially to null during close,
-		// immediately uninstall the reconciler.
-		// this is to avoid an unnecessary final "reconcile"
-		// that blocks display thread
-		if (document == null) {
-			if (fReconciler != null) {
-				fReconciler.uninstall();
-			}
-		}
-
-		super.setDocument(document, annotationModel, modelRangeOffset, modelRangeLength);
-
-		if (document instanceof IStructuredDocument) {
-			IStructuredDocument structuredDocument = (IStructuredDocument) document;
-
-			// notify highlighter
-			updateHighlighter(structuredDocument);
-
-			// set document in the viewer-based undo manager
-			if (fUndoManager != null) {
-				fUndoManager.disconnect();
-				fUndoManager.connect(this);
-			}
-			// CaretEvent is not sent to ViewerSelectionManager after Save As.
-			// Need to notify ViewerSelectionManager here.
-			// notifyViewerSelectionManager(getSelectedRange().x,
-			// getSelectedRange().y);
-		}
-	}
-
-	/**
-	 * Use the active editor to set a status line message
-	 * 
-	 * @param msg
-	 */
-	private void setErrorMessage(String msg) {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				IEditorPart editor = page.getActiveEditor();
-				if (editor != null) {
-					IEditorStatusLine statusLine = (IEditorStatusLine) editor.getAdapter(IEditorStatusLine.class);
-					if (statusLine != null)
-						statusLine.setMessage(true, msg, null);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Uninstalls anything that was installed by configure
-	 */
-	public void unconfigure() {
-		Logger.trace("Source Editor", "StructuredTextViewer::unconfigure entry"); //$NON-NLS-1$ //$NON-NLS-2$
-		if (fHighlighter != null) {
-			fHighlighter.uninstall();
-			fHighlighter = null;
-		}
-		if (fCorrectionAssistant != null) {
-			fCorrectionAssistant.uninstall();
-		}
-
-		if (fAnnotationHover instanceof StructuredTextAnnotationHover) {
-			((StructuredTextAnnotationHover) fAnnotationHover).release();
-		}
-
-		if (fOverviewRulerAnnotationHover instanceof StructuredTextAnnotationHover) {
-			((StructuredTextAnnotationHover) fOverviewRulerAnnotationHover).release();
-		}
-
-		// doesn't seem to be handled elsewhere, so we'll be sure error
-		// messages's are cleared.
-		setErrorMessage(null);
-
-		super.unconfigure();
-		fConfiguration = null;
-		Logger.trace("Source Editor", "StructuredTextViewer::unconfigure exit"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.undo.IDocumentSelectionMediator#undoOperationSelectionChanged(org.eclipse.wst.sse.core.undo.UndoDocumentEvent)
-	 */
-	public void undoOperationSelectionChanged(UndoDocumentEvent event) {
-		if (event.getRequester() != null && event.getRequester().equals(this) && event.getDocument().equals(getDocument())) {
-			// BUG107687: Undo/redo do not scroll editor
-			ITextSelection selection = new TextSelection(event.getOffset(), event.getLength());
-			setSelection(selection, true);
-		}
-	}
-
-	private void updateHighlighter(IStructuredDocument document) {
-		// if highlighter has not been created yet, initialize and install it
-		if (fHighlighter == null && fConfiguration instanceof StructuredTextViewerConfiguration) {
-			String[] types = fConfiguration.getConfiguredContentTypes(this);
-			for (int i = 0; i < types.length; i++) {
-				String t = types[i];
-
-				// add highlighter/linestyleprovider
-				LineStyleProvider[] providers = ((StructuredTextViewerConfiguration) fConfiguration).getLineStyleProviders(this, t);
-				if (providers != null) {
-					for (int j = 0; j < providers.length; ++j) {
-						// delay creation of highlighter till
-						// linestyleprovider needs to be added
-						// do not create highlighter if no valid document
-						if (fHighlighter == null)
-							fHighlighter = new Highlighter();
-						fHighlighter.addProvider(t, providers[j]);
-					}
-				}
-			}
-
-			// initialize highlighter after linestyleproviders were added
-			if (fHighlighter != null) {
-				fHighlighter.setDocumentPartitioning(fConfiguration.getConfiguredDocumentPartitioning(this));
-				fHighlighter.install(this);
-			}
-		}
-		if (fHighlighter != null)
-			fHighlighter.setDocument(document);
-	}
-
-	/**
-	 * Make sure indentation is correct before using.
-	 */
-	private void updateIndentationPrefixes() {
-		SourceViewerConfiguration configuration = fConfiguration;
-		if (fConfiguration != null) {
-			String[] types = configuration.getConfiguredContentTypes(this);
-			for (int i = 0; i < types.length; i++) {
-				String[] prefixes = configuration.getIndentPrefixes(this, types[i]);
-				if (prefixes != null && prefixes.length > 0)
-					setIndentPrefixes(prefixes, types[i]);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/TextDropAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/TextDropAction.java
deleted file mode 100644
index 27d196e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/TextDropAction.java
+++ /dev/null
@@ -1,27 +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.wst.sse.ui.internal;
-
-
-
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.ui.IEditorPart;
-
-/**
- * TextDropAction
- */
-public class TextDropAction extends AbstractDropAction {
-	public boolean run(DropTargetEvent event, IEditorPart targetEditor) {
-		return insert((String) event.data, targetEditor);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/TransferBuilder.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/TransferBuilder.java
deleted file mode 100644
index 4d089d8..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/TransferBuilder.java
+++ /dev/null
@@ -1,662 +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.wst.sse.ui.internal;
-
-
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.dnd.TransferData;
-import org.eclipse.wst.sse.ui.internal.extension.DropActionProxy;
-import org.eclipse.wst.sse.ui.internal.extension.RegistryReader;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Builds drop target transfers, drag source transfers, and drop actions
- */
-public class TransferBuilder extends RegistryReader {
-
-	public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-	public static final String ATT_ID = "id"; //$NON-NLS-1$
-	public static final String ATT_METHOD = "method"; //$NON-NLS-1$
-	public static final String ATT_PRIORITY = "priority"; //$NON-NLS-1$
-	public static final String ATT_SINGLETON = "singleton"; //$NON-NLS-1$
-	public static final String ATT_TARGET_ID = "targetID"; //$NON-NLS-1$
-	public static final String ATT_TRANSFER_ID = "transferID"; //$NON-NLS-1$
-
-	private final static boolean debugTime = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/transferbuilder/time")); //$NON-NLS-1$  //$NON-NLS-2$
-
-	public static final String PL_DRAG_SOURCE_TRANSFERS = "dragSourceTransfers"; //$NON-NLS-1$
-	public static final String PL_DROP_TARGET_TRANSFERS = "dropTargetTransfers"; //$NON-NLS-1$
-
-	public static final String PLUGIN_ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-
-	public static final String[] PRIORITIES = {"highest", "high", "mid", "low", "lowest"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-
-	public static final String TAG_DRAG_SOURCE_CONTRIBUTION = "dragSourceContribution"; //$NON-NLS-1$
-	public static final String TAG_DROP_ACTION = "dropAction"; //$NON-NLS-1$
-	public static final String TAG_DROP_TARGET_CONTRIBUTION = "dropTargetContribution"; //$NON-NLS-1$
-
-	public static final String TAG_TRANSFER = "transfer"; //$NON-NLS-1$
-
-	public static final String TRUE = "true"; //$NON-NLS-1$
-
-	private boolean useProxy;
-
-	class TransferProxyForDelayLoading extends Transfer {
-	    private IConfigurationElement element;
-	    private String classAttribute;
-	    private Transfer proxy;
-        private Method getTypeIdsMethod, getTypeNamesMethod, javaToNativeMethod, nativeToJavaMethod;
-
-	    TransferProxyForDelayLoading() {
-	        super();
-	    }
-
-	    TransferProxyForDelayLoading(IConfigurationElement elm, String clsAttr) {
-	        super();
-	        this.element = elm;
-	        this.classAttribute = clsAttr;
-	    }
-	    
-	    private Transfer newInstance() {
-	        if ((element != null) && (classAttribute != null)) {
-		        Object o = createExtension(element, classAttribute);
-		        if (o instanceof Transfer) {
-		            element = null;
-		            classAttribute = null;
-		            return (Transfer)o;
-		        }
-	        }
-	        return null;
-	    }
-
-	    public TransferData[] getSupportedTypes() {
-	        if (proxy == null) {
-	            proxy = newInstance();
-	        }
-	        if (proxy != null) {
-	            return proxy.getSupportedTypes();
-	        }
-	        return new TransferData[0];
-        }
-        protected int[] getTypeIds() {
-	        if (proxy == null) {
-	            proxy = newInstance();
-	        }
-	        if (proxy != null) {
-                if (getTypeIdsMethod == null) {
-    	            Class runtimeClass = proxy.getClass();
-                    NoSuchMethodException e = null;
-                    while (runtimeClass != null) {
-        	            try {
-        	                getTypeIdsMethod = runtimeClass.getDeclaredMethod("getTypeIds", new Class[0]);//$NON-NLS-1$
-                            getTypeIdsMethod.setAccessible(true);
-                            break;
-        	            } catch (NoSuchMethodException e1) {
-                            e = e1;
-                            runtimeClass = runtimeClass.getSuperclass();
-        	            } catch (SecurityException e2) {
-                            runtimeClass = runtimeClass.getSuperclass();
-        	            }
-                    }
-                    if ((getTypeIdsMethod == null) && (e != null)) {
-                        Logger.logException(e);
-                    }
-                }
-                if (getTypeIdsMethod != null) {
-                    try {
-                         // changed Integer[] return type to int[]
-                        int[] r = (int[])getTypeIdsMethod.invoke(proxy, new Object[0]);
-                        if ((r != null) && (r.length > 0)) {
-                            int[] ret = new int[r.length];
-                            for(int i = 0; i < r.length; i++) {
-                                ret[i] = r[i];
-                            }
-                            return ret;
-                        }
-                    } catch (IllegalAccessException e2) {
-                        Logger.logException(e2);
-                    } catch (InvocationTargetException e3) {
-                        Logger.logException(e3);
-                    }
-                }
-	        }
-            return new int[0];
-        }
-        protected String[] getTypeNames() {
-	        if (proxy == null) {
-	            proxy = newInstance();
-	        }
-	        if (proxy != null) {
-                if (getTypeNamesMethod == null) {
-    	            Class runtimeClass = proxy.getClass();
-                    NoSuchMethodException e = null;
-                    while (runtimeClass != null) {
-        	            try {
-        	                getTypeNamesMethod = runtimeClass.getDeclaredMethod("getTypeNames", new Class[0]);//$NON-NLS-1$
-                            getTypeNamesMethod.setAccessible(true);
-                            break;
-        	            } catch (NoSuchMethodException e1) {
-                            e = e1;
-                            runtimeClass = runtimeClass.getSuperclass();
-        	            } catch (SecurityException e2) {
-                            runtimeClass = runtimeClass.getSuperclass();
-        	            }
-                    }
-                    if ((getTypeNamesMethod == null) && (e != null)) {
-                        Logger.logException(e);
-                    }
-                }
-                if (getTypeNamesMethod != null) {
-                    try {
-                        return (String[])getTypeNamesMethod.invoke(proxy, new Object[0]);
-                    } catch (IllegalAccessException e2) {
-                        Logger.logException(e2);
-                    } catch (InvocationTargetException e3) {
-                        Logger.logException(e3);
-                    }
-                }
-	        }
-            return new String[0];
-        }
-        public boolean isSupportedType(TransferData transferData) {
-	        if (proxy == null) {
-	            proxy = newInstance();
-	        }
-	        if (proxy != null) {
-	            return proxy.isSupportedType(transferData);
-	        }
-            return false;
-        }
-        protected void javaToNative(Object object, TransferData transferData) {
-	        if (proxy == null) {
-	            proxy = newInstance();
-	        }
-	        if (proxy != null) {
-                if (javaToNativeMethod == null) {
-                    Class runtimeClass = proxy.getClass();
-                    NoSuchMethodException e = null;
-                    while (runtimeClass != null) {
-        	            try {
-        	                javaToNativeMethod = runtimeClass.getDeclaredMethod("javaToNative", new Class[]{object.getClass(), transferData.getClass()});//$NON-NLS-1$
-        	                javaToNativeMethod.setAccessible(true);
-                            break;
-        	            } catch (NoSuchMethodException e1) {
-                            e = e1;
-                            runtimeClass = runtimeClass.getSuperclass();
-        	            } catch (SecurityException e2) {
-                            runtimeClass = runtimeClass.getSuperclass();
-        	            }
-                    }
-                    if ((javaToNativeMethod == null) && (e != null)) {
-                        Logger.logException(e);
-                    }
-                }
-                if (javaToNativeMethod != null) {
-                    try {
-                        javaToNativeMethod.invoke(proxy, new Object[]{object, transferData});
-                    } catch (IllegalAccessException e2) {
-                        Logger.logException(e2);
-                    } catch (InvocationTargetException e3) {
-                        Logger.logException(e3);
-                    }
-                }
-	        }
-        }
-        protected Object nativeToJava(TransferData transferData) {
-	        if (proxy == null) {
-	            proxy = newInstance();
-	        }
-	        if (proxy != null) {
-                if (nativeToJavaMethod == null) {
-                    Class runtimeClass = proxy.getClass();
-                    NoSuchMethodException e = null;
-                    while (runtimeClass != null) {
-                        try {
-                            nativeToJavaMethod = runtimeClass.getDeclaredMethod("nativeToJava", new Class[]{transferData.getClass()});//$NON-NLS-1$
-                            nativeToJavaMethod.setAccessible(true);
-                            break;
-                        } catch (NoSuchMethodException e1) {
-                            e = e1;
-                            runtimeClass = runtimeClass.getSuperclass();
-        	            } catch (SecurityException e2) {
-                            runtimeClass = runtimeClass.getSuperclass();
-        	            }
-                    }
-                    if ((nativeToJavaMethod == null) && (e != null)) {
-                        Logger.logException(e);
-                    }
-                }
-                if (nativeToJavaMethod != null) {
-                    try {
-    	                return nativeToJavaMethod.invoke(proxy, new Object[]{transferData});
-    	            } catch (IllegalAccessException e2) {
-                   		Logger.logException(e2);
-    	            } catch (InvocationTargetException e3) {
-                   		Logger.logException(e3);
-    	            }
-                }
-	        }
-            return new Object();
-        }
-        Transfer getTransferClass() {
-	        if (proxy == null) {
-	            proxy = newInstance();
-	        }
-	        return proxy;
-        }
-	}
-	/**
-	 * @param element
-	 * @param classAttribute
-	 * @return Object
-	 * @throws CoreException
-	 */
-	static Object createExecutableExtension(final IConfigurationElement element, final String classAttribute) throws CoreException {
-
-		Object obj = null;
-
-		String singleton = element.getAttribute(ATT_SINGLETON);
-		String method = element.getAttribute(ATT_METHOD);
-		if (TRUE.equalsIgnoreCase(singleton) && method != null) {
-			try {
-				String name = element.getAttribute(ATT_CLASS);
-				String pluginId = element.getDeclaringExtension().getNamespace();
-				Class cls = Platform.getBundle(pluginId).loadClass(name);
-				Method mtd = cls.getMethod(method, new Class[]{});
-
-				obj = mtd.invoke(null, null);
-			} catch (ClassNotFoundException e) {
-				obj = null;
-			} catch (NoSuchMethodException e) {
-				obj = null;
-			} catch (IllegalAccessException e) {
-				obj = null;
-			} catch (InvocationTargetException e) {
-				obj = null;
-			}
-		} else {
-			obj = element.createExecutableExtension(classAttribute);
-		}
-
-		return obj;
-	}
-
-	/**
-	 * Creates an extension. If the extension plugin has not been loaded a
-	 * busy cursor will be activated during the duration of the load.
-	 * 
-	 * @param element
-	 * @param classAttribute
-	 * @return Object
-	 * @throws CoreException
-	 */
-	public static Object createExtension(final IConfigurationElement element, final String classAttribute) {
-		// If plugin has been loaded create extension.
-		// Otherwise, show busy cursor then create extension.
-		final Object[] result = new Object[1];
-		String pluginId = element.getDeclaringExtension().getNamespace();
-		Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle.getState() == Bundle.ACTIVE) {
-			try {
-				return createExecutableExtension(element, classAttribute);
-			} catch (CoreException e) {
-				handleCreateExecutableException(result, e);
-			}
-		} else {
-			BusyIndicator.showWhile(null, new Runnable() {
-				public void run() {
-					try {
-						result[0] = createExecutableExtension(element, classAttribute);
-					} catch (Exception e) {
-						handleCreateExecutableException(result, e);
-					}
-				}
-			});
-		}
-		return result[0];
-	}
-
-	/**
-	 * @param result
-	 * @param e
-	 */
-	protected static void handleCreateExecutableException(Object[] result, Throwable e) {
-		Logger.logException(e);
-		result[0] = null;
-
-	}
-
-	protected List cache;
-	protected String targetContributionTag;
-
-	protected List targetIDs;
-
-	/**
-	 * @param element
-	 * @return IDropAction
-	 */
-	protected IDropAction createDropAction(IConfigurationElement element) {
-		Object obj = null;
-		obj = createExtension(element, ATT_CLASS);
-		if (obj == null)
-			return null;
-		return (obj instanceof IDropAction) ? (IDropAction) DropActionProxy.newInstance(obj) : null;
-	}
-
-	/**
-	 * @param transferId
-	 * @return IDropAction[]
-	 */
-	protected IDropAction[] createDropActions(String transferId) {
-		if (cache == null)
-			return new IDropAction[0];
-
-		final int num = cache.size();
-		if (num == 0)
-			return new IDropAction[0];
-
-		IDropAction[] as = new IDropAction[num];
-		int j = 0;
-		for (int p = 0; p < PRIORITIES.length; p++) {
-			for (int i = 0; i < num; i++) {
-				Object obj = cache.get(i);
-				if (!(obj instanceof IConfigurationElement))
-					continue;
-
-				IConfigurationElement element = (IConfigurationElement) obj;
-				if (!(TAG_DROP_ACTION.equals(element.getName())) || !(transferId.equals(element.getAttribute(ATT_TRANSFER_ID))))
-					continue;
-
-				if (PRIORITIES[p].equals(element.getAttribute(ATT_PRIORITY)) || (p == 2 && element.getAttribute(ATT_PRIORITY) == null)) {
-					IDropAction a = createDropAction(element);
-					if (a != null) {
-						as[j] = a;
-						j++;
-					}
-				}
-			}
-		}
-
-		if (num == j)
-			return as;
-
-		IDropAction[] as2 = new IDropAction[j];
-		for (int i = 0; i < j; i++) {
-			as2[i] = as[i];
-		}
-
-		return as2;
-	}
-
-	/**
-	 * @param element
-	 * @return Transfer
-	 */
-	protected Transfer createTransfer(IConfigurationElement element) {
-	    Object obj = null;
-	    if (useProxy) {
-	        obj = new TransferProxyForDelayLoading(element, ATT_CLASS);
-	    } else {
-	        obj = createExtension(element, ATT_CLASS);
-	    }
-		if (obj == null)
-			return null;
-		return (obj instanceof Transfer) ? (Transfer) obj : null;
-	}
-
-	/**
-	 * @return Transfer[]
-	 */
-	protected Transfer[] createTransfers() {
-		if (cache == null)
-			return new Transfer[0];
-
-		final int num = cache.size();
-		if (num == 0)
-			return new Transfer[0];
-
-		Transfer[] ts = new Transfer[num];
-		int j = 0;
-		for (int p = 0; p < PRIORITIES.length; p++) {
-			for (int i = 0; i < num; i++) {
-				Object obj = cache.get(i);
-				if (!(obj instanceof IConfigurationElement))
-					continue;
-
-				IConfigurationElement element = (IConfigurationElement) obj;
-				if (!TAG_TRANSFER.equals(element.getName()))
-					continue;
-
-				if (PRIORITIES[p].equals(element.getAttribute(ATT_PRIORITY)) || (p == 2 && element.getAttribute(ATT_PRIORITY) == null)) {
-					Transfer t = createTransfer(element);
-					if (t != null) {
-						ts[j] = t;
-						j++;
-					}
-				}
-			}
-		}
-
-		if (num == j)
-			return ts;
-
-		Transfer[] ts2 = new Transfer[j];
-		for (int i = 0; i < j; i++) {
-			ts2[i] = ts[i];
-		}
-
-		return ts2;
-	}
-
-	/**
-	 * @param editorId
-	 * @return Transfer[]
-	 */
-	public Transfer[] getDragSourceTransfers(String editorId) {
-		return getDragSourceTransfers(new String[]{editorId});
-	}
-
-	/**
-	 * @param editorIds
-	 * @return Transfer[]
-	 */
-	public Transfer[] getDragSourceTransfers(String[] editorIds) {
-		long time0 = System.currentTimeMillis();
-		readContributions(editorIds, TAG_DRAG_SOURCE_CONTRIBUTION, PL_DRAG_SOURCE_TRANSFERS);
-		Transfer[] transfers = createTransfers();
-		if (debugTime)
-			System.out.println(getClass().getName() + "#getDragSourceTransfers(" + editorIds + "): " + transfers.length + " transfers created in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		return transfers;
-	}
-
-	/**
-	 * @deprecated use getDropActions(String editorId, Transfer transfer) for the performance
-	 * @param editorId
-	 * @param className
-	 * @return IDropAction[]
-	 */
-	public IDropAction[] getDropActions(String editorId, String transferClassName) {
-		return getDropActions(new String[]{editorId}, transferClassName);
-	}
-	
-	/**
-	 * @param editorId
-	 * @param class
-	 * @return IDropAction[]
-	 */
-	public IDropAction[] getDropActions(String editorId, Transfer transfer) {
-		return getDropActions(new String[]{editorId}, transfer);
-	}
-	/**
-	 * @deprecated use getDropActions(String[] editorIds, Transfer transfer) for the performance
-	 * @param editorId
-	 * @param className
-	 * @return IDropAction[]
-	 */
-	public IDropAction[] getDropActions(String[] editorIds, String transferClassName) {
-		long time0 = System.currentTimeMillis();
-		readContributions(editorIds, TAG_DROP_TARGET_CONTRIBUTION, PL_DROP_TARGET_TRANSFERS);
-		String transferId = getTransferIdOfClassName(transferClassName);
-		IDropAction[] actions = createDropActions(transferId);
-		if (debugTime)
-			System.out.println(getClass().getName() + "#getDropActions(" + editorIds + "): " + actions.length + " drop actions created in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		return actions;
-	}
-
-	/**
-	 * @param editorId
-	 * @param class
-	 * @return IDropAction[]
-	 */
-	public IDropAction[] getDropActions(String[] editorIds, Transfer transfer) {
-	    String transferClassName;
-	    if (transfer instanceof TransferProxyForDelayLoading) {
-	        transferClassName = ((TransferProxyForDelayLoading)transfer).getTransferClass().getClass().getName();
-	    } else {
-	        transferClassName = transfer.getClass().getName();
-	    }
-	    return getDropActions(editorIds, transferClassName);
-	}
-	/**
-	 * @param editorId
-	 * @return Transfer[]
-	 */
-	public Transfer[] getDropTargetTransfers(String editorId) {
-		return getDropTargetTransfers(new String[]{editorId});
-	}
-
-	/**
-	 * @param editorIds
-	 * @return Transfer[]
-	 */
-	public Transfer[] getDropTargetTransfers(String[] editorIds) {
-		long time0 = System.currentTimeMillis();
-		readContributions(editorIds, TAG_DROP_TARGET_CONTRIBUTION, PL_DROP_TARGET_TRANSFERS);
-		Transfer[] transfers = createTransfers();
-		if (debugTime) {
-			String idlist = ""; //$NON-NLS-1$
-			if (editorIds.length > 0) {
-				for (int i = 0; i < editorIds.length; i++) {
-					idlist += editorIds[i];
-					if (i < editorIds.length - 1)
-						idlist += ","; //$NON-NLS-1$
-				}
-			}
-			System.out.println(getClass().getName() + "#getDropTargetTransfers(" + idlist + "): " + transfers.length + " transfers created in " + (System.currentTimeMillis() - time0) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-		}
-		return transfers;
-	}
-
-	/**
-	 * Returns the name of the part ID attribute that is expected in the
-	 * target extension.
-	 * 
-	 * @param element
-	 * @return String
-	 */
-	protected String getTargetID(IConfigurationElement element) {
-		String value = element.getAttribute(ATT_TARGET_ID);
-		return value != null ? value : "???"; //$NON-NLS-1$
-	}
-
-	/**
-	 * @param className
-	 * @return String
-	 */
-	private String getTransferIdOfClassName(String className) {
-		String id = ""; //$NON-NLS-1$
-		final int num = cache.size();
-		if (className == null || cache == null || num == 0)
-			return id;
-
-		for (int i = 0; i < num; i++) {
-			Object obj = cache.get(i);
-			if (obj instanceof IConfigurationElement) {
-				IConfigurationElement element = (IConfigurationElement) obj;
-				if (className.equals(element.getAttribute(ATT_CLASS))) {
-					id = element.getAttribute(ATT_ID);
-					break;
-				}
-			}
-		}
-
-		return (id.length() != 0 ? id : className);
-	}
-
-	/**
-	 * Reads the contributions from the registry for the provided workbench
-	 * part and the provided extension point ID.
-	 * 
-	 * @param id
-	 * @param tag
-	 * @param extensionPoint
-	 */
-	protected void readContributions(String[] ids, String tag, String extensionPoint) {
-		cache = null;
-		targetIDs = Arrays.asList(ids);
-		targetContributionTag = tag;
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		readRegistry(registry, PLUGIN_ID, extensionPoint);
-	}
-
-	protected boolean readElement(IConfigurationElement element) {
-		String tag = element.getName();
-		if (tag.equals(targetContributionTag)) {
-			String id = getTargetID(element);
-			if (id == null || !targetIDs.contains(id)) {
-				// This is not of interest to us - don't go deeper
-				return true;
-			}
-		} else if (tag.equals(TAG_TRANSFER)) {
-			if (cache == null)
-				cache = new ArrayList();
-			cache.add(element);
-			return true; // just cache the element - don't go into it
-		} else if (tag.equals(TAG_DROP_ACTION)) {
-			if (cache == null)
-				cache = new ArrayList();
-			//cache.add(createActionDescriptor(element));
-			cache.add(element);
-			return true; // just cache the action - don't go into
-		} else {
-			return false;
-		}
-
-		readElementChildren(element);
-		return true;
-	}
-	/**
-	 * @deprecated - use TransferBuilder(boolean useProxy) for the performance
-	 */
-	public TransferBuilder() {
-        this(false);
-    }
-
-    public TransferBuilder(boolean useProxy) {
-        super();
-        this.useProxy = useProxy;
-    }
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/UnknownContentTypeDialog.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/UnknownContentTypeDialog.java
deleted file mode 100644
index 9bd2f89..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/UnknownContentTypeDialog.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package org.eclipse.wst.sse.ui.internal;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialogWithToggle;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.PreferencesUtil;
-
-/**
- * Message dialog informing user that an editor was open on unsupported
- * content type
- */
-public class UnknownContentTypeDialog extends MessageDialogWithToggle {
-
-	public UnknownContentTypeDialog(Shell parent, IPreferenceStore store, String key) {
-		// set message to null in super so that message does not appear twice
-		super(parent, SSEUIMessages.UnknownContentTypeDialog_0, null, null, INFORMATION, new String[]{IDialogConstants.OK_LABEL}, 0, SSEUIMessages.UnknownContentTypeDialog_1, false);
-		setPrefStore(store);
-		setPrefKey(key);
-	}
-
-	protected void buttonPressed(int buttonId) {
-		super.buttonPressed(buttonId);
-
-		// overwritten so that value stored is boolean, not string
-		if (buttonId != IDialogConstants.CANCEL_ID && getToggleState() && getPrefStore() != null && getPrefKey() != null) {
-			switch (buttonId) {
-				case IDialogConstants.YES_ID :
-				case IDialogConstants.YES_TO_ALL_ID :
-				case IDialogConstants.PROCEED_ID :
-				case IDialogConstants.OK_ID :
-					getPrefStore().setValue(getPrefKey(), false);
-					break;
-				case IDialogConstants.NO_ID :
-				case IDialogConstants.NO_TO_ALL_ID :
-					getPrefStore().setValue(getPrefKey(), true);
-					break;
-			}
-		}
-
-	}
-
-	protected Control createMessageArea(Composite composite) {
-		super.createMessageArea(composite);
-		Link messageLink = new Link(composite, SWT.NONE);
-		messageLink.setText(SSEUIMessages.UnknownContentTypeDialog_2);
-		messageLink.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				linkClicked();
-			}
-		});
-		return composite;
-	}
-
-	private void linkClicked() {
-		String pageId = "org.eclipse.ui.preferencePages.ContentTypes"; //$NON-NLS-1$
-		PreferenceDialog dialog = PreferencesUtil.createPreferenceDialogOn(getShell(), pageId, new String[]{pageId}, null);
-		dialog.open();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActionContributor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActionContributor.java
deleted file mode 100644
index b34e301..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActionContributor.java
+++ /dev/null
@@ -1,377 +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.wst.sse.ui.internal.actions;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.editors.text.TextEditorActionContributor;
-import org.eclipse.ui.ide.IDEActionFactory;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
-import org.eclipse.ui.texteditor.ITextEditorExtension;
-import org.eclipse.ui.texteditor.RetargetTextEditorAction;
-import org.eclipse.wst.sse.ui.internal.ExtendedEditorActionBuilder;
-import org.eclipse.wst.sse.ui.internal.GotoAnnotationAction;
-import org.eclipse.wst.sse.ui.internal.IExtendedContributor;
-import org.eclipse.wst.sse.ui.internal.ISourceViewerActionBarContributor;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.ui.OffsetStatusLineContributionItem;
-
-/**
- * This class should not be used inside multi page editor's
- * ActionBarContributor, since cascaded init() call from the
- * ActionBarContributor will causes exception and it leads to lose whole
- * toolbars.
- * 
- * Instead, use SourcePageActionContributor for source page contributor of
- * multi page editor.
- * 
- * Note that this class is still valid for single page editor
- */
-public class ActionContributor extends TextEditorActionContributor implements ISourceViewerActionBarContributor, IExtendedContributor {
-
-	public static final boolean _showDebugStatus = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/actioncontributor/debugstatusfields")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private static final String[] EDITOR_IDS = {"org.eclipse.wst.sse.ui.StructuredTextEditor"}; //$NON-NLS-1$
-
-	protected IExtendedContributor extendedContributor;
-	protected RetargetTextEditorAction fAddBlockComment = null;
-
-	protected Separator fCommandsSeparator = null;
-
-	private OffsetStatusLineContributionItem fDebugStatusOffset = null;
-	protected MenuManager fExpandSelectionToMenu = null;
-	protected GroupMarker fMenuAdditionsGroupMarker = null;
-	protected GotoAnnotationAction fNextAnnotation = null;
-
-	protected GotoAnnotationAction fPreviousAnnotation = null;
-	protected RetargetTextEditorAction fRemoveBlockComment = null;
-	protected RetargetTextEditorAction fShiftLeft = null;
-	protected RetargetTextEditorAction fShiftRight = null;
-	protected RetargetTextEditorAction fStructureSelectEnclosingAction = null;
-	protected RetargetTextEditorAction fStructureSelectHistoryAction = null;
-	protected RetargetTextEditorAction fStructureSelectNextAction = null;
-	protected RetargetTextEditorAction fStructureSelectPreviousAction = null;
-
-	protected RetargetTextEditorAction fToggleComment = null;
-	protected RetargetTextEditorAction fToggleInsertModeAction;
-	protected GroupMarker fToolbarAdditionsGroupMarker = null;
-	protected Separator fToolbarSeparator = null;
-
-	public ActionContributor() {
-		super();
-
-		ResourceBundle resourceBundle = SSEUIMessages.getResourceBundle();
-
-		fCommandsSeparator = new Separator();
-
-		// edit commands
-		fStructureSelectEnclosingAction = new RetargetTextEditorAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_STRUCTURE_SELECT_ENCLOSING + StructuredTextEditorActionConstants.DOT);
-		fStructureSelectEnclosingAction.setActionDefinitionId(ActionDefinitionIds.STRUCTURE_SELECT_ENCLOSING);
-
-		fStructureSelectNextAction = new RetargetTextEditorAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_STRUCTURE_SELECT_NEXT + StructuredTextEditorActionConstants.DOT);
-		fStructureSelectNextAction.setActionDefinitionId(ActionDefinitionIds.STRUCTURE_SELECT_NEXT);
-
-		fStructureSelectPreviousAction = new RetargetTextEditorAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_STRUCTURE_SELECT_PREVIOUS + StructuredTextEditorActionConstants.DOT);
-		fStructureSelectPreviousAction.setActionDefinitionId(ActionDefinitionIds.STRUCTURE_SELECT_PREVIOUS);
-
-		fStructureSelectHistoryAction = new RetargetTextEditorAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_STRUCTURE_SELECT_HISTORY + StructuredTextEditorActionConstants.DOT);
-		fStructureSelectHistoryAction.setActionDefinitionId(ActionDefinitionIds.STRUCTURE_SELECT_HISTORY);
-
-		fExpandSelectionToMenu = new MenuManager(SSEUIMessages.ExpandSelectionToMenu_label); //$NON-NLS-1$
-		fExpandSelectionToMenu.add(fStructureSelectEnclosingAction);
-		fExpandSelectionToMenu.add(fStructureSelectNextAction);
-		fExpandSelectionToMenu.add(fStructureSelectPreviousAction);
-		fExpandSelectionToMenu.add(fStructureSelectHistoryAction);
-
-		// source commands
-		fShiftRight = new RetargetTextEditorAction(resourceBundle, ITextEditorActionConstants.SHIFT_RIGHT + StructuredTextEditorActionConstants.DOT);
-		fShiftRight.setActionDefinitionId(ITextEditorActionDefinitionIds.SHIFT_RIGHT);
-
-		fShiftLeft = new RetargetTextEditorAction(resourceBundle, ITextEditorActionConstants.SHIFT_LEFT + StructuredTextEditorActionConstants.DOT);
-		fShiftLeft.setActionDefinitionId(ITextEditorActionDefinitionIds.SHIFT_LEFT);
-
-		fToggleComment = new RetargetTextEditorAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_TOGGLE_COMMENT + StructuredTextEditorActionConstants.DOT);
-		fToggleComment.setActionDefinitionId(ActionDefinitionIds.TOGGLE_COMMENT);
-
-		fAddBlockComment = new RetargetTextEditorAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_ADD_BLOCK_COMMENT + StructuredTextEditorActionConstants.DOT);
-		fAddBlockComment.setActionDefinitionId(ActionDefinitionIds.ADD_BLOCK_COMMENT);
-
-		fRemoveBlockComment = new RetargetTextEditorAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_REMOVE_BLOCK_COMMENT + StructuredTextEditorActionConstants.DOT);
-		fRemoveBlockComment.setActionDefinitionId(ActionDefinitionIds.REMOVE_BLOCK_COMMENT);
-
-		// goto prev/next error
-		// CMVC 249017 for JavaEditor consistancy
-		fPreviousAnnotation = new GotoAnnotationAction("Previous_annotation", false); //$NON-NLS-1$
-		fPreviousAnnotation.setActionDefinitionId("org.eclipse.ui.navigate.previous"); //$NON-NLS-1$
-
-		fNextAnnotation = new GotoAnnotationAction("Next_annotation", true); //$NON-NLS-1$
-		fNextAnnotation.setActionDefinitionId("org.eclipse.ui.navigate.next"); //$NON-NLS-1$
-
-		// Read action extensions.
-		ExtendedEditorActionBuilder builder = new ExtendedEditorActionBuilder();
-		extendedContributor = builder.readActionExtensions(getExtensionIDs());
-
-		fMenuAdditionsGroupMarker = new GroupMarker(StructuredTextEditorActionConstants.GROUP_NAME_MENU_ADDITIONS);
-		fToolbarSeparator = new Separator();
-		fToolbarAdditionsGroupMarker = new GroupMarker(StructuredTextEditorActionConstants.GROUP_NAME_TOOLBAR_ADDITIONS);
-
-		fToggleInsertModeAction = new RetargetTextEditorAction(resourceBundle, "Editor.ToggleInsertMode.", IAction.AS_CHECK_BOX); //$NON-NLS-1$
-		fToggleInsertModeAction.setActionDefinitionId(ITextEditorActionDefinitionIds.TOGGLE_INSERT_MODE);
-
-		if (_showDebugStatus) {
-			fDebugStatusOffset = new OffsetStatusLineContributionItem(StructuredTextEditorActionConstants.STATUS_CATEGORY_OFFSET, true, 20);
-		}
-	}
-
-	protected void addToMenu(IMenuManager menu) {
-		// edit commands
-		IMenuManager editMenu = menu.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT);
-		if (editMenu != null) {
-			editMenu.add(fCommandsSeparator);
-			editMenu.add(fToggleInsertModeAction);
-			editMenu.add(fCommandsSeparator);
-			editMenu.add(fExpandSelectionToMenu);
-			editMenu.add(fCommandsSeparator);
-			editMenu.add(fMenuAdditionsGroupMarker);
-		}
-
-		// source commands
-		String sourceMenuLabel = SSEUIMessages.SourceMenu_label; //$NON-NLS-1$
-		String sourceMenuId = "sourceMenuId"; // This is just a menu id. No //$NON-NLS-1$
-		// need to translate.
-		// //$NON-NLS-1$
-		IMenuManager sourceMenu = new MenuManager(sourceMenuLabel, sourceMenuId);
-		menu.insertAfter(IWorkbenchActionConstants.M_EDIT, sourceMenu);
-		if (sourceMenu != null) {
-			sourceMenu.add(fCommandsSeparator);
-			sourceMenu.add(fToggleComment);
-			sourceMenu.add(fAddBlockComment);
-			sourceMenu.add(fRemoveBlockComment);
-			sourceMenu.add(fShiftRight);
-			sourceMenu.add(fShiftLeft);
-		}
-	}
-
-	protected void addToPopupMenu(IMenuManager menu) {
-		// add nothing
-	}
-
-	protected void addToStatusLine(IStatusLineManager manager) {
-		if (_showDebugStatus) {
-			manager.add(fDebugStatusOffset);
-		}
-	}
-
-	protected void addToToolBar(IToolBarManager toolBarManager) {
-		toolBarManager.add(fToolbarSeparator);
-		toolBarManager.add(fToolbarAdditionsGroupMarker);
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToMenu(IMenuManager)
-	 */
-	public void contributeToMenu(IMenuManager menu) {
-		super.contributeToMenu(menu);
-
-		addToMenu(menu);
-
-		if (extendedContributor != null) {
-			extendedContributor.contributeToMenu(menu);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.extension.IPopupMenuContributor#contributeToPopupMenu(org.eclipse.jface.action.IMenuManager)
-	 */
-	public void contributeToPopupMenu(IMenuManager menu) {
-
-		addToPopupMenu(menu);
-
-		if (extendedContributor != null) {
-			extendedContributor.contributeToPopupMenu(menu);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToStatusLine(org.eclipse.jface.action.IStatusLineManager)
-	 */
-	public void contributeToStatusLine(IStatusLineManager manager) {
-		super.contributeToStatusLine(manager);
-
-		addToStatusLine(manager);
-
-		if (extendedContributor != null) {
-			extendedContributor.contributeToStatusLine(manager);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToToolBar(IToolBarManager)
-	 */
-	public void contributeToToolBar(IToolBarManager toolBarManager) {
-		super.contributeToToolBar(toolBarManager);
-
-		addToToolBar(toolBarManager);
-
-		if (extendedContributor != null) {
-			extendedContributor.contributeToToolBar(toolBarManager);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#dispose()
-	 */
-	public void dispose() {
-		// need to call setActiveEditor before super.dispose because in both
-		// setActiveEditor & super.setActiveEditor if getEditorPart ==
-		// activeEditor,
-		// the method is just returned. so to get both methods to run,
-		// setActiveEditor
-		// needs to be called so that it correctly calls super.setActiveEditor
-		setActiveEditor(null);
-
-		super.dispose();
-
-		if (extendedContributor != null)
-			extendedContributor.dispose();
-	}
-
-	protected String[] getExtensionIDs() {
-		return EDITOR_IDS;
-	}
-
-	/**
-	 * @param editor
-	 * @return
-	 */
-	protected ITextEditor getTextEditor(IEditorPart editor) {
-		ITextEditor textEditor = null;
-		if (editor instanceof ITextEditor)
-			textEditor = (ITextEditor) editor;
-		if (textEditor == null && editor != null)
-			textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
-		return textEditor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorActionBarContributor#init(org.eclipse.ui.IActionBars,
-	 *      org.eclipse.ui.IWorkbenchPage)
-	 */
-	public void init(IActionBars bars, IWorkbenchPage page) {
-		super.init(bars, page);
-	}
-
-	/**
-	 * @see org.eclipse.ui.IEditorActionBarContributor#setActiveEditor(IEditorPart)
-	 */
-	public void setActiveEditor(IEditorPart activeEditor) {
-		if (getActiveEditorPart() == activeEditor)
-			return;
-		super.setActiveEditor(activeEditor);
-
-		ITextEditor textEditor = getTextEditor(activeEditor);
-
-		IActionBars actionBars = getActionBars();
-		if (actionBars != null) {
-			actionBars.setGlobalActionHandler(ITextEditorActionDefinitionIds.GOTO_NEXT_ANNOTATION, fNextAnnotation);
-			actionBars.setGlobalActionHandler(ITextEditorActionDefinitionIds.GOTO_PREVIOUS_ANNOTATION, fPreviousAnnotation);
-			actionBars.setGlobalActionHandler(ActionFactory.PREVIOUS.getId(), fPreviousAnnotation);
-			actionBars.setGlobalActionHandler(ActionFactory.NEXT.getId(), fNextAnnotation);
-
-			if (textEditor != null) {
-				actionBars.setGlobalActionHandler(IDEActionFactory.ADD_TASK.getId(), getAction(textEditor, IDEActionFactory.ADD_TASK.getId()));
-				actionBars.setGlobalActionHandler(IDEActionFactory.BOOKMARK.getId(), getAction(textEditor, IDEActionFactory.BOOKMARK.getId()));
-			}
-		}
-
-		fStructureSelectEnclosingAction.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_STRUCTURE_SELECT_ENCLOSING));
-		fStructureSelectNextAction.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_STRUCTURE_SELECT_NEXT));
-		fStructureSelectPreviousAction.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_STRUCTURE_SELECT_PREVIOUS));
-		fStructureSelectHistoryAction.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_STRUCTURE_SELECT_HISTORY));
-
-		fShiftRight.setAction(getAction(textEditor, ITextEditorActionConstants.SHIFT_RIGHT));
-		fShiftLeft.setAction(getAction(textEditor, ITextEditorActionConstants.SHIFT_LEFT));
-
-		fToggleComment.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_TOGGLE_COMMENT));
-		fAddBlockComment.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_ADD_BLOCK_COMMENT));
-		fRemoveBlockComment.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_REMOVE_BLOCK_COMMENT));
-
-		// go to prev/next error
-		// CMVC 249017 for JavaEditor consistancy
-		fPreviousAnnotation.setEditor(textEditor);
-		fNextAnnotation.setEditor(textEditor);
-
-		fToggleInsertModeAction.setAction(getAction(textEditor, ITextEditorActionConstants.TOGGLE_INSERT_MODE));
-
-		if (extendedContributor != null) {
-			extendedContributor.setActiveEditor(activeEditor);
-		}
-
-		if (_showDebugStatus && textEditor instanceof ITextEditorExtension) {
-			((ITextEditorExtension) textEditor).setStatusField(fDebugStatusOffset, StructuredTextEditorActionConstants.STATUS_CATEGORY_OFFSET);
-			fDebugStatusOffset.setActiveEditor(textEditor);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.ISourceViewerActionBarContributor#setViewerSpecificContributionsEnabled(boolean)
-	 */
-	public void setViewerSpecificContributionsEnabled(boolean enabled) {
-		fShiftRight.setEnabled(enabled);
-		fShiftLeft.setEnabled(enabled);
-		fNextAnnotation.setEnabled(enabled);
-		fPreviousAnnotation.setEnabled(enabled);
-
-		/*
-		 * fComment.setEnabled(enabled); fUncomment.setEnabled(enabled);
-		 */
-		fToggleComment.setEnabled(enabled);
-		fAddBlockComment.setEnabled(enabled);
-		fRemoveBlockComment.setEnabled(enabled);
-		// convert line delimiters are not source viewer-specific
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.extension.IExtendedContributor#updateToolbarActions()
-	 */
-	public void updateToolbarActions() {
-		if (extendedContributor != null) {
-			extendedContributor.updateToolbarActions();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActionDefinitionIds.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActionDefinitionIds.java
deleted file mode 100644
index b26dae1..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActionDefinitionIds.java
+++ /dev/null
@@ -1,42 +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.wst.sse.ui.internal.actions;
-
-
-
-/**
- * Defines the definitions ids for editor actions.
- */
-public interface ActionDefinitionIds {
-	//TODO: Can these be better defined with a "plugin prefix" to be more portable? 
-	public final static String ADD_BLOCK_COMMENT = "org.eclipse.wst.sse.ui.add.block.comment";//$NON-NLS-1$
-
-	public final static String CLEANUP_DOCUMENT = "org.eclipse.wst.sse.ui.cleanup.document";//$NON-NLS-1$
-	public final static String COMMENT = "org.eclipse.wst.sse.ui.comment";//$NON-NLS-1$
-	public final static String EDIT_BREAKPOINTS = "org.eclipse.wst.sse.ui.breakpoints.edit";//$NON-NLS-1$
-	public final static String FIND_OCCURRENCES = "org.eclipse.wst.sse.ui.search.find.occurrences";//$NON-NLS-1$
-	public final static String FORMAT_ACTIVE_ELEMENTS = "org.eclipse.wst.sse.ui.format.active.elements";//$NON-NLS-1$
-	public final static String FORMAT_DOCUMENT = "org.eclipse.wst.sse.ui.format.document";//$NON-NLS-1$
-	public final static String INFORMATION = "org.eclipse.wst.sse.ui.show.javadoc";//$NON-NLS-1$
-	public final static String MANAGE_BREAKPOINTS = "org.eclipse.wst.sse.ui.breakpoints.manage";//$NON-NLS-1$
-	public final static String OPEN_FILE = "org.eclipse.wst.sse.ui.open.file.from.source";//$NON-NLS-1$
-	public final static String QUICK_FIX = "org.eclipse.wst.sse.ui.edit.text.java.correction.assist.proposals";//$NON-NLS-1$
-	public final static String REMOVE_BLOCK_COMMENT = "org.eclipse.wst.sse.ui.remove.block.comment";//$NON-NLS-1$
-	public final static String STRUCTURE_SELECT_ENCLOSING = "org.eclipse.wst.sse.ui.structure.select.enclosing";//$NON-NLS-1$
-	public final static String STRUCTURE_SELECT_HISTORY = "org.eclipse.wst.sse.ui.structure.select.last";//$NON-NLS-1$
-	public final static String STRUCTURE_SELECT_NEXT = "org.eclipse.wst.sse.ui.structure.select.next";//$NON-NLS-1$
-	public final static String STRUCTURE_SELECT_PREVIOUS = "org.eclipse.wst.sse.ui.structure.select.previous";//$NON-NLS-1$
-	public final static String TOGGLE_COMMENT = "org.eclipse.wst.sse.ui.toggle.comment";//$NON-NLS-1$
-	public final static String TOGGLE_BREAKPOINTS = "org.eclipse.wst.sse.ui.breakpoints.toggle";//$NON-NLS-1$
-	public final static String UNCOMMENT = "org.eclipse.wst.sse.ui.uncomment";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActiveEditorActionHandler.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActiveEditorActionHandler.java
deleted file mode 100644
index 5595d63..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ActiveEditorActionHandler.java
+++ /dev/null
@@ -1,286 +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.wst.sse.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-/**
- * @deprecated actions are not properly activated with this handler so do not
- *             use
- */
-public class ActiveEditorActionHandler implements IAction {
-
-	private String fActionId;
-	private IWorkbenchSite fSite;
-	private IAction fTargetAction;
-
-	public ActiveEditorActionHandler(IWorkbenchSite site, String id) {
-		super();
-		fActionId = id;
-		fSite = site;
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getAccelerator()
-	 */
-	public int getAccelerator() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getAccelerator() : 0);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getActionDefinitionId()
-	 */
-	public String getActionDefinitionId() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getActionDefinitionId() : null);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getDescription()
-	 */
-	public String getDescription() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getDescription() : null);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getDisabledImageDescriptor()
-	 */
-	public ImageDescriptor getDisabledImageDescriptor() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getDisabledImageDescriptor() : null);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getHelpListener()
-	 */
-	public HelpListener getHelpListener() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getHelpListener() : null);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getHoverImageDescriptor()
-	 */
-	public ImageDescriptor getHoverImageDescriptor() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getHoverImageDescriptor() : null);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getId()
-	 */
-	public String getId() {
-		return getClass().getName() + hashCode();
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getImageDescriptor() : null);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getMenuCreator()
-	 */
-	public IMenuCreator getMenuCreator() {
-		return null;
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getStyle()
-	 */
-	public int getStyle() {
-		return IAction.AS_PUSH_BUTTON;
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getText()
-	 */
-	public String getText() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getText() : null);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#getToolTipText()
-	 */
-	public String getToolTipText() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.getToolTipText() : null);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#isChecked()
-	 */
-	public boolean isChecked() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.isChecked() : true);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#isEnabled()
-	 */
-	public boolean isEnabled() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.isEnabled() : false);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.IAction#isHandled()
-	 */
-	public boolean isHandled() {
-		updateTargetAction();
-		return (fTargetAction != null ? fTargetAction.isHandled() : false);
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		updateTargetAction();
-		if (fTargetAction != null)
-			fTargetAction.run();
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#runWithEvent(org.eclipse.swt.widgets.Event)
-	 */
-	public void runWithEvent(Event event) {
-		updateTargetAction();
-		if (fTargetAction != null)
-			fTargetAction.runWithEvent(event);
-	}
-
-	/**
-	 * NOT SUPPORTED
-	 * 
-	 * @see org.eclipse.jface.action.IAction#setAccelerator(int)
-	 */
-	public void setAccelerator(int keycode) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setActionDefinitionId(java.lang.String)
-	 */
-	public void setActionDefinitionId(String id) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setChecked(boolean)
-	 */
-	public void setChecked(boolean checked) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setDescription(java.lang.String)
-	 */
-	public void setDescription(String text) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setDisabledImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
-	 */
-	public void setDisabledImageDescriptor(ImageDescriptor newImage) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setEnabled(boolean)
-	 */
-	public void setEnabled(boolean enabled) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setHelpListener(org.eclipse.swt.events.HelpListener)
-	 */
-	public void setHelpListener(HelpListener listener) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setHoverImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
-	 */
-	public void setHoverImageDescriptor(ImageDescriptor newImage) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setId(java.lang.String)
-	 */
-	public void setId(String id) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
-	 */
-	public void setImageDescriptor(ImageDescriptor newImage) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setMenuCreator(org.eclipse.jface.action.IMenuCreator)
-	 */
-	public void setMenuCreator(IMenuCreator creator) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setText(java.lang.String)
-	 */
-	public void setText(String text) {
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#setToolTipText(java.lang.String)
-	 */
-	public void setToolTipText(String text) {
-	}
-
-	private void updateTargetAction() {
-		if (fSite != null && fSite.getWorkbenchWindow() != null && fSite.getWorkbenchWindow().getActivePage() != null) {
-			IEditorPart part = fSite.getWorkbenchWindow().getActivePage().getActiveEditor();
-			ITextEditor editor = null;
-			if (part instanceof ITextEditor)
-				editor = (ITextEditor) part;
-			else
-				editor = (ITextEditor) (part != null ? part.getAdapter(ITextEditor.class) : null);
-			if (editor != null) {
-				fTargetAction = editor.getAction(fActionId);
-			} else {
-				fTargetAction = null;
-			}
-		} else
-			fTargetAction = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/CleanupAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/CleanupAction.java
deleted file mode 100644
index d015667..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/CleanupAction.java
+++ /dev/null
@@ -1,85 +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.wst.sse.ui.internal.actions;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.TextEditorAction;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupProcessor;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-public abstract class CleanupAction extends TextEditorAction {
-	protected Dialog fCleanupDialog;
-
-	public CleanupAction(ResourceBundle bundle, String prefix, ITextEditor editor) {
-		super(bundle, prefix, editor);
-	}
-
-	protected abstract Dialog getCleanupDialog(Shell shell);
-
-	protected abstract IStructuredCleanupProcessor getCleanupProcessor();
-
-	public void run() {
-		if (getTextEditor() instanceof StructuredTextEditor) {
-			final StructuredTextEditor editor = (StructuredTextEditor) getTextEditor();
-			Dialog cleanupDialog = getCleanupDialog(editor.getSite().getShell());
-			if (cleanupDialog != null) {
-				if (cleanupDialog.open() == Window.OK) {
-					// setup runnable
-					Runnable runnable = new Runnable() {
-						public void run() {
-							IStructuredCleanupProcessor cleanupProcessor = getCleanupProcessor();
-							if (cleanupProcessor != null)
-								cleanupProcessor.cleanupModel(editor.getModel());
-						}
-					};
-
-					// TODO: make independent of 'model'.
-					IStructuredModel model = editor.getModel();
-					if (model != null) {
-						try {
-							// begin recording
-							ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
-							model.beginRecording(this, SSEUIMessages.Cleanup_Document_UI_, SSEUIMessages.Cleanup_Document_UI_, selection.getOffset(), selection.getLength()); //$NON-NLS-1$ //$NON-NLS-2$
-
-							// tell the model that we are about to make a big
-							// model change
-							model.aboutToChangeModel();
-
-							// run
-							BusyIndicator.showWhile(editor.getTextViewer().getControl().getDisplay(), runnable);
-						} finally {
-							// tell the model that we are done with the big
-							// model
-							// change
-							model.changedModel();
-
-							// end recording
-							ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
-							model.endRecording(this, selection.getOffset(), selection.getLength());
-						}
-					}
-				}
-
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/FormatActionDelegate.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/FormatActionDelegate.java
deleted file mode 100644
index 5b6c61c..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/FormatActionDelegate.java
+++ /dev/null
@@ -1,228 +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.wst.sse.ui.internal.actions;
-
-import java.io.IOException;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.sse.core.internal.exceptions.MalformedInputExceptionWithDetail;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.ui.internal.FormatProcessorsExtensionReader;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-public class FormatActionDelegate extends ResourceActionDelegate {
-
-	class FormatJob extends Job {
-
-		public FormatJob(String name) {
-			super(name);
-		}
-
-		/**
-		 * @param container
-		 * @return
-		 */
-		private int getResourceCount(IResource[] members) {
-			int count = 0;
-
-			for (int i = 0; i < members.length; i++) {
-				if (members[i] instanceof IContainer) {
-					IContainer container = (IContainer) members[i];
-					try {
-						count += getResourceCount(container.members());
-					} catch (CoreException e) {
-						// skip counting
-					}
-				} else
-					count++;
-			}
-
-			return count;
-		}
-
-		/**
-		 * @param elements
-		 * @return
-		 */
-		private int getResourceCount(Object[] elements) {
-			int count = 0;
-
-			for (int i = 0; i < elements.length; i++) {
-				if (elements[i] instanceof IContainer) {
-					IContainer container = (IContainer) elements[i];
-					try {
-						count += getResourceCount(container.members());
-					} catch (CoreException e) {
-						// skip counting
-					}
-				} else
-					count++;
-			}
-
-			return count;
-		}
-
-		protected IStatus run(IProgressMonitor monitor) {
-			IStatus status = Status.OK_STATUS;
-
-			Object[] elements = fSelection.toArray();
-			int resourceCount = getResourceCount(elements);
-			monitor.beginTask("", resourceCount); //$NON-NLS-1$
-			for (int i = 0; i < elements.length; i++) {
-				if (elements[i] instanceof IResource) {
-					process(monitor, (IResource) elements[i]);
-					monitor.worked(1);
-				}
-			}
-			monitor.done();
-
-			if (fErrorStatus.getChildren().length > 0) {
-				status = fErrorStatus;
-				fErrorStatus = new MultiStatus(SSEUIPlugin.ID, IStatus.ERROR, SSEUIMessages.FormatActionDelegate_errorStatusMessage, null); //$NON-NLS-1$
-			}
-
-			return status;
-		}
-
-	}
-
-	private MultiStatus fErrorStatus = new MultiStatus(SSEUIPlugin.ID, IStatus.ERROR, SSEUIMessages.FormatActionDelegate_errorStatusMessage, null); //$NON-NLS-1$
-
-	protected void format(IProgressMonitor monitor, IFile file) {
-		try {
-			monitor.worked(1);
-			IContentDescription contentDescription = file.getContentDescription();
-			if (contentDescription == null)
-				return;
-
-			IContentType contentType = contentDescription.getContentType();
-			IStructuredFormatProcessor formatProcessor = getFormatProcessor(contentType.getId());
-			if (formatProcessor != null && (monitor == null || !monitor.isCanceled())) {
-				String message = NLS.bind(SSEUIMessages.FormatActionDelegate_3, new String[]{file.getFullPath().toString()});
-				monitor.subTask(message);
-				formatProcessor.setProgressMonitor(monitor);
-				formatProcessor.formatFile(file);
-			}
-		} catch (MalformedInputExceptionWithDetail e) {
-			String message = NLS.bind(SSEUIMessages.FormatActionDelegate_5, new String[]{file.getFullPath().toString()});
-			fErrorStatus.add(new Status(IStatus.ERROR, SSEUIPlugin.ID, IStatus.ERROR, message, e));
-		} catch (IOException e) {
-			String message = NLS.bind(SSEUIMessages.FormatActionDelegate_4, new String[]{file.getFullPath().toString()});
-			fErrorStatus.add(new Status(IStatus.ERROR, SSEUIPlugin.ID, IStatus.ERROR, message, e));
-		} catch (CoreException e) {
-			String message = NLS.bind(SSEUIMessages.FormatActionDelegate_4, new String[]{file.getFullPath().toString()});
-			fErrorStatus.add(new Status(IStatus.ERROR, SSEUIPlugin.ID, IStatus.ERROR, message, e));
-		}
-	}
-
-	protected void format(IProgressMonitor monitor, IResource resource) {
-		if (resource instanceof IFile) {
-			IFile file = (IFile) resource;
-
-			if (monitor == null || !monitor.isCanceled())
-				format(monitor, file);
-		} else if (resource instanceof IContainer) {
-			IContainer container = (IContainer) resource;
-
-			try {
-				IResource[] members = container.members();
-				for (int i = 0; i < members.length; i++) {
-					if (monitor == null || !monitor.isCanceled())
-						format(monitor, members[i]);
-				}
-			} catch (CoreException e) {
-				String message = NLS.bind(SSEUIMessages.FormatActionDelegate_4, new String[]{resource.getFullPath().toString()});
-				fErrorStatus.add(new Status(IStatus.ERROR, SSEUIPlugin.ID, IStatus.ERROR, message, e));
-			}
-		}
-	}
-
-	protected IStructuredFormatProcessor getFormatProcessor(String contentTypeId) {
-		return FormatProcessorsExtensionReader.getInstance().getFormatProcessor(contentTypeId);
-	}
-
-	protected Job getJob() {
-		return new FormatJob(SSEUIMessages.FormatActionDelegate_jobName); //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.edit.util.ResourceActionDelegate#process(org.eclipse.core.runtime.IProgressMonitor,
-	 *      org.eclipse.core.resources.IResource)
-	 */
-	protected void process(IProgressMonitor monitor, IResource resource) {
-		format(monitor, resource);
-
-		try {
-			resource.refreshLocal(IResource.DEPTH_INFINITE, null);
-		} catch (CoreException e) {
-			String message = NLS.bind(SSEUIMessages.FormatActionDelegate_4, new String[]{resource.getFullPath().toString()});
-			fErrorStatus.add(new Status(IStatus.ERROR, SSEUIPlugin.ID, IStatus.ERROR, message, e));
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.sse.ui.internal.actions.ResourceActionDelegate#processorAvailable(org.eclipse.core.resources.IResource)
-	 */
-	protected boolean processorAvailable(IResource resource) {
-		boolean result = false;
-		if (resource.isAccessible()) {
-			try {
-				if (resource instanceof IFile) {
-					IFile file = (IFile) resource;
-
-					IStructuredFormatProcessor formatProcessor = null;
-					IContentDescription contentDescription = file.getContentDescription();
-					if (contentDescription != null) {
-						IContentType contentType = contentDescription.getContentType();
-						formatProcessor = getFormatProcessor(contentType.getId());
-					}
-					if (formatProcessor != null)
-						result = true;
-				}
-				else if (resource instanceof IContainer) {
-					IContainer container = (IContainer) resource;
-					IResource[] members;
-					members = container.members();
-					for (int i = 0; i < members.length; i++) {
-						boolean available = processorAvailable(members[i]);
-
-						if (available) {
-							result = true;
-							break;
-						}
-					}
-				}
-			}
-			catch (CoreException e) {
-				Logger.logException(e);
-			}
-		}
-
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ResourceActionDelegate.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ResourceActionDelegate.java
deleted file mode 100644
index 3e2686a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/ResourceActionDelegate.java
+++ /dev/null
@@ -1,75 +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.wst.sse.ui.internal.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IActionDelegate;
-
-public class ResourceActionDelegate implements IActionDelegate {
-	protected IStructuredSelection fSelection;
-
-	protected Job getJob() {
-		// ResourceActionDelegate does not create background job
-		// subclass creates the background job for the action
-		return null;
-	}
-
-	protected boolean processorAvailable(IResource resource) {
-		// ResourceActionDelegate returns false by default
-		// subclass returns true if processor is available; false otherwise
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		if (fSelection != null && !fSelection.isEmpty()) {
-			Job job = getJob();
-			if (job != null)
-				job.schedule();
-		}
-	}
-
-	/*
-	 * (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) {
-		if (selection instanceof IStructuredSelection) {
-			fSelection = (IStructuredSelection) selection;
-			boolean available = false;
-
-			Object[] elements = fSelection.toArray();
-			for (int i = 0; i < elements.length; i++) {
-				if (elements[i] instanceof IResource) {
-					available = processorAvailable((IResource) elements[i]);
-
-					if (available)
-						break;
-				}
-			}
-
-			action.setEnabled(available);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/StructuredTextEditorActionConstants.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/StructuredTextEditorActionConstants.java
deleted file mode 100644
index 8d411b1..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/actions/StructuredTextEditorActionConstants.java
+++ /dev/null
@@ -1,44 +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.wst.sse.ui.internal.actions;
-
-
-
-public interface StructuredTextEditorActionConstants {
-	public final static String ACTION_NAME_ADD_BLOCK_COMMENT = "AddBlockComment";//$NON-NLS-1$
-	public final static String ACTION_NAME_CLEANUP_DOCUMENT = "CleanupDocument";//$NON-NLS-1$
-	public final static String ACTION_NAME_COMMENT = "Comment";//$NON-NLS-1$
-	public final static String ACTION_NAME_CONTENTASSIST_CONTEXT_INFORMATION = "ContentAssistContextInformation";//$NON-NLS-1$
-	public final static String ACTION_NAME_CONTENTASSIST_PROPOSALS = "ContentAssistProposals";//$NON-NLS-1$
-	public final static String ACTION_NAME_FIND_OCCURRENCES = "FindOccurrences"; //$NON-NLS-1$
-	public final static String ACTION_NAME_FORMAT_ACTIVE_ELEMENTS = "FormatActiveElements";//$NON-NLS-1$
-	public final static String ACTION_NAME_FORMAT_DOCUMENT = "FormatDocument";//$NON-NLS-1$
-	public final static String ACTION_NAME_INFORMATION = "ShowTooltipDesc";//$NON-NLS-1$
-	public final static String ACTION_NAME_MANAGE_BREAKPOINTS = "ManageBreakpoints";//$NON-NLS-1$
-	public final static String ACTION_NAME_OPEN_FILE = "OpenFileFromSource";//$NON-NLS-1$
-	public final static String ACTION_NAME_QUICK_FIX = "QuickFix";//$NON-NLS-1$
-	public final static String ACTION_NAME_REMOVE_BLOCK_COMMENT = "RemoveBlockComment";//$NON-NLS-1$
-	public final static String ACTION_NAME_STRUCTURE_SELECT_ENCLOSING = "StructureSelectEnclosing";//$NON-NLS-1$
-	public final static String ACTION_NAME_STRUCTURE_SELECT_HISTORY = "StructureSelectHistory";//$NON-NLS-1$
-	public final static String ACTION_NAME_STRUCTURE_SELECT_NEXT = "StructureSelectNext";//$NON-NLS-1$
-	public final static String ACTION_NAME_STRUCTURE_SELECT_PREVIOUS = "StructureSelectPrevious";//$NON-NLS-1$
-	public final static String ACTION_NAME_TOGGLE_COMMENT = "ToggleComment";//$NON-NLS-1$
-	public final static String ACTION_NAME_UNCOMMENT = "Uncomment";//$NON-NLS-1$
-
-	public final static String DOT = ".";//$NON-NLS-1$
-
-	public final static String GROUP_NAME_MENU_ADDITIONS = "MenuAdditions";//$NON-NLS-1$
-	public final static String GROUP_NAME_TOOLBAR_ADDITIONS = "ToolbarAdditions";//$NON-NLS-1$
-	
-	public final static String STATUS_CATEGORY_OFFSET = "Offset";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CompoundContentAssistProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CompoundContentAssistProcessor.java
deleted file mode 100644
index 204f0ea..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CompoundContentAssistProcessor.java
+++ /dev/null
@@ -1,422 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.jface.contentassist.IContentAssistSubjectControl;
-import org.eclipse.jface.contentassist.ISubjectControlContentAssistProcessor;
-import org.eclipse.jface.contentassist.ISubjectControlContextInformationValidator;
-import org.eclipse.jface.text.Assert;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-
-/**
- * A processor that aggregates the proposals of multiple other processors.
- * When proposals are requested, the contained processors are queried in the
- * order they were added to the compound object. Copied from
- * org.eclipse.jdt.internal.ui.text.CompoundContentAssistProcessor.
- * Modification was made to add a dispose() method.
- */
-class CompoundContentAssistProcessor implements IContentAssistProcessor, ISubjectControlContentAssistProcessor {
-
-	private static class WrappedContextInformation implements IContextInformation {
-		private IContextInformation fInfo;
-		private IContentAssistProcessor fProcessor;
-
-		WrappedContextInformation(IContextInformation info, IContentAssistProcessor processor) {
-			fInfo = info;
-			fProcessor = processor;
-		}
-
-		/*
-		 * @see java.lang.Object#equals(java.lang.Object)
-		 */
-		public boolean equals(Object obj) {
-			return fInfo.equals(obj);
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.contentassist.IContextInformation#getContextDisplayString()
-		 */
-		public String getContextDisplayString() {
-			return fInfo.getContextDisplayString();
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.contentassist.IContextInformation#getImage()
-		 */
-		public Image getImage() {
-			return fInfo.getImage();
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.contentassist.IContextInformation#getInformationDisplayString()
-		 */
-		public String getInformationDisplayString() {
-			return fInfo.getInformationDisplayString();
-		}
-
-		/*
-		 * @see java.lang.Object#hashCode()
-		 */
-		public int hashCode() {
-			return fInfo.hashCode();
-		}
-
-		/*
-		 * @see java.lang.Object#toString()
-		 */
-		public String toString() {
-			return fInfo.toString();
-		}
-
-		IContentAssistProcessor getProcessor() {
-			return fProcessor;
-		}
-	}
-
-	private static class CompoundContentAssistValidator implements IContextInformationValidator {
-		List fValidators = new ArrayList();
-		IContextInformationValidator fValidator;
-
-		void add(IContextInformationValidator validator) {
-			fValidators.add(validator);
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.contentassist.IContextInformationValidator#install(org.eclipse.jface.text.contentassist.IContextInformation,
-		 *      org.eclipse.jface.text.ITextViewer, int)
-		 */
-		public void install(IContextInformation info, ITextViewer viewer, int documentPosition) {
-			// install either the validator in the info, or all validators
-			fValidator = getValidator(info);
-			if (fValidator != null)
-				fValidator.install(info, viewer, documentPosition);
-			else {
-				for (Iterator it = fValidators.iterator(); it.hasNext();) {
-					IContextInformationValidator v = (IContextInformationValidator) it.next();
-					v.install(info, viewer, documentPosition);
-				}
-			}
-		}
-
-		IContextInformationValidator getValidator(IContextInformation info) {
-			if (info instanceof WrappedContextInformation) {
-				WrappedContextInformation wrap = (WrappedContextInformation) info;
-				return wrap.getProcessor().getContextInformationValidator();
-			}
-
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.jface.text.contentassist.IContextInformationValidator#isContextInformationValid(int)
-		 */
-		public boolean isContextInformationValid(int documentPosition) {
-			// use either the validator in the info, or all validators
-			boolean isValid = false;
-			if (fValidator != null)
-				isValid = fValidator.isContextInformationValid(documentPosition);
-			else {
-				for (Iterator it = fValidators.iterator(); it.hasNext();) {
-					IContextInformationValidator v = (IContextInformationValidator) it.next();
-					isValid |= v.isContextInformationValid(documentPosition);
-				}
-			}
-			return isValid;
-		}
-
-	}
-
-	private static class CompoundContentAssistValidatorEx extends CompoundContentAssistValidator implements ISubjectControlContextInformationValidator {
-
-		/*
-		 * @see ISubjectControlContextInformationValidator#install(IContextInformation,
-		 *      IContentAssistSubjectControl, int)
-		 */
-		public void install(IContextInformation info, IContentAssistSubjectControl contentAssistSubjectControl, int documentPosition) {
-			// install either the validator in the info, or all validators
-			fValidator = getValidator(info);
-			if (fValidator instanceof ISubjectControlContextInformationValidator)
-				((ISubjectControlContextInformationValidator) fValidator).install(info, contentAssistSubjectControl, documentPosition);
-			else {
-				for (Iterator it = fValidators.iterator(); it.hasNext();) {
-					if (it.next() instanceof ISubjectControlContextInformationValidator)
-						((ISubjectControlContextInformationValidator) it.next()).install(info, contentAssistSubjectControl, documentPosition);
-				}
-			}
-		}
-
-	}
-
-	private final Set fProcessors = new LinkedHashSet();
-
-	/**
-	 * Creates a new instance.
-	 */
-	public CompoundContentAssistProcessor() {
-	}
-
-	/**
-	 * Creates a new instance with one child processor.
-	 * 
-	 * @param processor
-	 *            the processor to add
-	 */
-	public CompoundContentAssistProcessor(IContentAssistProcessor processor) {
-		add(processor);
-	}
-
-	/**
-	 * Adds a processor to this compound processor.
-	 * 
-	 * @param processor
-	 *            the processor to add
-	 */
-	public void add(IContentAssistProcessor processor) {
-		Assert.isNotNull(processor);
-		fProcessors.add(processor);
-	}
-
-	/**
-	 * Removes a processor from this compound processor.
-	 * 
-	 * @param processor
-	 *            the processor to remove
-	 */
-	public void remove(IContentAssistProcessor processor) {
-		fProcessors.remove(processor);
-	}
-
-	/**
-	 * Creates a new instance and adds all specified processors.
-	 * 
-	 * @param processors
-	 */
-	public CompoundContentAssistProcessor(IContentAssistProcessor[] processors) {
-		for (int i = 0; i < processors.length; i++) {
-			add(processors[i]);
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) {
-		List ret = new LinkedList();
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			IContentAssistProcessor p = (IContentAssistProcessor) it.next();
-			ICompletionProposal[] proposals = p.computeCompletionProposals(viewer, documentOffset);
-			if (proposals != null)
-				ret.addAll(Arrays.asList(proposals));
-		}
-		return (ICompletionProposal[]) ret.toArray(new ICompletionProposal[ret.size()]);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * <p>
-	 * The returned objects are wrapper objects around the real information
-	 * containers.
-	 * </p>
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IContextInformation[] computeContextInformation(ITextViewer viewer, int documentOffset) {
-		List ret = new LinkedList();
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			IContentAssistProcessor p = (IContentAssistProcessor) it.next();
-			IContextInformation[] informations = p.computeContextInformation(viewer, documentOffset);
-			if (informations != null)
-				for (int i = 0; i < informations.length; i++)
-					ret.add(new WrappedContextInformation(informations[i], p));
-		}
-		return (IContextInformation[]) ret.toArray(new IContextInformation[ret.size()]);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
-	 */
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		Set ret = new LinkedHashSet();
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			IContentAssistProcessor p = (IContentAssistProcessor) it.next();
-			char[] chars = p.getCompletionProposalAutoActivationCharacters();
-			if (chars != null)
-				for (int i = 0; i < chars.length; i++)
-					ret.add(new Character(chars[i]));
-		}
-
-		char[] chars = new char[ret.size()];
-		int i = 0;
-		for (Iterator it = ret.iterator(); it.hasNext(); i++) {
-			Character ch = (Character) it.next();
-			chars[i] = ch.charValue();
-		}
-		return chars;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationAutoActivationCharacters()
-	 */
-	public char[] getContextInformationAutoActivationCharacters() {
-		Set ret = new LinkedHashSet();
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			IContentAssistProcessor p = (IContentAssistProcessor) it.next();
-			char[] chars = p.getContextInformationAutoActivationCharacters();
-			if (chars != null)
-				for (int i = 0; i < chars.length; i++)
-					ret.add(new Character(chars[i]));
-		}
-
-		char[] chars = new char[ret.size()];
-		int i = 0;
-		for (Iterator it = ret.iterator(); it.hasNext(); i++) {
-			Character ch = (Character) it.next();
-			chars[i] = ch.charValue();
-		}
-		return chars;
-	}
-
-	/**
-	 * Returns the first non- <code>null</code> error message of any
-	 * contained processor, or <code>null</code> if no processor has an
-	 * error message.
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getErrorMessage()
-	 * @return {@inheritDoc}
-	 */
-	public String getErrorMessage() {
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			IContentAssistProcessor p = (IContentAssistProcessor) it.next();
-			String err = p.getErrorMessage();
-			if (err != null)
-				return err;
-		}
-		return null;
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * <p>
-	 * The returned validator is a wrapper around the validators provided by
-	 * the child processors.
-	 * </p>
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationValidator()
-	 */
-	public IContextInformationValidator getContextInformationValidator() {
-		boolean hasValidator = false;
-		boolean hasExtension = false;
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			IContentAssistProcessor p = (IContentAssistProcessor) it.next();
-			IContextInformationValidator v = p.getContextInformationValidator();
-			if (v instanceof ISubjectControlContextInformationValidator) {
-				hasExtension = true;
-				break;
-			}
-			else if (v != null) {
-				hasValidator = true;
-			}
-		}
-
-		CompoundContentAssistValidator validator = null;
-		if (hasExtension)
-			validator = new CompoundContentAssistValidatorEx();
-		else if (hasValidator)
-			validator = new CompoundContentAssistValidator();
-
-		if (validator != null)
-			for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-				IContentAssistProcessor p = (IContentAssistProcessor) it.next();
-				IContextInformationValidator v = p.getContextInformationValidator();
-				if (v != null)
-					validator.add(v);
-			}
-
-		return validator;
-	}
-
-	/*
-	 * @see ISubjectControlContentAssistProcessor#computeCompletionProposals(IContentAssistSubjectControl,
-	 *      int)
-	 */
-	public ICompletionProposal[] computeCompletionProposals(IContentAssistSubjectControl contentAssistSubjectControl, int documentOffset) {
-		List ret = new LinkedList();
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			Object o = it.next();
-			if (o instanceof ISubjectControlContentAssistProcessor) {
-				ISubjectControlContentAssistProcessor p = (ISubjectControlContentAssistProcessor) o;
-				ICompletionProposal[] proposals = p.computeCompletionProposals(contentAssistSubjectControl, documentOffset);
-				if (proposals != null)
-					ret.addAll(Arrays.asList(proposals));
-			}
-		}
-
-		return (ICompletionProposal[]) ret.toArray(new ICompletionProposal[ret.size()]);
-	}
-
-	/**
-	 * {@inheritDoc}
-	 * <p>
-	 * The returned objects are wrapper objects around the real information
-	 * containers.
-	 * </p>
-	 * 
-	 * @see org.eclipse.jface.contentassist.ISubjectControlContentAssistProcessor#computeContextInformation(org.eclipse.jface.text.contentassist.IContentAssistSubject,
-	 *      int)
-	 */
-	public IContextInformation[] computeContextInformation(IContentAssistSubjectControl contentAssistSubjectControl, int documentOffset) {
-		List ret = new LinkedList();
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			Object o = it.next();
-			if (o instanceof ISubjectControlContentAssistProcessor) {
-				ISubjectControlContentAssistProcessor p = (ISubjectControlContentAssistProcessor) o;
-				IContextInformation[] informations = p.computeContextInformation(contentAssistSubjectControl, documentOffset);
-				if (informations != null)
-					for (int i = 0; i < informations.length; i++)
-						ret.add(new WrappedContextInformation(informations[i], p));
-			}
-		}
-		return (IContextInformation[]) ret.toArray(new IContextInformation[ret.size()]);
-	}
-
-	/**
-	 * Dispose of any content assist processors that need disposing
-	 */
-	public void dispose() {
-		// go through list of content assist processors and dispose
-		for (Iterator it = fProcessors.iterator(); it.hasNext();) {
-			IContentAssistProcessor p = (IContentAssistProcessor) it.next();
-			if (p instanceof IReleasable) {
-				((IReleasable) p).release();
-			}
-		}
-		fProcessors.clear();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/ContentAssistUtils.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/ContentAssistUtils.java
deleted file mode 100644
index 04080be..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/ContentAssistUtils.java
+++ /dev/null
@@ -1,92 +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.wst.sse.ui.internal.contentassist;
-
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-
-
-/**
- * @author pavery
- *  
- */
-public class ContentAssistUtils {
-
-	/**
-	 * Returns the closest IndexedRegion for the offset and viewer allowing
-	 * for differences between viewer offsets and model positions. note: this
-	 * method returns an IndexedRegion for read only
-	 * 
-	 * @param viewer
-	 *            the viewer whose document is used to compute the proposals
-	 * @param documentOffset
-	 *            an offset within the document for which completions should
-	 *            be computed
-	 * @return an IndexedRegion
-	 */
-	public static IndexedRegion getNodeAt(StructuredTextViewer viewer, int documentOffset) {
-
-		if (viewer == null)
-			return null;
-
-		IndexedRegion node = null;
-		IModelManager mm = StructuredModelManager.getModelManager();
-		IStructuredModel model = null;
-		if (mm != null)
-			model = mm.getExistingModelForRead(viewer.getDocument());
-		try {
-			if (model != null) {
-				int lastOffset = documentOffset;
-				node = model.getIndexedRegion(documentOffset);
-				while (node == null && lastOffset >= 0) {
-					lastOffset--;
-					node = model.getIndexedRegion(lastOffset);
-				}
-			}
-		} finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-		return node;
-	}
-
-	/**
-	 * Returns the closest IStructuredDocumentRegion for the offest and
-	 * viewer.
-	 * 
-	 * @param viewer
-	 * @param documentOffset
-	 * @return the closest IStructuredDocumentRegion for the offest and
-	 *         viewer.
-	 */
-	public static IStructuredDocumentRegion getStructuredDocumentRegion(StructuredTextViewer viewer, int documentOffset) {
-		IStructuredDocumentRegion sdRegion = null;
-		if (viewer == null || viewer.getDocument() == null)
-			return null;
-
-		int lastOffset = documentOffset;
-		IStructuredDocument doc = (IStructuredDocument) viewer.getDocument();
-		sdRegion = doc.getRegionAtCharacterOffset(documentOffset);
-		while (sdRegion == null && lastOffset >= 0) {
-			lastOffset--;
-			sdRegion = doc.getRegionAtCharacterOffset(lastOffset);
-		}
-		return sdRegion;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CustomCompletionProposal.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CustomCompletionProposal.java
deleted file mode 100644
index 013799b..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/CustomCompletionProposal.java
+++ /dev/null
@@ -1,333 +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.wst.sse.ui.internal.contentassist;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITextViewerExtension5;
-import org.eclipse.jface.text.contentassist.CompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposalExtension;
-import org.eclipse.jface.text.contentassist.ICompletionProposalExtension2;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-
-/**
- * An implementation of ICompletionProposal whose values can be read after
- * creation.
- */
-public class CustomCompletionProposal implements ICompletionProposal, ICompletionProposalExtension, ICompletionProposalExtension2, IRelevanceCompletionProposal {
-    
-	private String fAdditionalProposalInfo;
-
-    private IContextInformation fContextInformation;
-
-    private int fCursorPosition = 0;
-
-    private String fDisplayString;
-
-    private Image fImage;
-
-    private int fOriginalReplacementLength;
-
-    private int fRelevance = IRelevanceConstants.R_NONE;
-
-    private int fReplacementLength = 0;
-
-    private int fReplacementOffset = 0;
-
-    private String fReplacementString = null;
-
-    private boolean fUpdateLengthOnValidate;
-
-    private char[] fTriggers;
-
-    /**
-     * Constructor with relevance and replacement length update flag.
-     * 
-     * If the <code>updateReplacementLengthOnValidate</code> flag is true,
-     * then when the user types, the replacement length will be incremented by
-     * the number of new characters inserted from the original position.
-     * Otherwise the replacement length will not change on validate.
-     * 
-     * ex.
-     * 
-     * <tag |name="attr"> - the replacement length is 4 <tag i|name="attr"> -
-     * the replacement length is now 5 <tag id|name="attr"> - the replacement
-     * length is now 6 <tag |name="attr"> - the replacementlength is now 4 again
-     * <tag |name="attr"> - the replacment length remains 4
-     * 
-     */
-    public CustomCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, Image image, String displayString,
-            IContextInformation contextInformation, String additionalProposalInfo, int relevance, boolean updateReplacementLengthOnValidate) {
-        fReplacementString = replacementString;
-        fReplacementOffset = replacementOffset;
-        fReplacementLength = replacementLength;
-        fCursorPosition = cursorPosition;
-        fImage = image;
-        fDisplayString = displayString;
-        fContextInformation = contextInformation;
-        fAdditionalProposalInfo = additionalProposalInfo;
-        fRelevance = relevance;
-        fUpdateLengthOnValidate = updateReplacementLengthOnValidate;
-        fOriginalReplacementLength = fReplacementLength;
-    }
-
-    public CustomCompletionProposal(String replacementString, int replacementOffset, int replacementLength, int cursorPosition, Image image, String displayString,
-            IContextInformation contextInformation, String additionalProposalInfo, int relevance) {
-        this(replacementString, replacementOffset, replacementLength, cursorPosition, image, displayString, contextInformation, additionalProposalInfo, relevance, true);
-    }
-
-    public void apply(IDocument document) {
-        CompletionProposal proposal = new CompletionProposal(getReplacementString(), getReplacementOffset(), getReplacementLength(), getCursorPosition(), getImage(), getDisplayString(),
-                getContextInformation(), getAdditionalProposalInfo());
-        proposal.apply(document);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension#apply(org.eclipse.jface.text.IDocument,
-     *      char, int)
-     */
-    public void apply(IDocument document, char trigger, int offset) {
-        CompletionProposal proposal = new CompletionProposal(getReplacementString(), getReplacementOffset(), getReplacementLength(), getCursorPosition(), getImage(), getDisplayString(),
-                getContextInformation(), getAdditionalProposalInfo());
-        // we currently don't do anything special for which character
-        // selected the proposal, and where the cursor offset is
-        // but we might in the future...
-        proposal.apply(document);
-        // we want to ContextInformationPresenter.updatePresentation() here
-    }
-
-    public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-        IDocument document = viewer.getDocument();
-        // CMVC 252634 to compensate for "invisible" initial region
-        int caretOffset = viewer.getTextWidget().getCaretOffset();
-        if (viewer instanceof ITextViewerExtension5) {
-            ITextViewerExtension5 extension = (ITextViewerExtension5) viewer;
-            caretOffset = extension.widgetOffset2ModelOffset(caretOffset);
-        } else {
-            caretOffset = viewer.getTextWidget().getCaretOffset() + viewer.getVisibleRegion().getOffset();
-        }
-
-        if (caretOffset == getReplacementOffset()) {
-            apply(document);
-        } else {
-            // replace the text without affecting the caret Position as this
-            // causes the cursor to move on its own
-            try {
-                int endOffsetOfChanges = getReplacementString().length() + getReplacementOffset();
-                // Insert the portion of the new text that comes after the
-                // current caret position
-                if (endOffsetOfChanges >= caretOffset) {
-                    int postCaretReplacementLength = getReplacementOffset() + getReplacementLength() - caretOffset;
-                    int preCaretReplacementLength = getReplacementString().length() - (endOffsetOfChanges - caretOffset);
-                    if (postCaretReplacementLength < 0) {
-                        if (Debug.displayWarnings) {
-                            System.out.println("** postCaretReplacementLength was negative: " + postCaretReplacementLength); //$NON-NLS-1$
-                        }
-                        // This is just a quick fix while I figure out what
-                        // replacement length is supposed to be
-                        // in each case, otherwise we'll get negative
-                        // replacment length sometimes
-                        postCaretReplacementLength = 0;
-                    }
-                    document.replace(caretOffset, postCaretReplacementLength, getReplacementString().substring(preCaretReplacementLength));
-                }
-                // Insert the portion of the new text that comes before the
-                // current caret position
-                // Done second since offsets would change for the post text
-                // otherwise
-                // Outright insertions are handled here
-                if (caretOffset > getReplacementOffset()) {
-                    int preCaretTextLength = caretOffset - getReplacementOffset();
-                    document.replace(getReplacementOffset(), preCaretTextLength, getReplacementString().substring(0, preCaretTextLength));
-                }
-            } catch (BadLocationException x) {
-                apply(document);
-            } catch (StringIndexOutOfBoundsException e) {
-                apply(document);
-            }
-        }
-    }
-
-    public String getAdditionalProposalInfo() {
-        // return fProposal.getAdditionalProposalInfo();
-        return fAdditionalProposalInfo;
-    }
-
-    public IContextInformation getContextInformation() {
-        // return fProposal.getContextInformation();
-        return fContextInformation;
-    }
-
-    public void setContextInformation(IContextInformation contextInfo) {
-        fContextInformation = contextInfo;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension#getContextInformationPosition()
-     */
-    public int getContextInformationPosition() {
-        return getCursorPosition();
-    }
-    
-    public int getCursorPosition() {
-        return fCursorPosition;
-    }
-
-    public void setCursorPosition(int pos) {
-        fCursorPosition = pos;
-    }
-
-    public void setDisplayString(String newDisplayString) {
-    	fDisplayString = newDisplayString;
-    }
-    
-    public String getDisplayString() {
-        // return fProposal.getDisplayString();
-        return fDisplayString;
-    }
-
-    public Image getImage() {
-        // return fProposal.getImage();
-        return fImage;
-    }
-
-    public int getRelevance() {
-        return fRelevance;
-    }
-
-    public void setReplacementLength(int newReplacementLength) {
-        fReplacementLength = newReplacementLength;
-    }  
-    public int getReplacementLength() {
-        return fReplacementLength;
-    }
-
-    public int getReplacementOffset() {
-        return fReplacementOffset;
-    }
-
-    public String getReplacementString() {
-        return fReplacementString;
-    }
-
-    public Point getSelection(IDocument document) {
-        // return fProposal.getSelection(document);
-        CompletionProposal proposal = new CompletionProposal(getReplacementString(), getReplacementOffset(), getReplacementLength(), getCursorPosition(), getImage(), getDisplayString(),
-                getContextInformation(), getAdditionalProposalInfo());
-        return proposal.getSelection(document);
-    }
-
-    /**
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension#getTriggerCharacters()
-     */
-
-    public char[] getTriggerCharacters() {
-        return fTriggers;
-    }
-
-    public void setTriggerCharacters(char[] triggers) {
-        fTriggers = triggers;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension#isValidFor(org.eclipse.jface.text.IDocument,
-     *      int)
-     */
-    public boolean isValidFor(IDocument document, int offset) {
-        return validate(document, offset, null);
-    }
-
-    /**
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#selected(org.eclipse.jface.text.ITextViewer,
-     *      boolean)
-     */
-    public void selected(ITextViewer viewer, boolean smartToggle) {
-    }
-
-    // code is borrowed from JavaCompletionProposal
-    protected boolean startsWith(IDocument document, int offset, String word) {
-	
-    	int wordLength = word == null ? 0 : word.length();
-        if (offset > fReplacementOffset + wordLength)
-            return false;
-
-        try {
-            int length = offset - fReplacementOffset;
-            String start = document.get(fReplacementOffset, length);
-
-            return word.substring(0, length).equalsIgnoreCase(start);
-        } catch (BadLocationException x) {
-        }
-
-        return false;
-    }
-
-    /**
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#unselected(org.eclipse.jface.text.ITextViewer)
-     */
-    public void unselected(ITextViewer viewer) {
-    }
-
-    /**
-     * borrowed from JavaCompletionProposal
-     * 
-     * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#validate(org.eclipse.jface.text.IDocument,
-     *      int, org.eclipse.jface.text.DocumentEvent)
-     */
-    public boolean validate(IDocument document, int offset, DocumentEvent event) {
-        if (offset < fReplacementOffset)
-            return false;
-        boolean validated = startsWith(document, offset, fDisplayString);
-
-        if (fUpdateLengthOnValidate) {
-
-            // it would be better to use "originalCursorPosition" instead of
-            // getReplacementOffset(), but we don't have that info.
-            int newLength = offset - getReplacementOffset();
-            int delta = newLength - fOriginalReplacementLength;
-            fReplacementLength = delta + fOriginalReplacementLength;
-            
-        	// if it's an attribute value, replacement offset is
-            // going to be one off from the actual cursor offset...
-        	char firstChar = document.get().charAt(getReplacementOffset());
-        	if(firstChar == '"' || firstChar == '\'')
-        		fReplacementLength ++;
-        }
-        return validated;
-    }
-    
-    /**
-     * @param replacementOffset The fReplacementOffset to set.
-     */
-    public void setReplacementOffset(int replacementOffset) {
-        fReplacementOffset = replacementOffset;
-    }
-    /**
-     * @param replacementString The fReplacementString to set.
-     */
-    public void setReplacementString(String replacementString) {
-        fReplacementString = replacementString;
-    }
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/IRelevanceCompletionProposal.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/IRelevanceCompletionProposal.java
deleted file mode 100644
index d67b10e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/IRelevanceCompletionProposal.java
+++ /dev/null
@@ -1,28 +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.wst.sse.ui.internal.contentassist;
-
-
-/**
- * CompletionProposal with a relevance value. The relevance value is used to
- * sort the completion proposals. Proposals with higher relevance should be
- * listed before proposals with lower relevance.
- * 
- * @author pavery
- */
-public interface IRelevanceCompletionProposal {
-	/**
-	 * Returns the relevance of the proposal.
-	 */
-	int getRelevance();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/IRelevanceConstants.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/IRelevanceConstants.java
deleted file mode 100644
index ba5a16e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/IRelevanceConstants.java
+++ /dev/null
@@ -1,17 +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.wst.sse.ui.internal.contentassist;
-
-public interface IRelevanceConstants {
-	int R_NONE = 0;
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/StructuredContentAssistant.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/StructuredContentAssistant.java
deleted file mode 100644
index 30ee6a5..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentassist/StructuredContentAssistant.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jface.text.contentassist.ContentAssistant;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder;
-
-public class StructuredContentAssistant extends ContentAssistant {
-	private static final String CONTENT_ASSIST_PROCESSOR_EXTENDED_ID = "contentassistprocessor"; //$NON-NLS-1$
-
-	/**
-	 * personal list of content assist processors
-	 */
-	private Map fProcessors;
-	/**
-	 * list of partition types where extended processors have been installed
-	 */
-	private List fInstalledExtendedContentTypes;
-
-	/**
-	 * Each set content assist processor is placed inside a
-	 * CompoundContentAssistProcessor which allows multiple processors per
-	 * partition type
-	 * 
-	 * @param processor
-	 *            the content assist processor to register, or
-	 *            <code>null</code> to remove an existing one
-	 * @param contentType
-	 *            the content type under which to register
-	 */
-	public void setContentAssistProcessor(IContentAssistProcessor processor, String partitionType) {
-		if (fProcessors == null)
-			fProcessors = new HashMap();
-
-		CompoundContentAssistProcessor compoundProcessor = getExistingContentAssistProcessor(partitionType);
-
-		// if processor is null, you want to remove all processors of
-		// contentType
-		if (processor == null && compoundProcessor != null) {
-			compoundProcessor.dispose();
-			fProcessors.remove(partitionType);
-			compoundProcessor = null;
-		}
-		if (processor != null) {
-			// create a new compoundprocess if there already isnt one
-			if (compoundProcessor == null) {
-				compoundProcessor = new CompoundContentAssistProcessor();
-			}
-			// add processor to compound processor
-			compoundProcessor.add(processor);
-			// add compound procesor to processors list (will replace old one,
-			// even if same instance)
-			fProcessors.put(partitionType, compoundProcessor);
-		}
-		super.setContentAssistProcessor(compoundProcessor, partitionType);
-	}
-
-	private CompoundContentAssistProcessor getExistingContentAssistProcessor(String partitionType) {
-		CompoundContentAssistProcessor compoundContentAssistProcessor = null;
-		IContentAssistProcessor processor = super.getContentAssistProcessor(partitionType);
-		if (processor != null) {
-			if (processor instanceof CompoundContentAssistProcessor) {
-				compoundContentAssistProcessor = (CompoundContentAssistProcessor) processor;
-			}
-			else {
-				throw new IllegalStateException("StructuredContentAssistant use CompoundContentAssistProcessor"); //$NON-NLS-1$
-			}
-		}
-		return compoundContentAssistProcessor;
-
-	}
-
-	/**
-	 * Returns the content assist processor to be used for the given content
-	 * type. Also installs any content assist processors that were added by
-	 * extension point.
-	 * 
-	 * @param contentType
-	 *            the type of the content for which this content assistant is
-	 *            to be requested
-	 * @return an instance content assist processor or <code>null</code> if
-	 *         none exists for the specified content type
-	 */
-	public IContentAssistProcessor getContentAssistProcessor(String partitionType) {
-		if (fInstalledExtendedContentTypes == null || !fInstalledExtendedContentTypes.contains(partitionType)) {
-			// get extended content assist processors that have not already
-			// been set
-			List processors = ExtendedConfigurationBuilder.getInstance().getConfigurations(CONTENT_ASSIST_PROCESSOR_EXTENDED_ID, partitionType);
-			if (processors != null && !processors.isEmpty()) {
-				Iterator iter = processors.iterator();
-				while (iter.hasNext()) {
-					IContentAssistProcessor processor = (IContentAssistProcessor) iter.next();
-					setContentAssistProcessor(processor, partitionType);
-				}
-			}
-			// add partition type to list of extended partition types
-			// installed (regardless of whether or not any extended content
-			// assist processors were installed because dont want to look it
-			// up every time)
-			if (fInstalledExtendedContentTypes == null)
-				fInstalledExtendedContentTypes = new ArrayList();
-			fInstalledExtendedContentTypes.add(partitionType);
-		}
-
-		IContentAssistProcessor processor = super.getContentAssistProcessor(partitionType);
-		return processor;
-	}
-
-	public void uninstall() {
-		// dispose of all content assist processors
-		if (fProcessors != null && !fProcessors.isEmpty()) {
-			Collection collection = fProcessors.values();
-			Iterator iter = collection.iterator();
-			while (iter.hasNext()) {
-				((CompoundContentAssistProcessor) iter.next()).dispose();
-			}
-			fProcessors.clear();
-		}
-		// clear out list of installed content types
-		if (fInstalledExtendedContentTypes != null) {
-			fInstalledExtendedContentTypes.clear();
-		}
-		super.uninstall();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/ConfigurableContentOutlinePage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/ConfigurableContentOutlinePage.java
deleted file mode 100644
index 8e31f81..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/ConfigurableContentOutlinePage.java
+++ /dev/null
@@ -1,707 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.wst.sse.ui.internal.contentoutline;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.ListenerList;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.action.GroupMarker;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.util.DelegatingDragAdapter;
-import org.eclipse.jface.util.DelegatingDropAdapter;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.util.TransferDragSourceListener;
-import org.eclipse.jface.util.TransferDropTargetListener;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.part.IShowInSource;
-import org.eclipse.ui.part.IShowInTarget;
-import org.eclipse.ui.part.IShowInTargetList;
-import org.eclipse.ui.part.ShowInContext;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration;
-
-
-public class ConfigurableContentOutlinePage extends ContentOutlinePage implements IAdaptable {
-	/*
-	 * Menu listener to create the additions group and add any menu items
-	 * contributed by the configuration; required since the context menu is
-	 * cleared every time it is shown
-	 */
-	class AdditionGroupAdder implements IMenuListener {
-		public void menuAboutToShow(IMenuManager manager) {
-			IContributionItem[] items = manager.getItems();
-			if (items.length > 0 && items[items.length - 1].getId() != null) {
-				manager.insertAfter(items[items.length - 1].getId(), new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-			}
-			else {
-				manager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
-			}
-
-			// add configuration's menu items
-			IMenuListener listener = getConfiguration().getMenuListener(getTreeViewer());
-			if (listener != null) {
-				listener.menuAboutToShow(manager);
-			}
-		}
-	}
-
-	/**
-	 * Provides double-click registration so it can be done before the Control
-	 * is created.
-	 */
-	class DoubleClickProvider implements IDoubleClickListener {
-		private IDoubleClickListener[] listeners = null;
-
-		void addDoubleClickListener(IDoubleClickListener newListener) {
-			if (listeners == null) {
-				listeners = new IDoubleClickListener[]{newListener};
-			}
-			else {
-				IDoubleClickListener[] newListeners = new IDoubleClickListener[listeners.length + 1];
-				System.arraycopy(listeners, 0, newListeners, 0, listeners.length);
-				newListeners[listeners.length] = newListener;
-				listeners = newListeners;
-			}
-		}
-
-		public void doubleClick(DoubleClickEvent event) {
-			fireDoubleClickEvent(event);
-		}
-
-		private void fireDoubleClickEvent(final DoubleClickEvent event) {
-			IDoubleClickListener[] firingListeners = listeners;
-			for (int i = 0; i < firingListeners.length; ++i) {
-				final IDoubleClickListener l = firingListeners[i];
-				SafeRunner.run(new SafeRunnable() {
-					public void run() {
-						l.doubleClick(event);
-					}
-				});
-			}
-		}
-
-		void removeDoubleClickListener(IDoubleClickListener oldListener) {
-			if (listeners != null) {
-				if (listeners.length == 1 && listeners[0].equals(oldListener)) {
-					listeners = null;
-				}
-				else {
-					List newListeners = new ArrayList(Arrays.asList(listeners));
-					newListeners.remove(oldListener);
-					listeners = (IDoubleClickListener[]) newListeners.toArray(new IDoubleClickListener[listeners.length - 1]);
-				}
-			}
-		}
-	}
-
-	/**
-	 * Listens to post selection from the selection service, applying it to
-	 * the tree viewer.
-	 */
-	private class PostSelectionServiceListener implements ISelectionListener {
-		public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-			// from selection service
-			if (_DEBUG) {
-				_DEBUG_TIME = System.currentTimeMillis();
-			} /*
-				 * Bug 136310, unless this page is that part's
-				 * IContentOutlinePage, ignore the selection change
-				 */
-			if (part == null || part.getAdapter(IContentOutlinePage.class) == ConfigurableContentOutlinePage.this) {
-				ISelection validContentSelection = getConfiguration().getSelection(getTreeViewer(), selection);
-
-				boolean isLinked = getConfiguration().isLinkedWithEditor(getTreeViewer());
-				if (isLinked) {
-					getTreeViewer().setSelection(validContentSelection, true);
-				}
-			}
-			if (_DEBUG) {
-				System.out.println("(O:" + (System.currentTimeMillis() - _DEBUG_TIME) + "ms) " + part + " : " + selection); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-		}
-	}
-
-	/**
-	 * Forwards post-selection from the tree viewer to the listeners while
-	 * acting as this page's selection provider.
-	 */
-	private class SelectionProvider implements IPostSelectionProvider {
-		private class PostSelectionChangedListener implements ISelectionChangedListener {
-			public void selectionChanged(SelectionChangedEvent event) {
-				if (!isFiringSelection()) {
-					fireSelectionChanged(event, postListeners);
-				}
-			}
-		}
-
-		private class SelectionChangedListener implements ISelectionChangedListener {
-			public void selectionChanged(SelectionChangedEvent event) {
-				if (!isFiringSelection()) {
-					fireSelectionChanged(event, listeners);
-				}
-			}
-		}
-
-		private boolean isFiringSelection = false;
-		private ListenerList listeners = new ListenerList();
-		private ListenerList postListeners = new ListenerList();
-		private ISelectionChangedListener postSelectionChangedListener = new PostSelectionChangedListener();
-		private ISelectionChangedListener selectionChangedListener = new SelectionChangedListener();
-
-		public void addPostSelectionChangedListener(ISelectionChangedListener listener) {
-			postListeners.add(listener);
-		}
-
-		public void addSelectionChangedListener(ISelectionChangedListener listener) {
-			listeners.add(listener);
-		}
-
-		public void fireSelectionChanged(final SelectionChangedEvent event, ListenerList listenerList) {
-			isFiringSelection = true;
-			Object[] listeners = listenerList.getListeners();
-			for (int i = 0; i < listeners.length; ++i) {
-				final ISelectionChangedListener l = (ISelectionChangedListener) listeners[i];
-				SafeRunner.run(new SafeRunnable() {
-					public void run() {
-						l.selectionChanged(event);
-					}
-				});
-			}
-			isFiringSelection = false;
-		}
-
-		public ISelectionChangedListener getPostSelectionChangedListener() {
-			return postSelectionChangedListener;
-		}
-
-		public ISelection getSelection() {
-			if (getTreeViewer() != null) {
-				return getTreeViewer().getSelection();
-			}
-			return StructuredSelection.EMPTY;
-		}
-
-		public ISelectionChangedListener getSelectionChangedListener() {
-			return selectionChangedListener;
-		}
-
-		public boolean isFiringSelection() {
-			return isFiringSelection;
-		}
-
-		public void removePostSelectionChangedListener(ISelectionChangedListener listener) {
-			postListeners.remove(listener);
-		}
-
-		public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-			listeners.remove(listener);
-		}
-
-		public void setSelection(ISelection selection) {
-			if (!isFiringSelection) {
-				getTreeViewer().setSelection(selection);
-			}
-		}
-	}
-
-	private class ShowInTarget implements IShowInTarget {
-		/*
-		 * @see org.eclipse.ui.part.IShowInTarget#show(org.eclipse.ui.part.ShowInContext)
-		 */
-		public boolean show(ShowInContext context) {
-			setSelection(context.getSelection());
-			return getTreeViewer().getSelection().equals(context.getSelection());
-		}
-	}
-
-	protected static final ContentOutlineConfiguration NULL_CONFIGURATION = new ContentOutlineConfiguration() {
-		public IContentProvider getContentProvider(TreeViewer viewer) {
-			return new ITreeContentProvider() {
-				public void dispose() {
-				}
-
-				public Object[] getChildren(Object parentElement) {
-					return null;
-				}
-
-				public Object[] getElements(Object inputElement) {
-					return null;
-				}
-
-				public Object getParent(Object element) {
-					return null;
-				}
-
-				public boolean hasChildren(Object element) {
-					return false;
-				}
-
-				public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-				}
-			};
-		}
-	};
-
-	private static final String OUTLINE_CONTEXT_MENU_ID = "org.eclipse.wst.sse.ui.StructuredTextEditor.OutlineContext"; //$NON-NLS-1$
-
-	private static final String OUTLINE_CONTEXT_MENU_SUFFIX = ".source.OutlineContext"; //$NON-NLS-1$
-	private static final boolean _DEBUG = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/contentOutline")); //$NON-NLS-1$  //$NON-NLS-2$;
-
-	private long _DEBUG_TIME = 0;
-
-	private TransferDragSourceListener[] fActiveDragListeners;
-	private TransferDropTargetListener[] fActiveDropListeners;
-	private ContentOutlineConfiguration fConfiguration;
-
-	private Menu fContextMenu;
-	private String fContextMenuId;
-
-	private MenuManager fContextMenuManager;
-	private DoubleClickProvider fDoubleClickProvider = null;
-
-	private DelegatingDragAdapter fDragAdapter;
-	private DragSource fDragSource;
-	private DelegatingDropAdapter fDropAdapter;
-	private DropTarget fDropTarget;
-	private IEditorPart fEditor;
-	private IMenuListener fGroupAdder = null;
-	private Object fInput = null;
-
-	private String fInputContentTypeIdentifier = null;
-	private ISelectionListener fSelectionListener = null;
-
-	SelectionProvider fSelectionProvider = null;
-
-	/**
-	 * A ContentOutlinePage that abstract as much behavior as possible away
-	 * from the Controls and varies it by content type.
-	 */
-	public ConfigurableContentOutlinePage() {
-		super();
-		fGroupAdder = new AdditionGroupAdder();
-		fSelectionProvider = new SelectionProvider();
-	}
-
-	/**
-	 * Adds a listener to a list of those notified when someone double-clicks
-	 * in the page.
-	 * 
-	 * @param newListener -
-	 *            the listener to add
-	 */
-	public void addDoubleClickListener(IDoubleClickListener newListener) {
-		if (fDoubleClickProvider == null) {
-			fDoubleClickProvider = new DoubleClickProvider();
-		}
-		fDoubleClickProvider.addDoubleClickListener(newListener);
-	}
-
-	private String computeContextMenuID() {
-		String id = null;
-		if (fInputContentTypeIdentifier != null) {
-			id = fInputContentTypeIdentifier + OUTLINE_CONTEXT_MENU_SUFFIX;
-		}
-		return id;
-	}
-
-	/**
-	 * @see ContentOutlinePage#createControl
-	 */
-	public void createControl(Composite parent) {
-		super.createControl(parent);
-
-		IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
-		if (page != null) {
-			fEditor = page.getActiveEditor();
-		}
-
-		fDragAdapter = new DelegatingDragAdapter();
-		fDragSource = new DragSource(getControl(), DND.DROP_COPY | DND.DROP_MOVE);
-		fDropAdapter = new DelegatingDropAdapter();
-		fDropTarget = new DropTarget(getControl(), DND.DROP_COPY | DND.DROP_MOVE);
-
-		setConfiguration(getConfiguration());
-
-		/*
-		 * ContentOutlinePage only implements ISelectionProvider while the
-		 * tree viewer implements both ISelectionProvider and
-		 * IPostSelectionProvider. Use an ISelectionProvider that listens to
-		 * post selection from the tree viewer and forward only post selection
-		 * to the selection service.
-		 */
-		getTreeViewer().addPostSelectionChangedListener(fSelectionProvider.getPostSelectionChangedListener());
-		getTreeViewer().addSelectionChangedListener(fSelectionProvider.getSelectionChangedListener());
-		if (fDoubleClickProvider == null) {
-			fDoubleClickProvider = new DoubleClickProvider();
-		}
-		getTreeViewer().addDoubleClickListener(fDoubleClickProvider);
-		getSite().setSelectionProvider(fSelectionProvider);
-	}
-
-	public void dispose() {
-		getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(getSelectionServiceListener());
-		if (fDoubleClickProvider != null) {
-			getTreeViewer().removeDoubleClickListener(fDoubleClickProvider);
-		}
-
-		// dispose menu controls
-		if (fContextMenu != null) {
-			fContextMenu.dispose();
-		}
-		if (fContextMenuManager != null) {
-			fContextMenuManager.removeMenuListener(fGroupAdder);
-			fContextMenuManager.removeAll();
-			fContextMenuManager.dispose();
-		}
-		setConfiguration(NULL_CONFIGURATION);
-		super.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class key) {
-		Object adapter = null;
-		if (key.equals(IShowInTarget.class)) {
-			adapter = new ShowInTarget();
-		}
-		final IEditorPart editor = fEditor;
-
-		if (key.equals(IShowInSource.class) && editor != null) {
-			adapter = new IShowInSource() {
-				public ShowInContext getShowInContext() {
-					return new ShowInContext(editor.getEditorInput(), editor.getEditorSite().getSelectionProvider().getSelection());
-				}
-			};
-		}
-		else if (key.equals(IShowInTargetList.class) && editor != null) {
-			adapter = editor.getAdapter(key);
-		}
-		return adapter;
-	}
-
-	/**
-	 * @return the currently used ContentOutlineConfiguration
-	 */
-	public ContentOutlineConfiguration getConfiguration() {
-		if (fConfiguration == null) {
-			fConfiguration = NULL_CONFIGURATION;
-		}
-		return fConfiguration;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-	 */
-	public ISelection getSelection() {
-		return fSelectionProvider.getSelection();
-	}
-
-	private ISelectionListener getSelectionServiceListener() {
-		if (fSelectionListener == null) {
-			fSelectionListener = new PostSelectionServiceListener();
-		}
-		return fSelectionListener;
-	}
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.IPageBookViewPage#init(org.eclipse.ui.part.IPageSite)
-	 */
-	public void init(IPageSite pageSite) {
-		super.init(pageSite);
-		pageSite.getWorkbenchWindow().getSelectionService().addPostSelectionListener(getSelectionServiceListener());
-	}
-
-	/**
-	 * Removes a listener to a list of those notified when someone
-	 * double-clicks in the page.
-	 * 
-	 * @param oldListener -
-	 *            the listener to remove
-	 */
-	public void removeDoubleClickListener(IDoubleClickListener oldListener) {
-		if (fDoubleClickProvider != null) {
-			fDoubleClickProvider.removeDoubleClickListener(oldListener);
-		}
-	}
-
-	/**
-	 * Configures (or reconfigures) the page according to the given
-	 * configuration.
-	 * 
-	 * @param configuration
-	 */
-	public void setConfiguration(ContentOutlineConfiguration configuration) {
-		// intentionally do not check to see if the new configuration != old
-		// configuration
-		if (getTreeViewer() != null) {
-			// remove the key listeners
-			if (getControl() != null && !getControl().isDisposed()) {
-				KeyListener[] listeners = getConfiguration().getKeyListeners(getTreeViewer());
-				if (listeners != null) {
-					for (int i = 0; i < listeners.length; i++) {
-						getControl().removeKeyListener(listeners[i]);
-					}
-				}
-			}
-
-			IContributionManager toolbar = getSite().getActionBars().getToolBarManager();
-			if (toolbar != null) {
-				IContributionItem[] toolbarItems = getConfiguration().getToolbarContributions(getTreeViewer());
-				if (toolbarItems != null && toolbarItems.length > 0) {
-					for (int i = 0; i < toolbarItems.length; i++) {
-						toolbar.remove(toolbarItems[i]);
-					}
-					toolbar.update(false);
-				}
-			}
-
-			IContributionManager menubar = getSite().getActionBars().getMenuManager();
-			if (menubar != null) {
-				IContributionItem[] menuItems = getConfiguration().getMenuContributions(getTreeViewer());
-				if (menuItems != null && menuItems.length > 0) {
-					for (int i = 0; i < menuItems.length; i++) {
-						menubar.remove(menuItems[i]);
-					}
-					menubar.remove(IWorkbenchActionConstants.MB_ADDITIONS);
-					menubar.update(false);
-				}
-			}
-			// clear the DnD listeners and transfer types
-			if (fDragAdapter != null && !fDragAdapter.isEmpty() && fDragSource != null && !fDragSource.isDisposed() && fDragSource.getTransfer().length > 0) {
-				if (fActiveDragListeners != null) {
-					for (int i = 0; i < fActiveDragListeners.length; i++) {
-						fDragAdapter.removeDragSourceListener(fActiveDragListeners[i]);
-					}
-				}
-				fActiveDragListeners = null;
-				fDragSource.removeDragListener(fDragAdapter);
-				fDragSource.setTransfer(new Transfer[0]);
-			}
-			if (fDropAdapter != null && !fDropAdapter.isEmpty() && fDropTarget != null && !fDropTarget.isDisposed() && fDropTarget.getTransfer().length > 0) {
-				if (fActiveDropListeners != null) {
-					for (int i = 0; i < fActiveDropListeners.length; i++) {
-						fDropAdapter.removeDropTargetListener(fActiveDropListeners[i]);
-					}
-				}
-				fActiveDropListeners = null;
-				fDropTarget.removeDropListener(fDropAdapter);
-				fDropTarget.setTransfer(new Transfer[0]);
-			}
-			getConfiguration().getContentProvider(getTreeViewer()).inputChanged(getTreeViewer(), fInput, null);
-			// release any ties to this tree viewer
-			getConfiguration().unconfigure(getTreeViewer());
-		}
-
-		fConfiguration = configuration;
-
-		if (getTreeViewer() != null && getControl() != null && !getControl().isDisposed()) {
-			// (re)set the providers
-			getTreeViewer().setLabelProvider(getConfiguration().getLabelProvider(getTreeViewer()));
-			getTreeViewer().setContentProvider(getConfiguration().getContentProvider(getTreeViewer()));
-
-			// view toolbar
-			IContributionManager toolbar = getSite().getActionBars().getToolBarManager();
-			if (toolbar != null) {
-				IContributionItem[] toolbarItems = getConfiguration().getToolbarContributions(getTreeViewer());
-				if (toolbarItems != null) {
-					for (int i = 0; i < toolbarItems.length; i++) {
-						toolbar.add(toolbarItems[i]);
-					}
-					toolbar.update(true);
-				}
-			}
-			// view menu
-			IContributionManager menu = getSite().getActionBars().getMenuManager();
-			if (menu != null) {
-				IContributionItem[] menuItems = getConfiguration().getMenuContributions(getTreeViewer());
-				if (menuItems != null) {
-					for (int i = 0; i < menuItems.length; i++) {
-						menuItems[i].setVisible(true);
-						menu.add(menuItems[i]);
-						menuItems[i].update();
-					}
-					menu.update(true);
-				}
-			}
-			// add the allowed DnD listeners and types
-			TransferDragSourceListener[] dragListeners = getConfiguration().getTransferDragSourceListeners(getTreeViewer());
-			if (fDragAdapter != null && dragListeners.length > 0) {
-				for (int i = 0; i < dragListeners.length; i++) {
-					fDragAdapter.addDragSourceListener(dragListeners[i]);
-				}
-				fActiveDragListeners = dragListeners;
-				fDragSource.addDragListener(fDragAdapter);
-				fDragSource.setTransfer(fDragAdapter.getTransfers());
-			}
-			TransferDropTargetListener[] dropListeners = getConfiguration().getTransferDropTargetListeners(getTreeViewer());
-			if (fDropAdapter != null && dropListeners.length > 0) {
-				for (int i = 0; i < dropListeners.length; i++) {
-					fDropAdapter.addDropTargetListener(dropListeners[i]);
-				}
-				fActiveDropListeners = dropListeners;
-				fDropTarget.addDropListener(fDropAdapter);
-				fDropTarget.setTransfer(fDropAdapter.getTransfers());
-			}
-			// add the key listeners
-			KeyListener[] listeners = getConfiguration().getKeyListeners(getTreeViewer());
-			if (listeners != null) {
-				for (int i = 0; i < listeners.length; i++) {
-					getControl().addKeyListener(listeners[i]);
-				}
-			}
-		}
-
-		if (fInput != null) {
-			setInput(fInput);
-		}
-	}
-
-	/**
-	 * @param editor
-	 *            The IEditorPart that "owns" this page. Used to support the
-	 *            "Show In..." menu.
-	 */
-	public void setEditorPart(IEditorPart editor) {
-		fEditor = editor;
-	}
-
-	/**
-	 * @param newInput
-	 *            The input for the page's viewer. Should only be set after a
-	 *            configuration has been applied.
-	 */
-	public void setInput(Object newInput) {
-		fInput = newInput;
-		/*
-		 * Intentionally not optimized for checking new input vs. old input so
-		 * that any existing content providers can be updated
-		 */
-		if (getControl() != null && !getControl().isDisposed()) {
-			getTreeViewer().setInput(fInput);
-			updateContextMenuId();
-		}
-	}
-
-	/**
-	 * @param id -
-	 *            the content type identifier to use for further extension
-	 */
-	public void setInputContentTypeIdentifier(String id) {
-		fInputContentTypeIdentifier = id;
-	}
-
-	/**
-	 * Updates the outline page's context menu for the current input
-	 */
-	private void updateContextMenuId() {
-		String computedContextMenuId = null;
-		// update outline view's context menu control and ID
-
-		if (fEditor == null) {
-			IWorkbenchPage page = getSite().getWorkbenchWindow().getActivePage();
-			if (page != null) {
-				fEditor = page.getActiveEditor();
-			}
-		}
-
-		computedContextMenuId = computeContextMenuID();
-
-		if (computedContextMenuId == null) {
-			computedContextMenuId = OUTLINE_CONTEXT_MENU_ID;
-		}
-
-		/*
-		 * Update outline context menu id if updating to a new id or if
-		 * context menu is not already set up
-		 */
-		if (!computedContextMenuId.equals(fContextMenuId) || (fContextMenu == null)) {
-			fContextMenuId = computedContextMenuId;
-
-			if (getControl() != null && !getControl().isDisposed()) {
-				// dispose of previous context menu
-				if (fContextMenu != null) {
-					fContextMenu.dispose();
-				}
-				if (fContextMenuManager != null) {
-					fContextMenuManager.removeMenuListener(fGroupAdder);
-					fContextMenuManager.removeAll();
-					fContextMenuManager.dispose();
-				}
-
-				fContextMenuManager = new MenuManager(fContextMenuId, fContextMenuId);
-				fContextMenuManager.setRemoveAllWhenShown(true);
-
-				fContextMenuManager.addMenuListener(fGroupAdder);
-
-				fContextMenu = fContextMenuManager.createContextMenu(getControl());
-				getControl().setMenu(fContextMenu);
-
-				getSite().registerContextMenu(fContextMenuId, fContextMenuManager, this);
-
-				/*
-				 * also register this menu for source page part and structured
-				 * text outline view ids
-				 */
-				if (fEditor != null) {
-					String partId = fEditor.getSite().getId();
-					if (partId != null) {
-						getSite().registerContextMenu(partId + OUTLINE_CONTEXT_MENU_SUFFIX, fContextMenuManager, this);
-					}
-				}
-				getSite().registerContextMenu(OUTLINE_CONTEXT_MENU_ID, fContextMenuManager, this);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/IJFaceNodeAdapter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/IJFaceNodeAdapter.java
deleted file mode 100644
index 1e96d5d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/IJFaceNodeAdapter.java
+++ /dev/null
@@ -1,44 +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.wst.sse.ui.internal.contentoutline;
-
-
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-
-
-public interface IJFaceNodeAdapter extends INodeAdapter {
-
-	public Object[] getChildren(Object node);
-
-	/**
-	 * Returns an enumeration with the elements belonging to the passed
-	 * element. These are the top level items in a list, tree, table, etc...
-	 */
-	public Object[] getElements(Object node);
-
-	/**
-	 * Fetches the label image specific to this object instance.
-	 */
-	public Image getLabelImage(Object node);
-
-	/**
-	 * Fetches the label text specific to this object instance.
-	 */
-	public String getLabelText(Object node);
-
-	public Object getParent(Object node);
-
-	public boolean hasChildren(Object node);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/IJFaceNodeAdapterFactory.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/IJFaceNodeAdapterFactory.java
deleted file mode 100644
index 2a47fe1..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/IJFaceNodeAdapterFactory.java
+++ /dev/null
@@ -1,26 +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.wst.sse.ui.internal.contentoutline;
-
-import java.util.Collection;
-
-public interface IJFaceNodeAdapterFactory {
-	public void addListener(Object listener);
-
-	/**
-	 * returns "copy" so no one can modify our list. Its is a shallow copy.
-	 */
-	public Collection getListeners();
-
-	public void removeListener(Object listener);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/PropertyChangeUpdateAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/PropertyChangeUpdateAction.java
deleted file mode 100644
index 3a538c2..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/PropertyChangeUpdateAction.java
+++ /dev/null
@@ -1,80 +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.wst.sse.ui.internal.contentoutline;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * An IAction.AS_CHECK_BOX action that sets and gets its checked state along
- * with a value from a preference store. Should be used with
- * PropertyChangeUpdateActionContributionItem to listen to changes in the
- * store and update the checked state from PropertyChangeEvents.
- */
-public class PropertyChangeUpdateAction extends Action implements IUpdate {
-	private String fPreferenceKey;
-	private IPreferenceStore fStore;
-	private boolean fUpdateFromPropertyChange = true;
-
-	public PropertyChangeUpdateAction(String text, IPreferenceStore store, String preferenceKey, boolean defaultValue) {
-		super(text, IAction.AS_CHECK_BOX);
-		fPreferenceKey = preferenceKey;
-		fStore = store;
-		fStore.setDefault(getPreferenceKey(), defaultValue);
-		setId(getPreferenceKey());
-		setChecked(getPreferenceStore().getBoolean(getPreferenceKey()));
-	}
-
-	/**
-	 * @return Returns the orderPreferenceKey.
-	 */
-	public String getPreferenceKey() {
-		return fPreferenceKey;
-	}
-
-	/**
-	 * @return Returns the store.
-	 */
-	public IPreferenceStore getPreferenceStore() {
-		return fStore;
-	}
-
-	/**
-	 * @return Returns the updateFromPropertyChange.
-	 */
-	public boolean isUpdateFromPropertyChange() {
-		return fUpdateFromPropertyChange;
-	}
-
-	public final void run() {
-		super.run();
-		fStore.setValue(getPreferenceKey(), isChecked());
-		if (!isUpdateFromPropertyChange())
-			update();
-	}
-
-	/**
-	 * @param updateFromPropertyChange
-	 *            The updateFromPropertyChange to set.
-	 */
-	public void setUpdateFromPropertyChange(boolean updateFromPropertyChange) {
-		fUpdateFromPropertyChange = updateFromPropertyChange;
-	}
-
-	public void update() {
-		setChecked(fStore.getBoolean(getPreferenceKey()));
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/PropertyChangeUpdateActionContributionItem.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/PropertyChangeUpdateActionContributionItem.java
deleted file mode 100644
index 5c642ea..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentoutline/PropertyChangeUpdateActionContributionItem.java
+++ /dev/null
@@ -1,85 +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.wst.sse.ui.internal.contentoutline;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.texteditor.IUpdate;
-
-/**
- * A listener on the given action's PreferenceStore. It calls .update() on the
- * action when the given key changes value.
- */
-public class PropertyChangeUpdateActionContributionItem extends ActionContributionItem {
-
-	private class PreferenceUpdateListener implements IPropertyChangeListener {
-		public void propertyChange(PropertyChangeEvent event) {
-			if (event.getProperty().equals(fProperty)) {
-				if (debug) {
-					System.out.println(fProperty + " preference changed, updating " + getAction()); //$NON-NLS-1$
-				}
-				((IUpdate) getAction()).update();
-			}
-		}
-	}
-
-	static final boolean debug = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/propertyChangeUpdateActionContributionItem")); //$NON-NLS-1$  //$NON-NLS-2$;
-
-	private IPropertyChangeListener fListener = null;
-
-	protected String fProperty = null;
-	private IPreferenceStore fStore;
-
-	public PropertyChangeUpdateActionContributionItem(PropertyChangeUpdateAction action) {
-		super(action);
-		fProperty = action.getPreferenceKey();
-		fStore = action.getPreferenceStore();
-		fListener = new PreferenceUpdateListener();
-		connect();
-	}
-
-	public void connect() {
-		if (debug) {
-			System.out.println("PropertyChangeUpdateActionContributionItem started listening for " + fProperty); //$NON-NLS-1$
-		}
-		if (fStore != null) {
-			fStore.addPropertyChangeListener(fListener);
-		}
-	}
-
-	public void disconnect() {
-		if (debug) {
-			System.out.println("PropertyChangeUpdateActionContributionItem stopped listening for " + fProperty); //$NON-NLS-1$
-		}
-		if (fStore != null) {
-			fStore.removePropertyChangeListener(fListener);
-		}
-	}
-
-	public void dispose() {
-		super.dispose();
-		disconnect();
-		fProperty = null;
-		fStore = null;
-	}
-
-	public String toString() {
-		if (getAction().getId() != null)
-			return super.toString();
-		else
-			return getClass().getName() + "(text=" + getAction().getText() + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ComboList.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ComboList.java
deleted file mode 100644
index 8b8eb59..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ComboList.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.contentproperties.ui;
-
-
-
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-/**
- * @deprecated People should manage their own combo/list
- */
-public class ComboList {
-	private Combo combo;
-
-
-	private List list;
-
-	public ComboList(Composite parent, int style) {
-		combo = new Combo(parent, style);
-		list = new ArrayList();
-	}
-
-
-	/*
-	 * following methods is original method of Combo class.
-	 */
-	public void add(String key) {
-		checkError();
-		combo.add(key);
-		list.add(key);
-	}
-
-	public void add(String key, int index) {
-		checkError();
-		combo.add(key, index);
-		list.add(index, key);
-	}
-
-	public void add(String key, String value) {
-		checkError();
-		combo.add(key);
-		list.add(value);
-	}
-
-	public void add(String key, String value, int index) {
-		checkError();
-		combo.add(key, index);
-		list.add(index, value);
-	}
-
-	public void addFocusListener(FocusListener listener) {
-		combo.addFocusListener(listener);
-	}
-
-	public void addModifyListener(org.eclipse.swt.events.ModifyListener listener) {
-		combo.addModifyListener(listener);
-	}
-
-	public void addSelectionListener(org.eclipse.swt.events.SelectionListener listener) {
-		combo.addSelectionListener(listener);
-
-	}
-
-	private void checkError() {
-		if (!isConsistency()) {
-			Logger.log(Logger.WARNING, "Difference between the number of keys[" + combo.getItemCount() + "] and the number of values[" + list.size() + "] in ComboList"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	public org.eclipse.swt.graphics.Point computeSize(int wHint, int hHint) {
-		return combo.computeSize(wHint, hHint);
-	}
-
-	public Map createHashtable() {
-		checkError();
-		Map m = new Hashtable();
-		for (int i = 0; i < list.size(); i++)
-			m.put(combo.getItem(i), list.get(i));
-		return m;
-	}
-
-	public void deselect(int i) {
-		combo.deselect(i);
-	}
-
-	public void deselectAll() {
-		combo.deselectAll();
-	}
-
-	public boolean equals(Object obj) {
-		return combo.equals(obj);
-	}
-
-	private void exchangePosition(int i, int j) {
-		String tmpKey = getItem(i);
-		Object tmpValue = list.remove(i);
-
-		combo.setItem(i, getItem(j));
-		list.add(i, list.remove(j - 1));
-
-		combo.setItem(j, tmpKey);
-		list.add(j, tmpValue);
-	}
-
-	public boolean existsAsKey(String str) {
-		if (combo.indexOf(str) >= 0)
-			return true;
-		else
-			return false;
-	}
-
-	public boolean existsAsValue(String str) {
-		if (list.indexOf(str) >= 0)
-			return true;
-		else
-			return false;
-	}
-
-	public boolean getEnabled() {
-		return combo.getEnabled();
-	}
-
-	public String getItem(int index) {
-		return combo.getItem(index);
-	}
-
-	public int getItemCount() {
-		return combo.getItemCount();
-	}
-
-	public String getKey(String value) {
-		if (value == null)
-			return null;
-		int index = -1;
-		checkError();
-		for (int i = 0; i < list.size(); i++) {
-			if (!list.get(i).equals(value))
-				continue;
-			index = i;
-			break;
-		}
-		if (index != -1)
-			return combo.getItem(index);
-		else
-			return null;
-	}
-
-	public Object getLayoutData() {
-		return combo.getLayoutData();
-	}
-
-	public String getSelectedValue() {
-		checkError();
-		int index = getSelectionIndex();
-		if (index < 0)
-			return null;
-		return getValue(getItem(index));
-	}
-
-	public int getSelectionIndex() {
-		return combo.getSelectionIndex();
-	}
-
-	public String getText() {
-		return combo.getText();
-	}
-
-	public String getValue(String key) {
-		if (key == null)
-			return null;
-		int index = -1;
-		checkError();
-		for (int i = 0; i < combo.getItemCount(); i++) {
-			if (!combo.getItem(i).equals(key))
-				continue;
-			index = i;
-			break;
-		}
-		if (index != -1)
-			return (String) list.get(index);
-		else
-			return null;
-	}
-
-	public int indexOf(String str) {
-		return combo.indexOf(str);
-	}
-
-
-	public boolean isConsistency() {
-
-		if (list.size() == combo.getItemCount())
-			return true;
-		else
-			return false;
-	}
-
-
-	public void remove(int index) {
-		checkError();
-		combo.remove(index);
-		list.remove(index);
-	}
-
-	public void remove(String str) {
-		checkError();
-		combo.remove(str);
-		list.remove(str);
-	}
-
-	public void select(int index) {
-		combo.select(index);
-	}
-
-	public void setEnabled(boolean enabled) {
-		combo.setEnabled(enabled);
-	}
-
-	public boolean setFocus() {
-		return combo.setFocus();
-	}
-
-	public void setItem(int index, String str) {
-		checkError();
-		combo.setItem(index, str);
-		list.remove(index);
-		list.add(index, str);
-	}
-
-	public void setItem(String[] strArray) {
-		checkError();
-		combo.setItems(strArray);
-		for (int i = 0; i < strArray.length; i++)
-			list.add(strArray[i]);
-	}
-
-	public void setLayout(org.eclipse.swt.widgets.Layout lo) {
-		combo.setLayout(lo);
-	}
-
-	public void setLayoutData(Object layoutData) {
-		combo.setLayoutData(layoutData);
-	}
-
-	public void setSelection(Point point) {
-		combo.setSelection(point);
-	}
-
-	public void setText(String str) {
-		combo.setText(str);
-	}
-
-	public void sortByKey(int offset) {
-		if (offset < 0 || offset > this.combo.getItemCount() - 1)
-			return;
-		checkError();
-		//
-		for (int i = offset; i < combo.getItemCount() - 1; i++) {
-			for (int j = i + 1; j < combo.getItemCount(); j++) {
-				if (getItem(i).compareTo(getItem(j)) > 0) {
-					exchangePosition(i, j);
-				}
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ComboListOnPropertyPage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ComboListOnPropertyPage.java
deleted file mode 100644
index f46c517..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ComboListOnPropertyPage.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.contentproperties.ui;
-
-
-
-import org.eclipse.swt.widgets.Composite;
-
-/**
- * @deprecated People should manage their own combo/list
- */
-public final class ComboListOnPropertyPage extends ComboList {
-
-
-	private String currentApplyValue;
-
-	public ComboListOnPropertyPage(Composite parent, int style) {
-		super(parent, style);
-	}
-
-	public final String getApplyValue() {
-		return currentApplyValue;
-	}
-
-	public final void setApplyValue(String currentApplyValue) {
-		this.currentApplyValue = currentApplyValue;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ContentSettingsPropertyPage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ContentSettingsPropertyPage.java
deleted file mode 100644
index c21501f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/contentproperties/ui/ContentSettingsPropertyPage.java
+++ /dev/null
@@ -1,297 +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.wst.sse.ui.internal.contentproperties.ui;
-
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-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.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.internal.contentproperties.ContentSettings;
-import org.eclipse.wst.sse.internal.contentproperties.ContentSettingsCreator;
-import org.eclipse.wst.sse.internal.contentproperties.IContentSettings;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * @deprecated Please use
- *             org.eclipse.wst.html.ui.internal.contentproperties.ui.WebContentSettingsPropertyPage
- *             or
- *             eclipse.wst.css.ui.internal.contentproperties.ui.CSSWebContentSettingsPropertyPage
- *             instead
- */
-public abstract class ContentSettingsPropertyPage extends PropertyPage {
-	private static final IStatus STATUS_ERROR = new Status(IStatus.ERROR, SSEUIPlugin.ID, IStatus.INFO, "ERROR", null); //$NON-NLS-1$
-
-	// for validateEdit()
-	private static final IStatus STATUS_OK = new Status(IStatus.OK, SSEUIPlugin.ID, IStatus.OK, "OK", null); //$NON-NLS-1$
-
-	/**
-	 * Method validateEdit.
-	 * 
-	 * @param file
-	 *            org.eclipse.core.resources.IFile
-	 * @param context
-	 *            org.eclipse.swt.widgets.Shell
-	 * @return IStatus
-	 */
-	private static IStatus validateEdit(IFile file, Shell context) {
-		if (file == null || !file.exists())
-			return STATUS_ERROR;
-		if (!(file.isReadOnly()))
-			return STATUS_OK;
-
-		IPath fullIPath = file.getLocation();
-
-		final long beforeModifiedFromJavaIO = fullIPath.toFile().lastModified();
-		final long beforeModifiedFromIFile = file.getModificationStamp();
-
-		IStatus status = ResourcesPlugin.getWorkspace().validateEdit(new IFile[]{file}, context);
-		if (!status.isOK())
-			return status;
-
-		final long afterModifiedFromJavaIO = fullIPath.toFile().lastModified();
-		final long afterModifiedFromIFile = file.getModificationStamp();
-
-		if (beforeModifiedFromJavaIO != afterModifiedFromJavaIO) {
-			IModelManager manager = StructuredModelManager.getModelManager();
-			IStructuredModel model = manager.getExistingModelForRead(file);
-			if (model != null) {
-				if (!model.isDirty()) {
-					try {
-						file.refreshLocal(IResource.DEPTH_ONE, null);
-					}
-					catch (CoreException e) {
-						return STATUS_ERROR;
-					}
-					finally {
-						model.releaseFromRead();
-					}
-				}
-				else {
-					model.releaseFromRead();
-				}
-			}
-		}
-
-		if ((beforeModifiedFromJavaIO != afterModifiedFromJavaIO) || (beforeModifiedFromIFile != afterModifiedFromIFile)) {
-			// the file is replaced. Modification cannot be
-			// applied.
-			return STATUS_ERROR;
-		}
-		return STATUS_OK;
-	}
-
-	protected ComboListOnPropertyPage[] combo;
-	protected Composite composite;
-
-	protected IContentSettings contentSettings;
-	protected final String CSS_LABEL = SSEUIMessages.UI_CSS_profile___2; //$NON-NLS-1$
-	protected final String DEVICE_LABEL = SSEUIMessages.UI_Target_Device___3; //$NON-NLS-1$
-
-	protected final String DOCUMENT_LABEL = SSEUIMessages.UI_Default_HTML_DOCTYPE_ID___1; //$NON-NLS-1$
-	protected int numberOfCombo;
-	protected int numCols = 1;
-	protected int numRows = 1;
-	protected Composite propertyPage;
-
-	public ContentSettingsPropertyPage() {
-		super();
-	}
-
-	private void cleanUp() {
-		// Are There any way to guarantee to call cleanUp() to re-load
-		// downloaded .contentsettings file
-		// after ContentSettings.releaseCache() in ContentSettingSelfHandler
-		// class, which is called by resourceChangeEvent
-	}
-
-
-	protected ComboListOnPropertyPage createComboBoxOf(String title) {
-
-		Label label = new Label(propertyPage, SWT.LEFT);
-		label.setText(title);
-		if (title != null && title.startsWith(SSEUIMessages.UI_Default_HTML_DOCTYPE_ID___1)) { //$NON-NLS-1$
-			GridData data = new GridData();
-			data.horizontalIndent = 10;
-			label.setLayoutData(data);
-		}
-		ComboListOnPropertyPage combo = new ComboListOnPropertyPage(propertyPage, SWT.READ_ONLY);
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		// data.horizontalAlignment= GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		combo.setLayoutData(data);
-		return combo;
-	}
-
-
-
-	protected Composite createComposite(Composite parent, int numColumns, int numRows) {
-		Composite composite = new Composite(parent, SWT.NONE);
-
-		// GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		composite.setLayout(layout);
-
-		// GridData
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		// data.horizontalSpan=numColumns;
-		// data.verticalSpan=numRows;
-
-		composite.setLayoutData(data);
-		return composite;
-	}
-
-
-	protected Control createContents(Composite parent) {
-
-		contentSettings = ContentSettingsCreator.create();
-
-		propertyPage = createComposite(parent, numCols, numRows);
-
-		createSettingsPageGUI();
-
-		return propertyPage;
-
-
-	}
-
-	protected abstract void createSettingsPageGUI();
-
-	// protected abstract void applySelectedPropertyValue(String str,int
-	// index);
-	protected abstract void deleteNoneProperty(int index);
-
-
-
-	protected boolean isInitValueChanged(String before, String after) {
-		if (before == null && after == null)
-			return false;
-		if (before != null && before.equals(after))
-			return false;
-		return true;
-	}
-
-
-
-	protected void performDefaults() {
-		super.performDefaults();
-		// selected(applied) item is restored.
-		for (int i = 0; i < numberOfCombo; i++) {
-			// String appliedValue = combo[i].getApplyValue();
-			// setSelectionItem(combo[i],appliedValue);
-			combo[i].select(0); // select none.
-
-		}
-
-	}
-
-	public boolean performOk() {
-		Map properties = new Hashtable();
-		if (validateState() == false) {
-			cleanUp();
-			return true;
-		}
-		for (int i = 0; i < numberOfCombo; i++) {
-			// get selected item in Combo box.
-			String str = combo[i].getSelectedValue();
-			if (str == null)
-				continue;
-			// if no change, skip setProperty
-			if (!isInitValueChanged(combo[i].getApplyValue(), str))
-				continue;
-			// if NONE is selected, delete attr instance (and write
-			// .contentsettings.)
-			if (str != null && str.length() == 0)
-				deleteNoneProperty(i);
-			else
-				putSelectedPropertyInto(properties, str, i);
-			// applySelectedPropertyValue(str,i);
-
-			// set apply value in ComboListOnPropertyPage.
-			combo[i].setApplyValue(str);
-		}
-		if (properties != null && !properties.isEmpty())
-			contentSettings.setProperties((IResource) super.getElement(), properties);
-		if (properties != null)
-			properties.clear();
-		properties = null;
-		if (!contentSettings.existsProperties((IResource) super.getElement()))
-			contentSettings.deleteAllProperties((IResource) super.getElement());
-		return true;
-	}
-
-	protected abstract void putSelectedPropertyInto(Map properties, String str, int i);
-
-
-	protected void setSelectionItem(ComboListOnPropertyPage combo, String value) {
-		if (combo.getItemCount() <= 0)
-			return;
-		combo.setApplyValue(value);
-		String item = combo.getKey(value);
-		if (item != null)
-			combo.select(combo.indexOf(item));
-		else
-			combo.select(0);
-
-	}
-
-	/*
-	 * Validate Edit. Similar function will be in HTMLCommand.java
-	 * ContentSettingsPropertyPage.java CSSActionManager.java
-	 * DesignRedoAction.java DesignUndoAction.java
-	 * HTMLConversionProcessor.java
-	 */
-	private boolean validateState() {
-
-		// get IFile of .contentsettings
-		final String name = ContentSettings.getContentSettingsName();
-		final IResource resource = (IResource) super.getElement();
-		final IProject project = resource.getProject();
-		IFile file = project.getFile(name);
-
-		if (file != null && !file.exists())
-			return true; // Is this really OK?
-		// If false should be returned,
-		// This statemant can be removed,
-		// since ModelManagerUtil.validateEdit()
-		// returns error to this case.
-
-		Shell shell = getControl().getShell();
-		IStatus status = validateEdit(file, shell);
-		return status.isOK() ? true : false;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/ContributedProcessorDescriptor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/ContributedProcessorDescriptor.java
deleted file mode 100644
index be6df0f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/ContributedProcessorDescriptor.java
+++ /dev/null
@@ -1,35 +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.wst.sse.ui.internal.correction;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-
-public class ContributedProcessorDescriptor {
-	private static final String CLASS = "class"; //$NON-NLS-1$
-
-	private IConfigurationElement fConfigurationElement;
-	private Object fProcessorInstance;
-
-	public ContributedProcessorDescriptor(IConfigurationElement element) {
-		fConfigurationElement = element;
-		fProcessorInstance = null;
-	}
-
-	public Object getProcessor() throws CoreException {
-		if (fProcessorInstance == null && fConfigurationElement != null) {
-			fProcessorInstance = fConfigurationElement.createExecutableExtension(CLASS);
-		}
-		return fProcessorInstance;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/CorrectionAssistantProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/CorrectionAssistantProvider.java
deleted file mode 100644
index 2a11fd9..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/CorrectionAssistantProvider.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.correction;
-
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.source.ISourceViewer;
-
-/**
- * Provides the appropriate correction assistant for a given source viewer.
- * This class should only be a placeholder until the base implements a common
- * way for quickfix/quick assist.
- */
-abstract public class CorrectionAssistantProvider {
-	/**
-	 * Returns the correction assistant for the given sourceviewer.
-	 * 
-	 * @param sourceViewer
-	 * @return
-	 */
-	abstract public IContentAssistant getCorrectionAssistant(ISourceViewer sourceViewer);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/IQuickAssistProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/IQuickAssistProcessor.java
deleted file mode 100644
index 444e092..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/IQuickAssistProcessor.java
+++ /dev/null
@@ -1,31 +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.wst.sse.ui.internal.correction;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-
-
-public interface IQuickAssistProcessor {
-	/**
-	 * Returns true if the processor can assist at the given offset. This test
-	 * should be an optimistic guess and be extremly cheap.
-	 */
-	boolean canAssist(StructuredTextViewer viewer, int offset);
-
-	/**
-	 * Collects proposals for assistant at the given offset.
-	 */
-	ICompletionProposal[] getProposals(StructuredTextViewer viewer, int offset) throws CoreException;
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/IQuickFixProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/IQuickFixProcessor.java
deleted file mode 100644
index 77441ac..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/IQuickFixProcessor.java
+++ /dev/null
@@ -1,30 +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.wst.sse.ui.internal.correction;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.source.Annotation;
-
-public interface IQuickFixProcessor {
-	/**
-	 * Returns true if the processor can fix the given problem. This test
-	 * should be an optimistic guess and be extremly cheap.
-	 */
-	boolean canFix(Annotation annnotation);
-
-	/**
-	 * Collects proposals for fixing the given problem.
-	 */
-	ICompletionProposal[] getProposals(Annotation annnotation) throws CoreException;
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/NoModificationCompletionProposal.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/NoModificationCompletionProposal.java
deleted file mode 100644
index c98bb53..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/NoModificationCompletionProposal.java
+++ /dev/null
@@ -1,77 +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.wst.sse.ui.internal.correction;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-public class NoModificationCompletionProposal implements ICompletionProposal {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#apply(org.eclipse.jface.text.IDocument)
-	 */
-	public void apply(IDocument document) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getAdditionalProposalInfo()
-	 */
-	public String getAdditionalProposalInfo() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getContextInformation()
-	 */
-	public IContextInformation getContextInformation() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getDisplayString()
-	 */
-	public String getDisplayString() {
-		return SSEUIMessages.NoModificationCompletionProposal_0; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getImage()
-	 */
-	public Image getImage() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getSelection(org.eclipse.jface.text.IDocument)
-	 */
-	public Point getSelection(IDocument document) {
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/StructuredCorrectionProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/StructuredCorrectionProcessor.java
deleted file mode 100644
index 6183b92..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/correction/StructuredCorrectionProcessor.java
+++ /dev/null
@@ -1,158 +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.wst.sse.ui.internal.correction;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-
-
-public class StructuredCorrectionProcessor implements IContentAssistProcessor {
-	protected IAnnotationModel fAnnotationModel;
-	protected IQuickAssistProcessor fQuickAssistProcessor;
-	protected IQuickFixProcessor fQuickFixProcessor;
-
-	public StructuredCorrectionProcessor(ISourceViewer sourceViewer) {
-		fAnnotationModel = sourceViewer.getAnnotationModel();
-	}
-
-	protected void addQuickAssistProposals(StructuredTextViewer viewer, ArrayList proposals, int documentOffset) {
-		try {
-			IQuickAssistProcessor processor = getQuickAssistProcessor();
-			if (processor != null && processor.canAssist(viewer, documentOffset)) {
-				ICompletionProposal[] res = processor.getProposals(viewer, documentOffset);
-				if (res != null) {
-					for (int k = 0; k < res.length; k++) {
-						proposals.add(res[k]);
-					}
-				}
-			}
-		} catch (CoreException e) {
-			// log for now, unless we find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	protected void addQuickFixProposals(StructuredTextViewer viewer, ArrayList proposals, int documentOffset) {
-		Iterator iter = fAnnotationModel.getAnnotationIterator();
-		while (iter.hasNext()) {
-			Annotation annotation = (Annotation) iter.next();
-			Position pos = fAnnotationModel.getPosition(annotation);
-			if (pos != null && documentOffset >= pos.offset && documentOffset <= pos.offset + pos.length) {
-				IQuickFixProcessor processor = getQuickFixProcessor();
-				if (processor != null && processor.canFix(annotation)) {
-					try {
-						ICompletionProposal[] res = processor.getProposals(annotation);
-						if (res != null) {
-							for (int k = 0; k < res.length; k++) {
-								proposals.add(res[k]);
-							}
-						}
-					} catch (CoreException e) {
-						// log for now, unless we find reason not to
-						Logger.log(Logger.INFO, e.getMessage());
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) {
-		ArrayList proposals = new ArrayList();
-
-		if (viewer instanceof StructuredTextViewer) {
-			addQuickFixProposals((StructuredTextViewer) viewer, proposals, documentOffset);
-
-			if (proposals.isEmpty()) {
-				addQuickAssistProposals((StructuredTextViewer) viewer, proposals, documentOffset);
-			}
-		}
-
-		if (proposals.isEmpty())
-			proposals.add(new NoModificationCompletionProposal());
-
-		return (ICompletionProposal[]) proposals.toArray(new ICompletionProposal[proposals.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IContextInformation[] computeContextInformation(ITextViewer viewer, int documentOffset) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
-	 */
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationAutoActivationCharacters()
-	 */
-	public char[] getContextInformationAutoActivationCharacters() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationValidator()
-	 */
-	public IContextInformationValidator getContextInformationValidator() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getErrorMessage()
-	 */
-	public String getErrorMessage() {
-		return null;
-	}
-
-	protected IQuickAssistProcessor getQuickAssistProcessor() {
-		return null;
-	}
-
-	protected IQuickFixProcessor getQuickFixProcessor() {
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/BreakpointRulerAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/BreakpointRulerAction.java
deleted file mode 100644
index 947d649..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/BreakpointRulerAction.java
+++ /dev/null
@@ -1,304 +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.wst.sse.ui.internal.debug;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.IVerticalRulerInfo;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPartService;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.extension.BreakpointProviderBuilder;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider;
-
-
-public abstract class BreakpointRulerAction extends Action implements IUpdate {
-
-	protected class MouseUpdater implements MouseListener {
-		public void mouseDoubleClick(MouseEvent e) {
-			// do nothing (here)
-		}
-
-		public void mouseDown(MouseEvent e) {
-			update();
-		}
-
-		public void mouseUp(MouseEvent e) {
-			// do nothing
-		}
-	}
-
-	public static final String getFileExtension(IEditorInput input) {
-		IPath path = null;
-		if (input instanceof IStorageEditorInput) {
-			try {
-				path = ((IStorageEditorInput) input).getStorage().getFullPath();
-			} catch (CoreException e) {
-				Logger.logException(e);
-			}
-		}
-		if (path != null) {
-			return path.getFileExtension();
-		}
-		String name = input.getName();
-		int index = name.lastIndexOf('.');
-		if (index == -1)
-			return null;
-		if (index == (name.length() - 1))
-			return ""; //$NON-NLS-1$
-		return name.substring(index + 1);
-	}
-
-	public static final IResource getResource(IEditorInput input) {
-		IResource resource = null;
-
-		if (input instanceof IFileEditorInput)
-			resource = ((IFileEditorInput) input).getFile();
-		if (resource == null)
-			resource = (IResource) input.getAdapter(IFile.class);
-		if (resource == null)
-			resource = (IResource) input.getAdapter(IResource.class);
-
-		IEditorPart editorPart = null;
-		if (resource == null) {
-			IWorkbench workbench = SSEUIPlugin.getDefault().getWorkbench();
-			if (workbench != null) {
-				IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
-				if (window != null) {
-					IPartService service = window.getPartService();
-					if (service != null) {
-						Object part = service.getActivePart();
-						if (part != null && part instanceof IEditorPart) {
-							editorPart = (IEditorPart) part;
-							if (editorPart != null) {
-								IStructuredModel model = null;
-								ITextEditor textEditor = null;
-								try {
-									if (editorPart instanceof ITextEditor) {
-										textEditor = (ITextEditor) editorPart;
-									}
-									if (textEditor == null) {
-										textEditor = (ITextEditor) editorPart.getAdapter(ITextEditor.class);
-									}
-									if (textEditor != null) {
-										IDocument textDocument = textEditor.getDocumentProvider().getDocument(input);
-										model = StructuredModelManager.getModelManager().getExistingModelForRead(textDocument);
-										if (model != null) {
-											resource = BreakpointProviderBuilder.getInstance().getResource(input, model.getContentTypeIdentifier(), getFileExtension(input));
-										}
-									}
-									if (resource == null) {
-										IBreakpointProvider[] providers = BreakpointProviderBuilder.getInstance().getBreakpointProviders(editorPart, null, getFileExtension(input));
-										for (int i = 0; i < providers.length && resource == null; i++) {
-											resource = providers[i].getResource(input);
-										}
-									}
-								} catch (Exception e) {
-									Logger.logException(e);
-								} finally {
-									if (model != null) {
-										model.releaseFromRead();
-									}
-								}
-							}
-
-						}
-					}
-				}
-
-			}
-		}
-		return resource;
-	}
-
-	protected MouseListener fMouseListener = null;
-
-	protected IVerticalRulerInfo fRulerInfo = null;
-	protected ITextEditor fTextEditor = null;
-
-	public BreakpointRulerAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) {
-		super();
-		fTextEditor = editor;
-		if(rulerInfo != null) {
-			fRulerInfo = rulerInfo;
-			fMouseListener = new MouseUpdater();
-			rulerInfo.getControl().addMouseListener(fMouseListener);
-		}
-	}
-
-	/**
-	 * Returns the <code>AbstractMarkerAnnotationModel</code> of the
-	 * editor's input.
-	 * 
-	 * @return the marker annotation model
-	 */
-	protected AbstractMarkerAnnotationModel getAnnotationModel() {
-		IDocumentProvider provider = fTextEditor.getDocumentProvider();
-		IAnnotationModel model = provider.getAnnotationModel(fTextEditor.getEditorInput());
-		if (model instanceof AbstractMarkerAnnotationModel)
-			return (AbstractMarkerAnnotationModel) model;
-		return null;
-	}
-
-	protected IBreakpoint[] getBreakpoints(IMarker[] markers) {
-		IBreakpointManager manager = DebugPlugin.getDefault().getBreakpointManager();
-		List breakpoints = new ArrayList(markers.length);
-		for (int i = 0; i < markers.length; i++) {
-			IBreakpoint breakpoint = manager.getBreakpoint(markers[i]);
-			if (breakpoint != null) {
-				breakpoints.add(breakpoint);
-			}
-		}
-		return (IBreakpoint[]) breakpoints.toArray(new IBreakpoint[0]);
-	}
-
-	/**
-	 * Returns the <code>IDocument</code> of the editor's input.
-	 * 
-	 * @return the document of the editor's input
-	 */
-	protected IDocument getDocument() {
-		IDocumentProvider provider = fTextEditor.getDocumentProvider();
-		return provider.getDocument(fTextEditor.getEditorInput());
-	}
-
-	/**
-	 * Returns all markers which include the ruler's line of activity.
-	 * 
-	 * @return an array of markers which include the ruler's line of activity
-	 */
-	protected IMarker[] getMarkers() {
-		List markers = new ArrayList();
-
-		IResource resource = getResource();
-		IDocument document = getDocument();
-		AbstractMarkerAnnotationModel annotationModel = getAnnotationModel();
-
-		if (resource != null && annotationModel != null && resource.exists()) {
-			try {
-				IMarker[] allMarkers = resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_ZERO);
-				if (allMarkers != null) {
-					for (int i = 0; i < allMarkers.length; i++) {
-						if (includesRulerLine(annotationModel.getMarkerPosition(allMarkers[i]), document)) {
-							markers.add(allMarkers[i]);
-						}
-					}
-				}
-			} catch (CoreException x) {
-				//
-			}
-		}
-
-		return (IMarker[]) markers.toArray(new IMarker[0]);
-	}
-
-	protected IResource getResource() {
-		IEditorInput input = getTextEditor().getEditorInput();
-		IResource resource = getResource(input);
-		return resource;
-	}
-
-	/**
-	 * @return Returns the rulerInfo.
-	 */
-	public IVerticalRulerInfo getRulerInfo() {
-		return fRulerInfo;
-	}
-
-	/**
-	 * @return Returns the textEditor.
-	 */
-	public ITextEditor getTextEditor() {
-		return fTextEditor;
-	}
-
-	protected boolean hasMarkers() {
-		IResource resource = getResource();
-		IDocument document = getDocument();
-		AbstractMarkerAnnotationModel model = getAnnotationModel();
-
-		if (resource != null && model != null && resource.exists()) {
-			try {
-				IMarker[] allMarkers = resource.findMarkers(IBreakpoint.LINE_BREAKPOINT_MARKER, true, IResource.DEPTH_ZERO);
-				if (allMarkers != null) {
-					for (int i = 0; i < allMarkers.length; i++) {
-						if (includesRulerLine(model.getMarkerPosition(allMarkers[i]), document)) {
-							return true;
-						}
-					}
-				}
-			} catch (CoreException x) {
-				//
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Checks whether a position includes the ruler's line of activity.
-	 * 
-	 * @param position
-	 *            the position to be checked
-	 * @param document
-	 *            the document the position refers to
-	 * @return <code>true</code> if the line is included by the given
-	 *         position
-	 */
-	protected boolean includesRulerLine(Position position, IDocument document) {
-		if (position != null && fRulerInfo != null) {
-			try {
-				int markerLine = document.getLineOfOffset(position.getOffset());
-				int line = getRulerInfo().getLineOfLastMouseButtonActivity();
-				if (line == markerLine)
-					return true;
-				// commented because of "1GEUOZ9: ITPJUI:ALL - Confusing UI
-				// for
-				// multiline Bookmarks and Tasks"
-				// return (markerLine <= line && line <=
-				// document.getLineOfOffset(position.getOffset() +
-				// position.getLength()));
-			} catch (BadLocationException x) {
-				//
-			}
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/DebugTextEditor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/DebugTextEditor.java
deleted file mode 100644
index 21c9b84..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/DebugTextEditor.java
+++ /dev/null
@@ -1,438 +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.wst.sse.ui.internal.debug;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.filebuffers.FileBuffers;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-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.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IStorageEditorInput;
-import org.eclipse.ui.editors.text.FileDocumentProvider;
-import org.eclipse.ui.editors.text.ILocationProvider;
-import org.eclipse.ui.editors.text.StorageDocumentProvider;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.part.IShowInTargetList;
-import org.eclipse.ui.texteditor.AbstractDocumentProvider;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.IElementStateListener;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.ui.texteditor.MarkerRulerAction;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder;
-import org.eclipse.wst.sse.ui.internal.ExtendedEditorActionBuilder;
-import org.eclipse.wst.sse.ui.internal.IExtendedContributor;
-import org.eclipse.wst.sse.ui.internal.IPopupMenuContributor;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.StructuredResourceMarkerAnnotationModel;
-import org.eclipse.wst.sse.ui.internal.actions.ActionDefinitionIds;
-import org.eclipse.wst.sse.ui.internal.extension.BreakpointProviderBuilder;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ConfigurationPointCalculator;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IExtendedStorageEditorInput;
-
-
-/**
- * @author nitin
- * 
- * A text editor capable of using the IBreakpointProvider framework.
- * 
- * This class is intended to be used by clients who wish to use the
- * IBreakpointProvider framework but not the StructuredTextEditor, e.g. VBS
- * source editors. It is provided AS-IS and marked internal as it is
- * unsupported and subject to change at any time.
- */
-public class DebugTextEditor extends TextEditor {
-
-	private class ShowInTargetLister implements IShowInTargetList {
-		public String[] getShowInTargetIds() {
-			return fShowInTargetIds;
-		}
-	}
-
-	/**
-	 * DocumentProvider for IStorageEditorInputs - supports
-	 * IExtendedStorageEditorInput notifications and assigning breakpoint
-	 * markers.
-	 */
-	class StorageInputDocumentProvider extends StorageDocumentProvider implements IElementStateListener {
-		protected IAnnotationModel createAnnotationModel(Object element) throws CoreException {
-			IAnnotationModel model = null;
-			IStorageEditorInput storageInput = (IStorageEditorInput) element;
-			String ext = BreakpointRulerAction.getFileExtension(storageInput);
-			IContentType[] types = getEditorInputContentTypes(storageInput);
-			IResource res = null;
-			for (int i = 0; res == null && i < types.length; i++) {
-				res = BreakpointProviderBuilder.getInstance().getResource(storageInput, types[i].getId(), ext);
-			}
-			String id = storageInput.getName();
-			if (storageInput.getStorage() != null) {
-				IPath fullPath = storageInput.getStorage().getFullPath();
-				if (fullPath != null)
-					id = fullPath.toString();
-				else
-					id = storageInput.getName();
-			}
-			if (res != null)
-				model = new StructuredResourceMarkerAnnotationModel(res, id);
-			else
-				model = new StructuredResourceMarkerAnnotationModel(ResourcesPlugin.getWorkspace().getRoot(), id);
-
-			return model;
-		}
-
-		protected AbstractDocumentProvider.ElementInfo createElementInfo(Object element) throws CoreException {
-			if (element instanceof IExtendedStorageEditorInput) {
-				((IExtendedStorageEditorInput) element).addElementStateListener(this);
-			}
-			return super.createElementInfo(element);
-		}
-
-		protected void disposeElementInfo(Object element, ElementInfo info) {
-			if (element instanceof IExtendedStorageEditorInput) {
-				((IExtendedStorageEditorInput) element).removeElementStateListener(this);
-			}
-			super.disposeElementInfo(element, info);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.editors.text.StorageDocumentProvider#doSaveDocument(org.eclipse.core.runtime.IProgressMonitor,
-		 *      java.lang.Object, org.eclipse.jface.text.IDocument, boolean)
-		 */
-		protected void doSaveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException {
-			// untested
-			new FileDocumentProvider().saveDocument(monitor, element, document, overwrite);
-		}
-
-		public void elementContentAboutToBeReplaced(Object element) {
-			fireElementContentAboutToBeReplaced(element);
-		}
-
-		public void elementContentReplaced(Object element) {
-			fireElementContentReplaced(element);
-		}
-
-		public void elementDeleted(Object element) {
-			fireElementDeleted(element);
-		}
-
-		public void elementDirtyStateChanged(Object element, boolean isDirty) {
-			fireElementDirtyStateChanged(element, isDirty);
-		}
-
-		public void elementMoved(Object originalElement, Object movedElement) {
-			fireElementMoved(originalElement, movedElement);
-		}
-	}
-
-	String[] fShowInTargetIds = new String[]{IPageLayout.ID_RES_NAV};
-	private IShowInTargetList fShowInTargetListAdapter = new ShowInTargetLister();
-
-	IDocumentProvider fStorageInputDocumentProvider = null;
-
-	public DebugTextEditor() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.editors.text.TextEditor#createActions()
-	 */
-	protected void createActions() {
-		super.createActions();
-
-		// StructuredTextEditor Action - toggle breakpoints
-		IAction action = new ToggleBreakpointAction(this, getVerticalRuler()) {
-			protected String getContentType(IDocument document) {
-				ILocationProvider provider = (ILocationProvider) getEditorInput().getAdapter(ILocationProvider.class);
-				if (provider != null) {
-					IPath location = provider.getPath(getEditorInput());
-					return detectContentType(location).getId();
-				}
-				else if (getEditorInput() instanceof IPathEditorInput) {
-					IPath location = ((IPathEditorInput) getEditorInput()).getPath();
-					return detectContentType(location).getId();
-				}
-				return IContentTypeManager.CT_TEXT;
-			}
-		};
-		setAction(ActionDefinitionIds.TOGGLE_BREAKPOINTS, action);
-		// StructuredTextEditor Action - manage breakpoints
-		action = new ManageBreakpointAction(this, getVerticalRuler());
-		setAction(ActionDefinitionIds.MANAGE_BREAKPOINTS, action);
-		// StructuredTextEditor Action - edit breakpoints
-		action = new EditBreakpointAction(this, getVerticalRuler());
-		setAction(ActionDefinitionIds.EDIT_BREAKPOINTS, action);
-	}
-
-	/**
-	 * Loads the Show In Target IDs from the Extended Configuration extension
-	 * point.
-	 * 
-	 * @return
-	 */
-	protected String[] createShowInTargetIds() {
-		List allIds = new ArrayList(0);
-		ExtendedConfigurationBuilder builder = ExtendedConfigurationBuilder.getInstance();
-		String[] configurationIds = getConfigurationPoints();
-		for (int i = 0; i < configurationIds.length; i++) {
-			String[] definitions = builder.getDefinitions("showintarget", configurationIds[i]); //$NON-NLS-1$
-			for (int j = 0; j < definitions.length; j++) {
-				String someIds = definitions[j];
-				if (someIds != null && someIds.length() > 0) {
-					String[] ids = StringUtils.unpack(someIds);
-					for (int k = 0; k < ids.length; k++) {
-						// trim, just to keep things clean
-						String id = ids[k].trim();
-						if (!allIds.contains(id)) {
-							allIds.add(id);
-						}
-					}
-				}
-			}
-		}
-
-		if (!allIds.contains(IPageLayout.ID_RES_NAV)) {
-			allIds.add(IPageLayout.ID_RES_NAV);
-		}
-		return (String[]) allIds.toArray(new String[0]);
-	}
-
-	IContentType detectContentType(IPath location) {
-		IContentType type = null;
-
-		IResource resource = FileBuffers.getWorkspaceFileAtLocation(location);
-		if (resource != null) {
-			if (resource.getType() == IResource.FILE && resource.isAccessible()) {
-				IContentDescription d = null;
-				try {
-					// Optimized description lookup, might not succeed
-					d = ((IFile) resource).getContentDescription();
-					if (d != null) {
-						type = d.getContentType();
-					}
-				}
-				catch (CoreException e) {
-					// Should not be possible given the accessible and file
-					// type check above
-				}
-				if (type == null) {
-					type = Platform.getContentTypeManager().findContentTypeFor(resource.getName());
-				}
-			}
-		}
-		else {
-			File file = FileBuffers.getSystemFileAtLocation(location);
-			if (file != null) {
-				InputStream input = null;
-				try {
-					input = new FileInputStream(file);
-					type = Platform.getContentTypeManager().findContentTypeFor(input, location.toOSString());
-				}
-				catch (FileNotFoundException e) {
-				}
-				catch (IOException e) {
-				}
-				finally {
-					if (input != null) {
-						try {
-							input.close();
-						}
-						catch (IOException e1) {
-						}
-					}
-				}
-				if (type == null) {
-					type = Platform.getContentTypeManager().findContentTypeFor(file.getName());
-				}
-			}
-		}
-		if (type == null) {
-			type = Platform.getContentTypeManager().getContentType(IContentTypeManager.CT_TEXT);
-		}
-		return type;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#editorContextMenuAboutToShow(org.eclipse.jface.action.IMenuManager)
-	 */
-	protected void editorContextMenuAboutToShow(IMenuManager menu) {
-		super.editorContextMenuAboutToShow(menu);
-
-		IEditorActionBarContributor c = getEditorSite().getActionBarContributor();
-		if (c instanceof IPopupMenuContributor) {
-			((IPopupMenuContributor) c).contributeToPopupMenu(menu);
-		}
-		else {
-			ExtendedEditorActionBuilder builder = new ExtendedEditorActionBuilder();
-			IExtendedContributor pmc = builder.readActionExtensions(getConfigurationPoints());
-			if (pmc != null) {
-				pmc.setActiveEditor(this);
-				pmc.contributeToPopupMenu(menu);
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class required) {
-		// Navigate action set menu
-		if (IShowInTargetList.class.equals(required))
-			return fShowInTargetListAdapter;
-		return super.getAdapter(required);
-	}
-
-
-	protected String[] getConfigurationPoints() {
-		return ConfigurationPointCalculator.getConfigurationPoints(this, getInputContentType(getEditorInput()), ConfigurationPointCalculator.SOURCE, DebugTextEditor.class);
-	}
-
-	IContentType[] getEditorInputContentTypes(IEditorInput input) {
-		IContentType[] types = null;
-		IResource resource = null;
-
-		if (input.getAdapter(IFile.class) != null) {
-			resource = (IFile) input.getAdapter(IFile.class);
-		}
-		else if (input.getAdapter(IFile.class) != null) {
-			resource = (IResource) input.getAdapter(IResource.class);
-		}
-		if (resource.getType() == IResource.FILE && resource.isAccessible()) {
-			IContentDescription d = null;
-			try {
-				// optimized description lookup, might not succeed
-				d = ((IFile) resource).getContentDescription();
-				if (d != null) {
-					types = new IContentType[]{d.getContentType()};
-				}
-			}
-			catch (CoreException e) {
-				// should not be possible given the accessible and file type
-				// check above
-			}
-		}
-		if (types == null) {
-			types = Platform.getContentTypeManager().findContentTypesFor(input.getName());
-		}
-		return types;
-	}
-
-	/**
-	 * @param editorInput
-	 * @return
-	 */
-	private String getInputContentType(IEditorInput editorInput) {
-		IContentType[] types = getEditorInputContentTypes(editorInput);
-		if (types != null) {
-			return types[0].getId();
-		}
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return
-	 */
-	private boolean isDebuggingAvailable() {
-		boolean debuggingAvailable = false;
-		IContentType[] types = getEditorInputContentTypes(getEditorInput());
-		for (int i = 0; !debuggingAvailable && i < types.length; i++) {
-			debuggingAvailable = debuggingAvailable || BreakpointProviderBuilder.getInstance().isAvailable(types[i].getId(), BreakpointRulerAction.getFileExtension(getEditorInput()));
-		}
-		return debuggingAvailable;
-	}
-
-	protected void rulerContextMenuAboutToShow(IMenuManager menu) {
-		if (isDebuggingAvailable()) {
-			menu.add(getAction(ActionDefinitionIds.TOGGLE_BREAKPOINTS));
-			menu.add(getAction(ActionDefinitionIds.MANAGE_BREAKPOINTS));
-			menu.add(getAction(ActionDefinitionIds.EDIT_BREAKPOINTS));
-			menu.add(new Separator());
-		}
-		else {
-			Logger.log(Logger.INFO, getClass().getName() + " could not enable debugging actions"); //$NON-NLS-1$
-		}
-		super.rulerContextMenuAboutToShow(menu);
-	}
-
-	/**
-	 * Ensure that the correct IDocumentProvider is used. For IFile and Files,
-	 * the default provider with a specified AnnotationModelFactory is used.
-	 * For StorageEditorInputs, use a custom provider that creates a usable
-	 * ResourceAnnotationModel
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#setDocumentProvider(org.eclipse.ui.IEditorInput)
-	 */
-	protected void setDocumentProvider(IEditorInput input) {
-		if (input instanceof IStorageEditorInput && !(input instanceof IFileEditorInput)) {
-			if (fStorageInputDocumentProvider == null) {
-				fStorageInputDocumentProvider = new StorageInputDocumentProvider();
-			}
-			setDocumentProvider(fStorageInputDocumentProvider);
-		}
-		else {
-			super.setDocumentProvider(input);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.AbstractTextEditor#updateContentDependentActions()
-	 */
-	protected void updateContentDependentActions() {
-		super.updateContentDependentActions();
-		if (isDebuggingAvailable()) {
-			setAction(ITextEditorActionConstants.RULER_DOUBLE_CLICK, getAction(ActionDefinitionIds.TOGGLE_BREAKPOINTS));
-		}
-		else {
-			// The Default Text Editor uses editorContribution to perform this
-			// mapping, but since it relies on the IEditorSite ID, it can't be
-			// relied on for MultiPageEditorParts. Instead, force the action
-			// registration manually.
-			setAction(ITextEditorActionConstants.RULER_DOUBLE_CLICK, new MarkerRulerAction(SSEUIMessages.getResourceBundle(), "Editor.ManageBookmarks.", this, getVerticalRuler(), IMarker.BOOKMARK, true)); //$NON-NLS-1$
-		}
-		fShowInTargetIds = createShowInTargetIds();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/EditBreakpointAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/EditBreakpointAction.java
deleted file mode 100644
index 8ac44a1..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/EditBreakpointAction.java
+++ /dev/null
@@ -1,63 +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.wst.sse.ui.internal.debug;
-
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.dialogs.PropertyDialogAction;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-public class EditBreakpointAction extends BreakpointRulerAction {
-	protected IBreakpoint[] breakpoints = null;
-
-	/**
-	 * @param editor
-	 * @param rulerInfo
-	 */
-	public EditBreakpointAction(ITextEditor editor, IVerticalRuler rulerInfo) {
-		super(editor, rulerInfo);
-		setText(SSEUIMessages.EditBreakpointAction_0); //$NON-NLS-1$
-	}
-
-	public void run() {
-		PropertyDialogAction action = new PropertyDialogAction(getTextEditor().getEditorSite(), new ISelectionProvider() {
-			public void addSelectionChangedListener(ISelectionChangedListener listener) {
-				// do nothing
-			}
-
-			public ISelection getSelection() {
-				return new StructuredSelection(breakpoints);
-			}
-
-			public void removeSelectionChangedListener(ISelectionChangedListener listener) {
-				// do nothing
-			}
-
-			public void setSelection(ISelection selection) {
-				// do nothing
-			}
-		});
-		action.run();
-	}
-
-	public void update() {
-		boolean enableThisAction = hasMarkers();
-		setEnabled(enableThisAction);
-		breakpoints = getBreakpoints(getMarkers());
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ManageBreakpointAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ManageBreakpointAction.java
deleted file mode 100644
index ddc7ac6..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ManageBreakpointAction.java
+++ /dev/null
@@ -1,90 +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.wst.sse.ui.internal.debug;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.jface.text.source.IVerticalRuler;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-/**
- * ManageBreakpointAction - Enables and Disables
- */
-public class ManageBreakpointAction extends BreakpointRulerAction {
-
-	protected IBreakpoint[] breakpoints = null;
-	private boolean doEnable = true;
-
-	/**
-	 * @param editor
-	 * @param rulerInfo
-	 */
-	public ManageBreakpointAction(ITextEditor editor, IVerticalRuler rulerInfo) {
-		super(editor, rulerInfo);
-		setEnabled(true);
-	}
-
-	/**
-	 *  
-	 */
-	protected void disableBreakpoints(IBreakpoint[] breakpoints) {
-		for (int i = 0; i < breakpoints.length; i++) {
-			try {
-				breakpoints[i].setEnabled(false);
-			} catch (CoreException e) {
-				Logger.logException(e);
-			}
-		}
-	}
-
-	protected void enableBreakpoints(IBreakpoint[] breakpoints) {
-		for (int i = 0; i < breakpoints.length; i++) {
-			try {
-				breakpoints[i].setEnabled(true);
-			} catch (CoreException e) {
-				Logger.logException(e);
-			}
-		}
-	}
-
-	public void run() {
-		if (doEnable)
-			enableBreakpoints(breakpoints);
-		else
-			disableBreakpoints(breakpoints);
-	}
-
-	public void update() {
-		// doEnable means "enable" instead of "disable"
-		doEnable = true;
-		breakpoints = getBreakpoints(getMarkers());
-		for (int i = 0; doEnable && i < breakpoints.length; i++) {
-			IBreakpoint breakpoint = breakpoints[i];
-			try {
-				if (breakpoint.isEnabled()) {
-					doEnable = false;
-				}
-			} catch (CoreException e) {
-				Logger.logException("breakpoint not responding to isEnabled: " + breakpoint, e); //$NON-NLS-1$
-			}
-		}
-		setEnabled(breakpoints != null && breakpoints.length > 0);
-		if (doEnable)
-			setText(SSEUIMessages.ManageBreakpointAction_0); //$NON-NLS-1$
-		else
-			setText(SSEUIMessages.ManageBreakpointAction_1); //$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointAction.java
deleted file mode 100644
index 84937bf..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointAction.java
+++ /dev/null
@@ -1,200 +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.wst.sse.ui.internal.debug;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.source.IVerticalRulerInfo;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.ISelectionListener;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.IDocumentProviderExtension4;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.extension.BreakpointProviderBuilder;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider;
-
-/**
- * ToggleBreakpointAction
- */
-public class ToggleBreakpointAction extends BreakpointRulerAction {
-	IAction fFallbackAction;
-
-	/**
-	 * @param editor
-	 * @param rulerInfo
-	 */
-	public ToggleBreakpointAction(ITextEditor editor, IVerticalRulerInfo rulerInfo) {
-		super(editor, rulerInfo);
-		setText(SSEUIMessages.ToggleBreakpointAction_0); //$NON-NLS-1$
-	}
-
-	public ToggleBreakpointAction(ITextEditor editor, IVerticalRulerInfo rulerInfo, IAction fallbackAction) {
-		this(editor, rulerInfo);
-		fFallbackAction = fallbackAction;
-	}
-
-	protected boolean createBreakpoints(int lineNumber) {
-		/*
-		 * Note: we'll always allow processing to continue, even for a "read
-		 * only" IStorageEditorInput, for the ActiveScript debugger. But this
-		 * means sometimes the ActiveScript provider might get an input from
-		 * CVS or something that is not related to debugging.
-		 */
-
-		ITextEditor editor = getTextEditor();
-		IEditorInput input = editor.getEditorInput();
-		IDocument document = editor.getDocumentProvider().getDocument(input);
-		if (document == null)
-			return false;
-
-		String contentType = getContentType(document);
-		IBreakpointProvider[] providers = BreakpointProviderBuilder.getInstance().getBreakpointProviders(editor, contentType, getFileExtension(input));
-
-		int pos = -1;
-		ISourceEditingTextTools tools = (ISourceEditingTextTools) editor.getAdapter(ISourceEditingTextTools.class);
-		if (tools != null) {
-			pos = tools.getCaretOffset();
-		}
-
-		final int n = providers.length;
-		List errors = new ArrayList(0);
-		for (int i = 0; i < n; i++) {
-			try {
-				if (Debug.debugBreakpoints)
-					System.out.println(providers[i].getClass().getName() + " adding breakpoint to line " + lineNumber); //$NON-NLS-1$
-				IStatus status = providers[i].addBreakpoint(document, input, lineNumber, pos);
-				if (status != null && !status.isOK()) {
-					errors.add(status);
-				}
-			}
-			catch (CoreException e) {
-				errors.add(e.getStatus());
-			}
-			catch (Exception t) {
-				Logger.logException("exception while adding breakpoint", t); //$NON-NLS-1$
-			}
-		}
-
-		if (errors.size() > 0) {
-			Shell shell = editor.getSite().getShell();
-			MultiStatus allStatus = new MultiStatus(SSEUIPlugin.ID, IStatus.INFO, (IStatus[]) errors.toArray(new IStatus[0]), SSEUIMessages.ManageBreakpoints_error_adding_message1, null); //$NON-NLS-1$
-			/*
-			 * Show for conditions more severe than INFO or when no
-			 * breakpoints were created
-			 */
-			if (allStatus.getSeverity() > IStatus.INFO || getBreakpoints(getMarkers()).length < 1) {
-				ErrorDialog.openError(shell, SSEUIMessages.ManageBreakpoints_error_adding_title1, SSEUIMessages.ManageBreakpoints_error_adding_message1, allStatus); //$NON-NLS-1$ //$NON-NLS-2$
-				return false;
-			}
-		}
-		/*
-		 * Although no errors were reported, no breakpoints exist on this line
-		 * after having run the existing providers. Run the fallback action.
-		 */
-		else if (fFallbackAction != null && !hasMarkers()) {
-			if (fFallbackAction instanceof ISelectionListener) {
-				((ISelectionListener) fFallbackAction).selectionChanged(null, null);
-			}
-			fFallbackAction.run();
-		}
-		return true;
-	}
-
-	protected String getContentType(IDocument document) {
-		IModelManager mgr = StructuredModelManager.getModelManager();
-		String contentType = null;
-
-		IDocumentProvider provider = fTextEditor.getDocumentProvider();
-		if (provider instanceof IDocumentProviderExtension4) {
-			try {
-				IContentType type = ((IDocumentProviderExtension4) provider).getContentType(fTextEditor.getEditorInput());
-				if (type != null)
-					contentType = type.getId();
-			}
-			catch (CoreException e) {
-				/*
-				 * A failure accessing the underlying store really isn't
-				 * interesting, although it can be a problem for
-				 * IStorageEditorInputs.
-				 */
-			}
-		}
-
-		if (contentType == null) {
-			IStructuredModel model = null;
-			try {
-				model = mgr.getExistingModelForRead(document);
-				if (model != null) {
-					contentType = model.getContentTypeIdentifier();
-				}
-			}
-			finally {
-				if (model != null) {
-					model.releaseFromRead();
-				}
-			}
-		}
-		return contentType;
-	}
-
-	protected void removeBreakpoints(int lineNumber) {
-		IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
-		IBreakpoint[] breakpoints = getBreakpoints(getMarkers());
-		for (int i = 0; i < breakpoints.length; i++) {
-			try {
-				breakpoints[i].getMarker().delete();
-				breakpointManager.removeBreakpoint(breakpoints[i], true);
-			}
-			catch (CoreException e) {
-				Logger.logException(e);
-			}
-		}
-	}
-
-	public void run() {
-		int lineNumber = fRulerInfo.getLineOfLastMouseButtonActivity() + 1;
-		boolean doAdd = !hasMarkers();
-		if (doAdd)
-			createBreakpoints(lineNumber);
-		else
-			removeBreakpoints(lineNumber);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IUpdate#update()
-	 */
-	public void update() {
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointsTarget.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointsTarget.java
deleted file mode 100644
index e0dd312..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/debug/ToggleBreakpointsTarget.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.debug;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.IBreakpointManager;
-import org.eclipse.debug.core.model.IBreakpoint;
-import org.eclipse.debug.ui.actions.IToggleBreakpointsTarget;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.texteditor.AbstractMarkerAnnotationModel;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-/**
- * @author nsd
- */
-public class ToggleBreakpointsTarget implements IToggleBreakpointsTarget {
-	static final IToggleBreakpointsTarget instance = new ToggleBreakpointsTarget();
-
-	public static IToggleBreakpointsTarget getInstance() {
-		return instance;
-	}
-
-	/**
-	 * 
-	 */
-	private ToggleBreakpointsTarget() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleLineBreakpoints(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean canToggleLineBreakpoints(IWorkbenchPart part, ISelection selection) {
-		ITextEditor editor = (ITextEditor) part.getAdapter(ITextEditor.class);
-		if (selection instanceof ITextSelection) {
-			ITextSelection textSelection = (ITextSelection) selection;
-			IDocument document = editor.getDocumentProvider().getDocument(editor.getEditorInput());
-			if (document != null && textSelection.getOffset() > -1) {
-				int lineNumber = -1;
-				try {
-					lineNumber = document.getLineOfOffset(textSelection.getOffset());
-				}
-				catch (BadLocationException e) {
-				}
-				if (lineNumber >= 0) {
-					ToggleBreakpointAction toggler = new ToggleBreakpointAction(editor, null);
-					toggler.update();
-					return toggler.isEnabled();
-				}
-			}
-		}
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean canToggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#canToggleWatchpoints(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public boolean canToggleWatchpoints(IWorkbenchPart part, ISelection selection) {
-		return false;
-	}
-
-	private IBreakpoint[] getBreakpoints(IResource resource, IDocument document, AbstractMarkerAnnotationModel model, int lineNumber) {
-		List markers = new ArrayList();
-		if (resource != null && model != null && resource.exists()) {
-			try {
-				IMarker[] allMarkers = resource.findMarkers(IBreakpoint.LINE_BREAKPOINT_MARKER, true, IResource.DEPTH_ZERO);
-				if (allMarkers != null) {
-					for (int i = 0; i < allMarkers.length; i++) {
-						Position p = model.getMarkerPosition(allMarkers[i]);
-						int markerLine = -1;
-						try {
-							markerLine = document.getLineOfOffset(p.getOffset());
-						}
-						catch (BadLocationException e1) {
-						}
-						if (markerLine == lineNumber) {
-							markers.add(allMarkers[i]);
-						}
-					}
-				}
-			}
-			catch (CoreException x) {
-			}
-		}
-		IBreakpointManager manager = DebugPlugin.getDefault().getBreakpointManager();
-		List breakpoints = new ArrayList(markers.size());
-		for (int i = 0; i < markers.size(); i++) {
-			IBreakpoint breakpoint = manager.getBreakpoint((IMarker) markers.get(i));
-			if (breakpoint != null) {
-				breakpoints.add(breakpoint);
-			}
-		}
-		return (IBreakpoint[]) breakpoints.toArray(new IBreakpoint[0]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleLineBreakpoints(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void toggleLineBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
-		ITextEditor editor = (ITextEditor) part.getAdapter(ITextEditor.class);
-		if (selection instanceof ITextSelection) {
-			ITextSelection textSelection = (ITextSelection) selection;
-			IDocument document = editor.getDocumentProvider().getDocument(editor.getEditorInput());
-			int lineNumber = -1;
-			try {
-				lineNumber = document.getLineOfOffset(textSelection.getOffset());
-			}
-			catch (BadLocationException e) {
-			}
-			if (lineNumber >= 0) {
-				ToggleBreakpointAction toggler = new ToggleBreakpointAction(editor, null);
-				toggler.update();
-				if (toggler.isEnabled()) {
-					IResource resource = toggler.getResource();
-					AbstractMarkerAnnotationModel model = toggler.getAnnotationModel();
-					IBreakpoint[] breakpoints = getBreakpoints(resource, document, model, lineNumber);
-					if (breakpoints.length > 0) {
-						IBreakpointManager breakpointManager = DebugPlugin.getDefault().getBreakpointManager();
-						for (int i = 0; i < breakpoints.length; i++) {
-							breakpoints[i].getMarker().delete();
-							breakpointManager.removeBreakpoint(breakpoints[i], true);
-						}
-					}
-					else {
-						toggler.createBreakpoints(lineNumber + 1);
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleMethodBreakpoints(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void toggleMethodBreakpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.debug.ui.actions.IToggleBreakpointsTarget#toggleWatchpoints(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void toggleWatchpoints(IWorkbenchPart part, ISelection selection) throws CoreException {
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/HTML2TextReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/HTML2TextReader.java
deleted file mode 100644
index 35a6366..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/HTML2TextReader.java
+++ /dev/null
@@ -1,304 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.ui.internal.derived;
-
-import java.io.IOException;
-import java.io.PushbackReader;
-import java.io.Reader;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.jface.text.TextPresentation;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-
-/*
- * Copied from org.eclipse.jdt.internal.ui.text.HTML2TextReader Modifications
- * were made to add br/ tag and fix warnings
- */
-/**
- * Reads the text contents from a reader of HTML contents and translates the
- * tags or cut them out.
- */
-public class HTML2TextReader extends SubstitutionTextReader {
-
-	private static final String EMPTY_STRING= ""; //$NON-NLS-1$
-	private static final Map fgEntityLookup;
-	private static final Set fgTags;
-
-	static {
-
-		fgTags= new HashSet();
-		fgTags.add("b"); //$NON-NLS-1$
-		fgTags.add("br"); //$NON-NLS-1$
-		fgTags.add("br/");//$NON-NLS-1$
-		fgTags.add("h5"); //$NON-NLS-1$
-		fgTags.add("p"); //$NON-NLS-1$
-		fgTags.add("dl"); //$NON-NLS-1$
-		fgTags.add("dt"); //$NON-NLS-1$
-		fgTags.add("dd"); //$NON-NLS-1$
-		fgTags.add("li"); //$NON-NLS-1$
-		fgTags.add("ul"); //$NON-NLS-1$
-		fgTags.add("pre"); //$NON-NLS-1$
-
-		fgEntityLookup= new HashMap(7);
-		fgEntityLookup.put("lt", "<"); //$NON-NLS-1$ //$NON-NLS-2$
-		fgEntityLookup.put("gt", ">"); //$NON-NLS-1$ //$NON-NLS-2$
-		fgEntityLookup.put("nbsp", " "); //$NON-NLS-1$ //$NON-NLS-2$
-		fgEntityLookup.put("amp", "&"); //$NON-NLS-1$ //$NON-NLS-2$
-		fgEntityLookup.put("circ", "^"); //$NON-NLS-1$ //$NON-NLS-2$
-		fgEntityLookup.put("tilde", "~"); //$NON-NLS-2$ //$NON-NLS-1$
-		fgEntityLookup.put("quot", "\"");		 //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	private int fCounter= 0;
-	private TextPresentation fTextPresentation;
-	private int fBold= 0;
-	private int fStartOffset= -1;
-	private boolean fInParagraph= false;
-	private boolean fIsPreformattedText= false;
-
-	/**
-	 * Transforms the html text from the reader to formatted text.
-	 * @param presentation If not <code>null</code>, formattings will be applied to
-	 * the presentation.
-	*/
-	public HTML2TextReader(Reader reader, TextPresentation presentation) {
-		super(new PushbackReader(reader));
-		fTextPresentation= presentation;
-	}
-
-	public int read() throws IOException {
-		int c= super.read();
-		if (c != -1)
-			++ fCounter;
-		return c;
-	}
-
-	protected void startBold() {
-		if (fBold == 0)
-			fStartOffset= fCounter;
-		++ fBold;
-	}
-
-	protected void startPreformattedText() {
-		fIsPreformattedText= true;
-		setSkipWhitespace(false);
-	}
-
-	protected void stopPreformattedText() {
-		fIsPreformattedText= false;
-		setSkipWhitespace(true);
-	}
-
-	protected void stopBold() {
-		-- fBold;
-		if (fBold == 0) {
-			if (fTextPresentation != null) {
-				fTextPresentation.addStyleRange(new StyleRange(fStartOffset, fCounter - fStartOffset, null, null, SWT.BOLD));
-			}
-			fStartOffset= -1;
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jdt.internal.ui.text.SubstitutionTextReader#computeSubstitution(int)
-	 */
-	protected String computeSubstitution(int c) throws IOException {
-
-		if (c == '<')
-			return  processHTMLTag();
-		else if (c == '&')
-			return processEntity();
-		else if (fIsPreformattedText)
-			return processPreformattedText(c);
-
-		return null;
-	}
-
-	private String html2Text(String html) {
-
-		if (html == null || html.length() == 0)
-			return EMPTY_STRING;
-
-		String tag= html;
-		if ('/' == tag.charAt(0))
-			tag= tag.substring(1);
-
-		if (!fgTags.contains(tag))
-			return EMPTY_STRING;
-
-
-		if ("pre".equals(html)) { //$NON-NLS-1$
-			startPreformattedText();
-			return EMPTY_STRING;
-		}
-
-		if ("/pre".equals(html)) { //$NON-NLS-1$
-			stopPreformattedText();
-			return EMPTY_STRING;
-		}
-
-		if (fIsPreformattedText)
-			return EMPTY_STRING;
-
-		if ("b".equals(html)) { //$NON-NLS-1$
-			startBold();
-			return EMPTY_STRING;
-		}
-
-		if ("h5".equals(html) || "dt".equals(html)) { //$NON-NLS-1$ //$NON-NLS-2$
-			startBold();
-			return EMPTY_STRING;
-		}
-
-		if ("dl".equals(html)) //$NON-NLS-1$
-			return LINE_DELIM;
-
-		if ("dd".equals(html)) //$NON-NLS-1$
-			return "\t"; //$NON-NLS-1$
-
-		if ("li".equals(html)) //$NON-NLS-1$
-			return LINE_DELIM + "\t" + "- "; //$NON-NLS-1$ //$NON-NLS-2$
-
-		if ("/b".equals(html)) { //$NON-NLS-1$
-			stopBold();
-			return EMPTY_STRING;
-		}
-
-		if ("p".equals(html))  { //$NON-NLS-1$
-			fInParagraph= true;
-			return LINE_DELIM;
-		}
-
-		if ("br".equals(html) || "br/".equals(html)) //$NON-NLS-1$ //$NON-NLS-2$
-			return LINE_DELIM;
-
-		if ("/p".equals(html))  { //$NON-NLS-1$
-			boolean inParagraph= fInParagraph;
-			fInParagraph= false;
-			return inParagraph ? EMPTY_STRING : LINE_DELIM;
-		}
-
-		if ("/h5".equals(html) || "/dt".equals(html)) { //$NON-NLS-1$ //$NON-NLS-2$
-			stopBold();
-			return LINE_DELIM;
-		}
-
-		if ("/dd".equals(html)) //$NON-NLS-1$
-			return LINE_DELIM;
-
-		return EMPTY_STRING;
-	}
-
-	/*
-	 * A '<' has been read. Process a html tag
-	 */
-	private String processHTMLTag() throws IOException {
-
-		StringBuffer buf= new StringBuffer();
-		int ch;
-		do {
-
-			ch= nextChar();
-
-			while (ch != -1 && ch != '>') {
-				buf.append(Character.toLowerCase((char) ch));
-				ch= nextChar();
-				if (ch == '"'){
-					buf.append(Character.toLowerCase((char) ch));
-					ch= nextChar();
-					while (ch != -1 && ch != '"'){
-						buf.append(Character.toLowerCase((char) ch));
-						ch= nextChar();
-					}
-				}
-				if (ch == '<'){
-					unread(ch);
-					return '<' + buf.toString();
-				}
-			}
-
-			if (ch == -1)
-				return null;
-
-			int tagLen= buf.length();
-			// needs special treatment for comments
-			if ((tagLen >= 3 && "!--".equals(buf.substring(0, 3))) //$NON-NLS-1$
-				&& !(tagLen >= 5 && "--".equals(buf.substring(tagLen - 2)))) { //$NON-NLS-1$
-				// unfinished comment
-				buf.append(ch);
-			} else {
-				break;
-			}
-		} while (true);
-
-		return html2Text(buf.toString());
-	}
-
-	private String processPreformattedText(int c) {
-		if  (c == '\r' || c == '\n')
-			fCounter++;
-		return null;
-	}
-
-
-	private void unread(int ch) throws IOException {
-		((PushbackReader) getReader()).unread(ch);
-	}
-
-	protected String entity2Text(String symbol) {
-		if (symbol.length() > 1 && symbol.charAt(0) == '#') {
-			int ch;
-			try {
-				if (symbol.charAt(1) == 'x') {
-					ch= Integer.parseInt(symbol.substring(2), 16);
-				} else {
-					ch= Integer.parseInt(symbol.substring(1), 10);
-				}
-				return EMPTY_STRING + (char)ch;
-			} catch (NumberFormatException e) {
-				// log problem?
-			}
-		} else {
-			String str= (String) fgEntityLookup.get(symbol);
-			if (str != null) {
-				return str;
-			}
-		}
-		return "&" + symbol; // not found //$NON-NLS-1$
-	}
-
-	/*
-	 * A '&' has been read. Process a entity
-	 */
-	private String processEntity() throws IOException {
-		StringBuffer buf= new StringBuffer();
-		int ch= nextChar();
-		while (Character.isLetterOrDigit((char)ch) || ch == '#') {
-			buf.append((char) ch);
-			ch= nextChar();
-		}
-
-		if (ch == ';')
-			return entity2Text(buf.toString());
-
-		buf.insert(0, '&');
-		if (ch != -1)
-			buf.append((char) ch);
-		return buf.toString();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/HTMLTextPresenter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/HTMLTextPresenter.java
deleted file mode 100644
index 4774352..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/HTMLTextPresenter.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.derived;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.Iterator;
-
-import org.eclipse.jface.text.DefaultInformationControl;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextPresentation;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-/*
- * Copied from org.eclipse.jdt.internal.ui.text.HTMLTextPresenter
- * Modifications were made to use own Logger to log exception, and the
- * ellipses constant
- */
-public class HTMLTextPresenter implements DefaultInformationControl.IInformationPresenter {
-	private static final String ELLIPSES = "..."; //$NON-NLS-1$
-	private static final String LINE_DELIM = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private int fCounter;
-	private boolean fEnforceUpperLineLimit;
-
-	public HTMLTextPresenter(boolean enforceUpperLineLimit) {
-		super();
-		fEnforceUpperLineLimit = enforceUpperLineLimit;
-	}
-
-	public HTMLTextPresenter() {
-		this(true);
-	}
-
-	protected Reader createReader(String hoverInfo, TextPresentation presentation) {
-		return new HTML2TextReader(new StringReader(hoverInfo), presentation);
-	}
-
-	protected void adaptTextPresentation(TextPresentation presentation, int offset, int insertLength) {
-
-		int yoursStart = offset;
-		int yoursEnd = offset + insertLength - 1;
-		yoursEnd = Math.max(yoursStart, yoursEnd);
-
-		Iterator e = presentation.getAllStyleRangeIterator();
-		while (e.hasNext()) {
-
-			StyleRange range = (StyleRange) e.next();
-
-			int myStart = range.start;
-			int myEnd = range.start + range.length - 1;
-			myEnd = Math.max(myStart, myEnd);
-
-			if (myEnd < yoursStart)
-				continue;
-
-			if (myStart < yoursStart)
-				range.length += insertLength;
-			else
-				range.start += insertLength;
-		}
-	}
-
-	private void append(StringBuffer buffer, String string, TextPresentation presentation) {
-
-		int length = string.length();
-		buffer.append(string);
-
-		if (presentation != null)
-			adaptTextPresentation(presentation, fCounter, length);
-
-		fCounter += length;
-	}
-
-	private String getIndent(String line) {
-		int length = line.length();
-
-		int i = 0;
-		while (i < length && Character.isWhitespace(line.charAt(i)))
-			++i;
-
-		return (i == length ? line : line.substring(0, i)) + " "; //$NON-NLS-1$
-	}
-
-	/*
-	 * @see IHoverInformationPresenter#updatePresentation(Display display,
-	 *      String, TextPresentation, int, int)
-	 */
-	public String updatePresentation(Display display, String hoverInfo, TextPresentation presentation, int maxWidth, int maxHeight) {
-
-		if (hoverInfo == null)
-			return null;
-
-		GC gc = new GC(display);
-		try {
-
-			StringBuffer buffer = new StringBuffer();
-			int maxNumberOfLines = Math.round(maxHeight / gc.getFontMetrics().getHeight());
-
-			fCounter = 0;
-			LineBreakingReader reader = new LineBreakingReader(createReader(hoverInfo, presentation), gc, maxWidth);
-
-			boolean lastLineFormatted = false;
-			String lastLineIndent = null;
-
-			String line = reader.readLine();
-			boolean lineFormatted = reader.isFormattedLine();
-			boolean firstLineProcessed = false;
-
-			while (line != null) {
-
-				if (fEnforceUpperLineLimit && maxNumberOfLines <= 0)
-					break;
-
-				if (firstLineProcessed) {
-					if (!lastLineFormatted)
-						append(buffer, LINE_DELIM, null);
-					else {
-						append(buffer, LINE_DELIM, presentation);
-						if (lastLineIndent != null)
-							append(buffer, lastLineIndent, presentation);
-					}
-				}
-
-				append(buffer, line, null);
-				firstLineProcessed = true;
-
-				lastLineFormatted = lineFormatted;
-				if (!lineFormatted)
-					lastLineIndent = null;
-				else if (lastLineIndent == null)
-					lastLineIndent = getIndent(line);
-
-				line = reader.readLine();
-				lineFormatted = reader.isFormattedLine();
-
-				maxNumberOfLines--;
-			}
-
-			if (line != null && buffer.length() > 0) {
-				append(buffer, LINE_DELIM, lineFormatted ? presentation : null);
-				append(buffer, ELLIPSES, presentation);
-			}
-
-			return trim(buffer, presentation);
-
-		} catch (IOException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			return null;
-
-		} finally {
-			gc.dispose();
-		}
-	}
-
-	private String trim(StringBuffer buffer, TextPresentation presentation) {
-
-		int length = buffer.length();
-
-		int end = length - 1;
-		while (end >= 0 && Character.isWhitespace(buffer.charAt(end)))
-			--end;
-
-		if (end == -1)
-			return ""; //$NON-NLS-1$
-
-		if (end < length - 1)
-			buffer.delete(end + 1, length);
-		else
-			end = length;
-
-		int start = 0;
-		while (start < end && Character.isWhitespace(buffer.charAt(start)))
-			++start;
-
-		buffer.delete(0, start);
-		presentation.setResultWindow(new Region(start, buffer.length()));
-		return buffer.toString();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/LineBreakingReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/LineBreakingReader.java
deleted file mode 100644
index 86f7f68..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/LineBreakingReader.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.derived;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.Reader;
-import com.ibm.icu.text.BreakIterator;
-
-import org.eclipse.swt.graphics.GC;
-
-/**
- * Copied from org.eclipse.jdt.internal.ui.text.LineBreakingReader.
- * Modifications were made to fix warnings.
- */
-/*
- * Not a real reader. Could change if requested
- */
-public class LineBreakingReader {
-	private GC fGC;
-
-	private String fLine;
-
-	private BreakIterator fLineBreakIterator;
-	private int fMaxWidth;
-	private int fOffset;
-
-
-	private BufferedReader fReader;
-
-	/**
-	 * Creates a reader that breaks an input text to fit in a given width.
-	 * 
-	 * @param reader
-	 *            Reader of the input text
-	 * @param gc
-	 *            The graphic context that defines the currently used font
-	 *            sizes
-	 * @param maxLineWidth
-	 *            The max width (pixes) where the text has to fit in
-	 */
-	public LineBreakingReader(Reader reader, GC gc, int maxLineWidth) {
-		fReader = new BufferedReader(reader);
-		fGC = gc;
-		fMaxWidth = maxLineWidth;
-		fOffset = 0;
-		fLine = null;
-		fLineBreakIterator = BreakIterator.getLineInstance();
-	}
-
-	private int findNextBreakOffset(int currOffset) {
-		int currWidth = 0;
-		int nextOffset = fLineBreakIterator.following(currOffset);
-		while (nextOffset != BreakIterator.DONE) {
-			String word = fLine.substring(currOffset, nextOffset);
-			int wordWidth = fGC.textExtent(word).x;
-			int nextWidth = wordWidth + currWidth;
-			if (nextWidth > fMaxWidth) {
-				if (currWidth > 0) {
-					return currOffset;
-				}
-				return nextOffset;
-			}
-			currWidth = nextWidth;
-			currOffset = nextOffset;
-			nextOffset = fLineBreakIterator.next();
-		}
-		return nextOffset;
-	}
-
-	private int findWordBegin(int idx) {
-		while (idx < fLine.length() && Character.isWhitespace(fLine.charAt(idx))) {
-			idx++;
-		}
-		return idx;
-	}
-
-	public boolean isFormattedLine() {
-		return fLine != null;
-	}
-
-	/**
-	 * Reads the next line. The lengths of the line will not exceed the gived
-	 * maximum width.
-	 */
-	public String readLine() throws IOException {
-		if (fLine == null) {
-			String line = fReader.readLine();
-			if (line == null)
-				return null;
-
-			int lineLen = fGC.textExtent(line).x;
-			if (lineLen < fMaxWidth) {
-				return line;
-			}
-			fLine = line;
-			fLineBreakIterator.setText(line);
-			fOffset = 0;
-		}
-		int breakOffset = findNextBreakOffset(fOffset);
-		String res;
-		if (breakOffset != BreakIterator.DONE) {
-			res = fLine.substring(fOffset, breakOffset);
-			fOffset = findWordBegin(breakOffset);
-			if (fOffset == fLine.length()) {
-				fLine = null;
-			}
-		} else {
-			res = fLine.substring(fOffset);
-			fLine = null;
-		}
-		return res;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/SingleCharReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/SingleCharReader.java
deleted file mode 100644
index a097d82..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/SingleCharReader.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.derived;
-
-import java.io.IOException;
-import java.io.Reader;
-
-/*
- * Copied from org.eclipse.jdt.internal.corext.javadoc.SingleCharReader.
- * Modification was made to fix statement unnecessarily nested within else
- * clause warning in read(..).
- */
-public abstract class SingleCharReader extends Reader {
-
-	/**
-	 * @see Reader#read()
-	 */
-	public abstract int read() throws IOException;
-
-	/**
-	 * @see Reader#read(char[],int,int)
-	 */
-	public int read(char cbuf[], int off, int len) throws IOException {
-		int end = off + len;
-		for (int i = off; i < end; i++) {
-			int ch = read();
-			if (ch == -1) {
-				if (i == off) {
-					return -1;
-				}
-				return i - off;
-			}
-			cbuf[i] = (char) ch;
-		}
-		return len;
-	}
-
-	/**
-	 * @see Reader#ready()
-	 */
-	public boolean ready() throws IOException {
-		return true;
-	}
-
-	/**
-	 * Gets the content as a String
-	 */
-	public String getString() throws IOException {
-		StringBuffer buf = new StringBuffer();
-		int ch;
-		while ((ch = read()) != -1) {
-			buf.append((char) ch);
-		}
-		return buf.toString();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/SubstitutionTextReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/SubstitutionTextReader.java
deleted file mode 100644
index 2fd9b68..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/derived/SubstitutionTextReader.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.derived;
-
-import java.io.IOException;
-import java.io.Reader;
-
-/*
- * Copied from org.eclipse.jdt.internal.ui.text.SubstitutionTextReader.
- * Modifications were made to read() to allow whitespaces and fixed statement
- * unnecessarily nested within else clause warning in nextChar()
- */
-/**
- * Reads the text contents from a reader and computes for each character a
- * potential substitution. The substitution may eat more characters than only
- * the one passed into the computation routine.
- */
-public abstract class SubstitutionTextReader extends SingleCharReader {
-
-	protected static final String LINE_DELIM = System.getProperty("line.separator", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private Reader fReader;
-	protected boolean fWasWhiteSpace;
-	private int fCharAfterWhiteSpace;
-
-	/**
-	 * Tells whether white space characters are skipped.
-	 */
-	private boolean fSkipWhiteSpace = true;
-
-	private boolean fReadFromBuffer;
-	private StringBuffer fBuffer;
-	private int fIndex;
-
-
-	protected SubstitutionTextReader(Reader reader) {
-		fReader = reader;
-		fBuffer = new StringBuffer();
-		fIndex = 0;
-		fReadFromBuffer = false;
-		fCharAfterWhiteSpace = -1;
-		fWasWhiteSpace = true;
-	}
-
-	/**
-	 * Implement to compute the substitution for the given character and if
-	 * necessary subsequent characters. Use <code>nextChar</code> to read
-	 * subsequent characters.
-	 */
-	protected abstract String computeSubstitution(int c) throws IOException;
-
-	/**
-	 * Returns the internal reader.
-	 */
-	protected Reader getReader() {
-		return fReader;
-	}
-
-	/**
-	 * Returns the next character.
-	 */
-	protected int nextChar() throws IOException {
-		fReadFromBuffer = (fBuffer.length() > 0);
-		if (fReadFromBuffer) {
-			char ch = fBuffer.charAt(fIndex++);
-			if (fIndex >= fBuffer.length()) {
-				fBuffer.setLength(0);
-				fIndex = 0;
-			}
-			return ch;
-		}
-		int ch = fCharAfterWhiteSpace;
-		if (ch == -1) {
-			ch = fReader.read();
-		}
-		if (fSkipWhiteSpace && Character.isWhitespace((char) ch)) {
-			do {
-				ch = fReader.read();
-			} while (Character.isWhitespace((char) ch));
-			if (ch != -1) {
-				fCharAfterWhiteSpace = ch;
-				return ' ';
-			}
-		} else {
-			fCharAfterWhiteSpace = -1;
-		}
-		return ch;
-	}
-
-	/**
-	 * @see Reader#read()
-	 */
-	public int read() throws IOException {
-		int c;
-		do {
-
-			c = nextChar();
-			while (!fReadFromBuffer) {
-				String s = computeSubstitution(c);
-				if (s == null)
-					break;
-				if (s.length() > 0)
-					fBuffer.insert(0, s);
-				c = nextChar();
-			}
-
-		} while (fSkipWhiteSpace && fWasWhiteSpace && ((c == ' ') && !fReadFromBuffer));
-		/*
-		 * SSE: For above and below check, if whitespace is read from buffer,
-		 * do not skip
-		 */
-		fWasWhiteSpace = ((c == ' ' && !fReadFromBuffer) || c == '\r' || c == '\n');
-		return c;
-	}
-
-	/**
-	 * @see Reader#ready()
-	 */
-	public boolean ready() throws IOException {
-		return fReader.ready();
-	}
-
-	/**
-	 * @see Reader#close()
-	 */
-	public void close() throws IOException {
-		fReader.close();
-	}
-
-	/**
-	 * @see Reader#reset()
-	 */
-	public void reset() throws IOException {
-		fReader.reset();
-		fWasWhiteSpace = true;
-		fCharAfterWhiteSpace = -1;
-		fBuffer.setLength(0);
-		fIndex = 0;
-	}
-
-	protected final void setSkipWhitespace(boolean state) {
-		fSkipWhiteSpace = state;
-	}
-
-	protected final boolean isSkippingWhitespace() {
-		return fSkipWhiteSpace;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/edit/util/SharedEditorPluginImageHelper.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/edit/util/SharedEditorPluginImageHelper.java
deleted file mode 100644
index 2111583..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/edit/util/SharedEditorPluginImageHelper.java
+++ /dev/null
@@ -1,58 +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.wst.sse.ui.internal.edit.util;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImageHelper;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImages;
-
-
-public class SharedEditorPluginImageHelper {
-	public static final String IMG_DLCL_COLLAPSEALL = EditorPluginImages.IMG_DLCL_COLLAPSEALL;
-	public static final String IMG_DLCL_DELETE = EditorPluginImages.IMG_DLCL_DELETE;
-	public static final String IMG_DLCL_SYNCED = EditorPluginImages.IMG_DLCL_SYNCED;
-	public static final String IMG_ELCL_COLLAPSEALL = EditorPluginImages.IMG_ELCL_COLLAPSEALL;
-	public static final String IMG_ELCL_DELETE = EditorPluginImages.IMG_ELCL_DELETE;
-	public static final String IMG_ELCL_SYNCED = EditorPluginImages.IMG_ELCL_SYNCED;
-
-	/**
-	 * Retrieves the specified image from the source editor plugin's image
-	 * registry. Note: The returned <code>Image</code> is managed by the
-	 * workbench; clients must <b>not </b> dispose of the returned image.
-	 * 
-	 * @param symbolicName
-	 *            the symbolic name of the image; there are constants declared
-	 *            in this class for build-in images that come with the source
-	 *            editor
-	 * @return the image, or <code>null</code> if not found
-	 */
-	public static Image getImage(String symbolicName) {
-		return EditorPluginImageHelper.getInstance().getImage(symbolicName);
-	}
-
-	/**
-	 * Retrieves the image descriptor for specified image from the source
-	 * editor plugin's image registry. Unlike <code>Image</code>s, image
-	 * descriptors themselves do not need to be disposed.
-	 * 
-	 * @param symbolicName
-	 *            the symbolic name of the image; there are constants declared
-	 *            in this interface for build-in images that come with the
-	 *            source editor
-	 * @return the image descriptor, or <code>null</code> if not found
-	 */
-	public static ImageDescriptor getImageDescriptor(String symbolicName) {
-		return EditorPluginImageHelper.getInstance().getImageDescriptor(symbolicName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorModelUtil.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorModelUtil.java
deleted file mode 100644
index 04dca68..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorModelUtil.java
+++ /dev/null
@@ -1,77 +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.wst.sse.ui.internal.editor;
-
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryExtension;
-import org.eclipse.wst.sse.ui.internal.util.Assert;
-
-
-/**
- * INTERNAL USAGE ONLY
- * 
- * @author nsd
- */
-public class EditorModelUtil {
-
-	public static void addFactoriesTo(final IStructuredModel structuredModel) {
-		if (structuredModel == null)
-			return;
-		
-		AdapterFactoryRegistry adapterRegistry = SSEUIPlugin.getDefault().getAdapterFactoryRegistry();
-		String contentTypeId = structuredModel.getContentTypeIdentifier();
-
-		Iterator adapterFactoryProviders = null;
-		if (adapterRegistry instanceof AdapterFactoryRegistryExtension) {
-			adapterFactoryProviders = ((AdapterFactoryRegistryExtension) adapterRegistry).getAdapterFactories(contentTypeId);
-		}
-		else {
-			adapterFactoryProviders = adapterRegistry.getAdapterFactories();
-		}
-
-		FactoryRegistry factoryRegistry = structuredModel.getFactoryRegistry();
-		Assert.isNotNull(factoryRegistry, SSEUIMessages.EditorModelUtil_0); //$NON-NLS-1$
-		// Add all those appropriate for this particular type of content
-		while (adapterFactoryProviders.hasNext()) {
-			try {
-				final AdapterFactoryProvider provider = (AdapterFactoryProvider) adapterFactoryProviders.next();
-				/*
-				 * ContentType might have already been checked above, this
-				 * check is here for backwards compatability for those that
-				 * don't specify a content type
-				 */
-				if (provider.isFor(structuredModel.getModelHandler())) {
-					SafeRunner.run(new SafeRunnable(SSEUIMessages.EditorModelUtil_1) { //$NON-NLS-1$
-									public void run() {
-										provider.addAdapterFactories(structuredModel);
-									}
-								});
-				}
-			}
-			catch (Exception e) {
-				Logger.logException(e);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorPluginImageHelper.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorPluginImageHelper.java
deleted file mode 100644
index f78633f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorPluginImageHelper.java
+++ /dev/null
@@ -1,155 +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.wst.sse.ui.internal.editor;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-
-/**
- * Helper class to handle images provided by this plug-in.
- * 
- * NOTE: For internal use only. For images used externally, please use the
- * Shared***ImageHelper class instead.
- * 
- * @author amywu
- */
-public class EditorPluginImageHelper {
-	private static EditorPluginImageHelper instance = null;
-
-	/**
-	 * Gets the instance.
-	 * 
-	 * @return Returns a EditorPluginImageHelper
-	 */
-	public synchronized static EditorPluginImageHelper getInstance() {
-		if (instance == null)
-			instance = new EditorPluginImageHelper();
-		return instance;
-	}
-
-	//	 save a descriptor for each image
-	private HashMap fImageDescRegistry = null;
-	private final String PLUGINID = SSEUIPlugin.ID;
-
-	/**
-	 * Creates an image from the given resource and adds the image to the
-	 * image registry.
-	 * 
-	 * @param resource
-	 * @return Image
-	 */
-	private Image createImage(String resource) {
-		ImageDescriptor desc = getImageDescriptor(resource);
-		Image image = null;
-
-		if (desc != null) {
-			image = desc.createImage();
-			// dont add the missing image descriptor image to the image
-			// registry
-			if (!desc.equals(ImageDescriptor.getMissingImageDescriptor()))
-				getImageRegistry().put(resource, image);
-		}
-		return image;
-	}
-
-	/**
-	 * Creates an image descriptor from the given imageFilePath and adds the
-	 * image descriptor to the image descriptor registry. If an image
-	 * descriptor could not be created, the default "missing" image descriptor
-	 * is returned but not added to the image descriptor registry.
-	 * 
-	 * @param imageFilePath
-	 * @return ImageDescriptor image descriptor for imageFilePath or default
-	 *         "missing" image descriptor if resource could not be found
-	 */
-	private ImageDescriptor createImageDescriptor(String imageFilePath) {
-		ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(PLUGINID, imageFilePath);
-		if (imageDescriptor != null) {
-			getImageDescriptorRegistry().put(imageFilePath, imageDescriptor);
-		} else {
-			imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
-		}
-
-		return imageDescriptor;
-	}
-
-	/**
-	 * Retrieves the image associated with resource from the image registry.
-	 * If the image cannot be retrieved, attempt to find and load the image at
-	 * the location specified in resource.
-	 * 
-	 * @param resource
-	 *            the image to retrieve
-	 * @return Image the image associated with resource or null if one could
-	 *         not be found
-	 */
-	public Image getImage(String resource) {
-		Image image = getImageRegistry().get(resource);
-		if (image == null) {
-			// create an image
-			image = createImage(resource);
-		}
-		return image;
-	}
-
-	/**
-	 * Retrieves the image descriptor associated with resource from the image
-	 * descriptor registry. If the image descriptor cannot be retrieved,
-	 * attempt to find and load the image descriptor at the location specified
-	 * in resource.
-	 * 
-	 * @param resource
-	 *            the image descriptor to retrieve
-	 * @return ImageDescriptor the image descriptor assocated with resource or
-	 *         the default "missing" image descriptor if one could not be
-	 *         found
-	 */
-	public ImageDescriptor getImageDescriptor(String resource) {
-		ImageDescriptor imageDescriptor = null;
-		Object o = getImageDescriptorRegistry().get(resource);
-		if (o == null) {
-			//create a descriptor
-			imageDescriptor = createImageDescriptor(resource);
-		} else {
-			imageDescriptor = (ImageDescriptor) o;
-		}
-		return imageDescriptor;
-	}
-
-	/**
-	 * Returns the image descriptor registry for this plugin.
-	 * 
-	 * @return HashMap - image descriptor registry for this plugin
-	 */
-	private HashMap getImageDescriptorRegistry() {
-		if (fImageDescRegistry == null)
-			fImageDescRegistry = new HashMap();
-		return fImageDescRegistry;
-	}
-
-	/**
-	 * Returns the image registry for this plugin.
-	 * 
-	 * @return ImageRegistry - image registry for this plugin
-	 */
-	private ImageRegistry getImageRegistry() {
-		return JFaceResources.getImageRegistry();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorPluginImages.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorPluginImages.java
deleted file mode 100644
index 7b38844..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/EditorPluginImages.java
+++ /dev/null
@@ -1,33 +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.wst.sse.ui.internal.editor;
-
-/**
- * Bundle of most images used by the Source Editor plug-in.
- */
-public class EditorPluginImages {
-
-	public static final String IMG_CTOOL16_SPELLCHECK = "icons/full/ctool16/spellcheck.gif"; //$NON-NLS-1$
-	public static final String IMG_DLCL_COLLAPSEALL = "icons/full/dlcl16/collapseall.gif"; //$NON-NLS-1$
-	public static final String IMG_DLCL_DELETE = "icons/full/dlcl16/delete.gif"; //$NON-NLS-1$
-	public static final String IMG_DLCL_SYNCED = "icons/full/dlcl16/synced.gif"; //$NON-NLS-1$
-	public static final String IMG_DTOOL16_SPELLCHECK = "icons/full/dtool16/spellcheck.gif"; //$NON-NLS-1$
-	public static final String IMG_ELCL_COLLAPSEALL = "icons/full/elcl16/collapseall.gif"; //$NON-NLS-1$
-	public static final String IMG_ELCL_DELETE = "icons/full/elcl16/delete.gif"; //$NON-NLS-1$
-	public static final String IMG_ELCL_SYNCED = "icons/full/elcl16/synced.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL16_SPELLCHECK = "icons/full/etool16/spellcheck.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_OCC_MATCH = "icons/full/obj16/occ_match.gif"; //$NON-NLS-1$
-
-	public static final String IMG_OBJ_PREFERENCES = "icons/full/obj16/preferences.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_PROP_PS = "icons/full/obj16/prop_ps.gif"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/IHelpContextIds.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/IHelpContextIds.java
deleted file mode 100644
index 37a2dbd..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/IHelpContextIds.java
+++ /dev/null
@@ -1,58 +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.wst.sse.ui.internal.editor;
-
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Help context ids for the Source Editor.
- * <p>
- * This interface contains constants only; it is not intended to be
- * implemented.
- * </p>
- *  
- */
-public interface IHelpContextIds {
-
-	// org.eclipse.wst.sse.ui.
-	public static final String PREFIX = SSEUIPlugin.ID + "."; //$NON-NLS-1$
-	// Abstract Source Editor Context Menu
-	// Content Assist
-	public static final String CONTMNU_CONTENTASSIST_HELPID = PREFIX + "xmlm1010"; //$NON-NLS-1$
-	// Format Document
-	public static final String CONTMNU_FORMAT_DOC_HELPID = PREFIX + "xmlm1030"; //$NON-NLS-1$
-	// Format Active Elements
-	public static final String CONTMNU_FORMAT_ELEMENTS_HELPID = PREFIX + "xmlm1040"; //$NON-NLS-1$
-	// Cleanup Document
-	// public static final String CONTMNU_CLEANUP_DOC_HELPID = PREFIX +
-	// "xmlm1050"; //$NON-NLS-1$
-
-	// Properties
-	public static final String CONTMNU_PROPERTIES_HELPID = PREFIX + "xmlm1070"; //$NON-NLS-1$
-
-	// Structured Text Editor Preference Page
-	// Appearance
-	public static final String PREFSTE_APPEARANCE_HELPID = PREFIX + "sted0001"; //$NON-NLS-1$
-	// Hovers
-	public static final String PREFSTE_HOVERS_HELPID = PREFIX + "sted0003"; //$NON-NLS-1$
-
-//	// Read-Only Text Style
-//	public static final String PREFWEBX_READONLY_HELPID = PREFIX + "webx0001"; //$NON-NLS-1$
-
-	// Web and XML Preference Page
-	// Task Tags
-	public static final String PREFWEBX_TASKTAGS_HELPID = PREFIX + "webx0000"; //$NON-NLS-1$
-
-	// Source Editor View
-	public static final String XML_SOURCE_VIEW_HELPID = PREFIX + "xmlm2000"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/StructuredModelDocumentProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/StructuredModelDocumentProvider.java
deleted file mode 100644
index 32ffbcd..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/editor/StructuredModelDocumentProvider.java
+++ /dev/null
@@ -1,263 +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.wst.sse.ui.internal.editor;
-
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.texteditor.IDocumentProviderExtension;
-import org.eclipse.ui.texteditor.IDocumentProviderExtension4;
-import org.eclipse.ui.texteditor.IElementStateListener;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-
-
-/**
- * @author nitin
- */
-public class StructuredModelDocumentProvider implements IDocumentProvider, IDocumentProviderExtension, IDocumentProviderExtension4 {
-	private static StructuredModelDocumentProvider _instance = null;
-
-	/**
-	 * @return Returns the instance.
-	 */
-	public static StructuredModelDocumentProvider getInstance() {
-		return _instance;
-	}
-
-	{
-		_instance = new StructuredModelDocumentProvider();
-	}
-
-	private StructuredModelDocumentProvider() {
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#aboutToChange(java.lang.Object)
-	 */
-	public void aboutToChange(Object element) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#addElementStateListener(org.eclipse.ui.texteditor.IElementStateListener)
-	 */
-	public void addElementStateListener(IElementStateListener listener) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#canSaveDocument(java.lang.Object)
-	 */
-	public boolean canSaveDocument(Object element) {
-		return ((IStructuredModel) element).isDirty();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#changed(java.lang.Object)
-	 */
-	public void changed(Object element) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#connect(java.lang.Object)
-	 */
-	public void connect(Object element) throws CoreException {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#disconnect(java.lang.Object)
-	 */
-	public void disconnect(Object element) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#getAnnotationModel(java.lang.Object)
-	 */
-	public IAnnotationModel getAnnotationModel(Object element) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#getDocument(java.lang.Object)
-	 */
-	public IDocument getDocument(Object element) {
-		return ((IStructuredModel) element).getStructuredDocument();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#getModificationStamp(java.lang.Object)
-	 */
-	public long getModificationStamp(Object element) {
-		return ((IStructuredModel) element).getSynchronizationStamp();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProviderExtension#getStatus(java.lang.Object)
-	 */
-	public IStatus getStatus(Object element) {
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#getSynchronizationStamp(java.lang.Object)
-	 */
-	public long getSynchronizationStamp(Object element) {
-		return 0;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#isDeleted(java.lang.Object)
-	 */
-	public boolean isDeleted(Object element) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProviderExtension#isModifiable(java.lang.Object)
-	 */
-	public boolean isModifiable(Object element) {
-		return true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProviderExtension#isReadOnly(java.lang.Object)
-	 */
-	public boolean isReadOnly(Object element) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProviderExtension#isStateValidated(java.lang.Object)
-	 */
-	public boolean isStateValidated(Object element) {
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#mustSaveDocument(java.lang.Object)
-	 */
-	public boolean mustSaveDocument(Object element) {
-		return ((IStructuredModel) element).isDirty();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#removeElementStateListener(org.eclipse.ui.texteditor.IElementStateListener)
-	 */
-	public void removeElementStateListener(IElementStateListener listener) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#resetDocument(java.lang.Object)
-	 */
-	public void resetDocument(Object element) throws CoreException {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProvider#saveDocument(org.eclipse.core.runtime.IProgressMonitor,
-	 *      java.lang.Object, org.eclipse.jface.text.IDocument, boolean)
-	 */
-	public void saveDocument(IProgressMonitor monitor, Object element, IDocument document, boolean overwrite) throws CoreException {
-		try {
-			((IStructuredModel) element).save();
-		}
-		catch (UnsupportedEncodingException e) {
-		}
-		catch (IOException e) {
-		}
-		catch (CoreException e) {
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProviderExtension#setCanSaveDocument(java.lang.Object)
-	 */
-	public void setCanSaveDocument(Object element) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProviderExtension#synchronize(java.lang.Object)
-	 */
-	public void synchronize(Object element) throws CoreException {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProviderExtension#updateStateCache(java.lang.Object)
-	 */
-	public void updateStateCache(Object element) throws CoreException {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IDocumentProviderExtension#validateState(java.lang.Object,
-	 *      java.lang.Object)
-	 */
-	public void validateState(Object element, Object computationContext) throws CoreException {
-	}
-
-	public IContentType getContentType(Object element) throws CoreException {
-		return Platform.getContentTypeManager().getContentType(((IStructuredModel) element).getContentTypeIdentifier());
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ActionDescriptor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ActionDescriptor.java
deleted file mode 100644
index 4f615e7..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ActionDescriptor.java
+++ /dev/null
@@ -1,378 +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.wst.sse.ui.internal.extension;
-
-
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-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.swt.custom.BusyIndicator;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.ui.internal.IActionValidator;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.osgi.framework.Bundle;
-
-
-/**
- * When 'action' tag is found in the registry, an object of this class is
- * created. It creates the appropriate action object and captures information
- * that is later used to add this action object into menu/tool bar. This class
- * is reused for global (workbench) menu/tool bar, popup menu actions, as well
- * as view's pulldown and local tool bar.
- */
-public class ActionDescriptor {
-	public static final String ATT_ACCELERATOR = "accelerator"; //$NON-NLS-1$
-	public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-	public static final String ATT_DEFINITION_ID = "definitionId"; //$NON-NLS-1$
-	public static final String ATT_DESCRIPTION = "description"; //$NON-NLS-1$
-	public static final String ATT_DISABLEDICON = "disabledIcon"; //$NON-NLS-1$
-	public static final String ATT_HELP_CONTEXT_ID = "helpContextId"; //$NON-NLS-1$
-	public static final String ATT_HOVERICON = "hoverIcon"; //$NON-NLS-1$
-	public static final String ATT_ICON = "icon"; //$NON-NLS-1$
-
-	public static final String ATT_ID = "id"; //$NON-NLS-1$
-	public static final String ATT_LABEL = "label"; //$NON-NLS-1$
-	public static final String ATT_MENUBAR_PATH = "menubarPath"; //$NON-NLS-1$
-	public static final String ATT_POPUPMENU_PATH = "popupmenuPath"; //$NON-NLS-1$
-	public static final String ATT_STATE = "state"; //$NON-NLS-1$
-	public static final String ATT_TOOLBAR_PATH = "toolbarPath"; //$NON-NLS-1$
-	public static final String ATT_TOOLTIP = "tooltip"; //$NON-NLS-1$
-
-	/**
-	 * Creates an extension. If the extension plugin has not been loaded a
-	 * busy cursor will be activated during the duration of the load.
-	 * 
-	 * @param element
-	 *            the config element defining the extension
-	 * @param classAttribute
-	 *            the name of the attribute carrying the class
-	 * @returns the extension object if successful. If an error occurs when
-	 *          createing executable extension, the exception is logged, and
-	 *          null returned.
-	 */
-	public static Object createExtension(final IConfigurationElement element, final String classAttribute) {
-		final Object[] result = new Object[1];
-		// If plugin has been loaded create extension.
-		// Otherwise, show busy cursor then create extension.
-		String pluginId = element.getDeclaringExtension().getNamespace();
-		Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle.getState() == Bundle.ACTIVE) {
-			try {
-				result[0] = element.createExecutableExtension(classAttribute);
-			} catch (Exception e) {
-				// catch and log ANY exception from extension point
-				handleCreateExecutableException(result, e);
-			}
-		} else {
-			BusyIndicator.showWhile(null, new Runnable() {
-				public void run() {
-					try {
-						result[0] = element.createExecutableExtension(classAttribute);
-					} catch (Exception e) {
-						// catch and log ANY exception from extension point
-						handleCreateExecutableException(result, e);
-					}
-				}
-			});
-		}
-		return result[0];
-	}
-
-	private static void handleCreateExecutableException(final Object[] result, Throwable e) {
-		Logger.logException(e);
-		result[0] = null;
-	}
-
-	private String id;
-
-	private ActionContributionItem item;
-	private String menuGroup;
-	private String menuPath;
-	private String popupmenuGroup;
-	private String popupmenuPath;
-	private String toolbarGroup;
-	private String toolbarPath;
-
-	/**
-	 * Creates a new descriptor with the targetType
-	 */
-	public ActionDescriptor(IConfigurationElement actionElement) throws CoreException {
-
-		// Calculate menu and toolbar paths.
-		String mpath = actionElement.getAttribute(ATT_MENUBAR_PATH);
-		String mgroup = null;
-		if (mpath != null) {
-			int loc = mpath.lastIndexOf('/');
-			if (loc != -1) {
-				mgroup = mpath.substring(loc + 1);
-				mpath = mpath.substring(0, loc);
-			} else {
-				mgroup = mpath;
-				mpath = null;
-			}
-		}
-		menuPath = mpath;
-		menuGroup = mgroup;
-
-		String ppath = actionElement.getAttribute(ATT_POPUPMENU_PATH);
-		String pgroup = null;
-		if (ppath != null) {
-			int loc = ppath.lastIndexOf('/');
-			if (loc != -1) {
-				pgroup = ppath.substring(loc + 1);
-				ppath = ppath.substring(0, loc);
-			} else {
-				pgroup = ppath;
-				ppath = null;
-			}
-		}
-		popupmenuPath = ppath;
-		popupmenuGroup = pgroup;
-
-		String tpath = actionElement.getAttribute(ATT_TOOLBAR_PATH);
-		String tgroup = null;
-		if (tpath != null) {
-			int loc = tpath.lastIndexOf('/');
-			if (loc != -1) {
-				tgroup = tpath.substring(loc + 1);
-				tpath = tpath.substring(0, loc);
-			} else {
-				tgroup = tpath;
-				tpath = null;
-			}
-		}
-		toolbarPath = tpath;
-		toolbarGroup = tgroup;
-
-		// Create action.
-		IAction action = createAction(actionElement);
-		if (action == null)
-			return;
-
-		String label = actionElement.getAttribute(ATT_LABEL);
-		if (label != null)
-			action.setText(label);
-
-		id = actionElement.getAttribute(ATT_ID);
-		if (id == null) {
-			id = actionElement.getAttribute(ATT_CLASS);
-		}
-		if (id != null)
-			action.setId(id);
-
-		String defId = actionElement.getAttribute(ATT_DEFINITION_ID);
-		if (defId != null && defId.length() != 0) {
-			action.setActionDefinitionId(defId);
-		}
-
-		String tooltip = actionElement.getAttribute(ATT_TOOLTIP);
-		if (tooltip != null)
-			action.setToolTipText(tooltip);
-
-		String helpContextId = actionElement.getAttribute(ATT_HELP_CONTEXT_ID);
-		if (helpContextId != null) {
-			String fullID = helpContextId;
-			if (helpContextId.indexOf(".") == -1) //$NON-NLS-1$
-				// For backward compatibility we auto qualify the id if it is
-				// not qualified)
-				fullID = actionElement.getDeclaringExtension().getNamespace() + "." + helpContextId; //$NON-NLS-1$
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(action, fullID);
-		}
-
-		String description = actionElement.getAttribute(ATT_DESCRIPTION);
-		if (description != null)
-			action.setDescription(description);
-
-		String state = actionElement.getAttribute(ATT_STATE);
-		if (state != null) {
-			action.setChecked(state.equals("true")); //$NON-NLS-1$
-		}
-
-		String icon = actionElement.getAttribute(ATT_ICON);
-		if (icon != null) {
-			action.setImageDescriptor(ImageUtil.getImageDescriptorFromExtension(actionElement.getDeclaringExtension(), icon));
-		}
-
-		String hoverIcon = actionElement.getAttribute(ATT_HOVERICON);
-		if (hoverIcon != null) {
-			action.setHoverImageDescriptor(ImageUtil.getImageDescriptorFromExtension(actionElement.getDeclaringExtension(), hoverIcon));
-		}
-
-		String disabledIcon = actionElement.getAttribute(ATT_DISABLEDICON);
-		if (disabledIcon != null) {
-			action.setDisabledImageDescriptor(ImageUtil.getImageDescriptorFromExtension(actionElement.getDeclaringExtension(), disabledIcon));
-		}
-
-		String accelerator = actionElement.getAttribute(ATT_ACCELERATOR);
-		if (accelerator != null)
-			processAccelerator(action, accelerator);
-
-		item = new ActionContributionItem(action);
-	}
-
-	/**
-	 * Parses the given accelerator text, and converts it to an accelerator
-	 * key code.
-	 * 
-	 * @param acceleratorText
-	 *            the accelerator text
-	 * @result the SWT key code, or 0 if there is no accelerator
-	 */
-	private int convertAccelerator(String acceleratorText) {
-		int accelerator = 0;
-		StringTokenizer stok = new StringTokenizer(acceleratorText, "+"); //$NON-NLS-1$
-
-		int keyCode = -1;
-
-		boolean hasMoreTokens = stok.hasMoreTokens();
-		while (hasMoreTokens) {
-			String token = stok.nextToken();
-			hasMoreTokens = stok.hasMoreTokens();
-			// Every token except the last must be one of the modifiers
-			// Ctrl, Shift, or Alt.
-			if (hasMoreTokens) {
-				int modifier = Action.findModifier(token);
-				if (modifier != 0) {
-					accelerator |= modifier;
-				} else { //Leave if there are none
-					return 0;
-				}
-			} else {
-				keyCode = Action.findKeyCode(token);
-			}
-		}
-		if (keyCode != -1) {
-			accelerator |= keyCode;
-		}
-		return accelerator;
-	}
-
-	/**
-	 */
-	private IAction createAction(IConfigurationElement actionElement) {
-		Object action = new ExtendedEditorActionProxyForDelayLoading(actionElement, ATT_CLASS);
-		if (action == null)
-			return null;
-		if (action instanceof IActionValidator) {
-			if (!((IActionValidator) action).isValidAction())
-				return null;
-		}
-		return (action instanceof IAction ? (IAction) ExtendedEditorActionProxy.newInstance(action) : null);
-	}
-
-	/**
-	 * Returns the action object held in this descriptor.
-	 */
-	public IAction getAction() {
-		return (item != null ? item.getAction() : null);
-	}
-
-	/**
-	 * Returns the IContributionItem object held in this descriptor.
-	 */
-	public IContributionItem getContributionItem() {
-		return item;
-	}
-
-	/**
-	 * Returns action's id as defined in the registry.
-	 */
-	public String getId() {
-		return id;
-	}
-
-	/**
-	 * Returns named slot (group) in the menu where this action should be
-	 * added.
-	 */
-	public String getMenuGroup() {
-		return menuGroup;
-	}
-
-	/**
-	 * Returns menu path where this action should be added. If null, the
-	 * action will not be added into the menu.
-	 */
-
-	public String getMenuPath() {
-		return menuPath;
-	}
-
-	/**
-	 * Returns named slot (group) in the popup menu where this action should
-	 * be added.
-	 */
-	public String getPopupMenuGroup() {
-		return popupmenuGroup;
-	}
-
-	/**
-	 * Returns popup menu path where this action should be added. If null, the
-	 * action will not be added into the popup menu.
-	 */
-
-	public String getPopupMenuPath() {
-		return popupmenuPath;
-	}
-
-	/**
-	 * Returns the named slot (group) in the tool bar where this action should
-	 * be added.
-	 */
-
-	public String getToolbarGroup() {
-		return toolbarGroup;
-	}
-
-	/**
-	 * Returns path in the tool bar where this action should be added. If
-	 * null, action will not be added to the tool bar.
-	 */
-	public String getToolbarPath() {
-		return toolbarPath;
-	}
-
-	/**
-	 * Process the accelerator definition. If it is a number then process the
-	 * code directly - if not then parse it and create the code
-	 */
-	private void processAccelerator(IAction action, String acceleratorText) {
-
-		if (acceleratorText.length() == 0)
-			return;
-
-		//Is it a numeric definition?
-		if (Character.isDigit(acceleratorText.charAt(0))) {
-			try {
-				action.setAccelerator(Integer.valueOf(acceleratorText).intValue());
-			} catch (NumberFormatException exception) {
-				Logger.log(Logger.ERROR, "Invalid accelerator declaration: " + id); //$NON-NLS-1$
-			}
-		} else
-			action.setAccelerator(convertAccelerator(acceleratorText));
-	}
-
-	/**
-	 * For debugging only.
-	 */
-	public String toString() {
-		return "ActionDescriptor(" + id + ")"; //$NON-NLS-2$//$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/BreakpointProviderBuilder.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/BreakpointProviderBuilder.java
deleted file mode 100644
index 9a33f4d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/BreakpointProviderBuilder.java
+++ /dev/null
@@ -1,405 +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.wst.sse.ui.internal.extension;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.IBreakpointProvider;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Reads breakpoint extension registory and returns breakpoint provider
- * instances
- */
-public class BreakpointProviderBuilder extends RegistryReader {
-
-	private static final String ATT_CLASS = "class"; //$NON-NLS-1$
-	// private static final String ATT_ID = "id"; //$NON-NLS-1$
-	private static final String ATT_CONTENT_TYPES = "contentTypes"; //$NON-NLS-1$
-	private static final String ATT_EXTENSIONS = "extensions"; //$NON-NLS-1$
-	private static BreakpointProviderBuilder instance;
-	private static final String PL_BREAKPOINT = "breakpoint"; //$NON-NLS-1$
-
-	private static final String PLUGIN_ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-
-	private static final String TAG_BREAKPOINT_CONTRIBUTION = "breakpointContribution"; //$NON-NLS-1$
-	private static final String TAG_PROVIDER = "provider"; //$NON-NLS-1$
-
-	/*
-	 * Creates an executable extension. @param element the config element
-	 * defining the extension @param classAttribute the name of the attribute
-	 * carrying the class @return the extension object @throws CoreException
-	 */
-	static Object createExecutableExtension(final IConfigurationElement element, final String classAttribute) throws CoreException {
-		return element.createExecutableExtension(classAttribute);
-	}
-
-	/**
-	 * Creates an extension. If the extension plugin has not been loaded a
-	 * busy cursor will be activated during the duration of the load.
-	 * 
-	 * @param element
-	 *            the config element defining the extension
-	 * @param classAttribute
-	 *            the name of the attribute carrying the class
-	 * @return the extension object
-	 * @throws CoreException
-	 */
-	public static Object createExtension(final IConfigurationElement element, final String classAttribute) {
-		// If plugin has been loaded create extension.
-		// Otherwise, show busy cursor then create extension.
-		final Object[] result = new Object[1];
-		String pluginId = element.getDeclaringExtension().getNamespace();
-		Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle.getState() == Bundle.ACTIVE) {
-			try {
-				result[0] = createExecutableExtension(element, classAttribute);
-			}
-			catch (Exception e) {
-				handleCreateExecutableException(result, e);
-			}
-		}
-		else {
-			BusyIndicator.showWhile(null, new Runnable() {
-				public void run() {
-					try {
-						result[0] = createExecutableExtension(element, classAttribute);
-					}
-					catch (CoreException e) {
-						handleCreateExecutableException(result, e);
-					}
-				}
-			});
-
-		}
-		return result[0];
-	}
-
-	/**
-	 * returns singleton instance of BreakpointProviderBuilder
-	 * 
-	 * @return BreakpointProviderBuilder
-	 */
-	public synchronized static BreakpointProviderBuilder getInstance() {
-		if (instance == null) {
-			instance = new BreakpointProviderBuilder();
-		}
-		return instance;
-	}
-
-	/**
-	 * @param result
-	 * @param e
-	 */
-	private static void handleCreateExecutableException(Object[] result, Throwable e) {
-		Logger.logException(e);
-		result[0] = null;
-
-	}
-
-	protected List cache;
-	private Map map = new HashMap();
-
-	protected String targetContributionTag;
-
-	/*
-	 * Constructor
-	 */
-	private BreakpointProviderBuilder() {
-		super();
-	}
-
-	/*
-	 * Creates a breakpoint provider object to given element @param element
-	 * configuration element object @return IBreakpointProvider
-	 */
-	protected IBreakpointProvider createBreakpointProvider(IConfigurationElement element) {
-		Object obj = createExtension(element, ATT_CLASS);
-		if (obj == null)
-			return null;
-		return (obj instanceof IBreakpointProvider) ? (IBreakpointProvider) obj : null;
-	}
-
-	/*
-	 * Creates an array of breakpoint providers matching the given key to the
-	 * value of the IConfigurationElement attribute "attrName" @return
-	 * IBreakpointProvider[]
-	 */
-	protected IBreakpointProvider[] createBreakpointProviders(String attrName, String key) {
-		if (cache == null)
-			return new IBreakpointProvider[0];
-
-		final int num = cache.size();
-		if (num == 0)
-			return new IBreakpointProvider[0];
-
-		IBreakpointProvider[] bp = new IBreakpointProvider[num];
-		int j = 0;
-		for (int i = 0; i < num; i++) {
-			Object obj = cache.get(i);
-			if (!(obj instanceof IConfigurationElement))
-				continue;
-
-			IConfigurationElement element = (IConfigurationElement) obj;
-			if (!TAG_PROVIDER.equals(element.getName()))
-				continue;
-
-			boolean doCreate = false;
-
-			String attrValues = element.getAttribute(attrName);
-
-			if (attrValues != null) {
-				StringTokenizer tokenizer = new StringTokenizer(attrValues, ","); //$NON-NLS-1$
-				while (tokenizer.hasMoreTokens()) {
-					String type = tokenizer.nextToken();
-					if (type.trim().equalsIgnoreCase(key.trim())) {
-						doCreate = true;
-						break;
-					}
-				}
-			}
-
-			if (doCreate) {
-				IBreakpointProvider b = createBreakpointProvider(element);
-				if (b != null) {
-					bp[j] = b;
-					j++;
-				}
-			}
-		}
-
-		IBreakpointProvider[] bp2 = new IBreakpointProvider[j];
-		for (int i = 0; i < j; i++) {
-			bp2[i] = bp[i];
-		}
-
-		return bp2;
-	}
-
-	/*
-	 * Returns a matching array of extension points matching this key. Doesn't
-	 * cause instantiation of providers. @return IBreakpointProvider[]
-	 */
-	protected IConfigurationElement[] findElements(String key) {
-		initCache();
-
-		if (cache == null || cache.size() == 0)
-			return new IConfigurationElement[0];
-
-		int num = cache.size();
-		List elements = new ArrayList(1);
-		for (int i = 0; i < num; i++) {
-			Object obj = cache.get(i);
-			if (!(obj instanceof IConfigurationElement))
-				continue;
-
-			IConfigurationElement element = (IConfigurationElement) obj;
-			if (!TAG_PROVIDER.equals(element.getName()))
-				continue;
-
-			boolean add = false;
-			String types = element.getAttribute(ATT_CONTENT_TYPES);
-			String exts = element.getAttribute(ATT_EXTENSIONS);
-
-			if (types == null && exts == null) {
-				add = true;
-			}
-
-			if (!add && types != null && types.length() > 0) {
-				IContentType testType = Platform.getContentTypeManager().getContentType(key);
-				StringTokenizer tokenizer = new StringTokenizer(types, ","); //$NON-NLS-1$
-				while (tokenizer.hasMoreTokens()) {
-					String type = tokenizer.nextToken();
-					IContentType contentType = Platform.getContentTypeManager().getContentType(type);
-					if (contentType != null && testType != null && contentType.isKindOf(testType)) {
-						add = true;
-						break;
-					}
-				}
-			}
-
-			if (!add && exts != null) {
-				StringTokenizer tokenizer = new StringTokenizer(exts, ","); //$NON-NLS-1$
-				while (tokenizer.hasMoreTokens()) {
-					String ext = tokenizer.nextToken();
-					if (ext.trim().equals(key.trim())) {
-						add = true;
-						break;
-					}
-				}
-			}
-
-			if (add) {
-				elements.add(element);
-			}
-		}
-		return (IConfigurationElement[]) elements.toArray(new IConfigurationElement[0]);
-	}
-
-	/**
-	 * Returns an array of breakpoint providers for a specified content type
-	 * handler
-	 * 
-	 * @param handler
-	 *            a content type handler
-	 * @param ext
-	 *            file extension
-	 * @return IBreakpointProvider[]
-	 */
-	public IBreakpointProvider[] getBreakpointProviders(IEditorPart editorpart, String contentTypeID, String ext) {
-		initCache();
-
-		// Get breakpoint providers for this content type handler
-		IBreakpointProvider[] providers1 = new IBreakpointProvider[0];
-		IContentType contentType = Platform.getContentTypeManager().getContentType(contentTypeID);
-		List holdProviders = new ArrayList(2);
-		while (contentType != null) {
-			IBreakpointProvider[] providers = (IBreakpointProvider[]) map.get(contentType.getId());
-			if (providers == null) {
-				providers = createBreakpointProviders(ATT_CONTENT_TYPES, contentType.getId());
-				if (providers != null) {
-					map.put(contentType.getId(), providers);
-				}
-			}
-			// providers were retrieved from cache or newly created
-			if(providers != null) {
-				holdProviders.addAll(Arrays.asList(providers));
-			}
-			contentType = contentType.getBaseType();
-		}
-		providers1 = (IBreakpointProvider[]) holdProviders.toArray(new IBreakpointProvider[holdProviders.size()]);
-
-		// Get breakpoint providers for this extension
-		IBreakpointProvider[] providers2 = new IBreakpointProvider[0];
-		if (ext != null) {
-			providers2 = (IBreakpointProvider[]) map.get(ext);
-			if (providers2 == null) {
-				providers2 = createBreakpointProviders(ATT_EXTENSIONS, ext);
-				if (providers2 != null) {
-					map.put(ext, providers2);
-				}
-			}
-		}
-
-		// create single hash set to remove duplication
-		Set s = new HashSet();
-		s.addAll(Arrays.asList(providers1));
-		s.addAll(Arrays.asList(providers2));
-
-		// create IBreakpointProvider[] to return
-		IBreakpointProvider[] providers = new IBreakpointProvider[s.size()];
-		Iterator itr = s.iterator();
-		int i = 0;
-		ISourceEditingTextTools tools = null;
-		if (editorpart != null && itr.hasNext())
-			tools = (ISourceEditingTextTools) editorpart.getAdapter(ISourceEditingTextTools.class);
-		while (itr.hasNext()) {
-			providers[i] = (IBreakpointProvider) itr.next();
-			providers[i].setSourceEditingTextTools(tools);
-			i++;
-		}
-		return providers;
-	}
-
-	/**
-	 * Returns corresponding resource from given parameters
-	 * 
-	 * @param input
-	 * @param handler
-	 * @param ext
-	 * @return IResource
-	 */
-	public IResource getResource(IEditorInput input, String contentType, String ext) {
-		IBreakpointProvider[] providers = getBreakpointProviders(null, contentType, ext);
-		IResource res = null;
-		for (int i = 0; i < providers.length; i++) {
-			res = providers[i].getResource(input);
-			if (res != null) {
-				break;
-			}
-		}
-		return res;
-	}
-
-	private void initCache() {
-		if (cache == null) {
-			cache = new ArrayList();
-			readContributions(TAG_BREAKPOINT_CONTRIBUTION, PL_BREAKPOINT);
-		}
-	}
-
-	/**
-	 * Returns an array of breakpoint providers for a specified content type
-	 * handler
-	 * 
-	 * @param contentType
-	 *            a content type ID or null
-	 * @param ext
-	 *            a filename extension or null
-	 * @return boolean
-	 */
-	public boolean isAvailable(String contentType, String ext) {
-		boolean available = false;
-		if (ext != null)
-			available = findElements(ext).length > 0;
-		if (!available && contentType != null)
-			available = findElements(contentType).length > 0;
-		return available;
-	}
-
-	/**
-	 * Reads the contributions from the registry for the provided workbench
-	 * part and the provided extension point ID.
-	 * 
-	 * @param tag
-	 * @param extensionPoint
-	 */
-	protected void readContributions(String tag, String extensionPoint) {
-		targetContributionTag = tag;
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		readRegistry(registry, PLUGIN_ID, extensionPoint);
-	}
-
-	protected boolean readElement(IConfigurationElement element) {
-		String tag = element.getName();
-		if (tag.equals(targetContributionTag)) {
-			readElementChildren(element);
-			return true;
-		}
-		else if (tag.equals(TAG_PROVIDER)) {
-			cache.add(element);
-			return true; // just cache the element - don't go into it
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/DropActionProxy.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/DropActionProxy.java
deleted file mode 100644
index 0eebf4e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/DropActionProxy.java
+++ /dev/null
@@ -1,150 +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.wst.sse.ui.internal.extension;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.ui.internal.IExtendedSimpleEditor;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISelfValidateEditAction;
-
-
-/**
- */
-public class DropActionProxy implements InvocationHandler {
-	public static Object newInstance(Object obj) {
-		Object instance = null;
-		try {
-			Set set = new HashSet();
-			Class clazz = obj.getClass();
-			while (clazz != null) {
-				Class[] interfaces = clazz.getInterfaces();
-				for (int i = 0; i < interfaces.length; i++) {
-					set.add(interfaces[i]);
-				}
-				clazz = clazz.getSuperclass();
-			}
-			Class[] classes = new Class[set.size()];
-			Iterator itr = set.iterator();
-			int i = 0;
-			while (itr.hasNext()) {
-				classes[i] = (Class) itr.next();
-				i++;
-			}
-			instance = Proxy.newProxyInstance(obj.getClass().getClassLoader(), classes, new DropActionProxy(obj));
-		} catch (Error e) {
-			Logger.logException("Exception while proxying a drop action", e); //$NON-NLS-1$
-			instance = obj;
-		}
-		return instance;
-	}
-
-	private IExtendedSimpleEditor editor = null;
-	private IStructuredModel fRecorder;
-	private Object obj;
-
-	private DropActionProxy(Object obj) {
-		this.obj = obj;
-	}
-
-	private void beginRecording() {
-		IDocument document = null;
-		if (editor != null) {
-			document = editor.getDocument();
-			if (document != null)
-				fRecorder = StructuredModelManager.getModelManager().getExistingModelForEdit(document);
-			// Prepare for Undo
-			if (fRecorder != null) {
-				IStructuredTextUndoManager um = fRecorder.getUndoManager();
-				if (um != null) {
-					if (this.obj instanceof IAction)
-						um.beginRecording(this, ((IAction) this.obj).getText(), ((IAction) this.obj).getDescription());
-					else
-						um.beginRecording(this);
-				}
-			}
-		}
-	}
-
-	private void endRecording() {
-		if (fRecorder != null) {
-			IStructuredTextUndoManager um = fRecorder.getUndoManager();
-			if (um != null)
-				um.endRecording(this);
-			fRecorder.releaseFromEdit();
-			fRecorder = null;
-		}
-	}
-
-	/**
-	 * @see java.lang.reflect.InvocationHandler#invoke(Object, Method,
-	 *      Object[])
-	 */
-	public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
-		Object result;
-		String name = m.getName();
-		try {
-			if (name.equals("equals")) { //$NON-NLS-1$
-				// Workaround for JDK's bug 4652876
-				// "equals" always returns false even if both
-				// InvocationHandler
-				// class
-				// hold the same objects
-				// See
-				// http://developer.java.sun.com/developer/bugParade/bugs/4652876.html
-				// This problem is in the IBM SDK 1.3.1
-				// but I don't see the bug in Sun's JDK 1.4.1 (beta)
-				Object arg = args[0];
-				return (proxy.getClass() == arg.getClass() && equals(Proxy.getInvocationHandler(arg))) ? Boolean.TRUE : Boolean.FALSE;
-			} else if (name.equals("run")) { //$NON-NLS-1$
-				if (args[1] instanceof IExtendedSimpleEditor) {
-					editor = (IExtendedSimpleEditor) args[1];
-				}
-				beginRecording();
-				if ((editor != null) && !(obj instanceof ISelfValidateEditAction)) {
-					
-					// TODO: cleanup validateEdit
-					// just leaving this check and following code here for transition. 
-					// I assume we'll remove all need for 'validateEdit'
-					// or move to platform editor's validateState 
-					
-//					IStatus status = editor.validateEdit(getDisplay().getActiveShell());
-//					if (!status.isOK()) {
-//						return null;
-//					}
-				}
-			}
-			result = m.invoke(obj, args);
-		} catch (InvocationTargetException e) {
-			throw e.getTargetException();
-		} catch (Exception e) {
-			throw new RuntimeException(e.getMessage());
-		} finally {
-			if (name.equals("run")) { //$NON-NLS-1$
-				endRecording();
-			}
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ExtendedEditorActionProxy.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ExtendedEditorActionProxy.java
deleted file mode 100644
index 72c7bba..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ExtendedEditorActionProxy.java
+++ /dev/null
@@ -1,149 +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.wst.sse.ui.internal.extension;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.undo.IStructuredTextUndoManager;
-import org.eclipse.wst.sse.ui.internal.IExtendedSimpleEditor;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISelfValidateEditAction;
-
-
-/**
- * Begins and ends UndoManager recording around run() and runWithEvent(...)
- */
-public class ExtendedEditorActionProxy implements InvocationHandler {
-	public static Object newInstance(Object obj) {
-		Set set = new HashSet();
-		Class clazz = obj.getClass();
-		while (clazz != null) {
-			Class[] interfaces = clazz.getInterfaces();
-			for (int i = 0; i < interfaces.length; i++) {
-				set.add(interfaces[i]);
-			}
-			clazz = clazz.getSuperclass();
-		}
-		Class[] classes = new Class[set.size()];
-		Iterator itr = set.iterator();
-		int i = 0;
-		while (itr.hasNext()) {
-			classes[i] = (Class) itr.next();
-			i++;
-		}
-		return Proxy.newProxyInstance(obj.getClass().getClassLoader(), classes, new ExtendedEditorActionProxy(obj));
-	}
-
-	private IExtendedSimpleEditor editor = null;
-	private IStructuredModel fRecorder;
-	private Object obj;
-
-	private ExtendedEditorActionProxy(Object obj) {
-		this.obj = obj;
-	}
-
-	private void beginRecording() {
-		IDocument document = null;
-		if (editor != null) {
-			document = editor.getDocument();
-			if (document != null)
-				fRecorder = StructuredModelManager.getModelManager().getExistingModelForEdit(document);
-			// Prepare for Undo
-			if (fRecorder != null) {
-				IStructuredTextUndoManager um = fRecorder.getUndoManager();
-				if (um != null) {
-					um.beginRecording(this, ((IAction) this.obj).getText(), ((IAction) this.obj).getDescription());
-				}
-			}
-		}
-	}
-
-	private void endRecording() {
-		if (fRecorder != null) {
-			IStructuredTextUndoManager um = fRecorder.getUndoManager();
-			if (um != null) {
-				um.endRecording(this);
-			}
-			fRecorder.releaseFromEdit();
-			fRecorder = null;
-		}
-	}
-
-	/**
-	 * @see java.lang.reflect.InvocationHandler#invoke(Object, Method,
-	 *      Object[])
-	 */
-	public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
-		Object result = null;
-		String name = m.getName();
-		try {
-			if (name.equals("equals")) { //$NON-NLS-1$
-				// Workaround for JDK's bug 4652876
-				// "equals" always returns false even if both
-				// InvocationHandler
-				// class
-				// hold the same objects
-				// See
-				// http://developer.java.sun.com/developer/bugParade/bugs/4652876.html
-				// This problem is in the IBM SDK 1.3.1
-				// but I don't see the bug in Sun's JDK 1.4.1 (beta)
-				Object arg = args[0];
-				return (proxy.getClass() == arg.getClass() && equals(Proxy.getInvocationHandler(arg))) ? Boolean.TRUE : Boolean.FALSE;
-			} else if (name.equals("runWithEvent") || name.equals("run")) { //$NON-NLS-1$  //$NON-NLS-2$
-				beginRecording();
-				if ((editor != null) && !(this.obj instanceof ISelfValidateEditAction)) {
-					
-					// TODO: cleanup validateEdit
-					// just leaving this check and following code here for transition. 
-					// I assume we'll remove all need for 'validateEdit'
-					// or move to platform editor's validateState 
-
-//					IStatus status = editor.validateEdit(getDisplay().getActiveShell());
-//					if (!status.isOK()) {
-//						return null;
-//					}
-				}
-			} else if (name.equals("setActiveExtendedEditor")) { //$NON-NLS-1$
-				if (args[0] instanceof IExtendedSimpleEditor) {
-					editor = (IExtendedSimpleEditor) args[0];
-				}
-			}
-			result = m.invoke(this.obj, args);
-		} catch (InvocationTargetException e) {
-			Logger.logException(e.getTargetException());
-			//throw e.getTargetException();
-		} catch (Exception e) {
-			Logger.logException(e);
-			if (name.equals("runWithEvent") || name.equals("run")) { //$NON-NLS-1$  //$NON-NLS-2$
-				// only expose user-driven exceptions from "running" to the
-				// user
-				throw new RuntimeException(e.getMessage());
-			}
-		} finally {
-			if (name.equals("runWithEvent") || name.equals("run")) { //$NON-NLS-1$  //$NON-NLS-2$
-				endRecording();
-			}
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ExtendedEditorActionProxyForDelayLoading.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ExtendedEditorActionProxyForDelayLoading.java
deleted file mode 100644
index c4565df..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ExtendedEditorActionProxyForDelayLoading.java
+++ /dev/null
@@ -1,752 +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.wst.sse.ui.internal.extension;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.ListenerList;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.events.HelpListener;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.wst.sse.ui.internal.IExtendedEditorAction;
-import org.eclipse.wst.sse.ui.internal.IExtendedSimpleEditor;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.osgi.framework.Bundle;
-
-public class ExtendedEditorActionProxyForDelayLoading implements IExtendedEditorAction, IExtendedEditorActionProxyForDelayLoading, IAction {
-    private IAction proxy;
-    private IAction dummy = new Action() { // this is for mainly its property change notify...
-    };
-    // proxy'ed properties
-    private String p_id;
-    private boolean set_p_id;
-    private String p_text;
-    private boolean set_p_text;
-    private String p_toolTipText;
-    private boolean set_p_toolTipText;
-    private String p_actionDefinitionId;
-    private boolean set_p_actionDefinitionId;
-    private ImageDescriptor p_image;
-    private boolean set_p_image;
-    private ImageDescriptor p_hoverImage;
-    private boolean set_p_hoverImage;
-    private ImageDescriptor p_disabledImage;
-    private boolean set_p_disabledImage;
-    private int p_accelerator;
-    private boolean set_p_accelerator;
-    private int p_style = AS_PUSH_BUTTON;
-    //private boolean set_p_style;
-    private HelpListener p_helpListener;
-    private boolean set_p_helpListener;
-    private boolean p_enabled = true; // should be same as what is done in
-    private boolean set_p_enabled;
-    private ListenerList p_listeners = new ListenerList(3);
-    private boolean set_p_listeners;
-    private boolean p_checked;
-    private boolean set_p_checked;
-    private IExtendedSimpleEditor p_targetEditor;
-    private boolean set_p_targetEditor;
-	private boolean p_isvisible = true; // should be true
-	
-	private IConfigurationElement element;
-	private String classAttribute;
-
-	 /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#addPropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-     */
-    public void addPropertyChangeListener(IPropertyChangeListener listener) {
-        p_listeners.add(listener);
-        set_p_listeners = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.addPropertyChangeListener(listener);
-        } else {
-        	dummy.addPropertyChangeListener(listener);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getAccelerator()
-     */
-    public int getAccelerator() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getAccelerator();
-        }
-        return p_accelerator;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getActionDefinitionId()
-     */
-    public String getActionDefinitionId() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getActionDefinitionId();
-        }
-        return p_actionDefinitionId;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getDescription()
-     */
-    public String getDescription() {
-        //        System.out.println(p_id + ": getDescription");
-        //        System.out.flush();
-        realize();
-        if (proxy != null) {
-            return proxy.getDescription();
-        }
-        return null;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getDisabledImageDescriptor()
-     */
-    public ImageDescriptor getDisabledImageDescriptor() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getDisabledImageDescriptor();
-        }
-        return p_disabledImage;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getHelpListener()
-     */
-    public HelpListener getHelpListener() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getHelpListener();
-        }
-        return p_helpListener;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getHoverImageDescriptor()
-     */
-    public ImageDescriptor getHoverImageDescriptor() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getHoverImageDescriptor();
-        }
-        return p_hoverImage;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getId()
-     */
-    public String getId() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getId();
-        }
-        return p_id;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getImageDescriptor()
-     */
-    public ImageDescriptor getImageDescriptor() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getImageDescriptor();
-        }
-        return p_image;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getMenuCreator()
-     */
-    public IMenuCreator getMenuCreator() {
-        //        System.out.println(p_id + ": getMenuCreator");
-        //        System.out.flush();
-        realize();
-        if (proxy != null) {
-            return proxy.getMenuCreator();
-        }
-        return null;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getStyle()
-     */
-    public int getStyle() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getStyle();
-        }
-        return p_style;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getText()
-     */
-    public String getText() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getText();
-        }
-        return p_text;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#getToolTipText()
-     */
-    public String getToolTipText() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.getToolTipText();
-        }
-        return p_toolTipText;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#isChecked()
-     */
-    public boolean isChecked() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.isChecked();
-        }
-        return p_checked;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#isEnabled()
-     */
-    public boolean isEnabled() {
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            return proxy.isEnabled();
-        }
-        return p_enabled;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#removePropertyChangeListener(org.eclipse.jface.util.IPropertyChangeListener)
-     */
-    public void removePropertyChangeListener(IPropertyChangeListener listener) {
-        p_listeners.remove(listener);
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.removePropertyChangeListener(listener);
-        }
-        dummy.removePropertyChangeListener(listener);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#run()
-     */
-    public void run() {
-        realize();
-        if (proxy != null) {
-            // if this has a key accelerator, first update this action and to
-            // see if this action is enabled or not.
-            if ((proxy.getAccelerator() > 0) || (proxy.getActionDefinitionId() != null)) {
-                update();
-                if (isEnabled() == true) {
-                    proxy.run();
-                }
-            } else {
-                proxy.run();
-            }
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#runWithEvent(org.eclipse.swt.widgets.Event)
-     */
-    public void runWithEvent(Event event) {
-        realize();
-        if (proxy != null) {
-            // same as run()
-            if ((proxy.getAccelerator() > 0) || (proxy.getActionDefinitionId() != null)) {
-                update();
-                if (isEnabled() == true) {
-                    proxy.runWithEvent(event);
-                }
-            } else {
-                proxy.runWithEvent(event);
-            }
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setActionDefinitionId(java.lang.String)
-     */
-    public void setActionDefinitionId(String id) {
-        p_actionDefinitionId = id;
-        set_p_actionDefinitionId = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setActionDefinitionId(id);
-        } else {
-        	dummy.setActionDefinitionId(id);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setChecked(boolean)
-     */
-    public void setChecked(boolean checked) {
-        p_checked = checked;
-        set_p_checked = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setChecked(checked);
-        } else {
-        	dummy.setChecked(checked);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setDescription(java.lang.String)
-     */
-    public void setDescription(String text) {
-        //        System.out.println(p_id + ": setDescription");
-        //        System.out.flush();
-        realize();
-        if (proxy != null) {
-            proxy.setDescription(text);
-        } else {
-        	dummy.setDescription(text);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setDisabledImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
-     */
-    public void setDisabledImageDescriptor(ImageDescriptor newImage) {
-        p_disabledImage = newImage;
-        set_p_disabledImage = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setDisabledImageDescriptor(newImage);
-        } else {
-        	dummy.setDisabledImageDescriptor(newImage);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setEnabled(boolean)
-     */
-    public void setEnabled(boolean enabled) {
-        p_enabled = enabled;
-        set_p_enabled = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setEnabled(enabled);
-        } else {
-        	dummy.setEnabled(enabled);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setHelpListener(org.eclipse.swt.events.HelpListener)
-     */
-    public void setHelpListener(HelpListener listener) {
-        p_helpListener = listener;
-        set_p_helpListener = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setHelpListener(listener);
-        } else {
-        	dummy.setHelpListener(listener);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setHoverImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
-     */
-    public void setHoverImageDescriptor(ImageDescriptor newImage) {
-        p_hoverImage = newImage;
-        set_p_hoverImage = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setHoverImageDescriptor(newImage);
-        } else {
-        	dummy.setHoverImageDescriptor(newImage);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setId(java.lang.String)
-     */
-    public void setId(String id) {
-        p_id = id;
-        set_p_id = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setId(id);
-        } else {
-        	dummy.setId(id);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setImageDescriptor(org.eclipse.jface.resource.ImageDescriptor)
-     */
-    public void setImageDescriptor(ImageDescriptor newImage) {
-        p_image = newImage;
-        set_p_image = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setImageDescriptor(newImage);
-        } else {
-        	dummy.setImageDescriptor(newImage);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setMenuCreator(org.eclipse.jface.action.IMenuCreator)
-     */
-    public void setMenuCreator(IMenuCreator creator) {
-        //        System.out.println(p_id + ": setMenuCreator");
-        //        System.out.flush();
-        realize();
-        if (proxy != null) {
-            proxy.setMenuCreator(creator);
-        } else {
-        	dummy.setMenuCreator(creator);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setText(java.lang.String)
-     */
-    public void setText(String text) {
-        p_text = text;
-        set_p_text = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setText(text);
-        } else {
-        	dummy.setText(text);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setToolTipText(java.lang.String)
-     */
-    public void setToolTipText(String text) {
-        p_toolTipText = text;
-        set_p_toolTipText = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setToolTipText(text);
-        } else {
-        	dummy.setToolTipText(text);
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#setAccelerator(int)
-     */
-    public void setAccelerator(int keycode) {
-        p_accelerator = keycode;
-        set_p_accelerator = true;
-        // don't realize class.
-        // realize();
-        if (proxy != null) {
-            proxy.setAccelerator(keycode);
-        } else {
-        	dummy.setAccelerator(keycode);
-        }
-    }
-
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.sse.ui.internal.IExtendedEditorAction#setActiveExtendedEditor(com.ibm.sse.editor.extension.IExtendedSimpleEditor)
-	 */
-	public void setActiveExtendedEditor(IExtendedSimpleEditor targetEditor) {
-		p_targetEditor = targetEditor;
-		set_p_targetEditor = true;
-        // don't realize class.
-        // realize();
-        if ((proxy != null) && (proxy instanceof IExtendedEditorAction)) {
-            ((IExtendedEditorAction)proxy).setActiveExtendedEditor(targetEditor);
-        }
-	}
-
-	/* (non-Javadoc)
-	 * @see com.ibm.sse.editor.extension.IExtendedEditorAction#isVisible()
-	 */
-	public boolean isVisible() {
-        // don't realize class.
-        // realize();
-        if ((proxy != null) && (proxy instanceof IExtendedEditorAction)) {
-            return ((IExtendedEditorAction)proxy).isVisible();
-        }
-        return p_isvisible;
-	}
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.action.IAction#isHandled
-     */
-	public boolean isHandled() {
-		return false;
-	}
-
-	// see ActionDescriptor#createExtension
-	private static IAction newInstance(final IConfigurationElement elm, final String cla) {
-		final Object[] result = new Object[1];
-		// If plugin has been loaded create extension.
-		// Otherwise, show busy cursor then create extension.
-		Bundle bundle= Platform.getBundle(elm.getDeclaringExtension().getNamespace());
-		if (bundle != null && bundle.getState() == Bundle.ACTIVE) {
-			try {
-				result[0] = elm.createExecutableExtension(cla);
-			}
-			catch (Exception e) {
-				// catch and log ANY exception from extension point
-				handleCreateExecutableException(result, e);
-			}
-		}
-		else {
-			BusyIndicator.showWhile(null, new Runnable() {
-				public void run() {
-					try {
-						result[0] = elm.createExecutableExtension(cla);
-					}
-					catch (Exception e) {
-						// catch and log ANY exception from extension point
-						handleCreateExecutableException(result, e);
-					}
-				}
-			});
-		}
-		if ((result[0] != null) && (result[0] instanceof IAction)) {
-			return (IAction)result[0];
-		}
-		return null;
-    }
-	
-	private static void handleCreateExecutableException(final Object[] result, Throwable e) {
-		Logger.logException(e);
-		result[0] = null;
-	}
-
-	/**
-     * Instantiate a real class here
-     */
-    public void realize() {
-        if ((proxy == null) && (element != null) && (classAttribute != null)) {
-            proxy = newInstance(element, classAttribute);
-	        if (proxy != null) {
-	            element = null;
-	            classAttribute = null;
-	            // propagate proxy'ed properties
-	            if (set_p_listeners == true) {
-	                if (p_listeners.size() > 0) {
-	                    Object[] l = p_listeners.getListeners();
-	                    int ls = l.length;
-	                    for (int i = 0; i < ls; i++) {
-	                        IPropertyChangeListener pl = (IPropertyChangeListener) l[i];
-	                        proxy.addPropertyChangeListener(pl);
-	                        dummy.removePropertyChangeListener(pl); // remove listener from dymmy so that we don't send notifications twice anymore
-	                    }
-	                }
-	            }
-	            if (set_p_accelerator == true) {
-	                proxy.setAccelerator(p_accelerator);
-	            }
-	            if (set_p_actionDefinitionId == true) {
-	                if (p_actionDefinitionId != null) {
-	                    proxy.setActionDefinitionId(p_actionDefinitionId);
-	                }
-	            }
-	            if (set_p_checked == true) {
-	                proxy.setChecked(p_checked);
-	            }
-	            if (set_p_disabledImage == true) {
-	                if (p_disabledImage != null) {
-	                    proxy.setDisabledImageDescriptor(p_disabledImage);
-	                }
-	            }
-	            if (set_p_enabled == true) {
-	                proxy.setEnabled(p_enabled);
-	            }
-	            if (set_p_helpListener == true) {
-	                if (p_helpListener != null) {
-	                    proxy.setHelpListener(p_helpListener);
-	                }
-	            }
-	            if (set_p_hoverImage == true) {
-	                if (p_hoverImage != null) {
-	                    proxy.setHoverImageDescriptor(p_hoverImage);
-	                }
-	            }
-	            if (set_p_id == true) {
-	                if (p_id != null) {
-	                    proxy.setId(p_id);
-	                }
-	            }
-	            if (set_p_image == true) {
-	                if (p_image != null) {
-	                    proxy.setImageDescriptor(p_image);
-	                }
-	            }
-	            if (set_p_text == true) {
-	                if (p_text != null) {
-	                    proxy.setText(p_text);
-	                }
-	            }
-	            if (set_p_toolTipText == true) {
-	                if (p_toolTipText != null) {
-	                    proxy.setToolTipText(p_toolTipText);
-	                }
-	            }
-	            if (set_p_targetEditor == true) {
-	                if (p_targetEditor != null) {
-				        if (proxy instanceof IExtendedEditorAction) {
-				            ((IExtendedEditorAction)proxy).setActiveExtendedEditor(p_targetEditor);
-				        }
-	                }
-	            }
-	        }
-        }
-    }
-
-    public boolean isRealized() {
-        return (proxy != null);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.ui.texteditor.IUpdate#update()
-     */
-    public void update() {
-        // don't realize class.
-        // realize();
-        if ((proxy != null) && (proxy instanceof IUpdate)) {
-            ((IUpdate) proxy).update();
-        }
-    }
-
-    /**
-     * get a real action class
-     */
-    public IAction getAction() {
-        realize();
-        return proxy;
-    }
-
-
-    /**
-     * These are Actions's constructors
-     */
-    ExtendedEditorActionProxyForDelayLoading() {
-        super();
-     }
-    public ExtendedEditorActionProxyForDelayLoading(final IConfigurationElement element, final String classAttribute) {
-        super();
-        this.element = element;
-        this.classAttribute = classAttribute;
-    }
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/IExtendedEditorActionProxyForDelayLoading.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/IExtendedEditorActionProxyForDelayLoading.java
deleted file mode 100644
index 0152cbe..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/IExtendedEditorActionProxyForDelayLoading.java
+++ /dev/null
@@ -1,22 +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.wst.sse.ui.internal.extension;
-
-import org.eclipse.jface.action.IAction;
-
-
-public interface IExtendedEditorActionProxyForDelayLoading {
-    public IAction getAction();
-    public boolean isRealized();
-    public void realize();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ImageUtil.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ImageUtil.java
deleted file mode 100644
index b4ec693..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/ImageUtil.java
+++ /dev/null
@@ -1,84 +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.wst.sse.ui.internal.extension;
-
-
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.osgi.framework.Bundle;
-
-public class ImageUtil {
-
-
-	/**
-	 * Convenience Method. Returns an ImageDescriptor whose path, relative to
-	 * the plugin containing the <code>extension</code> is
-	 * <code>subdirectoryAndFilename</code>. If there isn't any value
-	 * associated with the name then <code>null
-	 * </code> is returned.
-	 * 
-	 * This method is convenience and only intended for use by the workbench
-	 * because it explicitly uses the workbench's registry for
-	 * caching/retrieving images from other extensions -- other plugins must
-	 * user their own registry. This convenience method is subject to removal.
-	 * 
-	 * Note: subdirectoryAndFilename must not have any leading "." or path
-	 * separators / or \ ISV's should use icons/mysample.gif and not
-	 * ./icons/mysample.gif
-	 * 
-	 * Note: This consults the plugin for extension and obtains its
-	 * installation location. all requested images are assumed to be in a
-	 * directory below and relative to that plugins installation directory.
-	 */
-	public static ImageDescriptor getImageDescriptorFromExtension(IExtension extension, String subdirectoryAndFilename) {
-		String pluginId = extension.getNamespace();
-		Bundle bundle = Platform.getBundle(pluginId);
-		return getImageDescriptorFromBundle(bundle, subdirectoryAndFilename);
-	}
-
-	/**
-	 * Convenience Method. Return an ImageDescriptor whose path relative to
-	 * the plugin described by <code>bundle</code> is
-	 * <code>subdirectoryAndFilename</code>. Returns <code>null</code> if
-	 * no image could be found.
-	 * 
-	 * This method is convenience and only intended for use by the workbench
-	 * because it explicitly uses the workbench's registry for
-	 * caching/retrieving images from other extensions -- other plugins must
-	 * user their own registry. This convenience method is subject to removal.
-	 * 
-	 * Note: subdirectoryAndFilename must not have any leading "." or path
-	 * separators / or \ ISV's should use icons/mysample.gif and not
-	 * ./icons/mysample.gif
-	 * 
-	 * Note: This consults the plugin for extension and obtains its
-	 * installation location. all requested images are assumed to be in a
-	 * directory below and relative to that plugins installation directory.
-	 */
-	public static ImageDescriptor getImageDescriptorFromBundle(Bundle bundle, String subdirectoryAndFilename) {
-
-		URL path = bundle.getEntry("/"); //$NON-NLS-1$
-		URL fullPathString = null;
-		try {
-			fullPathString = new URL(path, subdirectoryAndFilename);
-			return ImageDescriptor.createFromURL(fullPathString);
-		} catch (MalformedURLException e) {
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/RegistryReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/RegistryReader.java
deleted file mode 100644
index bd444ce..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/extension/RegistryReader.java
+++ /dev/null
@@ -1,176 +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.wst.sse.ui.internal.extension;
-
-
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IPluginRegistry;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.util.Sorter;
-
-
-/**
- * Template implementation of a registry reader that creates objects
- * representing registry contents. Typically, an extension contains one
- * element, but this reader handles multiple elements per extension.
- * 
- * To start reading the extensions from the registry for an extension point,
- * call the method <code>readRegistry</code>.
- * 
- * To read children of an IConfigurationElement, call the method
- * <code>readElementChildren</code> from your implementation of the method
- * <code>readElement</code>, as it will not be done by default.
- */
-public abstract class RegistryReader {
-
-
-	protected static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	/**
-	 * The constructor.
-	 */
-	protected RegistryReader() {
-	}
-
-	/**
-	 * This method extracts description as a subelement of the given element.
-	 * 
-	 * @return description string if defined, or empty string if not.
-	 */
-	protected String getDescription(IConfigurationElement config) {
-		IConfigurationElement[] children = config.getChildren(TAG_DESCRIPTION);
-		if (children.length >= 1) {
-			return children[0].getValue();
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Logs the error in the workbench log using the provided text and the
-	 * information in the configuration element.
-	 */
-	protected void logError(IConfigurationElement element, String text) {
-		IExtension extension = element.getDeclaringExtension();
-		StringBuffer buf = new StringBuffer();
-		buf.append("Plugin " + extension.getNamespace() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-2$//$NON-NLS-1$
-		buf.append("\n" + text); //$NON-NLS-1$
-		Logger.log(Logger.ERROR, buf.toString());
-	}
-
-	/**
-	 * Logs a very common registry error when a required attribute is missing.
-	 */
-	protected void logMissingAttribute(IConfigurationElement element, String attributeName) {
-		logError(element, "Required attribute '" + attributeName + "' not defined"); //$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	/**
-	 * Logs a registry error when the configuration element is unknown.
-	 */
-	protected void logUnknownElement(IConfigurationElement element) {
-		logError(element, "Unknown extension tag found: " + element.getName()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Apply a reproducable order to the list of extensions provided, such
-	 * that the order will not change as extensions are added or removed.
-	 */
-	protected IExtension[] orderExtensions(IExtension[] extensions) {
-		// By default, the order is based on plugin id sorted
-		// in ascending order. The order for a plugin providing
-		// more than one extension for an extension point is
-		// dependent in the order listed in the XML file.
-		Sorter sorter = new Sorter() {
-			public boolean compare(Object extension1, Object extension2) {
-				String s1 = ((IExtension) extension1).getNamespace().toUpperCase();
-				String s2 = ((IExtension) extension2).getNamespace().toUpperCase();
-				//Return true if elementTwo is 'greater than' elementOne
-				return s2.compareTo(s1) > 0;
-			}
-		};
-
-		Object[] sorted = sorter.sort(extensions);
-		IExtension[] sortedExtension = new IExtension[sorted.length];
-		System.arraycopy(sorted, 0, sortedExtension, 0, sorted.length);
-		return sortedExtension;
-	}
-
-	/**
-	 * Implement this method to read element's attributes. If children should
-	 * also be read, then implementor is responsible for calling
-	 * <code>readElementChildren</code>. Implementor is also responsible
-	 * for logging missing attributes.
-	 * 
-	 * @return true if element was recognized, false if not.
-	 */
-	protected abstract boolean readElement(IConfigurationElement element);
-
-	/**
-	 * Read the element's children. This is called by the subclass'
-	 * readElement method when it wants to read the children of the element.
-	 */
-	protected void readElementChildren(IConfigurationElement element) {
-		readElements(element.getChildren());
-	}
-
-	/**
-	 * Read each element one at a time by calling the subclass implementation
-	 * of <code>readElement</code>.
-	 * 
-	 * Logs an error if the element was not recognized.
-	 */
-	protected void readElements(IConfigurationElement[] elements) {
-		for (int i = 0; i < elements.length; i++) {
-			if (!readElement(elements[i]))
-				logUnknownElement(elements[i]);
-		}
-	}
-
-	/**
-	 * Read one extension by looping through its configuration elements.
-	 */
-	protected void readExtension(IExtension extension) {
-		readElements(extension.getConfigurationElements());
-	}
-
-	/**
-	 * @deprecated use readRegistry(IExtensionRegistry registry, String pluginId, String extensionPoint)
-	 */
-	protected void readRegistry(IPluginRegistry registry, String pluginId, String extensionPoint) {
-		IExtensionPoint point = registry.getExtensionPoint(pluginId, extensionPoint);
-		if (point != null) {
-			IExtension[] extensions = point.getExtensions();
-			extensions = orderExtensions(extensions);
-			for (int i = 0; i < extensions.length; i++)
-				readExtension(extensions[i]);
-		}
-	}
-	
-	/**
-	 * Start the registry reading process using the supplied plugin ID and
-	 * extension point.
-	 */
-	protected void readRegistry(IExtensionRegistry registry, String pluginId, String extensionPoint) {
-		IExtensionPoint point = registry.getExtensionPoint(pluginId, extensionPoint);
-		if (point != null) {
-			IExtension[] extensions = point.getExtensions();
-			extensions = orderExtensions(extensions);
-			for (int i = 0; i < extensions.length; i++)
-				readExtension(extensions[i]);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/format/StructuredFormattingStrategy.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/format/StructuredFormattingStrategy.java
deleted file mode 100644
index 417ad27..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/format/StructuredFormattingStrategy.java
+++ /dev/null
@@ -1,91 +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.wst.sse.ui.internal.format;
-
-import java.io.IOException;
-import java.util.LinkedList;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.TypedPosition;
-import org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy;
-import org.eclipse.jface.text.formatter.FormattingContextProperties;
-import org.eclipse.jface.text.formatter.IFormattingContext;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-public class StructuredFormattingStrategy extends ContextBasedFormattingStrategy {
-
-	/** Documents to be formatted by this strategy */
-	private final LinkedList fDocuments = new LinkedList();
-	private IStructuredFormatProcessor fFormatProcessor;
-	/** Partitions to be formatted by this strategy */
-	private final LinkedList fPartitions = new LinkedList();
-	private IRegion fRegion;
-
-	/**
-	 * @param formatProcessor
-	 */
-	public StructuredFormattingStrategy(IStructuredFormatProcessor formatProcessor) {
-		super();
-
-		fFormatProcessor = formatProcessor;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#format()
-	 */
-	public void format() {
-		super.format();
-
-		final IDocument document = (IDocument) fDocuments.removeFirst();
-		final TypedPosition partition = (TypedPosition) fPartitions.removeFirst();
-
-		if (document != null && partition != null && fRegion != null && fFormatProcessor != null) {
-			try {
-				fFormatProcessor.formatDocument(document, fRegion.getOffset(), fRegion.getLength());
-			}
-			catch (IOException e) {
-				// log for now, unless we find reason not to
-				Logger.log(Logger.INFO, e.getMessage());
-			}
-			catch (CoreException e) {
-				// log for now, unless we find reason not to
-				Logger.log(Logger.INFO, e.getMessage());
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStarts(org.eclipse.jface.text.formatter.IFormattingContext)
-	 */
-	public void formatterStarts(final IFormattingContext context) {
-		super.formatterStarts(context);
-
-		fPartitions.addLast(context.getProperty(FormattingContextProperties.CONTEXT_PARTITION));
-		fDocuments.addLast(context.getProperty(FormattingContextProperties.CONTEXT_MEDIUM));
-		fRegion = (IRegion) context.getProperty(FormattingContextProperties.CONTEXT_REGION);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.formatter.ContextBasedFormattingStrategy#formatterStops()
-	 */
-	public void formatterStops() {
-		super.formatterStops();
-
-		fPartitions.clear();
-		fDocuments.clear();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/hyperlink/HighlighterHyperlinkPresenter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/hyperlink/HighlighterHyperlinkPresenter.java
deleted file mode 100644
index 5085fa4..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/hyperlink/HighlighterHyperlinkPresenter.java
+++ /dev/null
@@ -1,468 +0,0 @@
-package org.eclipse.wst.sse.ui.internal.hyperlink;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.Assert;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITextViewerExtension2;
-import org.eclipse.jface.text.ITextViewerExtension5;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkPresenter;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
-
-
-/**
- * The is almost an exact copy of DefaultHyperlinkPresenter. However this
- * hyperlink presenter works with the StructuredTextEditor's Highlighter
- * instead of TextPresentation.
- * 
- * The main difference is <code>text.redrawRange(offset, length, true);</code>
- * is called instead of passing false for clearBackground. Also all mention of
- * TextPresentation was removed since it does not really apply.
- * 
- * @see org.eclipse.jface.text.hyperlink.DefaultHyperlinkPresenter
- */
-public class HighlighterHyperlinkPresenter implements IHyperlinkPresenter, PaintListener, ITextInputListener, IDocumentListener, IPropertyChangeListener {
-
-	/**
-	 * A named preference that holds the color used for hyperlinks.
-	 * <p>
-	 * Value is of type <code>String</code>. A RGB color value encoded as a
-	 * string using class <code>PreferenceConverter</code>
-	 * </p>
-	 * 
-	 * @see org.eclipse.jface.resource.StringConverter
-	 * @see org.eclipse.jface.preference.PreferenceConverter
-	 */
-	public final static String HYPERLINK_COLOR = "hyperlinkColor"; //$NON-NLS-1$
-
-
-	/** The text viewer. */
-	private ITextViewer fTextViewer;
-	/** The hand cursor. */
-	private Cursor fCursor;
-	/** The link color. */
-	private Color fColor;
-	/** Tells whether to dispose the color on uninstall. */
-	private boolean fDisposeColor;
-	/** The currently active region. */
-	private IRegion fActiveRegion;
-	/** The currently active style range as position. */
-	private Position fRememberedPosition;
-	/** The optional preference store */
-	private IPreferenceStore fPreferenceStore;
-
-
-	/**
-	 * Creates a new default hyperlink presenter which uses
-	 * {@link #HYPERLINK_COLOR}to read the color from the given preference
-	 * store.
-	 * 
-	 * @param store
-	 *            the preference store
-	 */
-	public HighlighterHyperlinkPresenter(IPreferenceStore store) {
-		fPreferenceStore = store;
-		fDisposeColor = true;
-	}
-
-	/**
-	 * Creates a new default hyperlink presenter.
-	 * 
-	 * @param color
-	 *            the hyperlink color, to be disposed by the caller
-	 */
-	public HighlighterHyperlinkPresenter(Color color) {
-		fDisposeColor = false;
-		fColor = color;
-	}
-
-	public boolean canShowMultipleHyperlinks() {
-		return false;
-	}
-
-	public void showHyperlinks(IHyperlink[] hyperlinks) {
-		Assert.isLegal(hyperlinks != null && hyperlinks.length == 1);
-		highlightRegion(hyperlinks[0].getHyperlinkRegion());
-		activateCursor();
-	}
-
-	public void hideHyperlinks() {
-		repairRepresentation();
-		fRememberedPosition = null;
-	}
-
-	public void install(ITextViewer textViewer) {
-		Assert.isNotNull(textViewer);
-		fTextViewer = textViewer;
-		fTextViewer.addTextInputListener(this);
-
-		StyledText text = fTextViewer.getTextWidget();
-		if (text != null && !text.isDisposed()) {
-			text.addPaintListener(this);
-			if (fPreferenceStore != null)
-				fColor = createColor(fPreferenceStore, HYPERLINK_COLOR, text.getDisplay());
-		}
-
-		if (fPreferenceStore != null)
-			fPreferenceStore.addPropertyChangeListener(this);
-	}
-
-	public void uninstall() {
-		fTextViewer.removeTextInputListener(this);
-
-		if (fColor != null) {
-			if (fDisposeColor)
-				fColor.dispose();
-			fColor = null;
-		}
-
-		if (fCursor != null) {
-			fCursor.dispose();
-			fCursor = null;
-		}
-
-		StyledText text = fTextViewer.getTextWidget();
-		if (text != null && !text.isDisposed())
-			text.removePaintListener(this);
-
-		fTextViewer = null;
-
-		if (fPreferenceStore != null)
-			fPreferenceStore.removePropertyChangeListener(this);
-	}
-
-	public void setColor(Color color) {
-		Assert.isNotNull(fTextViewer);
-		fColor = color;
-	}
-
-	private void highlightRegion(IRegion region) {
-
-		if (region.equals(fActiveRegion))
-			return;
-
-		repairRepresentation();
-
-		StyledText text = fTextViewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-
-
-		// Underline
-		int offset = 0;
-		int length = 0;
-		if (fTextViewer instanceof ITextViewerExtension5) {
-			ITextViewerExtension5 extension = (ITextViewerExtension5) fTextViewer;
-			IRegion widgetRange = extension.modelRange2WidgetRange(region);
-			if (widgetRange == null)
-				return;
-
-			offset = widgetRange.getOffset();
-			length = widgetRange.getLength();
-
-		}
-		else {
-			offset = region.getOffset() - fTextViewer.getVisibleRegion().getOffset();
-			length = region.getLength();
-		}
-
-		// needs to clean background due to StructuredTextEditor's highlighter
-		text.redrawRange(offset, length, true);
-
-		// Invalidate region ==> apply text presentation
-		fActiveRegion = region;
-
-		if (fTextViewer instanceof ITextViewerExtension2)
-			((ITextViewerExtension2) fTextViewer).invalidateTextPresentation(region.getOffset(), region.getLength());
-		else
-			fTextViewer.invalidateTextPresentation();
-	}
-
-	private void activateCursor() {
-		StyledText text = fTextViewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-		Display display = text.getDisplay();
-		if (fCursor == null)
-			fCursor = new Cursor(display, SWT.CURSOR_HAND);
-		text.setCursor(fCursor);
-	}
-
-	private void resetCursor() {
-		StyledText text = fTextViewer.getTextWidget();
-		if (text != null && !text.isDisposed())
-			text.setCursor(null);
-
-		if (fCursor != null) {
-			fCursor.dispose();
-			fCursor = null;
-		}
-	}
-
-	private void repairRepresentation() {
-
-		if (fActiveRegion == null)
-			return;
-
-		int offset = fActiveRegion.getOffset();
-		int length = fActiveRegion.getLength();
-		fActiveRegion = null;
-
-		resetCursor();
-
-		// Invalidate ==> remove applied text presentation
-		if (fTextViewer instanceof ITextViewerExtension2)
-			((ITextViewerExtension2) fTextViewer).invalidateTextPresentation(offset, length);
-		else
-			fTextViewer.invalidateTextPresentation();
-
-		// Remove underline
-		if (fTextViewer instanceof ITextViewerExtension5) {
-			ITextViewerExtension5 extension = (ITextViewerExtension5) fTextViewer;
-			offset = extension.modelOffset2WidgetOffset(offset);
-		}
-		else {
-			offset -= fTextViewer.getVisibleRegion().getOffset();
-		}
-		try {
-			StyledText text = fTextViewer.getTextWidget();
-
-			// needs to clean background due to StructuredTextEditor's
-			// highlighter
-			text.redrawRange(offset, length, true);
-
-		}
-		catch (IllegalArgumentException x) {
-			// ignore - do not log
-		}
-	}
-
-	/*
-	 * @see PaintListener#paintControl(PaintEvent)
-	 */
-	public void paintControl(PaintEvent event) {
-		if (fActiveRegion == null)
-			return;
-
-		StyledText text = fTextViewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-
-		int offset = 0;
-		int length = 0;
-
-		if (fTextViewer instanceof ITextViewerExtension5) {
-
-			ITextViewerExtension5 extension = (ITextViewerExtension5) fTextViewer;
-			IRegion widgetRange = extension.modelRange2WidgetRange(fActiveRegion);
-			if (widgetRange == null)
-				return;
-
-			offset = widgetRange.getOffset();
-			length = widgetRange.getLength();
-
-		}
-		else {
-
-			IRegion region = fTextViewer.getVisibleRegion();
-			if (!includes(region, fActiveRegion))
-				return;
-
-			offset = fActiveRegion.getOffset() - region.getOffset();
-			length = fActiveRegion.getLength();
-		}
-
-		// support for BIDI
-		Point minLocation = getMinimumLocation(text, offset, length);
-		Point maxLocation = getMaximumLocation(text, offset, length);
-
-		int x1 = minLocation.x;
-		int x2 = maxLocation.x - 1;
-		int y = minLocation.y + text.getLineHeight() - 1;
-
-		GC gc = event.gc;
-		if (fColor != null && !fColor.isDisposed())
-			gc.setForeground(fColor);
-		else if (fColor == null && !(offset < 0 && offset >= text.getCharCount())) {
-			StyleRange style = text.getStyleRangeAtOffset(offset);
-			if (style != null)
-				gc.setForeground(style.foreground);
-		}
-		gc.drawLine(x1, y, x2, y);
-	}
-
-	private Point getMinimumLocation(StyledText text, int offset, int length) {
-		int max = text.getCharCount();
-		Rectangle bounds = text.getBounds();
-		Point minLocation = new Point(bounds.width, bounds.height);
-		for (int i = 0; i <= length; i++) {
-			int k = offset + i;
-			if (k < 0 || k > max)
-				break;
-
-			Point location = text.getLocationAtOffset(k);
-			if (location.x < minLocation.x)
-				minLocation.x = location.x;
-			if (location.y < minLocation.y)
-				minLocation.y = location.y;
-		}
-
-		return minLocation;
-	}
-
-	private Point getMaximumLocation(StyledText text, int offset, int length) {
-		Point maxLocation = new Point(0, 0);
-
-		for (int i = 0; i <= length; i++) {
-			int k = offset + i;
-			if (k < 0 || k > text.getCharCount())
-				break;
-
-			Point location = text.getLocationAtOffset(k);
-			if (location.x > maxLocation.x)
-				maxLocation.x = location.x;
-			if (location.y > maxLocation.y)
-				maxLocation.y = location.y;
-		}
-
-		return maxLocation;
-	}
-
-	private boolean includes(IRegion region, IRegion position) {
-		return position.getOffset() >= region.getOffset() && position.getOffset() + position.getLength() <= region.getOffset() + region.getLength();
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public void documentAboutToBeChanged(DocumentEvent event) {
-		if (fActiveRegion != null) {
-			fRememberedPosition = new Position(fActiveRegion.getOffset(), fActiveRegion.getLength());
-			try {
-				event.getDocument().addPosition(fRememberedPosition);
-			}
-			catch (BadLocationException x) {
-				fRememberedPosition = null;
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public void documentChanged(DocumentEvent event) {
-		if (fRememberedPosition != null) {
-			if (!fRememberedPosition.isDeleted()) {
-
-				event.getDocument().removePosition(fRememberedPosition);
-				fActiveRegion = new Region(fRememberedPosition.getOffset(), fRememberedPosition.getLength());
-				fRememberedPosition = null;
-
-				StyledText widget = fTextViewer.getTextWidget();
-				if (widget != null && !widget.isDisposed()) {
-					widget.getDisplay().asyncExec(new Runnable() {
-						public void run() {
-							hideHyperlinks();
-						}
-					});
-				}
-
-			}
-			else {
-				fActiveRegion = null;
-				fRememberedPosition = null;
-				hideHyperlinks();
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.ITextInputListener#inputDocumentAboutToBeChanged(org.eclipse.jface.text.IDocument,
-	 *      org.eclipse.jface.text.IDocument)
-	 */
-	public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
-		if (oldInput == null)
-			return;
-		hideHyperlinks();
-		oldInput.removeDocumentListener(this);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.ITextInputListener#inputDocumentChanged(org.eclipse.jface.text.IDocument,
-	 *      org.eclipse.jface.text.IDocument)
-	 */
-	public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
-		if (newInput == null)
-			return;
-		newInput.addDocumentListener(this);
-	}
-
-	/**
-	 * Creates a color from the information stored in the given preference
-	 * store.
-	 * 
-	 * @param store
-	 *            the preference store
-	 * @param key
-	 *            the key
-	 * @param display
-	 *            the display
-	 * @return the color or <code>null</code> if there is no such
-	 *         information available
-	 */
-	private Color createColor(IPreferenceStore store, String key, Display display) {
-
-		RGB rgb = null;
-
-		if (store.contains(key)) {
-
-			if (store.isDefault(key))
-				rgb = PreferenceConverter.getDefaultColor(store, key);
-			else
-				rgb = PreferenceConverter.getColor(store, key);
-
-			if (rgb != null)
-				return new Color(display, rgb);
-		}
-
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-	 */
-	public void propertyChange(PropertyChangeEvent event) {
-		if (!HYPERLINK_COLOR.equals(event.getProperty()))
-			return;
-
-		if (fDisposeColor && fColor != null && !fColor.isDisposed())
-			fColor.dispose();
-		fColor = null;
-
-		StyledText textWidget = fTextViewer.getTextWidget();
-		if (textWidget != null && !textWidget.isDisposed())
-			fColor = createColor(fPreferenceStore, HYPERLINK_COLOR, textWidget.getDisplay());
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/hyperlink/OpenHyperlinkAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/hyperlink/OpenHyperlinkAction.java
deleted file mode 100644
index 9994523..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/hyperlink/OpenHyperlinkAction.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.eclipse.wst.sse.ui.internal.hyperlink;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.TextEditorAction;
-
-/**
- * Open hyperlink action
- */
-public class OpenHyperlinkAction extends TextEditorAction {
-	private IHyperlinkDetector[] fHyperlinkDetectors;
-	private ITextViewer fTextViewer;
-
-	public OpenHyperlinkAction(ResourceBundle bundle, String prefix, ITextEditor editor, ITextViewer viewer) {
-		super(bundle, prefix, editor);
-		fTextViewer = viewer;
-	}
-
-	public void setHyperlinkDetectors(IHyperlinkDetector[] detectors) {
-		fHyperlinkDetectors = detectors;
-	}
-
-	public void run() {
-		if (fHyperlinkDetectors == null)
-			return;
-		ISelection selection = getTextEditor().getSelectionProvider().getSelection();
-		if (selection == null || !(selection instanceof ITextSelection)) {
-			return;
-		}
-
-		ITextSelection textSelection = (ITextSelection) selection;
-		IRegion region = new Region(textSelection.getOffset(), textSelection.getLength());
-		IHyperlink hyperlink = null;
-
-		synchronized (fHyperlinkDetectors) {
-			for (int i = 0, length = fHyperlinkDetectors.length; i < length && hyperlink == null; i++) {
-				IHyperlinkDetector detector = fHyperlinkDetectors[i];
-				if (detector == null)
-					continue;
-
-				IHyperlink[] hyperlinks = detector.detectHyperlinks(fTextViewer, region, false);
-				if (hyperlinks == null)
-					continue;
-
-				if (hyperlinks.length > 0)
-					hyperlink = hyperlinks[0];
-			}
-		}
-		if (hyperlink != null) {
-			/**
-			 * Force the highlight range to change when the hyperlink is
-			 * opened by altering the highlighted range beforehand.
-			 */
-			getTextEditor().setHighlightRange(Math.max(0, region.getOffset() - 1), 0, false);
-			hyperlink.open();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/AbstractOpenOn.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/AbstractOpenOn.java
deleted file mode 100644
index 8bcf216..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/AbstractOpenOn.java
+++ /dev/null
@@ -1,267 +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.wst.sse.ui.internal.openon;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.swt.program.Program;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.util.PlatformStatusLineUtil;
-
-
-/**
- * This action class retrieves the link/file selected by the cursor and
- * attempts to open the link/file in the default editor or web browser
- * 
- * @deprecated Use base support for hyperlink navigation
- */
-abstract public class AbstractOpenOn implements IOpenOn {
-	protected final String CANNOT_OPEN = SSEUIMessages.AbstractOpenOn_0; //$NON-NLS-1$
-	// document currently associated with open
-	private IDocument fDocument;
-	protected final String FILE_PROTOCOL = "file:/";//$NON-NLS-1$
-	private final String HTTP_PROTOCOL = "http://";//$NON-NLS-1$
-
-	abstract protected IRegion doGetOpenOnRegion(int offset);
-
-	abstract protected void doOpenOn(IRegion region);
-
-	/**
-	 * Returns the current document associated with open on
-	 * 
-	 * @return IDocument
-	 */
-	public IDocument getDocument() {
-		return fDocument;
-	}
-
-	/**
-	 * Determines the editor associated with the given file name
-	 * 
-	 * @param filename
-	 * @return editor id of the editor associated with the given file name
-	 */
-	private String getEditorId(String filename) {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		IEditorRegistry editorRegistry = workbench.getEditorRegistry();
-		IEditorDescriptor descriptor = editorRegistry.getDefaultEditor(filename);
-		if (descriptor != null)
-			return descriptor.getId();
-		return EditorsUI.DEFAULT_TEXT_EDITOR_ID;
-	}
-
-	/**
-	 * Returns an IFile from the given uri if possible, null if cannot find
-	 * file from uri.
-	 * 
-	 * @param fileString
-	 *            file system path
-	 * @return returns IFile if fileString exists in the workspace
-	 */
-	protected IFile getFile(String fileString) {
-		IStructuredModel model = null;
-		IFile file = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
-			if (model != null) {
-				// use the base location to obtain the in-workspace IFile
-				IFile modelFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(model.getBaseLocation()));
-				if (modelFile != null) {
-					// find the referenced file's location on disk
-					String filesystemLocation = model.getResolver().getLocationByURI(fileString);
-					if (filesystemLocation != null) {
-						IFile[] workspaceFiles = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(filesystemLocation));
-						// favor a workspace file in the same project
-						for (int i = 0; i < workspaceFiles.length && file == null; i++) {
-							if (workspaceFiles[i].getProject().equals(modelFile.getProject())) {
-								file = workspaceFiles[i];
-							}
-						}
-						// if none were in the same project, just pick one
-						if (file == null && workspaceFiles.length > 0) {
-							file = workspaceFiles[0];
-						}
-					}
-				}
-			}
-		}
-		catch (Exception e) {
-			Logger.log(Logger.WARNING, e.getMessage());
-		}
-		finally {
-			if (model != null) {
-				model.releaseFromRead();
-			}
-		}
-		if (file == null && fileString.startsWith("/")) { //$NON-NLS-1$
-			file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(fileString));
-		}
-		return file;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.IOpenOn#getOpenOnRegion(org.eclipse.jface.text.IDocument,
-	 *      int)
-	 */
-	public IRegion getOpenOnRegion(IDocument doc, int offset) {
-		IRegion region;
-		// set the document for this action
-		setDocument(doc);
-		region = doGetOpenOnRegion(offset);
-		// reset the document back to null for this action
-		setDocument(null);
-		return region;
-	}
-
-	/**
-	 * Try to open the external file, fileString in its default editor
-	 * 
-	 * @param fileString
-	 * @return IEditorPart editor opened or null if editor could not be opened
-	 */
-	protected IEditorPart openExternalFile(String fileString) {
-		// file does not exist in workspace so try to open using system editor
-		File file = new File(fileString);
-		// try to open existing external file if it exists
-		if (file.exists()) {
-			IEditorInput input = new ExternalFileEditorInput(file);
-			String editorId = getEditorId(fileString);
-
-			try {
-				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-				return page.openEditor(input, editorId, true);
-			}
-			catch (PartInitException pie) {
-				Logger.log(Logger.WARNING_DEBUG, pie.getMessage(), pie);
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Notifies user that open on selection action could not successfully open
-	 * the selection (writes message on status bar and beeps)
-	 */
-	protected void openFileFailed() {
-		PlatformStatusLineUtil.displayErrorMessage(CANNOT_OPEN);
-		PlatformStatusLineUtil.addOneTimeClearListener();
-	}
-
-	/**
-	 * Opens the IFile, input in its default editor, if possible, and returns
-	 * the editor opened. Possible reasons for failure: input cannot be found,
-	 * input does not exist in workbench, editor cannot be opened.
-	 * 
-	 * @return IEditorPart editor opened or null if input == null or does not
-	 *         exist, external editor was opened, editor could not be opened
-	 */
-	protected IEditorPart openFileInEditor(IFile input) {
-		if (input != null && input.exists()) {
-			try {
-				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-				return IDE.openEditor(page, input, true);
-			}
-			catch (PartInitException pie) {
-				Logger.log(Logger.WARNING_DEBUG, pie.getMessage(), pie);
-			}
-		}
-		return null;
-	}
-
-	// on
-
-	/**
-	 * Opens the appropriate editor for fileString
-	 * 
-	 * @param fileString
-	 */
-	protected void openFileInEditor(String fileString) {
-		IEditorPart editor = null;
-		if (fileString != null) {
-			// open web browser if this is a web address
-			String temp = fileString.toLowerCase();
-			if (temp.startsWith(HTTP_PROTOCOL)) {
-				Program.launch(fileString); // launches web browser/executable
-				// associated with uri
-				return;
-			}
-			// chop off the file protocol
-			if (temp.startsWith(FILE_PROTOCOL)) {
-				fileString = fileString.substring(FILE_PROTOCOL.length());
-			}
-
-			// try to locate the file in the workspace and return an IFile if
-			// found
-			IFile file = getFile(fileString);
-			if (file != null) {
-				// file exists in workspace
-				editor = openFileInEditor(file);
-			}
-			else {
-				// file does not exist in workspace
-				editor = openExternalFile(fileString);
-			}
-		}
-		// no editor was opened
-		if (editor == null) {
-			openFileFailed();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.IOpenOn#openOn(org.eclipse.jface.text.IDocument,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public void openOn(IDocument doc, IRegion region) {
-		// set the document for this action
-		setDocument(doc);
-		// if no region was given this action fails
-		if (region == null)
-			openFileFailed();
-		else
-			doOpenOn(region);
-		// reset the document back to null for this action
-		setDocument(null);
-	}
-
-	/**
-	 * Sets current document associated with open on
-	 * 
-	 * @param document
-	 */
-	public void setDocument(IDocument document) {
-		fDocument = document;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/ExternalFileEditorInput.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/ExternalFileEditorInput.java
deleted file mode 100644
index 58eb658..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/ExternalFileEditorInput.java
+++ /dev/null
@@ -1,116 +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.wst.sse.ui.internal.openon;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.editors.text.ILocationProvider;
-
-/**
- * EditorInput for external files. Copied from
- * org.eclipse.ui.internal.editors.text.JavaFileEditorInput
- * 
- * @deprecated Use base support for hyperlink navigation
- */
-public class ExternalFileEditorInput implements IEditorInput, ILocationProvider {
-
-	private File fFile;
-
-	public ExternalFileEditorInput(File file) {
-		super();
-		fFile = file;
-	}
-
-	/*
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o == this)
-			return true;
-
-		if (o instanceof ExternalFileEditorInput) {
-			ExternalFileEditorInput input = (ExternalFileEditorInput) o;
-			return fFile.equals(input.fFile);
-		}
-
-		return false;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return fFile.exists();
-	}
-
-	/*
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		if (ILocationProvider.class.equals(adapter))
-			return this;
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return fFile.getName();
-	}
-
-	/*
-	 * @see org.eclipse.ui.editors.text.ILocationProvider#getPath(java.lang.Object)
-	 */
-	public IPath getPath(Object element) {
-		if (element instanceof ExternalFileEditorInput) {
-			ExternalFileEditorInput input = (ExternalFileEditorInput) element;
-			return new Path(input.fFile.getAbsolutePath());
-		}
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return fFile.getAbsolutePath();
-	}
-
-	/*
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return fFile.hashCode();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/IOpenOn.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/IOpenOn.java
deleted file mode 100644
index ec4b292..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/IOpenOn.java
+++ /dev/null
@@ -1,46 +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.wst.sse.ui.internal.openon;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-
-/**
- * Interface for Open On... navigation
- * 
- * @author amywu
- */
-public interface IOpenOn {
-	/**
-	 * Returns the entire region relevant to the current offset where an
-	 * openable source region is found. null if offset does not contain an
-	 * openable source.
-	 * 
-	 * @param document
-	 *            IDocument
-	 * @param offset
-	 *            int
-	 * @return IRegion entire region of openable source
-	 */
-	public IRegion getOpenOnRegion(IDocument document, int offset);
-
-	/**
-	 * Opens the file/source relevant to region if possible.
-	 * 
-	 * @param viewer
-	 *            ITextViewer
-	 * @param region
-	 *            Region to examine
-	 */
-	public void openOn(IDocument document, IRegion region);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenFileHyperlinkTracker.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenFileHyperlinkTracker.java
deleted file mode 100644
index e4e8659..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenFileHyperlinkTracker.java
+++ /dev/null
@@ -1,660 +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.wst.sse.ui.internal.openon;
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITextViewerExtension5;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-
-
-/**
- * @deprecated Use org.eclipse.jface.text.hyperlink.HyperlinkManager
- */
-public class OpenFileHyperlinkTracker implements KeyListener, MouseListener, MouseMoveListener, FocusListener, PaintListener, IPropertyChangeListener, IDocumentListener, ITextInputListener {
-
-	/** The session is active. */
-	private boolean fActive;
-
-	/** The currently active style range. */
-	private IRegion fActiveRegion;
-	/** Preference key for browser-like links to be enabled */
-	private String fBrowserLikeLinksKeyModifierKey;
-
-	/** The link color. */
-	private Color fColor;
-	/** The hand cursor. */
-	private Cursor fCursor;
-	/** The key modifier mask. */
-	private int fKeyModifierMask;
-	/** Preference key for hyperlink underline color */
-	private String fLinkColorKey;
-	/** The preference store */
-	private IPreferenceStore fPreferenceStore;
-	/** The currently active style range as position. */
-	private Position fRememberedPosition;
-
-	/** The text viewer this hyperlink tracker is associated with */
-	private ITextViewer fTextViewer;
-
-	/**
-	 *  
-	 */
-	public OpenFileHyperlinkTracker(ITextViewer textViewer) {
-		fTextViewer = textViewer;
-	}
-
-	private void activateCursor(ITextViewer viewer) {
-		StyledText text = viewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-		Display display = text.getDisplay();
-		if (fCursor == null)
-			fCursor = new Cursor(display, SWT.CURSOR_HAND);
-		text.setCursor(fCursor);
-	}
-
-	private int computeStateMask(String modifiers) {
-		if (modifiers == null)
-			return -1;
-
-		if (modifiers.length() == 0)
-			return SWT.NONE;
-
-		int stateMask = 0;
-		StringTokenizer modifierTokenizer = new StringTokenizer(modifiers, ",;.:+-* "); //$NON-NLS-1$
-		while (modifierTokenizer.hasMoreTokens()) {
-			int modifier = EditorUtility.findLocalizedModifier(modifierTokenizer.nextToken());
-			if (modifier == 0 || (stateMask & modifier) == modifier)
-				return -1;
-			stateMask = stateMask | modifier;
-		}
-		return stateMask;
-	}
-
-	/**
-	 * Creates a color from the information stored in the given preference
-	 * store. Returns <code>null</code> if there is no such information
-	 * available.
-	 */
-	private Color createColor(IPreferenceStore store, String key, Display display) {
-
-		RGB rgb = null;
-
-		if (store.contains(key)) {
-
-			if (store.isDefault(key))
-				rgb = PreferenceConverter.getDefaultColor(store, key);
-			else
-				rgb = PreferenceConverter.getColor(store, key);
-		}
-
-		return EditorUtility.getColor(rgb);
-	}
-
-	public void deactivate() {
-		deactivate(false);
-	}
-
-	public void deactivate(boolean redrawAll) {
-		if (!fActive)
-			return;
-
-		repairRepresentation(redrawAll);
-		fActive = false;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentListener#documentAboutToBeChanged(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public void documentAboutToBeChanged(DocumentEvent event) {
-		if (fActive && fActiveRegion != null) {
-			fRememberedPosition = new Position(fActiveRegion.getOffset(), fActiveRegion.getLength());
-			try {
-				event.getDocument().addPosition(fRememberedPosition);
-			} catch (BadLocationException x) {
-				fRememberedPosition = null;
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.IDocumentListener#documentChanged(org.eclipse.jface.text.DocumentEvent)
-	 */
-	public void documentChanged(DocumentEvent event) {
-		if (fRememberedPosition != null) {
-			if (!fRememberedPosition.isDeleted()) {
-
-				event.getDocument().removePosition(fRememberedPosition);
-				fActiveRegion = new Region(fRememberedPosition.getOffset(), fRememberedPosition.getLength());
-				fRememberedPosition = null;
-
-				ITextViewer viewer = getTextViewer();
-				if (viewer != null) {
-					StyledText widget = viewer.getTextWidget();
-					if (widget != null && !widget.isDisposed()) {
-						widget.getDisplay().asyncExec(new Runnable() {
-							public void run() {
-								deactivate();
-							}
-						});
-					}
-				}
-
-			} else {
-				fActiveRegion = null;
-				fRememberedPosition = null;
-				deactivate();
-			}
-		}
-	}
-
-	/*
-	 * @see org.eclipse.swt.events.FocusListener#focusGained(org.eclipse.swt.events.FocusEvent)
-	 */
-	public void focusGained(FocusEvent e) {
-	}
-
-	/*
-	 * @see org.eclipse.swt.events.FocusListener#focusLost(org.eclipse.swt.events.FocusEvent)
-	 */
-	public void focusLost(FocusEvent event) {
-		deactivate();
-	}
-
-	private int getCurrentTextOffset() {
-		try {
-			StyledText text = getTextViewer().getTextWidget();
-			if (text == null || text.isDisposed())
-				return -1;
-
-			Display display = text.getDisplay();
-			Point absolutePosition = display.getCursorLocation();
-			Point relativePosition = text.toControl(absolutePosition);
-
-			int widgetOffset = text.getOffsetAtLocation(relativePosition);
-			if (getTextViewer() instanceof ITextViewerExtension5) {
-				ITextViewerExtension5 extension = (ITextViewerExtension5) getTextViewer();
-				return extension.widgetOffset2ModelOffset(widgetOffset);
-			} else {
-				return widgetOffset + getTextViewer().getVisibleRegion().getOffset();
-			}
-
-		} catch (IllegalArgumentException e) {
-			return -1;
-		}
-	}
-
-	private Point getMaximumLocation(StyledText text, int offset, int length) {
-		Point maxLocation = new Point(Integer.MIN_VALUE, Integer.MIN_VALUE);
-
-		for (int i = 0; i <= length; i++) {
-			Point location = text.getLocationAtOffset(offset + i);
-
-			if (location.x > maxLocation.x)
-				maxLocation.x = location.x;
-			if (location.y > maxLocation.y)
-				maxLocation.y = location.y;
-		}
-
-		return maxLocation;
-	}
-
-	private Point getMinimumLocation(StyledText text, int offset, int length) {
-		Point minLocation = new Point(Integer.MAX_VALUE, Integer.MAX_VALUE);
-
-		for (int i = 0; i <= length; i++) {
-			Point location = text.getLocationAtOffset(offset + i);
-
-			if (location.x < minLocation.x)
-				minLocation.x = location.x;
-			if (location.y < minLocation.y)
-				minLocation.y = location.y;
-		}
-
-		return minLocation;
-	}
-
-	private IPreferenceStore getNewPreferenceStore() {
-		return fPreferenceStore;
-	}
-
-	private ITextViewer getTextViewer() {
-		return fTextViewer;
-	}
-
-	private void highlightRegion(ITextViewer viewer, IRegion region) {
-
-		if (region.equals(fActiveRegion))
-			return;
-
-		repairRepresentation();
-
-		StyledText text = viewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-
-
-		// Underline
-		int offset = 0;
-		int length = 0;
-		if (viewer instanceof ITextViewerExtension5) {
-			ITextViewerExtension5 extension = (ITextViewerExtension5) viewer;
-			IRegion widgetRange = extension.modelRange2WidgetRange(new Region(region.getOffset(), region.getLength()));
-			if (widgetRange == null)
-				return;
-
-			offset = widgetRange.getOffset();
-			length = widgetRange.getLength();
-
-		} else {
-			offset = region.getOffset() - viewer.getVisibleRegion().getOffset();
-			length = region.getLength();
-		}
-		// need clearBackground to be true for paint event to be fired
-		text.redrawRange(offset, length, true);
-
-		fActiveRegion = region;
-	}
-
-	private boolean includes(IRegion region, IRegion position) {
-		return position.getOffset() >= region.getOffset() && position.getOffset() + position.getLength() <= region.getOffset() + region.getLength();
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.ITextInputListener#inputDocumentAboutToBeChanged(org.eclipse.jface.text.IDocument,
-	 *      org.eclipse.jface.text.IDocument)
-	 */
-	public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
-		if (oldInput == null)
-			return;
-		deactivate();
-		oldInput.removeDocumentListener(this);
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.ITextInputListener#inputDocumentChanged(org.eclipse.jface.text.IDocument,
-	 *      org.eclipse.jface.text.IDocument)
-	 */
-	public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
-		if (newInput == null)
-			return;
-		newInput.addDocumentListener(this);
-	}
-
-	public void install(IPreferenceStore store) {
-		fPreferenceStore = store;
-		ITextViewer textViewer = getTextViewer();
-		if (textViewer == null)
-			return;
-
-		StyledText text = textViewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-
-		updateColor(textViewer);
-
-		textViewer.addTextInputListener(this);
-
-		IDocument document = textViewer.getDocument();
-		if (document != null)
-			document.addDocumentListener(this);
-
-		text.addKeyListener(this);
-		text.addMouseListener(this);
-		text.addMouseMoveListener(this);
-		text.addFocusListener(this);
-		text.addPaintListener(this);
-
-		updateKeyModifierMask();
-
-		fPreferenceStore.addPropertyChangeListener(this);
-	}
-
-	/*
-	 * @see org.eclipse.swt.events.KeyListener#keyPressed(org.eclipse.swt.events.KeyEvent)
-	 */
-	public void keyPressed(KeyEvent event) {
-
-		if (fActive) {
-			deactivate();
-			return;
-		}
-
-		if (event.keyCode != fKeyModifierMask) {
-			deactivate();
-			return;
-		}
-
-		fActive = true;
-
-		//			removed for #25871
-		//
-		//			ISourceViewer viewer= getSourceViewer();
-		//			if (viewer == null)
-		//				return;
-		//			
-		//			IRegion region= getCurrentTextRegion(viewer);
-		//			if (region == null)
-		//				return;
-		//			
-		//			highlightRegion(viewer, region);
-		//			activateCursor(viewer);
-	}
-
-	/*
-	 * @see org.eclipse.swt.events.KeyListener#keyReleased(org.eclipse.swt.events.KeyEvent)
-	 */
-	public void keyReleased(KeyEvent event) {
-
-		if (!fActive)
-			return;
-
-		deactivate();
-	}
-
-	/*
-	 * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
-	 */
-	public void mouseDoubleClick(MouseEvent e) {
-	}
-
-	/*
-	 * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
-	 */
-	public void mouseDown(MouseEvent event) {
-
-		if (!fActive)
-			return;
-
-		if (event.stateMask != fKeyModifierMask) {
-			deactivate();
-			return;
-		}
-
-		if (event.button != 1) {
-			deactivate();
-			return;
-		}
-	}
-
-	/*
-	 * @see org.eclipse.swt.events.MouseMoveListener#mouseMove(org.eclipse.swt.events.MouseEvent)
-	 */
-	public void mouseMove(MouseEvent event) {
-
-		if (event.widget instanceof Control && !((Control) event.widget).isFocusControl()) {
-			deactivate();
-			return;
-		}
-
-		if (!fActive) {
-			if (event.stateMask != fKeyModifierMask)
-				return;
-			// modifier was already pressed
-			fActive = true;
-		}
-
-		ITextViewer viewer = getTextViewer();
-		if (viewer == null) {
-			deactivate();
-			return;
-		}
-
-		StyledText text = viewer.getTextWidget();
-		if (text == null || text.isDisposed()) {
-			deactivate();
-			return;
-		}
-
-		if ((event.stateMask & SWT.BUTTON1) != 0 && text.getSelectionCount() != 0) {
-			deactivate();
-			return;
-		}
-
-		IRegion region = null;
-		int offset = getCurrentTextOffset();
-		IOpenOn openOn = OpenOnProvider.getInstance().getOpenOn(getTextViewer().getDocument(), offset);
-		if (openOn != null) {
-			region = openOn.getOpenOnRegion(getTextViewer().getDocument(), offset);
-		}
-		if (region == null || region.getLength() == 0) {
-			repairRepresentation();
-			return;
-		}
-
-		highlightRegion(viewer, region);
-		activateCursor(viewer);
-	}
-
-	/*
-	 * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)
-	 */
-	public void mouseUp(MouseEvent e) {
-
-		if (!fActive)
-			return;
-
-		if (e.button != 1) {
-			deactivate();
-			return;
-		}
-
-		boolean wasActive = fCursor != null;
-		IRegion previousRegion = fActiveRegion;
-
-		deactivate();
-
-		if (wasActive) {
-			IOpenOn openOn = OpenOnProvider.getInstance().getOpenOn(getTextViewer().getDocument(), previousRegion.getOffset());
-			if (openOn != null) {
-				openOn.openOn(getTextViewer().getDocument(), previousRegion);
-			}
-		}
-	}
-
-	/*
-	 * @see PaintListener#paintControl(PaintEvent)
-	 */
-	public void paintControl(PaintEvent event) {
-		if (fActiveRegion == null)
-			return;
-
-		ITextViewer viewer = getTextViewer();
-		if (viewer == null)
-			return;
-
-		StyledText text = viewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-
-
-		int offset = 0;
-		int length = 0;
-
-		if (viewer instanceof ITextViewerExtension5) {
-
-			ITextViewerExtension5 extension = (ITextViewerExtension5) viewer;
-			IRegion widgetRange = extension.modelRange2WidgetRange(fActiveRegion);
-			if (widgetRange == null)
-				return;
-
-			offset = widgetRange.getOffset();
-			length = widgetRange.getLength();
-
-		} else {
-
-			IRegion region = viewer.getVisibleRegion();
-			if (!includes(region, fActiveRegion))
-				return;
-
-			offset = fActiveRegion.getOffset() - region.getOffset();
-			length = fActiveRegion.getLength();
-		}
-
-		// support for bidi
-		Point minLocation = getMinimumLocation(text, offset, length);
-		Point maxLocation = getMaximumLocation(text, offset, length);
-
-		int x1 = minLocation.x;
-		int x2 = minLocation.x + maxLocation.x - minLocation.x - 1;
-		int y = minLocation.y + text.getLineHeight() - 1;
-
-		GC gc = event.gc;
-		if (fColor != null && !fColor.isDisposed())
-			gc.setForeground(fColor);
-		gc.drawLine(x1, y, x2, y);
-	}
-
-	/*
-	 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
-	 */
-	public void propertyChange(PropertyChangeEvent event) {
-		if (event.getProperty().equals(fLinkColorKey)) {
-			ITextViewer viewer = getTextViewer();
-			if (viewer != null)
-				updateColor(viewer);
-		} else if (event.getProperty().equals(fBrowserLikeLinksKeyModifierKey)) {
-			updateKeyModifierMask();
-		}
-	}
-
-	private void repairRepresentation() {
-		repairRepresentation(false);
-	}
-
-	private void repairRepresentation(boolean redrawAll) {
-
-		if (fActiveRegion == null)
-			return;
-
-		int offset = fActiveRegion.getOffset();
-		int length = fActiveRegion.getLength();
-		fActiveRegion = null;
-
-		ITextViewer viewer = getTextViewer();
-		if (viewer != null) {
-
-			resetCursor(viewer);
-
-			// Remove underline
-			if (viewer instanceof ITextViewerExtension5) {
-				ITextViewerExtension5 extension = (ITextViewerExtension5) viewer;
-				offset = extension.modelOffset2WidgetOffset(offset);
-			} else {
-				offset -= viewer.getVisibleRegion().getOffset();
-			}
-			try {
-				StyledText text = viewer.getTextWidget();
-
-				// need clearBackground to be true for paint event to be fired
-				text.redrawRange(offset, length, true);
-			} catch (IllegalArgumentException x) {
-				Logger.logException(x);
-			}
-		}
-	}
-
-	private void resetCursor(ITextViewer viewer) {
-		StyledText text = viewer.getTextWidget();
-		if (text != null && !text.isDisposed())
-			text.setCursor(null);
-
-		if (fCursor != null) {
-			fCursor.dispose();
-			fCursor = null;
-		}
-	}
-
-	public void setHyperlinkPreferenceKeys(String linkColorKey, String browserLikeLinksKeyModifierKey) {
-		fLinkColorKey = linkColorKey;
-		fBrowserLikeLinksKeyModifierKey = browserLikeLinksKeyModifierKey;
-	}
-
-	public void uninstall() {
-		if (fCursor != null) {
-			fCursor.dispose();
-			fCursor = null;
-		}
-
-		ITextViewer textViewer = getTextViewer();
-		if (textViewer == null)
-			return;
-
-		textViewer.removeTextInputListener(this);
-
-		IDocument document = textViewer.getDocument();
-		if (document != null)
-			document.removeDocumentListener(this);
-
-		IPreferenceStore preferenceStore = getNewPreferenceStore();
-		if (preferenceStore != null)
-			preferenceStore.removePropertyChangeListener(this);
-
-		StyledText text = textViewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-
-		text.removeKeyListener(this);
-		text.removeMouseListener(this);
-		text.removeMouseMoveListener(this);
-		text.removeFocusListener(this);
-		text.removePaintListener(this);
-	}
-
-	private void updateColor(ITextViewer viewer) {
-		StyledText text = viewer.getTextWidget();
-		if (text == null || text.isDisposed())
-			return;
-
-		Display display = text.getDisplay();
-		fColor = createColor(getNewPreferenceStore(), fLinkColorKey, display);
-	}
-
-	private void updateKeyModifierMask() {
-		String modifiers = getNewPreferenceStore().getString(fBrowserLikeLinksKeyModifierKey);
-		fKeyModifierMask = computeStateMask(modifiers);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnAction.java
deleted file mode 100644
index 4448787..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnAction.java
+++ /dev/null
@@ -1,74 +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.wst.sse.ui.internal.openon;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.TextEditorAction;
-import org.eclipse.wst.sse.ui.internal.IExtendedSimpleEditor;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-
-
-/**
- * Determines the appropriate IOpenFileAction to call based on current
- * partition.
- * 
- * @deprecated Use base support for hyperlink navigation
- */
-public class OpenOnAction extends TextEditorAction {
-	public OpenOnAction(ResourceBundle bundle, String prefix, ITextEditor editor) {
-		super(bundle, prefix, editor);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		BusyIndicator.showWhile(getTextEditor().getEditorSite().getShell().getDisplay(), new Runnable() {
-			public void run() {
-				ITextEditor editor = getTextEditor();
-
-				// figure out current offset
-				int offset = -1;
-				ISourceEditingTextTools textTools = (ISourceEditingTextTools) getTextEditor().getAdapter(ISourceEditingTextTools.class);
-				if (textTools != null) {
-					offset = textTools.getCaretOffset();
-				}
-				else if (editor instanceof IExtendedSimpleEditor) {
-					offset = ((IExtendedSimpleEditor) editor).getCaretPosition();
-				}
-				else {
-					if (editor.getSelectionProvider() != null) {
-						ISelection sel = editor.getSelectionProvider().getSelection();
-						if (sel instanceof ITextSelection) {
-							offset = ((ITextSelection) sel).getOffset();
-						}
-					}
-				}
-				IDocument document = editor.getDocumentProvider().getDocument(editor.getEditorInput());
-				IOpenOn openOn = OpenOnProvider.getInstance().getOpenOn(document, offset);
-				if (openOn != null) {
-					openOn.openOn(document, new Region(offset, 0));
-				}
-			}
-		});
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnBuilder.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnBuilder.java
deleted file mode 100644
index b62de63..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnBuilder.java
+++ /dev/null
@@ -1,267 +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.wst.sse.ui.internal.openon;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.ui.internal.extension.RegistryReader;
-
-
-/**
- * Reads extensions for open on extension point,
- * org.eclipse.wst.sse.ui.extensions.openon
- * 
- * @deprecated Use base support for hyperlink navigation
- */
-public class OpenOnBuilder extends RegistryReader {
-	public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	public static final String ATT_ID = "id"; //$NON-NLS-1$
-
-	private static OpenOnBuilder fInstance;
-	// extension point ID
-	public static final String PL_OPENON = "openon"; //$NON-NLS-1$
-
-	public static final String PLUGIN_ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-	public static final String TAG_CONTENT_TYPE_IDENTIFIER = "contenttypeidentifier"; //$NON-NLS-1$
-
-	public static final String TAG_OPENON = "openon"; //$NON-NLS-1$
-	public static final String TAG_PARTITION_TYPE = "partitiontype"; //$NON-NLS-1$
-
-	/**
-	 * returns singleton instance of OpenOnBuilder
-	 * 
-	 * @return OpenOnBuilder
-	 */
-	public synchronized static OpenOnBuilder getInstance() {
-		if (fInstance == null) {
-			fInstance = new OpenOnBuilder();
-		}
-		return fInstance;
-	}
-
-	private String fCurrentContentType;
-	private OpenOnDefinition fCurrentOpenOnDefinition = null;
-
-	private List fOpenOnDefs = null;
-
-	protected String targetContributionTag;
-
-	/**
-	 * Returns the name of the part ID attribute that is expected in the
-	 * target extension.
-	 * 
-	 * @param element
-	 * @return String
-	 */
-	protected String getId(IConfigurationElement element) {
-		String value = element.getAttribute(ATT_ID);
-		return value;
-	}
-
-	protected String getOpenOnClass(IConfigurationElement element) {
-		String value = element.getAttribute(ATT_CLASS);
-		return value;
-	}
-
-	/**
-	 * Returns all the open on definition objects
-	 * 
-	 * @return
-	 */
-	public OpenOnDefinition[] getOpenOnDefinitions() {
-		initCache();
-		return (OpenOnDefinition[]) fOpenOnDefs.toArray(new OpenOnDefinition[fOpenOnDefs.size()]);
-	}
-
-	/**
-	 * Returns all the open on definition objects valid for
-	 * contentType/partitionType
-	 * 
-	 * @param contentType
-	 * @param partitionType
-	 * @return if either contentType or partitionType is null, null is
-	 *         returned
-	 */
-	public OpenOnDefinition[] getOpenOnDefinitions(String contentType, String partitionType) {
-		if (contentType == null || partitionType == null) {
-			// should not be able to define an openon without a content type
-			// but if it were possible then would need to search all openon
-			// definitions for
-			// definitions with empty contentType list
-			return null;
-		}
-
-		// entire list of openon definition objects
-		OpenOnDefinition[] allDefs = getOpenOnDefinitions();
-		// current list of open on definitions valid for
-		// contentType/partitionType
-		List defs = new ArrayList();
-		// default definitions that should be added to end of list of open on
-		// definitions
-		List lastDefs = new ArrayList();
-
-		for (int i = 0; i < allDefs.length; ++i) {
-			// for each one check if it contains contentType
-			List partitions = (List) allDefs[i].getContentTypes().get(contentType);
-			if (partitions != null) {
-				// this openon definition is valid for all partition types for
-				// this content type
-				if (partitions.isEmpty()) {
-					// this will be added to end of list because this is
-					// considered a default openon
-					lastDefs.add(allDefs[i]);
-				} else {
-					// examine the partition types of this openon
-					int j = 0; // current index in list of partitions
-					boolean added = false; // openon has been added to list
-					while (j < partitions.size() && !added) {
-						// this openon definition applies to partitionType so
-						// add to list of valid openons
-						if (partitionType.equals(partitions.get(j))) {
-							defs.add(allDefs[i]);
-							added = true;
-						} else {
-							// continue checking to see if this openon
-							// definition is valid for current partitionType
-							++j;
-						}
-					}
-				}
-			}
-		}
-		// append the default openon definitions
-		defs.addAll(lastDefs);
-
-		// return the list
-		return (OpenOnDefinition[]) defs.toArray(new OpenOnDefinition[defs.size()]);
-	}
-
-	private void initCache() {
-		if (fOpenOnDefs == null) {
-			fOpenOnDefs = new ArrayList(0);
-			readContributions(TAG_OPENON, PL_OPENON);
-		}
-	}
-
-	/**
-	 * Processes element which should be a configuration element specifying a
-	 * content type for the current open on tag. Assumes that there is a valid
-	 * current open on definition object.
-	 * 
-	 * @param element
-	 *            contenttypeidentifier configuration element
-	 */
-	private void processContentTypeTag(IConfigurationElement element) {
-		// add to current openOnDefinition
-		String theId = getId(element);
-
-		if (theId != null) {
-			fCurrentContentType = theId;
-			fCurrentOpenOnDefinition.addContentTypeId(fCurrentContentType);
-		} else {
-			fCurrentContentType = null;
-		}
-	}
-
-	/**
-	 * Processes element which should be a configuration element specifying an
-	 * open on object. Creates a new open on definition object and adds it to
-	 * the list of open on definition objects
-	 * 
-	 * @param element
-	 *            openon configuration element
-	 */
-	private void processOpenOnTag(IConfigurationElement element) {
-		String theId = getId(element);
-		String theClass = getOpenOnClass(element);
-
-		if (theId != null && theClass != null) {
-			// start building new OpenOnDefinition
-			fCurrentOpenOnDefinition = new OpenOnDefinition(theId, theClass, element);
-			fOpenOnDefs.add(fCurrentOpenOnDefinition);
-		} else {
-			fCurrentOpenOnDefinition = null;
-		}
-	}
-
-	/**
-	 * Processes element which should be a configuration element specifying a
-	 * partition type for the current open on/content type tag. Assumes that
-	 * there is a valid current open on/content type tag.
-	 * 
-	 * @param element
-	 *            partitiontype configuration element
-	 */
-	private void processPartitionTypeTag(IConfigurationElement element) {
-		// add to current openOnDefinition/contentType
-		String theId = getId(element);
-
-		if (theId != null) {
-			fCurrentOpenOnDefinition.addPartitionType(fCurrentContentType, theId);
-		}
-	}
-
-	/**
-	 * Reads the contributions from the registry for the provided workbench
-	 * part and the provided extension point ID.
-	 * 
-	 * @param tag
-	 * @param extensionPoint
-	 */
-	protected void readContributions(String tag, String extensionPoint) {
-		targetContributionTag = tag;
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		readRegistry(registry, PLUGIN_ID, extensionPoint);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.internal.extension.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
-	 */
-	protected boolean readElement(IConfigurationElement element) {
-		String tag = element.getName();
-
-		if (tag.equals(targetContributionTag)) {
-			processOpenOnTag(element);
-
-			// make sure processing of current open on tag resulted in a
-			// current open on definition
-			// before continue reading the children
-			if (fCurrentOpenOnDefinition != null) {
-				readElementChildren(element);
-			}
-			return true;
-		} else if (tag.equals(TAG_CONTENT_TYPE_IDENTIFIER)) {
-			processContentTypeTag(element);
-
-			// make sure processing of current content type resulted in a
-			// valid content type
-			// before reading the children
-			if (fCurrentContentType != null) {
-				readElementChildren(element);
-			}
-			return true;
-		} else if (tag.equals(TAG_PARTITION_TYPE)) {
-			processPartitionTypeTag(element);
-			return true;
-		}
-
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnDefinition.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnDefinition.java
deleted file mode 100644
index e69159e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnDefinition.java
+++ /dev/null
@@ -1,157 +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.wst.sse.ui.internal.openon;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Open on definition object
- * 
- * @deprecated Use base support for hyperlink navigation
- */
-public class OpenOnDefinition {
-	private String fClassName = null;
-
-	private IConfigurationElement fConfigurationElement = null;
-
-	// a hash map of content type Ids (String) that points to lists of
-	// parition types (List of Strings)
-	// contentTypeId -> List(paritionType, paritionType, partitionType, ...)
-	// contentTypeId2 -> List(partitionType, partitionType, ...)
-	// ...
-	private HashMap fContentTypes = null;
-	private String fId = null;
-
-	/**
-	 * @param id
-	 * @param class1
-	 * @param configurationElement
-	 */
-	public OpenOnDefinition(String id, String class1, IConfigurationElement configurationElement) {
-		super();
-		fId = id;
-		fClassName = class1;
-		fConfigurationElement = configurationElement;
-		fContentTypes = new HashMap();
-	}
-
-	public void addContentTypeId(String contentTypeId) {
-		if (!fContentTypes.containsKey(contentTypeId))
-			fContentTypes.put(contentTypeId, new ArrayList());
-	}
-
-	public void addPartitionType(String contentTypeId, String partitionType) {
-		if (!fContentTypes.containsKey(contentTypeId))
-			fContentTypes.put(contentTypeId, new ArrayList());
-
-		List partitionList = (List) fContentTypes.get(contentTypeId);
-		partitionList.add(partitionType);
-	}
-
-	/**
-	 * Creates an extension. If the extension plugin has not been loaded a
-	 * busy cursor will be activated during the duration of the load.
-	 * 
-	 * @param propertyName
-	 * @return Object
-	 */
-	private Object createExtension(String propertyName) {
-		// If plugin has been loaded create extension.
-		// Otherwise, show busy cursor then create extension.
-		final IConfigurationElement element = getConfigurationElement();
-		final String name = propertyName;
-
-		final Object[] result = new Object[1];
-		String pluginId = element.getDeclaringExtension().getNamespace();
-		Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle.getState() == Bundle.ACTIVE) {
-			try {
-				return element.createExecutableExtension(name);
-			} catch (CoreException e) {
-				handleCreateExecutableException(result, e);
-			}
-		} else {
-			BusyIndicator.showWhile(null, new Runnable() {
-				public void run() {
-					try {
-						result[0] = element.createExecutableExtension(name);
-					} catch (Exception e) {
-						handleCreateExecutableException(result, e);
-					}
-				}
-			});
-		}
-		return result[0];
-	}
-
-	/**
-	 * @return IOpenOn for this definition
-	 */
-	public IOpenOn createOpenOn() {
-		IOpenOn openOn = null;
-
-		if (getClassName() != null) {
-			openOn = (IOpenOn) createExtension(OpenOnBuilder.ATT_CLASS);
-		}
-
-		return openOn;
-	}
-
-	/**
-	 * @return Returns the fClass.
-	 */
-	public String getClassName() {
-		return fClassName;
-	}
-
-	/**
-	 * @return Returns the fConfigurationElement.
-	 */
-	public IConfigurationElement getConfigurationElement() {
-		return fConfigurationElement;
-	}
-
-	/**
-	 * @return Returns the fContentTypes.
-	 */
-	public HashMap getContentTypes() {
-		return fContentTypes;
-	}
-
-	/**
-	 * @return Returns the fId.
-	 */
-	public String getId() {
-		return fId;
-	}
-
-	/**
-	 * @param result
-	 * @param e
-	 */
-	private void handleCreateExecutableException(Object[] result, Throwable e) {
-		Logger.logException("Unable to create open on: " + getId(), e); //$NON-NLS-1$
-		e.printStackTrace();
-		result[0] = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnProvider.java
deleted file mode 100644
index 46d90b9..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/openon/OpenOnProvider.java
+++ /dev/null
@@ -1,143 +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.wst.sse.ui.internal.openon;
-
-
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-
-
-/**
- * Determines the appropriate IOpenOn to call based on current partition.
- * 
- * @deprecated Use base support for hyperlink navigation
- */
-public class OpenOnProvider {
-	private static OpenOnProvider fInstance;
-
-	/**
-	 * returns singleton instance of OpenOnProvider
-	 * 
-	 * @return OpenOnProvider
-	 */
-	public synchronized static OpenOnProvider getInstance() {
-		if (fInstance == null) {
-			fInstance = new OpenOnProvider();
-		}
-		return fInstance;
-	}
-
-
-	/**
-	 * Returns the content type of document
-	 * 
-	 * @param document -
-	 *            assumes document is not null
-	 * @return String content type of given document
-	 */
-	protected String getContentType(IDocument document) {
-		String type = null;
-
-		IModelManager mgr = StructuredModelManager.getModelManager();
-		IStructuredModel model = null;
-		try {
-			model = mgr.getExistingModelForRead(document);
-			if (model != null) {
-				type = model.getContentTypeIdentifier();
-			}
-		}
-		finally {
-			if (model != null) {
-				model.releaseFromRead();
-			}
-		}
-		return type;
-	}
-
-	/**
-	 * Returns the appropriate IOpenOn for the current partition
-	 * 
-	 * @return
-	 */
-	public IOpenOn getOpenOn(IDocument document, int offset) {
-		IOpenOn openOn = null;
-
-		// determine the current partition
-		if (document != null) {
-			String contentTypeID = getContentType(document);
-			String partitionType = getPartitionType(document, offset);
-
-			IContentType contentType = Platform.getContentTypeManager().getContentType(contentTypeID);
-
-			while (openOn == null && contentType != null) {
-				// Query OpenOnBuilder and get the list of OpenOns for the
-				// current partition
-				OpenOnDefinition[] defs = OpenOnBuilder.getInstance().getOpenOnDefinitions(contentType.getId(), partitionType);
-				contentType = contentType.getBaseType();
-
-				// If more than 1 openon is returned, need to further check
-				// which OpenOn is the appropriate one to return
-				// for now just returning the first one
-				if (defs != null && defs.length > 0) {
-					openOn = defs[0].createOpenOn();
-				}
-			}
-		}
-
-		return openOn;
-	}
-
-	/**
-	 * Returns the partition type located at offset in the document
-	 * 
-	 * @param document -
-	 *            assumes document is not null
-	 * @param offset
-	 * @return String partition type
-	 */
-	protected String getPartitionType(IDocument document, int offset) {
-		String type = null;
-		try {
-			// TODO: provide partitioning information so we're not using a default like this
-			if (document instanceof IStructuredDocument) {
-				type = TextUtilities.getContentType(document, IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING, offset, false);
-			}
-		}
-		catch (BadLocationException e1) {
-		}
-		finally {
-			if (type == null) {
-				try {
-					ITypedRegion region = document.getPartition(offset);
-					if (region != null) {
-						type = region.getType();
-					}
-				}
-				catch (BadLocationException e) {
-					type = null;
-				}
-			}
-		}
-		return type;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/EditorPreferenceNames.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/EditorPreferenceNames.java
deleted file mode 100644
index 5130c77..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/EditorPreferenceNames.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.preferences;
-
-/**
- * Preference keys for SSE UI
- */
-public class EditorPreferenceNames {
-	/**
-	 * A named preference that controls on-the-fly validation
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String EVALUATE_TEMPORARY_PROBLEMS = getEvaluateTemporaryProblemsKey();
-
-	private static String getEvaluateTemporaryProblemsKey() {
-		return "evaluateTemporaryProblems"; //$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that controls whether bracket matching highlighting
-	 * is turned on or off.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public final static String MATCHING_BRACKETS = getMatchingBracketsKey();
-
-	private static String getMatchingBracketsKey() {
-		return "matchingBrackets"; //$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that holds the color used to highlight matching
-	 * brackets.
-	 * <p>
-	 * Value is of type <code>String</code>. A RGB color value encoded as a
-	 * string using class <code>PreferenceConverter</code>
-	 * </p>
-	 */
-	public final static String MATCHING_BRACKETS_COLOR = getMatchingBracketsColorKey();
-
-	private static String getMatchingBracketsColorKey() {
-		return "matchingBracketsColor"; //$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that defines the key for the hover modifiers.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String EDITOR_TEXT_HOVER_MODIFIERS = getTextHoverModifiersKey();
-
-	private static String getTextHoverModifiersKey() {
-		return "hoverModifiers"; //$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that defines read only contrast scale.
-	 * <p>
-	 * Value is of type <code>Integer</code>.
-	 * </p>
-	 */
-	public static final String READ_ONLY_FOREGROUND_SCALE = getReadOnlyForegroundScaleKey();
-
-	private static String getReadOnlyForegroundScaleKey() {
-		return "readOnlyForegroundScale"; //$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that defines whether or not to show a message dialog
-	 * informing user of unknown content type in editor.
-	 */
-	public static final String SHOW_UNKNOWN_CONTENT_TYPE_MSG = "showUnknownContentTypeMsg"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/OverlayPreferenceStore.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/OverlayPreferenceStore.java
deleted file mode 100644
index 06054fe..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/OverlayPreferenceStore.java
+++ /dev/null
@@ -1,486 +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.wst.sse.ui.internal.preferences;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferenceStore;
-import org.eclipse.jface.text.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-
-/**
- * An overlaying preference store. copied from JDT
- */
-public class OverlayPreferenceStore implements IPreferenceStore {
-
-	public static class OverlayKey {
-
-		TypeDescriptor fDescriptor;
-		String fKey;
-
-		public OverlayKey(TypeDescriptor descriptor, String key) {
-			fDescriptor = descriptor;
-			fKey = key;
-		}
-	}
-
-	private class PropertyListener implements IPropertyChangeListener {
-
-		/*
-		 * @see IPropertyChangeListener#propertyChange(PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			OverlayKey key = findOverlayKey(event.getProperty());
-			if (key != null)
-				propagateProperty(fParent, key, fStore);
-		}
-	}
-
-
-	public static final class TypeDescriptor {
-		private TypeDescriptor() {
-		}
-	}
-
-	public static final TypeDescriptor BOOLEAN = new TypeDescriptor();
-	public static final TypeDescriptor DOUBLE = new TypeDescriptor();
-	public static final TypeDescriptor FLOAT = new TypeDescriptor();
-	public static final TypeDescriptor INT = new TypeDescriptor();
-	public static final TypeDescriptor LONG = new TypeDescriptor();
-	public static final TypeDescriptor STRING = new TypeDescriptor();
-	private boolean fLoaded;
-	private OverlayKey[] fOverlayKeys;
-
-
-	IPreferenceStore fParent;
-
-	private PropertyListener fPropertyListener;
-	IPreferenceStore fStore;
-
-
-	public OverlayPreferenceStore(IPreferenceStore parent, OverlayKey[] overlayKeys) {
-		fParent = parent;
-		fOverlayKeys = overlayKeys;
-		fStore = new PreferenceStore();
-	}
-
-	/**
-	 * The keys to add to the list of overlay keys.
-	 * <p>
-	 * Note: This method must be called before {@link #load()}is called.
-	 * </p>
-	 * 
-	 * @param keys
-	 * @plannedfor 3.0
-	 */
-	public void addKeys(OverlayKey[] keys) {
-		Assert.isTrue(!fLoaded);
-		Assert.isNotNull(keys);
-
-		int overlayKeysLength = fOverlayKeys.length;
-		OverlayKey[] result = new OverlayKey[keys.length + overlayKeysLength];
-
-		for (int i = 0, length = overlayKeysLength; i < length; i++)
-			result[i] = fOverlayKeys[i];
-
-		for (int i = 0, length = keys.length; i < length; i++)
-			result[overlayKeysLength + i] = keys[i];
-
-		fOverlayKeys = result;
-
-		if (fLoaded)
-			load();
-	}
-
-	/*
-	 * @see IPreferenceStore#addPropertyChangeListener(IPropertyChangeListener)
-	 */
-	public void addPropertyChangeListener(IPropertyChangeListener listener) {
-		fStore.addPropertyChangeListener(listener);
-	}
-
-	/*
-	 * @see IPreferenceStore#contains(String)
-	 */
-	public boolean contains(String name) {
-		return fStore.contains(name);
-	}
-
-	private boolean covers(String key) {
-		return (findOverlayKey(key) != null);
-	}
-
-	OverlayKey findOverlayKey(String key) {
-		for (int i = 0; i < fOverlayKeys.length; i++) {
-			if (fOverlayKeys[i].fKey.equals(key))
-				return fOverlayKeys[i];
-		}
-		return null;
-	}
-
-	/*
-	 * @see IPreferenceStore#firePropertyChangeEvent(String, Object, Object)
-	 */
-	public void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
-		fStore.firePropertyChangeEvent(name, oldValue, newValue);
-	}
-
-	/*
-	 * @see IPreferenceStore#getBoolean(String)
-	 */
-	public boolean getBoolean(String name) {
-		return fStore.getBoolean(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultBoolean(String)
-	 */
-	public boolean getDefaultBoolean(String name) {
-		return fStore.getDefaultBoolean(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultDouble(String)
-	 */
-	public double getDefaultDouble(String name) {
-		return fStore.getDefaultDouble(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultFloat(String)
-	 */
-	public float getDefaultFloat(String name) {
-		return fStore.getDefaultFloat(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultInt(String)
-	 */
-	public int getDefaultInt(String name) {
-		return fStore.getDefaultInt(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultLong(String)
-	 */
-	public long getDefaultLong(String name) {
-		return fStore.getDefaultLong(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDefaultString(String)
-	 */
-	public String getDefaultString(String name) {
-		return fStore.getDefaultString(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getDouble(String)
-	 */
-	public double getDouble(String name) {
-		return fStore.getDouble(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getFloat(String)
-	 */
-	public float getFloat(String name) {
-		return fStore.getFloat(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getInt(String)
-	 */
-	public int getInt(String name) {
-		return fStore.getInt(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getLong(String)
-	 */
-	public long getLong(String name) {
-		return fStore.getLong(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#getString(String)
-	 */
-	public String getString(String name) {
-		return fStore.getString(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#isDefault(String)
-	 */
-	public boolean isDefault(String name) {
-		return fStore.isDefault(name);
-	}
-
-	public void load() {
-		for (int i = 0; i < fOverlayKeys.length; i++)
-			loadProperty(fParent, fOverlayKeys[i], fStore, true);
-
-		fLoaded = true;
-
-	}
-
-	public void loadDefaults() {
-		for (int i = 0; i < fOverlayKeys.length; i++)
-			setToDefault(fOverlayKeys[i].fKey);
-	}
-
-	private void loadProperty(IPreferenceStore orgin, OverlayKey key, IPreferenceStore target, boolean forceInitialization) {
-		TypeDescriptor d = key.fDescriptor;
-		if (BOOLEAN == d) {
-
-			if (forceInitialization)
-				target.setValue(key.fKey, true);
-			target.setValue(key.fKey, orgin.getBoolean(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultBoolean(key.fKey));
-
-		} else if (DOUBLE == d) {
-
-			if (forceInitialization)
-				target.setValue(key.fKey, 1.0D);
-			target.setValue(key.fKey, orgin.getDouble(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultDouble(key.fKey));
-
-		} else if (FLOAT == d) {
-
-			if (forceInitialization)
-				target.setValue(key.fKey, 1.0F);
-			target.setValue(key.fKey, orgin.getFloat(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultFloat(key.fKey));
-
-		} else if (INT == d) {
-
-			if (forceInitialization)
-				target.setValue(key.fKey, 1);
-			target.setValue(key.fKey, orgin.getInt(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultInt(key.fKey));
-
-		} else if (LONG == d) {
-
-			if (forceInitialization)
-				target.setValue(key.fKey, 1L);
-			target.setValue(key.fKey, orgin.getLong(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultLong(key.fKey));
-
-		} else if (STRING == d) {
-
-			if (forceInitialization)
-				target.setValue(key.fKey, "1"); //$NON-NLS-1$
-			target.setValue(key.fKey, orgin.getString(key.fKey));
-			target.setDefault(key.fKey, orgin.getDefaultString(key.fKey));
-
-		}
-	}
-
-	/*
-	 * @see IPreferenceStore#needsSaving()
-	 */
-	public boolean needsSaving() {
-		return fStore.needsSaving();
-	}
-
-	public void propagate() {
-		for (int i = 0; i < fOverlayKeys.length; i++)
-			propagateProperty(fStore, fOverlayKeys[i], fParent);
-	}
-
-	void propagateProperty(IPreferenceStore orgin, OverlayKey key, IPreferenceStore target) {
-
-		if (orgin.isDefault(key.fKey)) {
-			if (!target.isDefault(key.fKey))
-				target.setToDefault(key.fKey);
-			return;
-		}
-
-		TypeDescriptor d = key.fDescriptor;
-		if (BOOLEAN == d) {
-
-			boolean originValue = orgin.getBoolean(key.fKey);
-			boolean targetValue = target.getBoolean(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (DOUBLE == d) {
-
-			double originValue = orgin.getDouble(key.fKey);
-			double targetValue = target.getDouble(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (FLOAT == d) {
-
-			float originValue = orgin.getFloat(key.fKey);
-			float targetValue = target.getFloat(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (INT == d) {
-
-			int originValue = orgin.getInt(key.fKey);
-			int targetValue = target.getInt(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (LONG == d) {
-
-			long originValue = orgin.getLong(key.fKey);
-			long targetValue = target.getLong(key.fKey);
-			if (targetValue != originValue)
-				target.setValue(key.fKey, originValue);
-
-		} else if (STRING == d) {
-
-			String originValue = orgin.getString(key.fKey);
-			String targetValue = target.getString(key.fKey);
-			if (targetValue != null && originValue != null && !targetValue.equals(originValue))
-				target.setValue(key.fKey, originValue);
-
-		}
-	}
-
-	/*
-	 * @see IPreferenceStore#putValue(String, String)
-	 */
-	public void putValue(String name, String value) {
-		if (covers(name))
-			fStore.putValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#removePropertyChangeListener(IPropertyChangeListener)
-	 */
-	public void removePropertyChangeListener(IPropertyChangeListener listener) {
-		fStore.removePropertyChangeListener(listener);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, boolean)
-	 */
-	public void setDefault(String name, boolean value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, double)
-	 */
-	public void setDefault(String name, double value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, float)
-	 */
-	public void setDefault(String name, float value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, int)
-	 */
-	public void setDefault(String name, int value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, long)
-	 */
-	public void setDefault(String name, long value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setDefault(String, String)
-	 */
-	public void setDefault(String name, String value) {
-		if (covers(name))
-			fStore.setDefault(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setToDefault(String)
-	 */
-	public void setToDefault(String name) {
-		fStore.setToDefault(name);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, boolean)
-	 */
-	public void setValue(String name, boolean value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, double)
-	 */
-	public void setValue(String name, double value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, float)
-	 */
-	public void setValue(String name, float value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, int)
-	 */
-	public void setValue(String name, int value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, long)
-	 */
-	public void setValue(String name, long value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	/*
-	 * @see IPreferenceStore#setValue(String, String)
-	 */
-	public void setValue(String name, String value) {
-		if (covers(name))
-			fStore.setValue(name, value);
-	}
-
-	public void start() {
-		if (fPropertyListener == null) {
-			fPropertyListener = new PropertyListener();
-			fParent.addPropertyChangeListener(fPropertyListener);
-		}
-	}
-
-	public void stop() {
-		if (fPropertyListener != null) {
-			fParent.removePropertyChangeListener(fPropertyListener);
-			fPropertyListener = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/TabFolderLayout.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/TabFolderLayout.java
deleted file mode 100644
index b1b8903..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/TabFolderLayout.java
+++ /dev/null
@@ -1,61 +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.wst.sse.ui.internal.preferences;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Layout;
-
-/**
- * Copied from JDT
- * 
- * @author pavery
- */
-public class TabFolderLayout extends Layout {
-
-	protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
-		if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
-			return new Point(wHint, hHint);
-
-		Control[] children = composite.getChildren();
-		int count = children.length;
-		int maxWidth = 0, maxHeight = 0;
-		for (int i = 0; i < count; i++) {
-			Control child = children[i];
-			Point pt = child.computeSize(SWT.DEFAULT, SWT.DEFAULT, flushCache);
-			maxWidth = Math.max(maxWidth, pt.x);
-			maxHeight = Math.max(maxHeight, pt.y);
-		}
-
-		if (wHint != SWT.DEFAULT)
-			maxWidth = wHint;
-		if (hHint != SWT.DEFAULT)
-			maxHeight = hHint;
-
-		return new Point(maxWidth, maxHeight);
-
-	}
-
-	protected void layout(Composite composite, boolean flushCache) {
-		Rectangle rect = composite.getClientArea();
-
-		Control[] children = composite.getChildren();
-		for (int i = 0; i < children.length; i++) {
-			children[i].setBounds(rect);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractColorPage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractColorPage.java
deleted file mode 100644
index 7cc81f4..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractColorPage.java
+++ /dev/null
@@ -1,279 +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.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Point;
-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.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore;
-
-public abstract class AbstractColorPage extends org.eclipse.jface.preference.PreferencePage implements org.eclipse.ui.IWorkbenchPreferencePage {
-	protected OverlayPreferenceStore fOverlayStore;
-	protected StyledTextColorPicker fPicker = null;
-
-	/**
-	 * Creates the coloring group used in createContents This method can be
-	 * overwritten to set the text of the group or provide an infopop
-	 */
-	protected Composite createColoringComposite(Composite parent) {
-		Composite coloringComposite = createComposite(parent, 1);
-		return coloringComposite;
-	}
-
-	/**
-	 * Creates composite control and sets the default layout data.
-	 */
-	protected Composite createComposite(Composite parent, int numColumns) {
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		//GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		composite.setLayoutData(data);
-		return composite;
-	}
-
-	protected Control createContents(Composite parent) {
-		// create scrollbars for this preference page when needed
-		final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-		sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
-		Composite pageComponent = createComposite(sc1, 1);
-		sc1.setContent(pageComponent);
-		setSize(pageComponent);
-
-		Label descLabel = createDescriptionLabel(pageComponent, SSEUIMessages.AbstractColorPageDescription); //$NON-NLS-1$
-		Composite coloringComposite = createColoringComposite(pageComponent);
-		createContentsForPicker(coloringComposite);
-
-		GridData gd = (GridData) descLabel.getLayoutData();
-		gd.widthHint = (coloringComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT)).x;
-		setSize(pageComponent);
-		return pageComponent;
-	}
-
-	/**
-	 * Creates the StyledTextColorPicker used in createContents This method
-	 * can be overwritten to set up StyledTextColorPicker differently
-	 */
-	protected void createContentsForPicker(Composite parent) {
-		// create the color picker
-		fPicker = new StyledTextColorPicker(parent, SWT.NULL);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		fPicker.setLayoutData(data);
-
-		fPicker.setPreferenceStore(fOverlayStore);
-		setupPicker(fPicker);
-
-		fPicker.setText(getSampleText());
-	}
-
-	/**
-	 * Create description label displayed at top of preference page. This
-	 * method/label is used instead of PreferencePage's description label
-	 * because the ScrolledComposite contained in this page will not fully
-	 * work (horizontal scrolling) with PreferencePage's description label.
-	 */
-	protected Label createDescriptionLabel(Composite parent, String description) {
-		Label label = new Label(parent, SWT.LEFT | SWT.WRAP);
-		label.setText(description);
-
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.grabExcessHorizontalSpace = true;
-		label.setLayoutData(data);
-
-		return label;
-	}
-
-	/**
-	 * Creates composite control and sets the default layout data.
-	 */
-
-	protected Group createGroup(Composite parent, int numColumns) {
-		Group group = new Group(parent, SWT.NULL);
-
-		//GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		group.setLayout(layout);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		group.setLayoutData(data);
-
-		return group;
-	}
-
-	/**
-	 * Utility method that creates a label instance and sets the default
-	 * layout data.
-	 */
-	protected Label createLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(text);
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalAlignment = GridData.FILL;
-		label.setLayoutData(data);
-		return label;
-	}
-
-	protected OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys() {
-		return null;
-	}
-
-	protected Button createPushButton(Composite parent, String label) {
-		Button button = new Button(parent, SWT.PUSH);
-		button.setText(label);
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalAlignment = GridData.FILL;
-		button.setLayoutData(data);
-		return button;
-	}
-
-	/**
-	 * Utility method that creates a text instance and sets the default layout
-	 * data.
-	 */
-	protected Text createTextField(Composite parent, String text) {
-		Text textfield = new Text(parent, SWT.LEFT);
-		textfield.setText(text);
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalAlignment = GridData.FILL;
-		textfield.setLayoutData(data);
-		return textfield;
-	}
-
-	public void dispose() {
-		super.dispose();
-		if (fPicker != null && !fPicker.isDisposed())
-			fPicker.releasePickerResources();
-		if (fOverlayStore != null) {
-			fOverlayStore.stop();
-		}
-	}
-
-	public StyledTextColorPicker getPicker() {
-		return fPicker;
-	}
-
-	public abstract String getSampleText();
-
-	/**
-	 * Initializes this preference page for the given workbench.
-	 * <p>
-	 * This method is called automatically as the preference page is being
-	 * created and initialized. Clients must not call this method.
-	 * </p>
-	 * 
-	 * @param workbench
-	 *            the workbench
-	 */
-	public void init(IWorkbench workbench) {
-		fOverlayStore = new OverlayPreferenceStore(getPreferenceStore(), createOverlayStoreKeys());
-		fOverlayStore.load();
-		fOverlayStore.start();
-	}
-
-	/**
-	 * Initializes states of the controls using default values in the
-	 * preference store.
-	 */
-	protected void performDefaults() {
-		fOverlayStore.loadDefaults();
-		fPicker.refresh();
-	}
-
-	public boolean performOk() {
-		fOverlayStore.propagate();
-		 savePreferences();
-		return true;
-	}
-	
-	protected void savePreferences() {
-		// save plugin preferences here
-	}
-
-	/**
-	 * Sets the size of composite to the default value
-	 */
-	protected void setSize(Composite composite) {
-		if (composite != null) {
-			// Note: The font is set here in anticipation that the class inheriting
-			//       this base class may add widgets to the dialog.   setSize
-			//       is assumed to be called just before we go live.
-			applyDialogFont(composite);
-			Point minSize = composite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			composite.setSize(minSize);
-			// set scrollbar composite's min size so page is expandable but
-			// has scrollbars when needed
-			if (composite.getParent() instanceof ScrolledComposite) {
-				ScrolledComposite sc1 = (ScrolledComposite) composite.getParent();
-				sc1.setMinSize(minSize);
-				sc1.setExpandHorizontal(true);
-				sc1.setExpandVertical(true);
-			}
-		}
-	}
-
-	protected abstract void setupPicker(StyledTextColorPicker picker);
-
-	public void setVisible(boolean visible) {
-		boolean doShrink = false;
-		// limiter, for the really huge fonts
-		if (visible) {
-			getPicker().refresh();
-			int x = Math.min(getControl().getShell().getSize().x, getControl().getDisplay().getClientArea().width * 9 / 10);
-			int y = Math.min(getControl().getShell().getSize().y, getControl().getDisplay().getClientArea().height * 9 / 10);
-			boolean shrinkWidth = (x != getControl().getShell().getSize().x);
-			boolean shrinkHeight = (y != getControl().getShell().getSize().y);
-			doShrink = shrinkWidth || shrinkHeight;
-			if (doShrink) {
-				// modify just the height
-				if (shrinkHeight && !shrinkWidth)
-					getShell().setBounds(getShell().getLocation().x, 0, getShell().getSize().x, getControl().getDisplay().getClientArea().height);
-				// modify just the width
-				else if (!shrinkHeight && shrinkWidth)
-					getShell().setBounds(0, getShell().getLocation().y, getControl().getDisplay().getClientArea().width, getShell().getSize().y);
-				// change the entire shell size to only fill the display, and
-				// move it to the origin
-				else
-					getShell().setBounds(0, 0, getControl().getDisplay().getClientArea().width, getControl().getDisplay().getClientArea().height);
-			}
-		}
-		super.setVisible(visible);
-		if (doShrink) {
-			getControl().getShell().redraw();
-			getControl().getShell().update();
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractPreferencePage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractPreferencePage.java
deleted file mode 100644
index 4ce9e94..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractPreferencePage.java
+++ /dev/null
@@ -1,284 +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.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * (pa) why is this class abstract if there are no abstract methods?
- */
-public abstract class AbstractPreferencePage extends PreferencePage implements ModifyListener, SelectionListener, IWorkbenchPreferencePage {
-
-	protected final static int WIDTH_VALIDATION_LOWER_LIMIT = 0; //$NON-NLS-1$
-	protected final static int WIDTH_VALIDATION_UPPER_LIMIT = 999; //$NON-NLS-1$
-
-	protected Button createCheckBox(Composite group, String label) {
-		Button button = new Button(group, SWT.CHECK | SWT.LEFT);
-		button.setText(label);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.verticalAlignment = GridData.CENTER;
-		data.horizontalAlignment = GridData.FILL;
-		button.setLayoutData(data);
-
-		return button;
-	}
-
-	protected Composite createComposite(Composite parent, int numColumns) {
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		//GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		composite.setLayout(layout);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalIndent = 0;
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		composite.setLayoutData(data);
-
-		return composite;
-	}
-
-	protected Control createContents(Composite parent) {
-		return createScrolledComposite(parent);
-	}
-
-	protected Combo createDropDownBox(Composite parent) {
-		Combo comboBox = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
-
-		//GridData
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.CENTER;
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		comboBox.setLayoutData(data);
-
-		return comboBox;
-	}
-
-	protected Group createGroup(Composite parent, int numColumns) {
-		Group group = new Group(parent, SWT.NULL);
-
-		//GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		group.setLayout(layout);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalIndent = 0;
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		group.setLayoutData(data);
-
-		return group;
-	}
-
-	protected Label createLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(text);
-
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.verticalAlignment = GridData.CENTER;
-		data.horizontalAlignment = GridData.FILL;
-		label.setLayoutData(data);
-
-		return label;
-	}
-
-	protected Button createRadioButton(Composite group, String label) {
-		Button button = new Button(group, SWT.RADIO);
-		button.setText(label);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.verticalAlignment = GridData.CENTER;
-		data.horizontalAlignment = GridData.FILL;
-		button.setLayoutData(data);
-
-		return button;
-	}
-
-	protected Composite createScrolledComposite(Composite parent) {
-		// create scrollbars for this parent when needed
-		final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-		sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
-		Composite composite = createComposite(sc1, 1);
-		sc1.setContent(composite);
-
-		// not calling setSize for composite will result in a blank composite,
-		// so calling it here initially
-		// setSize actually needs to be called after all controls are created,
-		// so scrolledComposite
-		// has correct minSize
-		setSize(composite);
-		return composite;
-	}
-
-	protected Label createSeparator(Composite parent, int columnSpan) {
-		// Create a spacer line
-		Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.verticalAlignment = GridData.CENTER;
-		data.horizontalAlignment = GridData.FILL;
-		data.horizontalSpan = columnSpan;
-
-		separator.setLayoutData(data);
-		return separator;
-	}
-
-	protected Text createTextField(Composite parent) {
-		Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-
-		//GridData
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.CENTER;
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		text.setLayoutData(data);
-
-		return text;
-	}
-
-	protected void enableValues() {
-	}
-
-	protected Preferences getModelPreferences() {
-		return SSECorePlugin.getDefault().getPluginPreferences();
-	}
-
-	public void init(IWorkbench workbench) {
-	}
-
-	protected void initializeValues() {
-	}
-
-	protected boolean loadPreferences() {
-		BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
-			public void run() {
-				initializeValues();
-				validateValues();
-				enableValues();
-			}
-		});
-		return true;
-	}
-
-	public void modifyText(ModifyEvent e) {
-		// If we are called too early, i.e. before the controls are created
-		// then return
-		// to avoid null pointer exceptions
-		if (e.widget != null && e.widget.isDisposed())
-			return;
-
-		validateValues();
-		enableValues();
-	}
-
-	protected void performDefaults() {
-		super.performDefaults();
-	}
-
-	public boolean performOk() {
-		savePreferences();
-		return true;
-	}
-
-	protected boolean savePreferences() {
-		BusyIndicator.showWhile(getControl().getDisplay(), new Runnable() {
-			public void run() {
-				storeValues();
-			}
-		});
-		return true;
-	}
-
-	protected void setInvalidInputMessage(String widthText) {
-		String msg = NLS.bind(SSEUIMessages._4concat, (new Object[]{widthText}));
-		setErrorMessage(msg);
-	}
-
-	protected void setSize(Composite composite) {
-		if (composite != null) {
-			// Note: The font is set here in anticipation that the class inheriting
-			//       this base class may add widgets to the dialog.   setSize
-			//       is assumed to be called just before we go live.
-			applyDialogFont(composite);
-			Point minSize = composite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			composite.setSize(minSize);
-			// set scrollbar composite's min size so page is expandable but
-			// has scrollbars when needed
-			if (composite.getParent() instanceof ScrolledComposite) {
-				ScrolledComposite sc1 = (ScrolledComposite) composite.getParent();
-				sc1.setMinSize(minSize);
-				sc1.setExpandHorizontal(true);
-				sc1.setExpandVertical(true);
-			}
-		}
-	}
-
-	protected void storeValues() {
-		SSEUIPlugin.getDefault().savePluginPreferences();
-	}
-
-	protected void validateValues() {
-	}
-
-	public void widgetDefaultSelected(SelectionEvent e) {
-		widgetSelected(e);
-	}
-
-	public void widgetSelected(SelectionEvent e) {
-		// If we are called too early, i.e. before the controls are created
-		// then return
-		// to avoid null pointer exceptions
-		if (e.widget != null && e.widget.isDisposed())
-			return;
-
-		validateValues();
-		enableValues();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractPreferenceTab.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractPreferenceTab.java
deleted file mode 100644
index 0401f3f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/AbstractPreferenceTab.java
+++ /dev/null
@@ -1,266 +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.wst.sse.ui.internal.preferences.ui;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore;
-
-/**
- * Generic preference tab page that contains helpful methods
- * 
- * @author amywu
- */
-abstract public class AbstractPreferenceTab implements IPreferenceTab {
-
-	Map fCheckBoxes = new HashMap();
-	private SelectionListener fCheckBoxListener = new SelectionListener() {
-		public void widgetDefaultSelected(SelectionEvent e) {
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			Button button = (Button) e.widget;
-			fOverlayStore.setValue((String) fCheckBoxes.get(button), button.getSelection());
-		}
-	};
-	private PreferencePage fMainPreferencePage;
-	private ModifyListener fNumberFieldListener = new ModifyListener() {
-		public void modifyText(ModifyEvent e) {
-			numberFieldChanged((Text) e.widget);
-		}
-	};
-	private ArrayList fNumberFields = new ArrayList();
-	OverlayPreferenceStore fOverlayStore;
-	private ModifyListener fTextFieldListener = new ModifyListener() {
-		public void modifyText(ModifyEvent e) {
-			Text text = (Text) e.widget;
-			fOverlayStore.setValue((String) fTextFields.get(text), text.getText());
-		}
-	};
-	Map fTextFields = new HashMap();
-
-	protected Button addCheckBox(Composite parent, String label, String key, int indentation) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText(label);
-
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		gd.horizontalIndent = indentation;
-		gd.horizontalSpan = 2;
-		checkBox.setLayoutData(gd);
-		checkBox.addSelectionListener(fCheckBoxListener);
-
-		fCheckBoxes.put(checkBox, key);
-
-		return checkBox;
-	}
-
-	/**
-	 * Returns an array of size 2: - first element is of type
-	 * <code>Label</code>- second element is of type <code>Text</code>
-	 * Use <code>getLabelControl</code> and <code>getTextControl</code> to
-	 * get the 2 controls.
-	 */
-	private Control[] addLabelledTextField(Composite composite, String label, String key, int textLimit, int indentation, boolean isNumber) {
-		Label labelControl = new Label(composite, SWT.NONE);
-		labelControl.setText(label);
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		gd.horizontalIndent = indentation;
-		labelControl.setLayoutData(gd);
-
-		Text textControl = new Text(composite, SWT.BORDER | SWT.SINGLE);
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		gd.widthHint = convertWidthInCharsToPixels(textControl, textLimit + 1);
-		textControl.setLayoutData(gd);
-		textControl.setTextLimit(textLimit);
-		fTextFields.put(textControl, key);
-		if (isNumber) {
-			fNumberFields.add(textControl);
-			textControl.addModifyListener(fNumberFieldListener);
-		} else {
-			textControl.addModifyListener(fTextFieldListener);
-		}
-
-		return new Control[]{labelControl, textControl};
-	}
-
-	protected Text addTextField(Composite composite, String label, String key, int textLimit, int indentation, boolean isNumber) {
-		return getTextControl(addLabelledTextField(composite, label, key, textLimit, indentation, isNumber));
-	}
-
-	/**
-	 * Applies the status to the status line of a dialog page.
-	 */
-	private void applyToStatusLine(IStatus status) {
-		String message = status.getMessage();
-		switch (status.getSeverity()) {
-			case IStatus.OK :
-				fMainPreferencePage.setMessage(message, IMessageProvider.NONE);
-				fMainPreferencePage.setErrorMessage(null);
-				break;
-			case IStatus.WARNING :
-				fMainPreferencePage.setMessage(message, IMessageProvider.WARNING);
-				fMainPreferencePage.setErrorMessage(null);
-				break;
-			case IStatus.INFO :
-				fMainPreferencePage.setMessage(message, IMessageProvider.INFORMATION);
-				fMainPreferencePage.setErrorMessage(null);
-				break;
-			default :
-				if (message.length() == 0) {
-					message = null;
-				}
-				fMainPreferencePage.setMessage(null);
-				fMainPreferencePage.setErrorMessage(message);
-				break;
-		}
-	}
-
-	/**
-	 * Returns the number of pixels corresponding to the width of the given
-	 * number of characters. This method was copied from
-	 * org.eclipse.jface.dialogs.DialogPage
-	 * <p>
-	 * 
-	 * @param a
-	 *            control in the page
-	 * @param chars
-	 *            the number of characters
-	 * @return the number of pixels
-	 */
-	private int convertWidthInCharsToPixels(Control testControl, int chars) {
-		// Compute and store a font metric
-		GC gc = new GC(testControl);
-		gc.setFont(JFaceResources.getDialogFont());
-		FontMetrics fontMetrics = gc.getFontMetrics();
-		gc.dispose();
-
-		// test for failure to initialize for backward compatibility
-		if (fontMetrics == null)
-			return 0;
-		return Dialog.convertWidthInCharsToPixels(fontMetrics, chars);
-	}
-
-	/**
-	 * @return Returns the fMainPreferencePage.
-	 */
-	protected PreferencePage getMainPreferencePage() {
-		return fMainPreferencePage;
-	}
-
-	/**
-	 * @return Returns the fOverlayStore.
-	 */
-	protected OverlayPreferenceStore getOverlayStore() {
-		return fOverlayStore;
-	}
-
-	private Text getTextControl(Control[] labelledTextField) {
-		return (Text) labelledTextField[1];
-	}
-
-	protected void initializeFields() {
-		Iterator e = fCheckBoxes.keySet().iterator();
-		while (e.hasNext()) {
-			Button b = (Button) e.next();
-			String key = (String) fCheckBoxes.get(b);
-			b.setSelection(fOverlayStore.getBoolean(key));
-		}
-
-		e = fTextFields.keySet().iterator();
-		while (e.hasNext()) {
-			Text t = (Text) e.next();
-			String key = (String) fTextFields.get(t);
-			t.setText(fOverlayStore.getString(key));
-		}
-	}
-
-	void numberFieldChanged(Text textControl) {
-		String number = textControl.getText();
-		IStatus status = validatePositiveNumber(number);
-		if (!status.matches(IStatus.ERROR))
-			fOverlayStore.setValue((String) fTextFields.get(textControl), number);
-		updateStatus(status);
-	}
-
-	/**
-	 * @param mainPreferencePage
-	 *            The fMainPreferencePage to set.
-	 */
-	protected void setMainPreferencePage(PreferencePage mainPreferencePage) {
-		fMainPreferencePage = mainPreferencePage;
-	}
-
-	/**
-	 * @param overlayStore
-	 *            The fOverlayStore to set.
-	 */
-	protected void setOverlayStore(OverlayPreferenceStore overlayStore) {
-		fOverlayStore = overlayStore;
-	}
-
-	/**
-	 * Update status of main preference page
-	 * 
-	 * @param status
-	 */
-	protected void updateStatus(IStatus status) {
-		if (!status.matches(IStatus.ERROR)) {
-			for (int i = 0; i < fNumberFields.size(); i++) {
-				Text text = (Text) fNumberFields.get(i);
-				IStatus s = validatePositiveNumber(text.getText());
-				status = s.getSeverity() > status.getSeverity() ? s : status;
-			}
-		}
-
-		fMainPreferencePage.setValid(!status.matches(IStatus.ERROR));
-		applyToStatusLine(status);
-	}
-
-	private IStatus validatePositiveNumber(String number) {
-		StatusInfo status = new StatusInfo();
-		if (number.length() == 0) {
-			status.setError(SSEUIMessages.StructuredTextEditorPreferencePage_37);
-		} else {
-			try {
-				int value = Integer.parseInt(number);
-				if (value < 0)
-					status.setError(number + SSEUIMessages.StructuredTextEditorPreferencePage_38);
-			} catch (NumberFormatException e) {
-				status.setError(number + SSEUIMessages.StructuredTextEditorPreferencePage_38);
-			}
-		}
-		return status;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorEditor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorEditor.java
deleted file mode 100644
index e564d60..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorEditor.java
+++ /dev/null
@@ -1,142 +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.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A "button" of a certain color determined by the color picker.
- */
-public class ColorEditor {
-	Button fButton;
-	Color fColor;
-	RGB fColorValue;
-
-	private Point fExtent;
-	Image fImage;
-
-	public ColorEditor(Composite parent) {
-
-		fButton = new Button(parent, SWT.PUSH);
-		fExtent = computeImageSize(parent);
-		fImage = new Image(parent.getDisplay(), fExtent.x, fExtent.y);
-
-		GC gc = new GC(fImage);
-		gc.setBackground(fButton.getBackground());
-		gc.fillRectangle(0, 0, fExtent.x, fExtent.y);
-		gc.dispose();
-
-		fButton.setImage(fImage);
-
-		// bug2541 - associate color value to button's value field
-		fButton.getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() {
-			/**
-			 * @see org.eclipse.swt.accessibility.AccessibleControlAdapter#getValue(AccessibleControlEvent)
-			 */
-			public void getValue(AccessibleControlEvent e) {
-				if (e.childID == ACC.CHILDID_SELF) {
-					if (getColorValue() != null)
-						e.result = getColorValue().toString();
-					else
-						e.result = null;
-				}
-			}
-		});
-
-		fButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent event) {
-				ColorDialog colorDialog = new ColorDialog(fButton.getShell());
-				colorDialog.setRGB(fColorValue);
-				RGB newColor = colorDialog.open();
-				if (newColor != null) {
-					fColorValue = newColor;
-					updateColorImage();
-				}
-			}
-		});
-
-		fButton.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent event) {
-				if (fImage != null) {
-					fImage.dispose();
-					fImage = null;
-				}
-				if (fColor != null) {
-					fColor.dispose();
-					fColor = null;
-				}
-			}
-		});
-	}
-
-	protected Point computeImageSize(Control window) {
-		GC gc = new GC(window);
-		Font f = JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT);
-		gc.setFont(f);
-		int height = gc.getFontMetrics().getHeight();
-		gc.dispose();
-		Point p = new Point(height * 3 - 6, height);
-		return p;
-	}
-
-	public Button getButton() {
-		return fButton;
-	}
-
-	public RGB getColorValue() {
-		return fColorValue;
-	}
-
-	public void setColorValue(RGB rgb) {
-		fColorValue = rgb;
-		updateColorImage();
-	}
-
-	protected void updateColorImage() {
-
-		Display display = fButton.getDisplay();
-
-		GC gc = new GC(fImage);
-		gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
-		gc.drawRectangle(0, 2, fExtent.x - 1, fExtent.y - 4);
-
-		if (fColor != null)
-			fColor.dispose();
-
-		fColor = new Color(display, fColorValue);
-		gc.setBackground(fColor);
-		gc.fillRectangle(1, 3, fExtent.x - 2, fExtent.y - 5);
-		gc.dispose();
-
-		fButton.setImage(fImage);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorHelper.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorHelper.java
deleted file mode 100644
index 58aefdb..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorHelper.java
+++ /dev/null
@@ -1,147 +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.wst.sse.ui.internal.preferences.ui;
-
-
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-public class ColorHelper {
-	public final static String BACKGROUND = "background";//$NON-NLS-1$
-	public final static String BOLD = "bold";//$NON-NLS-1$
-	public final static String FOREGROUND = "foreground";//$NON-NLS-1$
-	public final static String NAME = "name";//$NON-NLS-1$
-	private final static String STYLE_SEPARATOR = "|"; //$NON-NLS-1$ 
-
-	/**
-	 * Return an RGB String given the int r, g, b values
-	 */
-	public static String getColorString(int r, int g, int b) {
-		return "#" + getHexString(r, 2) + getHexString(g, 2) + getHexString(b, 2);//$NON-NLS-1$
-	}
-
-	private static String getHexString(int value, int minWidth) {
-		String hexString = Integer.toHexString(value);
-		for (int i = hexString.length(); i < minWidth; i++) {
-			hexString = "0" + hexString;//$NON-NLS-1$
-		}
-		return hexString;
-	}
-
-	/**
-	 * Generates a preference string to be placed in preferences from the
-	 * given String array.
-	 * 
-	 * @param stylePrefs
-	 *            assumes not null and should be in the form of String[0] =
-	 *            Foreground RGB String, String[1] = Background RGB String,
-	 *            String[2] = Bold true/false
-	 * 
-	 * @return String in the form of Foreground RGB String | Background RGB
-	 *         String | Bold true/false
-	 */
-	public static String packStylePreferences(String[] stylePrefs) {
-		StringBuffer styleString = new StringBuffer();
-
-		if (stylePrefs.length == 3) {
-			for (int i = 0; i < 3; ++i) {
-				String s = stylePrefs[i];
-				styleString.append(s);
-
-				// add in the separator (except on last iteration)
-				if (i != 2) {
-					styleString.append(" " + STYLE_SEPARATOR + " "); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-		}
-
-		return styleString.toString();
-	}
-
-	/**
-	 * @return org.eclipse.swt.graphics.RGB
-	 * @param anRGBString
-	 *            java.lang.String
-	 */
-	public static RGB toRGB(String anRGBString) {
-		RGB result = null;
-		if (anRGBString.length() > 6 && anRGBString.charAt(0) == '#') {
-			int r = 0;
-			int g = 0;
-			int b = 0;
-			try {
-				r = Integer.valueOf(anRGBString.substring(1, 3), 16).intValue();
-				g = Integer.valueOf(anRGBString.substring(3, 5), 16).intValue();
-				b = Integer.valueOf(anRGBString.substring(5, 7), 16).intValue();
-				result = new RGB(r, g, b);
-			} catch (NumberFormatException nfExc) {
-				Logger.logException("Could not load highlighting preference for color " + anRGBString, nfExc);//$NON-NLS-1$
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * @return java.lang.String
-	 * @param anRGB
-	 *            org.eclipse.swt.graphics.RGB
-	 */
-	public static String toRGBString(RGB anRGB) {
-		if (anRGB == null)
-			return "#000000";//$NON-NLS-1$
-		String red = Integer.toHexString(anRGB.red);
-		while (red.length() < 2)
-			red = "0" + red;//$NON-NLS-1$
-		String green = Integer.toHexString(anRGB.green);
-		while (green.length() < 2)
-			green = "0" + green;//$NON-NLS-1$
-		String blue = Integer.toHexString(anRGB.blue);
-		while (blue.length() < 2)
-			blue = "0" + blue;//$NON-NLS-1$
-		return "#" + red + green + blue;//$NON-NLS-1$
-	}
-
-	/**
-	 * Extracts the foreground (RGB String), background (RGB String), bold
-	 * (boolean String) from the given preference string.
-	 * 
-	 * @param preference
-	 *            should be in the form of Foreground RGB String | Background
-	 *            RGB String | Bold true/false
-	 * @return String[] where String[0] = Foreground RGB String, String[1] =
-	 *         Background RGB String, String[2] = Bold true/false OR null if
-	 *         ran into problems extracting
-	 */
-	public static String[] unpackStylePreferences(String preference) {
-		String[] stylePrefs = null;
-		if (preference != null) {
-			StringTokenizer st = new StringTokenizer(preference, STYLE_SEPARATOR);
-			if (st.countTokens() == 3) {
-				String foreground = st.nextToken().trim();
-				String background = st.nextToken().trim();
-				String bold = st.nextToken().trim();
-
-				stylePrefs = new String[3];
-				stylePrefs[0] = foreground;
-				stylePrefs[1] = background;
-				stylePrefs[2] = bold;
-			}
-		}
-
-		return stylePrefs;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorNames.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorNames.java
deleted file mode 100644
index 8460954..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/ColorNames.java
+++ /dev/null
@@ -1,27 +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.wst.sse.ui.internal.preferences.ui;
-
-
-
-public interface ColorNames {
-	String BACKGROUND = "background"; //$NON-NLS-1$
-	String BOLD = "bold"; //$NON-NLS-1$
-	String COLOR = "color"; //$NON-NLS-1$
-
-	String COLORS = "colors"; //$NON-NLS-1$
-	String FOREGROUND = "foreground"; //$NON-NLS-1$
-	String ITALIC = "italic"; //$NON-NLS-1$
-
-	String NAME = "name"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/EmptyFilePreferencePage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/EmptyFilePreferencePage.java
deleted file mode 100644
index f3b4b1a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/EmptyFilePreferencePage.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-public class EmptyFilePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
-	private Composite createComposite(Composite parent, int numColumns) {
-		noDefaultAndApplyButton();
-		
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		// GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		composite.setLayout(layout);
-
-		// GridData
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalIndent = 0;
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		composite.setLayoutData(data);
-
-		return composite;
-	}
-
-	protected Control createContents(Composite parent) {
-		Composite composite = createScrolledComposite(parent);
-
-		String description = SSEUIMessages.EmptyFilePreferencePage_0; //$NON-NLS-1$
-		Text text = new Text(composite, SWT.READ_ONLY);
-		// some themes on GTK have different background colors for Text and Labels
-		text.setBackground(composite.getBackground());
-		text.setText(description);
-
-		setSize(composite);
-		return composite;
-	}
-
-	private Composite createScrolledComposite(Composite parent) {
-		// create scrollbars for this parent when needed
-		final ScrolledComposite sc1 = new ScrolledComposite(parent, SWT.H_SCROLL | SWT.V_SCROLL);
-		sc1.setLayoutData(new GridData(GridData.FILL_BOTH));
-		Composite composite = createComposite(sc1, 1);
-		sc1.setContent(composite);
-
-		// not calling setSize for composite will result in a blank composite,
-		// so calling it here initially
-		// setSize actually needs to be called after all controls are created,
-		// so scrolledComposite
-		// has correct minSize
-		setSize(composite);
-		return composite;
-	}
-
-	public void init(IWorkbench workbench) {
-	}
-
-	private void setSize(Composite composite) {
-		if (composite != null) {
-			// Note: The font is set here in anticipation that the class inheriting
-			//       this base class may add widgets to the dialog.   setSize
-			//       is assumed to be called just before we go live.
-			applyDialogFont(composite);
-			Point minSize = composite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
-			composite.setSize(minSize);
-			// set scrollbar composite's min size so page is expandable but
-			// has scrollbars when needed
-			if (composite.getParent() instanceof ScrolledComposite) {
-				ScrolledComposite sc1 = (ScrolledComposite) composite.getParent();
-				sc1.setMinSize(minSize);
-				sc1.setExpandHorizontal(true);
-				sc1.setExpandVertical(true);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/FilePreferencePage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/FilePreferencePage.java
deleted file mode 100644
index c55af89..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/FilePreferencePage.java
+++ /dev/null
@@ -1,132 +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.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.preferences.TabFolderLayout;
-
-public class FilePreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-
-	private IPreferenceTab[] fTabs = null;
-
-	protected Composite createComposite(Composite parent, int numColumns) {
-		Composite composite = new Composite(parent, SWT.NULL);
-
-		//GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		composite.setLayout(layout);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalIndent = 0;
-		data.verticalAlignment = GridData.FILL_VERTICAL;
-		data.horizontalAlignment = GridData.FILL_HORIZONTAL;
-		composite.setLayoutData(data);
-
-		return composite;
-	}
-
-	protected Control createContents(Composite parent) {
-		Composite composite = createComposite(parent, 1);
-
-		String description = SSEUIMessages.FilePreferencePage_0; //$NON-NLS-1$
-		createLabel(composite, description);
-		createLabel(composite, ""); //$NON-NLS-1$
-
-		TabFolder folder = new TabFolder(composite, SWT.NONE);
-		folder.setLayout(new TabFolderLayout());
-		folder.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-//		TabItem taskItem = new TabItem(folder, SWT.NONE);
-//		IPreferenceTab tasksTab = new TaskTagPreferenceTab();
-//		taskItem.setText(tasksTab.getTitle());
-//		Control taskTags = tasksTab.createContents(folder);
-//		taskItem.setControl(taskTags);
-
-		TabItem translucenceItem = new TabItem(folder, SWT.NONE);
-		IPreferenceTab translucenceTab = new TranslucencyPreferenceTab(this);
-		translucenceItem.setText(translucenceTab.getTitle());
-		Control translucenceControl = translucenceTab.createContents(folder);
-		translucenceItem.setControl(translucenceControl);
-
-		fTabs = new IPreferenceTab[]{/*tasksTab,*/ translucenceTab};
-
-		return composite;
-	}
-
-	protected Label createLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(text);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_FILL;
-		label.setLayoutData(data);
-
-		return label;
-	}
-
-	public void init(IWorkbench desktop) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#performApply()
-	 */
-	protected void performApply() {
-		super.performApply();
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performApply();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		super.performDefaults();
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performDefaults();
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		boolean ok = super.performOk();
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performOk();
-		}
-		SSECorePlugin.getDefault().savePluginPreferences();
-		return ok;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/IPreferenceTab.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/IPreferenceTab.java
deleted file mode 100644
index bfd411e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/IPreferenceTab.java
+++ /dev/null
@@ -1,29 +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.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-
-public interface IPreferenceTab {
-
-	Control createContents(Composite tabFolder);
-
-	String getTitle();
-
-	void performApply();
-
-	void performDefaults();
-
-	void performOk();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StatusInfo.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StatusInfo.java
deleted file mode 100644
index 7ae5bb4..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StatusInfo.java
+++ /dev/null
@@ -1,202 +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.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.ui.editors.text.EditorsUI;
-
-/**
- * A settable IStatus. Can be an error, warning, info or ok. For error, info
- * and warning states, a message describes the problem.
- * 
- * This class was copied from other StatusInfo classes that are located in
- * internal packages
- */
-class StatusInfo implements IStatus {
-	/** The severity of this status. */
-	private int fSeverity;
-
-	/** The message of this status. */
-	private String fStatusMessage;
-
-	/**
-	 * Creates a status set to OK (no message).
-	 */
-	public StatusInfo() {
-		this(OK, null);
-	}
-
-	/**
-	 * Creates a status with the given severity and message.
-	 * 
-	 * @param severity
-	 *            the severity of this status: ERROR, WARNING, INFO and OK.
-	 * @param message
-	 *            the message of this status. Applies only for ERROR, WARNING
-	 *            and INFO.
-	 */
-	public StatusInfo(int severity, String message) {
-		fStatusMessage = message;
-		fSeverity = severity;
-	}
-
-	/**
-	 * Returns always <code>null</code>.
-	 * 
-	 * @see IStatus#getChildren()
-	 */
-	public IStatus[] getChildren() {
-		return new IStatus[0];
-	}
-
-	/**
-	 * Returns always the error severity.
-	 * 
-	 * @see IStatus#getCode()
-	 */
-	public int getCode() {
-		return fSeverity;
-	}
-
-	/**
-	 * Returns always <code>null</code>.
-	 * 
-	 * @see IStatus#getException()
-	 */
-	public Throwable getException() {
-		return null;
-	}
-
-	/*
-	 * @see IStatus#getMessage()
-	 */
-	public String getMessage() {
-		return fStatusMessage;
-	}
-
-	/*
-	 * @see IStatus#getPlugin()
-	 */
-	public String getPlugin() {
-		return EditorsUI.PLUGIN_ID;
-	}
-
-	/*
-	 * @see IStatus#getSeverity()
-	 */
-	public int getSeverity() {
-		return fSeverity;
-	}
-
-	/**
-	 * Returns whether this status indicates an error.
-	 * 
-	 * @return <code>true</code> if this status has severity
-	 *         {@link IStatus#ERROR}and <code>false</code> otherwise
-	 */
-	public boolean isError() {
-		return fSeverity == IStatus.ERROR;
-	}
-
-	/**
-	 * Returns whether this status indicates an info.
-	 * 
-	 * @return <code>true</code> if this status has severity
-	 *         {@link IStatus#INFO}and <code>false</code> otherwise
-	 */
-	public boolean isInfo() {
-		return fSeverity == IStatus.INFO;
-	}
-
-	/**
-	 * Returns always <code>false</code>.
-	 * 
-	 * @see IStatus#isMultiStatus()
-	 */
-	public boolean isMultiStatus() {
-		return false;
-	}
-
-	/*
-	 * @see org.eclipse.core.runtime.IStatus#isOK()
-	 */
-	public boolean isOK() {
-		return fSeverity == IStatus.OK;
-	}
-
-	/**
-	 * Returns whether this status indicates a warning.
-	 * 
-	 * @return <code>true</code> if this status has severity
-	 *         {@link IStatus#WARNING}and <code>false</code> otherwise
-	 */
-	public boolean isWarning() {
-		return fSeverity == IStatus.WARNING;
-	}
-
-	/*
-	 * @see IStatus#matches(int)
-	 */
-	public boolean matches(int severityMask) {
-		return (fSeverity & severityMask) != 0;
-	}
-
-	/**
-	 * Sets the status to ERROR.
-	 * 
-	 * @param errorMessage
-	 *            the error message which can be an empty string, but not
-	 *            <code>null</code>
-	 */
-	public void setError(String errorMessage) {
-		Assert.isNotNull(errorMessage);
-		fStatusMessage = errorMessage;
-		fSeverity = IStatus.ERROR;
-	}
-
-	/**
-	 * Sets the status to INFO.
-	 * 
-	 * @param infoMessage
-	 *            the info message which can be an empty string, but not
-	 *            <code>null</code>
-	 */
-	public void setInfo(String infoMessage) {
-		Assert.isNotNull(infoMessage);
-		fStatusMessage = infoMessage;
-		fSeverity = IStatus.INFO;
-	}
-
-	/**
-	 * Sets the status to OK.
-	 */
-	public void setOK() {
-		fStatusMessage = null;
-		fSeverity = IStatus.OK;
-	}
-
-	/**
-	 * Sets the status to WARNING.
-	 * 
-	 * @param warningMessage
-	 *            the warning message which can be an empty string, but not
-	 *            <code>null</code>
-	 */
-	public void setWarning(String warningMessage) {
-		Assert.isNotNull(warningMessage);
-		fStatusMessage = warningMessage;
-		fSeverity = IStatus.WARNING;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StructuredTextEditorPreferencePage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StructuredTextEditorPreferencePage.java
deleted file mode 100644
index 18bbd59..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StructuredTextEditorPreferencePage.java
+++ /dev/null
@@ -1,451 +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.wst.sse.ui.internal.preferences.ui;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.DialogPage;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jface.preference.PreferenceConverter;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.RGB;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.PreferenceLinkArea;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.ui.internal.preferences.EditorPreferenceNames;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore;
-import org.eclipse.wst.sse.ui.internal.preferences.TabFolderLayout;
-import org.eclipse.wst.sse.ui.internal.projection.IStructuredTextFoldingProvider;
-import org.eclipse.wst.sse.ui.internal.provisional.preferences.CommonEditorPreferenceNames;
-
-/**
- * Gutted version of JavaEditorPreferencePage
- * 
- * @author pavery
- */
-public class StructuredTextEditorPreferencePage extends PreferencePage implements IWorkbenchPreferencePage {
-	private ColorEditor fAppearanceColorEditor;
-	private List fAppearanceColorList;
-
-	private final String[][] fAppearanceColorListModel = new String[][]{{SSEUIMessages.StructuredTextEditorPreferencePage_2, EditorPreferenceNames.MATCHING_BRACKETS_COLOR}}; //$NON-NLS-1$
-	private Map fCheckBoxes = new HashMap();
-	private SelectionListener fCheckBoxListener = new SelectionListener() {
-		public void widgetDefaultSelected(SelectionEvent e) {
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			Button button = (Button) e.widget;
-			fOverlayStore.setValue((String) fCheckBoxes.get(button), button.getSelection());
-		}
-	};
-
-	private Map fColorButtons = new HashMap();
-
-	private ArrayList fNumberFields = new ArrayList();
-	private OverlayPreferenceStore fOverlayStore;
-	/** Button controlling default setting of the selected reference provider. */
-	// TODO: private field never read locally
-	Button fSetDefaultButton;
-	private IPreferenceTab[] fTabs = null;
-	private Map fTextFields = new HashMap();
-
-	public StructuredTextEditorPreferencePage() {
-		setDescription(SSEUIMessages.StructuredTextEditorPreferencePage_6); //$NON-NLS-1$
-		setPreferenceStore(SSEUIPlugin.getDefault().getPreferenceStore());
-
-		fOverlayStore = new OverlayPreferenceStore(getPreferenceStore(), createOverlayStoreKeys());
-	}
-
-	private Button addCheckBox(Composite parent, String label, String key, int indentation) {
-		Button checkBox = new Button(parent, SWT.CHECK);
-		checkBox.setText(label);
-
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		gd.horizontalIndent = indentation;
-		gd.horizontalSpan = 2;
-		checkBox.setLayoutData(gd);
-		checkBox.addSelectionListener(fCheckBoxListener);
-
-		fCheckBoxes.put(checkBox, key);
-
-		return checkBox;
-	}
-
-	/**
-	 * Applies the status to the status line of a dialog page.
-	 */
-	public void applyToStatusLine(DialogPage page, IStatus status) {
-		String message = status.getMessage();
-		switch (status.getSeverity()) {
-			case IStatus.OK :
-				page.setMessage(message, IMessageProvider.NONE);
-				page.setErrorMessage(null);
-				break;
-			case IStatus.WARNING :
-				page.setMessage(message, IMessageProvider.WARNING);
-				page.setErrorMessage(null);
-				break;
-			case IStatus.INFO :
-				page.setMessage(message, IMessageProvider.INFORMATION);
-				page.setErrorMessage(null);
-				break;
-			default :
-				if (message.length() == 0) {
-					message = null;
-				}
-				page.setMessage(null);
-				page.setErrorMessage(message);
-				break;
-		}
-	}
-
-	private Control createAppearancePage(Composite parent) {
-		Composite appearanceComposite = new Composite(parent, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		appearanceComposite.setLayout(layout);
-
-		String label = SSEUIMessages.StructuredTextEditorPreferencePage_20; //$NON-NLS-1$
-		addCheckBox(appearanceComposite, label, EditorPreferenceNames.MATCHING_BRACKETS, 0);
-
-		label = SSEUIMessages.StructuredTextEditorPreferencePage_30; //$NON-NLS-1$
-		addCheckBox(appearanceComposite, label, CommonEditorPreferenceNames.EVALUATE_TEMPORARY_PROBLEMS, 0);
-
-		PreferenceLinkArea contentTypeArea = new PreferenceLinkArea(appearanceComposite, SWT.NONE, "ValidationPreferencePage", SSEUIMessages.StructuredTextEditorPreferencePage_40, (IWorkbenchPreferenceContainer) getContainer(), null); //$NON-NLS-1$
-
-		GridData data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
-		data.horizontalIndent = 20;
-		contentTypeArea.getControl().setLayoutData(data);
-
-		label = SSEUIMessages.StructuredTextEditorPreferencePage_39;
-		addCheckBox(appearanceComposite, label, EditorPreferenceNames.SHOW_UNKNOWN_CONTENT_TYPE_MSG, 0);
-
-		label = SSEUIMessages.StructuredTextEditorPreferencePage_3;
-		addCheckBox(appearanceComposite, label, IStructuredTextFoldingProvider.FOLDING_ENABLED, 0);
-
-		Label l = new Label(appearanceComposite, SWT.LEFT);
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.horizontalSpan = 2;
-		gd.heightHint = convertHeightInCharsToPixels(1) / 2;
-		l.setLayoutData(gd);
-
-		l = new Label(appearanceComposite, SWT.LEFT);
-		l.setText(SSEUIMessages.StructuredTextEditorPreferencePage_23); //$NON-NLS-1$
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.horizontalSpan = 2;
-		l.setLayoutData(gd);
-
-		Composite editorComposite = new Composite(appearanceComposite, SWT.NONE);
-		layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		editorComposite.setLayout(layout);
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_VERTICAL);
-		gd.horizontalSpan = 2;
-		editorComposite.setLayoutData(gd);
-
-		fAppearanceColorList = new List(editorComposite, SWT.SINGLE | SWT.V_SCROLL | SWT.BORDER);
-		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING | GridData.FILL_HORIZONTAL);
-		gd.heightHint = convertHeightInCharsToPixels(5);
-		fAppearanceColorList.setLayoutData(gd);
-
-		Composite stylesComposite = new Composite(editorComposite, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		layout.numColumns = 2;
-		stylesComposite.setLayout(layout);
-		stylesComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		l = new Label(stylesComposite, SWT.LEFT);
-		// needs to be made final so label can be set in
-		// foregroundcolorbutton's acc listener
-		final String buttonLabel = SSEUIMessages.StructuredTextEditorPreferencePage_24; //$NON-NLS-1$ 
-		l.setText(buttonLabel);
-		gd = new GridData();
-		gd.horizontalAlignment = GridData.BEGINNING;
-		l.setLayoutData(gd);
-
-		fAppearanceColorEditor = new ColorEditor(stylesComposite);
-		Button foregroundColorButton = fAppearanceColorEditor.getButton();
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalAlignment = GridData.BEGINNING;
-		foregroundColorButton.setLayoutData(gd);
-
-		fAppearanceColorList.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				handleAppearanceColorListSelection();
-			}
-		});
-		foregroundColorButton.addSelectionListener(new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				// do nothing
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				int i = fAppearanceColorList.getSelectionIndex();
-				String key = fAppearanceColorListModel[i][1];
-
-				PreferenceConverter.setValue(fOverlayStore, key, fAppearanceColorEditor.getColorValue());
-			}
-		});
-
-		// bug2541 - associate color label to button's label field
-		foregroundColorButton.getAccessible().addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				if (e.childID == ACC.CHILDID_SELF)
-					e.result = buttonLabel;
-			}
-		});
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(appearanceComposite, IHelpContextIds.PREFSTE_APPEARANCE_HELPID);
-		return appearanceComposite;
-	}
-
-	/*
-	 * @see PreferencePage#createContents(Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		// need to create tabs before loading/starting overlaystore in case
-		// tabs also add values
-		IPreferenceTab hoversTab = new TextHoverPreferenceTab(this, fOverlayStore);
-
-		fOverlayStore.load();
-		fOverlayStore.start();
-
-		TabFolder folder = new TabFolder(parent, SWT.NONE);
-		folder.setLayout(new TabFolderLayout());
-		folder.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		TabItem item = new TabItem(folder, SWT.NONE);
-		item.setText(SSEUIMessages.StructuredTextEditorPreferencePage_0); //$NON-NLS-1$
-		item.setControl(createAppearancePage(folder));
-
-		item = new TabItem(folder, SWT.NONE);
-		item.setText(hoversTab.getTitle());
-		item.setControl(hoversTab.createContents(folder));
-
-		fTabs = new IPreferenceTab[]{hoversTab};
-
-		initialize();
-
-		Dialog.applyDialogFont(folder);
-		return folder;
-	}
-
-	/*
-	 * @see PreferencePage#createControl(Composite)
-	 */
-	public void createControl(Composite parent) {
-		super.createControl(parent);
-		// WorkbenchHelp.setHelp(getControl(),
-		// IJavaHelpContextIds.JAVA_EDITOR_PREFERENCE_PAGE);
-	}
-
-	private OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys() {
-		ArrayList overlayKeys = new ArrayList();
-
-		overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, EditorPreferenceNames.MATCHING_BRACKETS_COLOR));
-		overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, EditorPreferenceNames.MATCHING_BRACKETS));
-
-		overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, CommonEditorPreferenceNames.EVALUATE_TEMPORARY_PROBLEMS));
-		overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, EditorPreferenceNames.SHOW_UNKNOWN_CONTENT_TYPE_MSG));
-
-		overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.BOOLEAN, IStructuredTextFoldingProvider.FOLDING_ENABLED));
-
-		OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
-		overlayKeys.toArray(keys);
-		return keys;
-	}
-
-	/*
-	 * @see DialogPage#dispose()
-	 */
-	public void dispose() {
-		if (fOverlayStore != null) {
-			fOverlayStore.stop();
-			fOverlayStore = null;
-		}
-
-		super.dispose();
-	}
-
-	private void handleAppearanceColorListSelection() {
-		int i = fAppearanceColorList.getSelectionIndex();
-		String key = fAppearanceColorListModel[i][1];
-		RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
-		fAppearanceColorEditor.setColorValue(rgb);
-	}
-
-	/*
-	 * @see IWorkbenchPreferencePage#init()
-	 */
-	public void init(IWorkbench workbench) {
-		// nothing to do
-	}
-
-	private void initialize() {
-		initializeFields();
-
-		for (int i = 0; i < fAppearanceColorListModel.length; i++)
-			fAppearanceColorList.add(fAppearanceColorListModel[i][0]);
-		fAppearanceColorList.getDisplay().asyncExec(new Runnable() {
-			public void run() {
-				if (fAppearanceColorList != null && !fAppearanceColorList.isDisposed()) {
-					fAppearanceColorList.select(0);
-					handleAppearanceColorListSelection();
-				}
-			}
-		});
-	}
-
-	private void initializeFields() {
-		Iterator e = fColorButtons.keySet().iterator();
-		while (e.hasNext()) {
-			ColorEditor c = (ColorEditor) e.next();
-			String key = (String) fColorButtons.get(c);
-			RGB rgb = PreferenceConverter.getColor(fOverlayStore, key);
-			c.setColorValue(rgb);
-		}
-
-		e = fCheckBoxes.keySet().iterator();
-		while (e.hasNext()) {
-			Button b = (Button) e.next();
-			String key = (String) fCheckBoxes.get(b);
-			b.setSelection(fOverlayStore.getBoolean(key));
-		}
-
-		e = fTextFields.keySet().iterator();
-		while (e.hasNext()) {
-			Text t = (Text) e.next();
-			String key = (String) fTextFields.get(t);
-			t.setText(fOverlayStore.getString(key));
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#performApply()
-	 */
-	protected void performApply() {
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performApply();
-		}
-		super.performApply();
-	}
-
-	/*
-	 * @see PreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		fOverlayStore.loadDefaults();
-
-		initializeFields();
-
-		handleAppearanceColorListSelection();
-
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performDefaults();
-		}
-
-		super.performDefaults();
-
-		// there is currently no need for a viewer
-		// fPreviewViewer.invalidateTextPresentation();
-	}
-
-	/*
-	 * @see PreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		for (int i = 0; i < fTabs.length; i++) {
-			fTabs[i].performOk();
-		}
-
-		fOverlayStore.propagate();
-		SSEUIPlugin.getDefault().savePluginPreferences();
-
-		// tab width is also a model-side preference so need to set it
-		// TODO need to handle tab width for formatter somehow
-		// int tabWidth =
-		// getPreferenceStore().getInt(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_TAB_WIDTH);
-		// ModelPlugin.getDefault().getPluginPreferences().setValue(CommonModelPreferenceNames.TAB_WIDTH,
-		// tabWidth);
-		// ModelPlugin.getDefault().savePluginPreferences();
-
-		return true;
-	}
-
-	void updateStatus(IStatus status) {
-		if (!status.matches(IStatus.ERROR)) {
-			for (int i = 0; i < fNumberFields.size(); i++) {
-				Text text = (Text) fNumberFields.get(i);
-				IStatus s = validatePositiveNumber(text.getText());
-				status = s.getSeverity() > status.getSeverity() ? s : status;
-			}
-		}
-
-		setValid(!status.matches(IStatus.ERROR));
-		applyToStatusLine(this, status);
-	}
-
-	private IStatus validatePositiveNumber(String number) {
-		StatusInfo status = new StatusInfo();
-		if (number.length() == 0) {
-			status.setError(SSEUIMessages.StructuredTextEditorPreferencePage_37);
-		}
-		else {
-			try {
-				int value = Integer.parseInt(number);
-				if (value < 0)
-					status.setError(number + SSEUIMessages.StructuredTextEditorPreferencePage_38);
-			}
-			catch (NumberFormatException e) {
-				status.setError(number + SSEUIMessages.StructuredTextEditorPreferencePage_38);
-			}
-		}
-		return status;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StyledTextColorPicker.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StyledTextColorPicker.java
deleted file mode 100644
index 6fbb099..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/StyledTextColorPicker.java
+++ /dev/null
@@ -1,948 +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.wst.sse.ui.internal.preferences.ui;
-
-import java.io.CharArrayReader;
-import java.util.Dictionary;
-import java.util.List;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.accessibility.AccessibleControlListener;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.PaletteData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.ColorDialog;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.wst.sse.core.internal.ltk.parser.RegionParser;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-import org.w3c.dom.Node;
-
-import com.ibm.icu.text.Collator;
-
-/**
- * This class is configurable by setting 3 properties: 1) an array of Strings
- * as the styleNames; one unique entry for every style type meant to be
- * configurable by the user 2) a Dictionary of descriptions, mapping the
- * styleNames to unique descriptions - meant for use within the selection
- * ComboBox TODO (pa) this should probably be working off document partitions
- * now (2.1+) 3) a Dictionary mapping parsed ITextRegion contexts (strings) to
- * the locally defined styleNames
- *  
- */
-public class StyledTextColorPicker extends Composite {
-	protected class DescriptionSorter extends org.eclipse.wst.sse.ui.internal.util.Sorter {
-		Collator collator = Collator.getInstance();
-
-		public boolean compare(Object elementOne, Object elementTwo) {
-			/**
-			 * Returns true if elementTwo is 'greater than' elementOne This is
-			 * the 'ordering' method of the sort operation. Each subclass
-			 * overides this method with the particular implementation of the
-			 * 'greater than' concept for the objects being sorted.
-			 */
-			return (collator.compare(elementOne.toString(), elementTwo.toString())) < 0;
-		}
-	}
-
-	public static final String BACKGROUND = "background"; //$NON-NLS-1$
-	public static final String BOLD = "bold"; //$NON-NLS-1$
-	public static final String COLOR = "color"; //$NON-NLS-1$
-
-	// names for preference elements ... non-NLS
-	public static final String FOREGROUND = "foreground"; //$NON-NLS-1$
-	public static final String ITALIC = "italic"; //$NON-NLS-1$
-	public static final String NAME = "name"; //$NON-NLS-1$
-
-	protected static final boolean showItalic = false;
-	protected AccessibleControlListener backgroundAccListener = new AccessibleControlAdapter() {
-		/**
-		 * @see org.eclipse.swt.accessibility.AccessibleControlAdapter#getValue(AccessibleControlEvent)
-		 */
-		public void getValue(AccessibleControlEvent e) {
-			if (e.childID == ACC.CHILDID_SELF) {
-				e.result = getColorButtonValue(fBackground);
-			}
-		}
-	};
-	protected SelectionListener buttonListener = new SelectionListener() {
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-			widgetSelected(e);
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			String namedStyle = getStyleName(fStyleCombo.getItem(fStyleCombo.getSelectionIndex()));
-			if (namedStyle == null)
-				return;
-			if (e.widget == fForeground) {
-				// get current (newly old) style
-				String prefString = getPreferenceStore().getString(getPreferenceKey(namedStyle));
-				String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
-				if (stylePrefs != null) {
-					String oldValue = stylePrefs[0];
-					// open color dialog to get new color
-					String newValue = changeColor(oldValue);
-
-					if (!newValue.equals(oldValue)) {
-						stylePrefs[0] = newValue;
-						String newPrefString = ColorHelper.packStylePreferences(stylePrefs);
-						getPreferenceStore().setValue(getPreferenceKey(namedStyle), newPrefString);
-						refresh();
-					}
-				}
-			} else if (e.widget == fBackground) {
-				// get current (newly old) style
-				String prefString = getPreferenceStore().getString(getPreferenceKey(namedStyle));
-				String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
-				if (stylePrefs != null) {
-					String oldValue = stylePrefs[1];
-					// open color dialog to get new color
-					String newValue = changeColor(oldValue);
-
-					if (!newValue.equals(oldValue)) {
-						stylePrefs[1] = newValue;
-						String newPrefString = ColorHelper.packStylePreferences(stylePrefs);
-						getPreferenceStore().setValue(getPreferenceKey(namedStyle), newPrefString);
-						refresh();
-					}
-				}
-			} else if (e.widget == fBold) {
-				// get current (newly old) style
-				String prefString = getPreferenceStore().getString(getPreferenceKey(namedStyle));
-				String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
-				if (stylePrefs != null) {
-					String oldValue = stylePrefs[2];
-					String newValue = String.valueOf(fBold.getSelection());
-					if (!newValue.equals(oldValue)) {
-						stylePrefs[2] = newValue;
-						String newPrefString = ColorHelper.packStylePreferences(stylePrefs);
-						getPreferenceStore().setValue(getPreferenceKey(namedStyle), newPrefString);
-						refresh();
-					}
-				}
-			} else if (showItalic && e.widget == fItalic) {
-				// get current (newly old) style
-				String prefString = getPreferenceStore().getString(getPreferenceKey(namedStyle));
-				String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
-				if (stylePrefs != null) {
-					String oldValue = stylePrefs[3];
-					String newValue = String.valueOf(fItalic.getSelection());
-					if (!newValue.equals(oldValue)) {
-						stylePrefs[3] = newValue;
-						String newPrefString = ColorHelper.packStylePreferences(stylePrefs);
-						getPreferenceStore().setValue(getPreferenceKey(namedStyle), newPrefString);
-						refresh();
-					}
-				}
-			} else if (e.widget == fClearStyle) {
-				getPreferenceStore().setToDefault(getPreferenceKey(namedStyle));
-				refresh();
-			}
-		}
-	};
-
-	protected SelectionListener comboListener = new SelectionListener() {
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-			widgetSelected(e);
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			int selectedIndex = fStyleCombo.getSelectionIndex();
-			String description = selectedIndex >= 0 ? fStyleCombo.getItem(selectedIndex) : null;
-			activate(getStyleName(description));
-		}
-	};
-	protected Button fBackground;
-	protected Label fBackgroundLabel;
-	protected Button fBold;
-	protected Button fClearStyle;
-	// Dictionary mapping the ITextRegion types above to color names, which
-	// are, in turn, attributes
-	protected Dictionary fContextStyleMap = null;
-	protected Color fDefaultBackground = getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-
-	protected Color fDefaultForeground = getDisplay().getSystemColor(SWT.COLOR_LIST_FOREGROUND);
-	// Dictionary mapping the ITextRegion types above to display strings, for
-	// use in the combo box
-	protected Dictionary fDescriptions = null;
-	protected Button fForeground;
-	protected Label fForegroundLabel;
-//	private String fGeneratorKey;
-	protected String fInput = ""; //$NON-NLS-1$
-	protected Button fItalic;
-
-	private IStructuredDocumentRegion fNodes = null;
-	// defect 200764 - ACC:display values for color buttons
-	protected AccessibleControlListener foregroundAccListener = new AccessibleControlAdapter() {
-		/**
-		 * @see org.eclipse.swt.accessibility.AccessibleControlAdapter#getValue(AccessibleControlEvent)
-		 */
-		public void getValue(AccessibleControlEvent e) {
-			if (e.childID == ACC.CHILDID_SELF) {
-				e.result = getColorButtonValue(fForeground);
-			}
-		}
-	};
-	// A RegionParser, which will turn the input into
-	// IStructuredDocumentRegion(s) and Regions
-	protected RegionParser fParser = null;
-
-	private IPreferenceStore fPreferenceStore;
-	protected Combo fStyleCombo = null;
-	// The list of supported ITextRegion types [Strings]
-	protected List fStyleList = null;
-
-	// controls in picker
-	protected StyledText fText = null;
-
-	/**
-	 * XMLTextColorPicker constructor comment.
-	 * 
-	 * @param parent
-	 *            org.eclipse.swt.widgets.Composite
-	 * @param style
-	 *            int
-	 */
-	public StyledTextColorPicker(Composite parent, int style) {
-		super(parent, style);
-		//GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		setLayout(layout);
-		createControls(this);
-	}
-
-	// activate controls based on the given local color type
-	protected void activate(String namedStyle) {
-		if (namedStyle == null) {
-			fForeground.setEnabled(false);
-			fBackground.setEnabled(false);
-			fClearStyle.setEnabled(false);
-			fBold.setEnabled(false);
-			if (showItalic)
-				fItalic.setEnabled(false);
-			fForegroundLabel.setEnabled(false);
-			fBackgroundLabel.setEnabled(false);
-		} 
-		else {		
-			fForeground.setEnabled(true);
-			fBackground.setEnabled(true);
-			fClearStyle.setEnabled(true);
-			fBold.setEnabled(true);
-			if (showItalic)
-				fItalic.setEnabled(true);
-			fForegroundLabel.setEnabled(true);
-			fBackgroundLabel.setEnabled(true);
-			
-		}
-		TextAttribute attribute = getAttribute(namedStyle);
-		Color color = attribute.getForeground();
-		if (color == null) {
-			color = fDefaultForeground;
-		}
-		if (fForeground.getSize().x > 0 && fForeground.getSize().y > 0 && (fForeground.getImage() == null || fForeground.getImage().getImageData() == null || fForeground.getImage().getImageData().getRGBs() == null || fForeground.getImage().getImageData().getRGBs().length < 1 || !fForeground.getImage().getImageData().getRGBs()[0].equals(color.getRGB()))) {
-			if (fForeground.getImage() != null)
-				fForeground.getImage().dispose();
-			Image foreground = new Image(getDisplay(), new ImageData(fForeground.getSize().x, fForeground.getSize().y, 1, new PaletteData(new RGB[]{color.getRGB()})));
-			fForeground.setImage(foreground);
-		}
-		color = attribute.getBackground();
-		if (color == null) {
-			color = fDefaultBackground;
-		}
-		if (fBackground.getSize().x > 0 && fBackground.getSize().y > 0 && (fBackground.getImage() == null || fBackground.getImage().getImageData() == null || fBackground.getImage().getImageData().getRGBs() == null || fBackground.getImage().getImageData().getRGBs().length < 1 || !fBackground.getImage().getImageData().getRGBs()[0].equals(color.getRGB()))) {
-			if (fBackground.getImage() != null)
-				fBackground.getImage().dispose();
-			Image background = new Image(getDisplay(), new ImageData(fBackground.getSize().x, fBackground.getSize().y, 1, new PaletteData(new RGB[]{color.getRGB()})));
-			fBackground.setImage(background);
-		}
-		fBold.setSelection((attribute.getStyle() & SWT.BOLD) != 0);
-		if (showItalic)
-			fItalic.setSelection((attribute.getStyle() & SWT.ITALIC) != 0);
-	}
-
-	protected void applyStyles() {
-		if (fText == null || fText.isDisposed() || fInput == null || fInput.length() == 0)
-			return;
-		//		List regions = fParser.getRegions();
-		IStructuredDocumentRegion node = fNodes;
-		while (node != null) {
-			ITextRegionList regions = node.getRegions();
-			for (int i = 0; i < regions.size(); i++) {
-				ITextRegion currentRegion = regions.get(i);
-				// lookup the local coloring type and apply it
-				String namedStyle = (String) getContextStyleMap().get(currentRegion.getType());
-				if (namedStyle == null)
-					continue;
-				TextAttribute attribute = getAttribute(namedStyle);
-				if (attribute == null)
-					continue;
-				StyleRange style = new StyleRange(node.getStartOffset(currentRegion), currentRegion.getLength(), attribute.getForeground(), attribute.getBackground(), attribute.getStyle());
-				fText.setStyleRange(style);
-			}
-			node = node.getNext();
-		}
-	}
-
-	private RGB changeColor(RGB startValue) {
-		ColorDialog colorDlg = new ColorDialog(getShell());
-		if (startValue != null)
-			colorDlg.setRGB(startValue);
-		if(colorDlg.getText() == null || colorDlg.getText().length() == 0)
-			colorDlg.setText(SSEUIMessages.StyledTextColorPicker_0);
-		colorDlg.open();
-		RGB newRGB = colorDlg.getRGB();
-		if (newRGB != null)
-			return newRGB;
-		return startValue;
-	}
-
-	private String changeColor(String rgb) {
-		String changedColor = "null"; //$NON-NLS-1$
-
-		RGB newColor = changeColor(ColorHelper.toRGB(rgb));
-		// null check to see if using default value
-		if (newColor != null)
-			changedColor = ColorHelper.toRGBString(newColor);
-		return changedColor;
-	}
-
-	protected void close() {
-	}
-
-	/**
-	 * Determines size of color button copied from
-	 * org.eclipse.jdt.internal.ui.preferences.ColorEditor 1 modification -
-	 * added 4 to final height
-	 */
-	private Point computeImageSize(Control window) {
-		GC gc = new GC(window);
-		Font f = JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT);
-		gc.setFont(f);
-		int height = gc.getFontMetrics().getHeight();
-		gc.dispose();
-		Point p = new Point(height * 3 - 6, height + 4);
-		return p;
-	}
-
-	/**
-	 * Creates an new checkbox instance and sets the default layout data.
-	 * 
-	 * @param group
-	 *            the composite in which to create the checkbox
-	 * @param label
-	 *            the string to set into the checkbox
-	 * @return the new checkbox
-	 */
-	private Button createCheckBox(Composite group, String label) {
-		Button button = new Button(group, SWT.CHECK | SWT.CENTER);
-		if (label != null)
-			button.setText(label);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_END;
-		//	data.verticalAlignment = GridData.VERTICAL_ALIGN_FILL;
-		button.setLayoutData(data);
-		return button;
-	}
-
-	private Combo createCombo(Composite parent, String[] labels, int selectedItem) {
-		Combo combo = new Combo(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
-		combo.setItems(labels);
-		if (selectedItem >= 0)
-			combo.select(selectedItem);
-		GridData data = new GridData(GridData.FILL_HORIZONTAL);
-		data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_FILL;
-		combo.setLayoutData(data);
-		return combo;
-	}
-
-	/**
-	 * Creates composite control and sets the default layout data.
-	 */
-	private Composite createComposite(Composite parent, int numColumns) {
-		Composite composite = new Composite(parent, SWT.NULL);
-		//GridLayout
-		GridLayout layout = new GridLayout();
-		layout.numColumns = numColumns;
-		layout.horizontalSpacing = 5;
-		layout.makeColumnsEqualWidth = false;
-		composite.setLayout(layout);
-		//GridData
-		GridData data = new GridData(GridData.FILL_VERTICAL);
-		data.grabExcessVerticalSpace = false;
-		data.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
-		composite.setLayoutData(data);
-		return composite;
-	}
-
-	protected void createControls(Composite parent) {
-		Composite styleRow = createComposite(parent, 3);
-		// row 1 - content type label, combo box, restore defaults
-		createLabel(styleRow, SSEUIMessages.Content_type__UI_); //$NON-NLS-1$ = "Content type:"
-		// Contexts combo box
-		fStyleCombo = createCombo(styleRow, new String[0], -1);
-		fClearStyle = createPushButton(styleRow, SSEUIMessages.Restore_Default_UI_); //$NON-NLS-1$ = "Restore Default"
-		Composite styleRow2;
-		if (showItalic)
-			styleRow2 = createComposite(parent, 7);
-		else
-			styleRow2 = createComposite(parent, 6);
-		// row 2 - foreground label, button, background label, button, bold,
-		// italics?
-		fForegroundLabel = createLabel(styleRow2, SSEUIMessages.Foreground_UI_); //$NON-NLS-1$ = "Foreground"
-		fForeground = createPushButton(styleRow2, ""); //$NON-NLS-1$
-		setAccessible(fForeground, fForegroundLabel.getText());
-		fForeground.getAccessible().addAccessibleControlListener(foregroundAccListener); // defect
-		// 200764
-		// -
-		// ACC:display
-		// values
-		// for
-		// color
-		// buttons
-		Point buttonSize = computeImageSize(parent);
-		((GridData) fForeground.getLayoutData()).widthHint = buttonSize.x;
-		((GridData) fForeground.getLayoutData()).heightHint = buttonSize.y;
-		fBackgroundLabel = createLabel(styleRow2, SSEUIMessages.Background_UI_); //$NON-NLS-1$ = "Background"
-		fBackground = createPushButton(styleRow2, ""); //$NON-NLS-1$
-		setAccessible(fBackground, fBackgroundLabel.getText());
-		fBackground.getAccessible().addAccessibleControlListener(backgroundAccListener); // defect
-		// 200764
-		// -
-		// ACC:display
-		// values
-		// for
-		// color
-		// buttons
-		((GridData) fBackground.getLayoutData()).widthHint = buttonSize.x;
-		((GridData) fBackground.getLayoutData()).heightHint = buttonSize.y;
-		createLabel(styleRow2, ""); //$NON-NLS-1$
-		fBold = createCheckBox(styleRow2, SSEUIMessages.Bold_UI_);
-		if (showItalic)
-			fItalic = createCheckBox(styleRow2, SSEUIMessages.Italics_UI);
-		//		// Defaults checkbox
-		fForeground.setEnabled(false);
-		fBackground.setEnabled(false);
-		fClearStyle.setEnabled(false);
-		fBold.setEnabled(false);
-		if (showItalic)
-			fItalic.setEnabled(false);
-		fForegroundLabel.setEnabled(false);
-		fBackgroundLabel.setEnabled(false);
-		Composite sample = createComposite(parent, 1);
-		createLabel(sample, SSEUIMessages.Sample_text__UI_); //$NON-NLS-1$ = "&Sample text:"
-		// BUG141089 - make sure text is left-aligned
-		fText = new StyledText(sample, SWT.LEFT_TO_RIGHT | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.READ_ONLY);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		fText.setLayoutData(data);
-		fText.setEditable(false);
-		fText.setBackground(fDefaultBackground);
-		fText.setFont(JFaceResources.getTextFont());
-		fText.addKeyListener(getTextKeyListener());
-		fText.addSelectionListener(getTextSelectionListener());
-		fText.addMouseListener(getTextMouseListener());
-		fText.addTraverseListener(getTraverseListener()); // defect 220377 -
-		// Provide tab
-		// traversal for
-		// fText widget
-		setAccessible(fText, SSEUIMessages.Sample_text__UI_); //$NON-NLS-1$ = "&Sample text:"
-		fForeground.addSelectionListener(buttonListener);
-		fBackground.addSelectionListener(buttonListener);
-		fClearStyle.addSelectionListener(buttonListener);
-		fBold.addSelectionListener(buttonListener);
-		if (showItalic)
-			fItalic.addSelectionListener(buttonListener);
-		fStyleCombo.addSelectionListener(comboListener);
-	}
-
-	/**
-	 * Utility method that creates a label instance and sets the default
-	 * layout data.
-	 */
-	private Label createLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(text);
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		label.setLayoutData(data);
-		return label;
-	}
-
-	private Button createPushButton(Composite parent, String label) {
-		Button button = new Button(parent, SWT.PUSH);
-		button.setText(label);
-		GridData data = new GridData(GridData.FILL_BOTH);
-		//	data.horizontalAlignment = GridData.FILL;
-		button.setLayoutData(data);
-		return button;
-	}
-
-	protected TextAttribute getAttribute(String namedStyle) {
-		TextAttribute ta = new TextAttribute(getDefaultForeground(), getDefaultBackground(), SWT.NORMAL);
-
-		if (namedStyle != null && getPreferenceStore() != null) {
-			String prefString = getPreferenceStore().getString(getPreferenceKey(namedStyle));
-			String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
-			if (stylePrefs != null) {
-				RGB foreground = ColorHelper.toRGB(stylePrefs[0]);
-				RGB background = ColorHelper.toRGB(stylePrefs[1]);
-
-				int fontModifier = SWT.NORMAL;
-				boolean bold = Boolean.valueOf(stylePrefs[2]).booleanValue();
-				if (bold)
-					fontModifier = fontModifier | SWT.BOLD;
-
-				if (showItalic) {
-					boolean italic = Boolean.valueOf(stylePrefs[3]).booleanValue();
-					if (italic)
-						fontModifier = fontModifier | SWT.ITALIC;
-				}
-
-				ta = new TextAttribute((foreground != null) ? EditorUtility.getColor(foreground) : null, (background != null) ? EditorUtility.getColor(background) : null, fontModifier);
-			}
-		}
-		return ta;
-	}
-
-	// defect 200764 - ACC:display values for color buttons
-	/**
-	 * @return String - color Button b's current RBG value
-	 */
-	private String getColorButtonValue(Button b) {
-		if ((b == null) || (b.getImage() == null) || (b.getImage().getImageData() == null) || (b.getImage().getImageData().getRGBs() == null) || (b.getImage().getImageData().getRGBs()[0] == null))
-			return null;
-		String val = b.getImage().getImageData().getRGBs()[0].toString();
-		return val;
-	}
-
-	/**
-	 * @deprecated use getPreferenceStore instead left for legacy clients,
-	 *             delete by WTP M4
-	 */
-	public Node getColorsNode() {
-		//return fColorsNode;
-		return null;
-	}
-
-	/**
-	 * @return java.util.Dictionary
-	 */
-	public Dictionary getContextStyleMap() {
-		return fContextStyleMap;
-	}
-
-	/**
-	 * @return org.eclipse.swt.graphics.Color
-	 */
-	public Color getDefaultBackground() {
-		return fDefaultBackground;
-	}
-
-	/**
-	 * @return org.eclipse.swt.graphics.Color
-	 */
-	public Color getDefaultForeground() {
-		return fDefaultForeground;
-	}
-
-	/**
-	 * @return java.util.Dictionary
-	 */
-	public Dictionary getDescriptions() {
-		return fDescriptions;
-	}
-
-	public Font getFont() {
-		return fText.getFont();
-	}
-
-	protected String getNamedStyleAtOffset(int offset) {
-		// ensure the offset is clean
-		if (offset >= fInput.length())
-			return getNamedStyleAtOffset(fInput.length() - 1);
-		else if (offset < 0)
-			return getNamedStyleAtOffset(0);
-		// find the ITextRegion at this offset
-		if (fNodes == null)
-			return null;
-		IStructuredDocumentRegion aNode = fNodes;
-		while (aNode != null && !aNode.containsOffset(offset))
-			aNode = aNode.getNext();
-		if (aNode != null) {
-			// find the ITextRegion's Context at this offset
-			ITextRegion interest = aNode.getRegionAtCharacterOffset(offset);
-			if (interest == null)
-				return null;
-			if (offset > aNode.getTextEndOffset(interest))
-				return null;
-			String regionContext = interest.getType();
-			if (regionContext == null)
-				return null;
-			// find the named style (internal/selectable name) for that
-			// context
-			String namedStyle = (String) getContextStyleMap().get(regionContext);
-			if (namedStyle != null) {
-				return namedStyle;
-			}
-		}
-		return null;
-	}
-
-
-	public RegionParser getParser() {
-		return fParser;
-	}
-
-	/**
-	 * @deprecated just key key (no need for generator)
-	 */
-	private String getPreferenceKey(String key) {
-		String newKey = key;
-//		if (fGeneratorKey != null) {
-//			newKey = PreferenceKeyGenerator.generateKey(key, fGeneratorKey);
-//		}
-		return newKey;
-	}
-
-	private IPreferenceStore getPreferenceStore() {
-		return fPreferenceStore;
-	}
-
-	/**
-	 * @return String[]
-	 */
-	public List getStyleList() {
-		return fStyleList;
-	}
-
-	private String getStyleName(String description) {
-		if (description == null)
-			return null;
-		String styleName = null;
-		java.util.Enumeration keys = getDescriptions().keys();
-		while (keys.hasMoreElements()) {
-			String test = keys.nextElement().toString();
-			if (getDescriptions().get(test).equals(description)) {
-				styleName = test;
-				break;
-			}
-		}
-		return styleName;
-	}
-
-	public String getText() {
-		return fInput;
-	}
-
-	private KeyListener getTextKeyListener() {
-		return new KeyListener() {
-			public void keyPressed(KeyEvent e) {
-				if (e.widget instanceof StyledText) {
-					int x = ((StyledText) e.widget).getCaretOffset();
-					selectColorAtOffset(x);
-				}
-			}
-
-			public void keyReleased(KeyEvent e) {
-				if (e.widget instanceof StyledText) {
-					int x = ((StyledText) e.widget).getCaretOffset();
-					selectColorAtOffset(x);
-				}
-			}
-		};
-	}
-
-	private MouseListener getTextMouseListener() {
-		return new MouseListener() {
-			public void mouseDoubleClick(MouseEvent e) {
-			}
-
-			public void mouseDown(MouseEvent e) {
-			}
-
-			public void mouseUp(MouseEvent e) {
-				if (e.widget instanceof StyledText) {
-					int x = ((StyledText) e.widget).getCaretOffset();
-					selectColorAtOffset(x);
-				}
-			}
-		};
-	}
-
-	private SelectionListener getTextSelectionListener() {
-		return new SelectionListener() {
-			public void widgetDefaultSelected(SelectionEvent e) {
-				selectColorAtOffset(e.x);
-				if (e.widget instanceof StyledText) {
-					((StyledText) e.widget).setSelection(e.x);
-				}
-			}
-
-// Commented out when moving to RC2 to remove "unused" error/warning			
-//			public void widgetDoubleSelected(SelectionEvent e) {
-//				selectColorAtOffset(e.x);
-//				if (e.widget instanceof StyledText) {
-//					((StyledText) e.widget).setSelection(e.x);
-//				}
-//			}
-
-			public void widgetSelected(SelectionEvent e) {
-				selectColorAtOffset(e.x);
-				if (e.widget instanceof StyledText) {
-					((StyledText) e.widget).setSelection(e.x);
-				}
-			}
-		};
-	}
-
-	// defect 220377 - Provide tab traversal for fText widget
-	private TraverseListener getTraverseListener() {
-		return new TraverseListener() {
-			/**
-			 * @see org.eclipse.swt.events.TraverseListener#keyTraversed(TraverseEvent)
-			 */
-			public void keyTraversed(TraverseEvent e) {
-				if (e.widget instanceof StyledText) {
-					if ((e.detail == SWT.TRAVERSE_TAB_NEXT) || (e.detail == SWT.TRAVERSE_TAB_PREVIOUS))
-						e.doit = true;
-				}
-			}
-		};
-	}
-
-	// refresh the GUI after a color change
-	public void refresh() {
-		fText.setRedraw(false);
-		int selectedIndex = fStyleCombo.getSelectionIndex();
-		String description = selectedIndex >= 0 ? fStyleCombo.getItem(selectedIndex) : null;
-		activate(getStyleName(description));
-		// update Font
-		fText.setFont(JFaceResources.getTextFont());
-		// reapplyStyles
-		applyStyles();
-		fText.setRedraw(true);
-	}
-
-	public void releasePickerResources() {
-		if (fForeground != null && !fForeground.isDisposed() && fForeground.getImage() != null)
-			fForeground.getImage().dispose();
-		if (fBackground != null && !fBackground.isDisposed() && fBackground.getImage() != null)
-			fBackground.getImage().dispose();
-	}
-
-	private void selectColorAtOffset(int offset) {
-		String namedStyle = getNamedStyleAtOffset(offset);
-		if (namedStyle == null) {
-			fStyleCombo.deselectAll();
-			activate(null);
-			return;
-		}
-		String description = (String) getDescriptions().get(namedStyle);
-		if (description == null)
-			return;
-		int itemCount = fStyleCombo.getItemCount();
-		for (int i = 0; i < itemCount; i++) {
-			if (fStyleCombo.getItem(i).equals(description)) {
-				fStyleCombo.select(i);
-				break;
-			}
-		}
-		activate(namedStyle);
-	}
-
-	/**
-	 * Specifically set the reporting name of a control for accessibility
-	 */
-	private void setAccessible(Control control, String name) {
-		if (control == null)
-			return;
-		final String n = name;
-		control.getAccessible().addAccessibleListener(new AccessibleAdapter() {
-			public void getName(AccessibleEvent e) {
-				if (e.childID == ACC.CHILDID_SELF)
-					e.result = n;
-			}
-		});
-	}
-
-	/**
-	 * @deprecated use setPreferenceStore instead left for legacy clients,
-	 *             delete by WTP M4
-	 */
-	public void setColorsNode(Node newColorsNode) {
-		//fColorsNode = newColorsNode;
-	}
-
-	/**
-	 * @param newContextStyleMap
-	 *            java.util.Dictionary
-	 */
-	public void setContextStyleMap(Dictionary newContextStyleMap) {
-		fContextStyleMap = newContextStyleMap;
-	}
-
-	/**
-	 * @param newDefaultBackground
-	 *            org.eclipse.swt.graphics.Color
-	 */
-	public void setDefaultBackground(Color newDefaultBackground) {
-		fDefaultBackground = newDefaultBackground;
-	}
-
-	/**
-	 * @deprecated use setPreferenceStore instead left for legacy clients,
-	 *             delete by WTP M4
-	 */
-	public void setDefaultColorsNode(Node newDefaultColorsNode) {
-		//fDefaultColorsNode = newDefaultColorsNode;
-	}
-
-	/**
-	 * @param newDefaultForeground
-	 *            org.eclipse.swt.graphics.Color
-	 */
-	public void setDefaultForeground(Color newDefaultForeground) {
-		fDefaultForeground = newDefaultForeground;
-	}
-
-	/**
-	 * @param newDescriptions
-	 *            java.util.Dictionary
-	 */
-	public void setDescriptions(Dictionary newDescriptions) {
-		fDescriptions = newDescriptions;
-		updateStyleList();
-	}
-
-	public void setFont(Font font) {
-		fText.setFont(font);
-		fText.redraw();
-	}
-
-	/**
-	 * @deprecated generator key should no longer be needed
-	 */
-	public void setGeneratorKey(String key) {
-//		fGeneratorKey = key;
-	}
-
-	/**
-	 * @param newParser
-	 */
-	public void setParser(RegionParser newParser) {
-		fParser = newParser;
-	}
-
-	public void setPreferenceStore(IPreferenceStore store) {
-		fPreferenceStore = store;
-	}
-
-	/**
-	 * @param newStyleList
-	 *            String[]
-	 */
-	public void setStyleList(List newStyleList) {
-		fStyleList = newStyleList;
-		updateStyleList();
-	}
-
-	public void setText(String s) {
-		fInput = s;
-		getParser().reset(new CharArrayReader(fInput.toCharArray()));
-		fNodes = getParser().getDocumentRegions();
-		if (Debug.displayInfo)
-			System.out.println("Length of input: " //$NON-NLS-1$
-						//$NON-NLS-1$
-						+ s.length() + ", " //$NON-NLS-1$
-						+ getParser().getRegions().size() + " regions."); //$NON-NLS-1$
-		if (fText != null)
-			fText.setText(s);
-		applyStyles();
-	}
-
-
-
-	/**
-	 * @return org.eclipse.swt.graphics.RGB
-	 * @param anRGBString
-	 *            java.lang.String
-	 * @param defaultRGB
-	 *            org.eclipse.swt.graphics.RGB
-	 */
-	// TODO: never used
-	 RGB toRGB(String anRGBString, RGB defaultRGB) {
-		RGB result = ColorHelper.toRGB(anRGBString);
-		if (result == null)
-			return defaultRGB;
-		return result;
-	}
-
-	private void updateStyleList() {
-		if (fStyleList == null || fDescriptions == null)
-			return;
-		String[] descriptions = new String[fStyleList.size()];
-		for (int i = 0; i < fStyleList.size(); i++) {
-			if (fStyleList.get(i) != null)
-				descriptions[i] = (String) getDescriptions().get(fStyleList.get(i));
-			else
-				descriptions[i] = (String) fStyleList.get(i);
-		}
-		Object[] sortedObjects = new DescriptionSorter().sort(descriptions);
-		String[] sortedDescriptions = new String[descriptions.length];
-		for (int i = 0; i < descriptions.length; i++) {
-			sortedDescriptions[i] = sortedObjects[i].toString();
-		}
-		fStyleCombo.setItems(sortedDescriptions);
-		fStyleCombo.select(0); //defect 219855 - initially select first item
-		// in comboBox
-		//		fStyleCombo.deselectAll();
-	}
-
-
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/TextHoverPreferenceTab.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/TextHoverPreferenceTab.java
deleted file mode 100644
index 009239b..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/TextHoverPreferenceTab.java
+++ /dev/null
@@ -1,453 +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.wst.sse.ui.internal.preferences.ui;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.text.Assert;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.sse.ui.internal.preferences.EditorPreferenceNames;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore;
-import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager;
-import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager.TextHoverDescriptor;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-
-/**
- * Preference tab for Structured text editor hover help preferences
- * 
- * @author amywu
- */
-public class TextHoverPreferenceTab extends AbstractPreferenceTab {
-
-	private class InternalTableLabelProvider extends LabelProvider implements ITableLabelProvider {
-		public InternalTableLabelProvider() {
-			super();
-		}
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			switch (columnIndex) {
-				case 0 : // text hover label
-					return ((TextHoverManager.TextHoverDescriptor) element).getLabel();
-
-				case 1 : // text hover state mask
-					return ((TextHoverManager.TextHoverDescriptor) element).getModifierString();
-
-				default :
-					break;
-			}
-
-			return null;
-		}
-	}
-
-	private static final String DELIMITER = SSEUIMessages.TextHoverPreferenceTab_delimiter; //$NON-NLS-1$
-	private Text fDescription;
-	private Table fHoverTable;
-	private TableViewer fHoverTableViewer;
-	private TableColumn fModifierColumn;
-	// for this preference page
-	private Text fModifierEditor;
-	private TableColumn fNameColumn;
-
-	private TextHoverDescriptor[] fTextHovers; // current list of text hovers
-
-	public TextHoverPreferenceTab(PreferencePage mainPreferencePage, OverlayPreferenceStore store) {
-		Assert.isNotNull(mainPreferencePage);
-		Assert.isNotNull(store);
-		setMainPreferencePage(mainPreferencePage);
-		setOverlayStore(store);
-		getOverlayStore().addKeys(createOverlayStoreKeys());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createContents(Composite tabFolder) {
-		Composite hoverComposite = new Composite(tabFolder, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		hoverComposite.setLayout(layout);
-		GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-		hoverComposite.setLayoutData(gd);
-
-		// commented out until these preferences are actually handled in some
-		// way
-		//		String rollOverLabel=
-		// ResourceHandler.getString("TextHoverPreferenceTab.annotationRollover");
-		// //$NON-NLS-1$
-		//		addCheckBox(hoverComposite, rollOverLabel,
-		// CommonEditorPreferenceNames.EDITOR_ANNOTATION_ROLL_OVER, 0);
-		//
-		//		// Affordance checkbox
-		//		String showAffordanceLabel =
-		// ResourceHandler.getString("TextHoverPreferenceTab.showAffordance");
-		// //$NON-NLS-1$
-		//		addCheckBox(hoverComposite, showAffordanceLabel,
-		// CommonEditorPreferenceNames.EDITOR_SHOW_TEXT_HOVER_AFFORDANCE, 0);
-
-		Label label = new Label(hoverComposite, SWT.NONE);
-		label.setText(SSEUIMessages.TextHoverPreferenceTab_hoverPreferences); //$NON-NLS-1$
-		gd = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
-		gd.horizontalAlignment = GridData.BEGINNING;
-		label.setLayoutData(gd);
-
-		fHoverTableViewer = CheckboxTableViewer.newCheckList(hoverComposite, SWT.H_SCROLL | SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION);
-		// Hover table
-		fHoverTable = fHoverTableViewer.getTable();
-		fHoverTable.setHeaderVisible(true);
-		fHoverTable.setLinesVisible(true);
-
-		gd = new GridData(SWT.FILL, SWT.FILL, true, false, 2, 1);
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=104507
-	    GC gc = new GC(fHoverTable);
-	    gc.setFont(fHoverTable.getFont());
-	    FontMetrics fontMetrics = gc.getFontMetrics();
-	    gc.dispose();
-		int heightHint = Dialog.convertHeightInCharsToPixels(fontMetrics, 7);
-		gd.heightHint = heightHint;
-		
-		fHoverTable.setLayoutData(gd);
-
-		TableLayout tableLayout = new TableLayout();
-		tableLayout.addColumnData(new ColumnWeightData(1, 140, true));
-		tableLayout.addColumnData(new ColumnWeightData(1, 140, true));
-		fHoverTable.setLayout(tableLayout);
-
-		fHoverTable.addSelectionListener(new SelectionListener() {
-
-			public void widgetDefaultSelected(SelectionEvent e) {
-			}
-
-			public void widgetSelected(SelectionEvent e) {
-				handleHoverListSelection();
-			}
-		});
-
-		fNameColumn = new TableColumn(fHoverTable, SWT.NONE);
-		fNameColumn.setText(SSEUIMessages.TextHoverPreferenceTab_nameColumnTitle); //$NON-NLS-1$
-		fNameColumn.setResizable(true);
-
-		fModifierColumn = new TableColumn(fHoverTable, SWT.NONE);
-		fModifierColumn.setText(SSEUIMessages.TextHoverPreferenceTab_modifierColumnTitle); //$NON-NLS-1$
-		fModifierColumn.setResizable(true);
-
-		fHoverTableViewer.setUseHashlookup(true);
-		fHoverTableViewer.setContentProvider(new ArrayContentProvider());
-		fHoverTableViewer.setLabelProvider(new InternalTableLabelProvider());
-		((CheckboxTableViewer) fHoverTableViewer).addCheckStateListener(new ICheckStateListener() {
-			/*
-			 * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged(org.eclipse.jface.viewers.CheckStateChangedEvent)
-			 */
-			public void checkStateChanged(CheckStateChangedEvent event) {
-				String id = ((TextHoverDescriptor) event.getElement()).getId();
-				if (id == null)
-					return;
-
-				TextHoverManager.TextHoverDescriptor[] descriptors = getTextHoverManager().getTextHovers();
-				TextHoverManager.TextHoverDescriptor hoverConfig = null;
-				int i = 0, length = fTextHovers.length;
-				while (i < length) {
-					if (id.equals(descriptors[i].getId())) {
-						hoverConfig = fTextHovers[i];
-						hoverConfig.setEnabled(event.getChecked());
-						fModifierEditor.setEnabled(event.getChecked());
-						fHoverTableViewer.setSelection(new StructuredSelection(descriptors[i]));
-					}
-					i++;
-				}
-
-				handleHoverListSelection();
-				updateStatus(hoverConfig);
-			}
-		});
-
-		// Text field for modifier string
-		label = new Label(hoverComposite, SWT.LEFT);
-		label.setText(SSEUIMessages.TextHoverPreferenceTab_keyModifier); //$NON-NLS-1$
-		fModifierEditor = new Text(hoverComposite, SWT.BORDER);
-		gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		fModifierEditor.setLayoutData(gd);
-
-		fModifierEditor.addKeyListener(new KeyListener() {
-			private boolean isModifierCandidate;
-
-			public void keyPressed(KeyEvent e) {
-				isModifierCandidate = e.keyCode > 0 && e.character == 0 && e.stateMask == 0;
-			}
-
-			public void keyReleased(KeyEvent e) {
-				if (isModifierCandidate && e.stateMask > 0 && e.stateMask == e.stateMask && e.character == 0) {// &&
-					// e.time
-					// -time
-					// <
-					// 1000)
-					// {
-					String text = fModifierEditor.getText();
-					Point selection = fModifierEditor.getSelection();
-					int i = selection.x - 1;
-					while (i > -1 && Character.isWhitespace(text.charAt(i))) {
-						i--;
-					}
-					boolean needsPrefixDelimiter = i > -1 && !String.valueOf(text.charAt(i)).equals(DELIMITER);
-
-					i = selection.y;
-					while (i < text.length() && Character.isWhitespace(text.charAt(i))) {
-						i++;
-					}
-					boolean needsPostfixDelimiter = i < text.length() && !String.valueOf(text.charAt(i)).equals(DELIMITER);
-
-					String insertString;
-
-					if (needsPrefixDelimiter && needsPostfixDelimiter)
-						insertString = NLS.bind(SSEUIMessages.TextHoverPreferenceTab_insertDelimiterAndModifierAndDelimiter, new String[]{Action.findModifierString(e.stateMask)});
-					else if (needsPrefixDelimiter)
-						insertString = NLS.bind(SSEUIMessages.TextHoverPreferenceTab_insertDelimiterAndModifier, new String[]{Action.findModifierString(e.stateMask)});
-					else if (needsPostfixDelimiter)
-						insertString = NLS.bind(SSEUIMessages.TextHoverPreferenceTab_insertModifierAndDelimiter, new String[]{Action.findModifierString(e.stateMask)});
-					else
-						insertString = Action.findModifierString(e.stateMask);
-
-					if (insertString != null)
-						fModifierEditor.insert(insertString);
-				}
-			}
-		});
-
-		fModifierEditor.addModifyListener(new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				handleModifierModified();
-			}
-		});
-
-		// Description
-		Label descriptionLabel = new Label(hoverComposite, SWT.LEFT);
-		descriptionLabel.setText(SSEUIMessages.TextHoverPreferenceTab_description); //$NON-NLS-1$
-		gd = new GridData(GridData.VERTICAL_ALIGN_BEGINNING);
-		gd.horizontalSpan = 2;
-		descriptionLabel.setLayoutData(gd);
-		fDescription = new Text(hoverComposite, SWT.LEFT | SWT.WRAP | SWT.MULTI | SWT.READ_ONLY | SWT.BORDER);
-		gd = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1);
-		gd.horizontalSpan = 2;
-		fDescription.setLayoutData(gd);
-
-		initialize();
-
-		Dialog.applyDialogFont(hoverComposite);
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(hoverComposite, IHelpContextIds.PREFSTE_HOVERS_HELPID);
-		return hoverComposite;
-	}
-
-	private OverlayPreferenceStore.OverlayKey[] createOverlayStoreKeys() {
-		ArrayList overlayKeys = new ArrayList();
-
-		overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, EditorPreferenceNames.EDITOR_TEXT_HOVER_MODIFIERS));
-
-		OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
-		overlayKeys.toArray(keys);
-		return keys;
-	}
-
-	private String generateTextHoverString() {
-		StringBuffer buf = new StringBuffer();
-
-		for (int i = 0; i < fTextHovers.length; i++) {
-			buf.append(fTextHovers[i].getId());
-			buf.append(TextHoverManager.HOVER_ATTRIBUTE_SEPARATOR);
-			buf.append(Boolean.toString(fTextHovers[i].isEnabled()));
-			buf.append(TextHoverManager.HOVER_ATTRIBUTE_SEPARATOR);
-			String modifier = fTextHovers[i].getModifierString();
-			if (modifier == null || modifier.length() == 0)
-				modifier = TextHoverManager.NO_MODIFIER;
-			buf.append(modifier);
-			buf.append(TextHoverManager.HOVER_SEPARATOR);
-		}
-		return buf.toString();
-	}
-
-	private TextHoverManager getTextHoverManager() {
-		return SSEUIPlugin.getDefault().getTextHoverManager();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#getTitle()
-	 */
-	public String getTitle() {
-		return SSEUIMessages.TextHoverPreferenceTab_title; //$NON-NLS-1$
-	}
-
-	void handleHoverListSelection() {
-		int i = fHoverTable.getSelectionIndex();
-
-		if (i == -1) {
-			if (fHoverTable.getSelectionCount() == 0)
-				fModifierEditor.setEnabled(false);
-			return;
-		}
-
-		boolean enabled = fTextHovers[i].isEnabled();
-		fModifierEditor.setEnabled(enabled);
-		fModifierEditor.setText(fTextHovers[i].getModifierString());
-		String description = fTextHovers[i].getDescription();
-		if (description == null)
-			description = ""; //$NON-NLS-1$
-		fDescription.setText(description);
-	}
-
-	private void handleModifierModified() {
-		int i = fHoverTable.getSelectionIndex();
-		if (i == -1)
-			return;
-
-		String modifiers = fModifierEditor.getText();
-		fTextHovers[i].setModifierString(modifiers);
-
-		// update table
-		fHoverTableViewer.refresh(fTextHovers[i]);
-
-		updateStatus(fTextHovers[i]);
-	}
-
-	private void initialize() {
-		restoreFromOverlay();
-		fHoverTableViewer.setInput(fTextHovers);
-
-		initializeFields();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.AbstractPreferenceTab#initializeFields()
-	 */
-	protected void initializeFields() {
-		super.initializeFields();
-
-		fModifierEditor.setEnabled(false);
-		// initialize checkboxes in hover table
-		for (int i = 0; i < fTextHovers.length; i++)
-			fHoverTable.getItem(i).setChecked(fTextHovers[i].isEnabled());
-		fHoverTableViewer.refresh();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#performApply()
-	 */
-	public void performApply() {
-		performOk();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#performDefaults()
-	 */
-	public void performDefaults() {
-		initialize();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#performOk()
-	 */
-	public void performOk() {
-		String textHoverString = generateTextHoverString();
-		getOverlayStore().setValue(EditorPreferenceNames.EDITOR_TEXT_HOVER_MODIFIERS, textHoverString);
-		getTextHoverManager().resetTextHovers(); // notify text hover manager
-		// it should reset to get
-		// latest preferences
-	}
-
-	/**
-	 * Populates fTextHovers with text hover description from the overlay
-	 * store (which is the preferences)
-	 */
-	private void restoreFromOverlay() {
-		String descriptorsString = getOverlayStore().getString(EditorPreferenceNames.EDITOR_TEXT_HOVER_MODIFIERS);
-		fTextHovers = getTextHoverManager().generateTextHoverDescriptors(descriptorsString);
-	}
-
-	void updateStatus(TextHoverManager.TextHoverDescriptor hoverConfig) {
-		IStatus status = new StatusInfo();
-
-		if (hoverConfig != null && hoverConfig.isEnabled() && EditorUtility.computeStateMask(hoverConfig.getModifierString()) == -1)
-			status = new StatusInfo(IStatus.ERROR, NLS.bind(SSEUIMessages.TextHoverPreferenceTab_modifierIsNotValid, new String[]{hoverConfig.getModifierString()}));
-
-		int i = 0;
-		HashMap stateMasks = new HashMap(fTextHovers.length);
-		while (status.isOK() && i < fTextHovers.length) {
-			if (fTextHovers[i].isEnabled()) {
-				String label = fTextHovers[i].getLabel();
-				Integer stateMask = new Integer(EditorUtility.computeStateMask(fTextHovers[i].getModifierString()));
-				if (stateMask.intValue() == -1)
-					status = new StatusInfo(IStatus.ERROR, NLS.bind(SSEUIMessages.TextHoverPreferenceTab_modifierIsNotValidForHover, new String[]{fTextHovers[i].getModifierString(), label}));
-				else if (stateMasks.containsKey(stateMask))
-					status = new StatusInfo(IStatus.ERROR, NLS.bind(SSEUIMessages.TextHoverPreferenceTab_duplicateModifier, new String[]{label, (String) stateMasks.get(stateMask)}));
-				else
-					stateMasks.put(stateMask, label);
-			}
-			i++;
-		}
-
-		updateStatus(status);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/TranslucencyPreferenceTab.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/TranslucencyPreferenceTab.java
deleted file mode 100644
index d89b41d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/preferences/ui/TranslucencyPreferenceTab.java
+++ /dev/null
@@ -1,149 +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.wst.sse.ui.internal.preferences.ui;
-
-import org.eclipse.jface.preference.FieldEditor;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.IntegerFieldEditor;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.text.Assert;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.preferences.EditorPreferenceNames;
-
-public class TranslucencyPreferenceTab implements IPreferenceTab {
-
-	private PreferencePage fMainPreferencePage;
-	private IntegerFieldEditor fTranslucencyScale = null;
-	private final int MAX_PERCENTAGE = 100;
-
-	private IPropertyChangeListener validityChangeListener = new IPropertyChangeListener() {
-		public void propertyChange(PropertyChangeEvent event) {
-			if (event.getProperty().equals(FieldEditor.IS_VALID))
-				updateValidState();
-		}
-	};
-
-	/**
-	 *  
-	 */
-	public TranslucencyPreferenceTab() {
-		super();
-	}
-
-	public TranslucencyPreferenceTab(PreferencePage mainPreferencePage) {
-		Assert.isNotNull(mainPreferencePage);
-		setMainPreferencePage(mainPreferencePage);
-	}
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	public Control createContents(Composite tabFolder) {
-		Composite composite = new Composite(tabFolder, SWT.NULL);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		composite.setLayout(layout);
-
-		String text = SSEUIMessages.TranslucencyPreferenceTab_1; //$NON-NLS-1$
-		fTranslucencyScale = new IntegerFieldEditor(EditorPreferenceNames.READ_ONLY_FOREGROUND_SCALE, text, composite);
-
-		fTranslucencyScale.setErrorMessage(JFaceResources.getString("StringFieldEditor.errorMessage"));//$NON-NLS-1$
-		fTranslucencyScale.setPreferenceStore(getPreferenceStore());
-		fTranslucencyScale.setPreferencePage(getMainPreferencePage());
-		fTranslucencyScale.setTextLimit(Integer.toString(MAX_PERCENTAGE).length());
-		fTranslucencyScale.setValidateStrategy(StringFieldEditor.VALIDATE_ON_KEY_STROKE);
-		fTranslucencyScale.setValidRange(0, MAX_PERCENTAGE);
-		fTranslucencyScale.load();
-		fTranslucencyScale.setPropertyChangeListener(validityChangeListener);
-
-//		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.PREFWEBX_READONLY_HELPID);
-		return composite;
-	}
-
-	/**
-	 * @return Returns the fMainPreferencePage.
-	 */
-	private PreferencePage getMainPreferencePage() {
-		return fMainPreferencePage;
-	}
-
-	/**
-	 * @return Returns the preference store used in this tab
-	 */
-	private IPreferenceStore getPreferenceStore() {
-		return SSEUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#getTitle()
-	 */
-	public String getTitle() {
-		return SSEUIMessages.TranslucencyPreferenceTab_0; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#performApply()
-	 */
-	public void performApply() {
-		fTranslucencyScale.store();
-		SSEUIPlugin.getDefault().savePluginPreferences();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#performDefaults()
-	 */
-	public void performDefaults() {
-		fTranslucencyScale.loadDefault();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.IPreferenceTab#performOk()
-	 */
-	public void performOk() {
-		performApply();
-	}
-
-	/**
-	 * @param mainPreferencePage
-	 *            The fMainPreferencePage to set.
-	 */
-	private void setMainPreferencePage(PreferencePage mainPreferencePage) {
-		fMainPreferencePage = mainPreferencePage;
-	}
-
-	private void updateValidState() {
-		if (getMainPreferencePage() != null) {
-			getMainPreferencePage().setValid(fTranslucencyScale.isValid());
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/projection/IStructuredTextFoldingProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/projection/IStructuredTextFoldingProvider.java
deleted file mode 100644
index 76d9af2..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/projection/IStructuredTextFoldingProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package org.eclipse.wst.sse.ui.internal.projection;
-
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-
-/**
- * Implementors of this interface which will create and maintain
- * {@link org.eclipse.jface.text.source.projection.ProjectionAnnotation}
- * objects that define folded regions in the the
- * {@link org.eclipse.jface.text.source.projection.ProjectionViewer}for a
- * structured model.
- */
-public interface IStructuredTextFoldingProvider {
-	public static final String ID = "structuredtextfoldingprovider"; //$NON-NLS-1$
-
-	/**
-	 * A named preference that controls whether folding is enabled in the
-	 * Structured Text editor.
-	 */
-	public final static String FOLDING_ENABLED = "foldingEnabled"; //$NON-NLS-1$ 
-
-	// copied interface from
-	// org.eclipse.jdt.ui.text.folding.IJavaFoldingStructureProvider
-	/**
-	 * Installs this structure provider on the given viewer. Implementations
-	 * should listen to the projection events generated by <code>viewer</code>
-	 * and enable / disable generation of projection structure accordingly.
-	 * 
-	 * @param viewer
-	 *            the projection viewer that displays the annotations created
-	 *            by this structure provider
-	 */
-	public void install(ProjectionViewer viewer);
-
-	/**
-	 * Uninstalls this structure provider. Any references to viewers should be
-	 * cleared.
-	 */
-	public void uninstall();
-
-	/**
-	 * Initialize this provider with the correct document. Assumes projection
-	 * is enabled. (otherwise, only install would have been called)
-	 */
-	public void initialize();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/AdapterPropertySheetEntryLabelProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/AdapterPropertySheetEntryLabelProvider.java
deleted file mode 100644
index ec0a53c..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/AdapterPropertySheetEntryLabelProvider.java
+++ /dev/null
@@ -1,51 +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.wst.sse.ui.internal.properties;
-
-
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.views.properties.IPropertySheetEntry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-
-
-public class AdapterPropertySheetEntryLabelProvider extends LabelProvider {
-	public Image getImage(Object element) {
-		if (element == null)
-			return null;
-		if (element instanceof IPropertySheetEntry) {
-			return ((IPropertySheetEntry) element).getImage();
-		}
-		if (element instanceof INodeNotifier) {
-			IPropertySheetEntry entry = (IPropertySheetEntry) ((INodeNotifier) element).getAdapterFor(IPropertySheetEntry.class);
-			if (entry != null)
-				return entry.getImage();
-		}
-		return super.getImage(element);
-	}
-
-	public String getText(Object element) {
-		if (element == null)
-			return null;
-		if (element instanceof IPropertySheetEntry) {
-			return ((IPropertySheetEntry) element).getValueAsString();
-		}
-		if (element instanceof INodeNotifier) {
-			IPropertySheetEntry entry = (IPropertySheetEntry) ((INodeNotifier) element).getAdapterFor(IPropertySheetEntry.class);
-			if (entry != null)
-				return entry.getValueAsString();
-		}
-		return super.getText(element);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/ConfigurablePropertySheetPage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/ConfigurablePropertySheetPage.java
deleted file mode 100644
index 78235df..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/ConfigurablePropertySheetPage.java
+++ /dev/null
@@ -1,214 +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.wst.sse.ui.internal.properties;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.views.properties.IPropertySheetEntry;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.wst.sse.ui.views.properties.IPropertySourceExtension;
-import org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration;
-
-
-/**
- * A configurable IPropertySheetPage since the standard PropertySheetPage does
- * not expose its viewer field.
- */
-
-public class ConfigurablePropertySheetPage extends PropertySheetPage {
-	private class NullPropertySheetConfiguration extends PropertySheetConfiguration {
-		public IPropertySourceProvider getPropertySourceProvider(IPropertySheetPage page) {
-			return null;
-		}
-	}
-
-	private static final boolean _DEBUG = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/propertySheet")); //$NON-NLS-1$  //$NON-NLS-2$;;
-
-	private long _DEBUG_TIME = 0;
-
-	private PropertySheetConfiguration fConfiguration;
-	private Object[] fSelectedEntries = null;
-	private ISelection fInput = null;
-	private IMenuManager fMenuManager;
-
-	private RemoveAction fRemoveAction;
-
-	private IStatusLineManager fStatusLineManager;
-
-	private IToolBarManager fToolBarManager;
-
-	private final PropertySheetConfiguration NULL_CONFIGURATION = new NullPropertySheetConfiguration();
-
-	public ConfigurablePropertySheetPage() {
-		super();
-	}
-
-	public void createControl(Composite parent) {
-		setPropertySourceProvider(getConfiguration().getPropertySourceProvider(this));
-		super.createControl(parent);
-	}
-
-	public void dispose() {
-		setConfiguration(null);
-		getSite().getWorkbenchWindow().getSelectionService().removePostSelectionListener(this);
-		super.dispose();
-	}
-
-	public PropertySheetConfiguration getConfiguration() {
-		if (fConfiguration == null)
-			fConfiguration = NULL_CONFIGURATION;
-		return fConfiguration;
-	}
-
-	public void handleEntrySelection(ISelection selection) {
-		if (getControl() != null && !getControl().isDisposed() && selection != null) {
-			super.handleEntrySelection(selection);
-			if (selection instanceof IStructuredSelection) {
-				fSelectedEntries = ((IStructuredSelection) selection).toArray();
-			}
-			else {
-				fSelectedEntries = null;
-			}
-			fRemoveAction.setEnabled(!selection.isEmpty());
-		}
-	}
-
-	public void init(IPageSite pageSite) {
-		super.init(pageSite);
-		pageSite.getWorkbenchWindow().getSelectionService().addPostSelectionListener(this);
-	}
-
-	public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
-		super.makeContributions(menuManager, toolBarManager, statusLineManager);
-		fMenuManager = menuManager;
-		fToolBarManager = toolBarManager;
-		fStatusLineManager = statusLineManager;
-
-		fRemoveAction = new RemoveAction(this);
-		toolBarManager.add(fRemoveAction);
-		menuManager.add(fRemoveAction);
-		getConfiguration().addContributions(menuManager, toolBarManager, statusLineManager);
-
-		menuManager.update(true);
-	}
-
-	void remove() {
-		if (fSelectedEntries != null) {
-			Object[] entries = fSelectedEntries;
-			ISelection selection = fInput;
-			if (selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
-				IPropertySource source = getConfiguration().getPropertySourceProvider(this).getPropertySource(((IStructuredSelection) selection).getFirstElement());
-				if (source != null && source instanceof IPropertySourceExtension) {
-					for (int i = 0; i < entries.length; i++) {
-						if (entries[i] instanceof IPropertySheetEntry) {
-							IPropertySheetEntry entry = (IPropertySheetEntry) entries[i];
-							((IPropertySourceExtension) source).removeProperty(entry.getDisplayName());
-						}
-					}
-				}
-			}
-		}
-	}
-
-	/*
-	 * Filter the selection through the current Configuration. Not every
-	 * selection received is a Structured selection nor are the Structured
-	 * selection's elements all to be displayed.
-	 * 
-	 * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-		if (_DEBUG) {
-			_DEBUG_TIME = System.currentTimeMillis();
-		}
-		if (getControl() != null && getControl().isVisible() && !getControl().isFocusControl()) {
-			ISelection preferredSelection = getConfiguration().getInputSelection(part, selection);
-			/*
-			 * Do some minor caching of the selection.
-			 * 
-			 * As a PropertySheetPage, we've always notified of selection
-			 * changes, but we've also subscribed to post selection
-			 * notification so we can track caret movements in source viewers.
-			 * When selecting a block of text, we're thus notified of the new
-			 * selection twice. Remembering what our last *effective*
-			 * selection was allows us to cut out most of the
-			 * double-notification penalty.
-			 */
-			if (!preferredSelection.equals(fInput)) {
-				fInput = preferredSelection;
-				fSelectedEntries = null;
-				super.selectionChanged(part, preferredSelection);
-			}
-
-			if (_DEBUG) {
-				System.out.println("(P:service " + (System.currentTimeMillis() - _DEBUG_TIME) + "ms) " + part + " : " + ((IStructuredSelection) preferredSelection).getFirstElement()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-		}
-		else if (_DEBUG) {
-			System.out.println("[skipped] (P:" + (System.currentTimeMillis() - _DEBUG_TIME) + "ms) " + part + " : " + selection); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-
-	/**
-	 * @param configuration
-	 *            The configuration to set.
-	 */
-	public void setConfiguration(PropertySheetConfiguration configuration) {
-		if (fConfiguration != null) {
-			fConfiguration.removeContributions(fMenuManager, fToolBarManager, fStatusLineManager);
-			fConfiguration.unconfigure();
-		}
-
-		fConfiguration = configuration;
-
-		if (fConfiguration != null) {
-			setPropertySourceProvider(fConfiguration.getPropertySourceProvider(this));
-			fConfiguration.addContributions(fMenuManager, fToolBarManager, fStatusLineManager);
-		}
-	}
-
-	public void setFocus() {
-		super.setFocus();
-
-		IWorkbenchWindow workbenchWindow = getSite().getWorkbenchWindow();
-		IWorkbenchPage activePage = workbenchWindow.getActivePage();
-		if (activePage != null) {
-			IEditorPart activeEditor = activePage.getActiveEditor();
-			if (activeEditor != null) {
-				IEditorSite editorSite = activeEditor.getEditorSite();
-				if (editorSite != null) {
-					ISelectionProvider selectionProvider = editorSite.getSelectionProvider();
-					if (selectionProvider != null) {
-						selectionChanged(activeEditor, selectionProvider.getSelection());
-					}
-				}
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/CustomPropertyDescriptor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/CustomPropertyDescriptor.java
deleted file mode 100644
index 5c6904b..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/CustomPropertyDescriptor.java
+++ /dev/null
@@ -1,89 +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.wst.sse.ui.internal.properties;
-
-
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-public class CustomPropertyDescriptor extends PropertyDescriptor {
-
-	protected Class cellEditorClass = null;
-
-	/**
-	 * Returns a property descriptor with a unique name and a display name.
-	 * 
-	 * @param id
-	 *            the id for the property
-	 * @param displayName
-	 *            the name to display for the property
-	 */
-	public CustomPropertyDescriptor(Object id, String newDisplayName, Class editorClass) {
-		super(id, newDisplayName);
-		setDescription((String) id);
-		setCellEditorClass(editorClass);
-	}
-
-	/**
-	 * Returns a property descriptor with a unique name and a display name.
-	 * 
-	 * @param uniqueName
-	 *            the unique name of the property
-	 * @param displayName
-	 *            the name to display for the property
-	 */
-	public CustomPropertyDescriptor(String uniqueName, String newDisplayName) {
-		this(uniqueName, newDisplayName, TextCellEditor.class);
-	}
-
-	public CellEditor createPropertyEditor(Composite parent) {
-		return getPropertyEditor(parent);
-	}
-
-	public Class getCellEditorClass() {
-		return cellEditorClass;
-	}
-
-	/**
-	 * Returns the editor used to edit the property.
-	 * 
-	 * @return an editor for the property
-	 */
-	protected CellEditor getPropertyEditor(Composite parent) {
-		if (getCellEditorClass() == null)
-			return null;
-
-		java.lang.reflect.Constructor constructor = null;
-		try {
-			constructor = getCellEditorClass().getDeclaredConstructor(new Class[]{Composite.class});
-		} catch (NoSuchMethodException nsme) {
-			return new TextCellEditor(parent);
-		}
-		if (constructor != null) {
-			try {
-				return (CellEditor) constructor.newInstance(new Object[]{parent});
-			} catch (InstantiationException ie) {
-			} catch (java.lang.reflect.InvocationTargetException ite) {
-			} catch (IllegalAccessException iae) {
-			}
-		}
-		return new TextCellEditor(parent);
-	}
-
-	public void setCellEditorClass(Class newCellEditorClass) {
-		cellEditorClass = newCellEditorClass;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/RemoveAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/RemoveAction.java
deleted file mode 100644
index 488b241..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/RemoveAction.java
+++ /dev/null
@@ -1,45 +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.wst.sse.ui.internal.properties;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImageHelper;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImages;
-
-public class RemoveAction extends Action {
-	private ConfigurablePropertySheetPage fPage;
-
-	public RemoveAction(ConfigurablePropertySheetPage page) {
-		super();
-		fPage = page;
-		setText(getText());
-		setToolTipText(getText());
-		setImageDescriptor(EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_ELCL_DELETE));
-		setDisabledImageDescriptor(EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_DLCL_DELETE));
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.Action#getText()
-	 */
-	public String getText() {
-		return SSEUIMessages.RemoveAction_0; //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.jface.action.IAction#run()
-	 */
-	public void run() {
-		fPage.remove();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/ShowPropertiesAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/ShowPropertiesAction.java
deleted file mode 100644
index 2abb375..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/properties/ShowPropertiesAction.java
+++ /dev/null
@@ -1,38 +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.wst.sse.ui.internal.properties;
-
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.ShowViewAction;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImageHelper;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImages;
-import org.eclipse.wst.sse.ui.internal.editor.IHelpContextIds;
-
-/**
- * Surfaces the Properties view
- * 
- * @author Nitin Dahyabhai
- */
-public class ShowPropertiesAction extends ShowViewAction {
-	private final static String VIEW_ID = "org.eclipse.ui.views.PropertySheet"; //$NON-NLS-1$
-
-	public ShowPropertiesAction() {
-		super(SSEUIMessages.ShowPropertiesAction_0, EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_OBJ_PROP_PS)); //$NON-NLS-1$
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(this, IHelpContextIds.CONTMNU_PROPERTIES_HELPID);
-	}
-
-	protected String getViewID() {
-		return VIEW_ID;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/CommonEditorPreferenceNames.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/CommonEditorPreferenceNames.java
deleted file mode 100644
index d09f811..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/preferences/CommonEditorPreferenceNames.java
+++ /dev/null
@@ -1,35 +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.wst.sse.ui.internal.provisional.preferences;
-
-import org.eclipse.wst.sse.ui.internal.preferences.EditorPreferenceNames;
-
-/**
- * Common editor preference keys used by the Structured Text Editor.
- * 
- * @plannedfor 1.0
- */
-public class CommonEditorPreferenceNames {
-	private CommonEditorPreferenceNames() {
-		// empty private constructor so users cannot instantiate class
-	}
-
-	/**
-	 * A named preference that controls as-you-type validation
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String EVALUATE_TEMPORARY_PROBLEMS = EditorPreferenceNames.EVALUATE_TEMPORARY_PROBLEMS;
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryProvider.java
deleted file mode 100644
index 5ccdeb2..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryProvider.java
+++ /dev/null
@@ -1,33 +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.wst.sse.ui.internal.provisional.registry;
-
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IDocumentTypeHandler;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-
-
-public interface AdapterFactoryProvider {
-
-	public void addAdapterFactories(IStructuredModel structuredModel);
-
-	// TODO_issue: IDocumentTypeHandler doesn't seem correct in this API.
-	// reexamine and see if should be ModelHandler, or ContentTypeIdentifer
-	// instead.
-	public boolean isFor(IDocumentTypeHandler contentTypeDescription);
-
-	/**
-	 * This method should only add those factories related to embedded content
-	 * type
-	 */
-	public void reinitializeFactories(IStructuredModel structuredModel);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistry.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistry.java
deleted file mode 100644
index 3b1990f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistry.java
+++ /dev/null
@@ -1,32 +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.wst.sse.ui.internal.provisional.registry;
-
-import java.util.Iterator;
-
-/**
- * This is basically a "factory for factories". It is to used to associate
- * "edit time" AdapterFactories with a StructuredModel, based on the
- * IStructuredModel's ContentTypeDescription. In plugin.xml files, there
- * should be an AdapterFactoryProvider defined for every definition of
- * ContentTypeDescription.
- */
-public interface AdapterFactoryRegistry {
-
-	/**
-	 * Returns an Iterator over a Collection of AdapterFactoryProviders
-	 * 
-	 * @return
-	 */
-	public Iterator getAdapterFactories();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryExtension.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryExtension.java
deleted file mode 100644
index c229f20..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryExtension.java
+++ /dev/null
@@ -1,22 +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.wst.sse.ui.internal.provisional.registry;
-
-import java.util.Iterator;
-import java.util.List;
-
-public interface AdapterFactoryRegistryExtension {
-	Iterator getAdapterFactories(String contentTypeID);
-
-	List getAdapterFactoriesAsList(String contentTypeID);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryImpl.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryImpl.java
deleted file mode 100644
index e8f5bbc..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryImpl.java
+++ /dev/null
@@ -1,210 +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.wst.sse.ui.internal.provisional.registry;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-public class AdapterFactoryRegistryImpl implements AdapterFactoryRegistry, AdapterFactoryRegistryExtension {
-
-	protected final static String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	private static AdapterFactoryRegistry instance = null;
-
-	static synchronized public AdapterFactoryRegistry getInstance() {
-		if (instance == null) {
-			instance = new AdapterFactoryRegistryImpl();
-		}
-		return instance;
-	}
-
-	// this map exists so there is only one provider
-	// instance not duplicate providers for different content types
-	private HashMap adapterProviders = null;
-
-	private boolean DEBUG = false;
-	/**
-	 * This HashMap contains: [contentTypeId -> element2providerMap] | V
-	 * [configurationElement -> AdapterFactoryProvider]
-	 * 
-	 */
-	private HashMap hashMap = null;
-
-	// providers with no content type associated
-	// just added through the add(...) method
-	private HashSet unassociatedProviders = null;
-
-	private AdapterFactoryRegistryImpl() {
-		super();
-		this.hashMap = new HashMap();
-		this.unassociatedProviders = new HashSet();
-		this.adapterProviders = new HashMap();
-
-		// doesn't instantiate classes, just stores configuration elements
-		AdapterFactoryRegistryReader.readRegistry(hashMap);
-	}
-
-	void add(AdapterFactoryProvider adapterFactoryProvider) {
-		this.unassociatedProviders.add(adapterFactoryProvider);
-	}
-
-	public Iterator getAdapterFactories() {
-		if (DEBUG) {
-			System.out.println("===================================================================================="); //$NON-NLS-1$
-			System.out.println("GETTING ALL ADAPTER FACTORIES"); //$NON-NLS-1$
-		}
-
-		List results = new ArrayList();
-
-		// add providers that have no content type specification
-		results.addAll(this.unassociatedProviders);
-		Iterator it = this.hashMap.keySet().iterator();
-		String contentTypeId = null;
-		while (it.hasNext()) {
-			contentTypeId = (String) it.next();
-
-			if (DEBUG)
-				System.out.println(" + for: " + contentTypeId); //$NON-NLS-1$
-
-			results.addAll(getAdapterFactoriesAsList(contentTypeId));
-		}
-
-		if (DEBUG) {
-			System.out.println("===================================================================================="); //$NON-NLS-1$
-		}
-
-		return results.iterator();
-	}
-
-	public Iterator getAdapterFactories(String contentTypeID) {
-		if (DEBUG) {
-			System.out.println("===================================================================================="); //$NON-NLS-1$
-			System.out.println("GETTING ADAPTER FACTORIES for: " + contentTypeID); //$NON-NLS-1$
-		}
-
-		List results = new ArrayList();
-
-		// add providers that have no content type specification
-		results.addAll(unassociatedProviders);
-
-		// add unknown content type providers (for backwards compatability)
-		results.addAll(getAdapterFactoriesAsList(AdapterFactoryRegistryReader.UNKNOWN_CONTENT_TYPE));
-
-		// add providers for specific content type
-		results.addAll(getAdapterFactoriesAsList(Platform.getContentTypeManager().getContentType(contentTypeID)));
-
-
-		if (DEBUG) {
-			System.out.println("===================================================================================="); //$NON-NLS-1$
-		}
-
-		return results.iterator();
-	}
-
-	public List getAdapterFactoriesAsList(IContentType contentType) {
-		IContentType type = contentType;
-		List results = new ArrayList();
-		while (type != null && !type.getId().equals(IContentTypeManager.CT_TEXT)) {
-			results.addAll(getAdapterFactoriesAsList(type.getId()));
-			type = type.getBaseType();
-		}
-		return results;
-	}
-
-	/**
-	 * Using this new API, only AdapterFactoryProviders for a certain content
-	 * type are instantiated. This will allow for the minimum number of
-	 * plugins to be loaded rather than all that implement the adapter factory
-	 * extension point.
-	 * 
-	 * @param contentTypeID
-	 * @return
-	 */
-	public List getAdapterFactoriesAsList(String contentTypeID) {
-
-		List results = new ArrayList();
-
-		// get element2Provider map for specified content type
-		Object o = hashMap.get(contentTypeID);
-		if (o != null) {
-			// instantiate if necessary from
-			// element2adapterFactoryProvider
-			// map
-			Map element2Provider = (Map) o;
-			Iterator it = element2Provider.keySet().iterator();
-			IConfigurationElement element = null;
-			String classname = null;
-			Object existing = null;
-			AdapterFactoryProvider p = null;
-			while (it.hasNext()) {
-				element = (IConfigurationElement) it.next();
-				o = element2Provider.get(element);
-				if (o != null) {
-					// this provider has already been created
-					if (DEBUG)
-						System.out.println("already created: " + element.getAttribute(ATT_CLASS)); //$NON-NLS-1$
-
-					results.add(o);
-				}
-				else {
-					// need to create the provider
-					try {
-						classname = element.getAttribute(ATT_CLASS);
-
-						if (DEBUG)
-							System.out.println("about to create: " + classname); //$NON-NLS-1$
-
-						// check if we created one already
-						existing = this.adapterProviders.get(classname);
-						if (existing == null) {
-							// this is the only place
-							// AdapterFactoryProviders
-							// are created
-							p = (AdapterFactoryProvider) element.createExecutableExtension(ATT_CLASS); // $NON-NLS-1$
-							this.adapterProviders.put(classname, p);
-						}
-						else {
-							p = (AdapterFactoryProvider) existing;
-						}
-
-						// add to element2Provider for this contentType
-						element2Provider.put(element, p);
-						// add to results to return for this method
-						results.add(p);
-
-					}
-					catch (CoreException e) {
-						// if the provider throws any exception, just log
-						// and
-						// continue
-						Logger.logException(e);
-					}
-				}
-			}
-		}
-
-		return results;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryReader.java
deleted file mode 100644
index b5d49d4..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryReader.java
+++ /dev/null
@@ -1,142 +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.wst.sse.ui.internal.provisional.registry;
-
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-/**
- * This class just converts what's in the plugins registry into a form more
- * easily useable by others, the ContentTypeRegistry.
- */
-class AdapterFactoryRegistryReader {
-	protected final static String ATT_CLASS = "class"; //$NON-NLS-1$
-
-	protected final static String ATT_ID = "id"; //$NON-NLS-1$
-
-	private static boolean DEBUG = false;
-	protected final static String EXTENSION_POINT_ID = "adapterFactoryDescription"; //$NON-NLS-1$
-	//
-	protected final static String PLUGIN_ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-	protected final static String TAG_CONTENT_TYPE = "contentType"; //$NON-NLS-1$
-
-	protected final static String TAG_NAME = "adapterFactoryDescription"; //$NON-NLS-1$
-
-	public final static String UNKNOWN_CONTENT_TYPE = "unknown"; //$NON-NLS-1$
-
-	/**
-	 * adds configuration element to contentTypeId map [contentTypeId ->
-	 * element2providerMap] | V [element -> provider]
-	 * 
-	 * NOTE: this doesn't create the provider yet, that must be done on demand
-	 * and stored in the appropriate element2provider
-	 * 
-	 * @param map
-	 * @param contentTypeId
-	 * @param element
-	 */
-	private static void addElementForContentType(HashMap map, String contentTypeId, IConfigurationElement element) {
-
-		Object o = map.get(contentTypeId);
-		if (o == null) {
-			HashMap element2provider = new HashMap();
-			// don't create the executable extension yet
-			element2provider.put(element, null);
-			map.put(contentTypeId, element2provider);
-
-			if (DEBUG)
-				System.out.println("added " + element.getAttribute(ATT_CLASS) + ", but didn't create exec extension"); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			// add element to unknown list (not executable ext yet...)
-			HashMap element2provider = (HashMap) o;
-			element2provider.put(element, null);
-
-			if (DEBUG)
-				System.out.println("added " + element.getAttribute(ATT_CLASS) + " to unknown list, but didn't create exec extension"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * the map passed in: [contentTypeId -> element2providerMap] | V [element ->
-	 * provider]
-	 * 
-	 * @param element
-	 * @param map
-	 * @return
-	 */
-	protected static AdapterFactoryProvider readElement(IConfigurationElement element, HashMap map) {
-
-		AdapterFactoryProvider adapterFactoryProvider = null;
-		if (element.getName().equals(TAG_NAME)) {
-			try {
-				IConfigurationElement[] children = element.getChildren();
-				boolean specifiedContentType = false;
-				if (children != null && children.length > 0) {
-					// content types are specified
-					for (int i = 0; i < children.length; i++) {
-						if (children[i].getName().equals(TAG_CONTENT_TYPE)) {
-							// it's possible to have non-contentType childrent
-							specifiedContentType = true;
-							String contentType = children[i].getAttribute(ATT_ID);
-							addElementForContentType(map, contentType, element);
-						}
-					}
-				}
-				if (!specifiedContentType) {
-					// no content type association
-					addElementForContentType(map, UNKNOWN_CONTENT_TYPE, element);
-				}
-			} catch (Exception e) {
-				// if the provider throws any exception, just log and continue
-				Logger.logException(e);
-			}
-		}
-		return adapterFactoryProvider;
-	}
-
-	/**
-	 * We simply require an 'add' method, of what ever it is we are to read
-	 * into
-	 */
-	static void readRegistry(HashMap map) {
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint point = registry.getExtensionPoint(PLUGIN_ID, EXTENSION_POINT_ID);
-		if (point != null) {
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++) {
-				readElement(elements[i], map);
-			}
-		}
-	}
-
-	protected IConfigurationElement configElement = null;
-
-	//    protected final static String ADAPTER_CLASS = "adapterClass";
-	// //$NON-NLS-1$
-	//    protected final static String DOC_TYPE_ID = "docTypeId"; //$NON-NLS-1$
-	//    protected final static String MIME_TYPE_LIST = "mimeTypeList";
-	// //$NON-NLS-1$
-	//
-	/**
-	 * ContentTypeRegistryReader constructor comment.
-	 */
-	AdapterFactoryRegistryReader() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/AbstractLineStyleProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/AbstractLineStyleProvider.java
deleted file mode 100644
index 9194a57..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/AbstractLineStyleProvider.java
+++ /dev/null
@@ -1,348 +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.wst.sse.ui.internal.provisional.style;
-
-import java.util.Collection;
-import java.util.HashMap;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-
-
-public abstract class AbstractLineStyleProvider {
-	private class PropertyChangeListener implements IPropertyChangeListener {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
-		 */
-		public void propertyChange(PropertyChangeEvent event) {
-			// have to do it this way so others can override the method
-			handlePropertyChange(event);
-		}
-	}
-
-	// protected IStructuredDocumentRegion currentStructuredDocumentRegion;
-	// Note: the var=x.class contructs were put into this method
-	// as a workaround for slow VAJava class lookups. They compiler
-	// assigns them to a variable in the JDK, but Class.forName("x")
-	// in VAJava. It is workaround specific for VAJava environment, so could
-	// be simplified in future.
-	static Class LineStyleProviderClass = LineStyleProvider.class;
-
-	private IStructuredDocument fDocument;
-	private Highlighter fHighlighter;
-	private boolean fInitialized;
-	private PropertyChangeListener fPreferenceListener = new PropertyChangeListener();
-
-	/** Contains all text attributes pretaining to this line style provider */
-	private HashMap fTextAttributes = null;
-
-	// we keep track of LogMessage to avoid writing hundreds of messages,
-	// but still give a hint that something is wrong with attributeProviders
-	// and/or regions.
-	// It's only written in the case of a program error, but there's no use
-	// adding
-	// salt to the wound.
-	// private boolean wroteOneLogMessage;
-	/**
-	 */
-	protected AbstractLineStyleProvider() {
-	}
-
-	/**
-	 * Looks up the colorKey in the preference store and adds the style
-	 * information to list of TextAttributes
-	 * 
-	 * @param colorKey
-	 */
-	protected void addTextAttribute(String colorKey) {
-		if (getColorPreferences() != null) {
-			String prefString = getColorPreferences().getString(colorKey);
-			String[] stylePrefs = ColorHelper.unpackStylePreferences(prefString);
-			if (stylePrefs != null) {
-				RGB foreground = ColorHelper.toRGB(stylePrefs[0]);
-				RGB background = ColorHelper.toRGB(stylePrefs[1]);
-				boolean bold = Boolean.valueOf(stylePrefs[2]).booleanValue();
-				getTextAttributes().put(colorKey, createTextAttribute(foreground, background, bold));
-			}
-		}
-	}
-
-	protected void commonInit(IStructuredDocument document, Highlighter highlighter) {
-
-		fDocument = document;
-		fHighlighter = highlighter;
-	}
-
-	/**
-	 * this version does "trim" regions to match request
-	 */
-	private StyleRange createStyleRange(ITextRegionCollection flatNode, ITextRegion region, TextAttribute attr, int startOffset, int length) {
-		int start = flatNode.getStartOffset(region);
-		if (start < startOffset)
-			start = startOffset;
-		int maxOffset = startOffset + length;
-		int end = flatNode.getEndOffset(region); // use get length directly
-		// instead of end-start?
-		if (end > maxOffset)
-			end = maxOffset;
-		StyleRange result = new StyleRange(start, end - start, attr.getForeground(), attr.getBackground(), attr.getStyle());
-		return result;
-
-	}
-
-	protected TextAttribute createTextAttribute(RGB foreground, RGB background, boolean bold) {
-		return new TextAttribute((foreground != null) ? EditorUtility.getColor(foreground) : null, (background != null) ? EditorUtility.getColor(background) : null, bold ? SWT.BOLD : SWT.NORMAL);
-	}
-
-	abstract protected TextAttribute getAttributeFor(ITextRegion region);
-
-	abstract protected IPreferenceStore getColorPreferences();
-
-	protected IStructuredDocument getDocument() {
-		return fDocument;
-	}
-
-	/**
-	 */
-	protected Highlighter getHighlighter() {
-		return fHighlighter;
-	}
-
-	/**
-	 * Returns the hashtable containing all the text attributes for this line
-	 * style provider. Lazily creates a hashtable if one has not already been
-	 * created.
-	 * 
-	 * @return
-	 */
-	protected HashMap getTextAttributes() {
-		if (fTextAttributes == null) {
-			fTextAttributes = new HashMap();
-			loadColors();
-		}
-		return fTextAttributes;
-	}
-
-	protected void handlePropertyChange(PropertyChangeEvent event) {
-		// force a full update of the text viewer
-		fHighlighter.refreshDisplay();
-	}
-
-	public void init(IStructuredDocument structuredDocument, Highlighter highlighter) {
-
-		commonInit(structuredDocument, highlighter);
-
-		if (isInitialized())
-			return;
-
-		registerPreferenceManager();
-
-		setInitialized(true);
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(java.lang.Object type) {
-		return type == LineStyleProviderClass;
-	}
-
-	/**
-	 * Returns the initialized.
-	 * 
-	 * @return boolean
-	 */
-	public boolean isInitialized() {
-		return fInitialized;
-	}
-	
-	abstract protected void loadColors();
-
-	public boolean prepareRegions(ITypedRegion typedRegion, int lineRequestStart, int lineRequestLength, Collection holdResults) {
-		final int partitionStartOffset = typedRegion.getOffset();
-		final int partitionLength = typedRegion.getLength();
-		IStructuredDocumentRegion structuredDocumentRegion = getDocument().getRegionAtCharacterOffset(partitionStartOffset);
-		boolean handled = false;
-
-		handled = prepareTextRegions(structuredDocumentRegion, partitionStartOffset, partitionLength, holdResults);
-
-		return handled;
-	}
-
-	/**
-	 * @param region
-	 * @param start
-	 * @param length
-	 * @param holdResults
-	 * @return
-	 */
-	private boolean prepareTextRegion(ITextRegionCollection blockedRegion, int partitionStartOffset, int partitionLength, Collection holdResults) {
-		boolean handled = false;
-		final int partitionEndOffset = partitionStartOffset + partitionLength - 1;
-		ITextRegion region = null;
-		ITextRegionList regions = blockedRegion.getRegions();
-		int nRegions = regions.size();
-		StyleRange styleRange = null;
-		for (int i = 0; i < nRegions; i++) {
-			region = regions.get(i);
-			TextAttribute attr = null;
-			TextAttribute previousAttr = null;
-			if (blockedRegion.getStartOffset(region) > partitionEndOffset)
-				break;
-			if (blockedRegion.getEndOffset(region) <= partitionStartOffset)
-				continue;
-
-			if (region instanceof ITextRegionCollection) {
-				handled = prepareTextRegion((ITextRegionCollection) region, partitionStartOffset, partitionLength, holdResults);
-			} else {
-
-				attr = getAttributeFor(region);
-				if (attr != null) {
-					handled = true;
-					// if this region's attr is the same as previous one, then
-					// just adjust the previous style range
-					// instead of creating a new instance of one
-					// note: to use 'equals' in this case is important, since
-					// sometimes
-					// different instances of attributes are associated with a
-					// region, even the
-					// the attribute has the same values.
-					// TODO: this needs to be improved to handle readonly
-					// regions correctly
-					if ((styleRange != null) && (previousAttr != null) && (previousAttr.equals(attr))) {
-						styleRange.length += region.getLength();
-					} else {
-						styleRange = createStyleRange(blockedRegion, region, attr, partitionStartOffset, partitionLength);
-						holdResults.add(styleRange);
-						// technically speaking, we don't need to update
-						// previousAttr
-						// in the other case, because the other case is when
-						// it hasn't changed
-						previousAttr = attr;
-					}
-				} else {
-					previousAttr = null;
-				}
-			}
-		}
-		return handled;
-	}
-
-	private boolean prepareTextRegions(IStructuredDocumentRegion structuredDocumentRegion, int partitionStartOffset, int partitionLength, Collection holdResults) {
-		boolean handled = false;
-		final int partitionEndOffset = partitionStartOffset + partitionLength - 1;
-		while (structuredDocumentRegion != null && structuredDocumentRegion.getStartOffset() <= partitionEndOffset) {
-			ITextRegion region = null;
-			ITextRegionList regions = structuredDocumentRegion.getRegions();
-			int nRegions = regions.size();
-			StyleRange styleRange = null;
-			for (int i = 0; i < nRegions; i++) {
-				region = regions.get(i);
-				TextAttribute attr = null;
-				TextAttribute previousAttr = null;
-				if (structuredDocumentRegion.getStartOffset(region) > partitionEndOffset)
-					break;
-				if (structuredDocumentRegion.getEndOffset(region) <= partitionStartOffset)
-					continue;
-
-				if (region instanceof ITextRegionCollection) {
-					handled = prepareTextRegion((ITextRegionCollection) region, partitionStartOffset, partitionLength, holdResults);
-				} else {
-
-					attr = getAttributeFor(region);
-					if (attr != null) {
-						handled = true;
-						// if this region's attr is the same as previous one,
-						// then just adjust the previous style range
-						// instead of creating a new instance of one
-						// note: to use 'equals' in this case is important,
-						// since sometimes
-						// different instances of attributes are associated
-						// with a region, even the
-						// the attribute has the same values.
-						// TODO: this needs to be improved to handle readonly
-						// regions correctly
-						if ((styleRange != null) && (previousAttr != null) && (previousAttr.equals(attr))) {
-							styleRange.length += region.getLength();
-						} else {
-							styleRange = createStyleRange(structuredDocumentRegion, region, attr, partitionStartOffset, partitionLength);
-							holdResults.add(styleRange);
-							// technically speaking, we don't need to update
-							// previousAttr
-							// in the other case, because the other case is
-							// when it hasn't changed
-							previousAttr = attr;
-						}
-					} else {
-						previousAttr = null;
-					}
-				}
-
-				if (Debug.syntaxHighlighting && !handled) {
-					System.out.println("not handled in prepareRegions"); //$NON-NLS-1$
-				}
-			}
-			structuredDocumentRegion = structuredDocumentRegion.getNext();
-		}
-		return handled;
-	}
-
-	private void registerPreferenceManager() {
-		IPreferenceStore pref = getColorPreferences();
-		if (pref != null) {
-			pref.addPropertyChangeListener(fPreferenceListener);
-		}
-	}
-
-	public void release() {
-		unRegisterPreferenceManager();
-		if (fTextAttributes != null) {
-			fTextAttributes.clear();
-			fTextAttributes = null;
-		}
-	}
-
-	/**
-	 * Sets the initialized.
-	 * 
-	 * @param initialized
-	 *            The initialized to set
-	 */
-	private void setInitialized(boolean initialized) {
-		this.fInitialized = initialized;
-	}
-
-	private void unRegisterPreferenceManager() {
-		IPreferenceStore pref = getColorPreferences();
-		if (pref != null) {
-			pref.removePropertyChangeListener(fPreferenceListener);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/Highlighter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/Highlighter.java
deleted file mode 100644
index a3ee678..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/Highlighter.java
+++ /dev/null
@@ -1,906 +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.wst.sse.ui.internal.provisional.style;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITextViewerExtension5;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.swt.custom.LineStyleEvent;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.preferences.EditorPreferenceNames;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-
-/**
- * This class is to directly mediate between the Structured Document data
- * structure and the text widget's text and events. It assumes there only the
- * model is interested in text events, and all other views will work from that
- * model. Changes to the text widgets input can cause changes in the model,
- * which in turn cause changes to the widget's display.
- * 
- */
-public class Highlighter implements IHighlighter {
-
-	/**
-	 * A utility class to do various color manipulations
-	 */
-	private class YUV_RGBConverter {
-		/**
-		 * This class "holds" the YUV values corresponding to RGB color
-		 */
-		private class YUV {
-
-			class NormalizedRGB {
-				double blue;
-				double green;
-				private final double maxRGB = 256.0;
-				double red;
-
-				public NormalizedRGB(RGB rgb) {
-					// first normalize to between 0 - 1
-					red = rgb.red / maxRGB;
-					green = rgb.green / maxRGB;
-					blue = rgb.blue / maxRGB;
-
-					red = gammaNormalized(red);
-					green = gammaNormalized(green);
-					blue = gammaNormalized(blue);
-
-				}
-			}
-
-			private NormalizedRGB normalizedRGB;
-
-			RGB originalRGB;
-			private double u = -1;
-			private double v = -1;
-			private double y = -1;
-
-			private YUV() {
-				super();
-			}
-
-			public YUV(double y, double u, double v) {
-				this();
-				this.y = y;
-				this.u = u;
-				this.v = v;
-			}
-
-			public YUV(RGB rgb) {
-				this();
-				originalRGB = rgb;
-				normalizedRGB = new NormalizedRGB(rgb);
-				// force calculations
-				getY();
-				getV();
-				getU();
-			}
-
-			/**
-			 * normalize to "average" gamma 2.2222 or 1/0.45
-			 */
-			double gammaNormalized(double colorComponent) {
-				if (colorComponent < 0.018) {
-					return colorComponent * 0.45;
-				}
-				else {
-					return 1.099 * Math.pow(colorComponent, 0.45) - 0.099;
-				}
-			}
-
-			/**
-			 * @return RGB based on original RGB and current YUV values;
-			 */
-			public RGB getRGB() {
-				RGB result = null;
-				double r = getY() + 1.14 * getV();
-				double g = getY() - 0.395 * getU() - 0.58 * getV();
-				double b = getY() + 2.032 * getU();
-
-				int red = (int) (inverseGammaNormalized(r) * 256);
-				int green = (int) (inverseGammaNormalized(g) * 256);
-				int blue = (int) (inverseGammaNormalized(b) * 256);
-				if (red < 0)
-					red = 0;
-				else if (red > 255)
-					red = 255;
-				if (green < 0)
-					green = 0;
-				else if (green > 255)
-					green = 255;
-				if (blue < 0)
-					blue = 0;
-				else if (blue > 255)
-					blue = 255;
-
-				result = new RGB(red, green, blue);
-				return result;
-			}
-
-			public double getU() {
-				if (u == -1) {
-					u = 0.4949 * (normalizedRGB.blue - getY());
-				}
-				return u;
-
-			}
-
-			public double getV() {
-				if (v == -1) {
-					v = 0.877 * (normalizedRGB.red - getY());
-				}
-				return v;
-			}
-
-			public double getY() {
-				if (y == -1) {
-					y = 0.299 * normalizedRGB.red + 0.587 * normalizedRGB.green + 0.114 * normalizedRGB.blue;
-				}
-				return y;
-			}
-
-			double inverseGammaNormalized(double colorComponent) {
-				if (colorComponent < 0.018) {
-					return colorComponent * .222;
-				}
-				else {
-					return Math.pow(((.9099 * colorComponent + 0.09)), 2.22);
-				}
-			}
-
-		}
-
-		public YUV_RGBConverter() {
-			super();
-		}
-
-		public double calculateYComponent(Color targetColor) {
-			return new YUV(targetColor.getRGB()).getY();
-		}
-
-		public RGB transformRGB(RGB originalRGB, double scaleFactor, double target) {
-			RGB transformedRGB = null;
-			// CCIR601 yuv = new CCIR601(originalRGB);
-			YUV yuv = new YUV(originalRGB);
-			double y = yuv.getY();
-			// zero is black, one is white
-			if (y < target) {
-				// is "dark" make lighter
-				y = y + ((target - y) * scaleFactor);
-			}
-			else {
-				// is "light" make darker
-				y = y - ((y - target) * scaleFactor);
-			}
-			// yuv.setY(y);
-			YUV newYUV = new YUV(y, yuv.getU(), yuv.getV());
-			// CCIR601 newYUV = new CCIR601(y, yuv.getCb601(),
-			// yuv.getCr601());
-			transformedRGB = newYUV.getRGB();
-			return transformedRGB;
-		}
-
-		public RGB transformRGBToGrey(RGB originalRGB, double scaleFactor, double target) {
-			RGB transformedRGB = null;
-			// we left the "full" API method signature, but this
-			// version does not take into account originalRGB, though
-			// it might someday.
-			// for now, we'll simply make the new RGB grey, either a little
-			// lighter, or a little darker than background.
-			double y = 0;
-			double mid = 0.5;
-			// zero is black, one is white
-			if (target < mid) {
-				// is "dark" make lighter
-				y = target + scaleFactor;
-			}
-			else {
-				// is "light" make darker
-				y = target - scaleFactor;
-			}
-			int c = (int) Math.round(y * 255);
-			// just to gaurd against mis-use, or scale's values greater
-			// than mid point (and possibly rounding error)
-			if (c > 255)
-				c = 255;
-			if (c < 0)
-				c = 0;
-			transformedRGB = new RGB(c, c, c);
-			return transformedRGB;
-		}
-	}
-
-	private final boolean DEBUG = false;
-	private final StyleRange[] EMPTY_STYLE_RANGE = new StyleRange[0];
-	private static final String LINE_STYLE_PROVIDER_EXTENDED_ID = "linestyleprovider"; //$NON-NLS-1$
-	private static final int MAX_NUMBER_STYLES = 500;
-	private static final int LEFT_STYLES_SIZE = 200;
-	private static final int RIGHT_STYLES_SIZE = 200;
-	private static final int MIDDLE_STYLES_SIZE = 1;
-
-	private IPropertyChangeListener fForegroundScaleListener = new IPropertyChangeListener() {
-		public void propertyChange(PropertyChangeEvent event) {
-			if (EditorPreferenceNames.READ_ONLY_FOREGROUND_SCALE.equals(event.getProperty())) {
-				IPreferenceStore editorStore = SSEUIPlugin.getDefault().getPreferenceStore();
-				readOnlyForegroundScaleFactor = editorStore.getInt(EditorPreferenceNames.READ_ONLY_FOREGROUND_SCALE);
-				disposeColorTable();
-				refreshDisplay();
-			}
-		}
-	};
-	private List fHoldStyleResults;
-	private String fPartitioning = IDocumentExtension3.DEFAULT_PARTITIONING;
-
-	private int fSavedLength = -1;
-	private int fSavedOffset = -1;
-	private StyleRange[] fSavedRanges = null;
-
-	private IStructuredDocument fStructuredDocument;
-	private Map fTableOfProviders;
-
-	private Map fExtendedProviders;
-
-	protected final LineStyleProvider NOOP_PROVIDER = new LineStyleProviderForNoOp();
-
-	private double readOnlyBackgroundScaleFactor = 10;
-	private Hashtable readOnlyColorTable;
-	double readOnlyForegroundScaleFactor = 30;
-
-	private YUV_RGBConverter rgbConverter;
-	private ITextViewer textViewer;
-	private StyledText textWidget;
-
-	public Highlighter() {
-		super();
-		
-		// in the 'limitSize' method, we make this strong assumption, so, will check here, 
-		// so if tweaked in future, we'll get a quick reminder. 
-		if (LEFT_STYLES_SIZE + MIDDLE_STYLES_SIZE + RIGHT_STYLES_SIZE > MAX_NUMBER_STYLES) {
-			throw new IllegalStateException("Highligher constants are not defined correctly"); //$NON-NLS-1$
-		}
-	}
-
-	protected void addEmptyRange(int start, int length, Collection holdResults) {
-		StyleRange result = new StyleRange();
-		result.start = start;
-		result.length = length;
-		holdResults.add(result);
-	}
-
-	/**
-	 * Registers a given line style provider for a particular partition type.
-	 * If there is already a line style provider registered for this type, the
-	 * new line style provider is registered instead of the old one.
-	 * 
-	 * @param partitionType
-	 *            the partition type under which to register
-	 * @param the
-	 *            line style provider to register, or <code>null</code> to
-	 *            remove an existing one
-	 */
-	public void addProvider(String partitionType, LineStyleProvider provider) {
-		getTableOfProviders().put(partitionType, provider);
-	}
-
-	/**
-	 * Adjust the style ranges' start and length so that they refer to the
-	 * textviewer widget's range instead of the textviewer's document range.
-	 * 
-	 * @param ranges
-	 * @param adjustment
-	 */
-	protected void adjust(StyleRange[] ranges, int adjustment) {
-		ITextViewer viewer = getTextViewer();
-
-		if (adjustment != 0) {
-			// just use the adjustment value
-			// convert document regions back to widget regions
-			for (int i = 0; i < ranges.length; i++) {
-				// just adjust the range using the given adjustment
-				ranges[i].start += adjustment;
-			}
-		}
-		else if (viewer instanceof ITextViewerExtension5) {
-			// use ITextViewerExtension5
-			ITextViewerExtension5 extension = (ITextViewerExtension5) viewer;
-
-			// convert document regions back to widget regions
-			for (int i = 0; i < ranges.length; i++) {
-				// get document range, taking into account folding
-				// regions in viewer
-				IRegion region = extension.modelRange2WidgetRange(new Region(ranges[i].start, ranges[i].length));
-				if (region != null) {
-					ranges[i].start = region.getOffset();
-					ranges[i].length = region.getLength();
-				} // else what happens if region is not found?!
-			}
-		}
-	}
-
-
-	/**
-	 * @deprecated - Read Only areas have unchanged background colors
-	 */
-	void adjustBackground(StyleRange styleRange) {
-		RGB oldRGB = null;
-		Color oldColor = styleRange.background;
-		if (oldColor == null) {
-			oldColor = getTextWidget().getBackground();
-		}
-		oldRGB = oldColor.getRGB();
-		Color newColor = getCachedColorFor(oldRGB);
-		if (newColor == null) {
-			double target = getRGBConverter().calculateYComponent(oldColor);
-			// if background is "light" make it darker, and vice versa
-			if (target < 0.5)
-				target = 1.0;
-			else
-				target = 0.0;
-			RGB newRGB = getRGBConverter().transformRGB(oldRGB, readOnlyBackgroundScaleFactor / 100.0, target);
-
-			cacheColor(oldRGB, newRGB);
-			newColor = getCachedColorFor(oldRGB);
-		}
-		styleRange.background = newColor;
-	}
-
-	private void adjustForeground(StyleRange styleRange) {
-		RGB oldRGB = null;
-		// Color oldColor = styleRange.foreground;
-		Color oldColor = styleRange.background;
-		if (oldColor == null) {
-			// oldRGB = getTextWidget().getForeground().getRGB();
-			oldColor = getTextWidget().getBackground();
-			oldRGB = oldColor.getRGB();
-		}
-		else {
-			oldRGB = oldColor.getRGB();
-		}
-		Color newColor = getCachedColorFor(oldRGB);
-		if (newColor == null) {
-			// make text "closer to" background lumanence
-			double target = getRGBConverter().calculateYComponent(oldColor);
-			RGB newRGB = getRGBConverter().transformRGBToGrey(oldRGB, readOnlyForegroundScaleFactor / 100.0, target);
-
-			// save conversion, so calculations only need to be done once
-			cacheColor(oldRGB, newRGB);
-			newColor = getCachedColorFor(oldRGB);
-		}
-		styleRange.foreground = newColor;
-	}
-
-	/**
-	 * Cache read-only color.
-	 * 
-	 * @param oldRGB
-	 * @param newColor
-	 */
-	private void cacheColor(RGB oldRGB, RGB newColor) {
-		if (readOnlyColorTable == null) {
-			readOnlyColorTable = new Hashtable();
-		}
-		readOnlyColorTable.put(oldRGB, newColor);
-	}
-
-	/**
-	 * @param result
-	 * @return
-	 */
-	private StyleRange[] convertReadOnlyRegions(StyleRange[] result, int start, int length) {
-		IStructuredDocument structuredDocument = getDocument();
-
-		/**
-		 * (dmw) For client/provider simplicity (and consistent look and feel)
-		 * we'll handle readonly regions in one spot, here in the Highlighter.
-		 * Currently it is a fair assumption that each readonly region will be
-		 * on an ITextRegion boundary, so we combine consecutive styles when
-		 * found to be equivalent. Plus, for now, we'll just adjust
-		 * foreground. Eventually will use a "dimming" algrorithm to adjust
-		 * color's satuation/brightness.
-		 */
-		if (structuredDocument.containsReadOnly(start, length)) {
-			// something is read-only in the line, so go through each style,
-			// and adjust
-			for (int i = 0; i < result.length; i++) {
-				StyleRange styleRange = result[i];
-				if (structuredDocument.containsReadOnly(styleRange.start, styleRange.length)) {
-					adjustForeground(styleRange);
-				}
-			}
-		}
-		return result;
-	}
-
-	/**
-	 * Clear out the readOnlyColorTable
-	 */
-	void disposeColorTable() {
-		if (readOnlyColorTable != null) {
-			readOnlyColorTable.clear();
-		}
-		readOnlyColorTable = null;
-	}
-
-	/**
-	 * This method is just to get existing read-only colors.
-	 */
-	private Color getCachedColorFor(RGB oldRGB) {
-		Color result = null;
-
-		if (readOnlyColorTable != null) {
-			RGB readOnlyRGB = (RGB) readOnlyColorTable.get(oldRGB);
-			result = EditorUtility.getColor(readOnlyRGB);
-		}
-
-		return result;
-	}
-
-	protected IStructuredDocument getDocument() {
-		return fStructuredDocument;
-	}
-
-	/**
-	 * Adjust the given widget offset and length so that they are the
-	 * textviewer document's offset and length, taking into account what is
-	 * actually visible in the document.
-	 * 
-	 * @param offset
-	 * @param length
-	 * @return a region containing the offset and length within the
-	 *         textviewer's document or null if the offset is not within the
-	 *         document
-	 */
-	private IRegion getDocumentRangeFromWidgetRange(int offset, int length) {
-		IRegion styleRegion = null;
-		ITextViewer viewer = getTextViewer();
-		if (viewer instanceof ITextViewerExtension5) {
-			// get document range, taking into account folding regions in
-			// viewer
-			ITextViewerExtension5 extension = (ITextViewerExtension5) viewer;
-			styleRegion = extension.widgetRange2ModelRange(new Region(offset, length));
-		}
-		else {
-			// get document range, taking into account viewer visible region
-			// get visible region in viewer
-			IRegion vr = null;
-			if (viewer != null)
-				vr = viewer.getVisibleRegion();
-			else
-				vr = new Region(0, getDocument().getLength());
-
-			// if offset is not within visible region, then we don't really
-			// care
-			if (offset <= vr.getLength()) {
-				// Adjust the offset to be within visible region
-				styleRegion = new Region(offset + vr.getOffset(), length);
-			}
-		}
-		return styleRegion;
-	}
-
-
-	private Map getExtendedProviders() {
-		if (fExtendedProviders == null) {
-			fExtendedProviders = new HashMap(3);
-		}
-		return fExtendedProviders;
-	}
-
-	/**
-	 * Method getProviderFor.
-	 * 
-	 * @param typedRegion
-	 * @return LineStyleProvider
-	 */
-	private LineStyleProvider getProviderFor(ITypedRegion typedRegion) {
-		String type = typedRegion.getType();
-		LineStyleProvider result = (LineStyleProvider) fTableOfProviders.get(type);
-		if (result == null) {
-			// NOT YET FINALIZED - DO NOT CONSIDER AS API
-			synchronized (getExtendedProviders()) {
-				if (!getExtendedProviders().containsKey(type)) {
-					LineStyleProvider provider = (LineStyleProvider) ExtendedConfigurationBuilder.getInstance().getConfiguration(LINE_STYLE_PROVIDER_EXTENDED_ID, type);
-					getExtendedProviders().put(type, provider);
-					if (provider != null) {
-						provider.init(getDocument(), this);
-					}
-					result = provider;
-				}
-				else {
-					result = (LineStyleProvider) getExtendedProviders().get(type);
-				}
-			}
-		}
-		if (result == null) {
-			result = NOOP_PROVIDER;
-		}
-		return result;
-	}
-
-	private YUV_RGBConverter getRGBConverter() {
-		if (rgbConverter == null) {
-			rgbConverter = new YUV_RGBConverter();
-		}
-		return rgbConverter;
-	}
-
-	private Map getTableOfProviders() {
-		if (fTableOfProviders == null) {
-			fTableOfProviders = new HashMap();
-		}
-		return fTableOfProviders;
-	}
-
-	/**
-	 * Returns the textViewer.
-	 * 
-	 * @return ITextViewer
-	 */
-	public ITextViewer getTextViewer() {
-		return textViewer;
-	}
-
-	/**
-	 * @return
-	 */
-	protected StyledText getTextWidget() {
-		return textWidget;
-	}
-
-	/**
-	 * Installs highlighter support on the given text viewer.
-	 * 
-	 * @param textViewer
-	 *            the text viewer on which content assist will work
-	 */
-	public void install(ITextViewer newTextViewer) {
-		this.textViewer = newTextViewer;
-
-		IPreferenceStore editorStore = SSEUIPlugin.getDefault().getPreferenceStore();
-		editorStore.addPropertyChangeListener(fForegroundScaleListener);
-		readOnlyForegroundScaleFactor = editorStore.getInt(EditorPreferenceNames.READ_ONLY_FOREGROUND_SCALE);
-
-		if (textWidget != null) {
-			textWidget.removeLineStyleListener(this);
-		}
-		textWidget = newTextViewer.getTextWidget();
-		if (textWidget != null) {
-			textWidget.addLineStyleListener(this);
-		}
-
-		refreshDisplay();
-	}
-
-	public StyleRange[] lineGetStyle(int eventLineOffset, int eventLineLength) {
-		StyleRange[] eventStyles = EMPTY_STYLE_RANGE;
-		try {
-			if (getDocument() == null || eventLineLength == 0) {
-				// getDocument() == null
-				// during initialization, this is sometimes called before our
-				// structured
-				// is set, in which case we set styles to be the empty style
-				// range
-				// (event.styles can not be null)
-
-				// eventLineLength == 0
-				// we sometimes get odd requests from the very last CRLF in
-				// the
-				// document
-				// it has no length, and there is no node for it!
-				eventStyles = EMPTY_STYLE_RANGE;
-			}
-			else {
-				/*
-				 * LineStyleProviders work using absolute document offsets. To
-				 * support visible regions, adjust the requested range up to
-				 * the full document offsets.
-				 */
-				IRegion styleRegion = getDocumentRangeFromWidgetRange(eventLineOffset, eventLineLength);
-				if (styleRegion != null) {
-					int start = styleRegion.getOffset();
-					int length = styleRegion.getLength();
-
-					ITypedRegion[] partitions = TextUtilities.computePartitioning(getDocument(), fPartitioning, start, length, false);
-					eventStyles = prepareStyleRangesArray(partitions, start, length);
-
-					/*
-					 * If there is a subtext offset, the style ranges must be
-					 * adjusted to the expected offsets just check if
-					 * eventLineOffset is different than start then adjust,
-					 * otherwise u can leave it alone unless there is special
-					 * handling for itextviewerextension5?
-					 */
-					if (start != eventLineOffset) {
-						int offset = 0;
-						// figure out visible region to use for adjustment
-						// only adjust if need to
-						if (!(getTextViewer() instanceof ITextViewerExtension5)) {
-							IRegion vr = getTextViewer().getVisibleRegion();
-							if (vr != null) {
-								offset = vr.getOffset();
-							}
-						}
-						adjust(eventStyles, -offset);
-					}
-
-					eventStyles = limitSize(eventStyles);
-					
-					// for debugging only
-					if (DEBUG) {
-						if (!valid(eventStyles, eventLineOffset, eventLineLength)) {
-							Logger.log(Logger.WARNING, "Highlighter::lineGetStyle found invalid styles at offset " + eventLineOffset); //$NON-NLS-1$
-						}
-					}
-				}
-
-			}
-
-		}
-		catch (Exception e) {
-			// if ANY exception occurs during highlighting,
-			// just return "no highlighting"
-			eventStyles = EMPTY_STYLE_RANGE;
-			if (Debug.syntaxHighlighting) {
-				System.out.println("Exception during highlighting!"); //$NON-NLS-1$
-			}
-		}
-
-		return eventStyles;
-	}
-
-	/**
-	 * This method is to centralize the logic in limiting the overall number of style ranges
-	 * that make it to the styled text widget. 
-	 * 
-	 * Too many styles sent to StyledText results in apparent, but not real, 
-	 * hangs of Eclipse Display thread. See  
-	 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=108806
-	 * 
-	 * @param eventStyles
-	 * @return
-	 */
-	 private StyleRange[] limitSize(StyleRange[] eventStyles) {
-		
-		// quick return with same object if not modification needed
-		if (eventStyles.length < MAX_NUMBER_STYLES) {
-			return eventStyles;
-		}
-		else {
-			// we could just take the easy way out and truncate, but will 
-			// be much better appearing if both the start of the line and the 
-			// end of the line are displayed with styles. Since these are both
-			// the parts of the line a user is likely to look at. The middle of the 
-			// line will still be "plain". Presumably, the user would re-format the 
-			// file to avoid long lines, so unlikely to see the middle. 
-			StyleRange[] newRanges = new StyleRange[LEFT_STYLES_SIZE + RIGHT_STYLES_SIZE + MIDDLE_STYLES_SIZE]; 
-			System.arraycopy(eventStyles, 0, newRanges, 0, LEFT_STYLES_SIZE);
-			//
-			// do end, before we do middle
-			System.arraycopy(eventStyles, eventStyles.length-RIGHT_STYLES_SIZE, newRanges, LEFT_STYLES_SIZE + MIDDLE_STYLES_SIZE, RIGHT_STYLES_SIZE);
-			//
-			// technically, we should compute the exact middle as one big style range, 
-			// with default colors and styles, so if someone does actually type or work with 
-			// documnet as is, will still be correct. 
-			//
-			StyleRange allBlank = new StyleRange();
-			StyleRange lastKnown = newRanges[LEFT_STYLES_SIZE - 1];
-			allBlank.start = lastKnown.start + lastKnown.length;
-			StyleRange nextKnown = newRanges[LEFT_STYLES_SIZE + MIDDLE_STYLES_SIZE + 1];
-			allBlank.length = nextKnown.start - allBlank.start;
-			newRanges[LEFT_STYLES_SIZE] = allBlank;
-			return newRanges;
-		}
-	}
-
-	/**
-	 * A passthrough method that extracts relevant data from the
-	 * LineStyleEvent and passes it along. This method was separated for
-	 * performance testing purposes.
-	 * 
-	 * @see org.eclipse.swt.custom.LineStyleListener#lineGetStyle(LineStyleEvent)
-	 */
-	public void lineGetStyle(LineStyleEvent event) {
-		int offset = event.lineOffset;
-		int length = event.lineText.length();
-
-		/*
-		 * For some reason, we are sometimes asked for the same style range
-		 * over and over again. This was found to happen during 'revert' of a
-		 * file with one line in it that is 40K long! So, while we don't know
-		 * root cause, caching the styled ranges in case the exact same
-		 * request is made multiple times seems like cheap insurance.
-		 */
-		if (offset == fSavedOffset && length == fSavedLength && fSavedRanges != null) {
-			event.styles = fSavedRanges;
-		}
-		else {
-			// need to assign this array here, or else the field won't get
-			// updated
-			event.styles = lineGetStyle(offset, length);
-			// now saved "cached data" for repeated requests which are exaclty
-			// same
-			fSavedOffset = offset;
-			fSavedLength = length;
-			fSavedRanges = event.styles;
-		}
-	}
-
-	/**
-	 * Note: its very important this method never return null, which is why
-	 * the final null check is in a finally clause
-	 */
-
-	protected StyleRange[] prepareStyleRangesArray(ITypedRegion[] partitions, int start, int length) {
-
-		StyleRange[] result = EMPTY_STYLE_RANGE;
-
-		if (fHoldStyleResults == null) {
-			fHoldStyleResults = new ArrayList(partitions.length);
-		}
-		else {
-			fHoldStyleResults.clear();
-		}
-
-		// TODO: make some of these instance variables to prevent creation on
-		// stack
-		LineStyleProvider currentLineStyleProvider = null;
-		boolean handled = false;
-		for (int i = 0; i < partitions.length; i++) {
-			ITypedRegion currentPartition = partitions[i];
-			currentLineStyleProvider = getProviderFor(currentPartition);
-			currentLineStyleProvider.init(getDocument(), this);
-			handled = currentLineStyleProvider.prepareRegions(currentPartition, currentPartition.getOffset(), currentPartition.getLength(), fHoldStyleResults);
-			if (Debug.syntaxHighlighting && !handled) {
-				System.out.println("Did not handle highlighting in Highlighter inner while"); //$NON-NLS-1$
-			}
-		}
-
-		int resultSize = fHoldStyleResults.size();
-		if (resultSize > 0) {
-			result = (StyleRange[]) fHoldStyleResults.toArray(new StyleRange[fHoldStyleResults.size()]);
-		}
-		else {
-			result = EMPTY_STYLE_RANGE;
-		}
-		result = convertReadOnlyRegions(result, start, length);
-		return result;
-	}
-
-	public void refreshDisplay() {
-		if (textWidget != null && !textWidget.isDisposed())
-			textWidget.redraw();
-	}
-
-	/**
-	 */
-	public void refreshDisplay(int start, int length) {
-		if (textWidget != null && !textWidget.isDisposed())
-			textWidget.redrawRange(start, length, true);
-	}
-
-	public void removeProvider(String partitionType) {
-		getTableOfProviders().remove(partitionType);
-	}
-
-	public void setDocument(IStructuredDocument structuredDocument) {
-		fStructuredDocument = structuredDocument;
-	}
-
-	public void setDocumentPartitioning(String partitioning) {
-		if (partitioning != null) {
-			fPartitioning = partitioning;
-		}
-		else {
-			fPartitioning = IDocumentExtension3.DEFAULT_PARTITIONING;
-		}
-	}
-
-	/**
-	 * Uninstalls highlighter support from the text viewer it has previously
-	 * be installed on.
-	 */
-	public void uninstall() {
-		if (textWidget != null && !textWidget.isDisposed()) {
-			textWidget.removeLineStyleListener(this);
-		}
-		textWidget = null;
-
-		Collection providers = getTableOfProviders().values();
-		Iterator iterator = providers.iterator();
-		while (iterator.hasNext()) {
-			LineStyleProvider lineStyleProvider = (LineStyleProvider) iterator.next();
-			lineStyleProvider.release();
-			// this remove probably isn't strictly needed, since
-			// typically highlighter instance as a whole will go
-			// away ... but in case that ever changes, this seems like
-			// a better style.
-			iterator.remove();
-		}
-
-		synchronized (getExtendedProviders()) {
-			providers = new ArrayList(getExtendedProviders().values());
-			getExtendedProviders().clear();
-		}
-		iterator = providers.iterator();
-		while (iterator.hasNext()) {
-			LineStyleProvider lineStyleProvider = (LineStyleProvider) iterator.next();
-			if (lineStyleProvider != null) {
-				lineStyleProvider.release();
-				iterator.remove();
-			}
-		}
-
-		IPreferenceStore editorStore = SSEUIPlugin.getDefault().getPreferenceStore();
-		editorStore.removePropertyChangeListener(fForegroundScaleListener);
-		disposeColorTable();
-
-		// clear out cached variables (d282894)
-		fSavedOffset = -1;
-		fSavedLength = -1;
-		fSavedRanges = null;
-	}
-
-	/**
-	 * Purely a debugging aide.
-	 */
-	private boolean valid(StyleRange[] eventStyles, int startOffset, int lineLength) {
-		boolean result = false;
-		if (eventStyles != null) {
-			if (eventStyles.length > 0) {
-				StyleRange first = eventStyles[0];
-				StyleRange last = eventStyles[eventStyles.length - 1];
-				if (startOffset > first.start) {
-					result = false;
-				}
-				else {
-					int lineEndOffset = startOffset + lineLength;
-					int lastOffset = last.start + last.length;
-					if (lastOffset > lineEndOffset) {
-						result = false;
-					}
-					else {
-						result = true;
-					}
-				}
-			}
-			else {
-				// a zero length array is ok
-				result = true;
-			}
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/IHighlighter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/IHighlighter.java
deleted file mode 100644
index 112ff1d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/IHighlighter.java
+++ /dev/null
@@ -1,34 +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.wst.sse.ui.internal.provisional.style;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.swt.custom.LineStyleListener;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-
-/**
- * @author davidw
- * 
- */
-public interface IHighlighter extends LineStyleListener {
-	void addProvider(String partitionType, LineStyleProvider provider);
-
-	void install(ITextViewer viewer);
-
-	void removeProvider(String partitionType);
-
-	void setDocument(IStructuredDocument structuredDocument);
-	
-	void uninstall();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/LineStyleProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/LineStyleProvider.java
deleted file mode 100644
index 0e0cf46..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/LineStyleProvider.java
+++ /dev/null
@@ -1,52 +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.wst.sse.ui.internal.provisional.style;
-
-import java.util.Collection;
-
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-
-public interface LineStyleProvider {
-
-	/**
-	 * Initializes this provider for the given Highlighter and document. This
-	 * method will be called at least once before prepareRegions is called.
-	 * 
-	 * @param document
-	 * @param highlighter
-	 */
-	void init(IStructuredDocument document, Highlighter highlighter);
-
-	/**
-	 * Optionally appends StyleRanges to the styleRanges Collection, in order,
-	 * and only covering the given range within the document.
-	 * 
-	 * @param currentRegion -
-	 *            the current document partition
-	 * @param start
-	 * @param length
-	 * @param styleRanges
-	 * @return whether this LineStyleProvider handled the request; handling
-	 *         includes not adding StyleRanges if that is still the correct
-	 *         behavior
-	 */
-	boolean prepareRegions(ITypedRegion currentRegion, int start, int length, Collection styleRanges);
-
-	/**
-	 * Instructs this provider to free up any "resources" it might be holding
-	 * on to (such as listening for preference changes). It is only called
-	 * once in the lifetime of this provider.
-	 */
-	void release();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/LineStyleProviderForNoOp.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/LineStyleProviderForNoOp.java
deleted file mode 100644
index b9c51d7..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/style/LineStyleProviderForNoOp.java
+++ /dev/null
@@ -1,48 +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.wst.sse.ui.internal.provisional.style;
-
-
-
-import java.util.Collection;
-
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-
-/**
- * This class can be used by default, if no attribute provider is found for a
- * certain region type. Its probably an error in a factory somewhere if an
- * adapter is not found, but this class allows the logic to proceed basically
- * simply providing default colored syntax highlighting.
- * 
- * Not to be subclassed.
- */
-final public class LineStyleProviderForNoOp implements LineStyleProvider {
-
-	public void init(IStructuredDocument document, Highlighter highlighter) {
-		// nothing to do
-	}
-	
-	/**
-	 * @see org.eclipse.wst.sse.ui.internal.provisional.style.AbstractLineStyleProvider#prepareRegions(org.eclipse.jface.text.ITypedRegion,
-	 *      int, int, java.util.Collection)
-	 */
-	public boolean prepareRegions(ITypedRegion currentRegion, int start, int length, Collection holdResults) {
-		// add nothing, but say handled.
-		return true;
-	}
-
-	public void release() {
-		// nothing to do
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/AbstractStructuredTextReconcilingStrategy.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/AbstractStructuredTextReconcilingStrategy.java
deleted file mode 100644
index 7ae04ff..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/AbstractStructuredTextReconcilingStrategy.java
+++ /dev/null
@@ -1,527 +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.wst.sse.ui.internal.reconcile;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconcileResult;
-import org.eclipse.jface.text.reconciler.IReconcileStep;
-import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
-import org.eclipse.jface.text.reconciler.IReconcilingStrategyExtension;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationModelExtension;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.ITemporaryAnnotation;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.StructuredMarkerAnnotation;
-
-
-/**
- * A base ReconcilingStrategy. Subclasses must implement
- * createReconcileSteps(). This class should not know about
- * IStructuredDocument, only IDocument.
- * 
- * @author pavery
- */
-public abstract class AbstractStructuredTextReconcilingStrategy implements IReconcilingStrategy, IReconcilingStrategyExtension, IReleasable {
-
-	/** debug flag */
-	protected static final boolean DEBUG;
-	static {
-		String value = Platform.getDebugOption("org.eclipse.wst.sse.ui/debug/reconcilerjob"); //$NON-NLS-1$
-		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
-	// these limits are safetys for "runaway" validation cases
-	// should be used to safeguard potentially dangerous loops or potentially
-	// long annotations
-	// (since the painter seems to affect performance when painting long
-	// annotations)
-	public static final int ANNOTATION_LENGTH_LIMIT = 25;
-	public static final int ELEMENT_ERROR_LIMIT = 25;
-
-	private IDocument fDocument = null;
-	// private IReconcileStep fFirstStep = null;
-	private IProgressMonitor fProgressMonitor = null;
-	private ISourceViewer fSourceViewer = null;
-//	private Comparator fComparator;
-
-	// list of "validator" annotations
-	// for gray/un-gray capability
-	private HashSet fMarkerAnnotations = null;
-
-	/**
-	 * Creates a new strategy. The editor parameter is for access to the
-	 * annotation model.
-	 * 
-	 * @param editor
-	 */
-	public AbstractStructuredTextReconcilingStrategy(ISourceViewer sourceViewer) {
-		fSourceViewer = sourceViewer;
-		init();
-	}
-
-	/**
-	 * This is where we add results to the annotationModel, doing any special
-	 * "extra" processing.
-	 */
-	protected void addResultToAnnotationModel(IReconcileResult result) {
-		if (!(result instanceof TemporaryAnnotation))
-			return;
-		// can be null when closing the editor
-		if (getAnnotationModel() != null) {
-			TemporaryAnnotation tempAnnotation = (TemporaryAnnotation) result;
-
-			StructuredMarkerAnnotation sma = getCorrespondingMarkerAnnotation(tempAnnotation);
-			if (sma != null) {
-				// un-gray out the marker annotation
-				sma.setGrayed(false);
-			}
-
-			getAnnotationModel().addAnnotation(tempAnnotation, tempAnnotation.getPosition());
-		}
-	}
-
-	/**
-	 * @param object
-	 * @return if this strategy is responisble for adding this type of key
-	 */
-	protected boolean canHandlePartition(String partition) {
-		// String[] haystack = getPartitionTypes();
-		// for (int i = 0; i < haystack.length; i++) {
-		// if (haystack[i].equals(partition))
-		// return true;
-		// }
-		// return false;
-		return false;
-	}
-
-	// /**
-	// * @param step
-	// * @return
-	// */
-	// protected boolean containsStep(IReconcileStep step) {
-	// if (fFirstStep instanceof StructuredReconcileStep)
-	// return ((StructuredReconcileStep) fFirstStep).isSiblingStep(step);
-	// return false;
-	// }
-
-	/**
-	 * This is where you should create the steps for this strategy
-	 */
-	abstract public void createReconcileSteps();
-
-	/**
-	 * Remove ALL temporary annotations that this strategy can handle.
-	 */
-	protected TemporaryAnnotation[] getAllAnnotationsToRemove() {
-		List removals = new ArrayList();
-		IAnnotationModel annotationModel = getAnnotationModel();
-		if (annotationModel != null) {
-			Iterator i = annotationModel.getAnnotationIterator();
-			while (i.hasNext()) {
-				Object obj = i.next();
-				if (!(obj instanceof ITemporaryAnnotation))
-					continue;
-
-				ITemporaryAnnotation annotation = (ITemporaryAnnotation) obj;
-				ReconcileAnnotationKey key = (ReconcileAnnotationKey) annotation.getKey();
-				// then if this strategy knows how to add/remove this
-				// partition type
-				if (canHandlePartition(key.getPartitionType()) /*
-																 * &&
-																 * containsStep(key.getStep())
-																 */)
-					removals.add(annotation);
-			}
-		}
-		return (TemporaryAnnotation[]) removals.toArray(new TemporaryAnnotation[removals.size()]);
-	}
-
-	protected IAnnotationModel getAnnotationModel() {
-		IAnnotationModel model = null;
-		if (fSourceViewer != null) {
-			model = fSourceViewer.getAnnotationModel();
-		}
-		return model;
-	}
-
-	protected TemporaryAnnotation[] getAnnotationsToRemove(DirtyRegion dr, List stepsRun) {
-
-		List remove = new ArrayList();
-		IAnnotationModel annotationModel = getAnnotationModel();
-		// can be null when closing the editor
-		if (getAnnotationModel() != null) {
-
-			// clear validator annotations
-			getMarkerAnnotations().clear();
-
-			Iterator i = annotationModel.getAnnotationIterator();
-			while (i.hasNext()) {
-
-				Object obj = i.next();
-
-				// check if it's a validator marker annotation
-				// if it is save it for comparision later (to "gray" icons)
-				if (obj instanceof StructuredMarkerAnnotation) {
-					StructuredMarkerAnnotation sma = (StructuredMarkerAnnotation) obj;
-
-					if (sma.getAnnotationType() == TemporaryAnnotation.ANNOT_ERROR || sma.getAnnotationType() == TemporaryAnnotation.ANNOT_WARNING)
-						fMarkerAnnotations.add(sma);
-				}
-
-				if (!(obj instanceof TemporaryAnnotation))
-					continue;
-
-				TemporaryAnnotation annotation = (TemporaryAnnotation) obj;
-				ReconcileAnnotationKey key = (ReconcileAnnotationKey) annotation.getKey();
-
-				// then if this strategy knows how to add/remove this
-				// partition type
-				if (canHandlePartition(key.getPartitionType()) && stepsRun.contains(key.getStep())) {
-					if (key.getScope() == ReconcileAnnotationKey.PARTIAL && annotation.getPosition().overlapsWith(dr.getOffset(), dr.getLength())) {
-						remove.add(annotation);
-					}
-					else if (key.getScope() == ReconcileAnnotationKey.TOTAL) {
-						remove.add(annotation);
-					}
-				}
-			}
-		}
-		return (TemporaryAnnotation[]) remove.toArray(new TemporaryAnnotation[remove.size()]);
-	}
-
-
-	protected abstract boolean containsStep(IReconcileStep step);
-
-	/**
-	 * Gets partition types from all steps in this strategy.
-	 * 
-	 * @return parition types from all steps
-	 */
-	// public String[] getPartitionTypes() {
-	// if (fFirstStep instanceof StructuredReconcileStep)
-	// return ((StructuredReconcileStep) fFirstStep).getPartitionTypes();
-	// return new String[0];
-	// }
-	public void init() {
-		createReconcileSteps();
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.reconciler.IReconcilingStrategyExtension#initialReconcile()
-	 */
-	public void initialReconcile() {
-		// do nothing
-	}
-
-	/**
-	 * @return
-	 */
-	protected boolean isCanceled() {
-		if (DEBUG && (fProgressMonitor != null && fProgressMonitor.isCanceled()))
-			System.out.println("** STRATEGY CANCELED **:" + this.getClass().getName()); //$NON-NLS-1$
-		return fProgressMonitor != null && fProgressMonitor.isCanceled();
-	}
-
-	/**
-	 * Process the results from the reconcile steps in this strategy.
-	 * 
-	 * @param results
-	 */
-	private void process(final IReconcileResult[] results) {
-		if (DEBUG)
-			System.out.println("[trace reconciler] > STARTING PROCESS METHOD with (" + results.length + ") results"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		if (results == null)
-			return;
-
-		for (int i = 0; i < results.length && i < ELEMENT_ERROR_LIMIT && !isCanceled(); i++) {
-
-			if (isCanceled()) {
-				if (DEBUG)
-					System.out.println("[trace reconciler] >** PROCESS (adding) WAS CANCELLED **"); //$NON-NLS-1$
-				return;
-			}
-			addResultToAnnotationModel(results[i]);
-		}
-
-		if (DEBUG) {
-			StringBuffer traceString = new StringBuffer();
-			for (int j = 0; j < results.length; j++)
-				traceString.append("\n (+) :" + results[j] + ":\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println("[trace reconciler] > PROCESSING (" + results.length + ") results in AbstractStructuredTextReconcilingStrategy " + traceString); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.reconciler.IReconcilingStrategy#reconcile(org.eclipse.jface.text.reconciler.DirtyRegion,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public void reconcile(DirtyRegion dirtyRegion, IRegion subRegion) {
-		// not used
-		// we only have validator strategy now
-
-		// // external files may be null
-		// if (isCanceled() || fFirstStep == null)
-		// return;
-		//
-		// TemporaryAnnotation[] annotationsToRemove = new
-		// TemporaryAnnotation[0];
-		// IReconcileResult[] annotationsToAdd = new IReconcileResult[0];
-		// StructuredReconcileStep structuredStep = (StructuredReconcileStep)
-		// fFirstStep;
-		//        
-		// annotationsToRemove = getAnnotationsToRemove(dirtyRegion);
-		// annotationsToAdd = structuredStep.reconcile(dirtyRegion,
-		// subRegion);
-		//        
-		// smartProcess(annotationsToRemove, annotationsToAdd);
-	}
-
-	/**
-	 * @param partition
-	 * @see org.eclipse.jface.text.reconciler.IReconcilingStrategy#reconcile(org.eclipse.jface.text.IRegion)
-	 */
-	public void reconcile(IRegion partition) {
-		// not used, we use:
-		// reconcile(DirtyRegion dirtyRegion, IRegion subRegion)
-	}
-
-	/**
-	 * Calls release() on all the steps in this strategy. Currently done in
-	 * StructuredRegionProcessor.SourceWidgetDisposeListener#widgetDisposed(...)
-	 */
-	public void release() {
-		// release steps (each step calls release on the next)
-		// if (fFirstStep != null && fFirstStep instanceof IReleasable)
-		// ((IReleasable) fFirstStep).release();
-		// we don't to null out the steps, in case
-		// it's reconfigured later
-	}
-
-	private void removeAnnotations(TemporaryAnnotation[] annotationsToRemove) {
-
-		IAnnotationModel annotationModel = getAnnotationModel();
-		// can be null when closing the editor
-		if (annotationModel != null) {
-			for (int i = 0; i < annotationsToRemove.length; i++) {
-				if (isCanceled()) {
-					if (DEBUG)
-						System.out.println("[trace reconciler] >** REMOVAL WAS CANCELLED **"); //$NON-NLS-1$
-					return;
-				}
-				StructuredMarkerAnnotation sma = getCorrespondingMarkerAnnotation(annotationsToRemove[i]);
-				if (sma != null) {
-					// gray out the marker annotation
-					sma.setGrayed(true);
-				}
-				// remove the temp one
-				annotationModel.removeAnnotation(annotationsToRemove[i]);
-
-			}
-		}
-
-		if (DEBUG) {
-			StringBuffer traceString = new StringBuffer();
-			for (int i = 0; i < annotationsToRemove.length; i++)
-				traceString.append("\n (-) :" + annotationsToRemove[i] + ":\n"); //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println("[trace reconciler] > REMOVED (" + annotationsToRemove.length + ") annotations in AbstractStructuredTextReconcilingStrategy :" + traceString); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	private StructuredMarkerAnnotation getCorrespondingMarkerAnnotation(TemporaryAnnotation tempAnnotation) {
-
-		Iterator it = getMarkerAnnotations().iterator();
-		while (it.hasNext()) {
-			StructuredMarkerAnnotation markerAnnotation = (StructuredMarkerAnnotation) it.next();
-			String message = ""; //$NON-NLS-1$
-			try {
-				message = (String) markerAnnotation.getMarker().getAttribute(IMarker.MESSAGE);
-			}
-			catch (CoreException e) {
-				if (DEBUG)
-					Logger.logException(e);
-			}
-			// it would be nice to check line number here...
-			if (message != null && message.equals(tempAnnotation.getText()))
-				return markerAnnotation;
-		}
-		return null;
-	}
-
-	private void removeAllAnnotations() {
-		removeAnnotations(getAllAnnotationsToRemove());
-	}
-
-	/**
-	 * Set the document for this strategy.
-	 * 
-	 * @param document
-	 * @see org.eclipse.jface.text.reconciler.IReconcilingStrategy#setDocument(org.eclipse.jface.text.IDocument)
-	 */
-	public void setDocument(IDocument document) {
-
-		// remove all old annotations since it's a new document
-		removeAllAnnotations();
-
-		if (document == null)
-			release();
-
-		// if (getFirstStep() != null)
-		// getFirstStep().setInputModel(new DocumentAdapter(document));
-
-		fDocument = document;
-	}
-
-	public IDocument getDocument() {
-		return fDocument;
-	}
-
-	/**
-	 * @param monitor
-	 * @see org.eclipse.jface.text.reconciler.IReconcilingStrategyExtension#setProgressMonitor(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void setProgressMonitor(IProgressMonitor monitor) {
-		// fProgressMonitor = monitor;
-		// if (fFirstStep != null)
-		// fFirstStep.setProgressMonitor(fProgressMonitor);
-	}
-
-	/**
-	 * Check if the annotation is already there, if it is, no need to remove
-	 * or add again. This will avoid a lot of "flickering" behavior.
-	 * 
-	 * @param annotationsToRemove
-	 * @param annotationsToAdd
-	 */
-	protected void smartProcess(TemporaryAnnotation[] annotationsToRemove, IReconcileResult[] annotationsToAdd) {
-//		Comparator comp = getTemporaryAnnotationComparator();
-//		List sortedRemovals = Arrays.asList(annotationsToRemove);
-//		Collections.sort(sortedRemovals, comp);
-//
-//		List sortedAdditions = Arrays.asList(annotationsToAdd);
-//		Collections.sort(sortedAdditions, comp);
-//
-//		List filteredRemovals = new ArrayList(sortedRemovals);
-//		List filteredAdditions = new ArrayList(sortedAdditions);
-//
-//		boolean ignore = false;
-//		int lastFoundAdded = 0;
-//		for (int i = 0; i < sortedRemovals.size(); i++) {
-//			TemporaryAnnotation removal = (TemporaryAnnotation) sortedRemovals.get(i);
-//			for (int j = lastFoundAdded; j < sortedAdditions.size(); j++) {
-//				TemporaryAnnotation addition = (TemporaryAnnotation) sortedAdditions.get(j);
-//				// quick position check here
-//				if (removal.getPosition().equals(addition.getPosition())) {
-//					lastFoundAdded = j;
-//					// remove performs TemporaryAnnotation.equals()
-//					// which checks text as well
-//					filteredAdditions.remove(addition);
-//					ignore = true;
-//					if (DEBUG)
-//						System.out.println(" ~ smart process ignoring: " + removal.getPosition().getOffset()); //$NON-NLS-1$
-//					break;
-//				}
-//			}
-//			if (ignore) {
-//				filteredRemovals.remove(removal);
-//			}
-//			ignore = false;
-//		}
-		if (getAnnotationModel() instanceof IAnnotationModelExtension) {
-//			TemporaryAnnotation[] filteredRemovalArray = (TemporaryAnnotation[]) filteredRemovals.toArray(new TemporaryAnnotation[filteredRemovals.size()]);
-//			// apply "grey"-ness
-//			for (int i = 0; i < filteredRemovalArray.length; i++) {
-//				if (isCanceled()) {
-//					if (DEBUG)
-//						System.out.println("[trace reconciler] >** replacing WAS CANCELLED **"); //$NON-NLS-1$
-//					return;
-//				}
-//				StructuredMarkerAnnotation sma = getCorrespondingMarkerAnnotation(filteredRemovalArray[i]);
-//				if (sma != null) {
-//					// gray out the marker annotation
-//					sma.setGrayed(true);
-//				}
-//			}
-//			Map annotationsToAddMap = new HashMap();
-//			for (int i = 0; i < filteredAdditions.size(); i++) {
-//				TemporaryAnnotation temporaryAnnotation = (TemporaryAnnotation) filteredAdditions.get(i);
-//				annotationsToAddMap.put(temporaryAnnotation, temporaryAnnotation.getPosition());
-//			}
-//			if (isCanceled()) {
-//				if (DEBUG)
-//					System.out.println("[trace reconciler] >** PROCESS (replacing) WAS CANCELLED **"); //$NON-NLS-1$
-//				return;
-//			}
-//			/*
-//			 * Using the extension means we can't enforce the
-//			 * ELEMENT_ERROR_LIMIT limit.
-//			 */
-//			((IAnnotationModelExtension) getAnnotationModel()).replaceAnnotations(filteredRemovalArray, annotationsToAddMap);
-
-			Map annotationsToAddMap = new HashMap();
-			for (int i = 0; i < annotationsToAdd.length; i++) {
-				TemporaryAnnotation temporaryAnnotation = (TemporaryAnnotation) annotationsToAdd[i];
-				annotationsToAddMap.put(temporaryAnnotation, temporaryAnnotation.getPosition());
-			}
-			if (isCanceled()) {
-				if (DEBUG)
-					System.out.println("[trace reconciler] >** PROCESS (replacing) WAS CANCELLED **"); //$NON-NLS-1$
-				return;
-			}
-			((IAnnotationModelExtension) getAnnotationModel()).replaceAnnotations(annotationsToRemove, annotationsToAddMap);
-		}
-		else {
-//			removeAnnotations((TemporaryAnnotation[]) filteredRemovals.toArray(new TemporaryAnnotation[filteredRemovals.size()]));
-//			process((IReconcileResult[]) filteredAdditions.toArray(new IReconcileResult[filteredAdditions.size()]));
-			removeAnnotations(annotationsToRemove);
-			process(annotationsToAdd);
-		}
-	}
-
-//	private Comparator getTemporaryAnnotationComparator() {
-//		if (fComparator == null) {
-//			fComparator = new Comparator() {
-//				public int compare(Object arg0, Object arg1) {
-//					TemporaryAnnotation ta1 = (TemporaryAnnotation) arg0;
-//					TemporaryAnnotation ta2 = (TemporaryAnnotation) arg1;
-//					int result = ta1.getPosition().getOffset() - ta2.getPosition().getOffset();
-//					if(result != 0)
-//						return result;
-//					return Collator.getInstance().compare(ta1.getText(), ta2.getText());
-//				}
-//			};
-//		}
-//		return fComparator;
-//	}
-
-	public HashSet getMarkerAnnotations() {
-		if (fMarkerAnnotations == null)
-			fMarkerAnnotations = new HashSet();
-		return fMarkerAnnotations;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java
deleted file mode 100644
index 36ecb50..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java
+++ /dev/null
@@ -1,776 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 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.wst.sse.ui.internal.reconcile;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.DocumentRewriteSessionEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IDocumentExtension4;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.IDocumentRewriteSessionListener;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconciler;
-import org.eclipse.jface.text.reconciler.IReconcilerExtension;
-import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-/**
- * This Job holds a queue of updates from the editor (DirtyRegions) to
- * process. When a new request comes in, the current run is canceled, the new
- * request is added to the queue, then the job is re-scheduled.
- * 
- * @author pavery
- */
-public class DirtyRegionProcessor extends Job implements IReconciler, IReconcilerExtension, IConfigurableReconciler {
-	class DocumentListener implements IDocumentListener {
-		public void documentAboutToBeChanged(DocumentEvent event) {
-			/* 
-			 * if in rewrite session and already going to reprocess
-			 * entire document after rewrite session, do nothing
-			 */
-			if (isInRewriteSession() && fReprocessAfterRewrite)
-				return;
-			// save partition type (to see if it changes in documentChanged())
-			fLastPartitions = getPartitionRegions(event.getOffset(), event.getLength());
-		}
-
-		public void documentChanged(DocumentEvent event) {
-			/* 
-			 * if in rewrite session and already going to reprocess
-			 * entire document after rewrite session, do nothing
-			 */
-			if (isInRewriteSession() && fReprocessAfterRewrite)
-				return;
-
-			if (partitionsChanged(event)) {
-				// pa_TODO
-				// this is a simple way to ensure old
-				// annotations are removed when partition changes
-
-				// it might be a performance hit though
-				setEntireDocumentDirty(getDocument());
-			}
-			else {
-				/*
-				 * Note that creating DirtyRegions *now* means that the wrong
-				 * text may be included
-				 */
-				DirtyRegion dr = null;
-				if (event.getLength() == 0) {
-					/*
-					 * It's an insert-- we use text length though so that the
-					 * new region gets validated...
-					 */
-					dr = createDirtyRegion(event.getOffset(), 0, DirtyRegion.INSERT);
-				}
-				else {
-					if ("".equals(event.getText())) { //$NON-NLS-1$
-						// it's a delete
-						dr = createDirtyRegion(event.getOffset(), event.getLength(), DirtyRegion.REMOVE);
-					}
-					else {
-						// it's a replace
-						dr = createDirtyRegion(event.getOffset(), event.getLength(), DirtyRegion.INSERT);
-					}
-				}
-				if (isInRewriteSession()) {
-					/*
-					 * while in rewrite session, found a dirty region, so flag
-					 * that entire document needs to be reprocesed after rewrite
-					 * session
-					 */
-					if (!fReprocessAfterRewrite && (dr != null)) {
-						fReprocessAfterRewrite = true;
-					}
-				} else {
-					processDirtyRegion(dr);
-				}
-			}
-		}
-
-		/**
-		 * Checks previous partitions from the span of the event w/ the new
-		 * partitions from the span of the event. If partitions changed,
-		 * return true, else return false
-		 * 
-		 * @param event
-		 * @return
-		 */
-		private boolean partitionsChanged(DocumentEvent event) {
-			boolean changed = false;
-			int length = event.getLength();
-
-			if (event.getLength() == 0 && event.getText().length() > 0) {
-				// it's an insert, we want partitions of the new text
-				length = event.getText().length();
-			}
-
-			ITypedRegion[] newPartitions = getPartitionRegions(event.getOffset(), length);
-			if (fLastPartitions != null) {
-				if (fLastPartitions.length != newPartitions.length) {
-					changed = true;
-				}
-				else {
-					for (int i = 0; i < fLastPartitions.length; i++) {
-						if (!fLastPartitions[i].getType().equals(newPartitions[i].getType())) {
-							changed = true;
-							break;
-						}
-					}
-				}
-			}
-			return changed;
-		}
-
-
-	}
-
-	/**
-	 * Reconciles the entire document when the document in the viewer is
-	 * changed. This happens when the document is initially opened, as well as
-	 * after a save-as.
-	 * 
-	 * Also see processPostModelEvent(...) for similar behavior when document
-	 * for the model is changed.
-	 */
-	class TextInputListener implements ITextInputListener {
-		public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
-			// do nothing
-		}
-
-		public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
-			handleInputDocumentChanged(oldInput, newInput);
-		}
-	}
-
-	class DocumentRewriteSessionListener implements IDocumentRewriteSessionListener {
-		long time0 = 0;
-		
-		public void documentRewriteSessionChanged(DocumentRewriteSessionEvent event) {
-			boolean oldValue = fInRewriteSession;
-			fInRewriteSession = event != null && event.getChangeType().equals(DocumentRewriteSessionEvent.SESSION_START);
-
-			if (event.getChangeType().equals(DocumentRewriteSessionEvent.SESSION_START)) {
-				if(DEBUG) {
-					time0 = System.currentTimeMillis();
-				}
-				flushDirtyRegionQueue();
-				fReprocessAfterRewrite = false;
-			}
-			else if (event.getChangeType().equals(DocumentRewriteSessionEvent.SESSION_STOP)) {
-				if (fInRewriteSession ^ oldValue && fDocument != null) {
-					if(DEBUG) {
-						Logger.log(Logger.INFO, "Rewrite session lasted " + (System.currentTimeMillis() - time0) + "ms");
-						time0 = System.currentTimeMillis();
-					}
-					if (fReprocessAfterRewrite) {
-						DirtyRegion entireDocument = createDirtyRegion(0, fDocument.getLength(), DirtyRegion.INSERT);
-						processDirtyRegion(entireDocument);
-					}
-					if (DEBUG) {
-						Logger.log(Logger.INFO, "Full document reprocess took " + (System.currentTimeMillis() - time0) + "ms");
-					}
-					fReprocessAfterRewrite = false;
-				}
-			}
-		}
-	}
-
-	/** debug flag */
-	protected static final boolean DEBUG;
-	private static final long UPDATE_DELAY = 750;
-
-	static {
-		String value = Platform.getDebugOption("org.eclipse.wst.sse.ui/debug/reconcilerjob"); //$NON-NLS-1$
-		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
-	private long fDelay;
-
-
-	/** local queue of dirty regions (created here) to be reconciled */
-	private List fDirtyRegionQueue = Collections.synchronizedList(new ArrayList());
-
-	/** document that this reconciler works on */
-	private IDocument fDocument = null;
-
-	private IDocumentListener fDocumentListener = new DocumentListener();
-	private IDocumentRewriteSessionListener fDocumentRewriteSessionListener = new DocumentRewriteSessionListener();
-
-	/**
-	 * set true after first install to prevent duplicate work done in the
-	 * install method (since install gets called multiple times)
-	 */
-	private boolean fIsInstalled = false;
-
-	/**
-	 * so we can tell if a partition changed after the last edit
-	 */
-	ITypedRegion[] fLastPartitions;
-
-	List fNonIncrementalStrategiesAlreadyProcessed = new ArrayList(1);
-
-	/**
-	 * The partitioning this reconciler uses.
-	 */
-	private String fPartitioning;
-
-	Map fReconcilingStrategies = null;
-
-	/** for initial reconcile when document is opened */
-	private TextInputListener fTextInputListener = null;
-	/** the text viewer */
-	private ITextViewer fViewer;
-	boolean fInRewriteSession = false;
-	/**
-	 * true if entire document needs to be reprocessed after
-	 * rewrite session
-	 */
-	boolean fReprocessAfterRewrite = false;
-
-	/**
-	 * Creates a new StructuredRegionProcessor
-	 */
-	public DirtyRegionProcessor() {
-		// init job stuff
-		super(SSEUIMessages.proc_dirty_regions_0); //$NON-NLS-1$
-		setPriority(Job.LONG);
-		setSystem(true);
-
-		// init reconciler stuff
-		setDelay(UPDATE_DELAY);
-		fReconcilingStrategies = new HashMap();
-	}
-
-	/**
-	 * Adds the given resource to the set of resources that need refreshing.
-	 * Synchronized in order to protect the collection during add.
-	 * 
-	 * @param resource
-	 */
-	private synchronized void addRequest(DirtyRegion newDirtyRegion) {
-		// NOTE: This method is called a lot so make sure it's fast
-		List dirtyRegionQueue = getDirtyRegionQueue();
-		for (Iterator it = dirtyRegionQueue.iterator(); it.hasNext();) {
-			// go through list of existing dirty regions and check if any
-			// dirty regions need to be discarded
-			DirtyRegion currentExisting = (DirtyRegion) it.next();
-			DirtyRegion outer = getOuterRegion(currentExisting, newDirtyRegion);
-			// if we already have a request which contains the new request,
-			// discard the new request
-			if (outer == currentExisting)
-				return;
-			// if new request contains any existing requests,
-			// remove those
-			if (outer == newDirtyRegion)
-				it.remove();
-		}
-		dirtyRegionQueue.add(newDirtyRegion);
-	}
-
-	/**
-	 * Notifies subclasses that processing of multiple dirty regions has begun
-	 */
-	protected void beginProcessing() {
-		// do nothing by default
-	}
-
-	/**
-	 * @param dirtyRegion
-	 * @return
-	 */
-	protected ITypedRegion[] computePartitioning(DirtyRegion dirtyRegion) {
-		int drOffset = dirtyRegion.getOffset();
-		int drLength = dirtyRegion.getLength();
-
-		return computePartitioning(drOffset, drLength);
-	}
-
-	protected ITypedRegion[] computePartitioning(int drOffset, int drLength) {
-		IDocument doc = getDocument();
-		int docLength = doc.getLength();
-
-		ITypedRegion[] tr = new ITypedRegion[0];
-
-		if (drOffset > docLength) {
-			drOffset = docLength;
-			drLength = 0;
-		}
-		else if (drOffset + drLength > docLength) {
-			drLength = docLength - drOffset;
-		}
-
-		try {
-			// dirty region may span multiple partitions
-			tr = TextUtilities.computePartitioning(doc, getDocumentPartitioning(), drOffset, drLength, true);
-		}
-		catch (BadLocationException e) {
-			String info = "dr: [" + drOffset + ":" + drLength + "] doc: [" + docLength + "] "; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-			Logger.logException(info, e);
-			tr = new ITypedRegion[0];
-		}
-		return tr;
-	}
-
-	/**
-	 * @deprecated use getOuterRegion() instead
-	 */
-	protected boolean contains(DirtyRegion root, DirtyRegion possible) {
-		// remove method post wtp 1.5.1
-		return isContained(root, possible);
-	}
-
-	/**
-	 * Used to determine if one dirty region contains the other and if so,
-	 * which is the one that contains it.
-	 * 
-	 * @param root
-	 * @param possible
-	 * @return the outer dirty region if it contains the other dirty region,
-	 *         null otherwise
-	 */
-	protected DirtyRegion getOuterRegion(DirtyRegion root, DirtyRegion possible) {
-		DirtyRegion outer = null;
-		if (isContained(root, possible))
-			outer = root;
-		else if (isContained(possible, root))
-			outer = possible;
-		return outer;
-	}
-
-	/**
-	 * Used to determine of a "possible" dirty region can be discarded in
-	 * favor of using just the "root" dirty region.
-	 * 
-	 * @return if the root dirty region contains possible, return true,
-	 *         otherwise return false
-	 */
-	private boolean isContained(DirtyRegion root, DirtyRegion possible) {
-		int rootStart = root.getOffset();
-		int rootEnd = rootStart + root.getLength();
-		int possStart = possible.getOffset();
-		int possEnd = possStart + possible.getLength();
-		if (rootStart <= possStart && rootEnd >= possEnd)
-			return true;
-		return false;
-	}
-
-	protected DirtyRegion createDirtyRegion(int offset, int length, String type) {
-		DirtyRegion durty = null;
-		IDocument doc = getDocument();
-
-		if (doc != null) {
-			// safety for BLE
-			int docLen = doc.getLength();
-			if (offset > docLen) {
-				offset = docLen;
-				length = 0;
-			}
-			else if (offset + length >= docLen)
-				length = docLen - offset;
-			try {
-				durty = new DirtyRegion(offset, length, type, doc.get(offset, length));
-			}
-			catch (BadLocationException e) {
-				String info = "dr: [" + offset + ":" + length + "] doc: [" + docLen + "] "; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				Logger.logException(info, e);
-			}
-		}
-		return durty;
-	}
-
-	protected DirtyRegion createDirtyRegion(ITypedRegion tr, String type) {
-		return createDirtyRegion(tr.getOffset(), tr.getLength(), type);
-	}
-
-	protected void flushDirtyRegionQueue() {
-		fDirtyRegionQueue.clear();
-	}
-
-	/**
-	 * Notifies subclasses that processing of multiple dirty regions has
-	 * ended, for now
-	 */
-	protected void endProcessing() {
-		// do nothing by default
-	}
-
-	/**
-	 * Delay between processing of DirtyRegions.
-	 * 
-	 * @return
-	 */
-	long getDelay() {
-		return fDelay;
-	}
-
-	List getDirtyRegionQueue() {
-		return fDirtyRegionQueue;
-	}
-
-	/**
-	 * The IDocument on which this reconciler operates
-	 * 
-	 * @return
-	 */
-	protected IDocument getDocument() {
-		return fDocument;
-	}
-
-	public String getDocumentPartitioning() {
-		if (fPartitioning == null)
-			return IDocumentExtension3.DEFAULT_PARTITIONING;
-		return fPartitioning;
-	}
-
-	protected String[] getPartitions(int drOffset, int drLength) {
-
-		ITypedRegion[] regions = new ITypedRegion[0];
-		int docLength = getDocument().getLength();
-
-		if (drOffset > docLength) {
-			drOffset = docLength;
-			drLength = 0;
-		}
-		else if (drOffset + drLength > docLength) {
-			drLength = docLength - drOffset;
-		}
-
-		try {
-			regions = TextUtilities.computePartitioning(getDocument(), getDocumentPartitioning(), drOffset, drLength, true);
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-			regions = new ITypedRegion[0];
-		}
-		String[] partitions = new String[regions.length];
-		for (int i = 0; i < regions.length; i++)
-			partitions[i] = regions[i].getType();
-		return partitions;
-	}
-
-	ITypedRegion[] getPartitionRegions(int drOffset, int drLength) {
-
-		ITypedRegion[] regions = new ITypedRegion[0];
-		int docLength = getDocument().getLength();
-
-		if (drOffset > docLength) {
-			drOffset = docLength;
-			drLength = 0;
-		}
-		else if (drOffset + drLength > docLength) {
-			drLength = docLength - drOffset;
-		}
-
-		try {
-			regions = TextUtilities.computePartitioning(getDocument(), getDocumentPartitioning(), drOffset, drLength, true);
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-			regions = new ITypedRegion[0];
-		}
-		return regions;
-	}
-
-	/**
-	 * Returns the reconciling strategy registered with the reconciler for the
-	 * specified partition type.
-	 * 
-	 * @param partitionType
-	 *            the partition type for which to determine the reconciling
-	 *            strategy
-	 * 
-	 * @return the reconciling strategy registered for the given partition
-	 *         type, or <code>null</code> if there is no such strategy
-	 * 
-	 * @see org.eclipse.jface.text.reconciler.IReconciler#getReconcilingStrategy(java.lang.String)
-	 */
-	public IReconcilingStrategy getReconcilingStrategy(String partitionType) {
-		if (partitionType == null)
-			return null;
-		return (IReconcilingStrategy) fReconcilingStrategies.get(partitionType);
-	}
-
-	/**
-	 * This method also synchronized because it accesses the fRequests queue
-	 * 
-	 * @return an array of the currently requested Nodes to refresh
-	 */
-	private synchronized DirtyRegion[] getRequests() {
-		DirtyRegion[] toRefresh = (DirtyRegion[]) fDirtyRegionQueue.toArray(new DirtyRegion[fDirtyRegionQueue.size()]);
-		flushDirtyRegionQueue();
-		return toRefresh;
-	}
-
-	/**
-	 * Returns the text viewer this reconciler is installed on.
-	 * 
-	 * @return the text viewer this reconciler is installed on
-	 */
-	protected ITextViewer getTextViewer() {
-		return fViewer;
-	}
-
-	/**
-	 * 
-	 * @param oldInput
-	 * @param newInput
-	 */
-	void handleInputDocumentChanged(IDocument oldInput, IDocument newInput) {
-		// don't bother if reconciler not installed
-		if (isInstalled()) {
-
-			reconcilerDocumentChanged(newInput);
-			setDocument(newInput);
-			setEntireDocumentDirty(newInput);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.reconciler.IReconciler#install(ITextViewer)
-	 */
-	public void install(ITextViewer textViewer) {
-		// we might be called multiple times with the same viewe.r,
-		// maybe after being uninstalled as well, so track separately
-		if (!isInstalled()) {
-			fViewer = textViewer;
-			fTextInputListener = new TextInputListener();
-			textViewer.addTextInputListener(fTextInputListener);
-			setInstalled(true);
-		}
-	}
-
-	/**
-	 * The viewer has been set on this Reconciler.
-	 * 
-	 * @return true if the viewer has been set on this Reconciler, false
-	 *         otherwise.
-	 */
-	public boolean isInstalled() {
-		return fIsInstalled;
-	}
-
-	boolean isInRewriteSession() {
-		return fInRewriteSession;
-	}
-
-	/**
-	 * Subclasses should implement for specific handling of dirty regions. The
-	 * method is invoked for each dirty region in the Job's queue.
-	 * 
-	 * @param dirtyRegion
-	 */
-	protected void process(DirtyRegion dirtyRegion) {
-		if (isInRewriteSession()) {
-			return;
-		}
-		/*
-		 * Break the dirty region into a sequence of partitions and find the
-		 * corresponding strategy to reconcile those partitions. If a strategy
-		 * implements INonIncrementalReconcilingStrategy, only call it once
-		 * regardless of the number and types of partitions.
-		 */
-		ITypedRegion[] partitions = computePartitioning(dirtyRegion);
-		for (int i = 0; i < partitions.length; i++) {
-			IReconcilingStrategy strategy = getReconcilingStrategy(partitions[i].getType());
-			if (strategy != null) {
-				strategy.reconcile(partitions[i]);
-			}
-		}
-	}
-
-	/**
-	 * Invoke dirty region processing.
-	 * 
-	 * @param node
-	 */
-	public final void processDirtyRegion(DirtyRegion dr) {
-		if (dr == null)
-			return;
-
-		cancel();
-		addRequest(dr);
-		schedule(getDelay());
-
-		if (DEBUG) {
-			System.out.println("added request for: [" + dr.getText() + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println("queue size is now: " + getDirtyRegionQueue().size()); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Reinitializes listeners and sets new document onall strategies.
-	 * 
-	 * @see org.eclipse.jface.text.reconciler.AbstractReconciler#reconcilerDocumentChanged(IDocument)
-	 */
-	void reconcilerDocumentChanged(IDocument newDocument) {
-		IDocument currentDoc = getDocument();
-
-		// unhook old document listener
-		if (currentDoc != null)
-			currentDoc.removeDocumentListener(fDocumentListener);
-		// hook up new document listener
-		if (newDocument != null)
-			newDocument.addDocumentListener(fDocumentListener);
-
-		// sets document on all strategies
-		setDocument(newDocument);
-	}
-
-	protected IStatus run(IProgressMonitor monitor) {
-		IStatus status = Status.OK_STATUS;
-		try {
-			DirtyRegion[] toRefresh = getRequests();
-			
-			beginProcessing();
-
-			for (int i = 0; i < toRefresh.length; i++) {
-				if (monitor.isCanceled())
-					throw new OperationCanceledException();
-				process(toRefresh[i]);
-			}
-		}
-		catch (Exception e) {
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=103676
-			// stop errors from popping up a dialog
-			// from the job manager
-
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=106052
-			// don't log OperationCanceledException
-			if (!(e instanceof OperationCanceledException))
-				Logger.logException("problem with reconciling", e); //$NON-NLS-1$
-		}
-		finally {
-			endProcessing();
-
-			monitor.done();
-		}
-		return status;
-	}
-
-	public void setDelay(long delay) {
-		fDelay = delay;
-	}
-
-	public void setDocument(IDocument doc) {
-		if (fDocument != null && fDocument instanceof IDocumentExtension4) {
-			((IDocumentExtension4) fDocument).removeDocumentRewriteSessionListener(fDocumentRewriteSessionListener);
-		}
-
-		fDocument = doc;
-
-		if (fDocument != null && fDocument instanceof IDocumentExtension4) {
-			((IDocumentExtension4) fDocument).addDocumentRewriteSessionListener(fDocumentRewriteSessionListener);
-		}
-	}
-
-	/**
-	 * Sets the document partitioning for this reconciler.
-	 * 
-	 * @param partitioning
-	 *            the document partitioning for this reconciler
-	 */
-	public void setDocumentPartitioning(String partitioning) {
-		fPartitioning = partitioning;
-	}
-
-	/**
-	 * Basically means process the entire document.
-	 * 
-	 * @param document
-	 */
-	protected void setEntireDocumentDirty(IDocument document) {
-
-		// make the entire document dirty
-		// this also happens on a "save as"
-		if (document != null && isInstalled()) {
-
-			// since we're marking the entire doc dirty
-			flushDirtyRegionQueue();
-
-			/**
-			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=199053
-			 * 
-			 * Process the strategies for the last known-good partitions to
-			 * ensure all problem annotations are cleared if needed.
-			 */
-			if (fLastPartitions != null && document.getLength() == 0) {
-				for (int i = 0; i < fLastPartitions.length; i++) {
-					IReconcilingStrategy strategy = getReconcilingStrategy(fLastPartitions[i].getType());
-					if (strategy != null) {
-						strategy.reconcile(fLastPartitions[i]);
-					}
-				}
-			}
-			else {
-				DirtyRegion entireDocument = createDirtyRegion(0, document.getLength(), DirtyRegion.INSERT);
-				processDirtyRegion(entireDocument);
-			}
-		}
-	}
-
-	/**
-	 * @param isInstalled
-	 *            The isInstalled to set.
-	 */
-	void setInstalled(boolean isInstalled) {
-		fIsInstalled = isInstalled;
-	}
-
-	public void setReconcilingStrategy(String partitionType, IReconcilingStrategy strategy) {
-		if (partitionType == null) {
-			throw new IllegalArgumentException();
-		}
-
-		if (strategy == null) {
-			fReconcilingStrategies.remove(partitionType);
-		}
-		else {
-			fReconcilingStrategies.put(partitionType, strategy);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.reconciler.IReconciler#uninstall()
-	 */
-	public void uninstall() {
-		if (isInstalled()) {
-			// removes widget listener
-			getTextViewer().removeTextInputListener(fTextInputListener);
-			setInstalled(false);
-			// removes document listeners
-			reconcilerDocumentChanged(null);
-		}
-		setDocument(null);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DocumentAdapter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DocumentAdapter.java
deleted file mode 100644
index 4a09d27..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DocumentAdapter.java
+++ /dev/null
@@ -1,43 +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.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.reconciler.IReconcilableModel;
-
-/**
- * Adapts an <code>IDocument</code> to a <code>IReconcilableModel</code>.
- * 
- */
-public class DocumentAdapter implements IReconcilableModel {
-
-	private IDocument fDocument;
-
-	/**
-	 * Creates a text model adapter for the given document.
-	 * 
-	 * @param document
-	 */
-	public DocumentAdapter(IDocument document) {
-		fDocument = document;
-	}
-
-	/**
-	 * Returns this model's document.
-	 * 
-	 * @return the model's input document
-	 */
-	public IDocument getDocument() {
-		return fDocument;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DocumentRegionProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DocumentRegionProcessor.java
deleted file mode 100644
index 876b1cb..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DocumentRegionProcessor.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.reconcile;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentDescription;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ValidatorBuilder;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ValidatorMetaData;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ValidatorStrategy;
-import org.eclipse.wst.sse.ui.internal.spelling.SpellcheckStrategy;
-
-/**
- * Adds to DirtyRegionProcessor Job: - IDocumentListener - ValidatorStrategy -
- * Text viewer(dispose, input changed) listeners. - default, spelling, and
- * validator strategies - DirtyRegion processing logic.
- */
-public class DocumentRegionProcessor extends DirtyRegionProcessor {
-
-	private static final boolean DEBUG_VALIDATORS = Boolean.TRUE.toString().equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.sse.ui/debug/reconcilerValidators"));
-	// //$NON-NLS-1$
-
-	/**
-	 * A strategy to use the defined default Spelling service.
-	 */
-	private SpellcheckStrategy fSpellcheckStrategy;
-
-	/**
-	 * The strategy that runs validators contributed via
-	 * <code>org.eclipse.wst.sse.ui.extensions.sourcevalidation</code>
-	 * extension point
-	 */
-	private ValidatorStrategy fValidatorStrategy;
-
-	private final String SSE_UI_ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-
-
-	protected void beginProcessing() {
-		super.beginProcessing();
-		ValidatorStrategy validatorStrategy = getValidatorStrategy();
-		if (validatorStrategy != null) {
-			validatorStrategy.beginProcessing();
-		}
-	}
-
-	protected void endProcessing() {
-		super.endProcessing();
-		ValidatorStrategy validatorStrategy = getValidatorStrategy();
-		if (validatorStrategy != null) {
-			validatorStrategy.endProcessing();
-		}
-	}
-
-	protected String getContentType(IDocument doc) {
-		if (doc == null)
-			return null;
-
-		String contentTypeId = null;
-
-		// pa_TODO it would be nice to be able to get filename from
-		// IDocument...
-		// because it seems that getting content type from input stream
-		// isn't all that accurate (eg. w/ a javascript file)
-
-		// IContentType ct =
-		// Platform.getContentTypeManager().findContentTypeFor("test.js");
-		IContentType ct = null;
-		try {
-			IContentDescription desc = Platform.getContentTypeManager().getDescriptionFor(new ByteArrayInputStream(doc.get().getBytes()), null, IContentDescription.ALL);
-			if (desc != null) {
-				ct = desc.getContentType();
-				if (ct != null)
-					contentTypeId = ct.getId();
-			}
-		}
-		catch (IOException e) {
-			// just bail
-		}
-		return contentTypeId;
-	}
-
-	protected final StructuredTextReconcilingStrategy getSpellcheckStrategy() {
-		if (fSpellcheckStrategy == null) {
-			String contentTypeId = getContentType(getDocument());
-			if (contentTypeId != null) {
-				if (getTextViewer() instanceof ISourceViewer) {
-					ISourceViewer viewer = (ISourceViewer) getTextViewer();
-					fSpellcheckStrategy = new SpellcheckStrategy(viewer, contentTypeId);
-					fSpellcheckStrategy.setDocument(getDocument());
-					fSpellcheckStrategy.setDocumentPartitioning(getDocumentPartitioning());
-				}
-			}
-		}
-		return fSpellcheckStrategy;
-	}
-
-	/**
-	 * @return Returns the ValidatorStrategy.
-	 */
-	protected ValidatorStrategy getValidatorStrategy() {
-		if (fValidatorStrategy == null) {
-			ValidatorStrategy validatorStrategy = null;
-
-			if (getTextViewer() instanceof ISourceViewer) {
-				ISourceViewer viewer = (ISourceViewer) getTextViewer();
-				String contentTypeId = null;
-
-				IDocument doc = viewer.getDocument();
-				contentTypeId = getContentType(doc);
-
-				if (contentTypeId != null) {
-					validatorStrategy = new ValidatorStrategy(viewer, contentTypeId);
-					ValidatorBuilder vBuilder = new ValidatorBuilder();
-					ValidatorMetaData[] vmds = vBuilder.getValidatorMetaData(SSE_UI_ID);
-					List enabledValidators = new ArrayList(1);
-					/* if any "must" handle this content type, just add them */
-					boolean foundSpecificContentTypeValidators = false;
-					for (int i = 0; i < vmds.length; i++) {
-						if (vmds[i].mustHandleContentType(contentTypeId)) {
-							if (DEBUG_VALIDATORS)
-								Logger.log(Logger.INFO, contentTypeId + " using specific validator " + vmds[i].getValidatorId()); //$NON-NLS-1$
-							foundSpecificContentTypeValidators = true;
-							enabledValidators.add(vmds[i]);
-						}
-					}
-					if (!foundSpecificContentTypeValidators) {
-						for (int i = 0; i < vmds.length; i++) {
-							if (vmds[i].canHandleContentType(contentTypeId)) {
-								if (DEBUG_VALIDATORS)
-									Logger.log(Logger.INFO, contentTypeId + " using inherited(?) validator " + vmds[i].getValidatorId()); //$NON-NLS-1$
-								enabledValidators.add(vmds[i]);
-							}
-						}
-					}
-					for (int i = 0; i < enabledValidators.size(); i++) {
-						validatorStrategy.addValidatorMetaData((ValidatorMetaData) enabledValidators.get(i));
-					}
-				}
-			}
-			fValidatorStrategy = validatorStrategy;
-		}
-		return fValidatorStrategy;
-	}
-
-	/**
-	 * @param dirtyRegion
-	 */
-	protected void process(DirtyRegion dirtyRegion) {
-		if (!isInstalled() || isInRewriteSession())
-			return;
-
-		super.process(dirtyRegion);
-
-		// Also call the validation and spell-check strategies
-		ITypedRegion[] partitions = computePartitioning(dirtyRegion);
-
-		DirtyRegion dirty = null;
-		for (int i = 0; i < partitions.length; i++) {
-			// [source]validator (extension) for this partition
-			if (getValidatorStrategy() != null) {
-				dirty = createDirtyRegion(partitions[i], DirtyRegion.INSERT);
-				getValidatorStrategy().reconcile(partitions[i], dirty);
-			}
-		}
-
-		// single spell-check for everything
-		if (getSpellcheckStrategy() != null) {
-			getSpellcheckStrategy().reconcile(dirtyRegion, dirtyRegion);
-		}
-	}
-
-	public void setDocument(IDocument doc) {
-		super.setDocument(doc);
-		IReconcilingStrategy validatorStrategy = getValidatorStrategy();
-		if (validatorStrategy != null) {
-			validatorStrategy.setDocument(doc);
-		}
-		if (fSpellcheckStrategy != null) {
-			fSpellcheckStrategy.setDocument(doc);
-		}
-	}
-
-	protected void setEntireDocumentDirty(IDocument document) {
-		super.setEntireDocumentDirty(document);
-		
-		// make the entire document dirty
-		// this also happens on a "save as"
-		if (document != null && isInstalled() && fLastPartitions != null && document.getLength() == 0) {
-			/**
-			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=199053
-			 * 
-			 * Process the strategies for the last known-good partitions.
-			 */
-			for (int i = 0; i < fLastPartitions.length; i++) {
-				getValidatorStrategy().reconcile(fLastPartitions[i], createDirtyRegion(fLastPartitions[i], DirtyRegion.REMOVE));
-			}
-			if (fSpellcheckStrategy != null) {
-				fSpellcheckStrategy.reconcile(new Region(0, document.getLength()));
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor#uninstall()
-	 */
-	public void uninstall() {
-		if (isInstalled()) {
-
-			cancel();
-
-			IReconcilingStrategy validatorStrategy = getValidatorStrategy();
-
-			if (validatorStrategy != null) {
-				if (validatorStrategy instanceof IReleasable)
-					((IReleasable) validatorStrategy).release();
-			}
-			if (fSpellcheckStrategy != null) {
-				fSpellcheckStrategy.setDocument(null);
-			}
-		}
-		super.uninstall();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IConfigurableReconciler.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IConfigurableReconciler.java
deleted file mode 100644
index 6f8b28f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IConfigurableReconciler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
-
-/**
- * A reconciler that allows IReconcilingStrategies to be assigned to partition
- * types. The reconciler will call the registered IReconcilingStrategy when
- * dirty regions which contain partitions of a specific type need to be
- * reconciled.
- * 
- * @since 1.1
- */
-public interface IConfigurableReconciler {
-	/**
-	 * Sets the reconciling strategy for the reconciler to use for the
-	 * specified content type.
-	 * 
-	 * @param partitionType
-	 *            the partition type
-	 * @param strategy
-	 *            the reconciling strategy
-	 */
-	void setReconcilingStrategy(String partitionType, IReconcilingStrategy strategy);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IReconcileAnnotationKey.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IReconcileAnnotationKey.java
deleted file mode 100644
index 052df0a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IReconcileAnnotationKey.java
+++ /dev/null
@@ -1,35 +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.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.reconciler.IReconcileStep;
-
-/**
- * Defines an annotation key that the
- * <code>AbstractStructuredTextReconcilingStrategy</code> knows how to
- * remove appropriately.
- * 
- * @deprecated not API, this will probably just become an abstract class
- * 
- * @author pavery
- */
-public interface IReconcileAnnotationKey {
-	static final int PARTIAL = 1;
-	static final int TOTAL = 0;
-
-	String getPartitionType();
-
-	//int getScope();
-
-	IReconcileStep getStep();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IStructuredReconcileStep.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IStructuredReconcileStep.java
deleted file mode 100644
index 3abb5f9..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IStructuredReconcileStep.java
+++ /dev/null
@@ -1,66 +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.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconcileResult;
-import org.eclipse.jface.text.reconciler.IReconcileStep;
-
-/**
- * @author pavery
- * @deprecated still working out API (or if anything here should be API)
- * 
- * Interface for a step in StructuredRegionProcessor framework.
- */
-public interface IStructuredReconcileStep extends IReconcileStep {
-	/**
-	 * Partitions for which this step can add/remove annotions
-	 * 
-	 * @return an array of the partitions for which this step can add/remove
-	 *         annotions
-	 */
-	String[] getPartitionTypes();
-
-	/**
-	 * Returns the scope for which this step adds annotations.
-	 * 
-	 * @return the scope for which this step adds annotations
-	 */
-	//int getScope();
-
-	/**
-	 * Tells you if the step is equal to this step or any of the sibling
-	 * steps.
-	 * 
-	 * @return
-	 */
-	boolean isSiblingStep(IReconcileStep step);
-
-	/**
-	 * Adds awareness that the Reconciler is reconciling the entire document
-	 * this call.
-	 * 
-	 * @param dirtyRegion
-	 * @param subRegion
-	 * @param refreshAll
-	 * @return
-	 */
-	IReconcileResult[] reconcile(DirtyRegion dirtyRegion, IRegion subRegion, boolean refreshAll);
-
-	/**
-	 * Used to reset the state of the Strategy. For example: any flags that
-	 * need to be reset after a long running operation like processAll().
-	 */
-	void reset();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IStructuredReconcilingStrategy.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IStructuredReconcilingStrategy.java
deleted file mode 100644
index 8b44151..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/IStructuredReconcilingStrategy.java
+++ /dev/null
@@ -1,43 +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.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconcilingStrategy;
-
-
-/**
- * Interface for structured reconciling strategies.
- * 
- * @deprecated doesn't need to be API and might go away
- * 
- * @author pavery
- */
-public interface IStructuredReconcilingStrategy extends IReconcilingStrategy {
-	/**
-	 * Adds awareness that the reconciler is processing the entire document
-	 * via refreshAll flag.
-	 * 
-	 * @param dirtyRegion
-	 * @param subRegion
-	 * @param refreshAll
-	 */
-	public void reconcile(DirtyRegion dirtyRegion, IRegion subRegion, boolean refreshAll);
-
-	/**
-	 * Used to reset the state of the Strategy. For example: any flags that
-	 * need to be reset after a long running operation like processAll().
-	 */
-	public void reset();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/ReconcileAnnotationKey.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/ReconcileAnnotationKey.java
deleted file mode 100644
index fa89e2d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/ReconcileAnnotationKey.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.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.reconciler.IReconcileStep;
-
-
-/**
- * Implementation of <code>IReconcileAnnotationKey</code> note: clients
- * should use the method StructuredReconcileStep#createKey(String
- * partitionType, int scope)
- * 
- * @author pavery
- */
-public class ReconcileAnnotationKey {
-    
-    public static final int PARTIAL = 1;
-    public static final int TOTAL = 0;
-    
-	private String fPartitionType = null;
-
-	private IReconcileStep fReconcileStep = null;
-	private int fScope;
-
-	public ReconcileAnnotationKey(IReconcileStep step, String partitionType, int scope) {
-		fReconcileStep = step;
-		fPartitionType = partitionType;
-		fScope = scope;
-	}
-
-	public String getPartitionType() {
-		return fPartitionType;
-	}
-
-	public int getScope() {
-		return fScope;
-	}
-
-	public IReconcileStep getStep() {
-		return fReconcileStep;
-	}
-
-	public String toString() {
-		return this.getClass() + "\r\nid: " + fPartitionType; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredReconcileStep.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredReconcileStep.java
deleted file mode 100644
index e6a8875..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredReconcileStep.java
+++ /dev/null
@@ -1,193 +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.wst.sse.ui.internal.reconcile;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.reconciler.AbstractReconcileStep;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconcilableModel;
-import org.eclipse.jface.text.reconciler.IReconcileResult;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.text.IStructuredPartitions;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-/**
- * ReconcileStep that knows about the annotation that it adds to the
- * AnnotationModel. It knows how to create an annotation key (for smart
- * removal later) It knows the partition types on which it can operate. It
- * knows the scope on which it operates (for short circuiting) It knows if the
- * Reconciler is reconciling the entire document.
- * 
- * Clients must subclass this class.
- * 
- * @author pavery
- */
-public abstract class StructuredReconcileStep extends AbstractReconcileStep implements IReleasable {
-
-	/** debug flag */
-	protected static final boolean DEBUG;
-	static {
-		String value = Platform.getDebugOption("org.eclipse.wst.sse.ui/debug/reconcilerjob"); //$NON-NLS-1$
-		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
-	protected final IReconcileResult[] EMPTY_RECONCILE_RESULT_SET = new IReconcileResult[0];
-	
-	/**
-	 * It's possible for a partial step to get called on the same area twice
-	 * (as w/ a full document reconcile) this list keeps track of area already
-	 * covered. Should be reset() after the "batch" of reconciling is
-	 * finished.
-	 */
-	private HashSet fPartitionTypes = null;
-
-	public StructuredReconcileStep() {
-		super();
-		fPartitionTypes = new HashSet();
-	}
-
-	public ReconcileAnnotationKey createKey(IStructuredDocumentRegion sdRegion, int scope) {
-
-		ITypedRegion tr = getPartition(sdRegion);
-		String partitionType = (tr != null) ? tr.getType() : IStructuredPartitions.UNKNOWN_PARTITION;
-		return createKey(partitionType, scope);
-	}
-
-	/**
-	 * @param sdRegion
-	 * @return
-	 */
-	protected ITypedRegion getPartition(IStructuredDocumentRegion sdRegion) {
-		ITypedRegion tr = null;
-		if (!sdRegion.isDeleted())
-			tr = getPartition(sdRegion.getParentDocument(), sdRegion.getStartOffset());
-		return tr;
-	}
-
-	private ITypedRegion getPartition(IDocument doc, int offset) {
-		ITypedRegion tr = null;
-		// not sure why document would ever be null, but put in this 
-		// guard for 
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=86069
-		if (doc != null) {
-			try {
-				tr = TextUtilities.getPartition(doc, IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING, offset, false);
-			} catch (BadLocationException e) {
-				if (DEBUG)
-					Logger.logException("problem getting partition at: " + offset, e); //$NON-NLS-1$
-			}
-		}
-		return tr;
-	}
-
-	/**
-	 * Clients should use this method to create annotation keys as it
-	 * registers the key for removal later.
-	 * 
-	 * @param partitionType
-	 * @param scope
-	 * @return
-	 */
-	public ReconcileAnnotationKey createKey(String partitionType, int scope) {
-		fPartitionTypes.add(partitionType);
-		return new ReconcileAnnotationKey(this, partitionType, scope);
-	}
-
-	protected IDocument getDocument() {
-		IDocument doc = null;
-		IReconcilableModel rModel = getModel();
-		if (rModel instanceof DocumentAdapter) {
-			doc = ((DocumentAdapter) rModel).getDocument();
-		}
-		return doc;
-	}
-
-	public IReconcilableModel getModel() {
-		return getInputModel();
-	}
-
-	public String getPartitionType(IDocument doc, int offset) {
-		ITypedRegion tr = getPartition(doc, offset);
-		return (tr != null) ? tr.getType() : IStructuredPartitions.UNKNOWN_PARTITION;
-	}
-
-	public String[] getPartitionTypes() {
-		// using hash set to automatically get rid of dupes
-		HashSet tempResults = new HashSet();
-		// add these partition types
-		tempResults.addAll(fPartitionTypes);
-		return (String[]) tempResults.toArray(new String[tempResults.size()]);
-	}
-
-	protected IStructuredDocument getStructuredDocument() {
-		IStructuredDocument sDoc = null;
-		IDocument doc = getDocument();
-		if (doc instanceof IStructuredDocument)
-			sDoc = (IStructuredDocument) getDocument();
-		return sDoc;
-	}
-
-	/**
-	 * Removes duplicates.
-	 * 
-	 * @param results1
-	 * @param results2
-	 * @return
-	 */
-	protected IReconcileResult[] merge(IReconcileResult[] results1, IReconcileResult[] results2) {
-		if (results1 == null)
-			return results2;
-		if (results2 == null)
-			return results1;
-
-		List results = new ArrayList();
-		results.addAll(Arrays.asList(results1));
-		for (int i = 0; i < results2.length; i++) {
-			results.add(results2[i]);
-		}
-		return (IReconcileResult[]) results.toArray(new IReconcileResult[results.size()]);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.reconciler.AbstractReconcileStep#reconcileModel(org.eclipse.jface.text.reconciler.DirtyRegion,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	protected IReconcileResult[] reconcileModel(DirtyRegion dirtyRegion, IRegion subRegion) {
-		return EMPTY_RECONCILE_RESULT_SET;
-	}
-
-	/**
-	 * Release resources used by the step here as needed. Be sure to call
-	 * super.release() when you override this method as to propagate the
-	 * release through all steps.
-	 */
-	public void release() {
-		// 
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredRegionProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredRegionProcessor.java
deleted file mode 100644
index b75dc63..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredRegionProcessor.java
+++ /dev/null
@@ -1,351 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.model.ModelLifecycleEvent;
-import org.eclipse.wst.sse.core.internal.provisional.IModelLifecycleListener;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-
-/**
- * An IStructuredModel aware Region Processor. Adds ModelLifecycle listener.
- * ModelLifecycle listener notifies us that some reinitialization needs to
- * take place.
- * 
- * Model aware "process()" Implements a IndexedRegion-based "contains()"
- * method using IStructuredModel.
- * 
- */
-public class StructuredRegionProcessor extends DocumentRegionProcessor {
-
-	class ModelLifecycleListener implements IModelLifecycleListener {
-		/**
-		 * @see org.eclipse.wst.sse.core.internal.provisional.IModelLifecycleListener#processPostModelEvent(org.eclipse.wst.sse.core.internal.model.ModelLifecycleEvent)
-		 */
-		public void processPostModelEvent(ModelLifecycleEvent event) {
-
-			// if underlying StructuredDocument changed, need to reconnect it
-			// here...
-			// ex. file is modified outside the workbench
-			if (event.getType() == ModelLifecycleEvent.MODEL_DOCUMENT_CHANGED) {
-
-				// check that it's this model that changed
-				IStructuredModel thisModel = getStructuredModelForRead(getDocument());
-				try {
-					if (thisModel != null && event.getModel().equals(thisModel)) {
-
-						IStructuredDocument sDoc = event.getModel().getStructuredDocument();
-
-						if (DEBUG) {
-							System.out.println("======================================================"); //$NON-NLS-1$
-							System.out.println("StructuredRegionProcessor: DOCUMENT MODEL CHANGED TO: "); //$NON-NLS-1$
-							System.out.println(sDoc.get());
-							System.out.println("======================================================"); //$NON-NLS-1$
-						}
-						setDocument(sDoc);
-						// propagate document change
-						// setDocumentOnAllStrategies(sDoc);
-						// ensure that the document is re-reconciled
-						setEntireDocumentDirty(sDoc);
-					}
-				}
-				finally {
-					if (thisModel != null)
-						thisModel.releaseFromRead();
-				}
-			}
-		}
-
-		/**
-		 * @see org.eclipse.wst.sse.core.internal.provisional.IModelLifecycleListener#processPreModelEvent(org.eclipse.wst.sse.core.internal.model.ModelLifecycleEvent)
-		 */
-		public void processPreModelEvent(ModelLifecycleEvent event) {
-
-			if (event.getType() == ModelLifecycleEvent.MODEL_DOCUMENT_CHANGED) {
-
-				flushDirtyRegionQueue();
-				// note: old annotations are removed via the strategies on
-				// AbstractStructuredTextReconcilingStrategy#setDocument(...)
-			}
-		}
-	}
-
-	private IModelLifecycleListener fLifeCycleListener = new ModelLifecycleListener();
-
-	/**
-	 * @deprecated use getOuterRegion() instead
-	 */
-	protected boolean contains(DirtyRegion root, DirtyRegion possible) {
-		// remove method post wtp 1.5.1
-		// this method is a performance hit
-		// look for alternatives
-
-		// call super to just check if possible is already contained within
-		// root based on offsets
-		boolean contains = super.contains(root, possible);
-		if (!contains) {
-			IStructuredModel sModel = getStructuredModelForRead(getDocument());
-			try {
-				if (sModel != null) {
-					// first just check if possregion appears after rootregion
-					IndexedRegion rootRegion = sModel.getIndexedRegion(root.getOffset());
-					IndexedRegion possRegion = sModel.getIndexedRegion(possible.getOffset());
-					if (rootRegion != null && possRegion != null) {
-						int rootStart = rootRegion.getStartOffset();
-						int possStart = possRegion.getStartOffset();
-						if (rootStart <= possStart) {
-							// then check if rootregion's end appears after
-							// possregion's end
-							IndexedRegion rootRegion2 = sModel.getIndexedRegion(root.getOffset() + root.getLength());
-							int rootEnd = rootRegion2 != null ? rootRegion2.getEndOffset() : getDocument().getLength();
-							IndexedRegion possRegion2 = sModel.getIndexedRegion(possible.getOffset() + possible.getLength());
-							int possEnd = possRegion2 != null ? possRegion2.getEndOffset() : getDocument().getLength();
-
-							if (rootEnd >= possEnd) {
-								contains = true;
-							}
-							if (DEBUG)
-								System.out.println("checking if [" + rootStart + ":" + rootEnd + "] contains [" + possStart + ":" + possEnd + "] ... " + contains); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						}
-					}
-				}
-			}
-			finally {
-				if (sModel != null)
-					sModel.releaseFromRead();
-			}
-		}
-		return contains;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.internal.reconcile.DirtyRegionProcessor#getOuterRegion(org.eclipse.jface.text.reconciler.DirtyRegion,
-	 *      org.eclipse.jface.text.reconciler.DirtyRegion)
-	 */
-	protected DirtyRegion getOuterRegion(DirtyRegion root, DirtyRegion possible) {
-		// first try simple region check if one region contains the other
-		DirtyRegion outer = super.getOuterRegion(root, possible);
-		if (outer == null) {
-			// now compare nodes
-			IStructuredModel sModel = getStructuredModelForRead(getDocument());
-			try {
-				if (sModel != null) {
-					IndexedRegion rootRegion = sModel.getIndexedRegion(root.getOffset());
-					IndexedRegion possRegion = sModel.getIndexedRegion(possible.getOffset());
-					if (rootRegion != null && possRegion != null) {
-						int rootStart = rootRegion.getStartOffset();
-						int possStart = possRegion.getStartOffset();
-						// first just check if rootregion starts before
-						// possregion
-						if (rootStart <= possStart) {
-							// check if possregion is inside rootregion
-							outer = _getOuterRegion(root, possible, sModel, rootStart, possStart);
-						}
-						else {
-							// otherwise if rootregion is inside possregion
-							outer = _getOuterRegion(possible, root, sModel, possStart, rootStart);
-						}
-					}
-				}
-			}
-			finally {
-				if (sModel != null)
-					sModel.releaseFromRead();
-			}
-		}
-		return outer;
-	}
-
-	/**
-	 * Assumes that when this method is called, region1's node start offset >=
-	 * region2's node start offset. Determines if region1 contains region2 or
-	 * vice versa. Returns region1 if:
-	 * <ul>
-	 * <li>region1's node region == region2's node region</li>
-	 * <li>region1's node region contains region2's node region</li>
-	 * </ul>
-	 * Returns region2 if:
-	 * <ul>
-	 * <li>region1's node region and region2's node region starts at same
-	 * offset but region2's node region is longer</li>
-	 * </ul>
-	 * Returns null otherwise.
-	 * 
-	 * @param region1
-	 * @param region2
-	 * @param sModel
-	 * @param region1NodeStart
-	 * @param region2NodeStart
-	 * @return outer dirty region or null if none exists.
-	 */
-	private DirtyRegion _getOuterRegion(DirtyRegion region1, DirtyRegion region2, IStructuredModel sModel, int region1NodeStart, int region2NodeStart) {
-		DirtyRegion outer = null;
-		int region1NodeEnd = -1;
-		int region2NodeEnd = -1;
-		// then check if region1's end appears after
-		// region2's end
-		IndexedRegion region1EndNode = sModel.getIndexedRegion(region1.getOffset() + region1.getLength());
-		if (region1EndNode == null) {
-			// if no end, just assume region spans all the
-			// way to the end so it includes other region
-			outer = region1;
-		}
-		else {
-			region1NodeEnd = region1EndNode.getEndOffset();
-			IndexedRegion region2EndNode = sModel.getIndexedRegion(region2.getOffset() + region2.getLength());
-			region2NodeEnd = region2EndNode != null ? region2EndNode.getEndOffset() : getDocument().getLength();
-			if (region1NodeEnd >= region2NodeEnd) {
-				// root contains or is equal to possible
-				outer = region1;
-			}
-			else if (region1NodeStart == region2NodeStart && region2NodeEnd >= region1NodeEnd) {
-				// possible contains root because they
-				// both start at same place but possible
-				// is longer
-				outer = region2;
-			}
-		}
-		if (DEBUG) {
-			if (outer != null)
-				System.out.println("checking if [" + region1NodeStart + ":" + region1NodeEnd + "] contains [" + region2NodeStart + ":" + region2NodeEnd + "] ... " + outer.toString()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-			else
-				System.out.println("checking if [" + region1NodeStart + ":" + region1NodeEnd + "] contains [" + region2NodeStart + ":" + region2NodeEnd + "] ... NO CONTAIN"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-		}
-		return outer;
-	}
-
-	/**
-	 * We already know content type from when we created the model, so just
-	 * use that.
-	 */
-	protected String getContentType(IDocument doc) {
-
-		String contentTypeId = null;
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(doc);
-			if (sModel != null) {
-				contentTypeId = sModel.getContentTypeIdentifier();
-			}
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-		return contentTypeId;
-	}
-
-
-	/**
-	 * Remember to release model after use!!
-	 * 
-	 * @return
-	 */
-	private IStructuredModel getStructuredModelForRead(IDocument doc) {
-		IStructuredModel sModel = null;
-		if (doc != null)
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(doc);
-		return sModel;
-	}
-
-	/**
-	 * @param document
-	 */
-	private void hookUpModelLifecycleListener(IDocument document) {
-		IStructuredModel sModel = getStructuredModelForRead(document);
-		try {
-			if (sModel != null) {
-				sModel.addModelLifecycleListener(fLifeCycleListener);
-			}
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-	}
-
-	protected void process(DirtyRegion dirtyRegion) {
-		if (getDocument() == null || isInRewriteSession())
-			return;
-
-		// use structured model to determine area to process
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
-		try {
-			if (sModel != null) {
-				int start = dirtyRegion.getOffset();
-				int end = start + dirtyRegion.getLength();
-				IndexedRegion irStart = sModel.getIndexedRegion(start);
-				IndexedRegion irEnd = sModel.getIndexedRegion(end);
-
-				if (irStart != null) {
-					start = Math.min(start, irStart.getStartOffset());
-				}
-				if (irEnd != null) {
-					end = Math.max(end, irEnd.getEndOffset());
-				}
-				super.process(createDirtyRegion(start, end - start, DirtyRegion.INSERT));
-			}
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-	}
-
-	/**
-	 * Reinitializes listeners and sets new document onall strategies.
-	 * 
-	 * @see org.eclipse.jface.text.reconciler.AbstractReconciler#reconcilerDocumentChanged(IDocument)
-	 */
-	protected void reconcilerDocumentChanged(IDocument newDocument) {
-
-		IDocument currentDoc = getDocument();
-
-		// unhook old lifecycle listner
-		unhookModelLifecycleListener(currentDoc);
-		// add new lifecycle listener
-		if (newDocument != null)
-			hookUpModelLifecycleListener(newDocument);
-
-		super.reconcilerDocumentChanged(newDocument);
-	}
-
-	/**
-	 * @param document
-	 */
-	private void unhookModelLifecycleListener(IDocument document) {
-		IStructuredModel sModel = getStructuredModelForRead(document);
-		try {
-			if (sModel != null)
-				sModel.removeModelLifecycleListener(fLifeCycleListener);
-
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-	}
-
-	public void uninstall() {
-
-		// removes model listeners
-		unhookModelLifecycleListener(getDocument());
-		super.uninstall();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredTextReconcilingStrategy.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredTextReconcilingStrategy.java
deleted file mode 100644
index bceefd4..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/StructuredTextReconcilingStrategy.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.eclipse.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-
-/**
- * Uses IStructuredModel nodes to check "overlaps()" when getting annotations to remove.
- */
-public abstract class StructuredTextReconcilingStrategy extends AbstractStructuredTextReconcilingStrategy {
-	
-
-	public StructuredTextReconcilingStrategy(ISourceViewer sourceViewer) {
-		super(sourceViewer);
-	}
-
-	/**
-	 * Checks if this position overlaps any of the StructuredDocument regions'
-	 * correstponding IndexedRegion.
-	 * 
-	 * @param pos
-	 * @param dr
-	 * @return true if the position overlaps any of the regions, otherwise
-	 *         false.
-	 */
-	protected boolean overlaps(Position pos, IStructuredDocumentRegion[] sdRegions) {
-		int start = -1;
-		int end = -1;
-		for (int i = 0; i < sdRegions.length; i++) {
-		    if(!sdRegions[i].isDeleted()) {
-    			IndexedRegion corresponding = getCorrespondingNode(sdRegions[i]);
-                if(corresponding != null) {
-        			if (start == -1 || start > corresponding.getStartOffset())
-        				start = corresponding.getStartOffset();
-        			if (end == -1 || end < corresponding.getEndOffset())
-        				end = corresponding.getEndOffset();
-                }
-            }
-		}
-		return pos.overlapsWith(start, end - start);
-	}
-
-	/**
-	 * Returns the corresponding node for the StructuredDocumentRegion.
-	 * 
-	 * @param sdRegion
-	 * @return the corresponding node for sdRegion
-	 */
-	protected IndexedRegion getCorrespondingNode(IStructuredDocumentRegion sdRegion) {
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
-        IndexedRegion indexedRegion = null;
-        try {
-            if (sModel != null) 
-                indexedRegion = sModel.getIndexedRegion(sdRegion.getStart());    
-        } finally {
-            if (sModel != null)
-                sModel.releaseFromRead();
-        }
-        return indexedRegion;
-    }
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/TemporaryAnnotation.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/TemporaryAnnotation.java
deleted file mode 100644
index 21a05c8..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/TemporaryAnnotation.java
+++ /dev/null
@@ -1,230 +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.wst.sse.ui.internal.reconcile;
-
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.reconciler.IReconcileResult;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationAccessExtension;
-import org.eclipse.jface.text.source.IAnnotationPresentation;
-import org.eclipse.jface.text.source.ImageUtilities;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.texteditor.AnnotationPreference;
-import org.eclipse.ui.texteditor.AnnotationPreferenceLookup;
-import org.eclipse.wst.sse.ui.internal.ITemporaryAnnotation;
-
-
-/**
- * An implementation of ITemporaryAnnotation @
- * @author pavery
- */
-public class TemporaryAnnotation extends Annotation implements ITemporaryAnnotation, IReconcileResult, IAnnotationPresentation {
-	// remember to change these if it changes in the extension point
-	// may need a different home for them in the future, but they're here for
-	// now
-	public final static String ANNOT_ERROR = "org.eclipse.wst.sse.ui.temp.error"; //$NON-NLS-1$
-	public final static String ANNOT_INFO = "org.eclipse.wst.sse.ui.temp.info"; //$NON-NLS-1$
-
-	// pa_TODO what should the ID be for this?
-	public final static String ANNOT_UNKNOWN = Annotation.TYPE_UNKNOWN;
-	public final static String ANNOT_WARNING = "org.eclipse.wst.sse.ui.temp.warning"; //$NON-NLS-1$
-
-    // copied from CompilationUnitDocumentProvider.ProblemAnnotation
-    //XXX: To be fully correct these constants should be non-static
-
-    private static final int INFO_LAYER;
-
-    private static final int WARNING_LAYER;
-
-    private static final int ERROR_LAYER;
-
-    static {
-        AnnotationPreferenceLookup lookup= EditorsUI.getAnnotationPreferenceLookup();
-        INFO_LAYER= computeLayer("org.eclipse.wst.sse.ui.temp.info", lookup); //$NON-NLS-1$
-        WARNING_LAYER= computeLayer("org.eclipse.wst.sse.ui.temp.warning", lookup); //$NON-NLS-1$
-        ERROR_LAYER= computeLayer("org.eclipse.wst.sse.ui.temp.error", lookup); //$NON-NLS-1$
-    }
-    
-    private static int computeLayer(String annotationType, AnnotationPreferenceLookup lookup) {
-        Annotation annotation= new Annotation(annotationType, false, null);
-        AnnotationPreference preference= lookup.getAnnotationPreference(annotation);
-        if (preference != null)
-            return preference.getPresentationLayer() + 1;
-        else
-            return IAnnotationAccessExtension.DEFAULT_LAYER + 1;
-    }
-    
-    
-	private Object fAdditionalFixInfo = null;
-
-	private Object fKey = null;
-	private Position fPosition = null;
-
-	private int fProblemID;
-
-    private int fLayer = DEFAULT_LAYER;
-    
-    private Image fImage = null;
-
-	public TemporaryAnnotation(Position p, String type, String message, ReconcileAnnotationKey key) {
-		super();
-		fPosition = p;
-		setType(type);
-		fKey = key;
-		setText(message);
-        initLayer();
-        initImage();
-	}
-
-	public TemporaryAnnotation(Position p, String type, String message, ReconcileAnnotationKey key, int problemId) {
-		super();
-		fPosition = p;
-		fKey = key;
-		setType(type);
-		setText(message);
-		fProblemID = problemId;
-        initLayer();
-        initImage();
-	}
-
-    private void initLayer() {
-        
-        String type = getType();
-        if(type.equals(ANNOT_ERROR)) {
-            fLayer = ERROR_LAYER;
-        }
-        else if(type.equals(ANNOT_WARNING)) {
-            fLayer = WARNING_LAYER;
-        }
-        else if(type.equals(ANNOT_INFO)) {
-            fLayer = INFO_LAYER;
-        }
-    }
-    
-    private void initImage() {
-        // later we can add support for quick fix images.
-        String type = getType();
-        if(type.equals(ANNOT_ERROR)) {
-            fImage = null;
-        }
-        else if(type.equals(ANNOT_WARNING)) {
-            fImage = null;
-        }
-        else if(type.equals(ANNOT_INFO)) {
-            fImage = null;
-        }
-    }
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object obj) {
-		// this check doesn't take into consideration that annotation
-		// positions that change from a text edit before it
-		// we should be checking if the annotation is still on the same line,
-		// and the distance from the start of the line is the same
-		if (obj instanceof TemporaryAnnotation) {
-
-			TemporaryAnnotation ta = (TemporaryAnnotation) obj;
-
-            boolean samePosition = ta.getPosition().equals(this.getPosition());
-            boolean sameText = false;
-
-            if(ta.getText() != null && this.getText() != null && ta.getText().equals(this.getText()))
-                sameText = true;
-            else if(ta.getText( )== null && this.getText() == null)
-                sameText = true;
-            
-			return  sameText && samePosition;
-		}
-		return super.equals(obj);
-	}
-
-	/**
-	 * Additional info required to fix this problem.
-	 * 
-	 * @return an Object that contains additional info on how to fix this
-	 *         problem, or null if there is none
-	 */
-	public Object getAdditionalFixInfo() {
-		return fAdditionalFixInfo;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.ITemporaryAnnotation#getDescription()
-	 */
-	public String getDescription() {
-		return getText();
-	}
-
-	public Object getKey() {
-		return fKey;
-	}
-
-	public Position getPosition() {
-		return fPosition;
-	}
-
-	/**
-	 * @return Returns the problemID.
-	 */
-	public int getProblemID() {
-		return fProblemID;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.Annotation#isPersistent()
-	 */
-	public boolean isPersistent() {
-		return false;
-	}
-
-	/**
-	 * Sets additional information useful to fixing this problem.
-	 * 
-	 * @param an
-	 *            Object that contains additional info on how to fix this
-	 *            problem
-	 */
-	public void setAdditionalFixInfo(Object info) {
-		fAdditionalFixInfo = info;
-	}
-
-    public int getLayer() {
-        return fLayer;
-    }
-    
-    /*
-     * @see Annotation#paint
-     */
-    public void paint(GC gc, Canvas canvas, Rectangle r) {
-        //initializeImages();
-        if (fImage != null)
-            ImageUtilities.drawImage(fImage, gc, canvas, r, SWT.CENTER, SWT.TOP);
-    }
-    
-	public String toString() {
-		return "" + fPosition.getOffset() + ':' + fPosition.getLength() + ": " + getText(); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/AnnotationInfo.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/AnnotationInfo.java
deleted file mode 100644
index 609420e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/AnnotationInfo.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.eclipse.wst.sse.ui.internal.reconcile.validator;
-
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-
-/**
- * Holds info to create a TemporaryAnnotation.
- *
- * @since 1.0
- */
-public class AnnotationInfo {
-	
-	public static final int NO_PROBLEM_ID = -1;
-	private	IMessage fMessage = null;
-	private Object fAdditionalFixInfo = null;
-	private int fProblemId = NO_PROBLEM_ID;
-	
-	public AnnotationInfo(IMessage message) {
-		fMessage = message;
-		
-	}
-	public AnnotationInfo(IMessage message, int problemId, Object additionalFixInfo) {
-		this(message);
-		fProblemId = problemId;
-		fAdditionalFixInfo = additionalFixInfo;
-	}
-	
-	public final IMessage getMessage() {
-		return fMessage;
-	}
-	
-	public final Object getAdditionalFixInfo() {
-		return fAdditionalFixInfo;
-	}
-	
-	public final int getProblemId() {
-		return fProblemId;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ISourceValidator.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ISourceValidator.java
deleted file mode 100644
index 1e09976..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ISourceValidator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.eclipse.wst.sse.ui.internal.reconcile.validator;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-
-/**
- * Interface to allow for "partial document" as you type validation.
- *
- */
-public interface ISourceValidator {
-	
-	/**
-	 * As you type validation is getting "hooked up" to this IDocument.
-	 * This is the instance of IDocument that the validator should
-	 * operate on for each validate call.
-	 * 
-	 * @param document
-	 */
-	void connect(IDocument document);
-	
-	/**
-	 * The same IDocument passed in from the connect() method.
-	 * This indicates that as you type validation is "shutting down"
-	 * for this IDocument.
-	 * 
-	 * @param document
-	 */
-	void disconnect(IDocument document);
-	
-	/**
-	 * Like IValidator#validate(IValidationContext helper, IReporter reporter)
-	 * except passes the dirty region, so document validation can be better
-	 * optimized.
-	 * 
-	 * @param dirtyRegion
-	 * @param helper
-	 * @param reporter
-	 */
-	void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/IncrementalHelper.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/IncrementalHelper.java
deleted file mode 100644
index 7b3ce34..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/IncrementalHelper.java
+++ /dev/null
@@ -1,57 +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.wst.sse.ui.internal.reconcile.validator;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
-
-
-
-public class IncrementalHelper implements IValidationContext {
-	private IProject fProject;
-
-	private String fURI = null;
-	
-	public IncrementalHelper(IDocument sourceDocument, IProject project) {
-		super();
-		fProject = project;
-	}
-
-	public String getPortableName(IResource resource) {
-		return resource.getProjectRelativePath().toString();
-	}
-
-	public IProject getProject() {
-		return fProject;
-	}
-
-	public Object loadModel(String symbolicName) {
-		return null;
-	}
-
-	public Object loadModel(String symbolicName, Object[] parms) {
-		return null;
-	}
-
-	void setURI(String uri) {
-		fURI = uri;
-	}
-	
-	public String[] getURIs() {
-		if(fURI != null)
-			return new String[]{fURI};
-		return new String[0];
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/IncrementalReporter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/IncrementalReporter.java
deleted file mode 100644
index f67dae7..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/IncrementalReporter.java
+++ /dev/null
@@ -1,111 +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.wst.sse.ui.internal.reconcile.validator;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-
-
-/**
- * Right now we'll only use one reporter per validator.
- */
-public class IncrementalReporter implements IReporter {
-	private IProgressMonitor fProgressMonitor;
-	private HashMap messages = new HashMap();
-
-	public IncrementalReporter(IProgressMonitor progressMonitor) {
-		super();
-		fProgressMonitor = progressMonitor;
-	}
-
-	public void addMessage(IValidator validator, IMessage message) {
-		AnnotationInfo info = new AnnotationInfo(message);
-		addAnnotationInfo(validator, info);
-	}
-
-	public final void addAnnotationInfo(IValidator validator, AnnotationInfo info) {
-		Object existingValue = messages.get(validator);
-		if (existingValue != null) {
-			((HashSet) existingValue).add(info);
-		}
-		else {
-			HashSet newValue = new HashSet(1);
-			newValue.add(info);
-			messages.put(validator, newValue);
-		}
-	}
-
-	public void displaySubtask(IValidator validator, IMessage message) {
-		if ((message == null) || (message.equals(""))) { //$NON-NLS-1$
-			return;
-		}
-		if (fProgressMonitor != null) {
-			fProgressMonitor.subTask(message.getText(validator.getClass().getClassLoader()));
-		}
-	}
-
-	public List getMessages() {
-		List result = new ArrayList();
-		// messages is a list of:
-		// validators => HashSet(AnnotationInfo1, AnnotationInfo2, ...)
-		// (one HashSet per validator...)
-		Object[] lists = messages.values().toArray();
-		for (int i = 0; i < lists.length; i++) {
-			Iterator it = ((HashSet)lists[i]).iterator();
-			while (it.hasNext()) {
-				AnnotationInfo info = (AnnotationInfo) it.next();
-				result.add(info.getMessage());
-			}
-		}
-		return result;
-	}
-	
-	public AnnotationInfo[] getAnnotationInfo() {
-		List result = new ArrayList();
-		Object[] infos = messages.values().toArray();
-		for (int i = 0; i < infos.length; i++) {
-			result.addAll((HashSet)infos[i]);
-		}
-		return (AnnotationInfo[])result.toArray(new AnnotationInfo[result.size()]);
-	}
-
-	public boolean isCancelled() {
-		if (fProgressMonitor == null)
-			return false;
-		return fProgressMonitor.isCanceled();
-	}
-
-	public void removeAllMessages(IValidator validator) {
-		Object o = messages.get(validator);
-		if(o != null && o instanceof HashSet) {
-			((HashSet)o).clear();
-		}
-	}
-
-	public void removeAllMessages(IValidator validator, Object object) {
-		removeAllMessages(validator);
-	}
-
-	// group names are unsupported
-	public void removeMessageSubset(IValidator validator, Object obj, String groupName) {
-		removeAllMessages(validator);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ReconcileStepForValidator.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ReconcileStepForValidator.java
deleted file mode 100644
index 306d329..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ReconcileStepForValidator.java
+++ /dev/null
@@ -1,345 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.reconcile.validator;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconcilableModel;
-import org.eclipse.jface.text.reconciler.IReconcileResult;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.reconcile.DocumentAdapter;
-import org.eclipse.wst.sse.ui.internal.reconcile.ReconcileAnnotationKey;
-import org.eclipse.wst.sse.ui.internal.reconcile.StructuredReconcileStep;
-import org.eclipse.wst.sse.ui.internal.reconcile.TemporaryAnnotation;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-
-
-/**
- * A reconcile step for an IValidator for reconcile. Used the reconcile
- * framework to create TemporaryAnnotations from the validator messages.
- * 
- * @author pavery
- */
-public class ReconcileStepForValidator extends StructuredReconcileStep {
-
-	/** debug flag */
-	protected static final boolean DEBUG;
-	static {
-		String value = Platform.getDebugOption("org.eclipse.wst.sse.ui/debug/reconcilerjob"); //$NON-NLS-1$
-		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-
-	private final IReconcileResult[] EMPTY_RECONCILE_RESULT_SET = new IReconcileResult[0];
-	private IncrementalHelper fHelper = null;
-	private IncrementalReporter fReporter = null;
-	private int fScope = -1;
-	private IValidator fValidator = null;
-
-
-	public ReconcileStepForValidator(IValidator v, int scope) {
-		super();
-
-		if (v == null)
-			throw new IllegalArgumentException("validator cannot be null"); //$NON-NLS-1$
-
-		fValidator = v;
-		fScope = scope;
-	}
-
-	/**
-	 * Converts a map of IValidatorForReconcile to List to annotations based
-	 * on those messages
-	 * 
-	 * @param messages
-	 * @return
-	 */
-//	protected IReconcileResult[] createAnnotations(List messageList) {
-//		List annotations = new ArrayList();
-//		for (int i = 0; i < messageList.size(); i++) {
-//			IMessage validationMessage = (IMessage) messageList.get(i);
-//
-//			int offset = validationMessage.getOffset();
-//
-//			if (offset < 0)
-//				continue;
-//
-//			String messageText = null;
-//			try {
-//				messageText = validationMessage.getText(validationMessage.getClass().getClassLoader());
-//			}
-//			catch (Exception t) {
-//				Logger.logException("exception reporting message from validator", t); //$NON-NLS-1$
-//				continue;
-//			}
-//			
-//			String type = getSeverity(validationMessage);
-//			// this position seems like it would be possibly be the wrong
-//			// length
-//			int length = validationMessage.getLength();
-//			if (length >= 0) {
-//				Position p = new Position(offset, length);
-//				ReconcileAnnotationKey key = createKey(getPartitionType(getDocument(), offset), getScope());
-//				annotations.add(new TemporaryAnnotation(p, type, messageText, key));
-//			}
-//		}
-//
-//		return (IReconcileResult[]) annotations.toArray(new IReconcileResult[annotations.size()]);
-//	}
-
-	/**
-	 * Converts a map of IValidatorForReconcile to List to annotations based
-	 * on those messages
-	 * 
-	 * @param messages
-	 * @return
-	 */
-	protected IReconcileResult[] createAnnotations(AnnotationInfo[] infos) {
-		
-	
-		List annotations = new ArrayList();
-		for (int i = 0; i < infos.length; i++) {
-			
-			AnnotationInfo info = infos[i];
-			
-			IMessage validationMessage = info.getMessage();
-			int offset = validationMessage.getOffset();
-			if (offset < 0)
-				continue;
-
-			String messageText = null;
-			try {
-				messageText = validationMessage.getText(validationMessage.getClass().getClassLoader());
-			}
-			catch (Exception t) {
-				Logger.logException("exception reporting message from validator", t); //$NON-NLS-1$
-				continue;
-			}
-			String type = getSeverity(validationMessage);
-			// this position seems like it would be possibly be the wrong
-			// length
-			int length = validationMessage.getLength();
-			if (length >= 0) {
-
-				Position p = new Position(offset, length);
-				ReconcileAnnotationKey key = createKey(getPartitionType(getDocument(), offset), getScope());
-				
-				if(info.getProblemId() == AnnotationInfo.NO_PROBLEM_ID) {
-					// create an annotation w/ no fix info
-					annotations.add(new TemporaryAnnotation(p, type, messageText, key));
-				}
-				else {
-					// create an annotation w/ problem ID and fix info
-					TemporaryAnnotation annotation = new TemporaryAnnotation(p, type, messageText, key, info.getProblemId());
-					annotation.setAdditionalFixInfo(info.getAdditionalFixInfo());
-					annotations.add(annotation);
-				}
-			}
-		}
-		return (IReconcileResult[]) annotations.toArray(new IReconcileResult[annotations.size()]);
-	}
-
-	private String getSeverity(IMessage validationMessage) {
-		String type = TemporaryAnnotation.ANNOT_INFO;
-		switch (validationMessage.getSeverity()) {
-			case IMessage.HIGH_SEVERITY :
-				type = TemporaryAnnotation.ANNOT_ERROR;
-				break;
-			case IMessage.NORMAL_SEVERITY :
-				type = TemporaryAnnotation.ANNOT_WARNING;
-				break;
-			case IMessage.LOW_SEVERITY :
-				type = TemporaryAnnotation.ANNOT_WARNING;
-				break;
-			case IMessage.ERROR_AND_WARNING :
-				type = TemporaryAnnotation.ANNOT_WARNING;
-				break;
-		}
-		return type;
-	}
-	
-	private IFile getFile() {
-		IStructuredModel model = null;
-		IFile file = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
-			if (model != null) {
-				String baseLocation = model.getBaseLocation();
-				// The baseLocation may be a path on disk or relative to the
-				// workspace root. Don't translate on-disk paths to
-				// in-workspace resources.
-				IPath basePath = new Path(baseLocation);
-				if (basePath.segmentCount() > 1 && !basePath.toFile().exists()) {
-					file = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
-				}
-			}
-		}
-		finally {
-			if (model != null) {
-				model.releaseFromRead();
-			}
-		}
-		return file;
-	}
-
-	private IncrementalHelper getHelper(IProject project) {
-		if (fHelper == null)
-			fHelper = new IncrementalHelper(getDocument(), project);
-		return fHelper;
-	}
-
-	private IncrementalReporter getReporter() {
-		if (fReporter == null)
-			fReporter = new IncrementalReporter(getProgressMonitor());
-		return fReporter;
-	}
-
-	/**
-	 * If this validator is partial or total
-	 * @return
-	 */
-	public int getScope() {
-		return fScope;
-	}
-
-	public void initialReconcile() {
-		// do nothing
-	}
-
-	protected IReconcileResult[] reconcileModel(DirtyRegion dirtyRegion, IRegion subRegion) {
-		if (DEBUG)
-			System.out.println("[trace reconciler] > reconciling model in VALIDATOR step w/ dirty region: [" + dirtyRegion.getText() + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		IReconcileResult[] results = EMPTY_RECONCILE_RESULT_SET;
-		if (dirtyRegion != null) {
-			try {
-				if(fValidator instanceof ISourceValidator) {
-					results = validate(dirtyRegion, subRegion);
-				}
-				else {
-					results = validate();
-				}
-			}
-			catch (Exception ex) {
-				Logger.logException("EXEPTION IN RECONCILE STEP FOR VALIDATOR", ex); //$NON-NLS-1$
-			}
-		}
-
-		if (DEBUG)
-			System.out.println("[trace reconciler] > VALIDATOR step done"); //$NON-NLS-1$
-
-		return results;
-	}
-
-	public String toString() {
-		StringBuffer debugString = new StringBuffer("ValidatorStep: "); //$NON-NLS-1$
-		if (fValidator != null)
-			debugString.append(fValidator.getClass().toString());
-		return debugString.toString();
-	}
-	
-	protected IReconcileResult[] validate() {
-		IReconcileResult[] results = EMPTY_RECONCILE_RESULT_SET;
-
-		IFile file = getFile();
-
-		try {
-			IncrementalHelper helper = getHelper(file != null ? file.getProject() : null);
-			IncrementalReporter reporter = getReporter();
-
-			if (file != null && file.exists()) {
-				helper.setURI(file.getFullPath().toString());
-			}
-
-			fValidator.validate(helper, reporter);
-
-			// results = createAnnotations(reporter.getMessages());
-			results = createAnnotations(reporter.getAnnotationInfo());
-			reporter.removeAllMessages(fValidator);
-			
-			fValidator.cleanup(reporter);
-		}
-		catch (Exception e) {
-			Logger.logException(e);
-		}
-		return results;
-	}
-	
-	public void setInputModel(IReconcilableModel inputModel) {
-		if(inputModel instanceof DocumentAdapter) {
-			IDocument document = ((DocumentAdapter)inputModel).getDocument();
-			if(document != null) {
-				if(fValidator instanceof ISourceValidator) {
-					// notify that document connecting
-					((ISourceValidator)fValidator).connect(document);
-				}
-			}
-		}
-		super.setInputModel(inputModel);
-	}
-	
-	public void release() {
-		if(fValidator instanceof ISourceValidator) {
-			IDocument document = getDocument();
-			if(document != null) {
-				// notify that document disconnecting
-				((ISourceValidator)fValidator).disconnect(document);
-			}
-			fValidator.cleanup(getReporter());
-		}
-		super.release();
-	}
-	
-	protected IReconcileResult[] validate(DirtyRegion dirtyRegion, IRegion subRegion) {
-		IReconcileResult[] results = EMPTY_RECONCILE_RESULT_SET;
-
-		IFile file = getFile();
-
-		try {
-			IncrementalHelper helper = getHelper(file != null ? file.getProject() : null);
-			/*
-			 * Setting the URI isn't necessary for all source validators, we
-			 * can still continue without it
-			 */
-			if (file != null && file.exists()) {
-				helper.setURI(file.getFullPath().toString());
-			}
-
-			if (fValidator instanceof ISourceValidator) {
-				IncrementalReporter reporter = getReporter();
-				((ISourceValidator) fValidator).validate(dirtyRegion, helper, reporter);
-				// call IValidator.cleanup() during release()
-				// results = createAnnotations(reporter.getMessages());
-				results = createAnnotations(reporter.getAnnotationInfo());
-				reporter.removeAllMessages(fValidator);
-			}
-		}
-		catch (Exception e) {
-			Logger.logException(e);
-		}
-		return results;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorBuilder.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorBuilder.java
deleted file mode 100644
index 411f084..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorBuilder.java
+++ /dev/null
@@ -1,139 +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.wst.sse.ui.internal.reconcile.validator;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.extension.RegistryReader;
-
-
-/**
- * Based off of TransferBuilder. Reads the extension point for
- * <code>org.eclipse.wst.sse.ui.extensions.sourcevalidation</code>
- */
-public class ValidatorBuilder extends RegistryReader {
-    
-	public static final String ATT_CLASS = "class"; //$NON-NLS-1$
-	public static final String ATT_ID = "id"; //$NON-NLS-1$
-	public static final String ATT_SCOPE = "scope"; //$NON-NLS-1$
-
-	public static final ValidatorMetaData[] EMTPY_VMD_ARRAY = new ValidatorMetaData[0];
-
-	// extension point ID
-	public static final String PL_SOURCE_VALIDATION = "sourcevalidation"; //$NON-NLS-1$
-
-	public static final String PLUGIN_ID = "org.eclipse.wst.sse.ui"; //$NON-NLS-1$
-	public static final String TAG_CONTENT_TYPE_IDENTIFIER = "contentTypeIdentifier"; //$NON-NLS-1$
-	public static final String TAG_PARTITION_TYPE = "partitionType"; //$NON-NLS-1$
-
-	public static final String TAG_VALIDATOR = "validator"; //$NON-NLS-1$
-
-	public static final String TRACE_FILTER = "reconcile_validator"; //$NON-NLS-1$
-
-	public static final String TRUE = "true"; //$NON-NLS-1$
-	private String fCurrentCTID;
-	private ValidatorMetaData fCurrentVMD = null;
-	private List fVmds = new ArrayList();
-	protected String targetContributionTag;
-	protected String targetID;
-
-    private final String UNKNOWN = "???"; //$NON-NLS-1$
-    
-	/**
-	 * Returns the name of the part ID attribute that is expected in the
-	 * target extension.
-	 * 
-	 * @param element
-	 * @return String
-	 */
-	protected String getID(IConfigurationElement element) {
-		String value = element.getAttribute(ATT_ID);
-		return value != null ? value : UNKNOWN; //$NON-NLS-1$
-	}
-
-	protected String getValidatorClass(IConfigurationElement element) {
-		String value = element.getAttribute(ATT_CLASS);
-		return value != null ? value : UNKNOWN; //$NON-NLS-1$
-	}
-
-	/**
-	 * @param editorId
-	 * @return Transfer[]
-	 */
-	public ValidatorMetaData[] getValidatorMetaData(String editorId) {
-		readContributions(editorId, TAG_VALIDATOR, PL_SOURCE_VALIDATION);
-		return (ValidatorMetaData[]) fVmds.toArray(new ValidatorMetaData[fVmds.size()]);
-	}
-
-	protected String getValidatorScope(IConfigurationElement element) {
-		String value = element.getAttribute(ATT_SCOPE);
-		return value != null ? value : UNKNOWN; //$NON-NLS-1$
-	}
-
-	/**
-	 * Reads the contributions from the registry for the provided workbench
-	 * part and the provided extension point ID.
-	 * 
-	 * @param id
-	 * @param tag
-	 * @param extensionPoint
-	 */
-	protected void readContributions(String id, String tag, String extensionPoint) {
-		targetID = id;
-		targetContributionTag = tag;
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		readRegistry(registry, PLUGIN_ID, extensionPoint);
-	}
-
-	protected boolean readElement(IConfigurationElement element) {
-		String tag = element.getName();
-		//ie. targetContributionTag == validator
-		if (tag.equals(targetContributionTag)) {
-			String vId = getID(element);
-			String vClass = getValidatorClass(element);
-			String vScope = getValidatorScope(element);
-
-			if (vId == null) {
-				// This is not of interest to us - don't go deeper
-				return true;
-			}
-			// start building a VMD
-			fCurrentVMD = new ValidatorMetaData(element, vId, vClass, vScope);
-			fVmds.add(fCurrentVMD);
-
-			if (Logger.isTracing(ValidatorBuilder.TRACE_FILTER))
-				System.out.println("added reconcile validator: " + vId + ":" + vClass + ":" + vScope); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		} else if (tag.equals(TAG_CONTENT_TYPE_IDENTIFIER)) {
-			// add to current VMD
-			fCurrentCTID = getID(element);
-			fCurrentVMD.addContentTypeId(fCurrentCTID);
-		} else if (tag.equals(TAG_PARTITION_TYPE)) {
-			// add to current VMD
-			String partitionType = getID(element);
-			fCurrentVMD.addParitionType(fCurrentCTID, partitionType);
-
-			return true;
-		} else {
-			return false;
-		}
-
-		readElementChildren(element);
-		return true;
-	}
-}
-
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorMetaData.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorMetaData.java
deleted file mode 100644
index 47bcdcb..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorMetaData.java
+++ /dev/null
@@ -1,241 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.reconcile.validator;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.reconcile.ReconcileAnnotationKey;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-import org.osgi.framework.Bundle;
-
-
-/**
- * Object that holds information relevant to the creation of a validator for
- * the reconciling framework.
- * 
- * @author pavery,nitind
- */
-public class ValidatorMetaData {
-	private String fClass = null;
-	private IConfigurationElement fConfigurationElement = null;
-	private String fId = null;
-    private String fScope;
-
-	// a hash map of explicitly declared content type Ids (String) that points to lists of
-	// partition types (List of Strings)
-	// contentTypeId -> List(paritionType, paritionType, partitionType, ...)
-	// contentTypeId2 -> List(partitionType, partitionType, ...)
-	// ...
-	private HashMap fMatrix = null;
-
-	public ValidatorMetaData(IConfigurationElement element, String vId, String vClass, String vScope) {
-		fId = vId;
-		fClass = vClass;
-		fConfigurationElement = element;
-		fScope = vScope;
-		fMatrix = new HashMap();
-	}
-
-    /**
-     * TODO: This exact method is also in ValidatorStrategy. Should be in a common place.
-     * 
-     * @param contentTypeId
-     * @return
-     */
-    private String[] calculateParentContentTypeIds(String contentTypeId) {
-
-        Set parentTypes = new HashSet();
-        
-        IContentTypeManager ctManager = Platform.getContentTypeManager();    
-        IContentType ct = ctManager.getContentType(contentTypeId);
-        String id = contentTypeId;
-
-        while(ct != null && id != null) {
-            
-            parentTypes.add(id);
-            ct = ctManager.getContentType(id);
-            if(ct != null) {
-                IContentType baseType = ct.getBaseType();
-                id = (baseType != null) ? baseType.getId() : null;
-            }
-        }
-        return (String[])parentTypes.toArray(new String[parentTypes.size()]);
-    }
-    
-	public void addContentTypeId(String contentTypeId) {
-		if (!fMatrix.containsKey(contentTypeId))
-			fMatrix.put(contentTypeId, new ArrayList());
-	}
-
-	public void addParitionType(String contentTypeId, String partitionType) {
-		if (!fMatrix.containsKey(contentTypeId))
-			fMatrix.put(contentTypeId, new ArrayList());
-
-		List partitionList = (List) fMatrix.get(contentTypeId);
-		partitionList.add(partitionType);
-	}
-
-	/**
-	 * @param contentType
-	 * @return whether this validator explicitly declared that it could handle
-	 *         this content type or any of its parent content types
-	 */
-	public boolean canHandleContentType(String contentType) {
-        // need to iterate hierarchy
-        String[] contentHierarchy = calculateParentContentTypeIds(contentType);
-        for (int i = 0; i < contentHierarchy.length; i++) {
-            if(fMatrix.containsKey(contentHierarchy[i]))
-                return true;
-        }
-        return false;
-	}
-
-	/**
-	 * @param contentType
-	 * @return whether this validator explicitly declared that it could handle
-	 *         this content type
-	 */
-	public boolean mustHandleContentType(String contentType) {
-        return fMatrix.containsKey(contentType);
-	}
-
-	/**
-	 * @param contentTypeIds
-	 * @param partitionType
-	 * @return whether this validator declared that it could handle this
-	 *         content type, or one of its parent content types, and partition
-	 *         type
-	 */
-	public boolean canHandlePartitionType(String contentTypeIds[], String paritionType) {
-        for(int i=0; i<contentTypeIds.length; i++) {
-    		if (fMatrix.containsKey(contentTypeIds[i])) {
-    			List partitions = (List) fMatrix.get(contentTypeIds[i]);
-    			for (int j = 0; j < partitions.size(); j++) {
-    				if (paritionType.equals(partitions.get(j)))
-    					return true;
-    			}
-    		}
-        }
-		return false;
-	}
-
-	/**
-	 * @param element
-	 * @param classAttribute
-	 * @return Object
-	 * @throws CoreException
-	 */
-	Object createExecutableExtension(final IConfigurationElement element, final String classAttribute) throws CoreException {
-		Object obj = null;
-		obj = element.createExecutableExtension(classAttribute);
-		return obj;
-	}
-
-	/**
-	 * Creates an extension. If the extension plugin has not been loaded a
-	 * busy cursor will be activated during the duration of the load.
-	 * 
-	 * @param element
-	 * @param classAttribute
-	 * @return Object
-	 * @throws CoreException
-	 */
-	public Object createExtension() {
-		// If plugin has been loaded create extension.
-		// Otherwise, show busy cursor then create extension.
-		final IConfigurationElement element = getConfigurationElement();
-		final Object[] result = new Object[1];
-		String pluginId = element.getDeclaringExtension().getNamespace();
-		Bundle bundle = Platform.getBundle(pluginId);
-		if (bundle.getState() == Bundle.ACTIVE) {
-			try {
-				return createExecutableExtension(element, "class"); //$NON-NLS-1$
-			} catch (CoreException e) {
-				handleCreateExecutableException(result, e);
-			}
-		} else {
-			BusyIndicator.showWhile(null, new Runnable() {
-				public void run() {
-					try {
-						result[0] = createExecutableExtension(element, "class"); //$NON-NLS-1$
-					} catch (Exception e) {
-						handleCreateExecutableException(result, e);
-					}
-				}
-			});
-		}
-		return result[0];
-	}
-
-	/**
-	 * @return a validator instance based on this ValidatorMetaData instance
-	 */
-	public IValidator createValidator() {
-		Object obj = null;
-		obj = createExtension();
-		if (obj == null) {
-			return null;
-		}
-		return (obj instanceof IValidator) ? (IValidator) obj : null;
-	}
-
-	public IConfigurationElement getConfigurationElement() {
-		return fConfigurationElement;
-	}
-
-	public String getValidatorClass() {
-		return fClass;
-	}
-
-	public String getValidatorId() {
-		return fId;
-	}
-
-	/**
-	 * @param result
-	 * @param e
-	 */
-	void handleCreateExecutableException(Object[] result, Throwable e) {
-		Logger.logException(e);
-		e.printStackTrace();
-		result[0] = null;
-	}
-	/**
-	 * ReconcileAnnotationKey.TOTAL or  ReconcileAnnotationKey.PARTIAL
-	 * @return
-	 */
-    public int getValidatorScope() {
-        return fScope.equalsIgnoreCase("total") ? ReconcileAnnotationKey.TOTAL : ReconcileAnnotationKey.PARTIAL; //$NON-NLS-1$
-    }
-    
-	/**
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		StringBuffer debugString = new StringBuffer("ValidatorMetaData:"); //$NON-NLS-1$
-		if (fId != null)
-			debugString.append(" [id:" + fId + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-		return debugString.toString();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorStrategy.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorStrategy.java
deleted file mode 100644
index c069bda..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/validator/ValidatorStrategy.java
+++ /dev/null
@@ -1,327 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.wst.sse.ui.internal.reconcile.validator;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.core.runtime.content.IContentTypeManager;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconcileResult;
-import org.eclipse.jface.text.reconciler.IReconcileStep;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.reconcile.DocumentAdapter;
-import org.eclipse.wst.sse.ui.internal.reconcile.ReconcileAnnotationKey;
-import org.eclipse.wst.sse.ui.internal.reconcile.StructuredTextReconcilingStrategy;
-import org.eclipse.wst.sse.ui.internal.reconcile.TemporaryAnnotation;
-import org.eclipse.wst.validation.internal.ConfigurationManager;
-import org.eclipse.wst.validation.internal.ProjectConfiguration;
-import org.eclipse.wst.validation.internal.ValidationRegistryReader;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-
-
-/**
- * Special validator strategy. Runs validator steps contributed via the
- * <code>org.eclipse.wst.sse.ui.extensions.sourcevalidation</code> extension
- * point
- * 
- * @author pavery
- */
-public class ValidatorStrategy extends StructuredTextReconcilingStrategy {
-
-	private String[] fContentTypeIds = null;
-	private List fMetaData = null;
-	/** validator id (as declared in ext point) -> ReconcileStepForValidator * */
-	private HashMap fVidToVStepMap = null;
-	private ProjectConfiguration fProjectConfiguration = null;
-
-	/*
-	 * List of ValidatorMetaDatas of total scope validators that have been run
-	 * since beginProcessing() was called.
-	 */
-	private List fTotalScopeValidatorsAlreadyRun;
-
-	public ValidatorStrategy(ISourceViewer sourceViewer, String contentType) {
-		super(sourceViewer);
-		fMetaData = new ArrayList();
-		fContentTypeIds = calculateParentContentTypeIds(contentType);
-		fVidToVStepMap = new HashMap();
-	}
-
-	public void addValidatorMetaData(ValidatorMetaData vmd) {
-		fMetaData.add(vmd);
-	}
-
-	public void beginProcessing() {
-		if (fTotalScopeValidatorsAlreadyRun == null)
-			fTotalScopeValidatorsAlreadyRun = new ArrayList();
-		else
-			fTotalScopeValidatorsAlreadyRun.clear();
-	}
-
-	/**
-	 * The content type passed in should be the most specific one. TODO: This
-	 * exact method is also in ValidatorMetaData. Should be in a common place.
-	 * 
-	 * @param contentType
-	 * @return
-	 */
-	private String[] calculateParentContentTypeIds(String contentTypeId) {
-
-		Set parentTypes = new HashSet();
-
-		IContentTypeManager ctManager = Platform.getContentTypeManager();
-		IContentType ct = ctManager.getContentType(contentTypeId);
-		String id = contentTypeId;
-
-		while (ct != null && id != null) {
-
-			parentTypes.add(id);
-			ct = ctManager.getContentType(id);
-			if (ct != null) {
-				IContentType baseType = ct.getBaseType();
-				id = (baseType != null) ? baseType.getId() : null;
-			}
-		}
-		return (String[]) parentTypes.toArray(new String[parentTypes.size()]);
-	}
-
-	protected boolean canHandlePartition(String partitionType) {
-		ValidatorMetaData vmd = null;
-		for (int i = 0; i < fMetaData.size(); i++) {
-			vmd = (ValidatorMetaData) fMetaData.get(i);
-			if (vmd.canHandlePartitionType(getContentTypeIds(), partitionType))
-				return true;
-		}
-		return false;
-	}
-
-	protected boolean containsStep(IReconcileStep step) {
-		return fVidToVStepMap.containsValue(step);
-	}
-
-	/**
-	 * @see org.eclipse.wst.sse.ui.internal.provisional.reconcile.AbstractStructuredTextReconcilingStrategy#createReconcileSteps()
-	 */
-	public void createReconcileSteps() {
-		// do nothing, steps are created
-	}
-
-	public void endProcessing() {
-		fTotalScopeValidatorsAlreadyRun.clear();
-	}
-
-	/**
-	 * All content types on which this ValidatorStrategy can run
-	 * 
-	 * @return
-	 */
-	public String[] getContentTypeIds() {
-		return fContentTypeIds;
-	}
-
-	/**
-	 * @param tr
-	 *            Partition of the region to reconcile.
-	 * @param dr
-	 *            Dirty region representation of the typed region
-	 */
-	public void reconcile(ITypedRegion tr, DirtyRegion dr) {
-
-		if (isCanceled())
-			return;
-
-		IDocument doc = getDocument();
-		// for external files, this can be null
-		if (doc == null)
-			return;
-
-		String partitionType = tr.getType();
-
-		ValidatorMetaData vmd = null;
-		List annotationsToAdd = new ArrayList();
-		List stepsRanOnThisDirtyRegion = new ArrayList(1);
-		/*
-		 * Loop through all of the relevant validator meta data to find
-		 * supporting validators for this partition type. Don't check
-		 * this.canHandlePartition() before-hand since it just loops through
-		 * and calls vmd.canHandlePartitionType()...which we're already doing
-		 * here anyway to find the right vmd.
-		 */
-		for (int i = 0; i < fMetaData.size() && !isCanceled(); i++) {
-			vmd = (ValidatorMetaData) fMetaData.get(i);
-			if (vmd.canHandlePartitionType(getContentTypeIds(), partitionType)) {
-				/*
-				 * Check if validator is enabled according to validation
-				 * preferences before attempting to create/use it
-				 */
-				if (isValidatorEnabled(vmd)) {
-					int validatorScope = vmd.getValidatorScope();
-					ReconcileStepForValidator validatorStep = null;
-					// get step for partition type
-					Object o = fVidToVStepMap.get(vmd.getValidatorId());
-					if (o != null) {
-						validatorStep = (ReconcileStepForValidator) o;
-					}
-					else {
-						// if doesn't exist, create one
-						IValidator validator = vmd.createValidator();
-
-						validatorStep = new ReconcileStepForValidator(validator, validatorScope);
-						validatorStep.setInputModel(new DocumentAdapter(doc));
-
-						fVidToVStepMap.put(vmd.getValidatorId(), validatorStep);
-					}
-
-					if (!fTotalScopeValidatorsAlreadyRun.contains(vmd)) {
-						annotationsToAdd.addAll(Arrays.asList(validatorStep.reconcile(dr, dr)));
-						stepsRanOnThisDirtyRegion.add(validatorStep);
-
-						if (validatorScope == ReconcileAnnotationKey.TOTAL) {
-							// mark this validator as "run"
-							fTotalScopeValidatorsAlreadyRun.add(vmd);
-						}
-					}
-				}
-			}
-		}
-
-		TemporaryAnnotation[] annotationsToRemove = getAnnotationsToRemove(dr, stepsRanOnThisDirtyRegion);
-		if (annotationsToRemove.length + annotationsToAdd.size() > 0)
-			smartProcess(annotationsToRemove, (IReconcileResult[]) annotationsToAdd.toArray(new IReconcileResult[annotationsToAdd.size()]));
-	}
-
-	public void release() {
-		super.release();
-		Iterator it = fVidToVStepMap.values().iterator();
-		IReconcileStep step = null;
-		while (it.hasNext()) {
-			step = (IReconcileStep) it.next();
-			if (step instanceof IReleasable)
-				((IReleasable) step).release();
-		}
-	}
-
-	/**
-	 * @see org.eclipse.wst.sse.ui.internal.reconcile.AbstractStructuredTextReconcilingStrategy#setDocument(org.eclipse.jface.text.IDocument)
-	 */
-	public void setDocument(IDocument document) {
-
-		super.setDocument(document);
-
-		// validator steps are in "fVIdToVStepMap" (as opposed to fFirstStep >
-		// next step etc...)
-		Iterator it = fVidToVStepMap.values().iterator();
-		IReconcileStep step = null;
-		while (it.hasNext()) {
-			step = (IReconcileStep) it.next();
-			step.setInputModel(new DocumentAdapter(document));
-		}
-	}
-
-	/**
-	 * Checks if validator is enabled according to Validation preferences
-	 * 
-	 * @param vmd
-	 * @return
-	 */
-	private boolean isValidatorEnabled(ValidatorMetaData vmd) {
-		boolean enabled = true;
-		ProjectConfiguration configuration = getProjectConfiguration();
-		org.eclipse.wst.validation.internal.ValidatorMetaData metadata = ValidationRegistryReader.getReader().getValidatorMetaData(vmd.getValidatorClass());
-		if (configuration != null && metadata != null) {
-			if (!configuration.isBuildEnabled(metadata) && !configuration.isManualEnabled(metadata))
-				enabled = false;
-		}
-		return enabled;
-	}
-
-	/**
-	 * Gets current validation project configuration based on current project
-	 * (which is based on current document)
-	 * 
-	 * @return ProjectConfiguration
-	 */
-	private ProjectConfiguration getProjectConfiguration() {
-		if (fProjectConfiguration == null) {
-			IFile file = getFile();
-			if (file != null) {
-				IProject project = file.getProject();
-				if (project != null) {
-					try {
-						fProjectConfiguration = ConfigurationManager.getManager().getProjectConfiguration(project);
-					}
-					catch (InvocationTargetException e) {
-						Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-					}
-				}
-			}
-		}
-
-		return fProjectConfiguration;
-	}
-
-	/**
-	 * Gets IFile from current document
-	 * 
-	 * @return IFile the IFile, null if no such file exists
-	 */
-	private IFile getFile() {
-		IStructuredModel model = null;
-		IFile file = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
-			if (model != null) {
-				String baseLocation = model.getBaseLocation();
-				// The baseLocation may be a path on disk or relative to the
-				// workspace root. Don't translate on-disk paths to
-				// in-workspace resources.
-				IPath basePath = new Path(baseLocation);
-				if (basePath.segmentCount() > 1) {
-					file = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
-					/*
-					 * If the IFile doesn't  exist, make sure it's not
-					 * returned
-					 */
-					if (!file.exists())
-						file = null;
-				}
-			}
-		}
-		finally {
-			if (model != null) {
-				model.releaseFromRead();
-			}
-		}
-		return file;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/BasicSearchLabelProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/BasicSearchLabelProvider.java
deleted file mode 100644
index 3c3d540..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/BasicSearchLabelProvider.java
+++ /dev/null
@@ -1,75 +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.wst.sse.ui.internal.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImageHelper;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImages;
-
-
-
-/**
- * Basic label provider that just provides an image and default text.
- * 
- * @author pavery
- */
-public class BasicSearchLabelProvider implements ILabelProvider {
-
-	public void addListener(ILabelProviderListener listener) {
-		// do nothing
-	}
-
-	public void dispose() {
-		// do nothing
-	}
-
-	public Image getImage(Object element) {
-		return EditorPluginImageHelper.getInstance().getImage(EditorPluginImages.IMG_OBJ_OCC_MATCH);
-	}
-
-	public String getText(Object element) {
-
-		StringBuffer text = new StringBuffer();
-		if (element instanceof Match) {
-			Match m = (Match) element;
-
-			IMarker marker = (IMarker) m.getElement();
-			if (marker.exists()) {
-				String resultText = ""; //$NON-NLS-1$
-				try {
-					resultText = (String) marker.getAttribute(IMarker.MESSAGE);
-				} catch (CoreException e) {
-					Logger.logException(e);
-				}
-				text.append(resultText);
-			}
-		} else {
-			text.append(element.toString());
-		}
-		return text.toString();
-	}
-
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		// do nothing
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/BasicSearchQuery.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/BasicSearchQuery.java
deleted file mode 100644
index be29c23..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/BasicSearchQuery.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.search;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.ISearchResult;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.ui.texteditor.MarkerUtilities;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-/**
- * @author pavery
- */
-public class BasicSearchQuery implements ISearchQuery {
-
-	/** attribute to identify markers added by find occurrences */
-	public static final String ATTR_OCCURRENCES_MARKER = "occurrences_marker"; //$NON-NLS-1$
-
-	private static int LINE_LENGTH_LIMIT = 200;
-
-	/** the file we're searching * */
-	private IFile fFile = null;
-	/** occurrence search matches * */
-	private List fMatches = null;
-
-	public BasicSearchQuery(IFile file) {
-		this.fFile = file;
-		this.fMatches = new ArrayList();
-	}
-
-	public void addMatch(IDocument document, int matchStart, int matchEnd) {
-
-		try {
-			int lineNumber = document.getLineOfOffset(matchStart);
-			int lineStart = document.getLineOffset(lineNumber);
-			int lineLength = document.getLineLength(lineNumber);
-
-			String searchResultString = document.get().substring(lineStart, lineStart + lineLength).trim();
-
-			// create search marker (so annotations show up in editor)
-			IMarker marker = createSearchMarker(matchStart, matchEnd, lineNumber, searchResultString);
-
-			addMatch(new Match(marker, Match.UNIT_CHARACTER, matchStart, matchStart + matchEnd));
-
-		} catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-	}
-
-	private void addMatch(Match match) {
-		if (match != null)
-			this.fMatches.add(match);
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.ISearchQuery#canRerun()
-	 */
-	public boolean canRerun() {
-		return false;
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.ISearchQuery#canRunInBackground()
-	 */
-	public boolean canRunInBackground() {
-		return true;
-	}
-
-	public void clearMatches() {
-		this.fMatches.clear();
-	}
-
-	protected IMarker createSearchMarker(int matchStart, int matchEnd, int lineNumber, String searchResultString) {
-
-		IMarker marker = null;
-		try {
-			if (getFile() != null) {
-
-				marker = getFile().createMarker(NewSearchUI.SEARCH_MARKER);
-				HashMap attributes = new HashMap(6);
-
-				MarkerUtilities.setCharStart(attributes, matchStart);
-				MarkerUtilities.setCharEnd(attributes, matchEnd);
-				MarkerUtilities.setLineNumber(attributes, lineNumber);
-
-				// this might be bad if line of text is VERY long?
-				if (searchResultString.length() > LINE_LENGTH_LIMIT)
-					searchResultString = searchResultString.substring(0, LINE_LENGTH_LIMIT) + "..."; //$NON-NLS-1$
-				MarkerUtilities.setMessage(attributes, searchResultString);
-
-				// so we can remove them later
-				attributes.put(ATTR_OCCURRENCES_MARKER, new Boolean(true));
-
-				marker.setAttributes(attributes);
-			}
-		} catch (CoreException e) {
-			Logger.logException(e);
-		}
-		return marker;
-	}
-
-	private void deleteOccurrencesMarkers() {
-
-		final List removals = new ArrayList();
-		try {
-			// clear all old find occurrences markers
-			IMarker[] searchMarkers = fFile.findMarkers(NewSearchUI.SEARCH_MARKER, false, IResource.DEPTH_ZERO);
-			for (int i = 0; i < searchMarkers.length; i++) {
-				Object o = searchMarkers[i].getAttribute(BasicSearchQuery.ATTR_OCCURRENCES_MARKER);
-				if (o != null && ((Boolean) o).booleanValue() == true)
-					removals.add(searchMarkers[i]);
-
-			}
-
-			if (removals.size() > 0) {
-				IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
-					public void run(IProgressMonitor monitor) throws CoreException {
-						for (int i = 0; i < removals.size(); i++)
-							((IMarker) removals.get(i)).delete();
-					}
-				};
-				// BUG158846 - deadlock if lock up entire workspace, so only lock
-				// up the file we are searching on
-				ISchedulingRule markerRule = ResourcesPlugin.getWorkspace().getRuleFactory().markerRule(fFile);
-				ResourcesPlugin.getWorkspace().run(runnable, markerRule, IWorkspace.AVOID_UPDATE, null); 
-			}
-		} catch (CoreException e) {
-			Logger.logException(e);
-		}
-	}
-
-	/**
-	 * The acutal work of the query. Will be run in a background Job
-	 * automatically if canRunInBackground(..) returns true.
-	 * 
-	 * @return
-	 */
-	protected IStatus doQuery() {
-		return Status.OK_STATUS;
-	}
-
-	/*
-	 * public to avoid synthetic method access from inner class
-	 */
-	public IFile getFile() {
-		return this.fFile;
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.ISearchQuery#getLabel()
-	 */
-	public String getLabel() {
-		return ""; //$NON-NLS-1$
-	}
-
-	public Match[] getMatches() {
-		// get rid of the old markers
-		if(fFile.exists()) {
-			deleteOccurrencesMarkers();
-			doQuery();
-		}
-		return (Match[]) this.fMatches.toArray(new Match[this.fMatches.size()]);
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.ISearchQuery#getSearchResult()
-	 */
-	public ISearchResult getSearchResult() {
-		return null;
-	}
-
-	/**
-	 * used in search result display labels
-	 * 
-	 * @return
-	 */
-	protected String getSearchText() {
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.ISearchQuery#run(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public IStatus run(IProgressMonitor monitor) {
-		// defer to "get(...)"
-		return Status.OK_STATUS;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/FindOccurrencesActionDelegate.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/FindOccurrencesActionDelegate.java
deleted file mode 100644
index f8bb41c..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/FindOccurrencesActionDelegate.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.ui.internal.search;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.util.PlatformStatusLineUtil;
-
-/**
- * Performs the appropriate FindOccurrencesProcessor action call based on
- * selection. Clients can add processors for different partitions via
- * <code>getProcessors</code>
- * 
- */
-abstract public class FindOccurrencesActionDelegate implements IEditorActionDelegate, IActionDelegate2, IViewActionDelegate {
-	private IEditorPart fEditor;
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		fEditor = targetEditor;
-	}
-
-	public void dispose() {
-		// nulling out just in case
-		fEditor = null;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(SSEUIMessages.FindOccurrences_label);
-		}
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-
-	public void run(IAction action) {
-		boolean okay = false;
-		if (fEditor instanceof ITextEditor) {
-			ITextEditor textEditor = (ITextEditor) fEditor;
-			IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
-			if (document != null) {
-				ITextSelection textSelection = getTextSelection(textEditor);
-				FindOccurrencesProcessor findOccurrenceProcessor = getProcessorForCurrentSelection(document, textSelection);
-				if (findOccurrenceProcessor != null) {
-					if (textEditor.getEditorInput() instanceof IFileEditorInput) {
-						IFile file = ((IFileEditorInput) textEditor.getEditorInput()).getFile();
-						okay = findOccurrenceProcessor.findOccurrences(document, textSelection, file);
-					}
-				}
-			}
-		}
-		if (okay) {
-			// clear status message
-			PlatformStatusLineUtil.clearStatusLine();
-		}
-		else {
-			String errorMessage = SSEUIMessages.FindOccurrencesActionProvider_0; //$NON-NLS-1$
-			PlatformStatusLineUtil.displayErrorMessage(errorMessage);
-			PlatformStatusLineUtil.addOneTimeClearListener();
-		}
-	}
-
-	public void init(IViewPart view) {
-		// do nothing
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		// clear status message
-		PlatformStatusLineUtil.clearStatusLine();
-	}
-
-	/**
-	 * Get the appropriate find occurrences processor
-	 * 
-	 * @param document -
-	 *            assumes not null
-	 * @param textSelection
-	 * @return
-	 */
-	private FindOccurrencesProcessor getProcessorForCurrentSelection(IDocument document, ITextSelection textSelection) {
-		// check if we have an action that's enabled on the current partition
-		ITypedRegion tr = getPartition(document, textSelection);
-		String partition = tr != null ? tr.getType() : ""; //$NON-NLS-1$
-
-		Iterator it = getProcessors().iterator();
-		FindOccurrencesProcessor action = null;
-		while (it.hasNext()) {
-			action = (FindOccurrencesProcessor) it.next();
-			// we just choose the first action that can handle the partition
-			if (action.enabledForParitition(partition))
-				return action;
-		}
-		return null;
-	}
-
-	private ITypedRegion getPartition(IDocument document, ITextSelection textSelection) {
-		ITypedRegion region = null;
-		if (textSelection != null) {
-			try {
-				region = document.getPartition(textSelection.getOffset());
-			}
-			catch (BadLocationException e) {
-				region = null;
-			}
-		}
-		return region;
-	}
-
-	private ITextSelection getTextSelection(ITextEditor textEditor) {
-		ITextSelection textSelection = null;
-		ISelection selection = textEditor.getSelectionProvider().getSelection();
-		if (selection instanceof ITextSelection && !selection.isEmpty()) {
-			textSelection = (ITextSelection) selection;
-		}
-		return textSelection;
-	}
-
-	abstract protected List getProcessors();
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/FindOccurrencesProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/FindOccurrencesProcessor.java
deleted file mode 100644
index 0c9d09f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/FindOccurrencesProcessor.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.ui.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-
-/**
- * <p>
- * Finds occurrences of a specified region type w/ region text in an
- * IStructuredDocument. Clients must implement getPartitionTypes() and
- * getRegionTypes() to indicate which partition types and region types it can
- * operate on.
- * </p>
- * 
- * <p>
- * Clients should override <code>getSearchQuery()</code> in order to provide
- * their own type of "search" (eg. searching for XML start tags, searching for
- * Java elements, etc...)
- * </p>
- * 
- */
-abstract public class FindOccurrencesProcessor {
-	public boolean findOccurrences(IDocument document, ITextSelection textSelection, IFile file) {
-		boolean findOccurrences = false;
-
-		// determine if action should be enabled or not
-		if (document instanceof IStructuredDocument) {
-			IStructuredDocument structuredDocument = (IStructuredDocument) document;
-			IStructuredDocumentRegion sdRegion = structuredDocument.getRegionAtCharacterOffset(textSelection.getOffset());
-			if (sdRegion != null) {
-				ITextRegion r = sdRegion.getRegionAtCharacterOffset(textSelection.getOffset());
-				if (r != null) {
-					String type = r.getType();
-					if (enabledForRegionType(type)) {
-						String matchText = sdRegion.getText(r);
-
-						// first of all activate the view
-						NewSearchUI.activateSearchResultView();
-
-						if (matchText != null && type != null) {
-							ISearchQuery searchQuery = getSearchQuery(file, structuredDocument, matchText, type, textSelection);
-							if (searchQuery != null) {
-								if (searchQuery.canRunInBackground())
-									NewSearchUI.runQueryInBackground(searchQuery);
-								else
-									NewSearchUI.runQueryInForeground(null, searchQuery);
-							}
-							findOccurrences = true;
-						}
-					}
-				}
-			}
-		}
-		return findOccurrences;
-	}
-
-	/**
-	 * @param regionType
-	 * @return <code>true</code> if this action can operate on this region
-	 *         type (ITextRegion), otherwise false.
-	 */
-	private boolean enabledForRegionType(String regionType) {
-
-		String[] accept = getRegionTypes();
-		for (int i = 0; i < accept.length; i++) {
-			if (regionType.equals(accept[i]))
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Clients should override this to enable find occurrences on certain
-	 * partition(s).
-	 */
-	abstract protected String[] getPartitionTypes();
-
-	/**
-	 * Clients should override this to enable find occurrences on different
-	 * region type(s).
-	 */
-	abstract protected String[] getRegionTypes();
-
-	/**
-	 * Clients should override to provide their own search for the file.
-	 */
-	protected ISearchQuery getSearchQuery(IFile file, IStructuredDocument document, String regionText, String regionType, ITextSelection textSelection) {
-		return new OccurrencesSearchQuery(file, document, regionText, regionType);
-	}
-
-	/**
-	 * @param partitionType
-	 * @return <code>true</code> if this action can operate on this type of
-	 *         partition, otherwise <code>false</code>.
-	 */
-	public boolean enabledForParitition(String partitionType) {
-		String[] accept = getPartitionTypes();
-		for (int i = 0; i < accept.length; i++) {
-			if (partitionType.equals(accept[i]))
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesContentProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesContentProvider.java
deleted file mode 100644
index 11251fd..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesContentProvider.java
+++ /dev/null
@@ -1,89 +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.wst.sse.ui.internal.search;
-
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-
-/**
- * @author pavery
- */
-public class OccurrencesContentProvider implements IStructuredContentProvider {
-
-	protected final Object[] EMPTY_ARRAY = new Object[0];
-	private OccurrencesSearchResult fResult = null;
-	private TableViewer fTableViewer = null;
-
-	public void clear() {
-		if (this.fResult != null)
-			this.fResult.clearMatches();
-		if (this.fTableViewer != null)
-			this.fTableViewer.refresh();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-	 */
-	public void dispose() {
-		// do nothing
-	}
-
-	public void elementsChanged(Object[] updatedElements) {
-
-		//TODO: copied from JavaSearchTableContentProvider
-		int addCount = 0;
-		int removeCount = 0;
-		for (int i = 0; i < updatedElements.length; i++) {
-			if (this.fResult.getMatchCount(updatedElements[i]) > 0) {
-				if (this.fTableViewer.testFindItem(updatedElements[i]) != null)
-					this.fTableViewer.refresh(updatedElements[i]);
-				else
-					this.fTableViewer.add(updatedElements[i]);
-				addCount++;
-			} else {
-				this.fTableViewer.remove(updatedElements[i]);
-				removeCount++;
-			}
-		}
-	}
-
-
-	/**
-	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-	 */
-	public Object[] getElements(Object inputElement) {
-
-		this.fResult = (OccurrencesSearchResult) inputElement;
-		return this.fResult.getMatches();
-	}
-
-	/**
-	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-	 *      java.lang.Object, java.lang.Object)
-	 */
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-
-		if (viewer instanceof TableViewer)
-			this.fTableViewer = (TableViewer) viewer;
-		this.fResult = (OccurrencesSearchResult) newInput;
-	}
-
-	public void refresh() {
-
-		if (this.fTableViewer != null)
-			this.fTableViewer.refresh();
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchQuery.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchQuery.java
deleted file mode 100644
index cf1e48f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchQuery.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.search;
-
-import java.text.MessageFormat;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.search.ui.ISearchResult;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Basic ISearchQuery that finds matches of region type and region text.
- * 
- * @author pavery
- */
-public class OccurrencesSearchQuery extends BasicSearchQuery {
-
-	/**
-	 * We need a runnable so that the search markers show up in the live
-	 * document.
-	 */
-	private class FindRegions implements IWorkspaceRunnable {
-
-		private IStructuredDocument fFindRegionsDocument = null;
-		private String fMatchName = null;
-		private String fMatchRegionType = null;
-
-		public FindRegions(IStructuredDocument document, String matchText, String matchRegionType) {
-
-			this.fFindRegionsDocument = document;
-			this.fMatchName = matchText;
-			this.fMatchRegionType = matchRegionType;
-		}
-
-		private void findOccurrences(IProgressMonitor monitor) {
-
-			if (!isCanceled(monitor)) {
-
-				int matchStart = -1;
-				int matchEnd = -1;
-				String findRegionText = ""; //$NON-NLS-1$
-
-				ITextRegion r = null;
-				ITextRegionList regions = null;
-				IStructuredDocumentRegion current = this.fFindRegionsDocument.getFirstStructuredDocumentRegion();
-
-				// this is the main loop that iterates the document
-				while (current != null && !isCanceled(monitor)) {
-					regions = current.getRegions();
-					for (int i = 0; i < regions.size() && !isCanceled(monitor); i++) {
-
-						r = regions.get(i);
-
-						// maybe this is the equals check where some valid
-						// matches are failing (like searching on end tag)
-						if (r.getType().equals(this.fMatchRegionType) && current.getText(r).equals(this.fMatchName)) {
-
-							findRegionText = current.getText(r);
-
-							// region found
-							matchStart = current.getStartOffset(r);
-							matchEnd = matchStart + findRegionText.trim().length();
-
-							addMatch(this.fFindRegionsDocument, matchStart, matchEnd);
-						}
-					}
-					current = current.getNext();
-				}
-			}
-		}
-
-		private boolean isCanceled(IProgressMonitor monitor) {
-			return monitor != null && monitor.isCanceled();
-		}
-
-		public void run(IProgressMonitor monitor) throws CoreException {
-
-			try {
-				findOccurrences(monitor);
-			} catch (Exception e) {
-				Logger.logException(e);
-			}
-		}
-	}
-
-	// end inner class FindRegions
-
-
-	private IStructuredDocument fDocument = null;
-	private String fRegionText = null;
-	private String fRegionType = null;
-
-	public OccurrencesSearchQuery(IFile file, IStructuredDocument document, String regionText, String regionType) {
-		super(file);
-		this.fDocument = document;
-		this.fRegionText = regionText;
-		this.fRegionType = regionType;
-	}
-
-	public boolean canRerun() {
-		return false;
-	}
-
-	public boolean canRunInBackground() {
-		// pa_TODO investigate what is required to do this safely
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.internal.search.BasicSearchQuery#doQuery()
-	 */
-	protected IStatus doQuery() {
-
-		clearMatches();
-
-		IStatus status = Status.OK_STATUS;
-		FindRegions findRegions = new FindRegions(this.fDocument, this.fRegionText, this.fRegionType);
-		try {
-			// BUG158846 - deadlock if lock up entire workspace, so only lock
-			// up the file we are searching on
-			ISchedulingRule markerRule = ResourcesPlugin.getWorkspace().getRuleFactory().markerRule(getFile());
-			ResourcesPlugin.getWorkspace().run(findRegions, markerRule, IWorkspace.AVOID_UPDATE, null);
-		} catch (CoreException e) {
-			status = new Status(IStatus.ERROR, SSEUIPlugin.ID, IStatus.OK, "", null); //$NON-NLS-1$
-		}
-		return status;
-	}
-
-	private String getFilename() {
-		String filename = SSEUIMessages.OccurrencesSearchQuery_2; //$NON-NLS-1$ "file"
-		if (getFile() != null)
-			filename = getFile().getName().toString();
-		return filename;
-	}
-
-	public String getLabel() {
-		String label = SSEUIMessages.OccurrencesSearchQuery_0; //$NON-NLS-1$
-		String[] args = {getSearchText(), getOccurrencesCountText(), getFilename()};
-		return MessageFormat.format(label, args);
-	}
-
-	/**
-	 * @return
-	 */
-	private String getOccurrencesCountText() {
-		String count = ""; //$NON-NLS-1$
-		// pa_TODO dynamically change count
-		return count;
-	}
-
-	public ISearchResult getSearchResult() {
-		return new OccurrencesSearchResult(this);
-	}
-
-	protected String getSearchText() {
-		return this.fRegionText;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchResult.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchResult.java
deleted file mode 100644
index 2f7f712..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchResult.java
+++ /dev/null
@@ -1,127 +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.wst.sse.ui.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.search.ui.ISearchQuery;
-import org.eclipse.search.ui.text.AbstractTextSearchResult;
-import org.eclipse.search.ui.text.IEditorMatchAdapter;
-import org.eclipse.search.ui.text.IFileMatchAdapter;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImageHelper;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImages;
-
-
-/**
- * @author pavery
- */
-public class OccurrencesSearchResult extends AbstractTextSearchResult implements IEditorMatchAdapter, IFileMatchAdapter {
-
-	private ISearchQuery fQuery = null;
-	private final Match[] NO_MATCHES = new Match[0];
-
-	public OccurrencesSearchResult(ISearchQuery query) {
-		this.fQuery = query;
-	}
-
-	public void clearMatches() {
-		if (getQuery() instanceof OccurrencesSearchQuery)
-			((OccurrencesSearchQuery) getQuery()).clearMatches();
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.IEditorMatchAdapter#computeContainedMatches(org.eclipse.search.ui.text.AbstractTextSearchResult,
-	 *      org.eclipse.ui.IEditorPart)
-	 */
-	public Match[] computeContainedMatches(AbstractTextSearchResult result, IEditorPart editor) {
-
-		IEditorInput editorInput = editor.getEditorInput();
-		if (editorInput instanceof IFileEditorInput) {
-			IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-			return computeContainedMatches(result, fileEditorInput.getFile());
-		}
-		return this.NO_MATCHES;
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.IFileMatchAdapter#computeContainedMatches(org.eclipse.search.ui.text.AbstractTextSearchResult,
-	 *      org.eclipse.core.resources.IFile)
-	 */
-	public Match[] computeContainedMatches(AbstractTextSearchResult result, IFile file) {
-		return getMatches();
-	}
-
-	public IEditorMatchAdapter getEditorMatchAdapter() {
-		return this;
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.IFileMatchAdapter#getFile(java.lang.Object)
-	 */
-	public IFile getFile(Object element) {
-		// return the file for the match
-		IFile file = null;
-		//System.out.println("get file for:"+element);
-		if (element instanceof IMarker) {
-			IResource r = ((IMarker) element).getResource();
-			if (r instanceof IFile) {
-				file = (IFile) r;
-			}
-		}
-		return file;
-	}
-
-	public IFileMatchAdapter getFileMatchAdapter() {
-		return this;
-	}
-
-	public ImageDescriptor getImageDescriptor() {
-		return EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_OBJ_OCC_MATCH);
-	}
-
-	/**
-	 * This label shows up in the search history
-	 */
-	public String getLabel() {
-		return getQuery().getLabel();
-	}
-
-	public Match[] getMatches() {
-		// ensure that query is done running
-		return ((OccurrencesSearchQuery) getQuery()).getMatches();
-	}
-
-	public ISearchQuery getQuery() {
-		return this.fQuery;
-	}
-
-	public String getTooltip() {
-		return getLabel();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.search.ui.text.IEditorMatchAdapter#isShownInEditor(org.eclipse.search.ui.text.Match,
-	 *      org.eclipse.ui.IEditorPart)
-	 */
-	public boolean isShownInEditor(Match match, IEditorPart editor) {
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchViewPage.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchViewPage.java
deleted file mode 100644
index 2d54131..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/search/OccurrencesSearchViewPage.java
+++ /dev/null
@@ -1,140 +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.wst.sse.ui.internal.search;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.search.ui.text.AbstractTextSearchViewPage;
-import org.eclipse.search.ui.text.Match;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.IGotoMarker;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-/**
- * Base page for Occurrences in file search results.
- * 
- * @author pavery
- */
-public class OccurrencesSearchViewPage extends AbstractTextSearchViewPage {
-
-	private OccurrencesContentProvider fContentProvider = null;
-
-	public OccurrencesSearchViewPage() {
-		super(AbstractTextSearchViewPage.FLAG_LAYOUT_FLAT);
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#clear()
-	 */
-	protected void clear() {
-		if (this.fContentProvider != null)
-			this.fContentProvider.clear();
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTableViewer(org.eclipse.jface.viewers.TableViewer)
-	 */
-	protected void configureTableViewer(TableViewer viewer) {
-
-		// pa_TODO need sorter?
-		viewer.setLabelProvider(new BasicSearchLabelProvider());
-		this.fContentProvider = new OccurrencesContentProvider();
-		viewer.setContentProvider(this.fContentProvider);
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTreeViewer(org.eclipse.jface.viewers.TreeViewer)
-	 */
-	protected void configureTreeViewer(TreeViewer viewer) {
-		// not supported at the moment
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#elementsChanged(java.lang.Object[])
-	 */
-	protected void elementsChanged(Object[] objects) {
-		if (this.fContentProvider != null) {
-			this.fContentProvider.elementsChanged(objects);
-		}
-	}
-
-	public void forceRefresh() {
-		this.fContentProvider.refresh();
-	}
-
-	private IWorkbenchPage getActivePage() {
-
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
-		if (window == null)
-			return null;
-		return workbench.getActiveWorkbenchWindow().getActivePage();
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#getDisplayedMatches(java.lang.Object)
-	 */
-	public Match[] getDisplayedMatches(Object element) {
-		// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=2640
-		// we only ever show one at a time, the element passed in is the match
-		// super was returning null
-		return new Match[]{(Match) element};
-	}
-
-	private void show(IMarker marker) {
-
-		IResource resource = marker.getResource();
-		if (resource == null || !resource.exists())
-			return;
-
-		IWorkbenchPage activePage = getActivePage();
-		try {
-			if (activePage != null) {
-
-				// open editor if needed
-				IDE.openEditor(getActivePage(), marker);
-
-				IEditorPart editor = activePage.getActiveEditor();
-				if (editor != null) {
-					IGotoMarker gotoMarker = (IGotoMarker) editor.getAdapter(IGotoMarker.class);
-					if (gotoMarker != null)
-						gotoMarker.gotoMarker(marker);
-				}
-
-			}
-		} catch (PartInitException e) {
-			// possible exception trying to open editor
-			Logger.logException(e);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#showMatch(org.eclipse.search.ui.text.Match,
-	 *      int, int)
-	 */
-	protected void showMatch(Match match, int currentOffset, int currentLength) throws PartInitException {
-		Object o = match.getElement();
-		if (o instanceof IMarker) {
-			show((IMarker) o);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/SelectionHistory.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/SelectionHistory.java
deleted file mode 100644
index a235234..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/SelectionHistory.java
+++ /dev/null
@@ -1,117 +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.wst.sse.ui.internal.selection;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.texteditor.ITextEditor;
-
-public class SelectionHistory {
-	private ITextEditor fEditor;
-	private List fHistory;
-	private List fHistoryActions;
-	private int fSelectionChangeListenerCounter;
-	private ISelectionChangedListener fSelectionListener;
-
-	public SelectionHistory(ITextEditor editor) {
-		Assert.isNotNull(editor);
-		fEditor = editor;
-		fHistory = new ArrayList(3);
-		fSelectionListener = new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				if (fSelectionChangeListenerCounter == 0)
-					flush();
-			}
-		};
-		fEditor.getSelectionProvider().addSelectionChangedListener(fSelectionListener);
-	}
-
-	public void dispose() {
-		fEditor.getSelectionProvider().removeSelectionChangedListener(fSelectionListener);
-		fEditor = null;
-		if (fHistory != null && !fHistory.isEmpty()) {
-			fHistory.clear();
-		}
-		if (fHistoryActions != null && !fHistoryActions.isEmpty()) {
-			fHistoryActions.clear();
-		}
-	}
-
-	public void flush() {
-		if (fHistory.isEmpty())
-			return;
-		fHistory.clear();
-		updateHistoryAction();
-	}
-
-	public IRegion getLast() {
-		if (isEmpty())
-			return null;
-		int size = fHistory.size();
-		IRegion result = (IRegion) fHistory.remove(size - 1);
-		updateHistoryAction();
-		return result;
-	}
-
-	public void ignoreSelectionChanges() {
-		fSelectionChangeListenerCounter++;
-	}
-
-	public boolean isEmpty() {
-		return fHistory.isEmpty();
-	}
-
-	public void listenToSelectionChanges() {
-		fSelectionChangeListenerCounter--;
-	}
-
-	public void remember(IRegion region) {
-		fHistory.add(region);
-		updateHistoryAction();
-	}
-
-	public void setHistoryAction(IAction action) {
-		Assert.isNotNull(action);
-		
-		if (fHistoryActions == null)
-			fHistoryActions = new ArrayList();
-		if (!fHistoryActions.contains(action))
-			fHistoryActions.add(action);
-		
-		// update action
-		if (fHistory != null && !fHistory.isEmpty())
-			action.setEnabled(true);
-		else
-			action.setEnabled(false);
-	}
-
-	private void updateHistoryAction() {
-		if (fHistoryActions != null && !fHistoryActions.isEmpty()) {
-			boolean enabled = false;
-			if (fHistory != null && !fHistory.isEmpty())
-				enabled = true;
-
-			Iterator iter = fHistoryActions.iterator();
-			while (iter.hasNext()) {
-				((IAction)iter.next()).setEnabled(enabled);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructureSelectAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructureSelectAction.java
deleted file mode 100644
index 7c8f2f2..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructureSelectAction.java
+++ /dev/null
@@ -1,110 +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.wst.sse.ui.internal.selection;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.w3c.dom.Node;
-
-/**
- * @deprecated use StructuredSelectActionDelegate instead
- */
-
-public abstract class StructureSelectAction extends Action {
-	protected StructuredTextEditor fEditor = null;
-	protected SelectionHistory fHistory;
-	protected IStructuredModel fModel = null;
-	protected StructuredTextViewer fViewer = null;
-
-	public StructureSelectAction(StructuredTextEditor editor) {
-		super();
-
-		Assert.isNotNull(editor);
-		fEditor = editor;
-		fHistory = (SelectionHistory) editor.getAdapter(SelectionHistory.class);
-		fViewer = editor.getTextViewer();
-		fModel = editor.getModel();
-		Assert.isNotNull(fViewer);
-	}
-
-	abstract protected IndexedRegion getCursorIndexedRegion();
-
-	protected IndexedRegion getIndexedRegion(int offset) {
-		IndexedRegion indexedRegion = null;
-
-		int lastOffset = offset;
-		IDocument document = fEditor.getDocumentProvider().getDocument(fEditor.getEditorInput());
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-		if (model != null) {
-			try {
-				indexedRegion = model.getIndexedRegion(lastOffset);
-				while (indexedRegion == null && lastOffset >= 0) {
-					lastOffset--;
-					indexedRegion = model.getIndexedRegion(lastOffset);
-				}
-			}
-			finally {
-				model.releaseFromRead();
-			}
-		}
-
-		return indexedRegion;
-	}
-
-	abstract protected Region getNewSelectionRegion(Node node, Region region);
-
-	public void run() {
-		Region currentRegion = new Region(fViewer.getSelectedRange().x, fViewer.getSelectedRange().y);
-		if (currentRegion.getLength() == fViewer.getDocument().getLength())
-			return;
-
-		IndexedRegion cursorIndexedRegion = getCursorIndexedRegion();
-		if (cursorIndexedRegion instanceof Node) {
-			Node cursorNode = (Node) cursorIndexedRegion;
-
-			// use parent node for empty text node
-			if (cursorNode.getNodeType() == Node.TEXT_NODE && cursorNode.getNodeValue().trim().length() == 0) {
-				cursorNode = cursorNode.getParentNode();
-
-				if (cursorNode instanceof IndexedRegion)
-					cursorIndexedRegion = (IndexedRegion) cursorNode;
-			}
-
-			Region cursorNodeRegion = new Region(cursorIndexedRegion.getStartOffset(), cursorIndexedRegion.getEndOffset() - cursorIndexedRegion.getStartOffset());
-
-			Region newRegion = null;
-			if (cursorNodeRegion.getOffset() >= currentRegion.getOffset() && cursorNodeRegion.getOffset() <= currentRegion.getOffset() + currentRegion.getLength() && cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() >= currentRegion.getOffset() && cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() <= currentRegion.getOffset() + currentRegion.getLength())
-				newRegion = getNewSelectionRegion(cursorNode, currentRegion);
-			else
-				newRegion = cursorNodeRegion;
-
-			if (newRegion != null) {
-				fHistory.remember(currentRegion);
-				try {
-					fHistory.ignoreSelectionChanges();
-					fEditor.selectAndReveal(newRegion.getOffset(), newRegion.getLength());
-				}
-				finally {
-					fHistory.listenToSelectionChanges();
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructureSelectHistoryAction.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructureSelectHistoryAction.java
deleted file mode 100644
index c697450..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructureSelectHistoryAction.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.wst.sse.ui.internal.selection;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.ui.texteditor.IUpdate;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.w3c.dom.Node;
-
-public class StructureSelectHistoryAction extends StructureSelectAction implements IUpdate {
-	public StructureSelectHistoryAction(StructuredTextEditor editor) {
-		super(editor);
-		setText(SSEUIMessages.StructureSelectHistory_label); //$NON-NLS-1$
-		setToolTipText(SSEUIMessages.StructureSelectHistory_tooltip); //$NON-NLS-1$
-		setDescription(SSEUIMessages.StructureSelectHistory_description); //$NON-NLS-1$
-
-		update();
-	}
-
-	protected IndexedRegion getCursorIndexedRegion() {
-		return null;
-	}
-
-	protected Region getNewSelectionRegion(Node node, Region region) {
-		return null;
-	}
-
-	public void run() {
-		IRegion old = fHistory.getLast();
-		if (old != null) {
-			try {
-				fHistory.ignoreSelectionChanges();
-				fEditor.selectAndReveal(old.getOffset(), old.getLength());
-			} finally {
-				fHistory.listenToSelectionChanges();
-			}
-		}
-	}
-
-	public void update() {
-		setEnabled(!fHistory.isEmpty());
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructuredSelectActionDelegate.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructuredSelectActionDelegate.java
deleted file mode 100644
index 850c24b..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructuredSelectActionDelegate.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.ui.internal.selection;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-
-abstract public class StructuredSelectActionDelegate implements IEditorActionDelegate, IActionDelegate2, IViewActionDelegate {
-	private IEditorPart fEditor;
-	private SelectionHistory fHistory;
-
-	public void dispose() {
-		fEditor = null;
-		fHistory = null;
-	}
-
-	public void init(IViewPart view) {
-		// do nothing
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-
-	public void run(IAction action) {
-		if (fEditor instanceof ITextEditor) {
-			ITextEditor textEditor = (ITextEditor) fEditor;
-
-			ISelection selection = textEditor.getSelectionProvider().getSelection();
-			IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
-			// determine current text selection
-			if (selection instanceof ITextSelection && document != null) {
-				ITextSelection textSelection = (ITextSelection) selection;
-
-				if (textSelection.getLength() < document.getLength()) {
-					// get current indexed region
-					IndexedRegion cursorIndexedRegion = getCursorIndexedRegion(document, textSelection);
-
-					// determine new selection based on current indexed region
-					Region newSelectionRegion = getNewSelectionRegion(cursorIndexedRegion, textSelection);
-
-					// select new selection
-					if (newSelectionRegion != null) {
-						fHistory.remember(new Region(textSelection.getOffset(), textSelection.getLength()));
-						try {
-							fHistory.ignoreSelectionChanges();
-							textEditor.selectAndReveal(newSelectionRegion.getOffset(), newSelectionRegion.getLength());
-						}
-						finally {
-							fHistory.listenToSelectionChanges();
-						}
-					}
-				}
-			}
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		// do nothing
-	}
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		fEditor = targetEditor;
-		if (fEditor != null)
-			fHistory = (SelectionHistory) fEditor.getAdapter(SelectionHistory.class);
-		else
-			fHistory = null;
-	}
-	
-	abstract protected IndexedRegion getCursorIndexedRegion(IDocument document, ITextSelection textSelection);
-	
-	abstract protected Region getNewSelectionRegion(IndexedRegion indexedRegion, ITextSelection textSelection);
-	
-	/**
-	 * This method will probably be removed and replaced by using new selection provider
-	 * @param document
-	 * @param offset
-	 * @return
-	 */
-	protected IndexedRegion getIndexedRegion(IDocument document, int offset) {
-		IndexedRegion indexedRegion = null;
-
-		int lastOffset = offset;
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-		if (model != null) {
-			try {
-				indexedRegion = model.getIndexedRegion(lastOffset);
-				while (indexedRegion == null && lastOffset >= 0) {
-					lastOffset--;
-					indexedRegion = model.getIndexedRegion(lastOffset);
-				}
-			}
-			finally {
-				model.releaseFromRead();
-			}
-		}
-
-		return indexedRegion;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructuredSelectHistoryActionDelegate.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructuredSelectHistoryActionDelegate.java
deleted file mode 100644
index 47dc5c8..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/selection/StructuredSelectHistoryActionDelegate.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.sse.ui.internal.selection;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-
-/**
- * Selection history action delegate. Keeps track of selection within editor.
- */
-public class StructuredSelectHistoryActionDelegate implements IEditorActionDelegate, IActionDelegate2, IViewActionDelegate {
-	private IEditorPart fEditor;
-	private SelectionHistory fHistory;
-
-	public void dispose() {
-		fEditor = null;
-		fHistory = null;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(SSEUIMessages.StructureSelectHistory_label);
-			action.setToolTipText(SSEUIMessages.StructureSelectHistory_tooltip);
-			action.setDescription(SSEUIMessages.StructureSelectHistory_description);
-		}
-	}
-
-	public void init(IViewPart view) {
-		// do nothing
-	}
-
-	public void run(IAction action) {
-		IRegion old = fHistory.getLast();
-		if (old != null) {
-			try {
-				fHistory.ignoreSelectionChanges();
-				if (fEditor instanceof ITextEditor)
-					((ITextEditor) fEditor).selectAndReveal(old.getOffset(), old.getLength());
-			}
-			finally {
-				fHistory.listenToSelectionChanges();
-			}
-		}
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		// do nothing
-	}
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		fEditor = targetEditor;
-		if (fEditor != null)
-			fHistory = (SelectionHistory) fEditor.getAdapter(SelectionHistory.class);
-		else
-			fHistory = null;
-		if (fHistory != null) {
-			fHistory.setHistoryAction(action);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/spelling/SpellcheckStrategy.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/spelling/SpellcheckStrategy.java
deleted file mode 100644
index 692779a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/spelling/SpellcheckStrategy.java
+++ /dev/null
@@ -1,424 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.spelling;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.reconciler.DirtyRegion;
-import org.eclipse.jface.text.reconciler.IReconcileResult;
-import org.eclipse.jface.text.reconciler.IReconcileStep;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.IAnnotationModelExtension;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.preferences.ScopedPreferenceStore;
-import org.eclipse.ui.texteditor.spelling.ISpellingProblemCollector;
-import org.eclipse.ui.texteditor.spelling.SpellingContext;
-import org.eclipse.ui.texteditor.spelling.SpellingEngineDescriptor;
-import org.eclipse.ui.texteditor.spelling.SpellingProblem;
-import org.eclipse.ui.texteditor.spelling.SpellingService;
-import org.eclipse.wst.sse.core.internal.parser.ForeignRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.ExtendedConfigurationBuilder;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.reconcile.DocumentAdapter;
-import org.eclipse.wst.sse.ui.internal.reconcile.ReconcileAnnotationKey;
-import org.eclipse.wst.sse.ui.internal.reconcile.StructuredReconcileStep;
-import org.eclipse.wst.sse.ui.internal.reconcile.StructuredTextReconcilingStrategy;
-import org.eclipse.wst.sse.ui.internal.reconcile.TemporaryAnnotation;
-
-/**
- * A reconciling strategy that queries the SpellingService using its default
- * engine. Results are show as temporary annotations.
- * 
- * @since 1.5
- */
-public class SpellcheckStrategy extends StructuredTextReconcilingStrategy {
-
-	class SpellCheckPreferenceListener implements IPropertyChangeListener {
-		private boolean isInterestingProperty(Object property) {
-			return SpellingService.PREFERENCE_SPELLING_ENABLED.equals(property) || SpellingService.PREFERENCE_SPELLING_ENGINE.equals(property);
-		}
-
-		public void propertyChange(PropertyChangeEvent event) {
-			if (isInterestingProperty(event.getProperty())) {
-				if (event.getOldValue() == null || event.getNewValue() == null || !event.getNewValue().equals(event.getOldValue())) {
-					reconcile();
-				}
-			}
-		}
-	}
-
-	private class SpellingProblemCollector implements ISpellingProblemCollector {
-		List annotations = new ArrayList();
-
-		public void accept(SpellingProblem problem) {
-			if (!isInterestingProblem(problem))
-				return;
-
-			TemporaryAnnotation annotation = new TemporaryAnnotation(new Position(problem.getOffset(), problem.getLength()), TemporaryAnnotation.ANNOT_WARNING, problem.getMessage(), fReconcileAnnotationKey);
-			/*
-			 * TODO: create and use an IQuickFixProcessor that uses
-			 * problem.getProposals() for fixes [note, the default engine
-			 * doesn't propose fixes, at least without a dictionary].
-			 */
-			annotation.setAdditionalFixInfo(problem);
-			annotations.add(annotation);
-			if (_DEBUG_SPELLING) {
-				Logger.log(Logger.INFO_DEBUG, problem.getMessage());
-			}
-		}
-
-		public void beginCollecting() {
-		}
-
-		void clear() {
-			annotations.clear();
-		}
-
-		public void endCollecting() {
-		}
-
-		/**
-		 * Judge whether a spelling problem is "interesting". Accept any
-		 * regions that are explictly allowed, and since valid prose areas are
-		 * rarely in a complicated document region, accept any document region
-		 * with more than one text region and reject any document regions
-		 * containing foreign text regions.
-		 * 
-		 * @param problem
-		 *            a SpellingProblem
-		 * @return whether the collector should accept the given
-		 *         SpellingProblem
-		 */
-		boolean isInterestingProblem(SpellingProblem problem) {
-			if (getDocument() instanceof IStructuredDocument) {
-				IStructuredDocumentRegion documentRegion = ((IStructuredDocument) getDocument()).getRegionAtCharacterOffset(problem.getOffset());
-				if (documentRegion != null) {
-					ITextRegion textRegion = documentRegion.getRegionAtCharacterOffset(problem.getOffset());
-					if (textRegion != null) {
-						return true;
-					}
-					if (documentRegion.getFirstRegion() instanceof ForeignRegion)
-						return false;
-					if (documentRegion.getRegions().size() == 1)
-						return true;
-					return false;
-				}
-			}
-			return true;
-		}
-
-		IReconcileResult[] getResults() {
-			return (IReconcileResult[]) annotations.toArray(new IReconcileResult[annotations.size()]);
-		}
-	}
-
-	private class SpellingStep extends StructuredReconcileStep {
-		protected IReconcileResult[] reconcileModel(final DirtyRegion dirtyRegion, IRegion subRegion) {
-			SpellingService service = getSpellingService(fContentTypeId + "." + SpellingService.PREFERENCE_SPELLING_ENGINE); //$NON-NLS-1$
-			if (_DEBUG_SPELLING) {
-				Logger.log(Logger.INFO_DEBUG, "Spell checking [" + subRegion.getOffset() + "-" + (subRegion.getOffset() + subRegion.getLength()) + "]"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-			if (getDocument() != null) {
-				service.check(getDocument(), new IRegion[]{subRegion}, fSpellingContext, fProblemCollector, getProgressMonitor());
-			}
-			IReconcileResult[] results = fProblemCollector.getResults();
-			fProblemCollector.clear();
-			return results;
-		}
-	}
-
-	static final boolean _DEBUG_SPELLING = Boolean.valueOf(Platform.getDebugOption("org.eclipse.wst.sse.ui/debug/reconcilerSpelling")).booleanValue(); //$NON-NLS-1$
-
-	static final String ANNOTATION_TYPE = "org.eclipse.wst.sse.ui.temp.spelling"; //$NON-NLS-1$
-
-	private static final String EXTENDED_BUILDER_TYPE = "spellingsupport"; //$NON-NLS-1$
-	static final String KEY_CONTENT_TYPE = "org.eclipse.wst.sse.ui.temp.spelling"; //$NON-NLS-1$
-
-	private String fContentTypeId = null;
-
-	private String fDocumentPartitioning;
-
-	SpellingProblemCollector fProblemCollector = new SpellingProblemCollector();
-
-	/*
-	 * Keying our Temporary Annotations based on the partition doesn't help
-	 * this strategy to only remove its own TemporaryAnnotations since it's
-	 * possibly run on all partitions. Instead, set the key to use an
-	 * arbitrary partition type that we can check for using our own
-	 * implementation of getAnnotationsToRemove(DirtyRegion).
-	 * 
-	 * Value initialized through
-	 * 
-	 * super(ISourceViewer)->super.init()->createReconcileSteps()
-	 */
-	ReconcileAnnotationKey fReconcileAnnotationKey;
-	private IPropertyChangeListener fSpellCheckPreferenceListener;
-
-	SpellingContext fSpellingContext;
-
-	/*
-	 * Value initialized through
-	 * 
-	 * super(ISourceViewer)->super.init()->createReconcileSteps()
-	 */
-	IReconcileStep fSpellingStep;
-
-	String[] fSupportedPartitionTypes;
-
-	public SpellcheckStrategy(ISourceViewer viewer, String contentTypeId) {
-		super(viewer);
-		fContentTypeId = contentTypeId;
-
-		fSpellingContext = new SpellingContext();
-		fSpellingContext.setContentType(Platform.getContentTypeManager().getContentType(fContentTypeId));
-		fReconcileAnnotationKey = new ReconcileAnnotationKey(fSpellingStep, KEY_CONTENT_TYPE, ReconcileAnnotationKey.PARTIAL);
-
-		String[] definitions = ExtendedConfigurationBuilder.getInstance().getDefinitions(EXTENDED_BUILDER_TYPE, fContentTypeId);
-		List defs = new ArrayList();
-		for (int i = 0; i < definitions.length; i++) {
-			defs.addAll(Arrays.asList(StringUtils.unpack(definitions[i])));
-		}
-		fSupportedPartitionTypes = (String[]) defs.toArray(new String[defs.size()]);
-
-		fSpellCheckPreferenceListener = new SpellCheckPreferenceListener();
-	}
-
-	protected boolean containsStep(IReconcileStep step) {
-		return fSpellingStep.equals(step);
-	}
-
-	public void createReconcileSteps() {
-		fSpellingStep = new SpellingStep();
-	}
-
-	String getDocumentPartitioning() {
-		return fDocumentPartitioning == null ? IDocumentExtension3.DEFAULT_PARTITIONING : fDocumentPartitioning;
-	}
-
-	private TemporaryAnnotation[] getSpellingAnnotationsToRemove(IRegion region) {
-		List toRemove = new ArrayList();
-		IAnnotationModel annotationModel = getAnnotationModel();
-		// can be null when closing the editor
-		if (getAnnotationModel() != null) {
-			Iterator i = annotationModel.getAnnotationIterator();
-			while (i.hasNext()) {
-				Object obj = i.next();
-				if (!(obj instanceof TemporaryAnnotation))
-					continue;
-
-				TemporaryAnnotation annotation = (TemporaryAnnotation) obj;
-				ReconcileAnnotationKey key = (ReconcileAnnotationKey) annotation.getKey();
-
-				// then if this strategy knows how to add/remove this
-				// partition type
-				if (key != null && key.equals(fReconcileAnnotationKey)) {
-					Position position = annotation.getPosition();
-					if (key.getScope() == ReconcileAnnotationKey.PARTIAL && position.overlapsWith(region.getOffset(), region.getLength())) {
-						toRemove.add(annotation);
-					}
-					else if (key.getScope() == ReconcileAnnotationKey.TOTAL) {
-						toRemove.add(annotation);
-					}
-				}
-			}
-		}
-
-		return (TemporaryAnnotation[]) toRemove.toArray(new TemporaryAnnotation[toRemove.size()]);
-	}
-
-	/**
-	 * @param engineID
-	 * @return the SpellingService with the preferred engine
-	 */
-	SpellingService getSpellingService(String engineID) {
-		SpellingService defaultService = EditorsUI.getSpellingService();
-
-		SpellingService preferredService = defaultService;
-
-		if (engineID != null) {
-			/*
-			 * Set up a preference store indicating that the given engine
-			 * should be used instead of the default preference store's
-			 * default
-			 */
-			SpellingEngineDescriptor[] descriptors = defaultService.getSpellingEngineDescriptors();
-			for (int i = 0; i < descriptors.length; i++) {
-				if (engineID.equals(descriptors[i].getId())) {
-					IPreferenceStore store = new ScopedPreferenceStore(new InstanceScope(), SSEUIPlugin.getDefault().getBundle().getSymbolicName());
-					store.setValue(SpellingService.PREFERENCE_SPELLING_ENGINE, engineID);
-					preferredService = new SpellingService(store);
-					break;
-				}
-			}
-		}
-		return preferredService;
-	}
-
-	private boolean isSupportedPartitionType(String type) {
-		boolean supported = false;
-		if (fSupportedPartitionTypes == null || fSupportedPartitionTypes.length == 0) {
-			supported = true;
-		}
-		else {
-			for (int i = 0; i < fSupportedPartitionTypes.length; i++) {
-				if (type.equals(fSupportedPartitionTypes[i])) {
-					supported = true;
-					break;
-				}
-			}
-		}
-		return supported;
-	}
-
-	void reconcile() {
-		IDocument document = getDocument();
-		if (document != null) {
-			IRegion documentRegion = new Region(0, document.getLength());
-			reconcile(documentRegion);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.reconciler.IReconcilingStrategy#reconcile(org.eclipse.jface.text.reconciler.DirtyRegion,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public void reconcile(DirtyRegion dirtyRegion, IRegion subRegion) {
-		if (isCanceled())
-			return;
-
-		IAnnotationModel annotationModel = getAnnotationModel();
-
-		IDocument document = getDocument();
-		if (document != null) {
-			try {
-				/**
-				 * Apparently the default spelling engine has noticeable
-				 * overhead for each call made to it, as well as the
-				 * IAnnotatioModel updates we would perform for each. It's
-				 * faster to check the entire dirty region at once if we know
-				 * that we're not differentiating by partition.
-				 * 
-				 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=192530
-				 */
-				if (checkByPartitions()) {
-					ITypedRegion[] partitions = TextUtilities.computePartitioning(document, getDocumentPartitioning(), dirtyRegion.getOffset(), dirtyRegion.getLength(), true);
-					for (int i = 0; i < partitions.length; i++) {
-						if (isSupportedPartitionType(partitions[i].getType())) {
-							spellCheck(dirtyRegion, partitions[i], annotationModel);
-						}
-					}
-				}
-				else {
-					spellCheck(dirtyRegion, dirtyRegion, annotationModel);
-				}
-			}
-			catch (BadLocationException e) {
-			}
-		}
-	}
-
-	boolean checkByPartitions() {
-		return (fSupportedPartitionTypes != null && fSupportedPartitionTypes.length > 0);
-	}
-	
-	private void spellCheck(DirtyRegion dirtyRegion, IRegion regionToBeChecked, IAnnotationModel annotationModel) {
-		StructuredReconcileStep structuredStep = (StructuredReconcileStep) fSpellingStep;
-
-		TemporaryAnnotation[] annotationsToRemove;
-		IReconcileResult[] annotationsToAdd;
-		annotationsToRemove = getSpellingAnnotationsToRemove(regionToBeChecked);
-		annotationsToAdd = structuredStep.reconcile(dirtyRegion, regionToBeChecked);
-
-		if (annotationModel instanceof IAnnotationModelExtension) {
-			IAnnotationModelExtension modelExtension = (IAnnotationModelExtension) annotationModel;
-			Map annotationsToAddMap = new HashMap();
-			for (int i = 0; i < annotationsToAdd.length; i++) {
-				annotationsToAddMap.put(annotationsToAdd[i], ((TemporaryAnnotation) annotationsToAdd[i]).getPosition());
-			}
-			modelExtension.replaceAnnotations(annotationsToRemove, annotationsToAddMap);
-		}
-
-		else {
-			for (int j = 0; j < annotationsToAdd.length; j++) {
-				annotationModel.addAnnotation((TemporaryAnnotation) annotationsToAdd[j], ((TemporaryAnnotation) annotationsToAdd[j]).getPosition());
-			}
-			for (int j = 0; j < annotationsToRemove.length; j++) {
-				annotationModel.removeAnnotation(annotationsToRemove[j]);
-			}
- 		}
- 	}
-	
-	/**
-	 * @param partition
-	 * @see org.eclipse.jface.text.reconciler.IReconcilingStrategy#reconcile(org.eclipse.jface.text.IRegion)
-	 */
-
-	public void reconcile(IRegion partition) {
-		DirtyRegion region = null;
-		IDocument document = getDocument();
-		if (document != null) {
-			try {
-				region = new DirtyRegion(partition.getOffset(), partition.getLength(), DirtyRegion.INSERT, document.get(partition.getOffset(), partition.getLength()));
-				reconcile(region, region);
-			}
-			catch (BadLocationException e) {
-				Logger.logException(e);
-			}
-		}
-	}
-
-	public void setDocument(IDocument document) {
-		if (getDocument() != null) {
-			EditorsUI.getPreferenceStore().removePropertyChangeListener(fSpellCheckPreferenceListener);
-		}
-
-		super.setDocument(document);
-		if (document != null) {
-			if (fSpellingStep == null) {
-				createReconcileSteps();
-			}
-			fSpellingStep.setInputModel(new DocumentAdapter(document));
-		}
-
-		if (getDocument() != null) {
-			EditorsUI.getPreferenceStore().addPropertyChangeListener(fSpellCheckPreferenceListener);
-		}
-	}
-
-	public void setDocumentPartitioning(String partitioning) {
-		fDocumentPartitioning = partitioning;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AbstractHoverProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AbstractHoverProcessor.java
deleted file mode 100644
index 0ea279f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AbstractHoverProcessor.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.taginfo;
-
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.text.DefaultInformationControl;
-import org.eclipse.jface.text.IInformationControl;
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextHoverExtension;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.actions.ActionDefinitionIds;
-import org.eclipse.wst.sse.ui.internal.derived.HTMLTextPresenter;
-
-/**
- * Abstract class for providing hover information for Source editor. Includes
- * a hover control creator which has the "Press F2 for focus" message built
- * in.
- * 
- * @since WTP 1.5
- */
-abstract public class AbstractHoverProcessor implements ITextHover, ITextHoverExtension {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHoverExtension#getHoverControlCreator()
-	 */
-	public IInformationControlCreator getHoverControlCreator() {
-		return new IInformationControlCreator() {
-			public IInformationControl createInformationControl(Shell parent) {
-				return new DefaultInformationControl(parent, SWT.NONE, new HTMLTextPresenter(true), getTooltipAffordanceString());
-			}
-		};
-	}
-
-	/**
-	 * Returns the short cut assigned to the sub menu or <code>null</code>
-	 * if no short cut is assigned.
-	 * 
-	 * @return the short cut as a human readable string or <code>null</code>
-	 */
-	private String getShortCutString() {
-		final IWorkbench workbench = PlatformUI.getWorkbench();
-		final IBindingService bindingService = (IBindingService) workbench.getAdapter(IBindingService.class);
-		final TriggerSequence[] activeBindings = bindingService.getActiveBindingsFor(ActionDefinitionIds.INFORMATION);
-		if (activeBindings.length > 0) {
-			return activeBindings[0].format();
-		}
-
-		return null;
-	}
-
-	/**
-	 * Returns the tool tip affordance string.
-	 * 
-	 * @return the affordance string or <code>null</code> if disabled or no
-	 *         key binding is defined
-	 * @since 3.0
-	 */
-	private String getTooltipAffordanceString() {
-		String sticky = null;
-		String keySequence = getShortCutString();
-		if (keySequence != null) {
-			sticky = NLS.bind(SSEUIMessages.textHoverMakeStickyHint, keySequence);
-		}
-		return sticky;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AnnotationHoverProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AnnotationHoverProcessor.java
deleted file mode 100644
index 5e8475a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/AnnotationHoverProcessor.java
+++ /dev/null
@@ -1,204 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.taginfo;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.text.source.SourceViewer;
-import org.eclipse.ui.editors.text.EditorsUI;
-import org.eclipse.ui.texteditor.AnnotationPreference;
-import org.eclipse.ui.texteditor.ChainedPreferenceStore;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.ITemporaryAnnotation;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Hover help that displays annotations shown in text of editor. Currently,
- * this text hover is used in conjunction with AbstractTextHoverProcessor.
- * 
- * @author amywu
- */
-public class AnnotationHoverProcessor extends AbstractHoverProcessor {
-	private final static String LIST_BEGIN = "<ul>"; //$NON-NLS-1$
-	private final static String LIST_ELEMENT = "<li>"; //$NON-NLS-1$
-	private final static String PARAGRAPH_END = "</p>"; //$NON-NLS-1$
-	private final static String PARAGRAPH_START = "<p>"; //$NON-NLS-1$
-
-	private IPreferenceStore fPreferenceStore = null;
-
-	/**
-	 * 
-	 */
-	public AnnotationHoverProcessor() {
-		super();
-	}
-
-	/**
-	 * Formats a msg to a proper html message
-	 * 
-	 * @param msg -
-	 *            assumes msg is neither null nor empty string
-	 * @return
-	 */
-	private String formatMessage(String msg) {
-		StringBuffer buf = new StringBuffer();
-		buf.append(PARAGRAPH_START);
-		buf.append(StringUtils.convertToHTMLContent(msg));
-		buf.append(PARAGRAPH_END);
-		return buf.toString();
-	}
-
-	/**
-	 * Formats multiple messages into proper html message
-	 * 
-	 * @param messages
-	 * @return
-	 */
-	private String formatMessages(List messages) {
-		StringBuffer buffer = new StringBuffer();
-		buffer.append(PARAGRAPH_START);
-		buffer.append(SSEUIMessages.Multiple_errors); //$NON-NLS-1$
-		buffer.append(LIST_BEGIN);
-
-		Iterator e = messages.iterator();
-		while (e.hasNext()) {
-			buffer.append(LIST_ELEMENT);
-			buffer.append(StringUtils.convertToHTMLContent((String) e.next()));
-		}
-		buffer.append(PARAGRAPH_END);
-		return buffer.toString();
-	}
-
-	/**
-	 * Returns the annotation preference for the given annotation. (copied
-	 * from org.eclipse.jdt.internal.ui.text.java.hover.AnnotationHover)
-	 * 
-	 * @param annotation
-	 *            the annotation
-	 * @return the annotation preference or <code>null</code> if none
-	 */
-	private AnnotationPreference getAnnotationPreference(Annotation annotation) {
-
-		if (annotation.isMarkedDeleted())
-			return null;
-		return EditorsUI.getAnnotationPreferenceLookup().getAnnotationPreference(annotation);
-	}
-
-	public String getHoverInfo(ITextViewer viewer, IRegion hoverRegion) {
-		IAnnotationModel model = ((SourceViewer) viewer).getAnnotationModel();
-		if (model != null) {
-			List messages = new ArrayList();
-			Iterator e = model.getAnnotationIterator();
-			while (e.hasNext()) {
-				Annotation a = (Annotation) e.next();
-				if (!isAnnotationValid(a))
-					continue;
-
-				Position p = model.getPosition(a);
-				// check if this is an annotation in the region we are
-				// concerned with
-				if (p.overlapsWith(hoverRegion.getOffset(), hoverRegion.getLength())) {
-					String msg = a.getText();
-					if ((msg != null) && msg.trim().length() > 0) {
-						// it is possible for temporary annotations to
-						// duplicate other annotations so make sure not to add
-						// dups
-						if (a instanceof ITemporaryAnnotation) {
-							boolean duplicated = false;
-							int j = 0;
-							while (j < messages.size() && !duplicated) {
-								duplicated = messages.get(j).equals(msg);
-								++j;
-							}
-							if (!duplicated) {
-								messages.add(msg);
-							}
-						}
-						else {
-							messages.add(msg);
-						}
-					}
-				}
-			}
-			if (messages.size() > 1) {
-				return formatMessages(messages);
-			}
-			else if (messages.size() > 0) {
-				return formatMessage(messages.get(0).toString());
-			}
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
-		IAnnotationModel model = ((SourceViewer) textViewer).getAnnotationModel();
-		Region hoverRegion = null;
-
-		if (model != null) {
-			Iterator e = model.getAnnotationIterator();
-			while (e.hasNext()) {
-				Annotation a = (Annotation) e.next();
-				if (!isAnnotationValid(a))
-					continue;
-				Position p = model.getPosition(a);
-				if (p.includes(offset)) {
-					// find the smallest region containing offset
-					if ((hoverRegion == null) || (hoverRegion.getLength() > p.getLength())) {
-						hoverRegion = new Region(p.getOffset(), p.getLength());
-					}
-				}
-			}
-		}
-		return hoverRegion;
-	}
-
-	/**
-	 * Retreives the preference store If no preference store is currently
-	 * stored, retreive the appropriate preference store
-	 */
-	private IPreferenceStore getPreferenceStore() {
-		if (fPreferenceStore == null) {
-			IPreferenceStore sseEditorPrefs = SSEUIPlugin.getDefault().getPreferenceStore();
-			IPreferenceStore baseEditorPrefs = EditorsUI.getPreferenceStore();
-			fPreferenceStore = new ChainedPreferenceStore(new IPreferenceStore[]{sseEditorPrefs, baseEditorPrefs});
-		}
-		return fPreferenceStore;
-	}
-
-	boolean isAnnotationValid(Annotation a) {
-		AnnotationPreference preference = getAnnotationPreference(a);
-		if (preference == null)
-			return false;
-		String textPreferenceKey = preference.getTextPreferenceKey();
-		String highlightPreferenceKey = preference.getHighlightPreferenceKey();
-		if (textPreferenceKey == null || !(getPreferenceStore().getBoolean(textPreferenceKey)) || highlightPreferenceKey == null || getPreferenceStore().getBoolean(highlightPreferenceKey))
-			return false;
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/BestMatchHover.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/BestMatchHover.java
deleted file mode 100644
index 3e1c66c..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/BestMatchHover.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.taginfo;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.text.IInformationControlCreator;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextHoverExtension;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-/**
- * Provides the best hover help documentation (by using other hover help
- * processors) Priority of hover help processors is: ProblemHoverProcessor,
- * TagInfoProcessor, AnnotationHoverProcessor
- */
-public class BestMatchHover implements ITextHover, ITextHoverExtension {
-	private ITextHover fBestMatchHover; // current best match text hover
-	private ITextHover fTagInfoHover; // documentation/information hover
-	private List fTextHovers; // list of text hovers to consider in best
-	// match
-
-	public BestMatchHover(ITextHover infotaghover) {
-		fTagInfoHover = infotaghover;
-	}
-
-	/**
-	 * Create a list of text hovers applicable to this best match hover
-	 * processor
-	 * 
-	 * @return List of ITextHover - in abstract class this is empty list
-	 */
-	private List createTextHoversList() {
-		List hoverList = new ArrayList();
-		// if currently debugging, then add the debug hover to the list of
-		// best match
-		if (Logger.isTracing(DebugInfoHoverProcessor.TRACEFILTER)) {
-			hoverList.add(new DebugInfoHoverProcessor());
-		}
-
-		hoverList.add(new ProblemAnnotationHoverProcessor());
-		if (fTagInfoHover != null) {
-			hoverList.add(fTagInfoHover);
-		}
-		hoverList.add(new AnnotationHoverProcessor());
-		return hoverList;
-	}
-
-	public IInformationControlCreator getHoverControlCreator() {
-		IInformationControlCreator creator = null;
-
-		if (fBestMatchHover instanceof ITextHoverExtension) {
-			creator = ((ITextHoverExtension) fBestMatchHover).getHoverControlCreator();
-		}
-		return creator;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public String getHoverInfo(ITextViewer viewer, IRegion hoverRegion) {
-		String displayText = null;
-
-		// already have a best match hover picked out from getHoverRegion call
-		if (fBestMatchHover != null) {
-			displayText = fBestMatchHover.getHoverInfo(viewer, hoverRegion);
-		}
-		// either had no best match hover or best match hover returned null
-		if (displayText == null) {
-			// go through list of text hovers and return first display string
-			Iterator i = getTextHovers().iterator();
-			while ((i.hasNext()) && (displayText == null)) {
-				ITextHover hover = (ITextHover) i.next();
-				displayText = hover.getHoverInfo(viewer, hoverRegion);
-			}
-		}
-		return displayText;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IRegion getHoverRegion(ITextViewer viewer, int offset) {
-		IRegion hoverRegion = null;
-
-		// go through list of text hovers and return first hover region
-		ITextHover hover = null;
-		Iterator i = getTextHovers().iterator();
-		while ((i.hasNext()) && (hoverRegion == null)) {
-			hover = (ITextHover) i.next();
-			hoverRegion = hover.getHoverRegion(viewer, offset);
-		}
-
-		// store the text hover processor that found region
-		if (hoverRegion != null)
-			fBestMatchHover = hover;
-		else
-			fBestMatchHover = null;
-
-		return hoverRegion;
-	}
-
-	private List getTextHovers() {
-		if (fTextHovers == null) {
-			fTextHovers = createTextHoversList();
-		}
-		return fTextHovers;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/DebugInfoHoverProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/DebugInfoHoverProcessor.java
deleted file mode 100644
index 2e292a5..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/DebugInfoHoverProcessor.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.taginfo;
-
-
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITypedRegion;
-
-/**
- * Provides debug hover help
- * 
- * @see org.eclipse.jface.text.ITextHover
- */
-public class DebugInfoHoverProcessor extends AbstractHoverProcessor {
-	public static final String TRACEFILTER = "debuginfohover"; //$NON-NLS-1$
-	protected IPreferenceStore fPreferenceStore = null;
-
-	public DebugInfoHoverProcessor() {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public String getHoverInfo(ITextViewer viewer, IRegion hoverRegion) {
-		String displayText = null;
-		if ((hoverRegion == null) || (viewer == null) || (viewer.getDocument() == null)) {
-			displayText = null;
-		}
-		else {
-			int offset = hoverRegion.getOffset();
-
-			ITypedRegion region;
-			try {
-				region = viewer.getDocument().getPartition(offset);
-				if (region != null) {
-					displayText = region.getType();
-				}
-				else {
-					displayText = "Null Region was returned?!"; //$NON-NLS-1$
-				}
-			}
-			catch (BadLocationException e) {
-				displayText = "BadLocationException Occurred!?"; //$NON-NLS-1$
-			}
-
-		}
-		return displayText;
-	}
-
-	/**
-	 * Returns the region to hover the text over based on the offset.
-	 * 
-	 * @param textViewer
-	 * @param offset
-	 * 
-	 * @return IRegion region to hover over if offset is not over invalid
-	 *         whitespace. otherwise, returns <code>null</code>
-	 * 
-	 * @see ITextHover#getHoverRegion(ITextViewer, int)
-	 */
-	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
-		ITypedRegion region = null;
-		if ((textViewer == null) || (textViewer.getDocument() == null)) {
-			region = null;
-		}
-		else {
-
-			try {
-				region = textViewer.getDocument().getPartition(offset);
-			}
-			catch (BadLocationException e) {
-				region = null;
-			}
-		}
-		return region;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/ProblemAnnotationHoverProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/ProblemAnnotationHoverProcessor.java
deleted file mode 100644
index d9a4c03..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/ProblemAnnotationHoverProcessor.java
+++ /dev/null
@@ -1,51 +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.wst.sse.ui.internal.taginfo;
-
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.ui.texteditor.DefaultMarkerAnnotationAccess;
-
-/**
- * Hover help that displays problem annotations when shown in text of editor.
- * 
- * @author amywu
- */
-public class ProblemAnnotationHoverProcessor extends AnnotationHoverProcessor {
-
-	// these strings are derived from the annotationTypes extension in
-	// org.eclipse.ui.editors plugin
-	// if those strings change, then these strings need to change as well
-	final private String ANNOTATION_ERROR = "org.eclipse.wst.sse.ui.temp.error"; //$NON-NLS-1$
-	final private String ANNOTATION_WARNING = "org.eclipse.wst.sse.ui.temp.warning"; //$NON-NLS-1$
-	private DefaultMarkerAnnotationAccess fAnnotationAccess = new DefaultMarkerAnnotationAccess();
-
-	/**
-	 *  
-	 */
-	public ProblemAnnotationHoverProcessor() {
-		super();
-	}
-
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.taginfo.AnnotationHoverProcessor#isAnnotationValid(org.eclipse.jface.text.source.Annotation)
-	 */
-	protected boolean isAnnotationValid(Annotation a) {
-		String type = a.getType();
-		if (fAnnotationAccess.isSubtype(type, ANNOTATION_ERROR) || fAnnotationAccess.isSubtype(type, ANNOTATION_WARNING))
-			return super.isAnnotationValid(a);
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/TextHoverManager.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/TextHoverManager.java
deleted file mode 100644
index b29af22..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/taginfo/TextHoverManager.java
+++ /dev/null
@@ -1,243 +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.wst.sse.ui.internal.taginfo;
-
-import java.util.HashMap;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.wst.sse.ui.internal.Logger;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.preferences.EditorPreferenceNames;
-
-/**
- * Manages text hovers for Structured Text editors
- * 
- * @author amywu
- */
-public class TextHoverManager {
-	/**
-	 * Contains description of a text hover
-	 */
-	public class TextHoverDescriptor {
-		private String fDescription;
-		private boolean fEnabled;
-		private String fId;
-		private String fLabel;
-		private String fModifierString;
-
-		/**
-		 * @param id
-		 * @param label
-		 * @param desc
-		 */
-		public TextHoverDescriptor(String id, String label, String desc) {
-			fId = id;
-			fLabel = label;
-			fDescription = desc;
-		}
-
-		/**
-		 * @param id
-		 * @param label
-		 * @param desc
-		 * @param enabled
-		 * @param modifierString
-		 */
-		public TextHoverDescriptor(String id, String label, String desc, boolean enabled, String modifierString) {
-			fId = id;
-			fLabel = label;
-			fDescription = desc;
-			fEnabled = enabled;
-			fModifierString = modifierString;
-		}
-
-		/**
-		 * @return Returns the fDescription.
-		 */
-		public String getDescription() {
-			return fDescription;
-		}
-
-		/**
-		 * @return Returns the fId.
-		 */
-		public String getId() {
-			return fId;
-		}
-
-		/**
-		 * @return Returns the fLabel
-		 */
-		public String getLabel() {
-			return fLabel;
-		}
-
-		/**
-		 * @return Returns the fModifierString.
-		 */
-		public String getModifierString() {
-			return fModifierString;
-		}
-
-		/**
-		 * @return Returns the fEnabled.
-		 */
-		public boolean isEnabled() {
-			return fEnabled;
-		}
-
-		/**
-		 * @param enabled
-		 *            The fEnabled to set.
-		 */
-		public void setEnabled(boolean enabled) {
-			fEnabled = enabled;
-		}
-
-		/**
-		 * @param modifierString
-		 *            The fModifierString to set.
-		 */
-		public void setModifierString(String modifierString) {
-			fModifierString = modifierString;
-		}
-	}
-
-	public static final String ANNOTATION_HOVER = "annotationHover"; //$NON-NLS-1$
-
-	// list of different types of Source editor hovers
-	public static final String COMBINATION_HOVER = "combinationHover"; //$NON-NLS-1$
-	// hover descriptions are in .properties file with the key in the form of
-	// "[id]_desc"
-	private static final String DESCRIPTION_KEY = "_desc"; //$NON-NLS-1$
-	public static final String DOCUMENTATION_HOVER = "documentationHover"; //$NON-NLS-1$
-	public static final String HOVER_ATTRIBUTE_SEPARATOR = "|"; //$NON-NLS-1$
-	public static final String HOVER_SEPARATOR = ";"; //$NON-NLS-1$
-
-	// hover labels are in .properties file with the key in the form of
-	// "[id]_label"
-	private static final String LABEL_KEY = "_label"; //$NON-NLS-1$
-
-	public static final String NO_MODIFIER = "0"; //$NON-NLS-1$
-	public static final String PROBLEM_HOVER = "problemHover"; //$NON-NLS-1$
-	public static final String[] TEXT_HOVER_IDS = new String[]{COMBINATION_HOVER, PROBLEM_HOVER, DOCUMENTATION_HOVER, ANNOTATION_HOVER};
-	/**
-	 * Current list of Structured Text editor text hovers
-	 */
-	private TextHoverDescriptor[] fTextHovers;
-
-	public TextHoverManager() {
-		super();
-	}
-
-	/**
-	 * Create a best match hover with the give text hover as the documentation
-	 * hover
-	 * 
-	 * @param infoHover
-	 * @return ITextHover
-	 */
-	public ITextHover createBestMatchHover(ITextHover infoHover) {
-		return new BestMatchHover(infoHover);
-	}
-
-	/**
-	 * Generate a list of text hover descriptors from the given delimited
-	 * string
-	 * 
-	 * @param textHoverStrings
-	 * @return
-	 */
-	public TextHoverDescriptor[] generateTextHoverDescriptors(String textHoverStrings) {
-		StringTokenizer st = new StringTokenizer(textHoverStrings, HOVER_SEPARATOR);
-
-		// read from preference and load id-descriptor mapping to a hash table
-		HashMap idToModifier = new HashMap(st.countTokens());
-		while (st.hasMoreTokens()) {
-			String textHoverString = st.nextToken();
-			StringTokenizer st2 = new StringTokenizer(textHoverString, HOVER_ATTRIBUTE_SEPARATOR);
-			if (st2.countTokens() == 3) {
-				String id = st2.nextToken();
-				boolean enabled = Boolean.valueOf(st2.nextToken()).booleanValue();
-				String modifierString = st2.nextToken();
-				if (modifierString.equals(NO_MODIFIER))
-					modifierString = ""; //$NON-NLS-1$
-
-				String label = null;
-				String description = null;
-				try {
-					label = SSEUIMessages.getResourceBundle().getString(id + LABEL_KEY);
-					description = SSEUIMessages.getResourceBundle().getString(id + DESCRIPTION_KEY);
-				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-				}
-				TextHoverDescriptor descriptor = new TextHoverDescriptor(id, label, description, enabled, modifierString);
-				// should check to see if ids appear more than once
-				idToModifier.put(id, descriptor);
-			}
-		}
-
-		// go through all defined text hovers and match with their preference
-		TextHoverDescriptor[] descriptors = new TextHoverDescriptor[TEXT_HOVER_IDS.length];
-		for (int i = 0; i < TEXT_HOVER_IDS.length; i++) {
-			TextHoverDescriptor desc = (TextHoverDescriptor) idToModifier.get(TEXT_HOVER_IDS[i]);
-			if (desc != null) {
-				descriptors[i] = desc;
-			}
-			else {
-				String label = null;
-				String description = null;
-				try {
-					label = SSEUIMessages.getResourceBundle().getString(TEXT_HOVER_IDS[i] + LABEL_KEY);
-					description = SSEUIMessages.getResourceBundle().getString(TEXT_HOVER_IDS[i] + DESCRIPTION_KEY);
-				}
-				catch (Exception e) {
-					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-				}
-				descriptors[i] = new TextHoverDescriptor(TEXT_HOVER_IDS[i], label, description);
-			}
-		}
-		return descriptors;
-	}
-
-	private IPreferenceStore getPreferenceStore() {
-		return SSEUIPlugin.getDefault().getPreferenceStore();
-	}
-
-
-	/**
-	 * Returns the text hovers for Structured Text editor. If fTextHover has
-	 * not been initialied, it will be initialized.
-	 * 
-	 * @return Returns the fTextHovers.
-	 */
-	public TextHoverDescriptor[] getTextHovers() {
-		if (fTextHovers == null) {
-			String textHoverStrings = getPreferenceStore().getString(EditorPreferenceNames.EDITOR_TEXT_HOVER_MODIFIERS);
-			fTextHovers = generateTextHoverDescriptors(textHoverStrings);
-		}
-		return fTextHovers;
-	}
-
-	/**
-	 * Sets fTextHovers to null so that next time getTextHovers is called,
-	 * fTextHovers will be populated with the latest preferences.
-	 */
-	public void resetTextHovers() {
-		fTextHovers = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/text/DocumentRegionEdgeMatcher.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/text/DocumentRegionEdgeMatcher.java
deleted file mode 100644
index 48d20e1..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/text/DocumentRegionEdgeMatcher.java
+++ /dev/null
@@ -1,118 +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.wst.sse.ui.internal.text;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.source.ICharacterPairMatcher;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-
-
-/**
- * Matches the start and ending characters of IStructuredDocumentRegions with
- * the given allowed types. Note that Eclipse R3M8 only paints single
- * character-wide matches and this isn't true pair matching behavior. See RFE
- * #56836 at https://bugs.eclipse.org/bugs/show_bug.cgi?id=56836.
- */
-public class DocumentRegionEdgeMatcher implements ICharacterPairMatcher {
-
-	public static final String ID = "characterpairmatcher"; //$NON-NLS-1$
-
-	protected int fAnchor;
-
-	protected ICharacterPairMatcher fNextMatcher;
-
-	protected List fRegionTypes;
-
-	public DocumentRegionEdgeMatcher(String[] validContexts, ICharacterPairMatcher nextMatcher) {
-		fRegionTypes = Arrays.asList(validContexts);
-		fNextMatcher = nextMatcher;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#clear()
-	 */
-	public void clear() {
-		if (fNextMatcher != null)
-			fNextMatcher.clear();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#dispose()
-	 */
-	public void dispose() {
-		if (fNextMatcher != null)
-			fNextMatcher.dispose();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#getAnchor()
-	 */
-	public int getAnchor() {
-		if (fAnchor < 0 && fNextMatcher != null)
-			return fNextMatcher.getAnchor();
-		return fAnchor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.source.ICharacterPairMatcher#match(org.eclipse.jface.text.IDocument,
-	 *      int)
-	 */
-	public IRegion match(IDocument document, int offset) {
-		if(offset < 0 || offset >= document.getLength())
-			return null;
-		
-		IRegion match = null;
-		if (!fRegionTypes.isEmpty() && document instanceof IStructuredDocument) {
-			IStructuredDocumentRegion docRegion = ((IStructuredDocument) document).getRegionAtCharacterOffset(offset);
-			if (docRegion != null) {
-				// look at the previous document region first since its end ==
-				// this one's start
-				if (docRegion.getPrevious() != null && docRegion.getPrevious().getEndOffset() == offset && fRegionTypes.contains(docRegion.getPrevious().getType())) {
-					fAnchor = ICharacterPairMatcher.RIGHT;
-					match = new Region(docRegion.getPrevious().getStartOffset(), 1);
-				}
-				// check for offset in the last text region for a match to
-				// document region start offset
-				else if (fRegionTypes.contains(docRegion.getType()) && docRegion.getStartOffset(docRegion.getLastRegion()) <= offset && offset <= docRegion.getEndOffset(docRegion.getLastRegion())) {
-					fAnchor = ICharacterPairMatcher.RIGHT;
-					match = new Region(docRegion.getStartOffset(), 1);
-				}
-				// check for offset in the first text region for a match to
-				// document region end offset
-				else if (fRegionTypes.contains(docRegion.getType())) {
-					if (docRegion.getStartOffset(docRegion.getFirstRegion()) <= offset && offset <= docRegion.getEndOffset(docRegion.getFirstRegion())) {
-						fAnchor = ICharacterPairMatcher.LEFT;
-						match = new Region(docRegion.getEndOffset() - 1, 1);
-					}
-				}
-			}
-		}
-		if (match == null && fNextMatcher != null) {
-			fAnchor = -1;
-			match = fNextMatcher.match(document, offset);
-		}
-		return match;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ui/OffsetStatusLineContributionItem.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ui/OffsetStatusLineContributionItem.java
deleted file mode 100644
index 6fa7bf1..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ui/OffsetStatusLineContributionItem.java
+++ /dev/null
@@ -1,1039 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.internal.ui;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension3;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.jface.text.reconciler.IReconcileStep;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.IAnnotationModel;
-import org.eclipse.jface.viewers.ArrayContentProvider;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Sash;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.TabFolder;
-import org.eclipse.swt.widgets.TabItem;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.ISelectionService;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.MarkerAnnotation;
-import org.eclipse.ui.texteditor.MarkerUtilities;
-import org.eclipse.ui.texteditor.SimpleMarkerAnnotation;
-import org.eclipse.ui.texteditor.StatusLineContributionItem;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredPartitioning;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Utilities;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.sse.ui.internal.reconcile.ReconcileAnnotationKey;
-import org.eclipse.wst.sse.ui.internal.reconcile.TemporaryAnnotation;
-
-/**
- * @author nsd A Status Line contribution intended to display the selected
- *         offsets in an editor. Double-clicking shows information about
- *         partitions, document regions, annotations, and selection.
- */
-public class OffsetStatusLineContributionItem extends StatusLineContributionItem {
-
-	class AnnotationPropertySource implements IPropertySource {
-		Annotation fAnnotation = null;
-		IPropertyDescriptor[] fDescriptors = null;
-		String[] TEMPORARY_ANNOTATION_KEYS = new String[]{"Partition Type", "Step", "Scope", "Offset", "Length", "Description"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-
-		public AnnotationPropertySource(Annotation annotation) {
-			super();
-			fAnnotation = annotation;
-		}
-
-		public Object getEditableValue() {
-			return null;
-		}
-
-		public IPropertyDescriptor[] getPropertyDescriptors() {
-			if (fDescriptors == null) {
-				try {
-					if (fAnnotation instanceof SimpleMarkerAnnotation) {
-						Map attrs = ((SimpleMarkerAnnotation) fAnnotation).getMarker().getAttributes();
-						Object[] keys = attrs.keySet().toArray();
-
-						fDescriptors = new IPropertyDescriptor[keys.length];
-						for (int i = 0; i < keys.length; i++) {
-							TextPropertyDescriptor descriptor = new TextPropertyDescriptor(keys[i].toString(), keys[i].toString());
-							fDescriptors[i] = descriptor;
-						}
-					}
-					else if (fAnnotation instanceof TemporaryAnnotation) {
-						Object key = ((TemporaryAnnotation) fAnnotation).getKey();
-						if (key != null && key instanceof ReconcileAnnotationKey) {
-							String[] keys = TEMPORARY_ANNOTATION_KEYS;
-							fDescriptors = new IPropertyDescriptor[keys.length];
-							for (int i = 0; i < keys.length; i++) {
-								TextPropertyDescriptor descriptor = new TextPropertyDescriptor(keys[i].toString(), keys[i].toString());
-								fDescriptors[i] = descriptor;
-							}
-						}
-					}
-				}
-				catch (CoreException e) {
-					e.printStackTrace();
-				}
-			}
-			if (fDescriptors == null)
-				fDescriptors = new IPropertyDescriptor[0];
-			return fDescriptors;
-		}
-
-		public Object getPropertyValue(Object id) {
-			String value = null;
-			if (fAnnotation instanceof SimpleMarkerAnnotation) {
-				Object o;
-				try {
-					o = ((SimpleMarkerAnnotation) fAnnotation).getMarker().getAttributes().get(id);
-					if (o != null) {
-						value = o.toString();
-					}
-				}
-				catch (CoreException e) {
-				}
-			}
-			else if (fAnnotation instanceof TemporaryAnnotation) {
-				if (TEMPORARY_ANNOTATION_KEYS[0].equals(id)) {
-					Object key = ((TemporaryAnnotation) fAnnotation).getKey();
-					if (key != null && key instanceof ReconcileAnnotationKey) {
-						value = ((ReconcileAnnotationKey) key).getPartitionType();
-					}
-				}
-				else if (TEMPORARY_ANNOTATION_KEYS[1].equals(id)) {
-					Object key = ((TemporaryAnnotation) fAnnotation).getKey();
-					if (key != null && key instanceof ReconcileAnnotationKey) {
-						IReconcileStep step = ((ReconcileAnnotationKey) key).getStep();
-						if (step != null) {
-							value = step.getClass().getName();
-						}
-					}
-				}
-				else if (TEMPORARY_ANNOTATION_KEYS[2].equals(id)) {
-					Object key = ((TemporaryAnnotation) fAnnotation).getKey();
-					if (key != null && key instanceof ReconcileAnnotationKey) {
-						int scope = ((ReconcileAnnotationKey) key).getScope();
-						if (scope == ReconcileAnnotationKey.PARTIAL) {
-							value = "PARTIAL"; //$NON-NLS-1$
-						}
-						if (scope == ReconcileAnnotationKey.TOTAL) {
-							value = "TOTAL"; //$NON-NLS-1$
-						}
-					}
-				}
-				else if (TEMPORARY_ANNOTATION_KEYS[3].equals(id)) {
-					IAnnotationModel annotationModel = fTextEditor.getDocumentProvider().getAnnotationModel(fTextEditor.getEditorInput());
-					Position p = annotationModel.getPosition(fAnnotation);
-					if (p != null) {
-						value = String.valueOf(p.getOffset());
-					}
-				}
-				else if (TEMPORARY_ANNOTATION_KEYS[4].equals(id)) {
-					IAnnotationModel annotationModel = fTextEditor.getDocumentProvider().getAnnotationModel(fTextEditor.getEditorInput());
-					Position p = annotationModel.getPosition(fAnnotation);
-					if (p != null) {
-						value = String.valueOf(p.getLength());
-					}
-				}
-				else if (TEMPORARY_ANNOTATION_KEYS[5].equals(id)) {
-					value = ((TemporaryAnnotation) fAnnotation).getDescription();
-				}
-			}
-			return value;
-		}
-
-		public boolean isPropertySet(Object id) {
-			return false;
-		}
-
-		public void resetPropertyValue(Object id) {
-			try {
-				if (fAnnotation instanceof SimpleMarkerAnnotation) {
-					((SimpleMarkerAnnotation) fAnnotation).getMarker().getAttributes().remove(id);
-				}
-				else if (fAnnotation instanceof TemporaryAnnotation) {
-				}
-			}
-			catch (CoreException e) {
-				e.printStackTrace();
-			}
-		}
-
-		public void setPropertyValue(Object id, Object value) {
-			try {
-				if (fAnnotation instanceof SimpleMarkerAnnotation) {
-					((MarkerAnnotation) fAnnotation).getMarker().setAttribute(id.toString(), value);
-				}
-				else if (fAnnotation instanceof TemporaryAnnotation) {
-				}
-			}
-			catch (CoreException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	class InformationDialog extends Dialog {
-
-		IDocument fDocument = fTextEditor.getDocumentProvider().getDocument(fTextEditor.getEditorInput());
-
-		public InformationDialog(Shell parentShell) {
-			super(parentShell);
-			setShellStyle(getShellStyle() | SWT.RESIZE);
-		}
-
-		private void createAnnotationTabContents(Composite annotationsTabComposite) {
-			annotationsTabComposite.setLayout(new GridLayout());
-			annotationsTabComposite.setLayoutData(new GridData());
-
-			final Composite annotationsComposite = new Composite(annotationsTabComposite, SWT.NONE);
-			annotationsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-			final TableViewer annotationsTable = new TableViewer(annotationsComposite, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-			annotationsTable.setContentProvider(new ArrayContentProvider());
-			annotationsTable.getTable().setHeaderVisible(true);
-			annotationsTable.getTable().setLinesVisible(true);
-			String[] columns = new String[]{"Line", "Owner", "Type", "Class", "Message"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-			annotationsTable.setLabelProvider(new ITableLabelProvider() {
-				public void addListener(ILabelProviderListener listener) {
-				}
-
-				public void dispose() {
-				}
-
-				public Image getColumnImage(Object element, int columnIndex) {
-					return null;
-				}
-
-				public String getColumnText(Object element, int columnIndex) {
-					Annotation annotation = (Annotation) element;
-					String text = null;
-					switch (columnIndex) {
-						case 0 :
-							text = getLineNumber(annotation);
-							break;
-						case 1 :
-							text = getOwner(annotation);
-							break;
-						case 2 :
-							text = getType(annotation); //$NON-NLS-1$
-							break;
-						case 3 :
-							text = annotation.getClass().getName();
-							break;
-						case 4 :
-							text = annotation.getText();
-							break;
-					}
-					if (text == null)
-						text = ""; //$NON-NLS-1$
-					return text;
-				}
-
-
-				private String getOwner(Annotation annotation) {
-					String owner = null;
-					if (annotation instanceof MarkerAnnotation) {
-						owner = ((MarkerAnnotation) annotation).getMarker().getAttribute("owner", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$				
-					}
-					else if (annotation instanceof TemporaryAnnotation) {
-						Object key = ((TemporaryAnnotation) annotation).getKey();
-						if (key != null) {
-							if (key instanceof ReconcileAnnotationKey) {
-								key = key.getClass().getName();
-							}
-							if (key != null)
-								owner = key.toString();
-						}
-					}
-					return owner;
-				}
-
-				private String getType(Annotation annotation) {
-					String type = null;
-					if (annotation instanceof MarkerAnnotation) {
-						type = MarkerUtilities.getMarkerType(((MarkerAnnotation) annotation).getMarker());
-					}
-					else {
-						type = annotation.getType();
-					}
-					if (type == null)
-						type = ""; //$NON-NLS-1$
-					return type;
-				}
-
-				public boolean isLabelProperty(Object element, String property) {
-					return true;
-				}
-
-				public void removeListener(ILabelProviderListener listener) {
-				}
-			});
-
-			TableLayout tlayout = new TableLayout();
-			CellEditor[] cellEditors = new CellEditor[columns.length];
-			int columnWidths[] = new int[]{Display.getCurrent().getBounds().width / 14, Display.getCurrent().getBounds().width / 7, Display.getCurrent().getBounds().width / 7, Display.getCurrent().getBounds().width / 14, Display.getCurrent().getBounds().width / 7};
-			for (int i = 0; i < columns.length; i++) {
-				tlayout.addColumnData(new ColumnWeightData(1));
-				TableColumn tc = new TableColumn(annotationsTable.getTable(), SWT.NONE);
-				tc.setText(columns[i]);
-				tc.setResizable(true);
-				tc.setWidth(columnWidths[i]);
-			}
-			annotationsTable.setCellEditors(cellEditors);
-			annotationsTable.setColumnProperties(columns);
-			List matchingAnnotations = new ArrayList(0);
-			if (fTextEditor != null) {
-				IAnnotationModel annotationModel = fTextEditor.getDocumentProvider().getAnnotationModel(fTextEditor.getEditorInput());
-				if (annotationModel != null) {
-					Iterator iterator = annotationModel.getAnnotationIterator();
-					while (iterator.hasNext()) {
-						Annotation element = (Annotation) iterator.next();
-						if (true) {
-							matchingAnnotations.add(element);
-						}
-					}
-				}
-			}
-			annotationsTable.setSorter(new ViewerSorter());
-			annotationsTable.setInput(matchingAnnotations);
-
-			final Sash sash = new Sash(annotationsComposite, SWT.HORIZONTAL);
-
-			final PropertySheetPage propertySheet = new PropertySheetPage();
-			propertySheet.createControl(annotationsComposite);
-			propertySheet.setPropertySourceProvider(new IPropertySourceProvider() {
-				public IPropertySource getPropertySource(Object object) {
-					if (object instanceof Annotation) {
-						IPropertySource annotationPropertySource = new AnnotationPropertySource(((Annotation) object));
-						return annotationPropertySource;
-					}
-					return null;
-				}
-			});
-
-			annotationsTable.addSelectionChangedListener(new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					propertySheet.selectionChanged(null, event.getSelection());
-				}
-			});
-
-			final FormLayout form = new FormLayout();
-			annotationsComposite.setLayout(form);
-
-			FormData tableData = new FormData();
-			tableData.top = new FormAttachment(0, 0);
-			tableData.bottom = new FormAttachment(sash, 2);
-			tableData.left = new FormAttachment(0, 0);
-			tableData.right = new FormAttachment(100, 0);
-			annotationsTable.getControl().setLayoutData(tableData);
-
-			FormData propertiesData = new FormData();
-			propertiesData.top = new FormAttachment(sash, 2);
-			propertiesData.left = new FormAttachment(0, 0);
-			propertiesData.right = new FormAttachment(100, 0);
-			propertiesData.bottom = new FormAttachment(100, 0);
-			propertySheet.getControl().setLayoutData(propertiesData);
-
-			final FormData sashData = new FormData();
-			sashData.top = new FormAttachment(60, 0);
-			sashData.left = new FormAttachment(0, 0);
-			sashData.right = new FormAttachment(100, 0);
-			sash.setLayoutData(sashData);
-			sash.addListener(SWT.Selection, new org.eclipse.swt.widgets.Listener() {
-				public void handleEvent(Event e) {
-					sashData.top = new FormAttachment(0, e.y);
-					annotationsComposite.layout();
-				}
-			});
-			annotationsComposite.pack(true);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
-		 */
-		protected Control createDialogArea(Composite parent) {
-			ISelection sel = fTextEditor.getSelectionProvider().getSelection();
-			ITextSelection textSelection = (ITextSelection) sel;
-			parent.getShell().setText(SSEUIMessages.OffsetStatusLineContributionItem_0 + textSelection.getOffset() + "-" + (textSelection.getOffset() + textSelection.getLength())); //$NON-NLS-1$ //$NON-NLS-2$
-			Composite composite = (Composite) super.createDialogArea(parent);
-
-			Text documentTypeLabel = new Text(composite, SWT.SINGLE | SWT.READ_ONLY);
-			GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
-			gd.horizontalSpan = 2;
-			documentTypeLabel.setLayoutData(gd);
-			documentTypeLabel.setText(SSEUIMessages.OffsetStatusLineContributionItem_6 + fDocument.getClass().getName()); //$NON-NLS-1$
-
-			Text documentProviderLabel = new Text(composite, SWT.SINGLE | SWT.READ_ONLY);
-			gd = new GridData(SWT.FILL, SWT.FILL, true, false);
-			gd.horizontalSpan = 2;
-			documentProviderLabel.setLayoutData(gd);
-			documentProviderLabel.setText(SSEUIMessages.OffsetStatusLineContributionItem_7 + fTextEditor.getDocumentProvider().getClass().getName()); //$NON-NLS-1$
-
-			Text editorInputLabel = new Text(composite, SWT.SINGLE | SWT.READ_ONLY);
-			gd = new GridData(SWT.FILL, SWT.FILL, true, false);
-			gd.horizontalSpan = 2;
-			editorInputLabel.setLayoutData(gd);
-			editorInputLabel.setText(SSEUIMessages.OffsetStatusLineContributionItem_12 + fTextEditor.getEditorInput().getClass().getName()); //$NON-NLS-1$
-
-			IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-			if (model != null) {
-				Text modelContentTypeLabel = new Text(composite, SWT.SINGLE | SWT.READ_ONLY);
-				gd = new GridData(SWT.FILL, SWT.FILL, true, false);
-				gd.horizontalSpan = 2;
-				modelContentTypeLabel.setLayoutData(gd);
-				modelContentTypeLabel.setText(SSEUIMessages.OffsetStatusLineContributionItem_4 + model.getContentTypeIdentifier()); //$NON-NLS-1$
-
-				Text modelHandlerContentTypeLabel = new Text(composite, SWT.MULTI | SWT.WRAP | SWT.READ_ONLY);
-				gd = new GridData(SWT.FILL, SWT.FILL, true, false);
-				gd.horizontalSpan = 2;
-				modelHandlerContentTypeLabel.setLayoutData(gd);
-				modelHandlerContentTypeLabel.setText(SSEUIMessages.OffsetStatusLineContributionItem_5 + model.getModelHandler() + " (" + model.getModelHandler().getAssociatedContentTypeId() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-				Label blankRow = new Label(composite, SWT.NONE);
-				gd = new GridData(SWT.FILL, SWT.FILL, true, false);
-				gd.horizontalSpan = 2;
-				blankRow.setLayoutData(gd);
-			}
-			if (model != null) {
-				model.releaseFromRead();
-			}
-
-			TabFolder tabfolder = new TabFolder(composite, SWT.NONE);
-			tabfolder.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-			TabItem partitionTab = new TabItem(tabfolder, SWT.BORDER);
-			partitionTab.setText(SSEUIMessages.OffsetStatusLineContributionItem_2); //$NON-NLS-1$
-			Composite partitions = new Composite(tabfolder, SWT.NONE);
-			partitionTab.setControl(partitions);
-			createPartitionTabContents(partitions);
-
-			TabItem annotationsTab = new TabItem(tabfolder, SWT.BORDER);
-			annotationsTab.setText("Annotations"); //$NON-NLS-1$
-			Composite annotations = new Composite(tabfolder, SWT.NONE);
-			annotationsTab.setControl(annotations);
-			createAnnotationTabContents(annotations);
-
-			// only create the ITextRegions tab for IStructuredDocuments
-			if (fDocument instanceof IStructuredDocument) {
-				TabItem regionTab = new TabItem(tabfolder, SWT.BORDER);
-				regionTab.setText(SSEUIMessages.OffsetStatusLineContributionItem_3); //$NON-NLS-1$
-				SashForm regions = new SashForm(tabfolder, SWT.NONE);
-				regions.setOrientation(SWT.HORIZONTAL);
-				regionTab.setControl(regions);
-				createRegionTabContents(regions);
-			}
-
-			TabItem editorSelectionTab = new TabItem(tabfolder, SWT.BORDER);
-			editorSelectionTab.setText(SSEUIMessages.OffsetStatusLineContributionItem_14);
-			Composite editorSelectionComposite = new Composite(tabfolder, SWT.NONE);
-			editorSelectionTab.setControl(editorSelectionComposite);
-			fillSelectionTabContents(editorSelectionComposite, fTextEditor.getSelectionProvider().getSelection());
-
-			IEditorSite site = fTextEditor.getEditorSite();
-			if (site != null) {
-				IWorkbenchWindow window = site.getWorkbenchWindow();
-				if (window != null) {
-					ISelectionService service = window.getSelectionService();
-					if (service != null && !service.getSelection().equals(fTextEditor.getSelectionProvider().getSelection())) {
-						TabItem selectionServiceTab = new TabItem(tabfolder, SWT.BORDER);
-						selectionServiceTab.setText(SSEUIMessages.OffsetStatusLineContributionItem_19);
-						Composite selectionServiceComposite = new Composite(tabfolder, SWT.NONE);
-						selectionServiceTab.setControl(selectionServiceComposite);
-						fillSelectionTabContents(selectionServiceComposite, service.getSelection());
-					}
-				}
-			}
-
-			return composite;
-		}
-
-		/**
-		 * @param area
-		 */
-		private void createPartitionTabContents(Composite area) {
-			area.setLayout(new GridLayout());
-			area.setLayoutData(new GridData());
-
-			Composite partioningComposite = new Composite(area, SWT.NONE);
-			partioningComposite.setLayout(new GridLayout(2, false));
-			partioningComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-
-			Label label = new Label(partioningComposite, SWT.SINGLE);
-			label.setText(SSEUIMessages.OffsetStatusLineContributionItem_8); //$NON-NLS-1$
-			label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-			final Combo partitioningCombo = new Combo(partioningComposite, SWT.READ_ONLY);
-			partitioningCombo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-
-			final Label partitionerInstanceLabel = new Label(partioningComposite, SWT.SINGLE);
-			GridData gd = new GridData(SWT.FILL, SWT.FILL, true, false);
-			gd.horizontalSpan = 2;
-			partitionerInstanceLabel.setLayoutData(gd);
-
-			final TableViewer fPartitionTable = new TableViewer(partioningComposite, SWT.FULL_SELECTION);
-			gd = new GridData(SWT.FILL, SWT.FILL, true, true);
-			gd.horizontalSpan = 2;
-			fPartitionTable.getControl().setLayoutData(gd);
-			fPartitionTable.setContentProvider(new ArrayContentProvider());
-			fPartitionTable.getTable().setHeaderVisible(true);
-			fPartitionTable.getTable().setLinesVisible(true);
-			String[] columns = new String[]{SSEUIMessages.OffsetStatusLineContributionItem_9, SSEUIMessages.OffsetStatusLineContributionItem_10, SSEUIMessages.OffsetStatusLineContributionItem_11}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			fPartitionTable.setLabelProvider(new ITableLabelProvider() {
-				public void addListener(ILabelProviderListener listener) {
-				}
-
-				public void dispose() {
-				}
-
-				public Image getColumnImage(Object element, int columnIndex) {
-					return null;
-				}
-
-				public String getColumnText(Object element, int columnIndex) {
-					ITypedRegion partition = (ITypedRegion) element;
-					String text = null;
-					switch (columnIndex) {
-						case 0 :
-							text = Integer.toString(partition.getOffset());
-							break;
-						case 1 :
-							text = Integer.toString(partition.getLength());
-							break;
-						case 2 :
-							text = partition.getType();
-							break;
-					}
-					if (text == null)
-						text = ""; //$NON-NLS-1$
-					return text;
-				}
-
-				public boolean isLabelProperty(Object element, String property) {
-					return false;
-				}
-
-				public void removeListener(ILabelProviderListener listener) {
-				}
-			});
-			TableLayout tlayout = new TableLayout();
-			CellEditor[] cellEditors = new CellEditor[columns.length];
-			int columnWidths[] = new int[]{Display.getCurrent().getBounds().width / 14, Display.getCurrent().getBounds().width / 14, Display.getCurrent().getBounds().width / 5};
-			for (int i = 0; i < columns.length; i++) {
-				tlayout.addColumnData(new ColumnWeightData(1));
-				TableColumn tc = new TableColumn(fPartitionTable.getTable(), SWT.NONE);
-				tc.setText(columns[i]);
-				tc.setResizable(true);
-				tc.setWidth(columnWidths[i]);
-			}
-			fPartitionTable.setCellEditors(cellEditors);
-			fPartitionTable.setColumnProperties(columns);
-			final String[] partitionings = (fDocument instanceof IDocumentExtension3) ? ((IDocumentExtension3) fDocument).getPartitionings() : new String[]{IDocumentExtension3.DEFAULT_PARTITIONING};
-			partitioningCombo.setItems(partitionings);
-			partitioningCombo.addSelectionListener(new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					ISelection sel = fTextEditor.getSelectionProvider().getSelection();
-					ITextSelection textSelection = (ITextSelection) sel;
-					try {
-						String partitionerText = fDocument instanceof IDocumentExtension3 ? ((IDocumentExtension3) fDocument).getDocumentPartitioner(partitioningCombo.getItem(partitioningCombo.getSelectionIndex())).toString() : ("" + fDocument.getDocumentPartitioner()); //$NON-NLS-1$
-						partitionerInstanceLabel.setText(SSEUIMessages.OffsetStatusLineContributionItem_13 + partitionerText); //$NON-NLS-1$
-						fPartitionTable.setInput(TextUtilities.computePartitioning(fDocument, partitioningCombo.getItem(partitioningCombo.getSelectionIndex()), textSelection.getOffset(), textSelection.getLength(), true));
-					}
-					catch (BadLocationException e1) {
-						fPartitionTable.setInput(new ITypedRegion[0]);
-					}
-				}
-			});
-			try {
-				if (partitionings.length > 0) {
-					String selectedPartitioning = partitioningCombo.getItem(0);
-					if (Utilities.contains(partitionings, IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING)) {
-						selectedPartitioning = IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING;
-						for (int i = 0; i < partitionings.length; i++) {
-							if (partitionings[i].equals(IStructuredPartitioning.DEFAULT_STRUCTURED_PARTITIONING)) {
-								partitioningCombo.select(i);
-							}
-						}
-					}
-					else {
-						partitioningCombo.select(0);
-					}
-					ISelection sel = fTextEditor.getSelectionProvider().getSelection();
-					ITextSelection textSelection = (ITextSelection) sel;
-					ITypedRegion[] partitions = TextUtilities.computePartitioning(fDocument, selectedPartitioning, textSelection.getOffset(), textSelection.getLength(), true);
-					fPartitionTable.setInput(partitions);
-					String partitionerText = fDocument instanceof IDocumentExtension3 ? ((IDocumentExtension3) fDocument).getDocumentPartitioner(partitioningCombo.getItem(partitioningCombo.getSelectionIndex())).toString() : ("" + fDocument.getDocumentPartitioner()); //$NON-NLS-1$
-					partitionerInstanceLabel.setText(SSEUIMessages.OffsetStatusLineContributionItem_13 + partitionerText); //$NON-NLS-1$
-				}
-				else {
-					ISelection sel = fTextEditor.getSelectionProvider().getSelection();
-					ITextSelection textSelection = (ITextSelection) sel;
-					fPartitionTable.setInput(fDocument.computePartitioning(textSelection.getOffset(), textSelection.getLength()));
-				}
-			}
-			catch (BadLocationException e1) {
-				fPartitionTable.setInput(new ITypedRegion[0]);
-			}
-			partitioningCombo.setFocus();
-		}
-
-		/**
-		 * @param composite
-		 * @return
-		 */
-		private Composite createRegionTabContents(SashForm sashForm) {
-			ISelection sel = fTextEditor.getSelectionProvider().getSelection();
-			final ITextSelection textSelection = (ITextSelection) sel;
-			final List documentRegions = new ArrayList();
-			if (fDocument instanceof IStructuredDocument) {
-				IStructuredDocument structuredDocument = (IStructuredDocument) fDocument;
-				int pos = textSelection.getOffset();
-				int end = textSelection.getOffset() + textSelection.getLength();
-				IStructuredDocumentRegion docRegion = structuredDocument.getRegionAtCharacterOffset(pos);
-				IStructuredDocumentRegion endRegion = structuredDocument.getRegionAtCharacterOffset(end);
-				if (pos < end) {
-					while (docRegion != endRegion) {
-						documentRegions.add(docRegion);
-						docRegion = docRegion.getNext();
-					}
-				}
-				documentRegions.add(docRegion);
-			}
-
-			final TreeViewer tree = new TreeViewer(sashForm, SWT.V_SCROLL | SWT.H_SCROLL);
-			final String START = SSEUIMessages.OffsetStatusLineContributionItem_15; //$NON-NLS-1$
-			final String LENGTH = SSEUIMessages.OffsetStatusLineContributionItem_16; //$NON-NLS-1$
-			final String TEXTLENGTH = SSEUIMessages.OffsetStatusLineContributionItem_17; //$NON-NLS-1$
-			final String CONTEXT = SSEUIMessages.OffsetStatusLineContributionItem_18; //$NON-NLS-1$
-			tree.setContentProvider(new ITreeContentProvider() {
-				public void dispose() {
-				}
-
-				public Object[] getChildren(Object parentElement) {
-					List children = new ArrayList(0);
-					if (parentElement instanceof ITextSelection) {
-						children.addAll(documentRegions);
-					}
-					if (parentElement instanceof ITextRegionCollection) {
-						children.add(((ITextRegionCollection) parentElement).getRegions().toArray());
-					}
-					if (parentElement instanceof ITextRegion) {
-						children.add(new KeyValuePair(CONTEXT, ((ITextRegion) parentElement).getType()));
-						children.add(new KeyValuePair(START, Integer.toString(((ITextRegion) parentElement).getStart())));
-						children.add(new KeyValuePair(TEXTLENGTH, Integer.toString(((ITextRegion) parentElement).getTextLength())));
-						children.add(new KeyValuePair(LENGTH, Integer.toString(((ITextRegion) parentElement).getLength())));
-					}
-					if (parentElement instanceof ITextRegionList) {
-						children.add(Arrays.asList(((ITextRegionList) parentElement).toArray()));
-					}
-					if (parentElement instanceof Collection) {
-						children.addAll((Collection) parentElement);
-					}
-					if (parentElement instanceof Object[]) {
-						children.addAll(Arrays.asList((Object[]) parentElement));
-					}
-					return children.toArray();
-				}
-
-				public Object[] getElements(Object inputElement) {
-					return new Object[]{textSelection};
-				}
-
-				public Object getParent(Object element) {
-					if (element instanceof IStructuredDocumentRegion)
-						return ((IStructuredDocumentRegion) element).getParentDocument();
-					if (element instanceof ITextRegionContainer) {
-						return ((ITextRegionContainer) element).getParent();
-					}
-					return null;
-				}
-
-				public boolean hasChildren(Object element) {
-					return !(element instanceof KeyValuePair);
-				}
-
-				public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-				}
-			});
-			tree.setLabelProvider(new LabelProvider() {
-				public String getText(Object element) {
-					if (element instanceof KeyValuePair)
-						return ((KeyValuePair) element).fKey.toString().toLowerCase() + ": " + ((KeyValuePair) element).fValue; //$NON-NLS-1$
-					if (element instanceof IStructuredDocumentRegion) {
-						IStructuredDocumentRegion documentRegion = (IStructuredDocumentRegion) element;
-						int packageNameLength = documentRegion.getClass().getPackage().getName().length();
-						if (packageNameLength > 0)
-							packageNameLength++;
-						String name = documentRegion.getClass().getName().substring(packageNameLength);
-						String text = "[" + documentRegion.getStartOffset() + "-" + documentRegion.getEndOffset() + "] " + name + "@" + element.hashCode() + " " + documentRegion.getType(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						return text;
-					}
-					if (element instanceof ITextRegion) {
-						ITextRegion textRegion = (ITextRegion) element;
-						int packageNameLength = textRegion.getClass().getPackage().getName().length();
-						if (packageNameLength > 0)
-							packageNameLength++;
-						String name = textRegion.getClass().getName().substring(packageNameLength);
-						String text = "[" + textRegion.getStart() + "-" + textRegion.getEnd() + "] " + name + "@" + element.hashCode() + " " + textRegion.getType(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						return text;
-					}
-					return super.getText(element);
-				}
-			});
-			tree.setInput(fDocument);
-
-
-			final Text displayText = new Text(sashForm, SWT.V_SCROLL | SWT.H_SCROLL | SWT.READ_ONLY | SWT.BORDER);
-			displayText.setBackground(sashForm.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-			tree.addSelectionChangedListener(new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					if (event.getSelection() instanceof IStructuredSelection) {
-						Object o = ((IStructuredSelection) event.getSelection()).getFirstElement();
-						if (o instanceof KeyValuePair)
-							displayText.setText(((KeyValuePair) o).fValue.toString());
-						else if (o instanceof ITextSelection) {
-							ITextSelection text = (ITextSelection) o;
-							try {
-								displayText.setText(fDocument.get(text.getOffset(), text.getLength()));
-							}
-							catch (BadLocationException e) {
-								displayText.setText(""); //$NON-NLS-1$
-							}
-						}
-						else if (o instanceof ITextRegionCollection) {
-							ITextRegionCollection region = (ITextRegionCollection) o;
-							displayText.setText(region.getFullText());
-						}
-						else
-							displayText.setText("" + o); //$NON-NLS-1$
-					}
-				}
-			});
-			sashForm.setWeights(new int[]{3, 2});
-			return sashForm;
-		}
-
-		private void fillSelectionTabContents(Composite area, ISelection sel) {
-			area.setLayout(new GridLayout());
-			area.setLayoutData(new GridData());
-
-			Label typeName = new Label(area, SWT.WRAP);
-			typeName.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
-			typeName.setText("Class: " + sel.getClass().getName()); //$NON-NLS-1$
-
-			if (sel instanceof IStructuredSelection) {
-				(new Label(area, SWT.NONE)).setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
-				SashForm structuredSashForm = new SashForm(area, SWT.NONE);
-				structuredSashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-				structuredSashForm.setOrientation(SWT.VERTICAL);
-
-				final TableViewer structuredSelectionTable = new TableViewer(structuredSashForm, SWT.FULL_SELECTION | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-
-				structuredSelectionTable.getTable().setHeaderVisible(true);
-				structuredSelectionTable.getTable().setLinesVisible(true);
-
-				structuredSelectionTable.setLabelProvider(new ITableLabelProvider() {
-					public void addListener(ILabelProviderListener listener) {
-					}
-
-					public void dispose() {
-					}
-
-					public Image getColumnImage(Object element, int columnIndex) {
-						return null;
-					}
-
-					public String getColumnText(Object element, int columnIndex) {
-						String text = null;
-						if (element != null) {
-							switch (columnIndex) {
-								case 0 : {
-									text = String.valueOf(((List) structuredSelectionTable.getInput()).indexOf(element));
-								}
-									break;
-								case 1 : {
-									text = element.getClass().getName();
-								}
-									break;
-								case 2 : {
-									text = element.toString();
-								}
-									break;
-								default :
-									text = ""; //$NON-NLS-1$
-							}
-						}
-						return text;
-					}
-
-					public boolean isLabelProperty(Object element, String property) {
-						return false;
-					}
-
-					public void removeListener(ILabelProviderListener listener) {
-					}
-				});
-
-				TableLayout tlayout = new TableLayout();
-				tlayout.addColumnData(new ColumnWeightData(7, true));
-				tlayout.addColumnData(new ColumnWeightData(28, true));
-				tlayout.addColumnData(new ColumnWeightData(50, true));
-				structuredSelectionTable.getTable().setLayout(tlayout);
-
-				TableColumn tc = new TableColumn(structuredSelectionTable.getTable(), SWT.NONE);
-				tc.setText("Item"); //$NON-NLS-1$
-				tc.setResizable(true);
-				tc.setWidth(40);
-
-				tc = new TableColumn(structuredSelectionTable.getTable(), SWT.NONE);
-				tc.setText("Class"); //$NON-NLS-1$
-				tc.setResizable(true);
-				tc.setWidth(40);
-
-				tc = new TableColumn(structuredSelectionTable.getTable(), SWT.NONE);
-				tc.setText("Text"); //$NON-NLS-1$
-				tc.setResizable(true);
-				tc.setWidth(40);
-
-				structuredSelectionTable.setContentProvider(new ArrayContentProvider());
-				final List input = ((IStructuredSelection) sel).toList();
-				structuredSelectionTable.setInput(input);
-
-				final TreeViewer infoTree = new TreeViewer(structuredSashForm, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-				infoTree.setLabelProvider(new LabelProvider() {
-					public Image getImage(Object element) {
-						if (element instanceof TreeViewer && infoTree.getInput() instanceof INodeNotifier) {
-							INodeAdapter adapterFor = ((INodeNotifier) infoTree.getInput()).getAdapterFor(IJFaceNodeAdapter.class);
-							if (adapterFor != null && adapterFor instanceof IJFaceNodeAdapter) {
-								IJFaceNodeAdapter adapter = (IJFaceNodeAdapter) adapterFor;
-								return adapter.getLabelImage((infoTree.getInput()));
-							}
-						}
-						return super.getImage(element);
-					}
-
-					public String getText(Object element) {
-						if (element instanceof Class) {
-							return "Class: " + ((Class) element).getName(); //$NON-NLS-1$
-						}
-						if (element instanceof Collection) {
-							return "Registered Adapters:"; //$NON-NLS-1$
-						}
-						if (element instanceof IRegion) {
-							return "Indexed Region offset span: [" + ((IRegion) element).getOffset() + "-" + ((IRegion) element).getLength() + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						}
-						if (element instanceof TreeViewer && infoTree.getInput() instanceof INodeNotifier) {
-							IJFaceNodeAdapter adapter = (IJFaceNodeAdapter) ((INodeNotifier) infoTree.getInput()).getAdapterFor(IJFaceNodeAdapter.class);
-							if (adapter != null) {
-								return adapter.getLabelText((infoTree.getInput()));
-							}
-						}
-						return super.getText(element);
-					}
-				});
-				infoTree.setContentProvider(new ITreeContentProvider() {
-					public void dispose() {
-					}
-
-					public Object[] getChildren(Object parentElement) {
-						if (parentElement instanceof Collection)
-							return ((Collection) parentElement).toArray();
-						return new Object[0];
-					}
-
-					public Object[] getElements(Object inputElement) {
-						List elements = new ArrayList(4);
-						if (inputElement != null) {
-							if (inputElement instanceof INodeNotifier && ((INodeNotifier) inputElement).getAdapterFor(IJFaceNodeAdapter.class) != null) {
-								elements.add(infoTree);
-							}
-							elements.add(inputElement.getClass());
-							if (inputElement instanceof IndexedRegion) {
-								elements.add(new Region(((IndexedRegion) inputElement).getStartOffset(), ((IndexedRegion) inputElement).getEndOffset()));
-							}
-							if (inputElement instanceof INodeNotifier) {
-								elements.add(((INodeNotifier) inputElement).getAdapters());
-							}
-						}
-						return elements.toArray();
-					}
-
-					public Object getParent(Object element) {
-						return null;
-					}
-
-					public boolean hasChildren(Object element) {
-						return element instanceof Collection;
-					}
-
-					public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-					}
-				});
-
-				structuredSelectionTable.addSelectionChangedListener(new ISelectionChangedListener() {
-					public void selectionChanged(SelectionChangedEvent event) {
-						int selectionIndex = structuredSelectionTable.getTable().getSelectionIndex();
-						if (selectionIndex != -1) {
-							infoTree.setInput(input.get(selectionIndex));
-						}
-						else {
-							infoTree.setInput(event.getSelectionProvider().getSelection());
-						}
-						infoTree.expandToLevel(2);
-					}
-				});
-
-				structuredSashForm.setWeights(new int[]{3, 2});
-			}
-		}
-
-		private String getLineNumber(Annotation annotation) {
-			int line = -1;
-			if (annotation instanceof MarkerAnnotation) {
-				line = MarkerUtilities.getLineNumber(((MarkerAnnotation) annotation).getMarker());//$NON-NLS-1$
-			}
-			else {
-				IAnnotationModel annotationModel = fTextEditor.getDocumentProvider().getAnnotationModel(fTextEditor.getEditorInput());
-				Position p = annotationModel.getPosition(annotation);
-				if (p != null && !p.isDeleted()) {
-					try {
-						line = fDocument.getLineOfOffset(p.getOffset());
-					}
-					catch (BadLocationException e) {
-					}
-				}
-			}
-			return Integer.toString(line);
-		}
-	}
-
-	static class KeyValuePair {
-		Object fKey;
-		String fValue;
-
-		public KeyValuePair(Object key, String value) {
-			fKey = key;
-			fValue = value;
-		}
-	}
-
-	class ShowEditorInformationAction extends Action {
-		public ShowEditorInformationAction() {
-			super();
-		}
-
-		public void run() {
-			/**
-			 * TODO: Provide a more useful control, maybe a table where the
-			 * selection shows you the partition's text in a StyledText pane
-			 * beneath it.
-			 */
-			super.run();
-			new InformationDialog(((Control) fTextEditor.getAdapter(Control.class)).getShell()).open();
-		}
-	}
-
-	IAction fShowEditorInformationAction = new ShowEditorInformationAction();
-
-	ITextEditor fTextEditor = null;
-
-	/**
-	 * @param id
-	 */
-	public OffsetStatusLineContributionItem(String id) {
-		super(id);
-	}
-
-	/**
-	 * @param id
-	 * @param visible
-	 * @param widthInChars
-	 */
-	public OffsetStatusLineContributionItem(String id, boolean visible, int widthInChars) {
-		super(id, visible, widthInChars);
-	}
-
-	public void setActiveEditor(ITextEditor textEditor) {
-		fTextEditor = textEditor;
-		setActionHandler(fShowEditorInformationAction);
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ui/StructuredTextAnnotationImageProvider.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ui/StructuredTextAnnotationImageProvider.java
deleted file mode 100644
index b835eda..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/ui/StructuredTextAnnotationImageProvider.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.wst.sse.ui.internal.ui;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.texteditor.IAnnotationImageProvider;
-
-/**
- * Image provider for structured text editor annotations.
- * 
- * @author pavery
- */
-public class StructuredTextAnnotationImageProvider implements IAnnotationImageProvider {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IAnnotationImageProvider#getImageDescriptor(java.lang.String)
-	 */
-	public ImageDescriptor getImageDescriptor(String imageDescritporId) {
-		return null;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IAnnotationImageProvider#getImageDescriptorId(org.eclipse.jface.text.source.Annotation)
-	 */
-	public String getImageDescriptorId(Annotation annotation) {
-        return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.IAnnotationImageProvider#getManagedImage(org.eclipse.jface.text.source.Annotation)
-	 */
-	public Image getManagedImage(Annotation annotation) {
-		// future return different types of managed images as JDT does
-		// eg. overlay icon images, "grayed" images, quick fixable, etc...
-		return null;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/Assert.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/Assert.java
deleted file mode 100644
index d42a5b2..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/Assert.java
+++ /dev/null
@@ -1,120 +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.wst.sse.ui.internal.util;
-
-
-/**
- * <code>Assert</code> is useful for for embedding runtime sanity checks in
- * code. The predicate methods all test a condition and throw some type of
- * unchecked exception if the condition does not hold.
- * <p>
- * Assertion failure exceptions, like most runtime exceptions, are thrown when
- * something is misbehaving. Assertion failures are invariably unspecified
- * behavior; consequently, clients should never rely on these being thrown
- * (and certainly should not being catching them specifically).
- * </p>
- */
-public final class Assert {
-
-	/**
-	 * <code>AssertionFailedException</code> is a runtime exception thrown
-	 * by some of the methods in <code>Assert</code>.
-	 * <p>
-	 * This class is not declared public to prevent some misuses; programs
-	 * that catch or otherwise depend on assertion failures are susceptible to
-	 * unexpected breakage when assertions in the code are added or removed.
-	 * </p>
-	 */
-	class AssertionFailedException extends RuntimeException {
-		/**
-		 * Comment for <code>serialVersionUID</code>
-		 */
-		private static final long serialVersionUID = 1L;
-
-		/**
-		 * Constructs a new exception.
-		 */
-		public AssertionFailedException() {
-			super();
-		}
-
-		/**
-		 * Constructs a new exception with the given message.
-		 */
-		public AssertionFailedException(String detail) {
-			super(detail);
-		}
-	}
-
-	/**
-	 * Asserts that an argument is legal. If the given boolean is not
-	 * <code>true</code>, an <code>IllegalArgumentException</code> is
-	 * thrown. The given message is included in that exception, to aid
-	 * debugging.
-	 * 
-	 * @param expression
-	 *            the outcode of the check
-	 * @param message
-	 *            the message to include in the exception
-	 * @return <code>true</code> if the check passes (does not return if the
-	 *         check fails)
-	 * @exception IllegalArgumentException
-	 *                if the legality test failed
-	 */
-	public static boolean isLegal(boolean expression, String message) {
-		if (!expression)
-			throw new IllegalArgumentException(message);
-		return expression;
-	}
-
-	/**
-	 * Asserts that the given object is not <code>null</code>. If this is
-	 * not the case, some kind of unchecked exception is thrown. The given
-	 * message is included in that exception, to aid debugging.
-	 * 
-	 * @param object
-	 *            the value to test
-	 * @param message
-	 *            the message to include in the exception
-	 * @exception IllegalArgumentException
-	 *                if the object is <code>null</code>
-	 */
-	public static void isNotNull(Object object, String message) {
-		if (object == null) {
-			throw new Assert().new AssertionFailedException(message);
-		}
-	}
-
-	/**
-	 * Asserts that the given boolean is <code>true</code>. If this is not
-	 * the case, some kind of unchecked exception is thrown. The given message
-	 * is included in that exception, to aid debugging.
-	 * 
-	 * @param expression
-	 *            the outcode of the check
-	 * @param message
-	 *            the message to include in the exception
-	 * @return <code>true</code> if the check passes (does not return if the
-	 *         check fails)
-	 */
-	public static boolean isTrue(boolean expression, String message) {
-		if (!expression) {
-			throw new Assert().new AssertionFailedException(message);
-		}
-		return expression;
-	}
-
-	/* This class is not intended to be instantiated. */
-	private Assert() {
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/EditorUtility.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/EditorUtility.java
deleted file mode 100644
index c45021a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/EditorUtility.java
+++ /dev/null
@@ -1,142 +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.wst.sse.ui.internal.util;
-
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.RGB;
-
-/**
- * Helpful methods to be used with the Source Editor
- */
-public class EditorUtility {
-
-	/**
-	 * Appends to modifier string of the given SWT modifier bit to the given
-	 * modifierString.
-	 * 
-	 * @param modifierString
-	 *            the modifier string
-	 * @param modifier
-	 *            an int with SWT modifier bit
-	 * @return the concatenated modifier string
-	 */
-	private static String appendModifierString(String modifierString, int modifier) {
-		if (modifierString == null)
-			modifierString = ""; //$NON-NLS-1$
-		String newModifierString = Action.findModifierString(modifier);
-		if (modifierString.length() == 0)
-			return newModifierString;
-		return modifierString + " + " + newModifierString; //$NON-NLS-1$
-	}
-
-	/**
-	 * Computes the state mask for the given modifier string.
-	 * 
-	 * @param modifiers
-	 *            the string with the modifiers, separated by '+', '-', ';',
-	 *            ',' or '.'
-	 * @return the state mask or -1 if the input is invalid
-	 */
-	public static int computeStateMask(String modifiers) {
-		if (modifiers == null)
-			return -1;
-
-		if (modifiers.length() == 0)
-			return SWT.NONE;
-
-		int stateMask = 0;
-		StringTokenizer modifierTokenizer = new StringTokenizer(modifiers, ",;.:+-* "); //$NON-NLS-1$
-		while (modifierTokenizer.hasMoreTokens()) {
-			int modifier = EditorUtility.findLocalizedModifier(modifierTokenizer.nextToken());
-			if (modifier == 0 || (stateMask & modifier) == modifier)
-				return -1;
-			stateMask = stateMask | modifier;
-		}
-		return stateMask;
-	}
-
-	/**
-	 * Maps the localized modifier name to a code in the same manner as
-	 * #findModifier.
-	 * 
-	 * @return the SWT modifier bit, or <code>0</code> if no match was found
-	 * @see findModifier
-	 */
-	public static int findLocalizedModifier(String token) {
-		if (token == null)
-			return 0;
-
-		if (token.equalsIgnoreCase(Action.findModifierString(SWT.CTRL)))
-			return SWT.CTRL;
-		if (token.equalsIgnoreCase(Action.findModifierString(SWT.SHIFT)))
-			return SWT.SHIFT;
-		if (token.equalsIgnoreCase(Action.findModifierString(SWT.ALT)))
-			return SWT.ALT;
-		if (token.equalsIgnoreCase(Action.findModifierString(SWT.COMMAND)))
-			return SWT.COMMAND;
-
-		return 0;
-	}
-
-	/**
-	 * Temporary method to help migrate from using StructuredTextColors to
-	 * using base ColorRegistry. Instead of using symbolic names in the color
-	 * registry, we are currently mapping the rgb.toString value to
-	 * corresponding color.
-	 * 
-	 * @param rgb
-	 * @return Color
-	 */
-	public static Color getColor(RGB rgb) {
-		if (rgb == null)
-			return null;
-
-		// get the color from the platform color registry
-		Color color = JFaceResources.getColorRegistry().get(rgb.toString());
-
-		// if the platform color registry does not have this color yet, add to
-		// the registry
-		if (color == null) {
-			JFaceResources.getColorRegistry().put(rgb.toString(), rgb);
-			color = JFaceResources.getColorRegistry().get(rgb.toString());
-		}
-		return color;
-	}
-
-	/**
-	 * Returns the modifier string for the given SWT modifier modifier bits.
-	 * 
-	 * @param stateMask
-	 *            the SWT modifier bits
-	 * @return the modifier string
-	 */
-	public static String getModifierString(int stateMask) {
-		String modifierString = ""; //$NON-NLS-1$
-		if ((stateMask & SWT.CTRL) == SWT.CTRL)
-			modifierString = appendModifierString(modifierString, SWT.CTRL);
-		if ((stateMask & SWT.ALT) == SWT.ALT)
-			modifierString = appendModifierString(modifierString, SWT.ALT);
-		if ((stateMask & SWT.SHIFT) == SWT.SHIFT)
-			modifierString = appendModifierString(modifierString, SWT.SHIFT);
-		if ((stateMask & SWT.COMMAND) == SWT.COMMAND)
-			modifierString = appendModifierString(modifierString, SWT.COMMAND);
-
-		return modifierString;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/PlatformStatusLineUtil.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/PlatformStatusLineUtil.java
deleted file mode 100644
index 83344e4..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/PlatformStatusLineUtil.java
+++ /dev/null
@@ -1,171 +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.wst.sse.ui.internal.util;
-
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.custom.VerifyKeyListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.events.VerifyEvent;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-
-/**
- * Utility to display (and/or clear) messages on the status line.
- * 
- * @author pavery
- */
-public class PlatformStatusLineUtil {
-
-	private static class ClearErrorMessage implements Runnable {
-		public void run() {
-			displayMessage(null);
-		}
-	}
-
-	/**
-	 * Used to clear message on focus loss, change of selection, key type,
-	 * etc...
-	 */
-	private static class OneTimeListener extends FocusAdapter implements VerifyKeyListener, SelectionListener, MouseListener {
-
-		private Runnable fRunner = null;
-		private StyledText fStyledText;
-
-		public OneTimeListener(StyledText target, Runnable r) {
-			fStyledText = target;
-			fRunner = r;
-			fStyledText.addVerifyKeyListener(this);
-			fStyledText.addFocusListener(this);
-			fStyledText.addSelectionListener(this);
-			fStyledText.addMouseListener(this);
-		}
-
-		public void focusLost(FocusEvent e) {
-			unhookAndRun();
-		}
-
-		public void mouseDoubleClick(MouseEvent e) {
-			unhookAndRun();
-		}
-
-		public void mouseDown(MouseEvent e) {
-			unhookAndRun();
-		}
-
-		public void mouseUp(MouseEvent e) {
-			//
-		}
-
-		private void unhookAndRun() {
-			fStyledText.removeVerifyKeyListener(this);
-			fStyledText.removeFocusListener(this);
-			fStyledText.removeSelectionListener(this);
-			fStyledText.removeMouseListener(this);
-			fStyledText.getDisplay().asyncExec(fRunner);
-		}
-
-		public void verifyKey(VerifyEvent event) {
-			unhookAndRun();
-		}
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-			unhookAndRun();
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			unhookAndRun();
-		}
-	}
-
-	/**
-	 * Status line will be cleared w/ key type, or selection change
-	 * 
-	 * @param widget
-	 */
-	public static void addOneTimeClearListener() {
-		IEditorPart editor = getActiveEditor();
-		boolean added = false;
-		if (editor != null) {
-			Control control = (Control) editor.getAdapter(Control.class);
-			if (control instanceof StyledText) {
-				addOneTimeClearListener(((StyledText) control));
-				added = true;
-			}
-		}
-		if (!added) {
-			// clear the error message immediately
-			displayMessage(null);
-		}
-	}
-
-	private static void addOneTimeClearListener(StyledText widget) {
-		new OneTimeListener(widget, new ClearErrorMessage());
-	}
-
-	/**
-	 * Clears the status line immediately
-	 */
-	public static void clearStatusLine() {
-		displayMessage(null);
-	}
-
-	/**
-	 * Display a message on the status line (with a beep)
-	 * 
-	 * @param msg
-	 */
-	public static void displayErrorMessage(String msg) {
-		displayMessage(msg);
-		PlatformUI.getWorkbench().getDisplay().beep();
-	}
-
-	/**
-	 * Display a message on the status line (no beep)
-	 * 
-	 * @param msg
-	 */
-	public static void displayMessage(String msg) {
-		IEditorPart editor = getActiveEditor();
-		if (editor != null) {
-			editor.getEditorSite().getActionBars().getStatusLineManager().setErrorMessage(msg);
-		}
-
-	}
-
-	private static IEditorPart getActiveEditor() {
-		IEditorPart editor = null;
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window == null) {
-			window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		}
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null)
-				editor = page.getActiveEditor();
-		}
-		return editor;
-	}
-
-	private PlatformStatusLineUtil() {
-		// force use of singleton
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/RegistryReader.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/RegistryReader.java
deleted file mode 100644
index b68597e..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/RegistryReader.java
+++ /dev/null
@@ -1,175 +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.wst.sse.ui.internal.util;
-
-
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IPluginRegistry;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-/**
- * Template implementation of a registry reader that creates objects
- * representing registry contents. Typically, an extension contains one
- * element, but this reader handles multiple elements per extension.
- * 
- * To start reading the extensions from the registry for an extension point,
- * call the method <code>readRegistry</code>.
- * 
- * To read children of an IConfigurationElement, call the method
- * <code>readElementChildren</code> from your implementation of the method
- * <code>readElement</code>, as it will not be done by default.
- */
-public abstract class RegistryReader {
-
-
-	protected static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	/**
-	 * The constructor.
-	 */
-	protected RegistryReader() {
-	}
-
-	/**
-	 * This method extracts description as a subelement of the given element.
-	 * 
-	 * @return description string if defined, or empty string if not.
-	 */
-	protected String getDescription(IConfigurationElement config) {
-		IConfigurationElement[] children = config.getChildren(TAG_DESCRIPTION);
-		if (children.length >= 1) {
-			return children[0].getValue();
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * Logs the error in the workbench log using the provided text and the
-	 * information in the configuration element.
-	 */
-	protected void logError(IConfigurationElement element, String text) {
-		IExtension extension = element.getDeclaringExtension();
-		StringBuffer buf = new StringBuffer();
-		buf.append("Plugin " + extension.getNamespace() + ", extension " + extension.getExtensionPointUniqueIdentifier()); //$NON-NLS-2$//$NON-NLS-1$
-		buf.append("\n" + text); //$NON-NLS-1$
-		Logger.log(Logger.ERROR, buf.toString());
-	}
-
-	/**
-	 * Logs a very common registry error when a required attribute is missing.
-	 */
-	protected void logMissingAttribute(IConfigurationElement element, String attributeName) {
-		logError(element, "Required attribute '" + attributeName + "' not defined"); //$NON-NLS-2$//$NON-NLS-1$
-	}
-
-	/**
-	 * Logs a registry error when the configuration element is unknown.
-	 */
-	protected void logUnknownElement(IConfigurationElement element) {
-		logError(element, "Unknown extension tag found: " + element.getName()); //$NON-NLS-1$
-	}
-
-	/**
-	 * Apply a reproducable order to the list of extensions provided, such
-	 * that the order will not change as extensions are added or removed.
-	 */
-	protected IExtension[] orderExtensions(IExtension[] extensions) {
-		// By default, the order is based on plugin id sorted
-		// in ascending order. The order for a plugin providing
-		// more than one extension for an extension point is
-		// dependent in the order listed in the XML file.
-		Sorter sorter = new Sorter() {
-			public boolean compare(Object extension1, Object extension2) {
-				String s1 = ((IExtension) extension1).getNamespace().toUpperCase();
-				String s2 = ((IExtension) extension2).getNamespace().toUpperCase();
-				//Return true if elementTwo is 'greater than' elementOne
-				return s2.compareTo(s1) > 0;
-			}
-		};
-
-		Object[] sorted = sorter.sort(extensions);
-		IExtension[] sortedExtension = new IExtension[sorted.length];
-		System.arraycopy(sorted, 0, sortedExtension, 0, sorted.length);
-		return sortedExtension;
-	}
-
-	/**
-	 * Implement this method to read element's attributes. If children should
-	 * also be read, then implementor is responsible for calling
-	 * <code>readElementChildren</code>. Implementor is also responsible
-	 * for logging missing attributes.
-	 * 
-	 * @return true if element was recognized, false if not.
-	 */
-	protected abstract boolean readElement(IConfigurationElement element);
-
-	/**
-	 * Read the element's children. This is called by the subclass'
-	 * readElement method when it wants to read the children of the element.
-	 */
-	protected void readElementChildren(IConfigurationElement element) {
-		readElements(element.getChildren());
-	}
-
-	/**
-	 * Read each element one at a time by calling the subclass implementation
-	 * of <code>readElement</code>.
-	 * 
-	 * Logs an error if the element was not recognized.
-	 */
-	protected void readElements(IConfigurationElement[] elements) {
-		for (int i = 0; i < elements.length; i++) {
-			if (!readElement(elements[i]))
-				logUnknownElement(elements[i]);
-		}
-	}
-
-	/**
-	 * Read one extension by looping through its configuration elements.
-	 */
-	protected void readExtension(IExtension extension) {
-		readElements(extension.getConfigurationElements());
-	}
-
-	/**
-	 * @deprecated use readRegistry(IExtensionRegistry registry, String pluginId, String extensionPoint)
-	 */
-	protected void readRegistry(IPluginRegistry registry, String pluginId, String extensionPoint) {
-		IExtensionPoint point = registry.getExtensionPoint(pluginId, extensionPoint);
-		if (point != null) {
-			IExtension[] extensions = point.getExtensions();
-			extensions = orderExtensions(extensions);
-			for (int i = 0; i < extensions.length; i++)
-				readExtension(extensions[i]);
-		}
-	}
-	
-	/**
-	 * Start the registry reading process using the supplied plugin ID and
-	 * extension point.
-	 */
-	protected void readRegistry(IExtensionRegistry registry, String pluginId, String extensionPoint) {
-		IExtensionPoint point = registry.getExtensionPoint(pluginId, extensionPoint);
-		if (point != null) {
-			IExtension[] extensions = point.getExtensions();
-			extensions = orderExtensions(extensions);
-			for (int i = 0; i < extensions.length; i++)
-				readExtension(extensions[i]);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/Sorter.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/Sorter.java
deleted file mode 100644
index 6cee01a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/util/Sorter.java
+++ /dev/null
@@ -1,77 +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.wst.sse.ui.internal.util;
-
-
-
-/**
- * The SortOperation takes a collection of objects and returns a sorted
- * collection of these objects. Concrete instances of this class provide the
- * criteria for the sorting of the objects based on the type of the objects.
- */
-public abstract class Sorter {
-
-	/**
-	 * Returns true if elementTwo is 'greater than' elementOne This is the
-	 * 'ordering' method of the sort operation. Each subclass overides this
-	 * method with the particular implementation of the 'greater than' concept
-	 * for the objects being sorted.
-	 */
-	public abstract boolean compare(Object elementOne, Object elementTwo);
-
-	/**
-	 * Sort the objects in sorted collection and return that collection.
-	 */
-	private Object[] quickSort(Object[] sortedCollection, int left, int right) {
-		int originalLeft = left;
-		int originalRight = right;
-		Object mid = sortedCollection[(left + right) / 2];
-
-		do {
-			while (compare(sortedCollection[left], mid))
-				left++;
-			while (compare(mid, sortedCollection[right]))
-				right--;
-			if (left <= right) {
-				Object tmp = sortedCollection[left];
-				sortedCollection[left] = sortedCollection[right];
-				sortedCollection[right] = tmp;
-				left++;
-				right--;
-			}
-		} while (left <= right);
-
-		if (originalLeft < right)
-			sortedCollection = quickSort(sortedCollection, originalLeft, right);
-		if (left < originalRight)
-			sortedCollection = quickSort(sortedCollection, left, originalRight);
-
-		return sortedCollection;
-	}
-
-	/**
-	 * Return a new sorted collection from this unsorted collection. Sort
-	 * using quick sort.
-	 */
-	public Object[] sort(Object[] unSortedCollection) {
-		int size = unSortedCollection.length;
-		Object[] sortedCollection = new Object[size];
-
-		//copy the array so can return a new sorted collection
-		System.arraycopy(unSortedCollection, 0, sortedCollection, 0, size);
-		if (size > 1)
-			quickSort(sortedCollection, 0, size - 1);
-
-		return sortedCollection;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/CaretEvent.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/CaretEvent.java
deleted file mode 100644
index 6c8fa1a..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/CaretEvent.java
+++ /dev/null
@@ -1,52 +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.wst.sse.ui.internal.view.events;
-
-/**
- * @deprecated - use base selection notification
- * 
- * Simply holds data to be passed to CaretEventListeners
- */
-public class CaretEvent extends java.util.EventObject {
-
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-	// initialize to impossible location
-	int fPosition = -1;
-
-	/**
-	 * doesnt't make sense to have a CaretEvent without the Caret postion, so
-	 * use other constructor
-	 */
-	protected CaretEvent(Object source) {
-		super(source);
-	}
-
-	/**
-	 * This is the preferred constructor.
-	 */
-	public CaretEvent(Object source, int position) {
-		super(source);
-		setPosition(position);
-	}
-
-	public int getPosition() {
-		return fPosition;
-	}
-
-	void setPosition(int newPosition) {
-		fPosition = newPosition;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/ICaretListener.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/ICaretListener.java
deleted file mode 100644
index 90b19ec..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/ICaretListener.java
+++ /dev/null
@@ -1,20 +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.wst.sse.ui.internal.view.events;
-
-/**
- * @deprecated - use base selection notification
- */
-public interface ICaretListener extends java.util.EventListener {
-	public void caretMoved(CaretEvent event);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/INodeSelectionListener.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/INodeSelectionListener.java
deleted file mode 100644
index fc5c0ed..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/INodeSelectionListener.java
+++ /dev/null
@@ -1,22 +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.wst.sse.ui.internal.view.events;
-
-
-/**
- * @deprecated - use base selection notification
- */
-
-public interface INodeSelectionListener {
-	void nodeSelectionChanged(NodeSelectionChangedEvent event);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/ITextSelectionListener.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/ITextSelectionListener.java
deleted file mode 100644
index 4683bbb..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/ITextSelectionListener.java
+++ /dev/null
@@ -1,20 +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.wst.sse.ui.internal.view.events;
-
-/**
- * @deprecated - use base selection notification
- */
-public interface ITextSelectionListener {
-	void textSelectionChanged(TextSelectionChangedEvent event);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/NodeSelectionChangedEvent.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/NodeSelectionChangedEvent.java
deleted file mode 100644
index 2940a7f..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/NodeSelectionChangedEvent.java
+++ /dev/null
@@ -1,43 +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.wst.sse.ui.internal.view.events;
-
-import java.util.List;
-
-/**
- * @deprecated - use base selection notification
- */
-public class NodeSelectionChangedEvent extends java.util.EventObject {
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-
-	int fCaretPosition;
-
-	List fSelectedNodes;
-
-	public NodeSelectionChangedEvent(Object source, List selectedNodes, int caretPosition) {
-		super(source);
-		fSelectedNodes = selectedNodes;
-		fCaretPosition = caretPosition;
-	}
-
-	public int getCaretPosition() {
-		return fCaretPosition;
-	}
-
-	public List getSelectedNodes() {
-		return fSelectedNodes;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/TextSelectionChangedEvent.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/TextSelectionChangedEvent.java
deleted file mode 100644
index 09dbf4c..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/view/events/TextSelectionChangedEvent.java
+++ /dev/null
@@ -1,41 +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.wst.sse.ui.internal.view.events;
-
-/**
- * @deprecated - use base selection notification
- */
-public class TextSelectionChangedEvent extends java.util.EventObject {
-	/**
-	 * Comment for <code>serialVersionUID</code>
-	 */
-	private static final long serialVersionUID = 1L;
-
-	int fTextSelectionEnd;
-
-	int fTextSelectionStart;
-
-	public TextSelectionChangedEvent(Object source, int textSelectionStart, int textSelectionEnd) {
-		super(source);
-		fTextSelectionStart = textSelectionStart;
-		fTextSelectionEnd = textSelectionEnd;
-	}
-
-	public int getTextSelectionEnd() {
-		return fTextSelectionEnd;
-	}
-
-	public int getTextSelectionStart() {
-		return fTextSelectionStart;
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/contentoutline/ContentOutlineConfiguration.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/contentoutline/ContentOutlineConfiguration.java
deleted file mode 100644
index 07f0d62..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/contentoutline/ContentOutlineConfiguration.java
+++ /dev/null
@@ -1,307 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.views.contentoutline;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.TransferDragSourceListener;
-import org.eclipse.jface.util.TransferDropTargetListener;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.contentoutline.PropertyChangeUpdateAction;
-import org.eclipse.wst.sse.ui.internal.contentoutline.PropertyChangeUpdateActionContributionItem;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImageHelper;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImages;
-
-/**
- * Basic Configuration class for Outline Pages
- * 
- * @since 1.0
- */
-public abstract class ContentOutlineConfiguration {
-	/**
-	 * Add a collapse action to help with navigation.
-	 */
-	private class CollapseTreeAction extends Action {
-		private TreeViewer fTreeViewer = null;
-
-		public CollapseTreeAction(TreeViewer viewer) {
-			super(SSEUIMessages.ContentOutlineConfiguration_0, AS_PUSH_BUTTON); //$NON-NLS-1$
-			setImageDescriptor(COLLAPSE_E);
-			setDisabledImageDescriptor(COLLAPSE_D);
-			setToolTipText(getText());
-			fTreeViewer = viewer;
-		}
-
-		public void run() {
-			super.run();
-			fTreeViewer.collapseAll();
-		}
-	}
-
-	/**
-	 * Toggles whether incoming selection notification affects us
-	 */
-	private class ToggleLinkAction extends PropertyChangeUpdateAction {
-		public ToggleLinkAction(IPreferenceStore store, String preference) {
-			super(SSEUIMessages.ContentOutlineConfiguration_1, store, preference, true); //$NON-NLS-1$
-			setToolTipText(getText());
-			setDisabledImageDescriptor(SYNCED_D);
-			setImageDescriptor(SYNCED_E);
-			update();
-		}
-
-		public void update() {
-			super.update();
-			setLinkWithEditor(isChecked());
-		}
-	}
-
-	ImageDescriptor COLLAPSE_D = EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_DLCL_COLLAPSEALL);
-	ImageDescriptor COLLAPSE_E = EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_ELCL_COLLAPSEALL);
-
-	private boolean fIsLinkWithEditor = false;
-
-	private ILabelProvider fLabelProvider;
-	private IContributionItem[] fMenuContributions = null;
-	private IContributionItem[] fToolbarContributions = null;
-	private final String OUTLINE_LINK_PREF = "outline-link-editor"; //$NON-NLS-1$
-	ImageDescriptor SYNCED_D = EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_DLCL_SYNCED);
-	ImageDescriptor SYNCED_E = EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_ELCL_SYNCED);
-
-	/**
-	 * Create new instance of ContentOutlineConfiguration
-	 */
-	public ContentOutlineConfiguration() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	/**
-	 * Creates the contributions for the view's local menu. Subclasses should
-	 * merge their contributions with these.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return menu contributions
-	 */
-	protected IContributionItem[] createMenuContributions(TreeViewer viewer) {
-		IContributionItem toggleLinkItem = new PropertyChangeUpdateActionContributionItem(new ToggleLinkAction(getPreferenceStore(), OUTLINE_LINK_PREF));
-		IContributionItem[] items = new IContributionItem[]{toggleLinkItem};
-		return items;
-	}
-
-	/**
-	 * Creates the toolbar contributions. Subclasses should merge their
-	 * contributions with these.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return toolbar contributions
-	 */
-	protected IContributionItem[] createToolbarContributions(TreeViewer viewer) {
-		IContributionItem collapseAllItem = new ActionContributionItem(new CollapseTreeAction(viewer));
-		IContributionItem[] items = new IContributionItem[]{collapseAllItem};
-		return items;
-	}
-
-	/**
-	 * Returns the ContentProvider to use with the given viewer.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return the IContentProvider to use with this viewer
-	 */
-	public abstract IContentProvider getContentProvider(TreeViewer viewer);
-
-	/**
-	 * Returns an array of KeyListeners to attach to the given viewer's
-	 * control or null.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return an array of KeyListeners to attach to the TreeViewer's Control,
-	 *         or null. The listeners should adhere to the KeyEvent.doit field
-	 *         to ensure proper behaviors. Ordering of the event notifications
-	 *         is dependent on the Control in the TreeViewer.
-	 */
-	public KeyListener[] getKeyListeners(TreeViewer viewer) {
-		return null;
-	}
-
-	/**
-	 * Returns the LabelProvider for the items within the given viewer.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return the ILabelProvider for items within the viewer
-	 */
-	public ILabelProvider getLabelProvider(TreeViewer viewer) {
-		if (fLabelProvider == null)
-			fLabelProvider = new LabelProvider();
-		return fLabelProvider;
-	}
-
-	/**
-	 * Returns the menu contribution items for the local menu in the outline.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return IContributionItem[] for the local menu
-	 */
-	public final IContributionItem[] getMenuContributions(TreeViewer viewer) {
-		if (fMenuContributions == null) {
-			fMenuContributions = createMenuContributions(viewer);
-		}
-		return fMenuContributions;
-	}
-
-	/**
-	 * Returns the menu listener to notify when the given viewer's context
-	 * menu is about to be shown or null.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return the IMenuListener to notify when the viewer's context menu is
-	 *         about to be shown, or null
-	 */
-	public IMenuListener getMenuListener(TreeViewer viewer) {
-		return null;
-	}
-
-	/**
-	 * Returns the PreferenceStore to use for this configuration.
-	 * 
-	 * @return the preference store in which to remember preferences (such as
-	 *         the link-with-editor toggle state)
-	 */
-	protected IPreferenceStore getPreferenceStore() {
-		return SSEUIPlugin.getInstance().getPreferenceStore();
-	}
-
-	/**
-	 * Returns the (filtered) selection from the given selection.
-	 * 
-	 * @param selection
-	 *            model selection
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return The (filtered) selection from this event. Uses include mapping
-	 *         model selection onto elements provided by the content provider.
-	 *         Should only return elements that will be shown in the Tree
-	 *         Control.
-	 */
-	public ISelection getSelection(TreeViewer viewer, ISelection selection) {
-		return selection;
-	}
-
-	/**
-	 * Returns contribution items for the local toolbar in the outline.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 * @return IContributionItem[] for the local toolbar
-	 */
-	public final IContributionItem[] getToolbarContributions(TreeViewer viewer) {
-		if (fToolbarContributions == null) {
-			fToolbarContributions = createToolbarContributions(viewer);
-		}
-		return fToolbarContributions;
-	}
-
-	/**
-	 * Adopted since you can't easily removeDragSupport from
-	 * StructuredViewers.
-	 * 
-	 * @param treeViewer
-	 *            the TreeViewer associated with this configuration
-	 * @return an array of TransferDragSourceListeners
-	 */
-	public TransferDragSourceListener[] getTransferDragSourceListeners(TreeViewer treeViewer) {
-		return new TransferDragSourceListener[0];
-	}
-
-	/**
-	 * Adopted since you can't easily removeDropSupport from
-	 * StructuredViewers.
-	 * 
-	 * @param treeViewer
-	 *            the TreeViewer associated with this configuration
-	 * @return an array of TransferDropTargetListeners
-	 */
-	public TransferDropTargetListener[] getTransferDropTargetListeners(TreeViewer treeViewer) {
-		return new TransferDropTargetListener[0];
-	}
-
-	/**
-	 * Returns true if node selection changes affect selection in the
-	 * TreeViewer.
-	 * 
-	 * @param treeViewer
-	 *            the TreeViewer associated with this configuration
-	 * @return true if outline is currently linked to selection in editor,
-	 *         false otherwise
-	 */
-	public boolean isLinkedWithEditor(TreeViewer treeViewer) {
-		return fIsLinkWithEditor;
-	}
-
-	/**
-	 * Sets whether or not outline view should be linked with selection in
-	 * editor.
-	 * 
-	 * @param isLinkWithEditor
-	 *            The isLinkWithEditor to set.
-	 */
-	void setLinkWithEditor(boolean isLinkWithEditor) {
-		fIsLinkWithEditor = isLinkWithEditor;
-	}
-
-	/**
-	 * General hook for resource releasing and listener removal when
-	 * configurations change or the viewer is disposed of. This implementation
-	 * stops of any remaining PropertyChangeUpdateActionContributionItem from
-	 * preference listening.
-	 * 
-	 * @param viewer
-	 *            the TreeViewer associated with this configuration
-	 */
-	public void unconfigure(TreeViewer viewer) {
-		if (fToolbarContributions != null) {
-			for (int i = 0; i < fToolbarContributions.length; i++) {
-				if (fToolbarContributions[i] instanceof PropertyChangeUpdateActionContributionItem) {
-					((PropertyChangeUpdateActionContributionItem) fToolbarContributions[i]).disconnect();
-				}
-			}
-			fToolbarContributions = null;
-		}
-		if (fMenuContributions != null) {
-			for (int i = 0; i < fMenuContributions.length; i++) {
-				if (fMenuContributions[i] instanceof PropertyChangeUpdateActionContributionItem) {
-					((PropertyChangeUpdateActionContributionItem) fMenuContributions[i]).disconnect();
-				}
-			}
-			fMenuContributions = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/properties/IPropertySourceExtension.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/properties/IPropertySourceExtension.java
deleted file mode 100644
index d74eee9..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/properties/IPropertySourceExtension.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.views.properties;
-
-/**
- * Declares that this IPropertySource might support outright removal of a
- * property
- * 
- * @since 1.0
- */
-public interface IPropertySourceExtension {
-
-	/**
-	 * Returns true if the property matching the given name can be removed,
-	 * false otherwise.
-	 * 
-	 * @param name
-	 *            the name of the property
-	 * @return whether the property matching this name can be removed
-	 */
-	boolean isPropertyRemovable(Object name);
-
-	/**
-	 * Removes the property with the given displayed name. If no such property
-	 * exists, nothing is done.
-	 * 
-	 * @param name
-	 *            the displayed name of the property
-	 */
-	void removeProperty(Object name);
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/properties/PropertySheetConfiguration.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/properties/PropertySheetConfiguration.java
deleted file mode 100644
index f89e38d..0000000
--- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/views/properties/PropertySheetConfiguration.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.sse.ui.views.properties;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-
-
-/**
- * Configuration class for Property Sheet Pages. Not finalized.
- * 
- * @since 1.0
- */
-public abstract class PropertySheetConfiguration {
-	/**
-	 * Create new instance of PropertySheetConfiguration
-	 */
-	public PropertySheetConfiguration() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	/**
-	 * Adds contribution menu items to the given menuManager, toolbarManager,
-	 * statusLineManager.
-	 * 
-	 * @param menuManager
-	 *            the local menu manager of the property sheet
-	 * @param toolBarManager
-	 *            the local toolbar manager of the property sheet
-	 * @param statusLineManager
-	 *            the status line manager of the property sheet
-	 */
-	public void addContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
-		// do nothing
-	}
-
-	/**
-	 * Allows for filteration of selection before being sent to the viewer.
-	 * 
-	 * @param selectingPart
-	 *            may be null
-	 * @param selection
-	 *            model selection
-	 * @return the (filtered) selection to be sent to the viewer
-	 */
-	public ISelection getInputSelection(IWorkbenchPart selectingPart, ISelection selection) {
-		ISelection preferredSelection = selection;
-		if (selection instanceof IStructuredSelection) {
-			// don't support more than one selected node
-			if (((IStructuredSelection) selection).size() > 1)
-				preferredSelection = StructuredSelection.EMPTY;
-		}
-		return preferredSelection;
-	}
-
-	/**
-	 * Returns the correct IPropertySourceProvider.
-	 * 
-	 * @param page
-	 *            the page to be configured by this configuration
-	 * @return the IPropertySourceProvider for the given page
-	 */
-	public abstract IPropertySourceProvider getPropertySourceProvider(IPropertySheetPage page);
-
-	/**
-	 * Removes contribution menu items from the given menuManager,
-	 * toolbarManager, statusLineManager.
-	 * 
-	 * @param menuManager
-	 *            the local menu manager of the property sheet
-	 * @param toolBarManager
-	 *            the local toolbar manager of the property sheet
-	 * @param statusLineManager
-	 *            the status line manager of the property sheet
-	 */
-	public void removeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
-		// do nothing
-	}
-
-	/**
-	 * General hook for resource releasing and listener removal when
-	 * configurations change.
-	 */
-	public void unconfigure() {
-	}
-}
diff --git a/bundles/org.eclipse.wst.sse.ui/testToc.xml b/bundles/org.eclipse.wst.sse.ui/testToc.xml
deleted file mode 100644
index 6142b90..0000000
--- a/bundles/org.eclipse.wst.sse.ui/testToc.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc
-	label="Test TOC"
-	topic="html/toc.html">
-	<link toc="toc.xml" />
-</toc>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.sse.ui/toc.xml b/bundles/org.eclipse.wst.sse.ui/toc.xml
deleted file mode 100644
index a5c0bb6..0000000
--- a/bundles/org.eclipse.wst.sse.ui/toc.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.toc"?>
-
-<toc label="Sample Table of Contents">
-	<topic
-		label="Main Topic"
-		href="html/maintopic.html">
-		<topic
-			label="Sub Topic"
-			href="html/subtopic.html" />
-	</topic>
-	<topic label="Main Topic 2" />
-</toc>
diff --git a/bundles/org.eclipse.wst.xml.core/.classpath b/bundles/org.eclipse.wst.xml.core/.classpath
index af4421b..0f97d08 100644
--- a/bundles/org.eclipse.wst.xml.core/.classpath
+++ b/bundles/org.eclipse.wst.xml.core/.classpath
@@ -6,7 +6,38 @@
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="src-catalog"/>
 	<classpathentry kind="src" path="src-emfModelSynch"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/validation/**"/>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/common/internal/emf/resource/**"/>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/common/internal/emf/utilities/**"/>
+			<accessrule kind="accessible" pattern="org/eclipse/wst/common/internal/emfworkbench/**"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4">
+		<accessrules>
+			<accessrule kind="accessible" pattern="org/apache/xerces/dom/TreeWalkerImpl"/>
+			<accessrule kind="accessible" pattern="org/w3c/dom/ranges/DocumentRange"/>
+			<accessrule kind="accessible" pattern="org/w3c/dom/ranges/Range"/>
+			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/DocumentTraversal"/>
+			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/NodeFilter"/>
+			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/NodeIterator"/>
+			<accessrule kind="accessible" pattern="org/w3c/dom/traversal/TreeWalker"/>
+			<accessrule kind="accessible" pattern="org/w3c/dom/ranges/RangeException"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/impl/XMLErrorReporter"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/parsers/StandardParserConfiguration"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/Augmentations"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/NamespaceContext"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/QName"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/XMLAttributes"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/XMLLocator"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/XMLResourceIdentifier"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/XNIException"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/parser/XMLEntityResolver"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/xni/parser/XMLInputSource"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/parsers/SAXParser"/>
+			<accessrule kind="accessible" pattern="org/apache/xerces/parsers/AbstractSAXParser"/>
+		</accessrules>
+	</classpathentry>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/bundles/org.eclipse.wst.xml.core/.options b/bundles/org.eclipse.wst.xml.core/.options
index e80df84..046e4f6 100644
--- a/bundles/org.eclipse.wst.xml.core/.options
+++ b/bundles/org.eclipse.wst.xml.core/.options
@@ -1,2 +1,4 @@
 org.eclipse.wst.xml.core/debug=true
 org.eclipse.wst.xml.core/debug/tracefilter=
+org.eclipse.wst.xml.core/debug/cmdocumentmanager=false
+org.eclipse.wst.xml.core/debug/cmdocumentcache=false
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.core.runtime.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.core.runtime.prefs
similarity index 100%
copy from bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.core.runtime.prefs
copy to bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.core.runtime.prefs
diff --git a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.core.prefs
index 782e417..3405307 100644
--- a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.core.prefs
+++ b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.core.prefs
@@ -1,4 +1,4 @@
-#Sun Apr 16 17:23:39 EDT 2006

+#Sat Mar 24 02:18:23 EDT 2007

 eclipse.preferences.version=1

 org.eclipse.jdt.core.builder.cleanOutputFolder=clean

 org.eclipse.jdt.core.builder.duplicateResourceTask=warning

@@ -22,7 +22,7 @@
 org.eclipse.jdt.core.compiler.problem.deprecation=ignore

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

 org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore

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

 org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

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

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

@@ -47,16 +47,16 @@
 org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=enabled

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

 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore

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

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

 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error

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

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

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

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

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

 org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled

 org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error

 org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning

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

 org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore

 org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

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

@@ -64,7 +64,6 @@
 org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore

 org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error

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

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

 org.eclipse.jdt.core.compiler.problem.unusedImport=error

diff --git a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.ui.prefs
index ef2ac65..1ca5c5e 100644
--- a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.ui.prefs
+++ b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.jdt.ui.prefs
@@ -1,3 +1,3 @@
-#Tue Apr 04 03:36:39 EDT 2006
+#Wed Nov 15 02:26:10 EST 2006
 eclipse.preferences.version=1
-internal.default.compliance=default
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<templates/>
diff --git a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.pde.prefs
index f724958..86ca5a7 100644
--- a/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.pde.prefs
+++ b/bundles/org.eclipse.wst.xml.core/.settings/org.eclipse.pde.prefs
@@ -1,4 +1,5 @@
-#Sun Apr 16 14:05:29 EDT 2006
+#Wed Nov 15 02:13:31 EST 2006
+compilers.incompatible-environment=0
 compilers.p.build=0
 compilers.p.deprecated=1
 compilers.p.illegal-att-value=0
@@ -6,7 +7,7 @@
 compilers.p.not-externalized-att=0
 compilers.p.unknown-attribute=0
 compilers.p.unknown-class=0
-compilers.p.unknown-element=0
+compilers.p.unknown-element=1
 compilers.p.unknown-resource=0
 compilers.p.unresolved-ex-points=0
 compilers.p.unresolved-import=0
diff --git a/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex b/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex
index ff50a31..15d5b0a 100644
--- a/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex
+++ b/bundles/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex
@@ -1,256 +1,254 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-/*nlsXXX*/
-package org.eclipse.wst.xml.core.internal.contenttype;
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;
-import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;
-
-
-%%
-
-%{
-
-
-	private boolean hasMore = true;
-	private final static int MAX_TO_SCAN = 8000;
-	StringBuffer string = new StringBuffer();
-	// state stack for easier state handling
-	private IntStack fStateStack = new IntStack();
-	private String valueText = null;
-
-
-	public XMLHeadTokenizer() {
-		super();
-	}
-
-	  public void reset (Reader in) {
-                /* the input device */
-                zzReader = in;
-
-                /* the current state of the DFA */
-                zzState = 0;
-
-                /* the current lexical state */
-                zzLexicalState = YYINITIAL;
-
-                /* this buffer contains the current text to be matched and is
-                 the source of the yytext() string */
-                java.util.Arrays.fill(zzBuffer, (char)0);
-
-                /* the textposition at the last accepting state */
-                zzMarkedPos = 0;
-
-                /* the textposition at the last state to be included in yytext */
-                zzPushbackPos = 0;
-
-                /* the current text position in the buffer */
-                zzCurrentPos = 0;
-
-                /* startRead marks the beginning of the yytext() string in the buffer */
-                zzStartRead = 0;
-
-                /**
-                 * endRead marks the last character in the buffer, that has been read
-                 * from input
-                 */
-                zzEndRead = 0;
-
-                /* number of newlines encountered up to the start of the matched text */
-                yyline = 0;
-
-                /* the number of characters up to the start of the matched text */
-                yychar = 0;
-
-                /**
-                 * the number of characters from the last newline up to the start
-                 * of the matched text
-                 */
-                yycolumn = 0;
-
-                /**
-                 * yy_atBOL == true <=> the scanner is currently at the beginning
-                 * of a line
-                 */
-                zzAtBOL = true;
-
-                /* yy_atEOF == true <=> the scanner has returned a value for EOF */
-                zzAtEOF = false;
-
-                /* denotes if the user-EOF-code has already been executed */
-                zzEOFDone = false;
-
-
-                fStateStack.clear();
-
-                hasMore = true;
-  		
-  	}
-
-
-	public final HeadParserToken getNextToken() throws IOException {
-		String context = null;
-		context = primGetNextToken();
-		HeadParserToken result = null;
-		if (valueText != null) {
-			result = createToken(context, yychar, valueText);
-			valueText = null;
-		} else {
-			result = createToken(context, yychar, yytext());
-		}
-		return result;
-	}
-
-	public final boolean hasMoreTokens() {
-		return hasMore && yychar < MAX_TO_SCAN;
-	}
-	private void pushCurrentState() {
-		fStateStack.push(yystate());
-
-	}
-
-	private void popState() {
-		yybegin(fStateStack.pop());
-	}
-	
-	private HeadParserToken createToken(String context, int start, String text) {
-		return new HeadParserToken(context, start, text);
-	}	
-
-%}
-
-%eof{
-	hasMore=false;
-%eof}
-
-%public
-%class XMLHeadTokenizer
-%function primGetNextToken
-%type String
-%char
-%unicode
-%ignorecase 
-//%debug
-%switch
-%buffer 8192
-
-UTF16BE = \xFE\xFF
-UTF16LE = \xFF\xFE
-UTF83ByteBOM = \xEF\xBB\xBF
-
-//SpaceChar = [\x20\x09]
-
-// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+
-S = [\x20\x09\x0D\x0A]
-
-BeginAttribeValue = {S}* \= {S}*
-
-LineTerminator = \r|\n
-
-
-%state ST_XMLDecl
-%state QuotedAttributeValue
-%state DQ_STRING
-%state SQ_STRING
-%state UnDelimitedString
-
-%%
-
-
-<YYINITIAL>  
-{
-	// force to start at beginning of line (^) and at beginning of file (yychar == 0)
-	^{UTF16BE}   		{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}}
-	^{UTF16LE}   		{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;}}
-	^{UTF83ByteBOM}   	{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}}
-	
-	// force to be started on first line, but we do allow preceeding spaces
-	^ {S}* "<\?xml" {S}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}
-	
-}	
-	
-<ST_XMLDecl> 
-{
-	"version" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}
-	"encoding" {BeginAttribeValue} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}
-	// note the "forced end" (via 'hasMore=false') once the end of XML Declaration found
-	// This is since non-ascii chars may follow and may cause IOExceptions which would not occur once stream is 
-	// read with incorrect encoding (such as if platform encoding is in effect until true encoding detected). 
-	"\?>"    {yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd;}
-}	
-
-	
-
-<QuotedAttributeValue>
-{
-	\"                      { yybegin(DQ_STRING); string.setLength(0); }
-	\'			{ yybegin(SQ_STRING); string.setLength(0); }
-	// in this state, anything other than a space character can start an undelimited string
-	{S}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}
-
-}	
-
-
-<DQ_STRING>
-{
-
-	\"                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<SQ_STRING>
-{
-
-	\'                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"%>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	.			{ string.append( yytext() ); }
-
-
-}
-
-<UnDelimitedString>
-{
-
-	{S}                     { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }
-  	{LineTerminator}        { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	"\?>"			{ yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	'<'	
-	{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}
-	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote
-	\'			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	
-	\"			{ yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}
-	
-	.			{ string.append( yytext() ); }
-
-}
-
-// The "match anything" rule should always be in effect except for when looking for end of string
-// (That is, remember to update state list if/when new states added)
-<YYINITIAL, ST_XMLDecl, QuotedAttributeValue>
-{
-// this is the fallback (match "anything") rule  (for this scanner, input is ignored, and position advanced, if not recognized)
-.|\n              {if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}
-}
-
-// this rule always in effect
-<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}
-
+/*******************************************************************************

+ * Copyright (c) 2005, 2008 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

+ *******************************************************************************/

+/*nlsXXX*/

+package org.eclipse.wst.xml.core.internal.contenttype;

+import java.io.IOException;

+import java.io.Reader;

+

+import org.eclipse.wst.xml.core.internal.contenttype.EncodingParserConstants;

+import org.eclipse.wst.xml.core.internal.contenttype.XMLHeadTokenizerConstants;

+

+

+%%

+

+%{

+

+

+	private boolean hasMore = true;

+	private final static int MAX_TO_SCAN = 8000;

+	StringBuffer string = new StringBuffer();

+	// state stack for easier state handling

+	private IntStack fStateStack = new IntStack();

+	private String valueText = null;

+

+

+	public XMLHeadTokenizer() {

+		super();

+	}

+

+	  public void reset (Reader in) {

+                /* the input device */

+                zzReader = in;

+

+                /* the current state of the DFA */

+                zzState = 0;

+

+                /* the current lexical state */

+                zzLexicalState = YYINITIAL;

+

+                /* this buffer contains the current text to be matched and is

+                 the source of the yytext() string */

+                java.util.Arrays.fill(zzBuffer, (char)0);

+

+                /* the textposition at the last accepting state */

+                zzMarkedPos = 0;

+

+                /* the textposition at the last state to be included in yytext */

+                zzPushbackPos = 0;

+

+                /* the current text position in the buffer */

+                zzCurrentPos = 0;

+

+                /* startRead marks the beginning of the yytext() string in the buffer */

+                zzStartRead = 0;

+

+                /**

+                 * endRead marks the last character in the buffer, that has been read

+                 * from input

+                 */

+                zzEndRead = 0;

+

+                /* number of newlines encountered up to the start of the matched text */

+                yyline = 0;

+

+                /* the number of characters up to the start of the matched text */

+                yychar = 0;

+

+                /**

+                 * the number of characters from the last newline up to the start

+                 * of the matched text

+                 */

+                yycolumn = 0;

+

+                /**

+                 * yy_atBOL == true <=> the scanner is currently at the beginning

+                 * of a line

+                 */

+                zzAtBOL = true;

+

+                /* yy_atEOF == true <=> the scanner has returned a value for EOF */

+                zzAtEOF = false;

+

+                /* denotes if the user-EOF-code has already been executed */

+                zzEOFDone = false;

+

+

+                fStateStack.clear();

+

+                hasMore = true;

+  		

+  	}

+

+

+	public final HeadParserToken getNextToken() throws IOException {

+		String context = null;

+		context = primGetNextToken();

+		HeadParserToken result = null;

+		if (valueText != null) {

+			result = createToken(context, yychar, valueText);

+			valueText = null;

+		} else {

+			result = createToken(context, yychar, yytext());

+		}

+		return result;

+	}

+

+	public final boolean hasMoreTokens() {

+		return hasMore && yychar < MAX_TO_SCAN;

+	}

+	private void pushCurrentState() {

+		fStateStack.push(yystate());

+

+	}

+

+	private void popState() {

+		yybegin(fStateStack.pop());

+	}

+	

+	private HeadParserToken createToken(String context, int start, String text) {

+		return new HeadParserToken(context, start, text);

+	}	

+

+%}

+

+%eof{

+	hasMore=false;

+%eof}

+

+%public

+%class XMLHeadTokenizer

+%function primGetNextToken

+%type String

+%char

+%unicode

+%ignorecase 

+//%debug

+%switch

+%buffer 8192

+

+UTF16BE = \xFE\xFF

+UTF16LE = \xFF\xFE

+UTF83ByteBOM = \xEF\xBB\xBF

+

+//SpaceChar = [\x20\x09]

+

+// [3] S ::= (0x20 | 0x9 | 0xD | 0xA)+

+S = [\x20\x09\x0D\x0A]

+

+//BeginAttribeValue = {S}* \= {S}*

+

+LineTerminator = \r|\n

+

+// Z is the single-byte zero character to be used in parsing double-byte files

+Z = (\x00)?

+S_UTF = {Z}{S}{Z}

+BeginAttributeValueUTF = {S_UTF}* \= {S_UTF}*

+

+%state ST_XMLDecl

+%state QuotedAttributeValue

+%state DQ_STRING

+%state SQ_STRING

+%state UnDelimitedString

+

+%%

+

+

+<YYINITIAL>  

+{

+	// force to start at beginning of line (^) and at beginning of file (yychar == 0)

+	^{UTF16BE}   		{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}}

+	^{UTF16LE}   		{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;}}

+	^{UTF83ByteBOM}   	{if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}}

+	

+	// force to be started on first line, but we do allow preceeding spaces

+	^ {S_UTF}* ({Z}<{Z}\?{Z}x{Z}m{Z}l{Z}){S_UTF}+ {if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}}

+	

+}	

+	

+<ST_XMLDecl> 

+{

+	({Z}v{Z}e{Z}r{Z}s{Z}i{Z}o{Z}n{Z}) {BeginAttributeValueUTF} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;}

+	({Z}e{Z}n{Z}c{Z}o{Z}d{Z}i{Z}n{Z}g{Z}) {BeginAttributeValueUTF} {pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;}

+	// note the "forced end" (via 'hasMore=false') once the end of XML Declaration found

+	// This is since non-ascii chars may follow and may cause IOExceptions which would not occur once stream is 

+	// read with incorrect encoding (such as if platform encoding is in effect until true encoding detected). 

+	({Z}\?{Z}>{Z})    {yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd;}

+}	

+

+	

+

+<QuotedAttributeValue>

+{

+	{Z}\"{Z}        { yybegin(DQ_STRING); string.setLength(0); }

+	{Z}\'{Z}			{ yybegin(SQ_STRING); string.setLength(0); }

+	// in this state, anything other than a space character can start an undelimited string

+	{S_UTF}*.           { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);}

+

+}	

+

+

+<DQ_STRING>

+{

+

+	{Z}\"{Z}                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue; }

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\?{Z}>{Z}			{ yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	[^\x00]			{ string.append( yytext() ); }

+

+}

+

+<SQ_STRING>

+{

+

+	{Z}\'{Z}                      { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;}

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}%{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	[^\x00]			{ string.append( yytext() ); }

+

+}

+

+<UnDelimitedString>

+{

+

+	{S_UTF}                     { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue; }

+  	{Z}{LineTerminator}{Z}        { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}\?{Z}>{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	{Z}<{Z}	

+	{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;}

+	// these are a bit special, since we started an undelimit string, but found a quote ... probably indicates a missing beginning quote

+	{Z}\'{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

+	

+	{Z}\"{Z}			{ yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;}

+	

+	[^\x00]			{ string.append( yytext() ); }

+

+}

+

+// The "match anything" rule should always be in effect except for when looking for end of string

+// (That is, remember to update state list if/when new states added)

+.|\n	{if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}}

+

+// this rule always in effect

+<<EOF>>         {hasMore = false; return EncodingParserConstants.EOF;}

+

 	
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF
index 1909830..af632b8 100644
--- a/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.xml.core/META-INF/MANIFEST.MF
@@ -2,72 +2,73 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wst.xml.core; singleton:=true
-Bundle-Version: 1.1.102.qualifier
+Bundle-Version: 1.1.301.qualifier
 Bundle-Activator: org.eclipse.wst.xml.core.internal.XMLCorePlugin
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.xml.core.internal;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.catalog;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.catalog.provisional;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.cleanup;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.commentelement;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.commentelement.impl;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.commentelement.util;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.annotation;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.basic;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.factory;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.internal.util;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.modelquery;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contentmodel.util;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.contenttype;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.document;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.emf2xml;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.encoding;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.modelhandler;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.modelquery;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.parser;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.parser.regions;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.preferences;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.propagate;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.contentmodel;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.contenttype;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.document;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.format;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.provisional.text;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.regions;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.search;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.search.impl;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.search.matching;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.search.quickscan;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.ssemodelquery;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.tasks;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.text;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.text.rules;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validate;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation.core;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation.core.logging;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation.eclipse;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xml.core.internal.validation.errorcustomization;x-friends:="com.ibm.etools.emf.event,org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+Export-Package: org.eclipse.wst.xml.core.internal;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.catalog;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.catalog.provisional;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.cleanup;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.commentelement;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.commentelement.impl;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.commentelement.util;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.annotation;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.basic;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.factory;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.internal.annotation;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.internal.modelqueryimpl;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.internal.util;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.modelquery;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contentmodel.util;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.contenttype;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.document;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.emf2xml;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.encoding;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.formatter;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.modelhandler;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.modelquery;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.parser;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.parser.regions;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.preferences;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.propagate;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.provisional;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.provisional.contentmodel;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.provisional.contenttype;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.provisional.document;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.provisional.format;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.provisional.text;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.regions;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.search;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.search.impl;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.search.matching;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.search.quickscan;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.ssemodelquery;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.tasks;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.text;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.text.rules;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.validate;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.validation;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.validation.core;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.validation.core.logging;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.validation.eclipse;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
+ org.eclipse.wst.xml.core.internal.validation.errorcustomization;x-friends:="org.eclipse.wst.dtd.core,org.eclipse.wst.dtd.ui,org.eclipse.wst.xml.ui,org.eclipse.wst.xsd.core,org.eclipse.wst.xsd.ui",
  org.eclipse.wst.xml.core.text
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.text;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.jem.util;resolution:=optional;bundle-version="[1.2.0,1.3.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.edit;resolution:=optional;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.wst.common.emf;resolution:=optional;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.emf.ecore.xmi;resolution:=optional;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.wst.common.emfworkbench.integration;resolution:=optional;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.core;bundle-version="[1.1.0,1.2.0)",
- com.ibm.icu;bundle-version="[3.4.4,4.0.0)",
- org.apache.xerces;visibility:=reexport;bundle-version="[2.8.0,2.9.0)"
-Eclipse-LazyStart: true; exceptions="org.eclipse.wst.xml.core.internal.contenttype"
+Require-Bundle: org.apache.xerces;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
+ org.eclipse.core.runtime;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)",
+ org.eclipse.wst.common.uriresolver;bundle-version="[1.1.301,1.2.0)",
+ org.eclipse.wst.sse.core;bundle-version="[1.1.300,1.2.0)",
+ org.eclipse.jem.util;bundle-version="[2.0.100,3.0.0)";resolution:=optional,
+ org.eclipse.wst.validation;bundle-version="[1.2.0,1.3.0)";resolution:=optional,
+ org.eclipse.emf.ecore.edit;bundle-version="[2.4.0,3.0.0)";resolution:=optional,
+ org.eclipse.wst.common.emf;bundle-version="[1.1.104,1.2.0)";resolution:=optional,
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.4.0,3.0.0)";resolution:=optional,
+ org.eclipse.wst.common.emfworkbench.integration;bundle-version="[1.1.200,1.2.0)";resolution:=optional,
+ org.eclipse.wst.common.core;bundle-version="[1.1.101,1.2.0)",
+ com.ibm.icu;bundle-version="[3.8.1,4.0.0)"
+Bundle-ActivationPolicy: lazy; exclude:="org.eclipse.wst.xml.core.internal.contenttype"
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/bundles/org.eclipse.wst.xml.core/about.html b/bundles/org.eclipse.wst.xml.core/about.html
index 4ec5989..2199df3 100644
--- a/bundles/org.eclipse.wst.xml.core/about.html
+++ b/bundles/org.eclipse.wst.xml.core/about.html
@@ -10,7 +10,7 @@
 
 <H3>About This Content</H3>
 
-<P>May 2, 2006</P>
+<P>June, 2008</P>
 
 <H3>License</H3>
 
diff --git a/bundles/org.eclipse.wst.xml.core/build.properties b/bundles/org.eclipse.wst.xml.core/build.properties
index 0f668a7..e49a2dc 100644
--- a/bundles/org.eclipse.wst.xml.core/build.properties
+++ b/bundles/org.eclipse.wst.xml.core/build.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
+# Copyright (c) 2001, 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
 #     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/plugin.properties b/bundles/org.eclipse.wst.xml.core/plugin.properties
index 00d54f8..b954490 100644
--- a/bundles/org.eclipse.wst.xml.core/plugin.properties
+++ b/bundles/org.eclipse.wst.xml.core/plugin.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
+# Copyright (c) 2001, 2008 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
@@ -23,3 +23,5 @@
 XMI_Content_Type=XMI
 XML_Validator.name=XML Validator
 XML_Validation_Error_Customizer.name=XML Validator Error Customizer Extension Point
+_validationMarker.name=XML Problem
+_taskMarker.name=XML Task
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/plugin.xml b/bundles/org.eclipse.wst.xml.core/plugin.xml
index 4f9630c..8ebaa6f 100644
--- a/bundles/org.eclipse.wst.xml.core/plugin.xml
+++ b/bundles/org.eclipse.wst.xml.core/plugin.xml
@@ -5,7 +5,6 @@
    <!-- An extension for contributing a XML validation error customizer. -->
    <extension-point id="errorCustomizer" name="%XML_Validation_Error_Customizer.name" schema="schema/errorCustomizer.exsd"/>
 
-
 	<extension point="org.eclipse.wst.sse.core.modelHandler">
 		<modelHandler
 			default="true"
@@ -32,9 +31,16 @@
 	<extension point="org.eclipse.wst.sse.core.taskscanner">
 		<scanner
 			id="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner"
-			class="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner"
+			class="org.eclipse.wst.xml.core.internal.tasks.XMLFileTaskScanner:org.eclipse.wst.xml.core.taskMarker"
 			contentTypeIds="org.eclipse.core.runtime.xml" />
 	</extension>
+	<extension
+		id="taskMarker"
+		name="%_taskMarker.name"
+		point="org.eclipse.core.resources.markers">
+		<super type="org.eclipse.core.resources.taskmarker"/>
+		<persistent value="true"/>
+	</extension>
 	 
    <!-- Here we define a new extension point.  This extension point is used
         to programmatically contribute catalog entries to the XML Catalog. -->
@@ -98,35 +104,11 @@
 	
 	<extension point="org.eclipse.wst.sse.core.formatProcessors">
 		<processor
-			class="org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML"
+			class="org.eclipse.wst.xml.core.internal.formatter.XMLFormatterFormatProcessor"
 			contentTypeId="org.eclipse.core.runtime.xml">
 		</processor>
 	</extension>
 
-	<extension point="org.eclipse.core.runtime.contentTypes">
-		<content-type
-			file-extensions="xml,xsl,xslt,wsdl,xsd,exsd,xmi"
-			priority="low"
-			name="%XML_Content_Type_Extension_Element.name"
-			id="xmlsource"
-			base-type="org.eclipse.core.runtime.text"
-			default-charset="UTF-8">
-			<describer
-				class="org.eclipse.wst.xml.core.internal.contenttype.ContentDescriberForXML" />
-		</content-type>
-	</extension>
-
-	<extension point="org.eclipse.core.runtime.contentTypes">
-		<content-type
-			file-extensions="xsl,xslt"
-			priority="high"
-			name="%XSL_Content_Type_Extension_Element.name"
-			id="xslsource"
-			base-type="org.eclipse.core.runtime.xml"
-			default-charset="UTF-8">
-		</content-type>
-	</extension>
-
 	<!--  https://bugs.eclipse.org/bugs/show_bug.cgi?id=103083 -->\
 	<!--  FYI: this xmi type *should* be defined in EMF, but, since isn't
 			we will here. In future versions is could be removed -->
@@ -138,12 +120,31 @@
 			id="xmisource"
 			base-type="org.eclipse.core.runtime.xml">
 		</content-type>
+
+		<content-type
+			file-extensions="xml,xsl,xslt,wsdl,xsd,exsd,xmi"
+			priority="low"
+			name="%XML_Content_Type_Extension_Element.name"
+			id="xmlsource"
+			base-type="org.eclipse.core.runtime.text"
+			default-charset="UTF-8">
+			<describer class="org.eclipse.wst.xml.core.internal.contenttype.ContentDescriberForXML" />
+		</content-type>
+
+		<content-type
+			file-extensions="xsl,xslt"
+			priority="high"
+			name="%XSL_Content_Type_Extension_Element.name"
+			id="xslsource"
+			base-type="org.eclipse.core.runtime.xml"
+			default-charset="UTF-8">
+		</content-type>
 	</extension>
 
+
 	<!-- initialize xml core preferences -->
 	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceInitializer" />
+		<initializer class="org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceInitializer" />
 	</extension>
 
 	<extension-point id="documentFactories" name="%Content_Model_Document_Factories_Extension.name" schema="schema/documentFactories.exsd"/>
@@ -164,52 +165,52 @@
 	<!-- Register the XML validator with the validation 		-->
 	<!-- framework. 										    -->
 	<!-- ====================================================== -->
+
  <extension
- id="xmlValidator"
-		name="%XML_Validator.name"
-       point="org.eclipse.wst.validation.validator">
-    <validator>
-    <!-- There is a custom XML validator for EJBs -->
-			<projectNature
-				include="false"
-				id="org.eclipse.jst.j2ee.ejb.EJBNature">
-			</projectNature>
-			<!-- There is a custom XML validator for EARs -->
-			<projectNature
-				include="false"
-				id="org.eclipse.jst.j2ee.EARNature">
-			</projectNature>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				caseSensitive="false"
-				nameFilter="*.xml">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				caseSensitive="false"
-				nameFilter="*.gph">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				caseSensitive="false"
-				nameFilter="*.wdo-connections">
-			</filter>
-			<filter
-				objectClass="org.eclipse.core.resources.IFile"
-				caseSensitive="false"
-				nameFilter="*.tld" />
-				
-    <helper
-				class="org.eclipse.wst.xml.core.internal.validation.core.Helper">
-			</helper>
-			
-       <run
-             async="true"
-             class="org.eclipse.wst.xml.core.internal.validation.eclipse.Validator"
-             enabled="true"
-             fullBuild="true"
-             incremental="true"/>
-    </validator>
+         id="validationMarker"
+         name="%_validationMarker.name"
+         point="org.eclipse.core.resources.markers">
+      <super type="org.eclipse.wst.validation.problemmarker"/>
+      <persistent value="true"/>
  </extension>
 
+   <extension id="xml" name="%XML_Validator.name" point="org.eclipse.wst.validation.validatorV2">
+      <validator
+            build="true"
+            class="org.eclipse.wst.xml.core.internal.validation.eclipse.Validator"
+            manual="true"
+            sourceid="org.eclipse.wst.xml.ui.internal.validation.DelegatingSourceValidatorForXML"
+            version="3"
+            markerId="org.eclipse.wst.xml.core.validationMarker">
+         <include>
+            <rules>
+               <contentType id="org.eclipse.core.runtime.xml"></contentType>
+               <contentType id="org.eclipse.wst.xml.core.xmlsource"></contentType>
+               <contentType id="org.eclipse.wst.xml.core.xslsource"></contentType>
+               <contentType id="org.eclipse.jst.jsp.core.tldsource"></contentType>
+               <fileext
+                     caseSensitive="false"
+                     ext="xml">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="gph">
+               </fileext>
+               <fileext
+                     caseSensitive="false"
+                     ext="wdo-connections">
+               </fileext>
+            </rules>
+         </include>
+         <exclude>
+            <rules>
+				<projectNature id="org.eclipse.jst.j2ee.ejb.EJBNature"/>
+				<projectNature id="org.eclipse.jst.j2ee.EARNature"/>
+    			<file caseSensitive="true" name=".project" type="file"/>
+    			<file caseSensitive="true" name=".classpath" type="file"/>
+    			<file caseSensitive="true" name=".settings"  type="folder"/>
+            </rules>
+         </exclude>
+      </validator>
+   </extension>
 </plugin>
diff --git a/bundles/org.eclipse.wst.xml.core/schema/catalogContributions.exsd b/bundles/org.eclipse.wst.xml.core/schema/catalogContributions.exsd
index c90597b..b7bad1b 100644
--- a/bundles/org.eclipse.wst.xml.core/schema/catalogContributions.exsd
+++ b/bundles/org.eclipse.wst.xml.core/schema/catalogContributions.exsd
@@ -224,7 +224,7 @@
       <documentation>
          &lt;pre&gt;
    &lt;extension 
-         point=&quot;org.eclipse.wst.xml.uriresolver.catalogContributions&quot;&gt;
+         point=&quot;org.eclipse.wst.xml.core.catalogContributions&quot;&gt;
       &lt;catalogContribution&gt; 
          &lt;system 
                systemId=&quot;http://schemas.xmlsoap.org/wsdl/&quot;
@@ -239,9 +239,6 @@
          &lt;public
                publicId=&quot;http://www.w3.org/1999/XSL/Transform&quot;
                uri=&quot;data/xsd/XSLSchema.xsd&quot;&gt;
-            &lt;property 
-                  name=&quot;webURL&quot;
-                  value=&quot;http://schemas.xmlsoap.org/wsdl/&quot;/&gt;
          &lt;/public&gt;
          &lt;nextCatalog
                id=&quot;nestedCatalog&quot; 
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/Catalog.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/Catalog.java
index fe17a5f..d071382 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/Catalog.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/Catalog.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogContributorRegistryReader.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogContributorRegistryReader.java
index 2249696..2f01c5f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogContributorRegistryReader.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogContributorRegistryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogElement.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogElement.java
index e4fd08f..1e51a04 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogElement.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogElement.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEntry.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEntry.java
index 2524368..550a8e4 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEntry.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEntry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEvent.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEvent.java
index 9d2f63b..8fba64d 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEvent.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogReader.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogReader.java
index b7b80d6..bdb88d3 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogReader.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -20,6 +20,7 @@
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
+import org.eclipse.wst.common.uriresolver.internal.URI;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
 import org.eclipse.wst.xml.core.internal.Logger;
 import org.eclipse.wst.xml.core.internal.XMLCoreMessages;
@@ -29,7 +30,6 @@
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.helpers.DefaultHandler;
-import org.eclipse.wst.common.uriresolver.internal.URI;
 
 /**
  * 
@@ -168,12 +168,14 @@
       {
         CatalogEntry catalogEntry = (CatalogEntry) catalogElement;
         catalogEntry.setKey(key); 
-        
-        // For relative URIs, try to resolve them using the corresponding base URI.
+
+        //      For relative URIs, try to resolve them using the corresponding base URI.
         if(URI.createURI(entryURI).isRelative()) {
         	entryURI = URI.resolveRelativeURI(entryURI, baseURIStack.peek().toString());
-        }
+        } 
+
         catalogEntry.setURI(URIHelper.ensureURIProtocolFormat(entryURI));     
+
       }
       // process any other attributes
       for (int j = 0; j < attributes.getLength(); j++)
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogSet.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogSet.java
index 5020e51..acfbd16 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogSet.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogSet.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogWriter.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogWriter.java
index aec5c5b..5900e1f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogWriter.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/CatalogWriter.java
@@ -4,7 +4,7 @@
  * 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
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/NextCatalog.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/NextCatalog.java
index d4b0f25..16f755a 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/NextCatalog.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/NextCatalog.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/OASISCatalogConstants.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/OASISCatalogConstants.java
index 1ea076f..a3c578a 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/OASISCatalogConstants.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/OASISCatalogConstants.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/XMLCatalogURIResolverExtension.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/XMLCatalogURIResolverExtension.java
index 31e95d4..0b4af07 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/XMLCatalogURIResolverExtension.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/XMLCatalogURIResolverExtension.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalog.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalog.java
index b1ecb4b..0637a3c 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalog.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalog.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogElement.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogElement.java
index 2ea3d2f..15055c3 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogElement.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogElement.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEntry.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEntry.java
index 1a33018..271cbe2 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEntry.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEntry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEvent.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEvent.java
index bbfdb3c..7825768 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEvent.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogEvent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogListener.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogListener.java
index 30c44cd..7c3dc0d 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogListener.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/ICatalogListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/INextCatalog.java b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/INextCatalog.java
index e54e00a..47c939c 100644
--- a/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/INextCatalog.java
+++ b/bundles/org.eclipse.wst.xml.core/src-catalog/org/eclipse/wst/xml/core/internal/catalog/provisional/INextCatalog.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAnyElement.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAnyElement.java
index 7cd0670..72a4702 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAnyElement.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAnyElement.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAttributeDeclaration.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAttributeDeclaration.java
index efb1a5b..c5f718f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAttributeDeclaration.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMAttributeDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMContent.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMContent.java
index 3ecee79..218b297 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMContent.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMContent.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDataType.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDataType.java
index 5b93aa1..79d9f5f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDataType.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDataType.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocument.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocument.java
index 594e4f0..58d7a43 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocument.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocumentation.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocumentation.java
index 0e52593..88e4d8d 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocumentation.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMDocumentation.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMElementDeclaration.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMElementDeclaration.java
index 80418d9..2c48077 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMElementDeclaration.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMElementDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMEntityDeclaration.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMEntityDeclaration.java
index 5262494..99b5434 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMEntityDeclaration.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMEntityDeclaration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMGroup.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMGroup.java
index ad49a17..ce01ca7 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMGroup.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMGroup.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamedNodeMap.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamedNodeMap.java
index becb4cd..2c79b81 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamedNodeMap.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamedNodeMap.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamespace.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamespace.java
index 7426076..100bcbc 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamespace.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNamespace.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNode.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNode.java
index d9883bc..8bd95e8 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNode.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNode.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNodeList.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNodeList.java
index f84b384..94adbf8 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNodeList.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/CMNodeList.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/ContentModelManager.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/ContentModelManager.java
index 9092cb1..602b160 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/ContentModelManager.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/ContentModelManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/Annotation.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/Annotation.java
index ba50b25..e0a3b39 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/Annotation.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/Annotation.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/AnnotationMap.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/AnnotationMap.java
index de75351..4b93035 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/AnnotationMap.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/annotation/AnnotationMap.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAnyElementImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAnyElementImpl.java
index 48c8f65..8300a90 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAnyElementImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAnyElementImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAttributeDeclarationImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAttributeDeclarationImpl.java
index d6daaaa..f0df4fa 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAttributeDeclarationImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMAttributeDeclarationImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMContentImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMContentImpl.java
index b9e828b..2357eec 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMContentImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMContentImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDataTypeImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDataTypeImpl.java
index 9664f7f..a004626 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDataTypeImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDataTypeImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDocumentImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDocumentImpl.java
index e272d65..7c76a8e 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDocumentImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMDocumentImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMElementDeclarationImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMElementDeclarationImpl.java
index 2ef574e..1879b9f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMElementDeclarationImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMElementDeclarationImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMEntityDeclarationImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMEntityDeclarationImpl.java
index e51b7f5..a5d97fa 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMEntityDeclarationImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMEntityDeclarationImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMGroupImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMGroupImpl.java
index 994ff2d..59c4ece 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMGroupImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMGroupImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNamedNodeMapImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNamedNodeMapImpl.java
index 4402bb9..fee63d2 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNamedNodeMapImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNamedNodeMapImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -34,6 +34,15 @@
   	super();
   }
 
+  public CMNamedNodeMapImpl(CMNamedNodeMap initialContentsMap) {
+		super();
+		if (initialContentsMap != null) {
+			int length = initialContentsMap.getLength();
+			for (int j = 0; j < length; j++) {
+				put(initialContentsMap.item(j));
+			}
+		}
+	}
   /**
    * getLength method
    * @return int
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeImpl.java
index 07cece0..a12e2ac 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeListImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeListImpl.java
index b423511..6bcba38 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeListImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/basic/CMNodeListImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactory.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactory.java
index 5a571d3..a84be95 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryDescriptor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryDescriptor.java
index 79116b1..c737b92 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryDescriptor.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryDescriptor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistry.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistry.java
index 93154f7..9f403b9 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistry.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistryReader.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistryReader.java
index 1b9dac4..6c8b193 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistryReader.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/factory/CMDocumentFactoryRegistryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileInfo.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileInfo.java
index 9c61b19..a9a372f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileInfo.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileInfo.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java
index 7573083..641915d 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistry.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistry.java
index 49094ce..c8991fb 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistry.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistryReader.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistryReader.java
index 9f78d82..3c7c423 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistryReader.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationFileRegistryReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationUtility.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationUtility.java
index fecfc6c..061088a 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationUtility.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/AnnotationUtility.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/ResourceBundleHelper.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/ResourceBundleHelper.java
index 533e191..98eeba4 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/ResourceBundleHelper.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/annotation/ResourceBundleHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/InferredGrammarFactory.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/InferredGrammarFactory.java
index 2ac5927..19d8131 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/InferredGrammarFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/InferredGrammarFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionDescriptor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionDescriptor.java
index 3916bf9..c6d9490 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionDescriptor.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionDescriptor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionManagerImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionManagerImpl.java
index 559cb1c..72c28fd 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionManagerImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionManagerImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2008 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
@@ -20,6 +20,7 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
 import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtension;
 import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtensionManager;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
@@ -61,30 +62,43 @@
 
   public void filterAvailableElementContent(List cmnodes, Element element, CMElementDeclaration ed)
   {
+	  filterAvailableElementContent(cmnodes, element, ed, ModelQuery.INCLUDE_CHILD_NODES);
+  }
+
+  public void filterAvailableElementContent(List cmnodes, Element element, CMElementDeclaration ed, int includeOptions)
+  {
     String contentTypeId = getContentTypeId(element);
     String parentNamespace = element.getNamespaceURI();
 
 	List modelQueryExtensions = modelQueryExtensionRegistry.getApplicableExtensions(contentTypeId, parentNamespace);
-	
-    for (Iterator j = cmnodes.iterator(); j.hasNext(); )
-    {
-      CMNode cmNode = (CMNode)j.next();  
-      String namespace = getNamespace(cmNode);
-      String name = cmNode.getNodeName();
-      
-      boolean include = true;
-      for(int k = 0; k < modelQueryExtensions.size() && include; k++) {
+	if((includeOptions & ModelQuery.INCLUDE_CHILD_NODES) > 0)
+	{
+      for (Iterator j = cmnodes.iterator(); j.hasNext(); )
       {
-          ModelQueryExtension extension = (ModelQueryExtension)modelQueryExtensions.get(k);
-          include = extension.isApplicableChildElement(element, namespace, name);
-          if (!include)
-		  {
-            // remove the cmNode from the list
-            j.remove();
+        CMNode cmNode = (CMNode)j.next();  
+        String namespace = getNamespace(cmNode);
+        String name = cmNode.getNodeName();
+      
+        boolean include = true;
+        for(int k = 0; k < modelQueryExtensions.size() && include; k++) {
+        {
+            ModelQueryExtension extension = (ModelQueryExtension)modelQueryExtensions.get(k);
+            include = extension.isApplicableChildElement(element, namespace, name);
+            if (!include)
+            {
+              // remove the cmNode from the list
+              j.remove();
+            }
           }
         }
       }
     }
+    // add MQE-provided content
+    for(int k = 0; k < modelQueryExtensions.size(); k++)
+    {
+        ModelQueryExtension extension = (ModelQueryExtension)modelQueryExtensions.get(k);
+        cmnodes.addAll(Arrays.asList(extension.getAvailableElementContent(element, parentNamespace, includeOptions)));
+    }
   }
   
   private String getNamespace(CMNode cmNode)
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionRegistry.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionRegistry.java
index 63261d3..5366f41 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionRegistry.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/modelqueryimpl/ModelQueryExtensionRegistry.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMDataTypeValueHelper.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMDataTypeValueHelper.java
index 519c125..e09fa6c 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMDataTypeValueHelper.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMDataTypeValueHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java
index 673f446..3ee535f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/CMValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -1241,4 +1241,4 @@
     }
     return v;
   }
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java
index e34df96..4a11a27 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/internal/util/DOMValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManager.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManager.java
index f380adb..6fbee2a 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManager.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -59,6 +59,14 @@
 	public static final String PROPERTY_USE_CACHED_RESOLVED_URI = "useCachedResovledURI"; //$NON-NLS-1$
 
 	/**
+	 * See https://bugs.eclipse.org/bugs/show_bug.cgi?id=136399
+	 * Allows a client to control whether the document manager attempts to resolve a
+	 * CM document's URI. When set to false, the CM systemID will be assumed to point
+	 * to an already resolved URI. By default this property is set to true.
+	 */
+	public static final String PROPERTY_PERFORM_URI_RESOLUTION = "performURIResolution"; //$NON-NLS-1$
+	
+	/**
 	 * Set the enabled state of a property.
 	 */
 	public void setPropertyEnabled(String propertyName, boolean enabled);
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManagerListener.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManagerListener.java
index 040beea..bd607dc 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManagerListener.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentManagerListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReference.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReference.java
index a4dfcb8..1d57f46 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReference.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReference.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReferenceProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReferenceProvider.java
index 8ba30eb..d7dc8bf 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReferenceProvider.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/CMDocumentReferenceProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQuery.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQuery.java
index e85e73d..5d300e8 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQuery.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQuery.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAction.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAction.java
index 15cba7d..059c4ff 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAction.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAction.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAssociationProvider.java
index 22cd17c..7777756 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAssociationProvider.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryAssociationProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryCMProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryCMProvider.java
index b4644ae..f0f9373 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryCMProvider.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/ModelQueryCMProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtension.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtension.java
index 14b5866..b417f56 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtension.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtension.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2008 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
@@ -12,14 +12,22 @@
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension;
 
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
 public abstract class ModelQueryExtension
 {  
   protected static final String[] EMPTY_STRING_ARRAY = {};
+  protected static final CMNode[] EMPTY_CMNODE_ARRAY = {};
   
-  public String[] getAttributeValues(Element ownerElement, String namespace, String name)
+  /**
+ * @param ownerElement - the owner element
+ * @param namespace - the active namespace
+ * @param name - the name of an attribute node
+ * @return valid values for the given attribute
+ */
+public String[] getAttributeValues(Element ownerElement, String namespace, String name)
   {
     return EMPTY_STRING_ARRAY;
   }
@@ -29,8 +37,25 @@
     return EMPTY_STRING_ARRAY;
   }
   
-  public boolean isApplicableChildElement(Node parentNode, String namespace, String name)
+  /**
+ * @param parentNode
+ * @param namespace
+ * @param name
+ * @return whether a child element of the given parentNode is valid given the active namespace
+ */
+public boolean isApplicableChildElement(Node parentNode, String namespace, String name)
   {
     return true;
   }
+  
+  /**
+ * @param parentElement - the parent Element when asking for children, the owner Element when asking for attributes 
+ * @param namespace - the active namespace
+ * @param includeOptions - ModelQuery.INCLUDE_ATTRIBUTES or ModelQuery.INCLUDE_CHILD_NODES
+ * @return additional valid CMAttributeDeclarations or CMElementDeclarations 
+ */
+public CMNode[] getAvailableElementContent(Element parentElement, String namespace, int includeOptions) 
+  {
+	  return EMPTY_CMNODE_ARRAY;
+  }
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtensionManager.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtensionManager.java
index 9a3a46c..31c440f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtensionManager.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelquery/extension/ModelQueryExtensionManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2008 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
@@ -25,4 +25,6 @@
   List getDataTypeValues(Element element, CMNode cmNode);                             
 
   void filterAvailableElementContent(List availableContent, Element element, CMElementDeclaration ed);
+
+  void filterAvailableElementContent(List availableContent, Element element, CMElementDeclaration ed, int includeOptions);
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/BaseAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/BaseAssociationProvider.java
index 6421d4a..54242f6 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/BaseAssociationProvider.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/BaseAssociationProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentLoader.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentLoader.java
index 0763332..6905948 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentLoader.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentManagerImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentManagerImpl.java
index fa9dc1c..c4cbfc4 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentManagerImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentManagerImpl.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2007 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
@@ -50,6 +50,7 @@
     this.cmDocumentReferenceProvider = cmDocumentReferenceProvider;
     setPropertyEnabled(PROPERTY_AUTO_LOAD, true);
     setPropertyEnabled(PROPERTY_USE_CACHED_RESOLVED_URI, false);
+    setPropertyEnabled(PROPERTY_PERFORM_URI_RESOLUTION, true);
   }         
 
        
@@ -157,7 +158,16 @@
 
     if (getPropertyEnabled(PROPERTY_AUTO_LOAD))
     {
-      resolvedURI = lookupOrCreateResolvedURI(publicId, systemId);
+      // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=136399
+      
+      if (getPropertyEnabled(PROPERTY_PERFORM_URI_RESOLUTION))
+      {
+        resolvedURI = lookupOrCreateResolvedURI(publicId, systemId);
+      }
+      else
+      {
+        resolvedURI = systemId;
+      }
     }    
     else
     {
@@ -251,8 +261,6 @@
     cmDocumentCache.setStatus(resolvedURI, CMDocumentCache.STATUS_LOADING);
   
     CMDocument result = null;         
-    int x = 1;
-    x++;
     if (resolvedURI != null && resolvedURI.length() > 0)
     {
       // TODO... pass the TYPE thru to the CMDocumentBuilder
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentReferenceImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentReferenceImpl.java
index 462b8a9..f4edabd 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentReferenceImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/CMDocumentReferenceImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/InferredGrammarBuildingCMDocumentLoader.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/InferredGrammarBuildingCMDocumentLoader.java
index d0a4632..c91e72c 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/InferredGrammarBuildingCMDocumentLoader.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/InferredGrammarBuildingCMDocumentLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryActionHelper.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryActionHelper.java
index 14914df..b66a0d6 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryActionHelper.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryActionHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryImpl.java
index 50a032a..436d8ff 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/ModelQueryImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2008 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
@@ -309,7 +309,7 @@
     List list = visitor.computeAvailableContent(includeOptions);
     if (extensionManager != null)
     {                    
-      extensionManager.filterAvailableElementContent(list, element, ed);
+      extensionManager.filterAvailableElementContent(list, element, ed, includeOptions);
     }  
     return list;
   }  
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/SimpleAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/SimpleAssociationProvider.java
index 05e2a7d..de5242f 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/SimpleAssociationProvider.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/SimpleAssociationProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/XMLAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/XMLAssociationProvider.java
index 26782dc..9e20be6 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/XMLAssociationProvider.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/modelqueryimpl/XMLAssociationProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDescriptionBuilder.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDescriptionBuilder.java
index a084525..f1cc690 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDescriptionBuilder.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDescriptionBuilder.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2008 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
@@ -12,6 +12,8 @@
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.contentmodel.util;
 
+import java.util.Stack;
+
 import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
@@ -27,6 +29,7 @@
   protected StringBuffer sb;
   protected CMNode root;
   protected boolean isRootVisited;
+  protected Stack visitedCMGroupStack = new Stack();
 
   public String buildDescription(CMNode node)
   {
@@ -59,6 +62,11 @@
 
   public void visitCMGroup(CMGroup group)
   {
+    // This is to prevent recursion.
+    if (visitedCMGroupStack.contains(group))
+    {
+      return;
+    }
     int op = group.getOperator();
     if (op == CMGroup.ALL)
     {
@@ -73,7 +81,10 @@
     {
       separator = " | "; //$NON-NLS-1$
     }
-
+    
+    // Push the current group to check later to avoid potential recursion
+    visitedCMGroupStack.push(group);
+   
     CMNodeList nodeList = group.getChildNodes();
     int size = nodeList.getLength();
     for (int i = 0; i < size; i++)
@@ -84,6 +95,10 @@
         sb.append(separator);
       }
     }
+    
+    // Pop the current group
+    visitedCMGroupStack.pop();
+    
     sb.append(")"); //$NON-NLS-1$
     addOccurenceSymbol(group);
   }
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java
index 9c2a99e..670ff53 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCache.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2007 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
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCacheListener.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCacheListener.java
index 055f4dd..d9f6dcd 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCacheListener.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMDocumentCacheListener.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMVisitor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMVisitor.java
index f5a14c2..fc4f35d 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMVisitor.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/CMVisitor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/ContentBuilder.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/ContentBuilder.java
index 035cd00..14d02b1 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/ContentBuilder.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/ContentBuilder.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilder.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilder.java
index c0762ef..9d23576 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilder.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilder.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilderImpl.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilderImpl.java
index 475cf4e..532a484 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilderImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMContentBuilderImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -38,655 +38,565 @@
 import org.w3c.dom.ProcessingInstruction;
 import org.w3c.dom.Text;
 
-                   
+
 /**
  * todo... common up this code with 'ContentBuilder'
  */
-public class DOMContentBuilderImpl extends CMVisitor implements DOMContentBuilder
-{
-  protected int buildPolicy = BUILD_ALL_CONTENT;
-  protected Hashtable propertyTable = new Hashtable();
+public class DOMContentBuilderImpl extends CMVisitor implements DOMContentBuilder {
+	protected int buildPolicy = BUILD_ALL_CONTENT;
+	protected Hashtable propertyTable = new Hashtable();
 
-  protected boolean alwaysVisit = false;
-  protected List resultList;
-  protected Document document;
-  protected Node currentParent;  
-  protected Node topParent;
-  protected Vector visitedCMElementDeclarationList = new Vector();
-  protected boolean attachNodesToParent = true;
-  protected NamespaceTable namespaceTable;
-          
-  protected List namespaceInfoList;
-  protected Element rootElement; // this is used only teporarily via createDefaultRootContent
-  protected ExternalCMDocumentSupport externalCMDocumentSupport;
+	protected boolean alwaysVisit = false;
+	protected List resultList;
+	protected Document document;
+	protected Node currentParent;
+	protected Node topParent;
+	protected Vector visitedCMElementDeclarationList = new Vector();
+	protected boolean attachNodesToParent = true;
+	protected NamespaceTable namespaceTable;
 
-  public boolean supressCreationOfDoctypeAndXMLDeclaration;
+	protected List namespaceInfoList;
+	protected Element rootElement; // this is used only teporarily via
+									// createDefaultRootContent
+	protected ExternalCMDocumentSupport externalCMDocumentSupport;
 
-  protected CMDataTypeValueHelper valueHelper = new CMDataTypeValueHelper();
-  
-  protected int numOfRepeatableElements = 1;
-  protected Stack cmGroupStack = new Stack();
+	public boolean supressCreationOfDoctypeAndXMLDeclaration;
 
-  public interface ExternalCMDocumentSupport
-  {
-    public CMDocument getCMDocument(Element element, String uri);
-  }
+	protected CMDataTypeValueHelper valueHelper = new CMDataTypeValueHelper();
 
-  public void setExternalCMDocumentSupport(ExternalCMDocumentSupport externalCMDocumentSupport)
-  {
-    this.externalCMDocumentSupport = externalCMDocumentSupport;
-  }
+	protected int numOfRepeatableElements = 1;
+	protected Stack cmGroupStack = new Stack();
 
-  public DOMContentBuilderImpl(Document document)
-  {
-    this.document = document;
-    namespaceTable = new NamespaceTable(document);
-  }
-         
-  public void setBuildPolicy(int buildPolicy)
-  {
-    this.buildPolicy = buildPolicy;
-  }
+	public interface ExternalCMDocumentSupport {
+		public CMDocument getCMDocument(Element element, String uri);
+	}
 
-  public int getBuildPolicy()
-  {
-    return buildPolicy;
-  }
+	public void setExternalCMDocumentSupport(ExternalCMDocumentSupport externalCMDocumentSupport) {
+		this.externalCMDocumentSupport = externalCMDocumentSupport;
+	}
 
-  protected boolean buildAllContent(int policy)
-  {
-    return (policy & BUILD_ALL_CONTENT) == BUILD_ALL_CONTENT;
-  }
-    
-  protected boolean buildOptionalElements(int policy)
-  {
-    return (policy & BUILD_OPTIONAL_ELEMENTS) == BUILD_OPTIONAL_ELEMENTS;
-  }
-  
-  protected boolean buildOptionalAttributes(int policy)
-  {
-    return (policy & BUILD_OPTIONAL_ATTRIBUTES) == BUILD_OPTIONAL_ATTRIBUTES;
-  }
+	public DOMContentBuilderImpl(Document document) {
+		this.document = document;
+		namespaceTable = new NamespaceTable(document);
+	}
 
-  protected boolean buildFirstChoice(int policy)
-  {
-    return (policy & BUILD_FIRST_CHOICE) == BUILD_FIRST_CHOICE;
-  }
-  
-  protected boolean buildTextNodes(int policy)
-  {
-    return (policy & BUILD_TEXT_NODES) == BUILD_TEXT_NODES;
-  }
-  
-  protected boolean buildFirstSubstitution(int policy)
-  {
-    return (policy & BUILD_FIRST_SUBSTITUTION) == BUILD_FIRST_SUBSTITUTION;
-  }
-      
-  public List getResult()
-  {
-    return resultList;
-  }
+	public void setBuildPolicy(int buildPolicy) {
+		this.buildPolicy = buildPolicy;
+	}
 
-  public void setProperty(String propertyName, Object value)
-  {                         
-    propertyTable.put(propertyName, value);
-  }
+	public int getBuildPolicy() {
+		return buildPolicy;
+	}
 
-  public Object getProperty(String propertyName)
-  {
-    return propertyTable.get(propertyName);
-  }
+	protected boolean buildAllContent(int policy) {
+		return (policy & BUILD_ALL_CONTENT) == BUILD_ALL_CONTENT;
+	}
 
-  public void build(Node parent, CMNode child)
-  {      
-    resultList = new Vector();
-    topParent = parent;
-    currentParent = parent;          
-    if (parent instanceof Element)
-    {
-      namespaceTable.addElementLineage((Element)parent);
-    }
-    attachNodesToParent = false;
-    alwaysVisit = true;
-    visitCMNode(child);
-  }
+	protected boolean buildOptionalElements(int policy) {
+		return (policy & BUILD_OPTIONAL_ELEMENTS) == BUILD_OPTIONAL_ELEMENTS;
+	}
 
-  public void createDefaultRootContent(CMDocument cmDocument, CMElementDeclaration rootCMElementDeclaration, List namespaceInfoList) throws Exception
-  {                    
-    this.namespaceInfoList = namespaceInfoList;
-    createDefaultRootContent(cmDocument, rootCMElementDeclaration);
-  }
+	protected boolean buildOptionalAttributes(int policy) {
+		return (policy & BUILD_OPTIONAL_ATTRIBUTES) == BUILD_OPTIONAL_ATTRIBUTES;
+	}
 
-  public void createDefaultRootContent(CMDocument cmDocument, CMElementDeclaration rootCMElementDeclaration) throws Exception
-  {
-    String grammarFileName = cmDocument.getNodeName();
-    if (!supressCreationOfDoctypeAndXMLDeclaration)
-    {                                 
-      // TODO cs... investigate to see if this code path is ever used, doesn't seem to be
-      // for now I'm setting the encoding to UTF-8 just incase this code path is used somewhere
-      //
-      String piValue = "version=\"1.0\""; //$NON-NLS-1$
-      String encoding = "UTF-8"; //$NON-NLS-1$
-      piValue += " encoding=\"" + encoding + "\""; //$NON-NLS-1$ //$NON-NLS-2$      
-      ProcessingInstruction pi = document.createProcessingInstruction("xml", piValue); //$NON-NLS-1$
-      document.appendChild(pi);
+	protected boolean buildFirstChoice(int policy) {
+		return (policy & BUILD_FIRST_CHOICE) == BUILD_FIRST_CHOICE;
+	}
 
-      // if we have a 'dtd' then add a DOCTYPE tag
-      //
-      if (grammarFileName != null && grammarFileName.endsWith("dtd")) //$NON-NLS-1$
-      {
-        DOMImplementation domImpl = document.getImplementation();
-        DocumentType documentType = domImpl.createDocumentType(rootCMElementDeclaration.getElementName(), grammarFileName, grammarFileName);
-        document.appendChild(documentType);
-      }
-    }                       
-    
-    // if we have a schema add an xsi:schemaLocation attribute
-    //
-    if (grammarFileName != null && grammarFileName.endsWith("xsd") && namespaceInfoList != null) //$NON-NLS-1$
-    {              
-      DOMNamespaceInfoManager manager = new DOMNamespaceInfoManager();    
-      String name = rootCMElementDeclaration.getNodeName();
-      if (namespaceInfoList.size() > 0)
-      {
-        NamespaceInfo info = (NamespaceInfo)namespaceInfoList.get(0);
-        if (info.prefix != null && info.prefix.length() > 0)
-        {
-          name = info.prefix + ":" + name; //$NON-NLS-1$
-        }
-      }
-      rootElement = createElement(rootCMElementDeclaration, name, document);
-      manager.addNamespaceInfo(rootElement, namespaceInfoList, true);   
-    }
-    createDefaultContent(document, rootCMElementDeclaration);    
-  }
+	protected boolean buildTextNodes(int policy) {
+		return (policy & BUILD_TEXT_NODES) == BUILD_TEXT_NODES;
+	}
 
-  public void createDefaultContent(Node parent, CMElementDeclaration ed)
-  {
-    currentParent = parent;
-    alwaysVisit = true;           
-    visitCMElementDeclaration(ed);
-  }   
+	protected boolean buildFirstSubstitution(int policy) {
+		return (policy & BUILD_FIRST_SUBSTITUTION) == BUILD_FIRST_SUBSTITUTION;
+	}
 
-  public String computeName(CMNode cmNode, Node parent)
-  {                   
-    String prefix = null;           
-    return DOMNamespaceHelper.computeName(cmNode, parent, prefix, namespaceTable);
-  }     
+	public List getResult() {
+		return resultList;
+	}
 
-  // overide the following 'create' methods to control how nodes are created
-  //
-  protected Element createElement(CMElementDeclaration ed, String name, Node parent)
-  {
-    return  document.createElement(name);
-  }
+	public void setProperty(String propertyName, Object value) {
+		propertyTable.put(propertyName, value);
+	}
 
-  protected Attr createAttribute(CMAttributeDeclaration ad, String name, Node parent)
-  {
-    return  document.createAttribute(name);
-  }
+	public Object getProperty(String propertyName) {
+		return propertyTable.get(propertyName);
+	}
 
-  protected Text createTextNode(CMDataType dataType, String value, Node parent)
-  {
-    return document.createTextNode(value);
-  }        
-                 
-  protected void handlePushParent(Element parent, CMElementDeclaration ed)
-  {
-  }   
+	public void build(Node parent, CMNode child) {
+		resultList = new Vector();
+		topParent = parent;
+		currentParent = parent;
+		if (parent instanceof Element) {
+			namespaceTable.addElementLineage((Element) parent);
+		}
+		attachNodesToParent = false;
+		alwaysVisit = true;
+		visitCMNode(child);
+	}
 
-  protected void handlePopParent(Element element, CMElementDeclaration ed)
-  {
-  }
-  
-  // The range must be between 1 and 99.
-  public void setNumOfRepeatableElements(int i)
-  {
-  	numOfRepeatableElements = i;
-  }
-     
-  protected int getNumOfRepeatableElements()
-  {
-  	return numOfRepeatableElements;
-  }
-        
-  public void visitCMElementDeclaration(CMElementDeclaration ed)
-  {
-    int forcedMin = (buildOptionalElements(buildPolicy) || alwaysVisit) ? 1 : 0;
-    int min = Math.max(ed.getMinOccur(), forcedMin);
-    
-    // Correct the min value if the element is contained in
-    // a group.
-    if (!cmGroupStack.isEmpty())
-    {
-      CMGroup group = (CMGroup)cmGroupStack.peek();
-      int gmin = group.getMinOccur();
-      if (gmin == 0)
-        if (buildOptionalElements(buildPolicy))
-          ; // min = min
-        else
-          min = min * gmin; // min = 0
-      else
-          min = min * gmin;
-    }
-    
-    int max = Math.min(ed.getMaxOccur(), getNumOfRepeatableElements());
-    if (max < min)
-      max = min;
-    	                          
-    alwaysVisit = false;
+	public void createDefaultRootContent(CMDocument cmDocument, CMElementDeclaration rootCMElementDeclaration, List namespaceInfoList) throws Exception {
+		this.namespaceInfoList = namespaceInfoList;
+		createDefaultRootContent(cmDocument, rootCMElementDeclaration);
+	}
 
-    // Note - ed may not be abstract but has substitutionGroups
-    // involved.
-    if (buildFirstSubstitution(buildPolicy) 
-        || isAbstract(ed)) // leave this for backward compatibility for now
-    {
-      // Note - To change so that if ed is optional, we do not 
-      // generate anything here.  
-      ed = getSubstitution(ed);
-      
-      // Note - the returned ed may be an abstract element in
-      // which case the xml will be invalid.
-    }
+	public void createDefaultRootContent(CMDocument cmDocument, CMElementDeclaration rootCMElementDeclaration) throws Exception {
+		String grammarFileName = cmDocument.getNodeName();
+		if (!supressCreationOfDoctypeAndXMLDeclaration) {
+			// TODO cs... investigate to see if this code path is ever used,
+			// doesn't seem to be
+			// for now I'm setting the encoding to UTF-8 just incase this code
+			// path is used somewhere
+			//
+			String piValue = "version=\"1.0\""; //$NON-NLS-1$
+			String encoding = "UTF-8"; //$NON-NLS-1$
+			piValue += " encoding=\"" + encoding + "\""; //$NON-NLS-1$ //$NON-NLS-2$      
+			ProcessingInstruction pi = document.createProcessingInstruction("xml", piValue); //$NON-NLS-1$
+			document.appendChild(pi);
 
-    if (min > 0 && !visitedCMElementDeclarationList.contains(ed))
-    {
-      visitedCMElementDeclarationList.add(ed);
-      for (int i = 1; i <= max; i++)
-      {
-        // create an Element for each
-        Element element = null;
-        if (rootElement != null)                                                 
-        {
-          element = rootElement;
-          rootElement = null;
-        }                       
-        else
-        {
-          element = createElement(ed, computeName(ed, currentParent), currentParent);
-        }
+			// if we have a 'dtd' then add a DOCTYPE tag
+			//
+			if (grammarFileName != null && grammarFileName.endsWith("dtd")) //$NON-NLS-1$
+			{
+				DOMImplementation domImpl = document.getImplementation();
+				DocumentType documentType = domImpl.createDocumentType(rootCMElementDeclaration.getElementName(), grammarFileName, grammarFileName);
+				document.appendChild(documentType);
+			}
+		}
 
-        // visit the children of the GrammarElement
-        Node oldParent = currentParent;
-        currentParent = element;
-        handlePushParent(element, ed);
+		// if we have a schema add an xsi:schemaLocation attribute
+		//
+		if (grammarFileName != null && grammarFileName.endsWith("xsd") && namespaceInfoList != null) //$NON-NLS-1$
+		{
+			DOMNamespaceInfoManager manager = new DOMNamespaceInfoManager();
+			String name = rootCMElementDeclaration.getNodeName();
+			if (namespaceInfoList.size() > 0) {
+				NamespaceInfo info = (NamespaceInfo) namespaceInfoList.get(0);
+				if (info.prefix != null && info.prefix.length() > 0) {
+					name = info.prefix + ":" + name; //$NON-NLS-1$
+				}
+			}
+			rootElement = createElement(rootCMElementDeclaration, name, document);
+			manager.addNamespaceInfo(rootElement, namespaceInfoList, true);
+		}
+		createDefaultContent(document, rootCMElementDeclaration);
+	}
 
-        namespaceTable.addElement(element);
-    
-        boolean oldAttachNodesToParent = attachNodesToParent;
-        attachNodesToParent = true;
+	public void createDefaultContent(Node parent, CMElementDeclaration ed) {
+		currentParent = parent;
+		alwaysVisit = true;
+		visitCMElementDeclaration(ed);
+	}
 
-        // instead of calling super.visitCMElementDeclaration()
-        // we duplicate the code with some minor modifications
-        CMNamedNodeMap nodeMap = ed.getAttributes();
-        int size = nodeMap.getLength();
-        for (int j = 0; j < size; j++)
-        {
-          visitCMNode(nodeMap.item(j));
-        }
+	public String computeName(CMNode cmNode, Node parent) {
+		String prefix = null;
+		return DOMNamespaceHelper.computeName(cmNode, parent, prefix, namespaceTable);
+	}
 
-        CMContent content = ed.getContent();
-        if (content != null)
-        {
-          visitCMNode(content);
-        }
+	// overide the following 'create' methods to control how nodes are created
+	//
+	protected Element createElement(CMElementDeclaration ed, String name, Node parent) {
+		return document.createElement(name);
+	}
 
-        if (ed.getContentType() == CMElementDeclaration.PCDATA)
-        {
-          CMDataType dataType = ed.getDataType();
-          if (dataType != null)
-          {
-            visitCMDataType(dataType);
-          }
-        }
-        // end duplication
-        attachNodesToParent = oldAttachNodesToParent;
-        handlePopParent(element, ed);
-        currentParent = oldParent;    
-        linkNode(element);
-      }
-      int size = visitedCMElementDeclarationList.size();
-      visitedCMElementDeclarationList.remove(size - 1);
-    }
-  }
+	protected Attr createAttribute(CMAttributeDeclaration ad, String name, Node parent) {
+		return document.createAttribute(name);
+	}
+
+	protected Text createTextNode(CMDataType dataType, String value, Node parent) {
+		return document.createTextNode(value);
+	}
+
+	protected void handlePushParent(Element parent, CMElementDeclaration ed) {
+	}
+
+	protected void handlePopParent(Element element, CMElementDeclaration ed) {
+	}
+
+	// The range must be between 1 and 99.
+	public void setNumOfRepeatableElements(int i) {
+		numOfRepeatableElements = i;
+	}
+
+	protected int getNumOfRepeatableElements() {
+		return numOfRepeatableElements;
+	}
+
+	public void visitCMElementDeclaration(CMElementDeclaration ed) {
+		int forcedMin = (buildOptionalElements(buildPolicy) || alwaysVisit) ? 1 : 0;
+		int min = Math.max(ed.getMinOccur(), forcedMin);
+
+		// Correct the min value if the element is contained in
+		// a group.
+		if (!cmGroupStack.isEmpty()) {
+			CMGroup group = (CMGroup) cmGroupStack.peek();
+			int gmin = group.getMinOccur();
+			if (gmin == 0)
+				if (buildOptionalElements(buildPolicy)) { 
+					/* do nothing: min = min */
+				}
+				else {
+					min = min * gmin; // min = 0
+				}
+			else {
+				min = min * gmin;
+			}
+		}
+
+		int max = Math.min(ed.getMaxOccur(), getNumOfRepeatableElements());
+		if (max < min)
+			max = min;
+
+		alwaysVisit = false;
+
+		// Note - ed may not be abstract but has substitutionGroups
+		// involved.
+		if (buildFirstSubstitution(buildPolicy) || isAbstract(ed)) // leave
+																	// this
+																	// for
+																	// backward
+																	// compatibility
+																	// for now
+		{
+			// Note - To change so that if ed is optional, we do not
+			// generate anything here.
+			ed = getSubstitution(ed);
+
+			// Note - the returned ed may be an abstract element in
+			// which case the xml will be invalid.
+		}
+
+		if (min > 0 && !visitedCMElementDeclarationList.contains(ed)) {
+			visitedCMElementDeclarationList.add(ed);
+			for (int i = 1; i <= max; i++) {
+				// create an Element for each
+				Element element = null;
+				if (rootElement != null) {
+					element = rootElement;
+					rootElement = null;
+				}
+				else {
+					element = createElement(ed, computeName(ed, currentParent), currentParent);
+				}
+
+				// visit the children of the GrammarElement
+				Node oldParent = currentParent;
+				currentParent = element;
+				handlePushParent(element, ed);
+
+				namespaceTable.addElement(element);
+
+				boolean oldAttachNodesToParent = attachNodesToParent;
+				attachNodesToParent = true;
+
+				// instead of calling super.visitCMElementDeclaration()
+				// we duplicate the code with some minor modifications
+				CMNamedNodeMap nodeMap = ed.getAttributes();
+				int size = nodeMap.getLength();
+				for (int j = 0; j < size; j++) {
+					visitCMNode(nodeMap.item(j));
+				}
+
+				CMContent content = ed.getContent();
+				if (content != null) {
+					visitCMNode(content);
+				}
+
+				if (ed.getContentType() == CMElementDeclaration.PCDATA) {
+					CMDataType dataType = ed.getDataType();
+					if (dataType != null) {
+						visitCMDataType(dataType);
+					}
+				}
+				// end duplication
+				attachNodesToParent = oldAttachNodesToParent;
+				handlePopParent(element, ed);
+				currentParent = oldParent;
+				linkNode(element);
+			}
+			int size = visitedCMElementDeclarationList.size();
+			visitedCMElementDeclarationList.remove(size - 1);
+		}
+	}
 
 
-  public void visitCMDataType(CMDataType dataType)
-  {
-    Text text = null;
-    String value = null;
+	public void visitCMDataType(CMDataType dataType) {
+		Text text = null;
+		String value = null;
 
-    // For backward compatibility:
-    //   Previous code uses a property value but new one uses
-    //   buildPolicy.   
-    if (getProperty(PROPERTY_BUILD_BLANK_TEXT_NODES) != null
-        && getProperty(PROPERTY_BUILD_BLANK_TEXT_NODES).equals("true")) //$NON-NLS-1$
-      buildPolicy = buildPolicy ^ BUILD_TEXT_NODES;
-          
-    if (buildTextNodes(buildPolicy))
-    {
-      value = valueHelper.getValue(dataType);
-      if (value == null)
-      {
-        if (currentParent != null && currentParent.getNodeType() == Node.ELEMENT_NODE)
-        {
-          value = currentParent.getNodeName();
-        }
-        else
-        {
-          value = "pcdata"; //$NON-NLS-1$
-        }
-      }
-    }  
-    else
-    {
-      value = ""; //$NON-NLS-1$
-    }
-    text = createTextNode(dataType, value, currentParent);
-    linkNode(text);
-  }
+		// For backward compatibility:
+		// Previous code uses a property value but new one uses
+		// buildPolicy.
+		if (getProperty(PROPERTY_BUILD_BLANK_TEXT_NODES) != null && getProperty(PROPERTY_BUILD_BLANK_TEXT_NODES).equals("true")) //$NON-NLS-1$
+			buildPolicy = buildPolicy ^ BUILD_TEXT_NODES;
+
+		if (buildTextNodes(buildPolicy)) {
+			value = valueHelper.getValue(dataType);
+			if (value == null) {
+				if (currentParent != null && currentParent.getNodeType() == Node.ELEMENT_NODE) {
+					value = currentParent.getNodeName();
+				}
+				else {
+					value = "pcdata"; //$NON-NLS-1$
+				}
+			}
+		}
+		else {
+			value = ""; //$NON-NLS-1$
+		}
+		text = createTextNode(dataType, value, currentParent);
+		linkNode(text);
+	}
 
 
-  public void visitCMGroup(CMGroup e)
-  {
-  	cmGroupStack.push(e);
-  	 
-    int forcedMin = (buildOptionalElements(buildPolicy) || alwaysVisit) ? 1 : 0;
-    int min = Math.max(e.getMinOccur(), forcedMin);
+	public void visitCMGroup(CMGroup e) {
+		cmGroupStack.push(e);
 
-    int max = 0;
-    if (e.getMaxOccur() == -1) // unbounded
-      max = getNumOfRepeatableElements();
-    else 
-      max = Math.min(e.getMaxOccur(), getNumOfRepeatableElements());
-    
-    if (max < min)
-      max = min;
-                                
-    alwaysVisit = false;
+		int forcedMin = (buildOptionalElements(buildPolicy) || alwaysVisit) ? 1 : 0;
+		int min = Math.max(e.getMinOccur(), forcedMin);
 
-    for (int i = 1; i <= max; i++)
-    {   
-      if (e.getOperator() == CMGroup.CHOICE
-          && buildFirstChoice(buildPolicy))
-      {
-        CMNode hintNode = null; 
+		int max = 0;
+		if (e.getMaxOccur() == -1) // unbounded
+			max = getNumOfRepeatableElements();
+		else
+			max = Math.min(e.getMaxOccur(), getNumOfRepeatableElements());
 
-        // todo... the CMGroup should specify the hint... but it seems as though
-        // the Yamato guys are making the CMElement specify the hint.
-        // I do it that way for now until... we should fix this post GA
-        //    
-        int listSize = visitedCMElementDeclarationList.size();                                                              
-        if (listSize > 0)
-        {                                                                                                                                          
-          CMElementDeclaration ed = (CMElementDeclaration)visitedCMElementDeclarationList.get(listSize - 1);
-          Object contentHint = ed.getProperty("contentHint"); //$NON-NLS-1$
-          if (contentHint instanceof CMNode)
-          {        
-            hintNode = (CMNode)contentHint;
-          }
-        }
-   
-        // see if this hint corresponds to a valid choice
-        //
-        CMNode cmNode = null;
+		if (max < min)
+			max = min;
 
-        if (hintNode != null)
-        {
-          CMNodeList nodeList = e.getChildNodes();
-          int nodeListLength = nodeList.getLength();
-          for (int j = 0; j < nodeListLength; j++)
-          {
-            if (hintNode == nodeList.item(j))
-            { 
-              cmNode = hintNode;
-            }
-          }
-        }
-        
-        // if no cmNode has been determined from the hint, just use the first choice
-        //
-        if (cmNode == null)
-        {
-          CMNodeList nodeList = e.getChildNodes();
-          if (nodeList.getLength() > 0)
-          {
-            cmNode = nodeList.item(0);
-          }
-        }
+		alwaysVisit = false;
 
-        if (cmNode != null)
-        {
-          visitCMNode(cmNode);
-        }
-      }
-      else if (e.getOperator() == CMGroup.ALL          // ALL
-                || e.getOperator() == CMGroup.SEQUENCE) // SEQUENCE 
-      {
-        // visit all of the content
-        super.visitCMGroup(e);
-      }
-    }
-    
-    cmGroupStack.pop();
-  }
+		for (int i = 1; i <= max; i++) {
+			if (e.getOperator() == CMGroup.CHOICE && buildFirstChoice(buildPolicy)) {
+				CMNode hintNode = null;
 
-  static int count = 0;
+				// todo... the CMGroup should specify the hint... but it seems
+				// as though
+				// the Yamato guys are making the CMElement specify the hint.
+				// I do it that way for now until... we should fix this post
+				// GA
+				//    
+				int listSize = visitedCMElementDeclarationList.size();
+				if (listSize > 0) {
+					CMElementDeclaration ed = (CMElementDeclaration) visitedCMElementDeclarationList.get(listSize - 1);
+					Object contentHint = ed.getProperty("contentHint"); //$NON-NLS-1$
+					if (contentHint instanceof CMNode) {
+						hintNode = (CMNode) contentHint;
+					}
+				}
 
-  public void visitCMAttributeDeclaration(CMAttributeDeclaration ad)
-  {                                            
-    if (alwaysVisit ||
-        buildOptionalAttributes(buildPolicy) ||
-        ad.getUsage() == CMAttributeDeclaration.REQUIRED)
-    {                                                              
-      alwaysVisit = false;                    
-      String name = computeName(ad, currentParent);         
-      String value = valueHelper.getValue(ad, namespaceTable);
-      Attr attr = createAttribute(ad, name, currentParent);      
-      attr.setValue(value != null ? value : ""); //$NON-NLS-1$
-      linkNode(attr);
-    }
-  }                     
-                
-  protected boolean isAbstract(CMNode ed)
-  {
-    boolean result = false;
-    if (ed != null)
-    {
-      Object value = ed.getProperty("Abstract"); //$NON-NLS-1$
-      result = (value ==  Boolean.TRUE);
-    }
-    return result;
-  }
+				// see if this hint corresponds to a valid choice
+				//
+				CMNode cmNode = null;
 
-  protected CMElementDeclaration getSubstitution(CMElementDeclaration ed)
-  {
-    CMElementDeclaration result = ed;
-    CMNodeList l = (CMNodeList)ed.getProperty("SubstitutionGroup"); //$NON-NLS-1$
-    if (l != null)
-    {
-      for (int i=0; i < l.getLength(); i++)
-      {
-        CMNode candidate = l.item(i);
-        if (!isAbstract(candidate) && (candidate instanceof CMElementDeclaration))
-        {
-          result = (CMElementDeclaration)candidate;
-          break;
-        }
-      }
-    }
-    return result;
-  }
+				if (hintNode != null) {
+					CMNodeList nodeList = e.getChildNodes();
+					int nodeListLength = nodeList.getLength();
+					for (int j = 0; j < nodeListLength; j++) {
+						if (hintNode == nodeList.item(j)) {
+							cmNode = hintNode;
+						}
+					}
+				}
 
-  protected CMElementDeclaration getParentCMElementDeclaration()
-  {   
-    CMElementDeclaration ed = null;
-    int listSize = visitedCMElementDeclarationList.size();                                                              
-    if (listSize > 0)
-    {                                                                                                                                          
-      ed = (CMElementDeclaration)visitedCMElementDeclarationList.get(listSize - 1);    
-    } 
-    return ed;
-  }
+				// if no cmNode has been determined from the hint, just use
+				// the first choice
+				//
+				if (cmNode == null) {
+					CMNodeList nodeList = e.getChildNodes();
+					if (nodeList.getLength() > 0) {
+						cmNode = nodeList.item(0);
+					}
+				}
 
-  public void visitCMAnyElement(CMAnyElement anyElement)
-  {                            
-    // ingnore buildPolicy for ANY elements... only create elements if absolutely needed
-    //
-    int forcedMin = alwaysVisit ? 1 : 0;
-    int min = Math.max(anyElement.getMinOccur(), forcedMin);                          
-    alwaysVisit = false;
-      
-    String uri = anyElement.getNamespaceURI();  
-    String targetNSProperty = "http://org.eclipse.wst/cm/properties/targetNamespaceURI"; //$NON-NLS-1$
-    CMDocument parentCMDocument = (CMDocument)anyElement.getProperty("CMDocument"); //$NON-NLS-1$
-    CMElementDeclaration ed = null;                          
+				if (cmNode != null) {
+					visitCMNode(cmNode);
+				}
+			}
+			else if (e.getOperator() == CMGroup.ALL // ALL
+						|| e.getOperator() == CMGroup.SEQUENCE) // SEQUENCE
+			{
+				// visit all of the content
+				super.visitCMGroup(e);
+			}
+		}
 
-    //System.out.println("parentCMDocument = " + parentCMDocument); //$NON-NLS-1$
-    if (parentCMDocument != null)
-    {          
-      if (uri == null || uri.startsWith("##") || uri.equals(parentCMDocument.getProperty(targetNSProperty))) //$NON-NLS-1$
-      {                               
-        ed = getSuitableElement(getParentCMElementDeclaration(), parentCMDocument);
-      }
-    }          
+		cmGroupStack.pop();
+	}
+
+	static int count = 0;
+
+	public void visitCMAttributeDeclaration(CMAttributeDeclaration ad) {
+		if (alwaysVisit || buildOptionalAttributes(buildPolicy) || ad.getUsage() == CMAttributeDeclaration.REQUIRED) {
+			alwaysVisit = false;
+			String name = computeName(ad, currentParent);
+			String value = valueHelper.getValue(ad, namespaceTable);
+			Attr attr = createAttribute(ad, name, currentParent);
+			attr.setValue(value != null ? value : ""); //$NON-NLS-1$
+			linkNode(attr);
+		}
+	}
+
+	protected boolean isAbstract(CMNode ed) {
+		boolean result = false;
+		if (ed != null) {
+			Object value = ed.getProperty("Abstract"); //$NON-NLS-1$
+			result = (value == Boolean.TRUE);
+		}
+		return result;
+	}
+
+	protected CMElementDeclaration getSubstitution(CMElementDeclaration ed) {
+		CMElementDeclaration result = ed;
+		CMNodeList l = (CMNodeList) ed.getProperty("SubstitutionGroup"); //$NON-NLS-1$
+		if (l != null) {
+			for (int i = 0; i < l.getLength(); i++) {
+				CMNode candidate = l.item(i);
+				if (!isAbstract(candidate) && (candidate instanceof CMElementDeclaration)) {
+					result = (CMElementDeclaration) candidate;
+					break;
+				}
+			}
+		}
+		return result;
+	}
+
+	protected CMElementDeclaration getParentCMElementDeclaration() {
+		CMElementDeclaration ed = null;
+		int listSize = visitedCMElementDeclarationList.size();
+		if (listSize > 0) {
+			ed = (CMElementDeclaration) visitedCMElementDeclarationList.get(listSize - 1);
+		}
+		return ed;
+	}
+
+	public void visitCMAnyElement(CMAnyElement anyElement) {
+		// ingnore buildPolicy for ANY elements... only create elements if
+		// absolutely needed
+		//
+		int forcedMin = alwaysVisit ? 1 : 0;
+		int min = Math.max(anyElement.getMinOccur(), forcedMin);
+		alwaysVisit = false;
+
+		String uri = anyElement.getNamespaceURI();
+		String targetNSProperty = "http://org.eclipse.wst/cm/properties/targetNamespaceURI"; //$NON-NLS-1$
+		CMDocument parentCMDocument = (CMDocument) anyElement.getProperty("CMDocument"); //$NON-NLS-1$
+		CMElementDeclaration ed = null;
+
+		// System.out.println("parentCMDocument = " + parentCMDocument);
+		// //$NON-NLS-1$
+		if (parentCMDocument != null) {
+			if (uri == null || uri.startsWith("##") || uri.equals(parentCMDocument.getProperty(targetNSProperty))) //$NON-NLS-1$
+			{
+				ed = getSuitableElement(getParentCMElementDeclaration(), parentCMDocument);
+			}
+		}
 
 
-    if (ed == null && externalCMDocumentSupport != null && uri != null && !uri.startsWith("##") && currentParent instanceof Element) //$NON-NLS-1$
-    {
-      CMDocument externalCMDocument = externalCMDocumentSupport.getCMDocument((Element)currentParent, uri);
-      if (externalCMDocument != null)
-      { 
-        ed = getSuitableElement(null, externalCMDocument);
-      }
-    }
+		if (ed == null && externalCMDocumentSupport != null && uri != null && !uri.startsWith("##") && currentParent instanceof Element) //$NON-NLS-1$
+		{
+			CMDocument externalCMDocument = externalCMDocumentSupport.getCMDocument((Element) currentParent, uri);
+			if (externalCMDocument != null) {
+				ed = getSuitableElement(null, externalCMDocument);
+			}
+		}
 
-    for (int i = 1; i <= min; i++)
-    {         
-      if (ed != null)
-      {                        
-        visitCMElementDeclaration(ed); 
-      }  
-      else
-      {                       
-        Element element = document.createElement("ANY-ELEMENT");                    //$NON-NLS-1$
-        linkNode(element);
-      }              
-    }               
-  }    
+		for (int i = 1; i <= min; i++) {
+			if (ed != null) {
+				visitCMElementDeclaration(ed);
+			}
+			else {
+				Element element = document.createElement("ANY-ELEMENT"); //$NON-NLS-1$
+				linkNode(element);
+			}
+		}
+	}
 
-  protected CMElementDeclaration getSuitableElement(CMNamedNodeMap nameNodeMap)
-  {       
-    CMElementDeclaration result = null;
-    int size = nameNodeMap.getLength();             
-    for (int i = 0; i < size; i++)
-    {           
-      CMElementDeclaration candidate = (CMElementDeclaration)nameNodeMap.item(i);
-      if (!visitedCMElementDeclarationList.contains(candidate))
-      {
-        result = candidate;
-        break;
-      }
-    }
-    return result;
-  }
+	protected CMElementDeclaration getSuitableElement(CMNamedNodeMap nameNodeMap) {
+		CMElementDeclaration result = null;
+		int size = nameNodeMap.getLength();
+		for (int i = 0; i < size; i++) {
+			CMElementDeclaration candidate = (CMElementDeclaration) nameNodeMap.item(i);
+			if (!visitedCMElementDeclarationList.contains(candidate)) {
+				result = candidate;
+				break;
+			}
+		}
+		return result;
+	}
 
-  protected CMElementDeclaration getSuitableElement(CMElementDeclaration ed, CMDocument cmDocument)
-  {       
-    CMElementDeclaration result = null;
+	protected CMElementDeclaration getSuitableElement(CMElementDeclaration ed, CMDocument cmDocument) {
+		CMElementDeclaration result = null;
 
-    if (ed != null)
-    {
-      result = getSuitableElement(ed.getLocalElements());
-    }
+		if (ed != null) {
+			result = getSuitableElement(ed.getLocalElements());
+		}
 
-    if (result == null && cmDocument != null)
-    {
-      result = getSuitableElement(cmDocument.getElements());
-    } 
+		if (result == null && cmDocument != null) {
+			result = getSuitableElement(cmDocument.getElements());
+		}
 
-    return result;
-  }
+		return result;
+	}
 
 
-  public void linkNode(Node node)
-  {
-    if (attachNodesToParent && currentParent != null)
-    {
-      if (node.getNodeType() == Node.ATTRIBUTE_NODE)
-      {
-        ((Element)currentParent).setAttributeNode((Attr)node);
-      }
-      else
-      {
-        currentParent.appendChild(node);
-      }
-    }
-    else if (resultList != null)
-    {
-      resultList.add(node);
-    }
-  }
+	public void linkNode(Node node) {
+		if (attachNodesToParent && currentParent != null) {
+			if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
+				((Element) currentParent).setAttributeNode((Attr) node);
+			}
+			else {
+				currentParent.appendChild(node);
+			}
+		}
+		else if (resultList != null) {
+			resultList.add(node);
+		}
+	}
 
-  public static void testPopulateDocumentFromGrammarFile(Document document, String grammarFileName, String rootElementName, boolean hack)
-  {
-    try
-    {
-      CMDocument cmDocument = ContentModelManager.getInstance().createCMDocument(grammarFileName, null);
-      CMNamedNodeMap elementMap = cmDocument.getElements();
-      CMElementDeclaration element = (CMElementDeclaration)elementMap.getNamedItem(rootElementName);
+	public static void testPopulateDocumentFromGrammarFile(Document document, String grammarFileName, String rootElementName, boolean hack) {
+		try {
+			CMDocument cmDocument = ContentModelManager.getInstance().createCMDocument(grammarFileName, null);
+			CMNamedNodeMap elementMap = cmDocument.getElements();
+			CMElementDeclaration element = (CMElementDeclaration) elementMap.getNamedItem(rootElementName);
 
-      DOMContentBuilderImpl contentBuilder = new DOMContentBuilderImpl(document);
-      contentBuilder.supressCreationOfDoctypeAndXMLDeclaration = hack;
-      contentBuilder.createDefaultRootContent(cmDocument, element);
+			DOMContentBuilderImpl contentBuilder = new DOMContentBuilderImpl(document);
+			contentBuilder.supressCreationOfDoctypeAndXMLDeclaration = hack;
+			contentBuilder.createDefaultRootContent(cmDocument, element);
 
-      System.out.println();
-      System.out.println("-----------------------------"); //$NON-NLS-1$
-      DOMWriter writer = new DOMWriter();
-      if (hack)
-      {
-        writer.print(document, grammarFileName);
-      }
-      else
-      {
-        writer.print(document);
-      }
-      System.out.println("-----------------------------"); //$NON-NLS-1$
-    }
-    catch (Exception e)
-    {
-      System.out.println("Error: " + e); //$NON-NLS-1$
-      e.printStackTrace();
-    }
-  }
+			System.out.println();
+			System.out.println("-----------------------------"); //$NON-NLS-1$
+			DOMWriter writer = new DOMWriter();
+			if (hack) {
+				writer.print(document, grammarFileName);
+			}
+			else {
+				writer.print(document);
+			}
+			System.out.println("-----------------------------"); //$NON-NLS-1$
+		}
+		catch (Exception e) {
+			System.out.println("Error: " + e); //$NON-NLS-1$
+			e.printStackTrace();
+		}
+	}
 
-  // test
-  //
-  /*
-  public static void main(String arg[])
-  {
-    if (arg.length >= 2)
-    {
-      try
-      {
-        CMDocumentFactoryRegistry.getInstance().registerCMDocumentBuilderWithClassName("org.eclipse.wst.xml.core.internal.contentmodel.mofimpl.CMDocumentBuilderImpl");
-
-        String grammarFileName = arg[0];
-        String rootElementName = arg[1];
-
-        Document document = (Document)Class.forName("org.apache.xerces.dom.DocumentImpl").newInstance();
-        testPopulateDocumentFromGrammarFile(document, grammarFileName, rootElementName, true);
-      }
-      catch (Exception e)
-      {
-        System.out.println("DOMContentBuilderImpl error");
-        e.printStackTrace();
-      }
-    }
-    else
-    {
-      System.out.println("Usage : java org.eclipse.wst.xml.util.DOMContentBuildingCMVisitor grammarFileName rootElementName");
-    }
-  }*/
+	// test
+	//
+	/*
+	 * public static void main(String arg[]) { if (arg.length >= 2) { try {
+	 * CMDocumentFactoryRegistry.getInstance().registerCMDocumentBuilderWithClassName("org.eclipse.wst.xml.core.internal.contentmodel.mofimpl.CMDocumentBuilderImpl");
+	 * 
+	 * String grammarFileName = arg[0]; String rootElementName = arg[1];
+	 * 
+	 * Document document =
+	 * (Document)Class.forName("org.apache.xerces.dom.DocumentImpl").newInstance();
+	 * testPopulateDocumentFromGrammarFile(document, grammarFileName,
+	 * rootElementName, true); } catch (Exception e) {
+	 * System.out.println("DOMContentBuilderImpl error"); e.printStackTrace(); } }
+	 * else { System.out.println("Usage : java
+	 * org.eclipse.wst.xml.util.DOMContentBuildingCMVisitor grammarFileName
+	 * rootElementName"); } }
+	 */
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceHelper.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceHelper.java
index 8b096de..049d445 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceHelper.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceInfoManager.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceInfoManager.java
index c1cf8e7..747efbc 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceInfoManager.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMNamespaceInfoManager.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMVisitor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMVisitor.java
index 6ab6bd3..0742f7b 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMVisitor.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMVisitor.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMWriter.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMWriter.java
index 2907d5f..d5a1150 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMWriter.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/DOMWriter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/InferredGrammarFactory.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/InferredGrammarFactory.java
index a6d46f7..d4a3c40 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/InferredGrammarFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/InferredGrammarFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceAttributeVisitor.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceAttributeVisitor.java
index 8718c5c..58d193d 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceAttributeVisitor.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceAttributeVisitor.java
@@ -1,23 +1,23 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2007 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
- *     
+ *     David Carver - STAR - bug 198807 - attribute order dependancy.
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.contentmodel.util;
 
-import com.ibm.icu.util.StringTokenizer;
-
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 
+import com.ibm.icu.util.StringTokenizer;
+
 
 public class NamespaceAttributeVisitor
 {                                      
@@ -62,6 +62,11 @@
   {
     NamedNodeMap map = element.getAttributes();
     int mapLength = map.getLength();
+    
+    // First retrieve all the namespaces so that they are loaded before
+    // doing any special prefix handling.  This allows the attributes to be
+    // defined in any order, but the namespaces have to be retrieved first.
+    
     for (int i = 0; i < mapLength; i++)
     {
       Attr attr = (Attr)map.item(i);
@@ -72,14 +77,6 @@
         if (prefix.equals("xmlns")) //$NON-NLS-1$
         {
           visitXMLNamespaceAttribute(attr, unprefixedName, attr.getValue());
-        } 
-        else if (prefix.equals(xsiPrefix) && unprefixedName.equals("schemaLocation")) //$NON-NLS-1$
-        {
-          visitXSISchemaLocationAttribute(attr, attr.getValue());
-        }
-        else if (prefix.equals(xsiPrefix) && unprefixedName.equals("noNamespaceSchemaLocation")) //$NON-NLS-1$
-        {
-          visitXSINoNamespaceSchemaLocationAttribute(attr, attr.getValue());
         }
       }
       else if (unprefixedName != null)
@@ -89,6 +86,25 @@
           visitXMLNamespaceAttribute(attr, "", attr.getValue()); //$NON-NLS-1$
         }
       }      
+
+    }
+
+    for (int i = 0; i < mapLength; i++)
+    {
+      Attr attr = (Attr)map.item(i);
+      String prefix = DOMNamespaceHelper.getPrefix(attr.getName());
+      String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attr.getName());
+      if (prefix != null && unprefixedName != null)
+      {
+       	if (prefix.equals(xsiPrefix) && unprefixedName.equals("schemaLocation")) //$NON-NLS-1$
+        {
+          visitXSISchemaLocationAttribute(attr, attr.getValue());
+        }
+        else if (prefix.equals(xsiPrefix) && unprefixedName.equals("noNamespaceSchemaLocation")) //$NON-NLS-1$
+        {
+          visitXSINoNamespaceSchemaLocationAttribute(attr, attr.getValue());
+        }
+      }
     }
   }      
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceInfo.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceInfo.java
index fdaaf12..56af91b 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceInfo.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceInfo.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceTable.java b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceTable.java
index 182da17..18a2541 100644
--- a/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceTable.java
+++ b/bundles/org.eclipse.wst.xml.core/src-contentmodel/org/eclipse/wst/xml/core/internal/contentmodel/util/NamespaceTable.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2002 IBM Corporation and others.
+ * Copyright (c) 2002, 2007 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
@@ -30,7 +30,8 @@
   public Hashtable hashtable = new Hashtable();
 
   public NamespaceTable(Document document)
-  {                     
+  {         
+	  this();
     //DOMExtension domExtension = DOMExtensionProviderRegistry.getInstance().getDOMExtension(document);
     //if (domExtension != null)
     //{                          
@@ -39,7 +40,8 @@
   }   
 
   private NamespaceTable()
-  {        
+  {       
+	  super();
   }  
 
   public boolean isNamespaceEncountered()
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSEAdapter.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSEAdapter.java
index f5c68d0..409ffa0 100644
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSEAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSEAdapter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -11,8 +11,12 @@
 
 package org.eclipse.wst.xml.core.internal.emf2xml;
 
+import java.util.Collection;
+import java.util.Iterator;
+
 import org.eclipse.emf.common.notify.Notifier;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.jface.text.BadLocationException;
 import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapter;
 import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapterImpl;
@@ -26,7 +30,7 @@
 import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
 import org.eclipse.wst.xml.core.internal.Logger;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
 import org.w3c.dom.Document;
@@ -35,6 +39,8 @@
 import org.w3c.dom.Text;
 
 public class EMF2DOMSSEAdapter extends EMF2DOMAdapterImpl implements INodeAdapter {
+	
+	private Class resourceClass;
 	public EMF2DOMSSEAdapter(Node node, EMF2DOMRenderer renderer, Translator translator) {
 		super(node, renderer, translator);
 	}
@@ -168,7 +174,7 @@
 	 * Indent before the end tag of the <node>passed in.
 	 */
 	protected void indentEndTag(String indentString, Node node, Translator map) {
-		if (!map.shouldIndentEndTag())
+		if (!map.shouldIndentEndTag(node))
 			return;
 		String domPath = map.getDOMPath();
 
@@ -188,7 +194,7 @@
 	}
 
 	protected boolean isEmptyTag(Element parent) {
-		return ((ElementImpl) parent).isEmptyTag();
+		return ((IDOMElement) parent).isEmptyTag();
 	}
 
 	/*
@@ -265,10 +271,98 @@
 	protected EMF2DOMAdapter primCreateAdapter(Node node, Translator childMap) {
 		return new EMF2DOMSSEAdapter(node, fRenderer, childMap);
 	}
+	protected EMF2DOMAdapter createAdapter(Node node, Translator childMap) {
 
+		//Assert.isNotNull(childMap.getChildAdapterClass());
+		Assert.isNotNull(node);
+
+		EMF2DOMAdapter adapter = primGetExistingAdapter(node);
+
+		if (adapter != null) {
+			if (adapter.isMOFProxy() || adapter.getTarget() == null) {
+				removeDOMAdapter(node, adapter);
+				if (adapter.getTarget() != null) {
+					adapter.getTarget().eAdapters().remove(adapter);
+				}
+				adapter = null;
+			}
+		} else {
+			adapter = primCreateAdapter(node, childMap);
+		}
+		return adapter;
+	}
+	protected void addDOMAdapter(Node childNode) {
+
+		// Only add the adapter if this is an child node that will not be
+		// adapted. For instance a subtree that maps to a MOF attribute
+		// setting.
+		if (childNode.getNodeType() == Node.ELEMENT_NODE) {
+			EMF2DOMAdapter attrAdapter = primGetExistingAdapter(childNode);
+
+			if (attrAdapter == null || attrAdapter.getNode() != getNode()) {
+				// If the node is adapted, but not by this adapter then remove
+				// it. This happens to non-object children when the parent tag
+				// name is changed.
+				removeDOMAdapter(childNode, attrAdapter);
+
+				if (fDebug) {
+					org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\tCHILD: Adding DOM adapter: " + this); //$NON-NLS-1$
+					org.eclipse.jem.util.logger.proxy.Logger.getLogger().logError("\t\tto: " + childNode); //$NON-NLS-1$
+				}
+				primAddDOMAdapter(childNode, this);
+			}
+		}
+	}
+	
 	protected EMF2DOMAdapter primGetExistingAdapter(Node aNode) {
-		return (EMF2DOMAdapter) ((IDOMNode) aNode).getExistingAdapter(EMF2DOMAdapter.ADAPTER_CLASS);
-
+		INodeNotifier sseNode = (INodeNotifier) aNode;
+		Collection adapters = sseNode.getAdapters();
+		for (Iterator iterator = adapters.iterator(); iterator.hasNext();) {
+			INodeAdapter adapter = (INodeAdapter) iterator.next();
+			// First Check if it's an EMF2DOMAdapter
+			if (adapter != null && adapter.isAdapterForType(EMF2DOMAdapter.ADAPTER_CLASS)) {
+				// Cast to EMF2DOMAdapter
+				EMF2DOMSSEAdapter e2DAdapter = (EMF2DOMSSEAdapter) adapter;
+				Object adapterTarget = e2DAdapter.getTarget();
+				
+				//Handle the cases where either adapter's target is null 
+				if ((getTarget() == null) || (adapterTarget == null))
+					if(resourceClass.equals(e2DAdapter.getResourceClass()))
+						return e2DAdapter;
+					else
+						continue;
+				
+				
+				// Check if target is an EMF resource
+				if (getTarget() instanceof Resource) {
+					/*
+					 * Now check if it's the right one (Multiple resources
+					 * could be attached)
+					 */
+					if (adapterTarget != null && adapterTarget == getTarget()) {
+						return e2DAdapter;
+					}
+				}
+				else {
+					// Check if targets are EObjects with the same resources
+					EObject myTarget = (EObject) getTarget();
+					/*
+					 * Now check if it's the right one (Multiple resources could
+					 * be attached)
+					 */
+					if (adapterTarget != null && ((EObject)adapterTarget).eResource() == myTarget.eResource()) {
+						return e2DAdapter;
+					}
+				}
+				
+				if (adapterTarget instanceof EObject) {
+					if (((EObject) e2DAdapter.getTarget()).eResource() == null) {
+						return e2DAdapter;
+					}
+				}
+			}
+		}
+		return null;
 	}
 
 	protected String primGetIndentString(Node node) {
@@ -302,7 +396,7 @@
 	}
 
 	protected void removeDOMAdapter(Node aNode, EMF2DOMAdapter anAdapter) {
-		((IDOMNode) aNode).removeAdapter((EMF2DOMSSEAdapter) anAdapter);
+		((IDOMNode) aNode).removeAdapter((INodeAdapter) anAdapter);
 	}
 
 
@@ -317,7 +411,7 @@
 	}
 
 	protected void setEmptyTag(Element element) {
-		((ElementImpl) element).setEmptyTag(true);
+		((IDOMElement) element).setEmptyTag(true);
 	}
 
 	public void updateDOM() {
@@ -331,4 +425,15 @@
 			enableUndoManagement();
 		}
 	}
-}
\ No newline at end of file
+
+	public Class getResourceClass() {
+		return resourceClass;
+	}
+
+	protected void initChildTranslators() {
+		if (fRenderer != null && fRenderer.getResource() != null)
+			resourceClass = fRenderer.getResource().getClass();
+		super.initChildTranslators();
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
index 52ce429..8b23e11 100644
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
+++ b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERenderer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,17 +18,22 @@
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.jem.util.emf.workbench.ProjectResourceSet;
+import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
 import org.eclipse.wst.common.internal.emf.resource.EMF2DOMAdapter;
 import org.eclipse.wst.common.internal.emf.resource.EMF2DOMRenderer;
 import org.eclipse.wst.common.internal.emf.resource.TranslatorResource;
@@ -40,6 +45,8 @@
 import org.eclipse.wst.sse.core.internal.provisional.IModelLifecycleListener;
 import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
 import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener;
+import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
 import org.eclipse.wst.xml.core.internal.Logger;
 import org.eclipse.wst.xml.core.internal.document.DocumentTypeImpl;
@@ -57,6 +64,8 @@
 	private boolean isSaving = false;
 
 	private IModelManager modelManager;
+	
+	private Class resourceClass;
 
 	/** The XML DOM model */
 	protected IDOMModel xmlModel;
@@ -171,7 +180,7 @@
 					is.close();
 				}
 			}
-			initializeXMLModel(file, true);
+			initializeXMLModel(file, resource.getWriteCount() != 0);
 		}
 		catch (IOException ex) {
 			Logger.log(Logger.ERROR, "IWAE0017E Unexpected IO exception occurred creating xml document");//$NON-NLS-1$
@@ -198,6 +207,7 @@
 	}
 
 	private void deregisterFromXMLModel() {
+		
 		deRegisterAsModelStateListener();
 		deRegisterAsModelLifecycleListener();
 		// This try/catch block is a hack to fix defect 204114. This occurs
@@ -240,7 +250,7 @@
 			ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) resource.getResourceSet()).getSynchronizer();
 			IFile aFile = WorkbenchResourceHelper.getFile(resource);
 			try {
-				synchronizer.preSave(aFile);
+				synchronizer.preSave(aFile, resource);
 				xmlModel.save(aFile);
 			}
 			catch (CoreException ex) {
@@ -255,8 +265,50 @@
 	}
 
 	public EMF2DOMAdapter getExistingDOMAdapter(Node node) {
-		IDOMNode xNode = (IDOMNode) node;
-		return (EMF2DOMSSEAdapter) xNode.getAdapterFor(EMF2DOMAdapter.ADAPTER_CLASS);
+		//IDOMNode xNode = (IDOMNode) node;
+		//return (EMF2DOMSSEAdapter) xNode.getAdapterFor(EMF2DOMAdapter.ADAPTER_CLASS);
+
+		INodeNotifier sseNode = (INodeNotifier) node;
+		Collection adapters = sseNode.getAdapters();
+		for (Iterator iterator = adapters.iterator(); iterator.hasNext();) {
+			INodeAdapter adapter = (INodeAdapter) iterator.next();
+			// First Check if it's an EMF2DOMAdapter
+			if (adapter != null && adapter.isAdapterForType(EMF2DOMAdapter.ADAPTER_CLASS)) {
+				// Cast to EMF2DOMSSEAdapter
+				EMF2DOMSSEAdapter e2DAdapter = (EMF2DOMSSEAdapter) adapter;
+				//Handle the cases where either adapter's target is null 
+				//Use the resourceClass to make sure the resource type is identical
+				if (getResource() == null || e2DAdapter.getTarget() == null)
+					if(resourceClass.equals(e2DAdapter.getResourceClass()))
+						return e2DAdapter;
+					else
+						continue;
+				
+				// First check if targets are resources
+				if (e2DAdapter.getTarget() instanceof Resource) {
+					/*
+					 * Now check if it's the right one (Multiple resources
+					 * could be attached)
+					 */
+					if (e2DAdapter.getTarget() == getResource()) {
+						return e2DAdapter;
+					}
+				} else {
+					// Check if targets are EObjects with the same resources
+					TranslatorResource myTarget = getResource();
+					EObject adapterTarget = (EObject) e2DAdapter.getTarget();
+					/*
+					 * Now check if it's the right one (Multiple resources could
+					 * be attached)
+					 */
+					if (adapterTarget.eResource() == myTarget || adapterTarget.eResource() == null) {
+						return e2DAdapter;
+					}
+				}
+			}
+		}
+		return null;
+	
 	}
 
 	protected IModelManager getModelManager() {
@@ -294,17 +346,29 @@
 
 	public String getXMLModelId() {
 		return xmlModelId;
-	}
-
+	}	
+	
 	private IDOMModel initializeXMLModel(IFile file, boolean forWrite) throws UnsupportedEncodingException, IOException {
 		if (file == null || !file.exists())
 			throw new FileNotFoundException((file == null) ? "null" : file.getFullPath().toOSString()); //$NON-NLS-1$
 		try {
+			IModelManager manager = getModelManager();
+			String id = manager.calculateId(file);			
 			if (forWrite) {
-				setXMLModel((IDOMModel) getModelManager().getModelForEdit(file));
+				IDOMModel mod = (IDOMModel)manager.getExistingModelForEdit(id);
+				if (mod == null)
+					setXMLModel((IDOMModel) manager.getModelForEdit(file));
+				else {
+					setXMLModel(mod);
+				}
 			}
 			else {
-				setXMLModel((IDOMModel) getModelManager().getModelForRead(file));
+				IDOMModel mod = (IDOMModel)manager.getExistingModelForRead(id);
+				if (mod == null)
+					setXMLModel((IDOMModel) manager.getModelForRead(file));
+				else {
+					setXMLModel(mod);
+				}
 			}
 			setXMLModelId(getXMLModel().getId());
 			needsToCreateDOM = false;
@@ -313,7 +377,7 @@
 			Logger.logException(e);
 			return null;
 		}
-		String id = getModelManager().calculateId(file);
+		String id = getXMLModel().getId();
 		syncReferenceCounts(id, forWrite);
 		if (xmlModel != null)
 			document = xmlModel.getDocument();
@@ -329,7 +393,12 @@
 	}
 
 	public boolean isShared() {
-		if (getResourceSet() == null || xmlModel == null)
+		
+		if( xmlModel == null) { //resource could be in process of being unloaded - check with model manager
+			String id = getModelManagerId();
+			return getModelManager().isShared(id);
+		}
+		if (getResourceSet() == null)
 			return false;
 		return xmlModel.isShared();
 	}
@@ -371,31 +440,34 @@
 		if (isBatchChanges)
 			return;
 		try {
-			if (aboutToChangeNode != null && model.getStructuredDocument() != null && model.getStructuredDocument().getFirstStructuredDocumentRegion() != aboutToChangeNode) {
-				modelAccessForWrite();
+			if (aboutToChangeNode != null && model.getStructuredDocument() != null
+					&& model.getStructuredDocument().getFirstStructuredDocumentRegion() != aboutToChangeNode) {
+				String id = getModelManagerId();
+				IStructuredModel tempModel = null;
 				try {
+					tempModel = getModelManager().getExistingModelForEdit(id);
 					xmlModelReverted = true;
 					resource.unload();
-				}
-				finally {
-					if (getXMLModel() != null)
-						getXMLModel().releaseFromEdit();
+				} finally {
+					if (tempModel != null && (tempModel.getReferenceCountForEdit() > 0)) {
+						tempModel.releaseFromEdit();
+					}
 				}
 			}
-		}
-		finally {
+		} finally {
 			aboutToChangeNode = null;
 		}
-	}
-
+	} 
+	
 	public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty) {
 		if (!isDirty && resource.isModified()) { // The XMLModel was saved
 			resource.setModified(false);
 			long stamp = WorkbenchResourceHelper.computeModificationStamp(resource);
 			WorkbenchResourceHelper.setSynhronizationStamp(resource, stamp);
-			ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) resource.getResourceSet()).getSynchronizer();
+			IProject proj = WorkbenchResourceHelper.getProject(resource);
+			ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) WorkbenchResourceHelperBase.getResourceSet(proj)).getSynchronizer();
 			IFile aFile = WorkbenchResourceHelper.getFile(resource);
-			synchronizer.preSave(aFile);
+			synchronizer.preSave(aFile, resource);
 		}
 		if (isDirty)
 			resource.setModified(true);
@@ -437,7 +509,7 @@
 			if (event.getType() == ModelLifecycleEvent.MODEL_SAVED) {
 				ResourceSetWorkbenchEditSynchronizer synchronizer = (ResourceSetWorkbenchEditSynchronizer) ((ProjectResourceSet) resource.getResourceSet()).getSynchronizer();
 				IFile aFile = WorkbenchResourceHelper.getFile(resource);
-				synchronizer.preSave(aFile);
+				synchronizer.preSave(aFile, resource);
 			}
 		}
 	}
@@ -562,4 +634,11 @@
 	public boolean wasReverted() {
 		return xmlModelReverted;
 	}
-}
\ No newline at end of file
+
+	public void setResource(TranslatorResource resource) {
+		super.setResource(resource);
+		if (resource != null)
+			resourceClass = resource.getClass();
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERendererFactory.java b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERendererFactory.java
index cb9d991..9b79123 100644
--- a/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERendererFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src-emfModelSynch/org/eclipse/wst/xml/core/internal/emf2xml/EMF2DOMSSERendererFactory.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
+ * Copyright (c) 2001, 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
@@ -29,4 +29,4 @@
 	public Renderer createRenderer() {
 		return new EMF2DOMSSERenderer();
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java
index 7abd04b..dff3048 100644
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java
+++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLComponentSearchPattern.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
@@ -11,7 +11,11 @@
 
 package org.eclipse.wst.xml.core.internal.search;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.eclipse.core.resources.IFile;
+import org.eclipse.wst.common.core.search.SearchParticipant;
 import org.eclipse.wst.common.core.search.pattern.ComponentSearchPattern;
 import org.eclipse.wst.common.core.search.pattern.QualifiedName;
 
@@ -23,10 +27,15 @@
 	
 	/**
 	 * Containing element patterns
+	 * @deprecated
 	 */
 	XMLSearchPattern[] children = new XMLSearchPattern[0];
 	
-
+	/**
+	 * A map of XMLSearchPattern[] by {@link SearchParticipant search participant}.
+	 */
+	protected Map childPatternsByParticipant = new HashMap();
+	
 	public XMLComponentSearchPattern(IFile file, QualifiedName elementQName, QualifiedName typeQName, int matchRule) {
 		super(file, elementQName, typeQName, matchRule);
 		
@@ -38,13 +47,50 @@
 		
 	}
 
+	/**
+	 * @deprecated Use {@link #getChildren(SearchParticipant)} instead.
+	 */
 	public XMLSearchPattern[] getChildren(){
 		return children;
 	}
 	
+    /**
+     * @deprecated Use {@link #addChildren(SearchParticipant, XMLSearchPattern[])} instead.
+     */
 	public void setChildren(XMLSearchPattern[] patterns){
 		children = patterns;
 		
 	}
+	
+	/**
+	 * Provides the child patterns contributed by the given search participant. 
+	 * @param searchParticipant the {@link SearchParticipant search participant} that contributed the patterns.
+     * @see XMLComponentSearchPattern#addChildren(SearchParticipant, XMLSearchPattern[]) addChildren
+	 * @return an array with the {@link XMLSearchPattern patterns} contributed by the {@link SearchParticipant search participant}.
+	 */
+	public XMLSearchPattern[] getChildren(SearchParticipant searchParticipant){
+	  XMLSearchPattern[] childPatterns = getChildren();
+	  if (searchParticipant != null){
+	    childPatterns = (XMLSearchPattern[])childPatternsByParticipant.get(searchParticipant);
+	    if (childPatterns == null){
+	      childPatterns = getChildren();
+	    }
+	  }
+	  return childPatterns;
+	}
 
+	/**
+	 * Saves the child patterns contributed by the given search participant.
+	 * @param searchParticipant the {@link SearchParticipant search participant} that is contributing the child search patterns.
+	 * @param childPatterns the child patterns contributed by the {@link SearchParticipant searchParticipant search participant}.
+	 * @see XMLComponentSearchPattern#getChildren(SearchParticipant) getChildren
+	 */
+	public void addChildren(SearchParticipant searchParticipant, XMLSearchPattern[] childPatterns){
+	  if (searchParticipant != null && childPatterns != null) {
+	    childPatternsByParticipant.put(searchParticipant, childPatterns);
+	  }
+	  else {
+	    children = childPatterns;
+	  }
+	}
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java
index 71bcefa..b709f58 100644
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java
+++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/XMLSearchParticipant.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
@@ -126,7 +126,7 @@
 		if (PatternMatcher.class.equals(adapterType) &&
 				(adaptableObject instanceof XMLSearchPattern ||
 				adaptableObject instanceof XMLComponentSearchPattern) ) {
-			return new XMLSearchPatternMatcher();
+			return new XMLSearchPatternMatcher(this);
 		} 
 		return null; 
 	}
@@ -199,7 +199,7 @@
 			if(childPattern != null){
 					childPattern.setSearchName(componentPattern.getName().getLocalName());
 					childPattern.setSearchNamespace(componentPattern.getName().getNamespace());
-	     			componentPattern.setChildren(new XMLSearchPattern[]{childPattern});
+	     			componentPattern.addChildren(this, new XMLSearchPattern[]{childPattern});
 			}
 			
 		}
@@ -211,7 +211,7 @@
 				childPattern.setSearchName(componentPattern.getName().getLocalName());
 				childPattern.setSearchNamespace(componentPattern.getName().getNamespace());				
 			}
-			componentPattern.setChildren(childPatterns);
+			componentPattern.addChildren(this, childPatterns);
 			
 		}
 	}
@@ -317,6 +317,14 @@
         return true;
       
       String fileProtocol = "file:///";             //$NON-NLS-1$
+      
+      // Fix for bug 204174 - Begin
+      if(target.charAt(fileProtocol.length()) == '/')  //$NON-NLS-1$
+      {
+          target = fileProtocol + target.substring(fileProtocol.length() + 1);
+      }
+      // Fix for bug 204174 - End
+            
       if (source.startsWith(fileProtocol))
       {    
         
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties
index e69de29..43aea95 100644
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties
+++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/impl/messages.properties
@@ -0,0 +1,10 @@
+###############################################################################
+# 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
+###############################################################################
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java
index 7590f57..fa518e8 100644
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java
+++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/PatternMatcher.java
@@ -14,7 +14,6 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchParticipant;
 import org.eclipse.wst.common.core.search.SearchRequestor;
 import org.eclipse.wst.common.core.search.pattern.SearchPattern;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
@@ -29,10 +28,10 @@
  * <p>
  * Subclasses of the PatternMatches should be set as adapters for the patterns that they match.
  * </p>
- * An implementation of {@link SearchParticipant#selectDocumentLocations()} will call 
+ * An implementation of {@link org.eclipse.wst.common.core.search.SearchParticipant#selectDocumentLocations()} will call 
  * { @link PatternMatcher#matches() } on the adapter on pattern matcher.
  * 
- * An implementation of {@link SearchParticipant#locateMatches()} will call 
+ * An implementation of {@link org.eclipse.wst.common.core.search.SearchParticipant#locateMatches()} will call 
  * { @link PatternMatcher#locateMatches() } on the adapter on pattern matcher.
  *
  */
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java
index 0b9c3d3..a5ee621 100644
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java
+++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/matching/XMLSearchPatternMatcher.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
+ * Copyright (c) 2004, 2008 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
@@ -13,6 +13,7 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.wst.common.core.search.SearchMatch;
+import org.eclipse.wst.common.core.search.SearchParticipant;
 import org.eclipse.wst.common.core.search.SearchRequestor;
 import org.eclipse.wst.common.core.search.pattern.QualifiedName;
 import org.eclipse.wst.common.core.search.pattern.SearchPattern;
@@ -25,7 +26,20 @@
 
 public class XMLSearchPatternMatcher extends PatternMatcher{
 	
-
+   /**
+    * The active search participant.
+    */
+    private SearchParticipant searchParticipant;
+  
+    /**
+     * Constructs a pattern matcher given a search participant.
+     * @param searchParticipant the active {@link SearchParticipant search participant}.
+     */
+    public XMLSearchPatternMatcher(SearchParticipant searchParticipant)
+    {
+      this.searchParticipant = searchParticipant;
+    }
+    
 	protected String computeNamespaceForPrefix(Element element, String prefix)
 	{
 	  String result = null;
@@ -110,7 +124,10 @@
 	
 	public void locateMatches(SearchPattern pattern, IFile file, Element element, SearchRequestor requestor) {
 		if(pattern instanceof XMLComponentSearchPattern){
-			XMLSearchPattern[] childPatterns = ((XMLComponentSearchPattern)pattern).getChildren();
+			XMLSearchPattern[] childPatterns = ((XMLComponentSearchPattern)pattern).getChildren(searchParticipant);
+			if (childPatterns == null){
+			  return;
+			}
 			for (int i = 0; i < childPatterns.length; i++) {
 				PatternMatcher matcher = (PatternMatcher)childPatterns[i].getAdapter(PatternMatcher.class);
 				if(matcher == null){
@@ -135,7 +152,10 @@
 	 */
 	public boolean matches(SearchPattern pattern, Object element){
 		if(pattern instanceof XMLComponentSearchPattern){
-			XMLSearchPattern[] childPatterns = ((XMLComponentSearchPattern)pattern).getChildren();
+			XMLSearchPattern[] childPatterns = ((XMLComponentSearchPattern)pattern).getChildren(searchParticipant);
+            if (childPatterns == null){
+              return false;
+            }
 			for (int i = 0; i < childPatterns.length; i++) {
 				PatternMatcher matcher = (PatternMatcher)childPatterns[i].getAdapter(PatternMatcher.class);
 				if(matcher == null){
diff --git a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
index f966606..bf8a14c 100644
--- a/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
+++ b/bundles/org.eclipse.wst.xml.core/src-search/org/eclipse/wst/xml/core/internal/search/quickscan/XMLQuickScan.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *******************************************************************************/
@@ -114,4 +114,4 @@
 			
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java
index 319f376..96c578c 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/ValidatorHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
  *******************************************************************************/
@@ -258,6 +258,8 @@
         location = URIResolverPlugin.createResolver().resolvePhysicalLocation(baseURI, rootElementNamespace, location);                                                    
         location = URIHelper.addImpliedFileProtocol(location);
         
+        schemaLocationString = location;
+        
         if (location != null)
         {  
           InputStream is = null;
@@ -352,4 +354,4 @@
     }
     return string;
   }
-}
\ No newline at end of file
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationConfiguration.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationConfiguration.java
index 0e27080..2b01b88 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationConfiguration.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationConfiguration.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -19,8 +19,13 @@
  */
 public class XMLValidationConfiguration 
 {
+  /**
+   * @deprecated
+   */
   public static String WARN_NO_GRAMMAR = "WARN_NO_GRAMMAR"; //$NON-NLS-1$
+  public static String INDICATE_NO_GRAMMAR = "INDICATE_NO_GRAMMAR"; //$NON-NLS-1$
   private boolean warn_no_grammar_value = false;
+  private int indicate_no_grammar_value = 1;
   
   /**
    * Set a feature of this configuration.
@@ -41,6 +46,25 @@
 	
   }
   
+  /**
+   * Set a feature of this configuration.
+   * 
+   * @param feature
+   * 		The feature to set.
+   * @param value
+   * 		The value to set for the feature.
+   * @throws 
+   * 		An exception is thrown if the feature is not recognized.
+   */
+  public void setFeature(String feature, int value) throws Exception
+  {
+	if(INDICATE_NO_GRAMMAR.equals(feature))
+	  indicate_no_grammar_value = value;
+	else
+	  throw new IllegalArgumentException("Feature not recognized."); //$NON-NLS-1$
+	
+  }
+  
   
   /**
    * Get the value for a given feature. If the feature is not defined
@@ -61,4 +85,23 @@
 	throw new Exception("Feature not recognized."); //$NON-NLS-1$
   }
 
+  /**
+   * Get the value for a given feature. If the feature is not defined
+   * this method will throw an exception.
+   * 
+   * @param feature
+   * 		The feature for which to retrieve the value.
+   * @return
+   * 		The feature's value, true or false.
+   * @throws 
+   * 		An exception is thrown if the feature is not recognized.
+   */
+  public int getIntFeature(String feature) throws Exception
+  {
+	if(INDICATE_NO_GRAMMAR.equals(feature))
+	  return indicate_no_grammar_value;
+	
+	throw new IllegalArgumentException("Feature not recognized."); //$NON-NLS-1$
+  }
+
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationInfo.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationInfo.java
index 4979bf3..888bc40 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationInfo.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationInfo.java
@@ -7,6 +7,7 @@
  * 
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     David Carver - STAR - [205989] - [validation] validate XML after XInclude resolution
  *******************************************************************************/
 
 package org.eclipse.wst.xml.core.internal.validation;
@@ -14,6 +15,8 @@
 import java.util.Stack;
 
 import org.apache.xerces.xni.XMLLocator;
+import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo;
 import org.eclipse.wst.xml.core.internal.validation.errorcustomization.ErrorCustomizationManager;
 
@@ -186,5 +189,8 @@
 	  }
 	  return errorCustomizationManager;
   }
-
-}
+  
+  public boolean isUseXInclude() {
+	  return XMLCorePlugin.getDefault().getPluginPreferences().getBoolean(XMLCorePreferenceNames.USE_XINCLUDE);
+  }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationMessages.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationMessages.java
index 2799be3..7cd08da 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationMessages.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationMessages.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * 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
  *     
@@ -24,7 +24,6 @@
 	public static String _UI_PROBLEMS_CONNECTION_REFUSED;
 	public static String _UI_REF_FILE_ERROR_MESSAGE;
 	public static String _WARN_NO_GRAMMAR;
-	public static String Message_XML_validation_message_ui;
 
 	static {
 		// load message values from bundle file
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationReport.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationReport.java
index 7294d9c..5a4f1f6 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationReport.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidationReport.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
index 4bcd2fd..1a44faf 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/XMLValidator.java
@@ -1,12 +1,13 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
+ *     David Carver - STAR - [205989] - [validation] validate XML after XInclude resolution
  *******************************************************************************/
 
 package org.eclipse.wst.xml.core.internal.validation;
@@ -28,7 +29,8 @@
 import java.util.TreeSet;
 
 import org.apache.xerces.impl.XMLErrorReporter;
-import org.apache.xerces.parsers.StandardParserConfiguration;
+import org.apache.xerces.impl.msg.XMLMessageFormatter;
+import org.apache.xerces.parsers.XIncludeAwareParserConfiguration;
 import org.apache.xerces.xni.Augmentations;
 import org.apache.xerces.xni.NamespaceContext;
 import org.apache.xerces.xni.QName;
@@ -38,10 +40,17 @@
 import org.apache.xerces.xni.XNIException;
 import org.apache.xerces.xni.parser.XMLEntityResolver;
 import org.apache.xerces.xni.parser.XMLInputSource;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.osgi.util.NLS;
 import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
+import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
+import org.eclipse.wst.validation.ValidationResult;
+import org.eclipse.wst.xml.core.internal.Logger;
 import org.eclipse.wst.xml.core.internal.validation.core.LazyURLInputStream;
-import org.eclipse.wst.xml.core.internal.validation.core.logging.LoggerFactory;
 import org.xml.sax.Attributes;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
@@ -119,7 +128,7 @@
     try
     {
       Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
-      StandardParserConfiguration configuration = new MyStandardParserConfiguration(valinfo);
+      MyStandardParserConfiguration configuration = new MyStandardParserConfiguration(valinfo);
       reader = new org.apache.xerces.parsers.SAXParser(configuration)
       {
     	private XMLLocator locator = null;
@@ -157,6 +166,7 @@
       reader.setFeature("http://xml.org/sax/features/namespaces", valinfo.isNamespaceEncountered());               //$NON-NLS-1$
       reader.setFeature("http://xml.org/sax/features/validation", valinfo.isGrammarEncountered());  //$NON-NLS-1$
       reader.setFeature("http://apache.org/xml/features/validation/schema", valinfo.isGrammarEncountered()); //$NON-NLS-1$
+   	  reader.setFeature("http://apache.org/xml/features/xinclude", valinfo.isUseXInclude()); //$NON-NLS-1$      
       reader.setContentHandler(new DefaultHandler()
       {
         public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
@@ -177,7 +187,7 @@
     } 
     catch(Exception e)
     { 
-      //TODO: log error message;
+      Logger.logException(e);
       //e.printStackTrace();
     }
     finally
@@ -246,6 +256,26 @@
    */
   public XMLValidationReport validate(String uri, InputStream inputStream, XMLValidationConfiguration configuration)
   {
+    return validate(uri, inputStream, configuration, null);  
+  }
+ 
+  /**
+   * Validate the inputStream
+   * 
+   * @param uri 
+   *    The URI of the file to validate.
+   * @param inputstream
+   *    The inputStream of the file to validate
+   * @param configuration
+   *    A configuration for this validation session.
+   * @param result
+   *    The validation result
+   * @return 
+   *    Returns an XML validation report.
+   */
+  public XMLValidationReport validate(String uri, InputStream inputStream, XMLValidationConfiguration configuration, ValidationResult result)
+  {
+    String grammarFile = "";
     Reader reader1 = null; // Used for the preparse.
     Reader reader2 = null; // Used for validation parse.
     
@@ -274,11 +304,19 @@
         InputSource inputSource = new InputSource(uri);
         inputSource.setCharacterStream(reader2);
         reader.parse(inputSource);   
-        if(configuration.getFeature(XMLValidationConfiguration.WARN_NO_GRAMMAR) && 
+        if(configuration.getIntFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR) > 0 && 
         		valinfo.isValid() && !helper.isGrammarEncountered)
         {
-          valinfo.addWarning(XMLValidationMessages._WARN_NO_GRAMMAR, 1, 0, uri, NO_GRAMMAR_FOUND, null);
+          if(configuration.getIntFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR) == 1)
+            valinfo.addWarning(XMLValidationMessages._WARN_NO_GRAMMAR, 1, 0, uri, NO_GRAMMAR_FOUND, null);
+          else // 2
+              valinfo.addError(XMLValidationMessages._WARN_NO_GRAMMAR, 1, 0, uri, NO_GRAMMAR_FOUND, null);
         }
+
+        if (helper.isDTDEncountered)
+          grammarFile = entityResolver.getLocation();
+        else
+          grammarFile = helper.schemaLocationString;
     }
     catch (SAXParseException saxParseException)
     {
@@ -291,9 +329,27 @@
     }                 
     catch (Exception exception)
     {  
-    	LoggerFactory.getLoggerInstance().logError(exception.getLocalizedMessage(), exception);
+    	Logger.logException(exception.getLocalizedMessage(), exception);
     }
-     
+
+    // Now set up the dependencies
+    // Wrap with try catch so that if something wrong happens, validation can
+    // still proceed as before
+    if (result != null)
+    {
+      try
+      {
+        IResource resource = getWorkspaceFileFromLocation(grammarFile);
+        ArrayList resources = new ArrayList();
+        if (resource != null)
+          resources.add(resource);
+        result.setDependsOn((IResource [])resources.toArray(new IResource [0]));
+      }
+      catch (Exception e)
+      {
+        Logger.logException(e.getLocalizedMessage(), e);
+      }
+    }
     
     return valinfo;
        
@@ -362,8 +418,8 @@
   protected class MyEntityResolver implements XMLEntityResolver 
   {
     private URIResolver uriResolver;
-    
-    
+    private String resolvedDTDLocation;
+   
     /**
      * Constructor.
      * 
@@ -381,7 +437,12 @@
     {
       try
       {
-        return _internalResolveEntity(uriResolver, rid);
+        XMLInputSource inputSource = _internalResolveEntity(uriResolver, rid);
+        if (inputSource != null)
+        {
+          resolvedDTDLocation = inputSource.getSystemId();
+        }
+        return inputSource;
       }
       catch(IOException e)
       {
@@ -389,6 +450,11 @@
       }      
       return null;
     }
+   
+    public String getLocation()
+    {
+      return resolvedDTDLocation;
+    }
   }
   
   // cs : I've refactored the common SAX based resolution code into this method for use by other validators 
@@ -565,11 +631,11 @@
   }
 
   /**
-   * A StandardParserConfiguration that creates an error reporter which can ignore
+   * A XIncludeAwareParserConfiguration that creates an error reporter which can ignore
    * DTD error messages for DTD's with no elements defined.
    */
 
-  protected class MyStandardParserConfiguration extends StandardParserConfiguration
+  protected class MyStandardParserConfiguration extends XIncludeAwareParserConfiguration
   {
   	XMLValidationInfo valinfo = null;
     List reportedExceptions = new ArrayList(); 
@@ -582,6 +648,17 @@
   	public MyStandardParserConfiguration(XMLValidationInfo valinfo)
   	{
   	  this.valinfo = valinfo;
+  	  
+  	  XMLErrorReporter errorReporter = createErrorReporter();
+      if (errorReporter.getMessageFormatter(XMLMessageFormatter.XML_DOMAIN) == null) {
+          XMLMessageFormatter xmft = new XMLMessageFormatter();
+          errorReporter.putMessageFormatter(XMLMessageFormatter.XML_DOMAIN, xmft);
+          errorReporter.putMessageFormatter(XMLMessageFormatter.XMLNS_DOMAIN, xmft);
+      }  	  
+      fErrorReporter = errorReporter;
+	  setProperty(ERROR_REPORTER, errorReporter);
+	  fCommonComponents.remove(fErrorReporter);
+	  fCommonComponents.add(fErrorReporter);
   	}
 
     /* (non-Javadoc)
@@ -661,4 +738,19 @@
       return this.columnNo;
     } 
   }
+  
+  protected IResource getWorkspaceFileFromLocation(String location)
+  {
+    if (location == null) return null;
+    IWorkspace workspace = ResourcesPlugin.getWorkspace();
+    // To canonicalize the EMF URI
+    IPath canonicalForm = new Path(location);
+    // Need to convert to absolute location...
+    IPath pathLocation = new Path(URIHelper.removeProtocol(canonicalForm.toString()));
+    // ...to find the resource file that is in the workspace
+    IResource resourceFile = workspace.getRoot().getFileForLocation(pathLocation);
+    // If the resource is resolved to a file from http, or a file outside
+    // the workspace, then we will just ignore it.
+    return resourceFile;
+  }
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/AbstractNestedValidator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/AbstractNestedValidator.java
index f443545..9a48579 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/AbstractNestedValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/AbstractNestedValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
+ * Copyright (c) 2006, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,13 +18,15 @@
 import java.util.Locale;
 
 import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.wst.validation.AbstractValidator;
+import org.eclipse.wst.validation.ValidationResult;
+import org.eclipse.wst.validation.ValidationState;
 import org.eclipse.wst.validation.internal.core.Message;
 import org.eclipse.wst.validation.internal.core.ValidationException;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
@@ -40,15 +42,13 @@
  * benefit from the use of this class. This class takes care of iterating
  * through results for validators that use the standard context.
  */
-public abstract class AbstractNestedValidator implements IValidatorJob 
+public abstract class AbstractNestedValidator extends AbstractValidator implements IValidatorJob 
 {
   // Locally used, non-UI strings.
   private static final String REFERENCED_FILE_ERROR_OPEN = "referencedFileError("; //$NON-NLS-1$
   private static final String REFERENCED_FILE_ERROR_CLOSE = ")"; //$NON-NLS-1$
-  private static final String REFERENCED_FILE_ERROR = "referencedFileError"; //$NON-NLS-1$
   private static final String FILE_PROTOCOL_NO_SLASH = "file:"; //$NON-NLS-1$
   private static final String FILE_PROTOCOL = "file:///"; //$NON-NLS-1$
-  private static final String GROUP_NAME = "groupName"; //$NON-NLS-1$
   private final String GET_FILE = "getFile"; //$NON-NLS-1$
   private final String GET_PROJECT_FILES = "getAllFiles"; //$NON-NLS-1$
   private final String GET_INPUTSTREAM = "inputStream"; //$NON-NLS-1$
@@ -58,7 +58,21 @@
   protected static final String SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE = "squiggleSelectionStrategy"; //$NON-NLS-1$
   protected static final String SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE = "squiggleNameOrValue"; //$NON-NLS-1$
 
-  
+  /**
+   * Perform the validation using version 2 of the validation framework.
+   */
+  public ValidationResult validate(IResource resource, int kind, ValidationState state, IProgressMonitor monitor){
+	  ValidationResult result = new ValidationResult();  
+	  IReporter reporter = result.getReporter(monitor);
+	  NestedValidatorContext nestedcontext = new NestedValidatorContext();
+		setupValidation(nestedcontext);
+		IFile file = null;
+		if (resource instanceof IFile)file = (IFile)resource;
+		if (file != null)validate(file, null, result, reporter, nestedcontext);
+		teardownValidation(nestedcontext);
+	    return result;
+  }
+ 
 
   /* (non-Javadoc)
    * @see org.eclipse.wst.validation.internal.provisional.core.IValidatorJob#validateInJob(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)
@@ -85,11 +99,11 @@
 	    	// called from a source other than the validation framework such as an editor.
 	        if (context.loadModel(GET_INPUTSTREAM) instanceof InputStream) //$NON-NLS-1$
 	        {
-	          validate(file, (InputStream)context.loadModel(GET_INPUTSTREAM), reporter, nestedcontext); //do we need the fileName?  what is int ruleGroup? //$NON-NLS-1$
+	          validate(file, (InputStream)context.loadModel(GET_INPUTSTREAM), null, reporter, nestedcontext); //do we need the fileName?  what is int ruleGroup? //$NON-NLS-1$
 	        }
 	        else
 	        {
-	    	  validate(file, null, reporter, nestedcontext);
+	    	  validate(file, null, null, reporter, nestedcontext);
 	        }
 	      }
 	    }
@@ -107,7 +121,7 @@
         IFile file = (IFile) iter.next();
         if(shouldValidate(file))
         {
-	      validate(file, null, reporter, nestedcontext);
+	      validate(file, null, null, reporter, nestedcontext);
         }
       }
     }
@@ -131,16 +145,6 @@
   }
   
   /**
-   * Get the name of this validator. The name will be reported to the
-   * validation framework.
-   * Subclasses must implement this method.
-   * 
-   * @return
-   * 		The name of this validator.
-   */
-  protected abstract String getValidatorName();
-
-  /**
    * Perform set up before validation runs. Subclasses may implement this
    * method to perform validation specific set up.
    * 
@@ -184,10 +188,9 @@
   /* (non-Javadoc)
    * @see org.eclipse.wst.validation.internal.provisional.core.IValidator#validate(org.eclipse.wst.validation.internal.provisional.core.IValidationContext, org.eclipse.wst.validation.internal.provisional.core.IReporter)
    */
-  public void validate(IValidationContext arg0, IReporter arg1) throws ValidationException 
+  public void validate(IValidationContext context, IReporter reporter) throws ValidationException 
   {  
-	// This method should not be implemented by validtors implementing the validateInJob
-	// method.
+	validateInJob(context, reporter);
   }
 	
 	
@@ -224,21 +227,36 @@
    * @param inputstream 
    * 		An InputStream that represents the file. The InputStream may be null
    * 		in which case the files should be validated from the IFile.
+   * @param result - The validation result
    * @param reporter 
    * 		The reporter with which to report validation messages.
    * @param context
    * 		The context of the current validation.
    */
-  private void validate(IFile file, InputStream inputstream, IReporter reporter, NestedValidatorContext context)
+  private void validate(IFile file, InputStream inputstream, ValidationResult result, IReporter reporter, NestedValidatorContext context)
   {  
 	Message message = new LocalizedMessage(IMessage.LOW_SEVERITY, file.getFullPath().toString());
     reporter.displaySubtask(this, message);
     
-	IPath path = file.getLocation();
-	String uri = createURIForFilePath(path.toString());
+	String locationString = null;		
+	if (file.getLocation() != null) {
+		locationString = file.getLocation().toString();
+	}
+	if (locationString == null && file.getLocationURI() != null) {
+		locationString = file.getLocationURI().toString();
+	}
+	if (locationString == null) {
+		locationString = file.getFullPath().toString();
+	}
+	String uri = createURIForFilePath(locationString);
 
 	clearMarkers(file, this, reporter);
-	ValidationReport valreport = validate(uri, inputstream, context);
+	
+	ValidationReport valreport = null;
+	if (result == null)
+	  valreport = validate(uri, inputstream, context);
+	else
+	  valreport = validate(uri, inputstream, context, result);
 	
 	createMarkers(file, valreport.getValidationMessages(), reporter);
 	        
@@ -267,7 +285,24 @@
    * 		A validation report summarizing the validation.
    */
   public abstract ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context);
-	  
+  
+  /**
+   * Validate the given file and use the reporter for the validation messages.
+   * Clients should override this method with their specific validation logic.
+   * This method should now be used instead of the abstract version.
+   * Design decision to not make this abstract.
+   * 
+   * @param uri
+   * @param inputstream
+   * @param context
+   * @param result
+   * @return
+   */
+  public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context, ValidationResult result)
+  {
+    return validate(uri, inputstream, context);
+  }
+
   /**
    * This method clears all the markers on the given IFile for a specified
    * validator.
@@ -375,30 +410,6 @@
       reporter.addMessage(this, message);
 	      
     }
-    try
-    {
-      IMarker[] markers = iFile.findMarkers(null, true, IResource.DEPTH_INFINITE);
-      for (int i = 0; i < markers.length; i++)
-      {
-        IMarker marker = markers[i];
-        String groupName = null;
-        try
-        {
-          groupName = (String) marker.getAttribute(GROUP_NAME);
-        }
-        catch (Exception e)
-        {
-        }
-        if (groupName != null && groupName.startsWith(REFERENCED_FILE_ERROR))
-        {
-          marker.setAttribute(IMarker.DONE, true);
-        }
-      }
-    }
-    catch (CoreException e)
-    {
-      e.printStackTrace();
-    }
   }
 	  
   /**
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java
index d364d24..5e1dcf7 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationMessage.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationReport.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationReport.java
index c80e023..dbb1570 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationReport.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/ValidationReport.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/CommandLineLogger.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/CommandLineLogger.java
index 0b49920..0d38f38 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/CommandLineLogger.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/CommandLineLogger.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/EclipseLogger.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/EclipseLogger.java
index e346947..573cf2d 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/EclipseLogger.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/EclipseLogger.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/ILogger.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/ILogger.java
index 22b8335..e81a410 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/ILogger.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/ILogger.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/LoggerFactory.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/LoggerFactory.java
index 9a49c5d..81549e3 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/LoggerFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/core/logging/LoggerFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
  *******************************************************************************/
@@ -16,6 +16,8 @@
  * logger from this class.
  * 
  * @author Lawrence Mandel, IBM
+ * 
+ * @deprecated - not used in WTP or by any adopters as of 9/12/2007
  */
 public class LoggerFactory
 {
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/Validator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/Validator.java
index 6f21d01..79acb37 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/Validator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/Validator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2006 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -13,11 +13,11 @@
 
 import java.io.InputStream;
 
+import org.eclipse.wst.validation.ValidationResult;
 import org.eclipse.wst.validation.internal.provisional.core.IMessage;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
 import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.eclipse.wst.xml.core.internal.validation.XMLValidationConfiguration;
-import org.eclipse.wst.xml.core.internal.validation.XMLValidationMessages;
 import org.eclipse.wst.xml.core.internal.validation.XMLValidationReport;
 import org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator;
 import org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext;
@@ -26,7 +26,7 @@
 
 public class Validator extends AbstractNestedValidator
 {
-  protected boolean warnNoGrammar = false;
+  protected int indicateNoGrammar = 0;
   
   /**
    * Set any preferences for XML validation.
@@ -36,45 +36,42 @@
   protected void setupValidation(NestedValidatorContext context) 
   {
 	super.setupValidation(context);
-	warnNoGrammar = XMLCorePlugin.getDefault().getPluginPreferences().getBoolean(XMLCorePreferenceNames.WARN_NO_GRAMMAR);
-  }
-
-/* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#getValidatorName()
-   */
-  protected String getValidatorName() 
-  {
-	return XMLValidationMessages.Message_XML_validation_message_ui;
+	indicateNoGrammar = XMLCorePlugin.getDefault().getPluginPreferences().getInt(XMLCorePreferenceNames.INDICATE_NO_GRAMMAR);
   }
 
   /* (non-Javadoc)
    * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#validate(java.lang.String, java.io.InputStream, org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
    */
   public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context)
-  {  
-	XMLValidator validator = XMLValidator.getInstance();
+  {
+    return validate(uri, inputstream, context, null);
+  }
 
-	XMLValidationConfiguration configuration = new XMLValidationConfiguration();
-	try
-	{
-	  configuration.setFeature(XMLValidationConfiguration.WARN_NO_GRAMMAR, warnNoGrammar);
-	}
-	catch(Exception e)
-	{
-	  // TODO: Unable to set the preference. Log this problem.
-	}
-	
-	XMLValidationReport valreport = null;
-	if (inputstream != null)
-	{
-	  valreport = validator.validate(uri, inputstream, configuration);
-	}
-	else
-	{
-	  valreport = validator.validate(uri, null, configuration);
-	}
-		        
-	return valreport;
+  public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context, ValidationResult result)
+  {
+    XMLValidator validator = XMLValidator.getInstance();
+
+    XMLValidationConfiguration configuration = new XMLValidationConfiguration();
+    try
+    {
+      configuration.setFeature(XMLValidationConfiguration.INDICATE_NO_GRAMMAR, indicateNoGrammar);
+    }
+    catch(Exception e)
+    {
+      // TODO: Unable to set the preference. Log this problem.
+    }
+    
+    XMLValidationReport valreport = null;
+    if (inputstream != null)
+    {
+      valreport = validator.validate(uri, inputstream, configuration, result);
+    }
+    else
+    {
+      valreport = validator.validate(uri, null, configuration, result);
+    }
+              
+    return valreport;
   }
 	  
   /**
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLMessageInfoHelper.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLMessageInfoHelper.java
index 6e2fcf4..4582514 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLMessageInfoHelper.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLMessageInfoHelper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * 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
  *******************************************************************************/
@@ -96,9 +96,13 @@
         nameOrValue = (String)messageArguments[0];
       }
       else if (errorKey.equals("ElementUnterminated")) //$NON-NLS-1$
-	  {
-		selectionStrategy = "ENTIRE_ELEMENT"; //$NON-NLS-1$
-	  }
+      {
+        selectionStrategy = "ENTIRE_ELEMENT"; //$NON-NLS-1$
+      }
+      else if (errorKey.equals("ETagUnterminated") || errorKey.equals("ETagRequired"))  //$NON-NLS-1$  //$NON-NLS-2$
+      {
+        selectionStrategy = "END_TAG";   //$NON-NLS-1$
+      }
     }
     String messageInfo[] = new String[2];
     messageInfo[0] = selectionStrategy != null? selectionStrategy: ""; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLValidator.java b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLValidator.java
index fc97128..d481058 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/eclipse/XMLValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *******************************************************************************/
diff --git a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties
index c0f2111..91fc0ce 100644
--- a/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties
+++ b/bundles/org.eclipse.wst.xml.core/src-validation/org/eclipse/wst/xml/core/internal/validation/xmlvalidation.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2001, 2005 IBM Corporation and others.
+# Copyright (c) 2001, 2006 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -10,9 +10,6 @@
 ###############################################################################
 !-- Constants for strings  
 
-# validation strings
-Message_XML_validation_message_ui=XML Validator validating {0}
-
 ! Usage:
 !   {0} replaced with the host name
 !
@@ -32,4 +29,4 @@
 
 # Warning when no grammar is located.
 _WARN_NO_GRAMMAR                                 = No grammar constraints (DTD or XML schema) detected for the document.
- 
\ No newline at end of file
+ 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/DebugAdapterFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/DebugAdapterFactory.java
index 9056605..266b80a 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/DebugAdapterFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/DebugAdapterFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -31,7 +31,7 @@
 	}
 
 	/**
-	 * Constructor for DebugAdapterFactory.
+	 * Constructor  for DebugAdapterFactory.
 	 * 
 	 * @param fAdapterKey
 	 * @param registerAdapters
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/EveryNodeDebugAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/EveryNodeDebugAdapter.java
index 6454928..baa718c 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/EveryNodeDebugAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/EveryNodeDebugAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/IDebugAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/IDebugAdapter.java
index 172f867..35c5712 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/IDebugAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/IDebugAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/Logger.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/Logger.java
index f1a6ac2..798c9bb 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/Logger.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/Logger.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
index 514da71..bb148a2 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePlugin.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePluginResources.properties b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePluginResources.properties
index c99da79..ca630a2 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePluginResources.properties
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/XMLCorePluginResources.properties
@@ -1,10 +1,10 @@
 ###############################################################################
-# Copyright (c) 2001, 2004 IBM Corporation and others.
+# Copyright (c) 2001, 2005 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
 # http://www.eclipse.org/legal/epl-v10.html
-# 
+#
 # Contributors:
 #     IBM Corporation - initial API and implementation
 #     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -23,4 +23,4 @@
 Catalog_next_catalog_location_uri_not_set=Next catalog location uri is not set
 Catalog_resolution_null_catalog=Catalog resolution attempted with null catalog; ignored
 Catalog_resolution_malformed_url=Malformed URL exception trying to resolve
-Catalog_resolution_io_exception=I/O exception trying to resolve
\ No newline at end of file
+Catalog_resolution_io_exception=I/O exception trying to resolve
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java
index 97bf41c..e62e98b 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/CleanupProcessorXML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -19,9 +19,9 @@
 import org.eclipse.wst.sse.core.internal.cleanup.StructuredCleanupPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.eclipse.wst.xml.core.internal.formatter.XMLFormatterFormatProcessor;
 import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
 import org.w3c.dom.Node;
 
 
@@ -75,7 +75,7 @@
 	}
 
 	protected IStructuredFormatProcessor getFormatProcessor() {
-		return new FormatProcessorXML();
+		return new XMLFormatterFormatProcessor();
 	}
 
 	protected Preferences getModelPreferences() {
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/ElementNodeCleanupHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/ElementNodeCleanupHandler.java
index fc2b772..fcf9a21 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/ElementNodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/ElementNodeCleanupHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java
index ebe7fec..95c2097 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/NodeCleanupHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/XMLCleanupPreferencesImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/XMLCleanupPreferencesImpl.java
index 4095a5c..473c487 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/XMLCleanupPreferencesImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/cleanup/XMLCleanupPreferencesImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementAdapter.java
index 81c4396..c06af5e 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementHandler.java
index 03d7f3a..93e8e6e 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementHandler.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/CommentElementHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/BasicCommentElementHandler.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/BasicCommentElementHandler.java
index d4b8391..caf6228 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/BasicCommentElementHandler.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/BasicCommentElementHandler.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementConfiguration.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementConfiguration.java
index 2e56edf..73133b2 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementConfiguration.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementConfiguration.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementRegistry.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementRegistry.java
index 8fc50b5..efd1f67 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementRegistry.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/impl/CommentElementRegistry.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/CommentElementFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/CommentElementFactory.java
index 1351c42..2ac27ba 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/CommentElementFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/CommentElementFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -41,7 +41,7 @@
 	}
 
 	public CommentElementFactory(Document document, boolean isJSPTag, CommentElementHandler handler) {
-		super();
+		this();
 		fDocument = document;
 		fJSPTag = isJSPTag;
 		fHandler = handler;
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/TagScanner.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/TagScanner.java
index 33d9cb1..1d0d404 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/TagScanner.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/commentelement/util/TagScanner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/AbstractResourceEncodingDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/AbstractResourceEncodingDetector.java
index 2c00760..fcbcbea 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/AbstractResourceEncodingDetector.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/AbstractResourceEncodingDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ByteReader.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ByteReader.java
index d9ae470..3d50b3f 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ByteReader.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ByteReader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ContentDescriberForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ContentDescriberForXML.java
index 2c24f63..9e56e70 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ContentDescriberForXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/ContentDescriberForXML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java
index 9a002b7..d4542a4 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/EncodingParserConstants.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/NullMemento.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/NullMemento.java
index bc47024..23f7462 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/NullMemento.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/NullMemento.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLDeclDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLDeclDetector.java
index 20ab286..40d0fde 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLDeclDetector.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLDeclDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizer.java
index 3eab68b..76fb40b 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizer.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizer.java
@@ -1,7 +1,7 @@
-/* The following code was generated by JFlex 1.4 on 7/5/05 1:19 AM */
+/* The following code was generated by JFlex 1.4.2 on 7/28/08 9:29 AM */
 
 /*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 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
@@ -22,9 +22,9 @@
 
 /**
  * This class is a scanner generated by 
- * <a href="http://www.jflex.de/">JFlex</a> 1.4
- * on 7/5/05 1:19 AM from the specification file
- * <tt>D:/builds/Workspaces/PureHeadWTP_M7/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex</tt>
+ * <a href="http://www.jflex.de/">JFlex</a> 1.4.2
+ * on 7/28/08 9:29 AM from the specification file
+ * <tt>D:/workspaces/wtp301/workspace/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XMLHeadTokenizer.jFlex</tt>
  */
 public class XMLHeadTokenizer {
 
@@ -56,14 +56,14 @@
    * Translates characters to character classes
    */
   private static final String ZZ_CMAP_PACKED = 
-    "\11\0\1\6\1\11\2\0\1\10\22\0\1\6\1\0\1\32\2\0"+
-    "\1\34\1\0\1\33\24\0\1\12\1\7\1\31\1\13\3\0\1\26"+
-    "\1\27\1\20\1\0\1\30\1\0\1\23\2\0\1\16\1\15\1\25"+
-    "\1\24\2\0\1\21\1\22\2\0\1\17\1\0\1\14\12\0\1\26"+
-    "\1\27\1\20\1\0\1\30\1\0\1\23\2\0\1\16\1\15\1\25"+
-    "\1\24\2\0\1\21\1\22\2\0\1\17\1\0\1\14\102\0\1\4"+
-    "\3\0\1\5\17\0\1\3\16\0\1\1\20\0\1\3\16\0\1\1"+
-    "\1\2\170\0\1\2\ufe87\0";
+    "\1\11\10\0\1\6\1\10\2\0\1\7\22\0\1\6\1\0\1\33"+
+    "\2\0\1\35\1\0\1\34\24\0\1\13\1\12\1\32\1\14\3\0"+
+    "\1\27\1\30\1\21\1\0\1\31\1\0\1\24\2\0\1\17\1\16"+
+    "\1\26\1\25\2\0\1\22\1\23\2\0\1\20\1\0\1\15\12\0"+
+    "\1\27\1\30\1\21\1\0\1\31\1\0\1\24\2\0\1\17\1\16"+
+    "\1\26\1\25\2\0\1\22\1\23\2\0\1\20\1\0\1\15\102\0"+
+    "\1\4\3\0\1\5\17\0\1\3\16\0\1\1\20\0\1\3\16\0"+
+    "\1\1\1\2\170\0\1\2\ufe87\0";
 
   /** 
    * Translates characters to character classes
@@ -76,13 +76,16 @@
   private static final int [] ZZ_ACTION = zzUnpackAction();
 
   private static final String ZZ_ACTION_PACKED_0 =
-    "\7\0\11\1\2\2\1\1\1\3\1\4\1\5\1\6"+
-    "\1\5\1\7\1\5\1\7\1\5\1\10\2\11\1\12"+
-    "\1\13\4\0\1\14\3\0\1\15\1\0\1\16\1\17"+
-    "\11\0\1\20\4\0\1\21\1\0\1\22";
+    "\7\0\13\1\2\2\1\1\1\2\1\3\1\4\1\5"+
+    "\1\6\1\1\1\5\1\7\1\1\1\5\1\10\1\1"+
+    "\1\11\1\12\1\13\12\0\1\14\5\0\1\2\1\3"+
+    "\1\4\1\6\2\0\1\15\1\7\2\0\1\10\1\11"+
+    "\1\16\3\0\1\14\4\0\1\2\1\15\14\0\1\17"+
+    "\5\0\1\17\6\0\1\20\3\0\1\20\2\0\1\21"+
+    "\1\0\1\21\1\0";
 
   private static int [] zzUnpackAction() {
-    int [] result = new int[62];
+    int [] result = new int[111];
     int offset = 0;
     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
     return result;
@@ -129,9 +132,6 @@
   /** the textposition at the last accepting state */
   private int zzMarkedPos;
 
-  /** the textposition at the last state to be included in yytext */
-  private int zzPushbackPos;
-
   /** the current text position in the buffer */
   private int zzCurrentPos;
 
@@ -198,7 +198,7 @@
                 zzMarkedPos = 0;
 
                 /* the textposition at the last state to be included in yytext */
-                zzPushbackPos = 0;
+//                zzPushbackPos = 0;
 
                 /* the current text position in the buffer */
                 zzCurrentPos = 0;
@@ -305,7 +305,7 @@
     char [] map = new char[0x10000];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 148) {
+    while (i < 150) {
       int  count = packed.charAt(i++);
       char value = packed.charAt(i++);
       do map[j++] = value; while (--count > 0);
@@ -333,7 +333,6 @@
       zzEndRead-= zzStartRead;
       zzCurrentPos-= zzStartRead;
       zzMarkedPos-= zzStartRead;
-      zzPushbackPos-= zzStartRead;
       zzStartRead = 0;
     }
 
@@ -349,13 +348,23 @@
     int numRead = zzReader.read(zzBuffer, zzEndRead,
                                             zzBuffer.length-zzEndRead);
 
-    if (numRead < 0) {
-      return true;
-    }
-    else {
+    if (numRead > 0) {
       zzEndRead+= numRead;
       return false;
     }
+    // unlikely but not impossible: read 0 characters, but not at end of stream    
+    if (numRead == 0) {
+      int c = zzReader.read();
+      if (c == -1) {
+        return true;
+      } else {
+        zzBuffer[zzEndRead++] = (char) c;
+        return false;
+      }     
+    }
+
+	// numRead < 0
+    return true;
   }
 
     
@@ -386,7 +395,7 @@
     zzAtBOL  = true;
     zzAtEOF  = false;
     zzEndRead = zzStartRead = 0;
-    zzCurrentPos = zzMarkedPos = zzPushbackPos = 0;
+    zzCurrentPos = zzMarkedPos = 0;
     yychar = 0;
     zzLexicalState = YYINITIAL;
   }
@@ -540,6 +549,7 @@
           else {
             boolean eof = zzRefill();
             zzMarkedPosL = zzMarkedPos;
+            zzEndReadL = zzEndRead;
             zzBufferL = zzBuffer;
             if (eof) 
               zzAtBOL = false;
@@ -605,323 +615,733 @@
                 case 2: zzIsFinal = true; zzState = 9; break zzForNext;
                 case 3: zzIsFinal = true; zzState = 10; break zzForNext;
                 case 6: 
-                case 8: 
-                case 9: zzIsFinal = true; zzState = 11; break zzForNext;
-                case 10: zzIsFinal = true; zzState = 12; break zzForNext;
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 11; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 12; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 13; break zzForNext;
                 default: zzIsFinal = true; zzNoLookAhead = true; zzState = 7; break zzForNext;
               }
 
             case 2:
               switch (zzInput) {
-                case 11: zzIsFinal = true; zzState = 13; break zzForNext;
-                case 15: zzIsFinal = true; zzState = 14; break zzForNext;
-                case 16: zzIsFinal = true; zzState = 15; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 14; break zzForNext;
+                case 12: zzIsFinal = true; zzState = 15; break zzForNext;
+                case 16: zzIsFinal = true; zzState = 16; break zzForNext;
+                case 17: zzIsFinal = true; zzState = 17; break zzForNext;
                 default: zzIsFinal = true; zzNoLookAhead = true; zzState = 7; break zzForNext;
               }
 
             case 3:
               switch (zzInput) {
                 case 6: 
-                case 8: zzIsFinal = true; zzState = 17; break zzForNext;
-                case 9: zzIsFinal = true; zzState = 18; break zzForNext;
-                case 26: zzIsFinal = true; zzNoLookAhead = true; zzState = 19; break zzForNext;
-                case 27: zzIsFinal = true; zzNoLookAhead = true; zzState = 20; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 16; break zzForNext;
+                case 7: zzIsFinal = true; zzState = 19; break zzForNext;
+                case 8: zzIsFinal = true; zzState = 20; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 21; break zzForNext;
+                case 27: zzIsFinal = true; zzState = 22; break zzForNext;
+                case 28: zzIsFinal = true; zzState = 23; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
               }
 
             case 4:
               switch (zzInput) {
+                case 7: 
                 case 8: 
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 22; break zzForNext;
-                case 11: zzIsFinal = true; zzState = 23; break zzForNext;
-                case 26: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
-                case 27: zzIsFinal = true; zzState = 25; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 21; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 26; break zzForNext;
+                case 12: zzIsFinal = true; zzState = 27; break zzForNext;
+                case 27: zzIsFinal = true; zzState = 28; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
               }
 
             case 5:
               switch (zzInput) {
+                case 7: 
                 case 8: 
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 22; break zzForNext;
-                case 27: zzIsFinal = true; zzState = 26; break zzForNext;
-                case 28: zzIsFinal = true; zzState = 27; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 21; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 28: zzIsFinal = true; zzState = 28; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 29; break zzForNext;
+                case 29: zzIsFinal = true; zzState = 30; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
               }
 
             case 6:
               switch (zzInput) {
-                case 11: zzIsFinal = true; zzState = 27; break zzForNext;
+                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 12: zzIsFinal = true; zzState = 30; break zzForNext;
                 case 6: 
-                case 8: 
-                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 28; break zzForNext;
-                case 26: zzIsFinal = true; zzNoLookAhead = true; zzState = 29; break zzForNext;
-                case 27: zzIsFinal = true; zzState = 30; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 21; break zzForNext;
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 31; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 32; break zzForNext;
+                case 27: 
+                case 28: zzIsFinal = true; zzState = 33; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 24; break zzForNext;
               }
 
             case 8:
               switch (zzInput) {
-                case 2: zzIsFinal = true; zzNoLookAhead = true; zzState = 31; break zzForNext;
+                case 2: zzIsFinal = true; zzNoLookAhead = true; zzState = 34; break zzForNext;
                 default: break zzForAction;
               }
 
             case 9:
               switch (zzInput) {
-                case 1: zzIsFinal = true; zzNoLookAhead = true; zzState = 32; break zzForNext;
+                case 1: zzIsFinal = true; zzNoLookAhead = true; zzState = 35; break zzForNext;
                 default: break zzForAction;
               }
 
             case 10:
               switch (zzInput) {
-                case 4: zzState = 33; break zzForNext;
+                case 4: zzState = 36; break zzForNext;
                 default: break zzForAction;
               }
 
             case 11:
               switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: zzState = 34; break zzForNext;
-                case 10: zzState = 35; break zzForNext;
+                case 7: 
+                case 8: zzState = 37; break zzForNext;
+                case 9: zzState = 38; break zzForNext;
+                case 11: zzState = 39; break zzForNext;
                 default: break zzForAction;
               }
 
             case 12:
               switch (zzInput) {
-                case 11: zzState = 36; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 37; break zzForNext;
+                case 11: zzState = 39; break zzForNext;
                 default: break zzForAction;
               }
 
             case 13:
               switch (zzInput) {
-                case 25: zzIsFinal = true; zzNoLookAhead = true; zzState = 37; break zzForNext;
+                case 9: zzState = 40; break zzForNext;
+                case 12: zzState = 41; break zzForNext;
                 default: break zzForAction;
               }
 
             case 14:
               switch (zzInput) {
-                case 16: zzState = 38; break zzForNext;
+                case 12: zzState = 42; break zzForNext;
+                case 16: zzState = 43; break zzForNext;
+                case 17: zzState = 44; break zzForNext;
                 default: break zzForAction;
               }
 
             case 15:
               switch (zzInput) {
-                case 21: zzState = 39; break zzForNext;
+                case 9: zzState = 45; break zzForNext;
+                case 26: zzIsFinal = true; zzState = 46; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 16:
+              switch (zzInput) {
+                case 9: zzState = 47; break zzForNext;
+                case 17: zzState = 48; break zzForNext;
                 default: break zzForAction;
               }
 
             case 17:
               switch (zzInput) {
-                case 6: 
-                case 8: zzIsFinal = true; zzState = 17; break zzForNext;
-                case 9: zzState = 40; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 16; break zzForNext;
+                case 9: zzState = 49; break zzForNext;
+                case 22: zzState = 50; break zzForNext;
+                default: break zzForAction;
               }
 
-            case 18:
+            case 19:
               switch (zzInput) {
                 case 6: 
-                case 8: zzIsFinal = true; zzState = 17; break zzForNext;
-                case 9: zzState = 40; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 16; break zzForNext;
+                case 7: zzIsFinal = true; break zzForNext;
+                case 8: zzState = 51; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 52; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
+              }
+
+            case 20:
+              switch (zzInput) {
+                case 6: 
+                case 7: zzIsFinal = true; zzState = 19; break zzForNext;
+                case 8: zzState = 51; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 52; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
+              }
+
+            case 21:
+              switch (zzInput) {
+                case 27: zzIsFinal = true; zzState = 22; break zzForNext;
+                case 28: zzIsFinal = true; zzState = 23; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 51; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 22:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 53; break zzForNext;
+                default: break zzForAction;
               }
 
             case 23:
               switch (zzInput) {
-                case 25: zzIsFinal = true; zzNoLookAhead = true; zzState = 41; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 54; break zzForNext;
                 default: break zzForAction;
               }
 
             case 25:
               switch (zzInput) {
-                case 10: zzState = 42; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 55; break zzForNext;
                 default: break zzForAction;
               }
 
             case 26:
               switch (zzInput) {
-                case 10: zzState = 42; break zzForNext;
+                case 7: 
+                case 8: 
+                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 27: zzIsFinal = true; zzState = 28; break zzForNext;
+                case 12: zzState = 56; break zzForNext;
                 default: break zzForAction;
               }
 
             case 27:
               switch (zzInput) {
-                case 25: zzIsFinal = true; zzNoLookAhead = true; zzState = 43; break zzForNext;
+                case 9: zzState = 57; break zzForNext;
+                case 26: zzIsFinal = true; zzState = 58; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 28:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 59; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 29:
+              switch (zzInput) {
+                case 7: 
+                case 8: 
+                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 28: zzIsFinal = true; zzState = 28; break zzForNext;
+                case 29: zzState = 60; break zzForNext;
                 default: break zzForAction;
               }
 
             case 30:
               switch (zzInput) {
-                case 10: zzState = 42; break zzForNext;
+                case 26: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 9: zzState = 61; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 31:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 62; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 32:
+              switch (zzInput) {
+                case 11: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 31; break zzForNext;
+                case 27: 
+                case 28: zzIsFinal = true; zzState = 33; break zzForNext;
+                case 12: zzState = 60; break zzForNext;
                 default: break zzForAction;
               }
 
             case 33:
               switch (zzInput) {
-                case 5: zzIsFinal = true; zzNoLookAhead = true; zzState = 44; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 34:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: zzState = 34; break zzForNext;
-                case 10: zzState = 35; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 35:
-              switch (zzInput) {
-                case 11: zzState = 36; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 63; break zzForNext;
                 default: break zzForAction;
               }
 
             case 36:
               switch (zzInput) {
-                case 12: zzState = 45; break zzForNext;
+                case 5: zzIsFinal = true; zzNoLookAhead = true; zzState = 64; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 37:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 38; break zzForNext;
+                case 11: zzState = 39; break zzForNext;
                 default: break zzForAction;
               }
 
             case 38:
               switch (zzInput) {
-                case 17: zzState = 46; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzState = 37; break zzForNext;
+                case 11: zzState = 39; break zzForNext;
+                case 9: zzState = 65; break zzForNext;
                 default: break zzForAction;
               }
 
             case 39:
               switch (zzInput) {
-                case 22: zzState = 47; break zzForNext;
+                case 9: zzState = 40; break zzForNext;
+                case 12: zzState = 41; break zzForNext;
                 default: break zzForAction;
               }
 
             case 40:
               switch (zzInput) {
-                case 6: 
-                case 8: zzIsFinal = true; zzState = 17; break zzForNext;
-                case 9: zzState = 40; break zzForNext;
-                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 16; break zzForNext;
+                case 12: zzState = 41; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 41:
+              switch (zzInput) {
+                case 9: zzState = 66; break zzForNext;
+                case 13: zzState = 67; break zzForNext;
+                default: break zzForAction;
               }
 
             case 42:
               switch (zzInput) {
-                case 27: zzIsFinal = true; zzNoLookAhead = true; zzState = 22; break zzForNext;
+                case 9: zzState = 45; break zzForNext;
+                case 26: zzIsFinal = true; zzState = 46; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 43:
+              switch (zzInput) {
+                case 9: zzState = 47; break zzForNext;
+                case 17: zzState = 48; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 44:
+              switch (zzInput) {
+                case 9: zzState = 49; break zzForNext;
+                case 22: zzState = 50; break zzForNext;
                 default: break zzForAction;
               }
 
             case 45:
               switch (zzInput) {
-                case 13: zzState = 48; break zzForNext;
+                case 26: zzIsFinal = true; zzState = 46; break zzForNext;
                 default: break zzForAction;
               }
 
             case 46:
               switch (zzInput) {
-                case 18: zzState = 49; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 68; break zzForNext;
                 default: break zzForAction;
               }
 
             case 47:
               switch (zzInput) {
-                case 20: zzState = 50; break zzForNext;
+                case 17: zzState = 48; break zzForNext;
                 default: break zzForAction;
               }
 
             case 48:
               switch (zzInput) {
-                case 14: zzState = 51; break zzForNext;
+                case 9: zzState = 69; break zzForNext;
+                case 18: zzState = 70; break zzForNext;
                 default: break zzForAction;
               }
 
             case 49:
               switch (zzInput) {
-                case 19: zzState = 52; break zzForNext;
+                case 22: zzState = 50; break zzForNext;
                 default: break zzForAction;
               }
 
             case 50:
               switch (zzInput) {
-                case 23: zzState = 53; break zzForNext;
+                case 9: zzState = 71; break zzForNext;
+                case 23: zzState = 72; break zzForNext;
                 default: break zzForAction;
               }
 
             case 51:
               switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: zzIsFinal = true; zzState = 54; break zzForNext;
-                default: break zzForAction;
+                case 7: zzIsFinal = true; zzState = 19; break zzForNext;
+                case 8: break zzForNext;
+                case 9: zzIsFinal = true; zzState = 52; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
               }
 
             case 52:
               switch (zzInput) {
-                case 20: zzState = 55; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 53:
-              switch (zzInput) {
-                case 19: zzState = 56; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 54:
-              switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: zzIsFinal = true; zzState = 54; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 55:
-              switch (zzInput) {
-                case 21: zzState = 57; break zzForNext;
-                default: break zzForAction;
+                case 7: zzIsFinal = true; zzState = 19; break zzForNext;
+                case 8: zzState = 51; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 73; break zzForNext;
+                default: zzIsFinal = true; zzNoLookAhead = true; zzState = 18; break zzForNext;
               }
 
             case 56:
               switch (zzInput) {
-                case 21: zzState = 58; break zzForNext;
+                case 9: zzState = 57; break zzForNext;
+                case 26: zzIsFinal = true; zzState = 58; break zzForNext;
                 default: break zzForAction;
               }
 
             case 57:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: zzState = 57; break zzForNext;
-                case 7: zzIsFinal = true; zzState = 59; break zzForNext;
+                case 26: zzIsFinal = true; zzState = 58; break zzForNext;
                 default: break zzForAction;
               }
 
             case 58:
               switch (zzInput) {
-                case 24: zzState = 60; break zzForNext;
-                default: break zzForAction;
-              }
-
-            case 59:
-              switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: zzIsFinal = true; zzState = 59; break zzForNext;
+                case 9: zzIsFinal = true; zzNoLookAhead = true; zzState = 74; break zzForNext;
                 default: break zzForAction;
               }
 
             case 60:
               switch (zzInput) {
-                case 6: 
-                case 8: 
-                case 9: zzState = 60; break zzForNext;
-                case 7: zzIsFinal = true; zzState = 61; break zzForNext;
+                case 26: zzIsFinal = true; zzState = 25; break zzForNext;
+                case 9: zzState = 61; break zzForNext;
                 default: break zzForAction;
               }
 
             case 61:
               switch (zzInput) {
+                case 26: zzIsFinal = true; zzState = 25; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 65:
+              switch (zzInput) {
                 case 6: 
-                case 8: 
-                case 9: zzIsFinal = true; zzState = 61; break zzForNext;
+                case 7: 
+                case 8: zzState = 37; break zzForNext;
+                case 11: zzState = 39; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 66:
+              switch (zzInput) {
+                case 13: zzState = 67; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 67:
+              switch (zzInput) {
+                case 9: zzState = 75; break zzForNext;
+                case 14: zzState = 76; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 69:
+              switch (zzInput) {
+                case 18: zzState = 70; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 70:
+              switch (zzInput) {
+                case 9: zzState = 77; break zzForNext;
+                case 19: zzState = 78; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 71:
+              switch (zzInput) {
+                case 23: zzState = 72; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 72:
+              switch (zzInput) {
+                case 9: zzState = 79; break zzForNext;
+                case 21: zzState = 80; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 73:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 51; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 75:
+              switch (zzInput) {
+                case 14: zzState = 76; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 76:
+              switch (zzInput) {
+                case 9: zzState = 81; break zzForNext;
+                case 15: zzState = 82; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 77:
+              switch (zzInput) {
+                case 19: zzState = 78; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 78:
+              switch (zzInput) {
+                case 9: zzState = 83; break zzForNext;
+                case 20: zzState = 84; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 79:
+              switch (zzInput) {
+                case 21: zzState = 80; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 80:
+              switch (zzInput) {
+                case 9: zzState = 85; break zzForNext;
+                case 24: zzState = 86; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 81:
+              switch (zzInput) {
+                case 15: zzState = 82; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 82:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 87; break zzForNext;
+                case 9: zzState = 88; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 83:
+              switch (zzInput) {
+                case 20: zzState = 84; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 84:
+              switch (zzInput) {
+                case 9: zzState = 89; break zzForNext;
+                case 21: zzState = 90; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 85:
+              switch (zzInput) {
+                case 24: zzState = 86; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 86:
+              switch (zzInput) {
+                case 9: zzState = 91; break zzForNext;
+                case 20: zzState = 92; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 87:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                case 9: zzIsFinal = true; zzState = 93; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 88:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 87; break zzForNext;
+                case 9: zzState = 94; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 89:
+              switch (zzInput) {
+                case 21: zzState = 90; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 90:
+              switch (zzInput) {
+                case 9: zzState = 95; break zzForNext;
+                case 22: zzState = 96; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 91:
+              switch (zzInput) {
+                case 20: zzState = 92; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 92:
+              switch (zzInput) {
+                case 9: zzState = 97; break zzForNext;
+                case 22: zzState = 98; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 93:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 87; break zzForNext;
+                case 9: zzState = 94; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 94:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 87; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 95:
+              switch (zzInput) {
+                case 22: zzState = 96; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 96:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 99; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 100; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 97:
+              switch (zzInput) {
+                case 22: zzState = 98; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 98:
+              switch (zzInput) {
+                case 9: zzState = 101; break zzForNext;
+                case 25: zzState = 102; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 99:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 96; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 100; break zzForNext;
+                case 9: zzState = 103; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 100:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 104; break zzForNext;
+                case 9: zzState = 105; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 101:
+              switch (zzInput) {
+                case 25: zzState = 102; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 102:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: break zzForNext;
+                case 9: zzState = 106; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 107; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 103:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 96; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 104:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzState = 100; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 105:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 104; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 106:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 102; break zzForNext;
+                case 10: zzIsFinal = true; zzState = 107; break zzForNext;
+                case 9: zzState = 108; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 107:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 109; break zzForNext;
+                case 9: zzState = 110; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 108:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzState = 102; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 109:
+              switch (zzInput) {
+                case 9: zzIsFinal = true; zzState = 107; break zzForNext;
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; break zzForNext;
+                default: break zzForAction;
+              }
+
+            case 110:
+              switch (zzInput) {
+                case 6: 
+                case 7: 
+                case 8: zzIsFinal = true; zzState = 109; break zzForNext;
                 default: break zzForAction;
               }
 
@@ -944,83 +1364,81 @@
       zzMarkedPos = zzMarkedPosL;
 
       switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
-        case 10: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}
-          }
-        case 19: break;
-        case 15: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
-          }
-        case 20: break;
-        case 4: 
-          { yybegin(SQ_STRING); string.setLength(0);
-          }
-        case 21: break;
-        case 5: 
-          { string.append( yytext() );
-          }
-        case 22: break;
-        case 1: 
-          { if (yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}
-          }
-        case 23: break;
-        case 11: 
-          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;}
-          }
-        case 24: break;
-        case 6: 
-          { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 25: break;
-        case 8: 
-          { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;
-          }
-        case 26: break;
-        case 9: 
-          { yypushback(1);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
-          }
-        case 27: break;
-        case 7: 
-          { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;
-          }
-        case 28: break;
-        case 13: 
-          { yypushback(2); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 29: break;
-        case 16: 
-          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}
-          }
-        case 30: break;
-        case 2: 
-          { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);
-          }
-        case 31: break;
-        case 18: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;
-          }
-        case 32: break;
-        case 17: 
-          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;
-          }
-        case 33: break;
-        case 14: 
-          { yypushback(2);popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
-          }
-        case 34: break;
-        case 3: 
-          { yybegin(DQ_STRING); string.setLength(0);
-          }
-        case 35: break;
         case 12: 
           { yybegin(YYINITIAL); hasMore = false; return XMLHeadTokenizerConstants.XMLDeclEnd;
           }
-        case 36: break;
+        case 18: break;
+        case 14: 
+          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF83ByteBOM;}
+          }
+        case 19: break;
+        case 9: 
+          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTermintatedUnDelimitedStringValue;
+          }
+        case 20: break;
+        case 2: 
+          { yypushback(1); yybegin(UnDelimitedString); string.setLength(0);
+          }
+        case 21: break;
+        case 7: 
+          { popState(); valueText = string.toString(); return EncodingParserConstants.StringValue;
+          }
+        case 22: break;
+        case 10: 
+          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16BE;}
+          }
+        case 23: break;
+        case 1: 
+          { if(yychar > MAX_TO_SCAN) {hasMore=false; return EncodingParserConstants.MAX_CHARS_REACHED;}
+          }
+        case 24: break;
+        case 6: 
+          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
+          }
+        case 25: break;
+        case 5: 
+          { string.append( yytext() );
+          }
+        case 26: break;
+        case 13: 
+          { yypushback(yylength()); popState(); valueText = string.toString(); return EncodingParserConstants.InvalidTerminatedStringValue;
+          }
+        case 27: break;
+        case 4: 
+          { yybegin(SQ_STRING); string.setLength(0);
+          }
+        case 28: break;
+        case 3: 
+          { yybegin(DQ_STRING); string.setLength(0);
+          }
+        case 29: break;
+        case 8: 
+          { yypushback(yylength());popState(); valueText = string.toString(); return EncodingParserConstants.UnDelimitedStringValue;
+          }
+        case 30: break;
+        case 17: 
+          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDelEncoding;
+          }
+        case 31: break;
+        case 15: 
+          { if (yychar == 0 ) {yybegin(ST_XMLDecl); return XMLHeadTokenizerConstants.XMLDeclStart;}
+          }
+        case 32: break;
+        case 11: 
+          { if (yychar == 0 ) {hasMore = false; return EncodingParserConstants.UTF16LE;}
+          }
+        case 33: break;
+        case 16: 
+          { pushCurrentState(); yybegin(QuotedAttributeValue); return XMLHeadTokenizerConstants.XMLDeclVersion;
+          }
+        case 34: break;
         default: 
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
             zzAtEOF = true;
             zzDoEOF();
-              { hasMore = false; return EncodingParserConstants.EOF; }
+              {
+                hasMore = false; return EncodingParserConstants.EOF;
+              }
           } 
           else {
             zzScanError(ZZ_NO_MATCH);
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizerConstants.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizerConstants.java
index 3ebd28b..ccf23f8 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizerConstants.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLHeadTokenizerConstants.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLResourceEncodingDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLResourceEncodingDetector.java
index 3a49524..b1690f3 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLResourceEncodingDetector.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/contenttype/XMLResourceEncodingDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -14,6 +14,7 @@
 
 import java.io.IOException;
 
+import org.eclipse.core.runtime.content.IContentDescription;
 import org.eclipse.wst.sse.core.internal.encoding.EncodingMemento;
 import org.eclipse.wst.sse.core.internal.encoding.IResourceCharsetDetector;
 
@@ -31,16 +32,13 @@
 			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
 			fEncodingMemento.setUTF83ByteBOMUsed(true);
 		}
-
-		else if (tokenType == EncodingParserConstants.UTF16BE) {
-			canHandleAsUnicodeStream = true;
-			String enc = "UTF-16BE"; //$NON-NLS-1$
-			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
-		}
-		else if (tokenType == EncodingParserConstants.UTF16LE) {
+		else if (tokenType == EncodingParserConstants.UTF16BE || tokenType == EncodingParserConstants.UTF16LE) {
 			canHandleAsUnicodeStream = true;
 			String enc = "UTF-16"; //$NON-NLS-1$
+			byte[] bom = (tokenType == EncodingParserConstants.UTF16BE) ? IContentDescription.BOM_UTF_16BE : IContentDescription.BOM_UTF_16LE;
 			createEncodingMemento(enc, EncodingMemento.DETECTED_STANDARD_UNICODE_BYTES);
+			fEncodingMemento.setUnicodeStream(true);
+			fEncodingMemento.setUnicodeBOM(bom);
 		}
 		return canHandleAsUnicodeStream;
 	}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/AttrImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/AttrImpl.java
index 6cd86fa..cf2e968 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/AttrImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/AttrImpl.java
@@ -1,20 +1,24 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
 
 
 import java.util.Iterator;
+import java.util.List;
 
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
 import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
@@ -23,6 +27,10 @@
 import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
 import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
+import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
 import org.eclipse.wst.xml.core.internal.provisional.IXMLCharEntity;
 import org.eclipse.wst.xml.core.internal.provisional.IXMLNamespace;
 import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
@@ -31,6 +39,7 @@
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+import org.w3c.dom.UserDataHandler;
 
 
 /**
@@ -75,6 +84,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		AttrImpl cloned = new AttrImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
@@ -88,6 +98,17 @@
 		if (elementDecl == null)
 			return null;
 		CMNamedNodeMap attributes = elementDecl.getAttributes();
+		CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(attributes);
+		List nodes = ModelQueryUtil.getModelQuery(getOwnerDocument()).getAvailableContent(getOwnerElement(), elementDecl, ModelQuery.INCLUDE_ATTRIBUTES);
+		for (int k = 0; k < nodes.size(); k++) {
+			CMNode cmnode = (CMNode) nodes.get(k);
+			if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
+				allAttributes.put(cmnode);
+			}
+		}
+		attributes = allAttributes;
+		
+
 		if (attributes == null)
 			return null;
 		return (CMAttributeDeclaration) attributes.getNamedItem(getName());
@@ -282,7 +303,12 @@
 	 * @return boolean
 	 */
 	public boolean getSpecified() {
-		return true;
+		// if there is no underlying document region, 
+		// then this attributes value has not really be specified
+		// yet in the document, and any returned values, such as 
+		// an empty string or a default value are being supplied
+		// as per spec, not per what's in the users document.
+		return this.valueRegion != null;
 	}
 
 	/**
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CDATASectionImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CDATASectionImpl.java
index 13e3136..563eeec 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CDATASectionImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CDATASectionImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -23,6 +27,7 @@
 import org.w3c.dom.CDATASection;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Node;
+import org.w3c.dom.UserDataHandler;
 
 
 /**
@@ -56,6 +61,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		CDATASectionImpl cloned = new CDATASectionImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CMNodeUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CMNodeUtil.java
index b10f6dd..ae533ab 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CMNodeUtil.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CMNodeUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CharacterDataImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CharacterDataImpl.java
index 0b8e234..6bf9c65 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CharacterDataImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CharacterDataImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CommentImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CommentImpl.java
index 988bb57..f834768 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CommentImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/CommentImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -23,6 +27,7 @@
 import org.w3c.dom.Comment;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Node;
+import org.w3c.dom.UserDataHandler;
 
 
 /**
@@ -62,6 +67,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		CommentImpl cloned = new CommentImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DOMModelImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DOMModelImpl.java
index 3501ed2..d2149b9 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DOMModelImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DOMModelImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java
index 06058a5..cde882c 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentFragmentImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -16,6 +20,7 @@
 
 import org.w3c.dom.DocumentFragment;
 import org.w3c.dom.Node;
+import org.w3c.dom.UserDataHandler;
 
 
 /**
@@ -51,6 +56,8 @@
 		DocumentFragmentImpl cloned = new DocumentFragmentImpl(this);
 		if (deep)
 			cloneChildNodes(cloned, deep);
+		
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentImpl.java
index 5d676ae..3c862d2 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -49,6 +53,7 @@
 import org.w3c.dom.Notation;
 import org.w3c.dom.ProcessingInstruction;
 import org.w3c.dom.Text;
+import org.w3c.dom.UserDataHandler;
 import org.w3c.dom.ranges.DocumentRange;
 import org.w3c.dom.ranges.Range;
 import org.w3c.dom.traversal.DocumentTraversal;
@@ -208,6 +213,8 @@
 	 * Given that the key is only unique within a document an adopted node
 	 * needs to be given a new key, but what does it mean for the application?
 	 * 
+	 * TODO: Needs to notify UserDataHandlers for the node if any
+	 * 
 	 * @param source
 	 *            The node to move into this document.
 	 * @return The adopted node, or <code>null</code> if this operation
@@ -926,6 +933,9 @@
 		NodeImpl imported = (NodeImpl) node.cloneNode(deep);
 		if (imported == null)
 			return null;
+		//successful import, notify UserDataHandlers if any
+		NodeImpl nodeToNotify=(NodeImpl) node;
+		nodeToNotify.notifyUserDataHandlers(UserDataHandler.NODE_IMPORTED, null);
 		imported.setOwnerDocument(this, deep);
 		return imported;
 	}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapter.java
index 1e5ff4c..d216704 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapterImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapterImpl.java
index 4f6d8b3..29c3e95 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapterImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeAdapterImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeImpl.java
index c92f25f..769543f 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/DocumentTypeImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -20,6 +24,7 @@
 import org.w3c.dom.DOMException;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
+import org.w3c.dom.UserDataHandler;
 
 
 /**
@@ -62,6 +67,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		DocumentTypeImpl cloned = new DocumentTypeImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ElementImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ElementImpl.java
index 4fc2226..8db82f1 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ElementImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ElementImpl.java
@@ -1,15 +1,20 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
+ *    
  *     Valentin Baciu - https://bugs.eclipse.org/bugs/show_bug.cgi?id=139552
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -39,6 +44,7 @@
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
+import org.w3c.dom.UserDataHandler;
 import org.w3c.dom.traversal.NodeFilter;
 import org.w3c.dom.traversal.NodeIterator;
 
@@ -212,6 +218,8 @@
 		ElementImpl cloned = new ElementImpl(this);
 		if (deep)
 			cloneChildNodes(cloned, deep);
+		
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityImpl.java
index 47558fb..924546d 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -17,6 +21,7 @@
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Entity;
 import org.w3c.dom.Node;
+import org.w3c.dom.UserDataHandler;
 
 /**
  * EntityImpl class
@@ -61,6 +66,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		EntityImpl cloned = new EntityImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityReferenceImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityReferenceImpl.java
index 366ecc0..f8a8071 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityReferenceImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/EntityReferenceImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -16,6 +20,7 @@
 
 import org.w3c.dom.EntityReference;
 import org.w3c.dom.Node;
+import org.w3c.dom.UserDataHandler;
 
 /**
  * EntityReference class
@@ -54,6 +59,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		EntityReferenceImpl cloned = new EntityReferenceImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/InvalidCharacterException.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/InvalidCharacterException.java
index a8166ed..1a3a079 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/InvalidCharacterException.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/InvalidCharacterException.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/JSPTag.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/JSPTag.java
index 01c7bbb..6f2de44 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/JSPTag.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/JSPTag.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ModelParserAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ModelParserAdapter.java
index e36d4a1..0b7e13d 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ModelParserAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ModelParserAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeContainer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeContainer.java
index 64296b7..f653163 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeContainer.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeImpl.java
index f5e6599..a219cff 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NodeImpl.java
@@ -1,19 +1,27 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
 
 
+import java.io.Serializable;
+import java.util.Enumeration;
+import java.util.Hashtable;
+
 import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
 import org.eclipse.wst.sse.core.internal.provisional.AbstractNotifier;
 import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
@@ -33,7 +41,6 @@
 import org.w3c.dom.TypeInfo;
 import org.w3c.dom.UserDataHandler;
 
-
 /**
  * NodeImpl class
  */
@@ -48,6 +55,8 @@
 	private DocumentImpl ownerDocument = null;
 	private NodeImpl parentNode = null;
 	private NodeImpl previousSibling = null;
+	
+	private Hashtable userDataTable=null;
 
 	/**
 	 * NodeImpl constructor
@@ -854,13 +863,6 @@
 	/**
 	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
 	 */
-	public Object getUserData(String key) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
 	public boolean isDefaultNamespace(String namespaceURI) {
 		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
 	}
@@ -903,13 +905,6 @@
 	/**
 	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
 	 */
-	public Object setUserData(String key, Object data, UserDataHandler handler) {
-		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
-	}
-
-	/**
-	 * NOT IMPLEMENTED, is defined here in preparation of DOM Level 3
-	 */
 	public TypeInfo getSchemaTypeInfo() {
 		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
 	}
@@ -920,6 +915,149 @@
 	public boolean isId() {
 		throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "Not implemented in this version."); //$NON-NLS-1$
 	}
+	
+	/**
+	 * Retrieves the object for a node associated to a key.
+	 * 
+	 * @param key The key associated with the object.
+	 * @return object The object for this node, associated with the key passed
+	 * or null if there was none set.
+	 *
+	 * @since DOM Level 3
+	 */
+	public Object getUserData(String key) {
+		
+		if (key==null) return null;
+		
+		if (userDataTable!=null) {
+			UserDataAndHandler userDataAndHandler = (UserDataAndHandler) userDataTable.get(key);
+			if (userDataAndHandler!=null) {
+				return userDataAndHandler.getData();
+			} 
+		}
+		return null;	
+	}
+	
+	/**
+	 * Sets the user data and handler for a key
+	 * 
+	 * @param key The key associated with the object.
+	 * @param object The object for this node, associated with the key passed.
+	 * Null passed removes the existing association to the key.
+	 * @param handler UserDataHandler for the userdata associated with this key
+	 * @return Object The previous userdata object if set, null if it was none.  
+	 * 
+	 * @since DOM Level 3
+	 */
+	public Object setUserData(String key, Object data, UserDataHandler handler) {
 
+		UserDataAndHandler previousDataAndHandler=null;
+		
+		//return immediately for null keys
+		if (key ==null) return null;
+		
+		//remove association for the key if data is null
+		if (data==null) {
+			if (userDataTable==null) return null;
+			
+			//see if there is a previous value set
+			previousDataAndHandler = (UserDataAndHandler) userDataTable.get(key);
+			if (previousDataAndHandler!=null) {
+				userDataTable.remove(key);
+				return previousDataAndHandler.getData();
+			}
+			//there is no previous value found
+			return null;
+		}
+		
+		//if data passed is not null
+		//the first data in the hashtable
+		if (userDataTable==null) {
+			userDataTable=new Hashtable();
+			UserDataAndHandler userDataAndHandler=new UserDataAndHandler(data,handler);
+			userDataTable.put(key,userDataAndHandler);
+			return null;
+			//there is already data in the hashtable
+		} else {
+			UserDataAndHandler userDataAndHandler=new UserDataAndHandler(data,handler);
+			previousDataAndHandler=(UserDataAndHandler) userDataTable.put(key,userDataAndHandler);
+			
+			//if we replace a value
+			if (previousDataAndHandler!=null)
+				return previousDataAndHandler.getData();
+			else {
+				return null;
+			}
+		}
+	}
+	
+	/**
+	 * Notifies the UserDataHandlers of the node.
+	 * 
+	 * @param operation
+	 * @param destination
+	 */
+	protected void notifyUserDataHandlers(short operation, Node destination) {
+		
+		if (operation!=UserDataHandler.NODE_ADOPTED 
+				& operation!=UserDataHandler.NODE_CLONED
+				& operation!=UserDataHandler.NODE_DELETED
+				& operation!=UserDataHandler.NODE_IMPORTED
+				& operation!=UserDataHandler.NODE_RENAMED)
+			return; 
+			
+		if (userDataTable!=null) {
+			Enumeration keys=userDataTable.keys();
+			while (keys.hasMoreElements()) {
+				String key=(String) keys.nextElement(); //should always be a string
+				UserDataAndHandler dataAndHandler = (UserDataAndHandler) userDataTable.get(key);
+				if (dataAndHandler!=null) {
+					UserDataHandler dataHandler=dataAndHandler.getHandler();
+					if (dataHandler!=null) {
+						dataHandler.handle(operation, key, dataAndHandler.getData(), this, destination);
+					}
+				}
+			}
+		}
+	}
+	
+	/**
+	 * 
+	 * Class for user data and UserDataHandler
+	 */
+	protected class UserDataAndHandler implements Serializable {
 
+		/**
+		 * Generated Serial ID
+		 */
+		private static final long serialVersionUID = 4860521237315444840L;
+		/**
+		 * Generated serialization version
+		 */
+		
+		private Object data;
+		private UserDataHandler handler;
+		
+		public UserDataAndHandler(Object data, UserDataHandler handler)
+		{
+			this.data=data;
+			this.handler=handler;
+		}
+
+		public Object getData() {
+			return data;
+		}
+
+		public void setData(Object data) {
+			this.data = data;
+		}
+
+		public UserDataHandler getHandler() {
+			return handler;
+		}
+
+		public void setHandler(UserDataHandler handler) {
+			this.handler = handler;
+		}
+	}
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NotationImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NotationImpl.java
index e048949..0dbbfe0 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NotationImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/NotationImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -17,6 +21,7 @@
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Node;
 import org.w3c.dom.Notation;
+import org.w3c.dom.UserDataHandler;
 
 /**
  * NotationImpl class
@@ -59,6 +64,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		NotationImpl cloned = new NotationImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ProcessingInstructionImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ProcessingInstructionImpl.java
index 2e6f804..7a1420b 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ProcessingInstructionImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/ProcessingInstructionImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -23,6 +27,7 @@
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Node;
 import org.w3c.dom.ProcessingInstruction;
+import org.w3c.dom.UserDataHandler;
 
 
 /**
@@ -64,6 +69,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		ProcessingInstructionImpl cloned = new ProcessingInstructionImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/RangeImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/RangeImpl.java
index 24abe9e..f60336e 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/RangeImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/RangeImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/SourceValidator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/SourceValidator.java
index d739a36..66dd565 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/SourceValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/SourceValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionChecker.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionChecker.java
index 5252318..547c8f3 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionChecker.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionChecker.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionContainer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionContainer.java
index 8c0222c..1a53784 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionContainer.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionManagementException.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionManagementException.java
index 54469b1..90fecbe 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionManagementException.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionManagementException.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionProxy.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionProxy.java
index 37e39ff..cd11447 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionProxy.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionProxy.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionUtil.java
index 036800f..4bd9b81 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionUtil.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/StructuredDocumentRegionUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TagAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TagAdapter.java
index 55d8f98..f49ff7b 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TagAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TagAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java
index 255604c..d386910 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/TextImpl.java
@@ -1,14 +1,18 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
+ *     
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
  *     
+ *     Balazs Banfai: Bug 154737 getUserData/setUserData support for Node
+ *     https://bugs.eclipse.org/bugs/show_bug.cgi?id=154737
+ *     
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.document;
 
@@ -24,6 +28,7 @@
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.Text;
+import org.w3c.dom.UserDataHandler;
 
 
 /**
@@ -140,7 +145,7 @@
 
 		TextImpl text = (TextImpl) newText;
 		String newSource = text.getSource();
-		if (newSource == null && newSource.length() == 0)
+		if (newSource == null || newSource.length() == 0)
 			return;
 		String source = getSource();
 		if (source != null)
@@ -158,6 +163,7 @@
 	 */
 	public Node cloneNode(boolean deep) {
 		TextImpl cloned = new TextImpl(this);
+		notifyUserDataHandlers(UserDataHandler.NODE_CLONED, cloned);
 		return cloned;
 	}
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLGeneratorImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLGeneratorImpl.java
index b5708a6..17c7eb9 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLGeneratorImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLGeneratorImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifier.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifier.java
index bc6779b..9a3e255 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifier.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifier.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifierImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifierImpl.java
index 7e9149a..a518f84 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifierImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelNotifierImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelParser.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelParser.java
index 51032e1..06d25f8 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelParser.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelUpdater.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelUpdater.java
index 1cbbc25..a4efc2d 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelUpdater.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/document/XMLModelUpdater.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentCharsetDetector.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentCharsetDetector.java
index cf328de..697f649 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentCharsetDetector.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentCharsetDetector.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentLoader.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentLoader.java
index 2b8dea8..2316b34 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentLoader.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/encoding/XMLDocumentLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/DefaultXMLPartitionFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/DefaultXMLPartitionFormatter.java
new file mode 100644
index 0000000..a3785cf
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/DefaultXMLPartitionFormatter.java
@@ -0,0 +1,1683 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.formatter;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.text.BadLocationException;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.Position;
+import org.eclipse.text.edits.DeleteEdit;
+import org.eclipse.text.edits.InsertEdit;
+import org.eclipse.text.edits.MultiTextEdit;
+import org.eclipse.text.edits.ReplaceEdit;
+import org.eclipse.text.edits.TextEdit;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
+import org.eclipse.wst.xml.core.internal.Logger;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
+import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
+import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
+import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
+import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class DefaultXMLPartitionFormatter {
+	/**
+	 * Just a small container class that holds a DOMNode & documentRegion that
+	 * should represent each other.
+	 */
+	protected class DOMRegion {
+		public IDOMNode domNode;
+		public IStructuredDocumentRegion documentRegion;
+	}
+
+	static private final String PRESERVE = "preserve";//$NON-NLS-1$
+	static private final String COLLAPSE = "collapse";//$NON-NLS-1$
+	static private final String REPLACE = "replace";//$NON-NLS-1$
+	static private final String PRESERVE_QUOTED = "\"preserve\"";//$NON-NLS-1$
+	static private final String XML_SPACE = "xml:space";//$NON-NLS-1$
+	static private final String XSL_NAMESPACE = "http://www.w3.org/1999/XSL/Transform"; //$NON-NLS-1$
+	static private final String XSL_ATTRIBUTE = "attribute"; //$NON-NLS-1$
+	static private final String XSL_TEXT = "text"; //$NON-NLS-1$
+	static private final String SPACE = " "; //$NON-NLS-1$
+	static private final String PROPERTY_WHITESPACE_FACET = "org.eclipse.wst.xsd.cm.properties/whitespace"; //$NON-NLS-1$
+
+	private XMLFormattingPreferences fPreferences = null;
+	private IProgressMonitor fProgressMonitor;
+
+	private int replaceSpaces(TextEdit textEdit, int spaceStartOffset, int availableLineWidth, String whitespaceRun) {
+		StringBuffer buff = new StringBuffer(whitespaceRun);
+		for(int i = 0; i < buff.length(); i++) {
+			buff.setCharAt(i, ' '); //$NON-NLS-1$
+		}
+		String replacementString = buff.toString();
+		if (!replacementString.equals(whitespaceRun)) {
+			ReplaceEdit replaceEdit = new ReplaceEdit(spaceStartOffset, whitespaceRun.length(), replacementString);
+			textEdit.addChild(replaceEdit);
+		}
+		return availableLineWidth;
+	}
+	
+	private int collapseSpaces(TextEdit textEdit, int spaceStartOffset, int availableLineWidth, String whitespaceRun) {
+		// prefer to use use existing whitespace
+		int existingWhitespaceOffset = whitespaceRun.indexOf(' ');
+		if (existingWhitespaceOffset > -1) {
+			// delete whitespaces before and after existing whitespace
+			if (existingWhitespaceOffset > 0) {
+				DeleteEdit deleteEdit = new DeleteEdit(spaceStartOffset, existingWhitespaceOffset);
+				textEdit.addChild(deleteEdit);
+			}
+			if (existingWhitespaceOffset < whitespaceRun.length() - 1) {
+				int nextOffset = existingWhitespaceOffset + 1;
+				DeleteEdit deleteEdit = new DeleteEdit(spaceStartOffset + nextOffset, whitespaceRun.length() - nextOffset);
+				textEdit.addChild(deleteEdit);
+			}
+		}
+		else {
+			// delete all whitespace and insert new one
+			// collapse whitespace by deleting whitespace
+			DeleteEdit deleteEdit = new DeleteEdit(spaceStartOffset, whitespaceRun.length());
+			textEdit.addChild(deleteEdit);
+			// then insert one space
+			InsertEdit insertEdit = new InsertEdit(spaceStartOffset, SPACE);
+			textEdit.addChild(insertEdit);
+		}
+		// remember to account for space added
+		--availableLineWidth;
+		return availableLineWidth;
+	}
+	
+	private int collapseAndIndent(TextEdit textEdit, int spaceStartOffset, int availableLineWidth, int indentLevel, String whitespaceRun, IStructuredDocumentRegion currentRegion) {
+		// Need to keep blank lines, but still collapse the whitespace
+		String lineDelimiters = null;
+		if (!getFormattingPreferences().getClearAllBlankLines()) {
+			lineDelimiters = extractLineDelimiters(whitespaceRun, currentRegion);
+			String formattedLine = lineDelimiters + getIndentString(indentLevel);
+			if(lineDelimiters.length() > 0 && !formattedLine.equals(whitespaceRun)) {
+				textEdit.addChild(new ReplaceEdit(spaceStartOffset, whitespaceRun.length(), formattedLine));
+				availableLineWidth = getFormattingPreferences().getMaxLineWidth() - indentLevel;
+			}
+		}
+		if (lineDelimiters == null || lineDelimiters.length() == 0) {
+			availableLineWidth = collapseSpaces(textEdit, spaceStartOffset, availableLineWidth, whitespaceRun);
+		}
+		return availableLineWidth;
+	}
+
+	private void deleteTrailingSpaces(TextEdit textEdit, ITextRegion currentTextRegion, IStructuredDocumentRegion currentDocumentRegion) {
+		int textEnd = currentTextRegion.getTextEnd();
+		int textEndOffset = currentDocumentRegion.getStartOffset() + textEnd;
+		int difference = currentTextRegion.getEnd() - textEnd;
+		DeleteEdit deleteEdit = new DeleteEdit(textEndOffset, difference);
+		textEdit.addChild(deleteEdit);
+	}
+
+	public TextEdit format(IDocument document, int start, int length) {
+		return format(document, start, length, new XMLFormattingPreferences());
+	}
+
+	public TextEdit format(IDocument document, int start, int length, XMLFormattingPreferences preferences) {
+		TextEdit edit = null;
+		if (document instanceof IStructuredDocument) {
+			IStructuredModel model = StructuredModelManager.getModelManager().getModelForEdit((IStructuredDocument) document);
+			if (model != null) {
+				try {
+					edit = format(model, start, length, preferences);
+				}
+				finally {
+					model.releaseFromEdit();
+				}
+			}
+		}
+		return edit;
+	}
+
+	public TextEdit format(IStructuredModel model, int start, int length) {
+		return format(model, start, length, new XMLFormattingPreferences());
+	}
+
+	public TextEdit format(IStructuredModel model, int start, int length, XMLFormattingPreferences preferences) {
+		setFormattingPreferences(preferences);
+
+		TextEdit edit = new MultiTextEdit();
+		IStructuredDocument document = model.getStructuredDocument();
+		// get initial document region
+		IStructuredDocumentRegion currentRegion = document.getRegionAtCharacterOffset(start);
+		if (currentRegion != null) {
+			int startOffset = currentRegion.getStartOffset();
+
+			// get initial dom node
+			IndexedRegion currentIndexedRegion = model.getIndexedRegion(startOffset);
+			if (currentIndexedRegion instanceof IDOMNode) {
+				// set up domRegion which will contain current region to be
+				// formatted
+				IDOMNode currentDOMNode = (IDOMNode) currentIndexedRegion;
+				DOMRegion domRegion = new DOMRegion();
+				domRegion.documentRegion = currentRegion;
+				domRegion.domNode = currentDOMNode;
+				
+				XMLFormattingConstraints parentConstraints = getRegionConstraints(currentDOMNode);
+				
+				/* if the whitespace strategy is declared as default, get it from the preferences */
+				if(parentConstraints.getWhitespaceStrategy() == XMLFormattingConstraints.DEFAULT)
+					parentConstraints.setWhitespaceStrategy(preferences.getElementWhitespaceStrategy());
+				
+				// TODO: initialize indentLevel
+				// initialize available line width
+				int lineWidth = getFormattingPreferences().getMaxLineWidth();
+				try {
+					IRegion lineInfo = document.getLineInformationOfOffset(startOffset);
+					lineWidth = lineWidth - (startOffset - lineInfo.getOffset());
+				}
+				catch (BadLocationException e) {
+					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
+				}
+				parentConstraints.setAvailableLineWidth(lineWidth);
+
+				// format all siblings (and their children) as long they
+				// overlap with start/length
+				Position formatRange = new Position(start, length);
+				formatSiblings(edit, domRegion, parentConstraints, formatRange);
+			}
+		}
+		return edit;
+	}
+
+	/**
+	 * Determines the formatting constraints for a specified node based on
+	 * its ancestors' formatting. In particular, if any ancestor node either
+	 * explicitly defines whitespace preservation or ignorance, that
+	 * whitespace strategy should be used for <code>currentNode</code> and 
+	 * all of its descendants.
+	 * 
+	 * @param currentNode the node to investigate the ancestry of to determine
+	 * formatting constraints
+	 * 
+	 * @return formatting constraints defined by an ancestor
+	 */
+	private XMLFormattingConstraints getRegionConstraints(IDOMNode currentNode) {
+		IDOMNode iterator = currentNode;
+		XMLFormattingConstraints result = new XMLFormattingConstraints();
+		DOMRegion region = new DOMRegion();
+		XMLFormattingConstraints parentConstraints = new XMLFormattingConstraints();
+		boolean parent = true;
+		
+		/* Iterate through the ancestry to find if any explicit whitespace strategy has
+		 * been defined
+		 */
+		while(iterator != null && iterator.getNodeType() != Node.DOCUMENT_NODE) {
+			iterator = (IDOMNode) iterator.getParentNode();
+			region.domNode = iterator;
+			region.documentRegion = iterator.getFirstStructuredDocumentRegion();
+			
+			updateFormattingConstraints(null, null, result, region);
+			
+			/* If this is the parent of the current node, keep the constraints
+			 * in case no other constraints are identified
+			 */
+			if(parent) {
+				parentConstraints.copyConstraints(result);
+				parent = false;
+			}
+			
+			/* A parent who has defined a specific whitespace strategy was found */
+			if(XMLFormattingConstraints.PRESERVE == result.getWhitespaceStrategy() || XMLFormattingConstraints.DEFAULT == result.getWhitespaceStrategy())
+				return result;
+		}
+		
+		return parentConstraints;
+	}
+//	private XMLFormattingConstraints getRegionConstraints(IDOMNode currentNode) {
+//		IDOMNode iterator = (IDOMNode) currentNode.getParentNode();
+//		XMLFormattingConstraints result = new XMLFormattingConstraints();
+//		DOMRegion region = new DOMRegion();
+//		
+//		/* Iterate through the ancestry to find if any explicit whitespace strategy has
+//		 * been defined
+//		 */
+//		while(iterator != null && iterator.getNodeType() != Node.DOCUMENT_NODE) {
+
+//			region.domNode = iterator;
+//			region.documentRegion = iterator.getFirstStructuredDocumentRegion();
+//			
+//			updateFormattingConstraints(null, null, result, region);
+//			
+//			/* A parent who has defined a specific whitespace strategy was found */
+//			if(XMLFormattingConstraints.PRESERVE == result.getWhitespaceStrategy() || XMLFormattingConstraints.DEFAULT == result.getWhitespaceStrategy())
+//				return result;
+//			
+//			iterator = (IDOMNode) iterator.getParentNode();
+//		}
+//		
+//		return null;
+//	}
+	
+	/**
+	 * Formats the given xml content region
+	 * 
+	 * @param textEdit
+	 * @param formatRange
+	 * @param parentConstraints
+	 * @param currentDOMRegion
+	 * @param previousRegion
+	 */
+	private void formatContent(TextEdit textEdit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousRegion) {
+		IStructuredDocumentRegion currentRegion = currentDOMRegion.documentRegion;
+		String fullText = currentRegion.getFullText();
+
+		// check if in preserve space mode, if so, don't touch anything but
+		// make sure to update available line width
+		String whitespaceMode = parentConstraints.getWhitespaceStrategy();
+		if (whitespaceMode == XMLFormattingConstraints.PRESERVE) {
+			int availableLineWidth = parentConstraints.getAvailableLineWidth();
+			availableLineWidth = updateLineWidthWithLastLine(fullText, availableLineWidth);
+
+			// update available line width in constraints
+			parentConstraints.setAvailableLineWidth(availableLineWidth);
+			return;
+		}
+
+		// if content is just whitespace and there's something after it
+		// just skip over this region because region will take care of it
+		boolean isAllWhitespace = ((IDOMText) currentDOMRegion.domNode).isElementContentWhitespace();
+		IStructuredDocumentRegion nextDocumentRegion = null;
+		if (isAllWhitespace) {
+			parentConstraints.setAvailableLineWidth(fPreferences.getMaxLineWidth());
+			nextDocumentRegion = currentRegion.getNext();
+			if (nextDocumentRegion != null)
+				return;
+		}
+
+		// special handling if text follows an entity or cdata region
+		if (whitespaceMode != XMLFormattingConstraints.COLLAPSE && previousRegion != null) {
+			String previouRegionType = previousRegion.getType();
+			if (previouRegionType == DOMRegionContext.XML_ENTITY_REFERENCE || previouRegionType == DOMRegionContext.XML_CDATA_TEXT)
+				whitespaceMode = XMLFormattingConstraints.COLLAPSE;
+		}
+		// also, special handling if text is before an entity or cdata region
+		if (whitespaceMode != XMLFormattingConstraints.COLLAPSE) {
+			// get next document region if dont already have it
+			if (nextDocumentRegion == null)
+				nextDocumentRegion = currentRegion.getNext();
+			if (nextDocumentRegion != null) {
+				String nextRegionType = nextDocumentRegion.getType();
+				if (nextRegionType == DOMRegionContext.XML_ENTITY_REFERENCE || nextRegionType == DOMRegionContext.XML_CDATA_TEXT)
+					whitespaceMode = XMLFormattingConstraints.COLLAPSE;
+			}
+		}
+		formatTextInContent(textEdit, parentConstraints, currentRegion, fullText, whitespaceMode);
+	}
+
+	private void formatEmptyStartTagWithNoAttr(TextEdit textEdit, XMLFormattingConstraints constraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion, int availableLineWidth, String indentStrategy, String whitespaceStrategy, ITextRegion currentTextRegion) {
+		// get preference if there should be a space or not between tag
+		// name and empty tag close
+		// <tagName />
+		boolean oneSpaceInTagName = getFormattingPreferences().getSpaceBeforeEmptyCloseTag();
+
+		// calculate available line width
+		int tagNameLineWidth = currentTextRegion.getTextLength() + 3;
+		if (oneSpaceInTagName) {
+			// add one more to account for space before empty tag close
+			++tagNameLineWidth;
+		}
+		availableLineWidth -= tagNameLineWidth;
+
+		if (indentStrategy == XMLFormattingConstraints.INLINE) {
+			// if was inlining, need to check if out of available line
+			// width
+			if (availableLineWidth < 0) {
+				// need to indent if possible
+				int lineWidth = indentIfPossible(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, true);
+				// update available line width
+				if (lineWidth > 0)
+					availableLineWidth = lineWidth - tagNameLineWidth;
+				else
+					availableLineWidth -= tagNameLineWidth;
+			}
+			else {
+				// no need to indent
+				// just make sure to delete previous whitespace if
+				// needed
+				if ((previousDocumentRegion.getType() == DOMRegionContext.XML_CONTENT) && (previousDocumentRegion.getFullText().trim().length() == 0)) {
+					availableLineWidth = collapseSpaces(textEdit, previousDocumentRegion.getStartOffset(), availableLineWidth, previousDocumentRegion.getFullText());
+				}
+			}
+		}
+
+		// delete any trail spaces after tag name
+		int textLength = currentTextRegion.getTextLength();
+		int regionLength = currentTextRegion.getLength();
+
+		boolean thereAreSpaces = textLength < regionLength;
+		if (!oneSpaceInTagName && thereAreSpaces) {
+			deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
+		}
+		else if(oneSpaceInTagName) {
+			insertSpaceAndCollapse(textEdit, currentDocumentRegion, availableLineWidth, currentTextRegion);
+		}
+		constraints.setAvailableLineWidth(availableLineWidth);
+	}
+
+	/**
+	 * Formats an end tag
+	 * 
+	 * @param textEdit
+	 * @param currentRegion
+	 * @param textRegions
+	 */
+	private void formatEndTag(TextEdit textEdit, Position formatRange, XMLFormattingConstraints constraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousDocumentRegion) {
+		IStructuredDocumentRegion currentDocumentRegion = currentDOMRegion.documentRegion;
+
+		String whitespaceStrategy = constraints.getWhitespaceStrategy();
+		String indentStrategy = constraints.getIndentStrategy();
+
+		// do not format space before start tag if preserving spaces
+		if (whitespaceStrategy != XMLFormattingConstraints.PRESERVE) {
+			// format like indent strategy says
+			if (indentStrategy == XMLFormattingConstraints.INDENT || indentStrategy == XMLFormattingConstraints.NEW_LINE) {
+				int availableLineWidth = indentIfPossible(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, false);
+				constraints.setAvailableLineWidth(availableLineWidth);
+			}
+		}
+		// format the end tag itself
+		formatWithinEndTag(textEdit, constraints, currentDocumentRegion, previousDocumentRegion);
+	}
+
+	/**
+	 * Formats the given region (and all its children) contained in domRegion.
+	 * 
+	 * @param edit
+	 *            edits required to format
+	 * @param formatRange
+	 *            document range to format (only format content within this
+	 *            range)
+	 * @param parentConstraints
+	 * @param domRegion
+	 *            assumes dom node & region are not null
+	 * @param previousRegion
+	 *            could be null
+	 * @return Returns the last region formatted
+	 */
+	private DOMRegion formatRegion(TextEdit edit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion domRegion, IStructuredDocumentRegion previousRegion) {
+		IStructuredDocumentRegion currentRegion = domRegion.documentRegion;
+		String regionType = currentRegion.getType();
+		if (regionType == DOMRegionContext.XML_TAG_NAME) {
+			ITextRegion textRegion = currentRegion.getFirstRegion();
+			String textRegionType = textRegion.getType();
+			if (textRegionType == DOMRegionContext.XML_TAG_OPEN) {
+				domRegion = formatStartTag(edit, formatRange, parentConstraints, domRegion, previousRegion);
+			}
+			else if (textRegionType == DOMRegionContext.XML_END_TAG_OPEN) {
+				formatEndTag(edit, formatRange, parentConstraints, domRegion, previousRegion);
+			}
+		}
+		else if (regionType == DOMRegionContext.XML_CONTENT) {
+			formatContent(edit, formatRange, parentConstraints, domRegion, previousRegion);
+		}
+		else if (regionType == DOMRegionContext.XML_COMMENT_TEXT) {
+			formatComment(edit, formatRange, parentConstraints, domRegion, previousRegion);
+		}
+		else {
+			// unknown, so just leave alone for now but make sure to update
+			// available line width
+			String fullText = currentRegion.getFullText();
+			int width = updateLineWidthWithLastLine(fullText, parentConstraints.getAvailableLineWidth());
+			parentConstraints.setAvailableLineWidth(width);
+		}
+		return domRegion;
+	}
+
+	/**
+	 * Formats the domRegion and all of its children and siblings
+	 * 
+	 * @param edit
+	 * @param domRegion
+	 * @param parentConstraints
+	 * @param formatRange
+	 */
+	private void formatSiblings(TextEdit edit, DOMRegion domRegion, XMLFormattingConstraints parentConstraints, Position formatRange) {
+		IStructuredDocumentRegion previousRegion = null;
+		IStructuredDocumentRegion currentRegion = domRegion.documentRegion;
+		IDOMNode currentDOMNode = domRegion.domNode;
+		while (currentDOMNode != null && currentRegion != null && formatRange.overlapsWith(currentRegion.getStartOffset(), currentRegion.getLength()) && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
+			domRegion.documentRegion = currentRegion;
+			domRegion.domNode = currentDOMNode;
+
+			// need to make sure current document region and current
+			// dom node match up
+			if (currentRegion == currentDOMNode.getFirstStructuredDocumentRegion()) {
+				// format this document region/node, formatRegion will
+				// return the last node/region formatted
+				domRegion = formatRegion(edit, formatRange, parentConstraints, domRegion, previousRegion);
+			}
+			else {
+				// TODO: need to figure out what to do if they don't
+				// match up
+			}
+			previousRegion = domRegion.documentRegion;
+			// get the next sibling information
+			if (domRegion.domNode != null)
+				currentDOMNode = (IDOMNode) domRegion.domNode.getNextSibling();
+			else
+				currentDOMNode = null;
+			currentRegion = previousRegion.getNext();
+		}
+	}
+
+	/**
+	 * Formats a start tag
+	 * 
+	 * @param textEdit
+	 * @param currentRegion
+	 * @param textRegions
+	 */
+	private DOMRegion formatStartTag(TextEdit textEdit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousDocumentRegion) {
+		// determine proper indent by referring to parent constraints,
+		// previous node, and current node
+		IStructuredDocumentRegion currentDocumentRegion = currentDOMRegion.documentRegion;
+		IDOMNode currentDOMNode = currentDOMRegion.domNode;
+
+		// create a constraint for this tag
+		XMLFormattingConstraints thisConstraints = new XMLFormattingConstraints();
+		XMLFormattingConstraints childrenConstraints = new XMLFormattingConstraints();
+		updateFormattingConstraints(parentConstraints, thisConstraints, childrenConstraints, currentDOMRegion);
+
+		if(childrenConstraints.getWhitespaceStrategy() == XMLFormattingConstraints.DEFAULT)
+			childrenConstraints.setWhitespaceStrategy((new XMLFormattingPreferences()).getElementWhitespaceStrategy());
+			
+		String whitespaceStrategy = thisConstraints.getWhitespaceStrategy();
+		String indentStrategy = thisConstraints.getIndentStrategy();
+		int availableLineWidth = thisConstraints.getAvailableLineWidth();
+
+		// format space before start tag
+		// do not format space before start tag if preserving spaces
+		if (whitespaceStrategy != XMLFormattingConstraints.PRESERVE) {
+			// format like indent strategy says
+			if (indentStrategy == XMLFormattingConstraints.INDENT || indentStrategy == XMLFormattingConstraints.NEW_LINE) {
+				availableLineWidth = indentIfPossible(textEdit, thisConstraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, true);
+				if (availableLineWidth > 0)
+					thisConstraints.setAvailableLineWidth(availableLineWidth);
+			}
+		}
+		// format the start tag itself
+		boolean tagEnded = formatWithinTag(textEdit, thisConstraints, currentDocumentRegion, previousDocumentRegion);
+
+		// format children
+		if (!tagEnded) {
+			// update childConstraints with thisConstraint's indentLevel &
+			// availableLineWidth
+			childrenConstraints.setIndentLevel(thisConstraints.getIndentLevel());
+			childrenConstraints.setAvailableLineWidth(thisConstraints.getAvailableLineWidth());
+
+			previousDocumentRegion = currentDocumentRegion;
+			IDOMNode childDOMNode = (IDOMNode) currentDOMNode.getFirstChild();
+			IStructuredDocumentRegion nextRegion = currentDocumentRegion.getNext();
+			boolean passedFormatRange = false;
+			// as long as there is one child
+			if (childDOMNode != null && nextRegion != null) {
+				while (childDOMNode != null && nextRegion != null && !passedFormatRange && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
+					DOMRegion childDOMRegion = new DOMRegion();
+					childDOMRegion.documentRegion = nextRegion;
+					childDOMRegion.domNode = childDOMNode;
+					if (nextRegion == childDOMNode.getFirstStructuredDocumentRegion()) {
+						// format children. pass in child constraints
+						childDOMRegion = formatRegion(textEdit, formatRange, childrenConstraints, childDOMRegion, previousDocumentRegion);
+					}
+					else {
+						// TODO: what happens if they dont match up?
+					}
+
+					// update childDOMRegion with next dom/region node
+					if (childDOMRegion.domNode != null) {
+						childDOMNode = (IDOMNode) childDOMRegion.domNode.getNextSibling();
+					}
+					else {
+						childDOMNode = null;
+					}
+					previousDocumentRegion = childDOMRegion.documentRegion;
+					nextRegion = previousDocumentRegion.getNext();
+					if (nextRegion != null)
+						passedFormatRange = !formatRange.overlapsWith(nextRegion.getStartOffset(), nextRegion.getLength());
+				}
+			}
+			else {
+				// there were no children, so keep end tag inlined
+				childrenConstraints.setWhitespaceStrategy(XMLFormattingConstraints.COLLAPSE);
+				childrenConstraints.setIndentStrategy(XMLFormattingConstraints.INLINE);
+			}
+
+			if (!passedFormatRange) {
+				// update the dom region with the last formatted region/dom
+				// node should be end tag and this tag's DOMNode
+				currentDOMRegion.documentRegion = nextRegion;
+				currentDOMRegion.domNode = currentDOMNode;
+
+				// end tag's indent level should be same as start tag's
+				childrenConstraints.setIndentLevel(thisConstraints.getIndentLevel());
+				// format end tag
+				boolean formatEndTag = false;
+				if (nextRegion != null && currentDOMNode != null) {
+					ITextRegionList rs = nextRegion.getRegions();
+					if (rs.size() > 1) {
+						ITextRegion r = rs.get(0);
+						if (r != null && r.getType() == DOMRegionContext.XML_END_TAG_OPEN) {
+							r = rs.get(1);
+							if (r != null && r.getType() == DOMRegionContext.XML_TAG_NAME) {
+								String tagName = nextRegion.getText(r);
+								if (tagName != null && tagName.equals(currentDOMNode.getNodeName()))
+									formatEndTag = true;
+							}
+						}
+
+					}
+				}
+				if (formatEndTag)
+					formatEndTag(textEdit, formatRange, childrenConstraints, currentDOMRegion, previousDocumentRegion);
+				else {
+					// missing end tag so return last formatted document
+					// region
+					currentDOMRegion.documentRegion = previousDocumentRegion;
+				}
+			}
+			else {
+				// passed format range before could finish, so update dom
+				// region to last known formatted region
+				currentDOMRegion.documentRegion = nextRegion;
+				currentDOMRegion.domNode = childDOMNode;
+			}
+
+			// update parent constraint since this is what is passed back
+			parentConstraints.setAvailableLineWidth(childrenConstraints.getAvailableLineWidth());
+		}
+		else {
+			// update available line width
+			parentConstraints.setAvailableLineWidth(thisConstraints.getAvailableLineWidth());
+		}
+		return currentDOMRegion;
+	}
+
+	private void formatStartTagWithNoAttr(TextEdit textEdit, XMLFormattingConstraints constraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion, int availableLineWidth, String indentStrategy, String whitespaceStrategy, ITextRegion currentTextRegion) {
+		// calculate available line width
+		int tagNameLineWidth = currentTextRegion.getTextLength() + 2;
+		availableLineWidth -= tagNameLineWidth;
+
+		if (indentStrategy == XMLFormattingConstraints.INLINE) {
+			// if was inlining, need to check if out of available line
+			// width
+			if (availableLineWidth < 0) {
+				// need to indent if possible
+				int lineWidth = indentIfPossible(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, true);
+				// update available line width
+				if (lineWidth > 0)
+					availableLineWidth = lineWidth - tagNameLineWidth;
+				else
+					availableLineWidth -= tagNameLineWidth;
+			}
+			else {
+				// no need to indent
+				// just make sure to delete previous whitespace if
+				// needed
+				if (previousDocumentRegion != null) {
+					if (previousDocumentRegion.getType() == DOMRegionContext.XML_CONTENT) {
+						String previousDocumentRegionText = previousDocumentRegion.getFullText();
+						if (previousDocumentRegionText.trim().length() == 0) {
+							availableLineWidth = collapseSpaces(textEdit, previousDocumentRegion.getStartOffset(), availableLineWidth, previousDocumentRegionText);
+						}
+					}
+				}
+			}
+		}
+
+		// delete any trail spaces after tag name
+		if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
+			deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
+		}
+		constraints.setAvailableLineWidth(availableLineWidth);
+	}
+
+	/**
+	 * Format the text in xml content
+	 * 
+	 * @param textEdit
+	 * @param parentConstraints
+	 * @param currentRegion
+	 * @param fullText
+	 * @param whitespaceMode
+	 */
+	private void formatTextInContent(TextEdit textEdit, XMLFormattingConstraints parentConstraints, IStructuredDocumentRegion currentRegion, String fullText, String whitespaceMode) {
+		int availableLineWidth = parentConstraints.getAvailableLineWidth();
+
+		// determine indentation
+		boolean forceInitialIndent = false;
+		int indentLevel = parentConstraints.getIndentLevel() + 1;
+		String indentMode = parentConstraints.getIndentStrategy();
+		if (indentMode == XMLFormattingConstraints.INDENT) {
+			forceInitialIndent = true;
+		}
+		if (indentMode == XMLFormattingConstraints.NEW_LINE) {
+			indentLevel = parentConstraints.getIndentLevel();
+			forceInitialIndent = true;
+		}
+
+		int fullTextOffset = 0;
+		char[] fullTextArray = fullText.toCharArray();
+		while (fullTextOffset < fullTextArray.length) {
+			// gather all whitespaces
+			String whitespaceRun = getCharacterRun(fullTextArray, fullTextOffset, true);
+			if (whitespaceRun.length() > 0) {
+				// offset where whitespace starts
+				int whitespaceStart = fullTextOffset;
+				// update current offset in fullText
+				fullTextOffset += whitespaceRun.length();
+
+				// gather following word
+				String characterRun = getCharacterRun(fullTextArray, fullTextOffset, false);
+				int characterRunLength = characterRun.length();
+				if (characterRunLength > 0) {
+					// indent if word is too long or forcing initial
+					// indent
+					availableLineWidth -= characterRunLength;
+					// offset where indent/collapse will happen
+					int startOffset = currentRegion.getStartOffset() + whitespaceStart;
+					if (forceInitialIndent || (availableLineWidth <= 0)) {
+						// indent if not already indented
+						availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentRegion, indentLevel, startOffset, whitespaceRun);
+						// remember to subtract word length
+						availableLineWidth -= characterRunLength;
+						forceInitialIndent = false; // initial indent done
+					}
+					else {
+						// just collapse spaces, but adjust for any indenting that may result from preserving line delimiters
+						if (whitespaceStart == 0 && whitespaceMode == XMLFormattingConstraints.IGNOREANDTRIM) {
+							// if ignore, trim
+							DeleteEdit deleteTrailing = new DeleteEdit(startOffset, whitespaceRun.length());
+							textEdit.addChild(deleteTrailing);
+						}
+						else if(whitespaceMode == XMLFormattingConstraints.REPLACE)
+							availableLineWidth = replaceSpaces(textEdit, startOffset, availableLineWidth, whitespaceRun);
+						else
+							availableLineWidth = collapseAndIndent(textEdit, startOffset, availableLineWidth, indentLevel, whitespaceRun, currentRegion);
+					}
+
+					fullTextOffset += characterRunLength;
+				}
+				else {
+					// handle trailing whitespace
+					int whitespaceOffset = currentRegion.getStartOffset() + whitespaceStart;
+					if (whitespaceMode == XMLFormattingConstraints.REPLACE)
+						availableLineWidth = replaceSpaces(textEdit, whitespaceOffset, availableLineWidth, whitespaceRun);
+					else if (whitespaceMode == XMLFormattingConstraints.IGNOREANDTRIM) {
+						// always trim
+						DeleteEdit deleteTrailing = new DeleteEdit(whitespaceOffset, whitespaceRun.length());
+						textEdit.addChild(deleteTrailing);
+					}
+					else if(getFormattingPreferences().getClearAllBlankLines()) {
+						if (whitespaceMode == XMLFormattingConstraints.IGNORE) {
+							// if ignore, trim
+							DeleteEdit deleteTrailing = new DeleteEdit(whitespaceOffset, whitespaceRun.length());
+							textEdit.addChild(deleteTrailing);
+						}
+						else {
+							// if collapse, leave a space. but what if end up
+							// wanting to add indent? then need to delete space
+							// added and add indent instead
+							availableLineWidth = collapseSpaces(textEdit, whitespaceOffset, availableLineWidth, whitespaceRun);
+						}
+					}
+				}
+			}
+			else {
+				// gather word
+				String characterRun = getCharacterRun(fullTextArray, fullTextOffset, false);
+				int characterRunLength = characterRun.length();
+				if (characterRunLength > 0) {
+					// indent if word is too long or forcing initial
+					// indent
+					availableLineWidth = availableLineWidth - characterRunLength;
+					if ((whitespaceMode == XMLFormattingConstraints.IGNORE || whitespaceMode == XMLFormattingConstraints.IGNOREANDTRIM) && (forceInitialIndent || (availableLineWidth <= 0))) {
+						// indent if not already indented
+						availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentRegion, indentLevel, currentRegion.getStartOffset(), whitespaceRun);
+						// remember to subtract word length
+						availableLineWidth -= characterRunLength;
+						forceInitialIndent = false; // initial indent done
+					}
+					else {
+						// just collapse spaces
+						availableLineWidth -= characterRunLength;
+					}
+
+					fullTextOffset += characterRunLength;
+				}
+			}
+		}
+		// update available line width
+		parentConstraints.setAvailableLineWidth(availableLineWidth);
+	}
+
+	private void formatWithinEndTag(TextEdit textEdit, XMLFormattingConstraints constraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion) {
+		String indentStrategy = constraints.getIndentStrategy();
+		String whitespaceStrategy = constraints.getWhitespaceStrategy();
+		int availableLineWidth = constraints.getAvailableLineWidth();
+		ITextRegionList textRegions = currentDocumentRegion.getRegions();
+		int currentTextRegionIndex = 1;
+
+		ITextRegion currentTextRegion = textRegions.get(currentTextRegionIndex);
+		String currentType = currentTextRegion.getType();
+		// tag name should always be the first text region
+		if (currentType == DOMRegionContext.XML_TAG_NAME) {
+			ITextRegion nextTextRegion = textRegions.get(currentTextRegionIndex + 1);
+			String nextType = nextTextRegion.getType();
+			if (nextType == DOMRegionContext.XML_TAG_CLOSE) {
+				// calculate available line width
+				int tagNameLineWidth = currentTextRegion.getTextLength() + 3;
+				availableLineWidth -= tagNameLineWidth;
+
+				if (indentStrategy == XMLFormattingConstraints.INLINE) {
+					// if was inlining, need to check if out of available line
+					// width - Whitespace may have been corrected in the text content
+					if (availableLineWidth < 0 && whitespaceStrategy == XMLFormattingConstraints.IGNORE) {
+						// need to deindent if possible
+						int lineWidth = indentIfPossible(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, whitespaceStrategy, indentStrategy, false);
+						// update available line width
+						if (lineWidth > 0)
+							availableLineWidth = lineWidth - tagNameLineWidth;
+					}
+					else {
+						// no need to indent
+						// just make sure to delete previous whitespace if
+						// needed
+						if (previousDocumentRegion != null) {
+							if (previousDocumentRegion.getType() == DOMRegionContext.XML_CONTENT) {
+								String previousDocumentRegionText = previousDocumentRegion.getFullText();
+								if (previousDocumentRegionText.trim().length() == 0) {
+									availableLineWidth = collapseSpaces(textEdit, previousDocumentRegion.getStartOffset(), availableLineWidth, previousDocumentRegionText);
+								}
+							}
+						}
+					}
+				}
+				// delete any trail spaces after tag name
+				if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
+					deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
+				}
+			}
+		}
+		else {
+			// end tag has unexpected stuff, so just leave it alone
+		}
+		constraints.setAvailableLineWidth(availableLineWidth);
+	}
+
+	/**
+	 * Formats the contents within a tag like tag name and attributes
+	 * 
+	 * @param textEdit
+	 * @param currentDocumentRegion
+	 * @param textRegions
+	 *            contains at least 3 regions
+	 * @return true if tag was ended, false otherwise
+	 */
+	private boolean formatWithinTag(TextEdit textEdit, XMLFormattingConstraints constraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion) {
+		int availableLineWidth = constraints.getAvailableLineWidth();
+		String indentStrategy = constraints.getIndentStrategy();
+		String whitespaceStrategy = constraints.getWhitespaceStrategy();
+		int indentLevel = constraints.getIndentLevel();
+		ITextRegionList textRegions = currentDocumentRegion.getRegions();
+		int currentTextRegionIndex = 1;
+
+		ITextRegion currentTextRegion = textRegions.get(currentTextRegionIndex);
+		String currentType = currentTextRegion.getType();
+		// tag name should always be the first text region
+		if (currentType == DOMRegionContext.XML_TAG_NAME) {
+			ITextRegion nextTextRegion = textRegions.get(currentTextRegionIndex + 1);
+			String nextType = (nextTextRegion != null) ? nextTextRegion.getType() : null;
+			if (nextType == DOMRegionContext.XML_TAG_CLOSE) {
+				// already at tag close
+				formatStartTagWithNoAttr(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, availableLineWidth, indentStrategy, whitespaceStrategy, currentTextRegion);
+				return false;
+			}
+			else if (nextType == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
+				// already at empty tag close
+				formatEmptyStartTagWithNoAttr(textEdit, constraints, currentDocumentRegion, previousDocumentRegion, availableLineWidth, indentStrategy, whitespaceStrategy, currentTextRegion);
+				return true;
+			}
+			else {
+				availableLineWidth -= (currentTextRegion.getTextLength() + 2);
+				boolean alignFinalBracket = getFormattingPreferences().getAlignFinalBracket();
+				boolean oneSpaceInTagName = getFormattingPreferences().getSpaceBeforeEmptyCloseTag();
+				boolean indentMultipleAttribute = getFormattingPreferences().getIndentMultipleAttributes();
+				// indicates if tag spanned more than one line
+				boolean spanMoreThan1Line = false;
+				// indicates if all attributes should be indented
+				boolean indentAllAttributes = false;
+				if (indentMultipleAttribute) {
+					int attributesCount = 0;
+					int i = 2;
+					while (i < textRegions.size() && attributesCount < 2) {
+						if (textRegions.get(i).getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
+							++attributesCount;
+					}
+					indentAllAttributes = (attributesCount > 1);
+				}
+
+				while ((currentTextRegionIndex + 1) < textRegions.size()) {
+					nextTextRegion = textRegions.get(currentTextRegionIndex + 1);
+					nextType = nextTextRegion.getType();
+					if (nextType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
+						boolean indentAttribute = indentAllAttributes;
+						if (!indentAttribute)
+							indentAttribute = shouldIndentBeforeAttribute(constraints, textRegions, availableLineWidth, currentTextRegionIndex, currentTextRegion, nextTextRegion);
+						if (indentAttribute) {
+							availableLineWidth = indentIfNotAlreadyIndented(textEdit, indentLevel + 1, currentDocumentRegion, currentTextRegion);
+							spanMoreThan1Line = true;
+						}
+						else {
+							// otherwise, insertSpaceAndCollapse
+							insertSpaceAndCollapse(textEdit, currentDocumentRegion, availableLineWidth, currentTextRegion);
+							// update available line width
+							availableLineWidth -= (currentTextRegion.getTextLength() + 1);
+						}
+					}
+					else if (nextType == DOMRegionContext.XML_TAG_CLOSE) {
+						// if need to align bracket on next line, indent
+						if (alignFinalBracket && spanMoreThan1Line) {
+							availableLineWidth = indentIfNotAlreadyIndented(textEdit, indentLevel, currentDocumentRegion, currentTextRegion);
+							--availableLineWidth; // for tag close itself
+						}
+						else {
+							// otherwise, just delete space before tag close
+							if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
+								deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
+								availableLineWidth -= (currentTextRegion.getTextLength() + 1);
+							}
+						}
+						// update line width
+						constraints.setAvailableLineWidth(availableLineWidth);
+						return false;
+					}
+					else if (nextType == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
+						int textLength = currentTextRegion.getTextLength();
+						int regionLength = currentTextRegion.getLength();
+
+						boolean thereAreSpaces = textLength < regionLength;
+						if (!oneSpaceInTagName && thereAreSpaces) {
+							// delete any trail spaces after tag name
+							deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
+							availableLineWidth -= (currentTextRegion.getTextLength() + 2);
+						}
+						// insert a space and collapse ONLY IF it's specified
+						else if (oneSpaceInTagName) {
+							insertSpaceAndCollapse(textEdit, currentDocumentRegion, availableLineWidth, currentTextRegion);
+							availableLineWidth -= (currentTextRegion.getTextLength() + 3);
+						}
+						// update line width
+						constraints.setAvailableLineWidth(availableLineWidth);
+						return true;
+					}
+					else {
+						if (currentType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME && nextType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
+							if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
+								deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
+							}
+							// update available width
+							availableLineWidth -= currentTextRegion.getTextLength();
+						}
+						else if (currentType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS && nextType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+							if (currentTextRegion.getTextLength() < currentTextRegion.getLength()) {
+								deleteTrailingSpaces(textEdit, currentTextRegion, currentDocumentRegion);
+							}
+							// update available width
+							availableLineWidth -= currentTextRegion.getTextLength();
+						}
+						else {
+							// otherwise, insertSpaceAndCollapse
+							insertSpaceAndCollapse(textEdit, currentDocumentRegion, availableLineWidth, currentTextRegion);
+							// update available line width
+							availableLineWidth -= (currentTextRegion.getTextLength() + 1);
+						}
+					}
+					currentTextRegion = nextTextRegion;
+					currentType = nextType;
+					++currentTextRegionIndex;
+				}
+			}
+		}
+		// update line width
+		constraints.setAvailableLineWidth(availableLineWidth);
+		return false;
+	}
+	
+	/**
+	 * Format an XML comment structured document region.
+	 */
+	private void formatComment(TextEdit textEdit, Position formatRange, XMLFormattingConstraints parentConstraints, DOMRegion currentDOMRegion, IStructuredDocumentRegion previousRegion) {
+		IStructuredDocumentRegion currentRegion = currentDOMRegion.documentRegion;
+		int lineWidth = parentConstraints.getAvailableLineWidth() - currentRegion.getFullText().length();
+		// Don't format if we're not exceeding the available line width, or if the whitespace
+		// strategy is to preserve whitespace - But update line width.
+		if(currentRegion == null ||	parentConstraints.getWhitespaceStrategy() == XMLFormattingConstraints.PRESERVE) {
+			parentConstraints.setAvailableLineWidth(lineWidth);
+			return;
+		}
+		
+		// If there is enough room, format the start of the comment tag if it
+		// is on its own line
+		if(lineWidth >= 0) {
+			parentConstraints.setAvailableLineWidth(lineWidth);
+			if(previousRegion.getType() == DOMRegionContext.XML_CONTENT) {
+				String delimiters = extractLineDelimiters(previousRegion.getFullText(), previousRegion);
+				// Format the comment if its on a newline
+				if(delimiters != null && delimiters.length() > 0)
+					textEdit.addChild(new ReplaceEdit(previousRegion.getStartOffset(), previousRegion.getLength(), delimiters + getIndentString(parentConstraints.getIndentLevel()+1)));
+			}
+			return;
+		}
+		
+		Iterator it = currentRegion.getRegions().iterator();
+		// Iterate over each text region of the comment
+		while(it.hasNext()) {
+			ITextRegion text = (ITextRegion) it.next();
+			formatCommentTag(textEdit, parentConstraints, currentRegion, text);
+		}
+	}
+	
+	/**
+	 * Handles formatting various portions of an XML comment. Because the XML
+	 * Comment is considered its own document region, there are cases where
+	 * the previous region must be referred to for proper indentation
+	 * consideration. Because of this, most of the special cases are
+	 * catering to the opening text region of the document region.
+	 * 
+	 * @param textEdit
+	 * @param parentConstraints
+	 * @param currentRegion
+	 * @param region
+	 */
+	private void formatCommentTag(TextEdit textEdit, XMLFormattingConstraints parentConstraints, IStructuredDocumentRegion currentRegion, ITextRegion region) {
+		int availableLineWidth = parentConstraints.getAvailableLineWidth();
+		int indentLevel = parentConstraints.getIndentLevel() + 1;
+		boolean initialIndent = false;
+		
+		// Indent the text of the comment an additional level
+		if(region.getType() == DOMRegionContext.XML_COMMENT_TEXT) {
+			indentLevel++;
+			initialIndent = true;
+		}
+		
+		int fullTextOffset = 0;
+		char[] fullTextArray = currentRegion.getFullText(region).toCharArray();
+		while (fullTextOffset < fullTextArray.length) {
+			// gather all whitespaces
+			String whitespaceRun = null;
+			
+			// If the region is a comment opening, the whitespace would actually come from the
+			// previous document region
+			if(region.getType() == DOMRegionContext.XML_COMMENT_OPEN && currentRegion.getPrevious() != null)
+				whitespaceRun = getCharacterRun(currentRegion.getPrevious().getFullText().toCharArray(), 0, true);
+			else
+				whitespaceRun = getCharacterRun(fullTextArray, fullTextOffset, true);
+			
+			if (whitespaceRun.length() > 0) {
+				// offset where whitespace starts
+				int whitespaceStart = fullTextOffset;
+				// update current offset in fullText for non comment-opening regions
+				if(region.getType() != DOMRegionContext.XML_COMMENT_OPEN)
+					fullTextOffset += whitespaceRun.length();
+
+				// gather following word
+				String characterRun = getCharacterRun(fullTextArray, fullTextOffset, false);
+				int characterRunLength = characterRun.length();
+				if (characterRunLength > 0) {
+					// indent if word is too long or forcing initial
+					// indent
+					availableLineWidth -= characterRunLength;
+					// offset where indent/collapse will happen - for comment-opening regions,
+					// this occurs in the previous document region
+					int startOffset = 0;
+					if(region.getType() == DOMRegionContext.XML_COMMENT_OPEN && currentRegion.getPrevious() != null)
+						startOffset = currentRegion.getPrevious().getStartOffset();
+					else
+						startOffset = currentRegion.getStartOffset(region) + whitespaceStart;
+					
+					if (region.getType() == DOMRegionContext.XML_COMMENT_OPEN || initialIndent || (availableLineWidth <= 0)) {
+						// indent if not already indented
+						availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentRegion, indentLevel, startOffset, whitespaceRun);
+						// remember to subtract word length
+						availableLineWidth -= characterRunLength;
+						// Indented the first word of the comment
+						if(initialIndent)
+							initialIndent = false;
+					}
+					else {
+						// just collapse spaces
+						availableLineWidth = collapseSpaces(textEdit, startOffset, availableLineWidth, whitespaceRun);
+					}
+
+					fullTextOffset += characterRunLength;
+				}
+				else {
+					// handle trailing whitespace
+					int whitespaceOffset = currentRegion.getStartOffset(region) + whitespaceStart;
+					DeleteEdit deleteTrailing = new DeleteEdit(whitespaceOffset, whitespaceRun.length());
+					textEdit.addChild(deleteTrailing);
+				}
+			}
+			else {
+				// gather word
+				String characterRun = getCharacterRun(fullTextArray, fullTextOffset, false);
+				int characterRunLength = characterRun.length();
+				if (characterRunLength > 0) {
+					// indent if word is too long or forcing initial
+					// indent
+					availableLineWidth = availableLineWidth - characterRunLength;
+
+					if ((region.getType() == DOMRegionContext.XML_COMMENT_CLOSE || region.getType() == DOMRegionContext.XML_COMMENT_OPEN) || initialIndent || (region.getType() == DOMRegionContext.XML_COMMENT_TEXT && availableLineWidth <= 0)) {
+						// indent if not already indented
+						availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentRegion, indentLevel, currentRegion.getStartOffset(region), whitespaceRun);
+						// remember to subtract word length
+						availableLineWidth -= characterRunLength;
+						if(initialIndent)
+							initialIndent = false;
+					}
+					else {
+						// just collapse spaces
+						availableLineWidth -= characterRunLength;
+					}
+					fullTextOffset += characterRunLength;
+				}
+			}
+		}
+		// update available line width
+		parentConstraints.setAvailableLineWidth(availableLineWidth);
+	}
+
+	/**
+	 * Returns either a String of whitespace or characters depending on
+	 * forWhitespace
+	 * 
+	 * @param fullTextArray
+	 *            the text array to look in
+	 * @param textOffset
+	 *            the start offset to start searching
+	 * @param forWhitespace
+	 *            true if should return whitespaces, false otherwise
+	 * @return a String of either all whitespace or all characters. Never
+	 *         returns null
+	 */
+	private String getCharacterRun(char[] fullTextArray, int textOffset, boolean forWhitespace) {
+		StringBuffer characterRun = new StringBuffer();
+		boolean nonCharacterFound = false;
+		while (textOffset < fullTextArray.length && !nonCharacterFound) {
+			char c = fullTextArray[textOffset];
+			boolean isWhitespace = Character.isWhitespace(c);
+			if ((forWhitespace && isWhitespace) || (!forWhitespace && !isWhitespace))
+				characterRun.append(c);
+			else
+				nonCharacterFound = true;
+			++textOffset;
+		}
+		return characterRun.toString();
+	}
+	
+	private String getTrailingWhitespace(String text) {
+		StringBuffer whitespaceRun = new StringBuffer();
+		int index = text.length() - 1;
+		while(index > 0) {
+			char c = text.charAt(index--);
+			if (Character.isWhitespace(c))
+				whitespaceRun.insert(0, c);
+			else
+				break;
+		}
+		return whitespaceRun.toString();
+	}
+
+	private String getIndentString(int indentLevel) {
+		StringBuffer indentString = new StringBuffer();
+		String indent = getFormattingPreferences().getOneIndent();
+		for (int i = 0; i < indentLevel; ++i) {
+			indentString.append(indent);
+		}
+		return indentString.toString();
+	}
+
+	protected XMLFormattingPreferences getFormattingPreferences() {
+		if (fPreferences == null)
+			fPreferences = new XMLFormattingPreferences();
+		return fPreferences;
+	}
+
+	protected void setFormattingPreferences(XMLFormattingPreferences preferences) {
+		fPreferences = preferences;
+	}
+
+	/**
+	 * Indent if whitespaceRun does not already contain an indent
+	 * 
+	 * @param textEdit
+	 * @param indentLevel
+	 * @param indentStartOffset
+	 * @param maxAvailableLineWidth
+	 * @param whitespaceRun
+	 * @return new available line width up to where indented
+	 */
+	private int indentIfNotAlreadyIndented(TextEdit textEdit, IStructuredDocumentRegion currentRegion, int indentLevel, int indentStartOffset, String whitespaceRun) {
+		int maxAvailableLineWidth = getFormattingPreferences().getMaxLineWidth();
+
+		int availableLineWidth;
+		String indentString = getIndentString(indentLevel);
+		String lineDelimiter = getLineDelimiter(currentRegion);
+		String newLineAndIndent = lineDelimiter + indentString;
+		
+		TextEdit indentation = null;
+		
+		// if not already correctly indented
+		if (!newLineAndIndent.equals(whitespaceRun)) {
+			if (getFormattingPreferences().getClearAllBlankLines()) {
+				if (whitespaceRun != null) {
+					// replace existing whitespace run
+					indentation = new ReplaceEdit(indentStartOffset, whitespaceRun.length(), newLineAndIndent);
+				}
+				else {
+					// just insert correct indent
+					indentation = new InsertEdit(indentStartOffset, newLineAndIndent);
+				}
+			}
+			// Keep the empty lines
+			else {
+				// just insert correct indent
+				if(whitespaceRun == null)
+					indentation = new InsertEdit(indentStartOffset, newLineAndIndent);
+				// Need to preserve the number of empty lines, but still indent on the current line properly
+				else {
+					String existingDelimiters = extractLineDelimiters(whitespaceRun, currentRegion);
+					if(existingDelimiters != null && existingDelimiters.length() > 0) {
+						String formatted = existingDelimiters + indentString;
+						// Don't perform a replace if the formatted string is the same as the existing whitespaceRun
+						if(!formatted.equals(whitespaceRun))
+							indentation = new ReplaceEdit(indentStartOffset, whitespaceRun.length(), formatted);
+					}
+					// No blank lines to preserve - correct the indent
+					else
+						indentation = new ReplaceEdit(indentStartOffset, whitespaceRun.length(), newLineAndIndent);
+				}
+			}
+		}
+		
+		if(indentation != null)
+			textEdit.addChild(indentation);
+		// update line width
+		availableLineWidth = maxAvailableLineWidth - indentString.length();
+		return availableLineWidth;
+	}
+
+	private int indentIfNotAlreadyIndented(TextEdit textEdit, int indentLevel, IStructuredDocumentRegion currentDocumentRegion, ITextRegion currentTextRegion) {
+		// indent if not already indented
+		int textLength = currentTextRegion.getTextLength();
+		int regionLength = currentTextRegion.getLength();
+		int indentStartOffset = currentDocumentRegion.getTextEndOffset(currentTextRegion);
+		String fullText = currentDocumentRegion.getFullText(currentTextRegion);
+		String whitespaceRun = fullText.substring(textLength, regionLength);
+
+		// update line width
+		int availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentDocumentRegion, indentLevel, indentStartOffset, whitespaceRun);
+		return availableLineWidth;
+	}
+
+	private int indentIfPossible(TextEdit textEdit, XMLFormattingConstraints thisConstraints, IStructuredDocumentRegion currentDocumentRegion, IStructuredDocumentRegion previousDocumentRegion, String whitespaceStrategy, String indentStrategy, boolean addIndent) {
+		int availableLineWidth = -1;
+		// if there is no previous document region, there is no need to indent
+		// because we're at beginning of document
+		if (previousDocumentRegion == null)
+			return availableLineWidth;
+
+		// only indent if ignoring whitespace or if collapsing and
+		// there was a whitespace character before this region
+		boolean canIndent = false;
+		String previousRegionFullText = null;
+		String previousRegionType = null;
+
+		if ((whitespaceStrategy == XMLFormattingConstraints.IGNORE) || whitespaceStrategy == XMLFormattingConstraints.IGNOREANDTRIM) {
+			// if ignoring, need to check if previous region was cdata
+			previousRegionType = previousDocumentRegion.getType();
+			if (previousRegionType == DOMRegionContext.XML_CDATA_TEXT)
+				canIndent = false;
+			else
+				canIndent = true;
+		}
+		else if (whitespaceStrategy == XMLFormattingConstraints.COLLAPSE) {
+			// if collapsing, need to check if previous region ended in a
+			// whitespace
+			previousRegionType = previousDocumentRegion.getType();
+			if (previousRegionType == DOMRegionContext.XML_CONTENT) {
+				previousRegionFullText = previousDocumentRegion.getFullText();
+				int length = previousRegionFullText.length();
+				if (length > 1)
+					canIndent = Character.isWhitespace(previousRegionFullText.charAt(length - 1));
+			}
+		}
+		if (canIndent) {
+			int indentStartOffset = currentDocumentRegion.getStartOffset();
+			String whitespaceRun = null;
+
+			// get previous region type if it was not previously retrieved
+			if (previousRegionType == null)
+				previousRegionType = previousDocumentRegion.getType();
+
+			// get previous region's text if it was not previously retrieved
+			if (previousRegionFullText == null && previousRegionType == DOMRegionContext.XML_CONTENT)
+				previousRegionFullText = previousDocumentRegion.getFullText();
+
+			// if previous region was only whitespace, this may
+			// already be indented, so need to make sure
+			if ((previousRegionFullText != null) && (previousRegionFullText.trim().length() == 0)) {
+				indentStartOffset = previousDocumentRegion.getStartOffset();
+				whitespaceRun = previousRegionFullText;
+			}
+			if ((previousRegionFullText != null) && (whitespaceRun == null) && !getFormattingPreferences().getClearAllBlankLines()) {
+				whitespaceRun = getTrailingWhitespace(previousRegionFullText);
+				indentStartOffset = previousDocumentRegion.getEndOffset() - whitespaceRun.length();
+			}
+
+			int indentLevel = thisConstraints.getIndentLevel();
+			if (addIndent && indentStrategy == XMLFormattingConstraints.INDENT) {
+				++indentLevel;
+				thisConstraints.setIndentLevel(indentLevel);
+			}
+
+			// indent if not already indented
+			availableLineWidth = indentIfNotAlreadyIndented(textEdit, currentDocumentRegion, indentLevel, indentStartOffset, whitespaceRun);
+		}
+		return availableLineWidth;
+	}
+
+	/**
+	 * Allow exactly one whitespace in currentTextRegion. If there are more,
+	 * collapse to one. If there are none, insert one.
+	 * 
+	 * @param textEdit
+	 * @param currentDocumentRegion
+	 * @param availableLineWidth
+	 * @param currentTextRegion
+	 */
+	private void insertSpaceAndCollapse(TextEdit textEdit, IStructuredDocumentRegion currentDocumentRegion, int availableLineWidth, ITextRegion currentTextRegion) {
+		int textLength = currentTextRegion.getTextLength();
+		int regionLength = currentTextRegion.getLength();
+		boolean thereAreSpaces = textLength < regionLength;
+		int spacesStartOffset = currentDocumentRegion.getStartOffset(currentTextRegion) + textLength;
+
+		if (thereAreSpaces) {
+			String fullTagName = currentDocumentRegion.getFullText(currentTextRegion);
+			String whitespaceRun = fullTagName.substring(textLength, regionLength);
+			collapseSpaces(textEdit, spacesStartOffset, availableLineWidth, whitespaceRun);
+		}
+		else {
+			// insert a space
+			InsertEdit insertEdit = new InsertEdit(spacesStartOffset, SPACE);
+			textEdit.addChild(insertEdit);
+		}
+	}
+
+	private boolean shouldIndentBeforeAttribute(XMLFormattingConstraints constraints, ITextRegionList textRegions, int availableLineWidth, int currentTextRegionIndex, ITextRegion currentTextRegion, ITextRegion nextTextRegion) {
+		boolean indentAttribute = false;
+
+		// look ahead to see if going to hit max line width
+		// something attrName
+		int currentWidth = currentTextRegion.getTextLength() + nextTextRegion.getTextLength() + 1;
+		if (currentWidth > availableLineWidth)
+			indentAttribute = true;
+		else {
+			if ((currentTextRegionIndex + 2) < textRegions.size()) {
+				// still okay, so try next region
+				// something attrName=
+				ITextRegion textRegion = textRegions.get(currentTextRegionIndex + 2);
+				if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
+					++currentWidth;
+					if (currentWidth > availableLineWidth)
+						indentAttribute = true;
+					else {
+						if ((currentTextRegionIndex + 3) < textRegions.size()) {
+							// still okay, so try next region
+							// something attrName=attrValue
+							textRegion = textRegions.get(currentTextRegionIndex + 3);
+							if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
+								currentWidth = +textRegion.getTextLength();
+								if (currentWidth > availableLineWidth)
+									indentAttribute = true;
+							}
+						}
+					}
+				}
+			}
+		}
+		return indentAttribute;
+	}
+
+	/**
+	 * Given the provided information (parentConstraints & currentDOMRegion),
+	 * update the formatting constraints (for this & child)
+	 * 
+	 * @param parentConstraints
+	 *            can be null
+	 * @param thisConstraints
+	 *            can be null
+	 * @param childConstraints
+	 *            can be null
+	 * @param currentDOMRegion
+	 *            cannot be null
+	 */
+	protected void updateFormattingConstraints(XMLFormattingConstraints parentConstraints, XMLFormattingConstraints thisConstraints, XMLFormattingConstraints childConstraints, DOMRegion currentDOMRegion) {
+		IStructuredDocumentRegion currentRegion = currentDOMRegion.documentRegion;
+		IDOMNode currentNode = currentDOMRegion.domNode;
+
+		// default to whatever parent's constraint said to do
+		if (parentConstraints != null) {
+			if (thisConstraints != null) {
+				thisConstraints.copyConstraints(parentConstraints);
+			}
+			if (childConstraints != null) {
+				childConstraints.copyConstraints(parentConstraints);
+				// if whitespace strategy was only a hint, null it out so
+				// defaults are taken instead
+				if (parentConstraints.isWhitespaceStrategyAHint())
+					childConstraints.setWhitespaceStrategy(null);
+			}
+		}
+
+		// set up constraints for direct children of document root
+		Node parentNode = currentNode.getParentNode();
+		if (parentNode != null && parentNode.getNodeType() == Node.DOCUMENT_NODE) {
+			if (thisConstraints != null) {
+				thisConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNORE);
+				thisConstraints.setIndentStrategy(XMLFormattingConstraints.NEW_LINE);
+				thisConstraints.setIndentLevel(0);
+			}
+			if (childConstraints != null) {
+				childConstraints.setWhitespaceStrategy(null);
+				childConstraints.setIndentStrategy(null);
+				childConstraints.setIndentLevel(0);
+			}
+		}
+
+		// other conditions to check when setting up child constraints
+		if (childConstraints != null) {
+			XMLFormattingPreferences preferences = getFormattingPreferences();
+
+			// if we're at document root, child tags should always just start
+			// on a new line and have an indent level of 0
+			if (currentNode.getNodeType() == Node.DOCUMENT_NODE) {
+				childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNORE);
+				childConstraints.setIndentStrategy(XMLFormattingConstraints.NEW_LINE);
+				childConstraints.setIndentLevel(0);
+			}
+			else {
+				// BUG108074 & BUG84688 - preserve whitespace in xsl:text &
+				// xsl:attribute
+				String nodeNamespaceURI = currentNode.getNamespaceURI();
+				if (XSL_NAMESPACE.equals(nodeNamespaceURI)) {
+					String nodeName = ((Element) currentNode).getLocalName();
+					if (XSL_ATTRIBUTE.equals(nodeName) || XSL_TEXT.equals(nodeName)) {
+						childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
+					}
+				}
+				else {
+					// search within current tag for xml:space attribute
+					ITextRegionList textRegions = currentRegion.getRegions();
+					int i = 0;
+					boolean xmlSpaceFound = false;
+					boolean preserveFound = false;
+					while (i < textRegions.size() && !xmlSpaceFound) {
+						ITextRegion textRegion = textRegions.get(i);
+						if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
+							String regionText = currentRegion.getText(textRegion);
+							if (XML_SPACE.equals(regionText)) {
+								if ((i + 1) < textRegions.size()) {
+									++i;
+									textRegion = textRegions.get(i);
+									if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS && ((i + 1) < textRegions.size())) {
+										++i;
+										textRegion = textRegions.get(i);
+										regionText = currentRegion.getText(textRegion);
+										if (PRESERVE.equals(regionText) || PRESERVE_QUOTED.equals(regionText)) {
+											preserveFound = true;
+										}
+									}
+								}
+								xmlSpaceFound = true;
+							}
+						}
+						++i;
+					}
+					if (xmlSpaceFound) {
+						if (preserveFound) {
+							// preserve was found so set the strategy
+							childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
+						}
+						else {
+							// xml:space was found but it was not collapse, so
+							// use default whitespace strategy
+							childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.DEFAULT);
+						}
+					}
+					else {
+						// how to hande nodes that have nonwhitespace text
+						// content
+						NodeList nodeList = currentNode.getChildNodes();
+						int length = nodeList.getLength();
+						int index = 0;
+						boolean textNodeFound = false;
+						// BUG214516 - If the parent constraint is to preserve whitespace, child constraints should
+						// still reflect the parent constraints
+						while (index < length && !textNodeFound && parentConstraints != null && !XMLFormattingConstraints.PRESERVE.equals(parentConstraints.getWhitespaceStrategy())) {
+							Node childNode = nodeList.item(index);
+							if (childNode.getNodeType() == Node.TEXT_NODE) {
+								textNodeFound = !((IDOMText) childNode).isElementContentWhitespace();
+							}
+							++index;
+						}
+						if (textNodeFound) {
+							if (length > 1) {
+								// more in here than just text, so consider
+								// this mixed content
+								childConstraints.setWhitespaceStrategy(preferences.getMixedWhitespaceStrategy());
+								childConstraints.setIndentStrategy(preferences.getMixedIndentStrategy());
+							}
+							else {
+								// there's only text
+								childConstraints.setWhitespaceStrategy(preferences.getTextWhitespaceStrategy());
+								childConstraints.setIndentStrategy(preferences.getTextIndentStrategy());
+							}
+							childConstraints.setIsWhitespaceStrategyAHint(true);
+							childConstraints.setIsIndentStrategyAHint(true);
+						}
+
+						// try referring to content model for information on
+						// whitespace & indent strategy
+						ModelQueryAdapter adapter = (ModelQueryAdapter) ((IDOMDocument) currentNode.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
+						CMElementDeclaration elementDeclaration = (CMElementDeclaration) adapter.getModelQuery().getCMNode(currentNode);
+						if (elementDeclaration != null) {
+							// follow whitespace strategy preference for
+							// pcdata content
+							int contentType = elementDeclaration.getContentType();
+							
+							String facetValue = null;
+							if(elementDeclaration.getDataType() != null)
+								facetValue = (String) elementDeclaration.getDataType().getProperty(PROPERTY_WHITESPACE_FACET);
+							if(facetValue != null) {
+								if(PRESERVE.equals(facetValue))
+									childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
+								// For XSD types, "collapse" corresponds to the IGNOREANDTRIM strategy
+								else if(COLLAPSE.equals(facetValue))
+									childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNOREANDTRIM);
+								else if(REPLACE.equals(facetValue))
+									childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.REPLACE);
+							}
+							else if (contentType == CMElementDeclaration.PCDATA && parentConstraints != null && !XMLFormattingConstraints.PRESERVE.equals(parentConstraints.getWhitespaceStrategy())) {
+								childConstraints.setWhitespaceStrategy(preferences.getPCDataWhitespaceStrategy());
+							}
+							else if (contentType == CMElementDeclaration.ELEMENT && parentConstraints != null && !XMLFormattingConstraints.PRESERVE.equals(parentConstraints.getWhitespaceStrategy())) {
+								childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.IGNORE);
+								childConstraints.setIndentStrategy(XMLFormattingConstraints.INDENT);
+								childConstraints.setIsWhitespaceStrategyAHint(true);
+								childConstraints.setIsIndentStrategyAHint(true);
+							}
+							else {
+								// look for xml:space in content model
+								CMNamedNodeMap cmAttributes = elementDeclaration.getAttributes();
+
+								CMNamedNodeMapImpl allAttributes = new CMNamedNodeMapImpl(cmAttributes);
+								List nodes = ModelQueryUtil.getModelQuery(currentNode.getOwnerDocument()).getAvailableContent((Element) currentNode, elementDeclaration, ModelQuery.INCLUDE_ATTRIBUTES);
+								for (int k = 0; k < nodes.size(); k++) {
+									CMNode cmnode = (CMNode) nodes.get(k);
+									if (cmnode.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
+										allAttributes.put(cmnode);
+									}
+								}
+								cmAttributes = allAttributes;
+
+								// Check implied values from the DTD way.
+								CMAttributeDeclaration attributeDeclaration = (CMAttributeDeclaration) cmAttributes.getNamedItem(XML_SPACE);
+								if (attributeDeclaration != null) {
+									// CMAttributeDeclaration found, check
+									// it
+									// out.
+
+									//BUG214516/196544 - Fixed NPE that was caused by an attr having
+									// a null attr type
+									String defaultValue = null;
+									CMDataType attrType = attributeDeclaration.getAttrType();
+									if (attrType != null) {
+										if ((attrType.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_NONE) && attrType.getImpliedValue() != null)
+											defaultValue = attrType.getImpliedValue();
+										else if ((attrType.getEnumeratedValues() != null) && (attrType.getEnumeratedValues().length > 0)) {
+											defaultValue = attrType.getEnumeratedValues()[0];
+										}
+									}
+
+									// xml:space="preserve" means preserve
+									// space,
+									// everything else means back to
+									// default.
+									if (PRESERVE.equals(defaultValue))
+										childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.PRESERVE);
+									else
+										childConstraints.setWhitespaceStrategy(XMLFormattingConstraints.DEFAULT);
+								}
+								// If the node has no attributes, inherit the parents whitespace strategy
+								else {
+									if (parentConstraints != null)
+										childConstraints.setWhitespaceStrategy(parentConstraints.getWhitespaceStrategy());
+									else
+										childConstraints.setWhitespaceStrategy(null);
+								}
+							}
+						}
+					}
+				}
+			}
+			// set default values according to preferences
+			if (childConstraints.getWhitespaceStrategy() == null) {
+				childConstraints.setWhitespaceStrategy(preferences.getElementWhitespaceStrategy());
+			}
+			if (childConstraints.getIndentStrategy() == null) {
+				childConstraints.setIndentStrategy(preferences.getElementIndentStrategy());
+			}
+		}
+	}
+
+	/**
+	 * Calculates the current available line width given fullText.
+	 * 
+	 * @param fullText
+	 * @param availableLineWidth
+	 * @param maxAvailableLineWidth
+	 * @return
+	 */
+	private int updateLineWidthWithLastLine(String fullText, int availableLineWidth) {
+		int maxAvailableLineWidth = getFormattingPreferences().getMaxLineWidth();
+		int lineWidth = availableLineWidth;
+		if (fullText != null) {
+			int textLength = fullText.length();
+			// update available line width
+			// find last newline
+			int lastLFOffset = fullText.lastIndexOf('\n');
+			int lastCROffset = fullText.lastIndexOf('\r');
+			// all text was on 1 line
+			if (lastLFOffset == -1 && lastCROffset == -1) {
+				// just subtract text length from current
+				// available line width
+				lineWidth -= fullText.length();
+			}
+			else {
+				// calculate available line width of last line
+				int lastNewLine = Math.max(lastLFOffset, lastCROffset);
+				lineWidth = maxAvailableLineWidth - (textLength - lastNewLine);
+			}
+		}
+		return lineWidth;
+	}
+
+	private String getLineDelimiter(IStructuredDocumentRegion currentRegion) {
+		IStructuredDocument doc = currentRegion.getParentDocument();
+		int line = doc.getLineOfOffset(currentRegion.getStartOffset());
+		String lineDelimiter = doc.getLineDelimiter();
+		try {
+			if (line > 0) {
+				lineDelimiter = doc.getLineDelimiter(line - 1);
+			}
+		}
+		catch (BadLocationException e) {
+			// log for now, unless we find reason not to
+			Logger.log(Logger.INFO, e.getMessage());
+		}
+		// BUG115716: if cannot get line delimiter from current line, just
+		// use default line delimiter
+		if (lineDelimiter == null)
+			lineDelimiter = doc.getLineDelimiter();
+		return lineDelimiter;
+	}
+	
+	private String extractLineDelimiters(String base, IStructuredDocumentRegion currentRegion) {
+		String lineDelimiter = getLineDelimiter(currentRegion);
+		StringBuffer sb = new StringBuffer();
+		for(int index = 0; index < base.length();) {
+			index = base.indexOf(lineDelimiter, index);
+			if(index++ >= 0)
+				sb.append(lineDelimiter);
+			else
+				break;
+		}
+		return sb.toString();
+	}
+
+	void setProgressMonitor(IProgressMonitor monitor) {
+		fProgressMonitor = monitor;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormatterFormatProcessor.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormatterFormatProcessor.java
new file mode 100644
index 0000000..e02ee7e
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormatterFormatProcessor.java
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.formatter;
+
+import java.io.IOException;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.text.DocumentRewriteSession;
+import org.eclipse.jface.text.DocumentRewriteSessionType;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IDocumentExtension4;
+import org.eclipse.text.edits.TextEdit;
+import org.eclipse.wst.sse.core.StructuredModelManager;
+import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
+import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
+import org.eclipse.wst.xml.core.internal.Logger;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+import org.w3c.dom.Node;
+
+/**
+ * This is a wrapper for the new xml formatter so that it can be still
+ * considered an IStruturedFormatProcessor
+ */
+public class XMLFormatterFormatProcessor implements IStructuredFormatProcessor {
+	private DefaultXMLPartitionFormatter fFormatter = null;
+	private IProgressMonitor fProgressMonitor = null;
+
+	public void formatDocument(IDocument document, int start, int length) throws IOException, CoreException {
+		if (document instanceof IStructuredDocument) {
+			IStructuredModel model = StructuredModelManager.getModelManager().getModelForEdit((IStructuredDocument) document);
+			if (model != null) {
+				try {
+					formatModel(model, start, length);
+				}
+				finally {
+					model.releaseFromEdit();
+				}
+			}
+		}
+	}
+
+	public void formatFile(IFile file) throws IOException, CoreException {
+		if (file == null)
+			return;
+
+		IStructuredModel structuredModel = null;
+		// OutputStream outputStream = null;
+		try {
+			// setup structuredModel
+			// Note: We are getting model for edit. Will save model if model
+			// changed.
+			structuredModel = StructuredModelManager.getModelManager().getModelForEdit(file);
+
+			// format
+			formatModel(structuredModel);
+
+			// save model if needed
+			if (!structuredModel.isSharedForEdit() && structuredModel.isSaveNeeded())
+				structuredModel.save();
+		}
+		finally {
+			// ensureClosed(outputStream, null);
+			// release from model manager
+			if (structuredModel != null) {
+				structuredModel.releaseFromEdit();
+			}
+
+		}
+	}
+
+	public void formatModel(IStructuredModel structuredModel) {
+		int start = 0;
+		int length = structuredModel.getStructuredDocument().getLength();
+
+		formatModel(structuredModel, start, length);
+	}
+
+	public void formatModel(IStructuredModel structuredModel, int start, int length) {
+		if(fProgressMonitor != null)
+			fProgressMonitor.beginTask("", 2);
+		IStructuredDocument structuredDocument = structuredModel.getStructuredDocument();
+		DocumentRewriteSession activeRewriteSession = ((IDocumentExtension4) structuredDocument).getActiveRewriteSession();
+		boolean startedRewriteSession = false;
+		if (activeRewriteSession == null) {
+			activeRewriteSession = ((IDocumentExtension4) structuredDocument).startRewriteSession(DocumentRewriteSessionType.UNRESTRICTED);
+			startedRewriteSession = true;
+		}
+		getFormatter().setProgressMonitor(new NullProgressMonitor() {
+			public boolean isCanceled() {
+				return fProgressMonitor != null && fProgressMonitor.isCanceled();
+			}
+		});
+		TextEdit edit = getFormatter().format(structuredModel, start, length);
+		if(fProgressMonitor != null)
+			fProgressMonitor.worked(1);
+		
+		try {
+			structuredModel.aboutToChangeModel();
+			edit.apply(structuredDocument);
+			if(fProgressMonitor != null)
+				fProgressMonitor.worked(1);
+		}
+		catch (Exception e) {
+			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
+		}
+		finally {
+			if (startedRewriteSession && activeRewriteSession != null) {
+				((IDocumentExtension4) structuredDocument).stopRewriteSession(activeRewriteSession);
+			}
+			structuredModel.changedModel();
+			if(fProgressMonitor != null)
+				fProgressMonitor.done();
+		}
+	}
+
+	public void formatNode(Node node) {
+		if (node instanceof IDOMNode) {
+			IDOMNode domNode = (IDOMNode) node;
+			formatModel(domNode.getModel(), domNode.getStartOffset(), domNode.getLength());
+		}
+	}
+
+	public void setProgressMonitor(IProgressMonitor monitor) {
+		fProgressMonitor = monitor;
+	}
+
+	private DefaultXMLPartitionFormatter getFormatter() {
+		if (fFormatter == null) {
+			fFormatter = new DefaultXMLPartitionFormatter();
+		}
+		return fFormatter;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingConstraints.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingConstraints.java
new file mode 100644
index 0000000..fa2a53b
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingConstraints.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.formatter;
+
+
+public class XMLFormattingConstraints {
+	public final static String PRESERVE = "PRESERVE"; //$NON-NLS-1$
+	public final static String COLLAPSE = "COLLAPSE"; //$NON-NLS-1$
+	public final static String IGNORE = "IGNORE"; //$NON-NLS-1$
+	public final static String IGNOREANDTRIM = "IGNOREANDTRIM"; //$NON-NLS-1$
+	public final static String DEFAULT = "DEFAULT"; //$NON-NLS-1$
+	public final static String REPLACE = "REPLACE"; //$NON-NLS-1$
+	
+	public final static String INDENT = "INDENT"; //$NON-NLS-1$
+	public final static String NEW_LINE = "NEW_LINE"; //$NON-NLS-1$
+	public final static String INLINE = "INLINE"; //$NON-NLS-1$
+
+	private int fAvailableLineWidth = 0;
+	private int fIndentLevel = 0;
+	private String fIndentStrategy;
+	private String fWhitespaceStrategy;
+	private boolean fIsIndentStrategyAHint = false;
+	private boolean fIsWhitespaceStrategyAHint = false;
+
+	/**
+	 * Initializes the values in this formatting constraint with values from
+	 * constraints
+	 * 
+	 * @param constraints
+	 *            cannot be null
+	 */
+	public void copyConstraints(XMLFormattingConstraints constraints) {
+		setAvailableLineWidth(constraints.getAvailableLineWidth());
+		setIndentLevel(constraints.getIndentLevel());
+		setIndentStrategy(constraints.getIndentStrategy());
+		setWhitespaceStrategy(constraints.getWhitespaceStrategy());
+	}
+
+	public int getAvailableLineWidth() {
+		return fAvailableLineWidth;
+	}
+
+	public void setAvailableLineWidth(int lineWidth) {
+		fAvailableLineWidth = lineWidth;
+	}
+
+	public int getIndentLevel() {
+		return fIndentLevel;
+	}
+
+	public void setIndentLevel(int indentLevel) {
+		fIndentLevel = indentLevel;
+	}
+
+	public String getIndentStrategy() {
+		return fIndentStrategy;
+	}
+
+	public void setIndentStrategy(String indentStrategy) {
+		fIndentStrategy = indentStrategy;
+	}
+
+	public String getWhitespaceStrategy() {
+		return fWhitespaceStrategy;
+	}
+
+	public void setWhitespaceStrategy(String whitespaceStrategy) {
+		fWhitespaceStrategy = whitespaceStrategy;
+	}
+
+	public boolean isIndentStrategyAHint() {
+		return fIsIndentStrategyAHint;
+	}
+
+	public void setIsIndentStrategyAHint(boolean isIndentStrategyAHint) {
+		fIsIndentStrategyAHint = isIndentStrategyAHint;
+	}
+
+	public boolean isWhitespaceStrategyAHint() {
+		return fIsWhitespaceStrategyAHint;
+	}
+
+	public void setIsWhitespaceStrategyAHint(boolean isWhitespaceStrategyAHint) {
+		fIsWhitespaceStrategyAHint = isWhitespaceStrategyAHint;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingPreferences.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingPreferences.java
new file mode 100644
index 0000000..78711d9
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/formatter/XMLFormattingPreferences.java
@@ -0,0 +1,157 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2008 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.formatter;
+
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
+import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
+
+public class XMLFormattingPreferences {
+	public final static String PRESERVE = XMLFormattingConstraints.PRESERVE;
+	public final static String COLLAPSE = XMLFormattingConstraints.COLLAPSE;
+	public final static String IGNORE = XMLFormattingConstraints.IGNORE;
+
+	public final static String INDENT = XMLFormattingConstraints.INDENT;
+	public final static String NEW_LINE = XMLFormattingConstraints.NEW_LINE;
+	public final static String INLINE = XMLFormattingConstraints.INLINE;
+
+	private int fMaxLineWidth = 72;
+	private boolean fAlignFinalBracket = false;
+	private boolean fSpaceBeforeEmptyCloseTag = true;
+	private boolean fIndentMultipleAttributes = false;
+	private String fPCDataWhitespaceStrategy = XMLFormattingConstraints.PRESERVE;
+	private String fTextIndentStrategy = XMLFormattingConstraints.INLINE;
+	private String fTextWhitespaceStrategy = XMLFormattingConstraints.COLLAPSE;
+	private String fElementIndentStrategy = XMLFormattingConstraints.INDENT;
+	private String fElementWhitespaceStrategy = XMLFormattingConstraints.IGNORE;
+	private String fMixedIndentStrategy = XMLFormattingConstraints.INDENT;
+	private String fMixedWhitespaceStrategy = XMLFormattingConstraints.IGNORE;
+	private String fOneIndent = "\t"; //$NON-NLS-1$
+	private boolean fClearAllBlankLines = false;
+
+	public XMLFormattingPreferences() {
+		Preferences preferences = XMLCorePlugin.getDefault().getPluginPreferences();
+		if (preferences != null) {
+			setMaxLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH));
+			setIndentMultipleAttributes(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+			setAlignFinalBracket(preferences.getBoolean(XMLCorePreferenceNames.ALIGN_END_BRACKET));
+			setSpaceBeforeEmptyCloseTag(preferences.getBoolean(XMLCorePreferenceNames.SPACE_BEFORE_EMPTY_CLOSE_TAG));
+			
+			boolean preservepcdata = preferences.getBoolean(XMLCorePreferenceNames.PRESERVE_CDATACONTENT);
+			if (preservepcdata)
+				fPCDataWhitespaceStrategy = XMLFormattingPreferences.PRESERVE;
+			else
+				fPCDataWhitespaceStrategy = XMLFormattingPreferences.COLLAPSE;
+
+			char indentChar = ' ';
+			String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR);
+			if (XMLCorePreferenceNames.TAB.equals(indentCharPref)) {
+				indentChar = '\t';
+			}
+			int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE);
+
+			StringBuffer indent = new StringBuffer();
+			for (int i = 0; i < indentationWidth; i++) {
+				indent.append(indentChar);
+			}
+			setOneIndent(indent.toString());
+			setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
+		}
+	}
+
+	public int getMaxLineWidth() {
+		return fMaxLineWidth;
+	}
+
+	public boolean getAlignFinalBracket() {
+		return fAlignFinalBracket;
+	}
+
+	public boolean getSpaceBeforeEmptyCloseTag() {
+		return fSpaceBeforeEmptyCloseTag;
+	}
+	
+	public boolean getIndentMultipleAttributes() {
+		return fIndentMultipleAttributes;
+	}
+
+	public String getPCDataWhitespaceStrategy() {
+		return fPCDataWhitespaceStrategy;
+	}
+
+	public String getTextIndentStrategy() {
+		return fTextIndentStrategy;
+	}
+
+	public String getTextWhitespaceStrategy() {
+		return fTextWhitespaceStrategy;
+	}
+
+	public String getElementIndentStrategy() {
+		return fElementIndentStrategy;
+	}
+
+	public String getElementWhitespaceStrategy() {
+		return fElementWhitespaceStrategy;
+	}
+	
+	public void setSpaceBeforeEmptyCloseTag(boolean spaceBeforeEmptyCloseTag) {
+		fSpaceBeforeEmptyCloseTag = spaceBeforeEmptyCloseTag;
+	}
+
+	public void setIndentMultipleAttributes(boolean indentMultipleAttributes) {
+		fIndentMultipleAttributes = indentMultipleAttributes;
+	}
+
+	public void setPCDataWhitespaceStrategy(String dataWhitespaceStrategy) {
+		fPCDataWhitespaceStrategy = dataWhitespaceStrategy;
+	}
+
+	public void setAlignFinalBracket(boolean alignFinalBracket) {
+		fAlignFinalBracket = alignFinalBracket;
+	}
+
+	public String getMixedIndentStrategy() {
+		return fMixedIndentStrategy;
+	}
+
+	public void setMixedIndentStrategy(String mixedIndentStrategy) {
+		fMixedIndentStrategy = mixedIndentStrategy;
+	}
+
+	public String getMixedWhitespaceStrategy() {
+		return fMixedWhitespaceStrategy;
+	}
+
+	public void setMixedWhitespaceStrategy(String mixedWhitespaceStrategy) {
+		fMixedWhitespaceStrategy = mixedWhitespaceStrategy;
+	}
+
+	public String getOneIndent() {
+		return fOneIndent;
+	}
+
+	protected void setMaxLineWidth(int maxLineWidth) {
+		fMaxLineWidth = maxLineWidth;
+	}
+
+	protected void setOneIndent(String oneIndent) {
+		fOneIndent = oneIndent;
+	}
+
+	public boolean getClearAllBlankLines() {
+		return fClearAllBlankLines;
+	}
+
+	public void setClearAllBlankLines(boolean clearAllBlankLines) {
+		fClearAllBlankLines = clearAllBlankLines;
+	}
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/EmbeddedXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/EmbeddedXML.java
index 93004a6..566b6ef 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/EmbeddedXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/EmbeddedXML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/ModelHandlerForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/ModelHandlerForXML.java
index d777a2a..f4bdf3c 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/ModelHandlerForXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/ModelHandlerForXML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/XMLModelLoader.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/XMLModelLoader.java
index 9729bb9..ecf9223 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/XMLModelLoader.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelhandler/XMLModelLoader.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java
index 12e3609..805a9c1 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForEmbeddedXML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForXML.java
index 25b5c08..cbb4add 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryAdapterFactoryForXML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -15,8 +15,10 @@
 
 
 import java.io.File;
+import java.net.URI;
 
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.Path;
@@ -27,6 +29,7 @@
 import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
 import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
 import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
+import org.eclipse.wst.sse.core.internal.util.Debug;
 import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
 import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
 import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
@@ -141,39 +144,60 @@
 				IStructuredModel model = xmlNode.getModel();
 				stateNotifier = xmlNode.getModel();
 				stateNotifier.addModelStateListener(getInternalModelStateListener());
-				String baseLocation = null;
-				String modelBaseLocation = model.getBaseLocation();
-				if (modelBaseLocation != null) {
-					File file = new Path(modelBaseLocation).toFile();
-					if (file.exists()) {
-						baseLocation = file.getAbsolutePath();
-					}
-					else {
-						IPath basePath = new Path(modelBaseLocation);
-						IPath derivedPath = null;
-						if (basePath.segmentCount() > 1)
-							derivedPath = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath).getLocation();
-						else
-							derivedPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(basePath);
-						if (derivedPath != null) {
-							baseLocation = derivedPath.toString();
+
+				org.eclipse.wst.sse.core.internal.util.URIResolver resolver = model.getResolver();
+				if (Debug.displayInfo)
+					System.out.println("----------------ModelQueryAdapterFactoryForXML... baseLocation : " + resolver.getFileBaseLocation()); //$NON-NLS-1$
+
+				/**
+				 * XMLCatalogIdResolver currently requires a filesystem
+				 * location string. Customarily this will be what is in the
+				 * deprecated SSE URIResolver and required by the Common URI
+				 * Resolver.
+				 */
+				URIResolver idResolver = null;
+				if (resolver != null) {
+					idResolver = new XMLCatalogIdResolver(resolver.getFileBaseLocation(), resolver);
+				}
+				else {
+					/*
+					 * 203649 - this block may be necessary due to ordering of
+					 * setting the resolver into the model
+					 */
+					String baseLocation = null;
+					String modelsBaseLocation = model.getBaseLocation();
+					if (modelsBaseLocation != null) {
+						File file = new Path(modelsBaseLocation).toFile();
+						if (file.exists()) {
+							baseLocation = file.getAbsolutePath();
+						}
+						else {
+							IPath basePath = new Path(model.getBaseLocation());
+							IResource derivedResource = null;
+							if (basePath.segmentCount() > 1)
+								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getFile(basePath);
+							else
+								derivedResource = ResourcesPlugin.getWorkspace().getRoot().getProject(basePath.segment(0));
+							IPath derivedPath = derivedResource.getLocation();
+							if (derivedPath != null) {
+								baseLocation = derivedPath.toString();
+							}
+							else {
+								URI uri = derivedResource.getLocationURI();
+								if (uri != null) {
+									baseLocation = uri.toString();
+								}
+							}
+						}
+						if(baseLocation == null) {
+							baseLocation = modelsBaseLocation;
 						}
 					}
+					idResolver = new XMLCatalogIdResolver(baseLocation, null);
 				}
-				if (org.eclipse.wst.sse.core.internal.util.Debug.displayInfo)
-					System.out.println("----------------ModelQueryAdapterFactoryForXML... baseLocation : " + baseLocation); //$NON-NLS-1$
 
 				CMDocumentCache cmDocumentCache = new CMDocumentCache();
-				ModelQuery modelQuery = null;
-				URIResolver idResolver = null;
-
-				if (org.eclipse.wst.sse.core.internal.util.Debug.displayInfo)
-					System.out.println("********XMLModelQueryImpl"); //$NON-NLS-1$
-				org.eclipse.wst.sse.core.internal.util.URIResolver resolver = model.getResolver();
-				if (baseLocation != null || resolver != null) {
-					idResolver = new XMLCatalogIdResolver(baseLocation, resolver);
-				}
-				modelQuery = new XMLModelQueryImpl(cmDocumentCache, idResolver);
+				ModelQuery modelQuery = new XMLModelQueryImpl(cmDocumentCache, idResolver);
 
 				// cs todo...
 				// for now we create a CMDocumentCache on a 'per editor' basis
@@ -200,10 +224,22 @@
 	}
 
 	protected void updateResolver(IStructuredModel model) {
+
 		String baseLocation = model.getBaseLocation();
 		IFile baseFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(model.getBaseLocation()));
 		if (baseFile != null) {
-			baseLocation = baseFile.getLocation().toString();
+			if (baseFile.getLocation() != null) {
+				baseLocation = baseFile.getLocation().toString();
+			}
+			if (baseLocation == null && baseFile.getLocationURI() != null) {
+				baseLocation = baseFile.getLocationURI().toString();
+			}
+			if (baseLocation == null) {
+				baseLocation = baseFile.getFullPath().toString();
+			}
+		}
+		else {
+			baseLocation = model.getBaseLocation();
 		}
 		modelQueryAdapterImpl.setIdResolver(new XMLCatalogIdResolver(baseLocation, model.getResolver()));
 	}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryUtil.java
index fd7572f..eae3e89 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryUtil.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/ModelQueryUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLCatalogIdResolver.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLCatalogIdResolver.java
index c98aa43..61852f9 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLCatalogIdResolver.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLCatalogIdResolver.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -15,7 +15,6 @@
 
 import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
 import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.sse.core.internal.util.Assert;
 import org.eclipse.wst.sse.core.internal.util.URIResolver;
 import org.eclipse.wst.xml.core.internal.Logger;
 
@@ -35,6 +34,7 @@
 	}
 
 	private XMLCatalogIdResolver(String resourceLocation) {
+		this();
 		this.resourceLocation = resourceLocation;
 	}
 
@@ -76,8 +76,18 @@
 			// passing it thru to URIResolver
 			// bug 117424, we should be able to assume that the base location
 			// is non-null
-			Assert.isNotNull(base, "Base location is expected to be non null."); //$NON-NLS-1$
-			base = URIHelper.addImpliedFileProtocol(base);
+
+			/**
+			 * We shouldn't assert a failure because the catalog does not
+			 * require a base location to operate and it will be called from
+			 * non-file-based scenarios.
+			 * 
+			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=206176
+			 */
+			// Assert.isNotNull(base, "Base location is expected to be non null."); //$NON-NLS-1$
+			if (base != null) {
+				base = URIHelper.addImpliedFileProtocol(base);
+			}
 		}
 		result = URIResolverPlugin.createResolver().resolve(base, publicId, systemId);
 		return result;
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryAssociationProvider.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryAssociationProvider.java
index da470ad..74d14ab 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryAssociationProvider.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryAssociationProvider.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryImpl.java
index 2992a79..7bfa001 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/modelquery/XMLModelQueryImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/BlockStructuredDocumentRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/BlockStructuredDocumentRegion.java
index 280206c..7754a80 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/BlockStructuredDocumentRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/BlockStructuredDocumentRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/ContextRegionContainer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/ContextRegionContainer.java
index 2cdc7e7..a13f814 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/ContextRegionContainer.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/ContextRegionContainer.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/RegionFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/RegionFactory.java
index 5f08934..1315a77 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/RegionFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/RegionFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XML10Names.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XML10Names.java
index 955df30..af91c63 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XML10Names.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XML10Names.java
@@ -1,14 +1,15 @@
-/* The following code was generated by JFlex 1.4 on 7/5/05 1:40 AM */
+/* The following code was generated by JFlex 1.4 on 2/25/08 10:25 AM */
 
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004,2008 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
+ *     kb.huang  - Bug 214416  Dot char is not escaped in XML10Names.jFlex
  *******************************************************************************/
 /*nlsXXX*/
 package org.eclipse.wst.xml.core.internal.parser;
@@ -19,8 +20,8 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.jflex.de/">JFlex</a> 1.4
- * on 7/5/05 1:40 AM from the specification file
- * <tt>D:/builds/Workspaces/PureHeadWTP_M7/org.eclipse.wst.xml.core/DevTimeSupport/HeadParsers/XML10Names.jFlex</tt>
+ * on 2/25/08 10:25 AM from the specification file
+ * <tt>XML10Names.jflex</tt>
  */
 public final class XML10Names {
 
@@ -37,68 +38,67 @@
    * Translates characters to character classes
    */
   private static final String ZZ_CMAP_PACKED = 
-    "\11\0\1\1\1\2\2\0\1\1\22\0\1\1\14\0\1\0\2\0"+
-    "\12\0\1\3\6\0\32\3\4\0\1\3\1\0\32\3\74\0\1\0"+
-    "\10\0\27\3\1\0\37\3\1\0\72\3\2\0\13\3\2\0\10\3"+
-    "\1\0\65\3\1\0\104\3\11\0\44\3\3\0\2\3\4\0\36\3"+
-    "\70\0\131\3\22\0\7\3\16\0\2\0\56\0\106\0\32\0\2\0"+
-    "\44\0\1\3\1\0\3\3\1\0\1\3\1\0\24\3\1\0\54\3"+
-    "\1\0\7\3\3\0\1\3\1\0\1\3\1\0\1\3\1\0\1\3"+
-    "\1\0\22\3\15\0\14\3\1\0\102\3\1\0\14\3\1\0\44\3"+
-    "\1\0\4\0\11\0\65\3\2\0\2\3\2\0\2\3\3\0\34\3"+
-    "\2\0\10\3\2\0\2\3\67\0\46\3\2\0\1\3\7\0\46\3"+
-    "\12\0\21\0\1\0\27\0\1\0\3\0\1\0\1\0\1\0\2\0"+
-    "\1\0\1\0\13\0\33\3\5\0\3\3\56\0\32\3\5\0\1\0"+
-    "\12\3\10\0\15\0\12\0\6\0\1\0\107\3\2\0\5\3\1\0"+
-    "\17\3\1\0\4\3\1\0\1\3\17\0\2\3\2\0\1\0\4\0"+
-    "\2\0\12\0\u0207\0\3\0\1\0\65\3\2\0\1\0\1\3\20\0"+
-    "\3\0\4\0\3\0\12\3\2\0\2\0\12\0\21\0\3\0\1\0"+
-    "\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0\1\3\3\0"+
-    "\4\3\2\0\1\0\1\0\7\0\2\0\2\0\2\0\3\0\11\0"+
-    "\1\0\4\0\2\3\1\0\3\3\2\0\2\0\12\0\2\3\20\0"+
-    "\1\0\2\0\6\3\4\0\2\3\2\0\26\3\1\0\7\3\1\0"+
-    "\2\3\1\0\2\3\1\0\2\3\2\0\1\0\1\0\5\0\4\0"+
-    "\2\0\2\0\3\0\13\0\4\3\1\0\1\3\7\0\12\0\2\0"+
-    "\3\3\14\0\3\0\1\0\7\3\1\0\1\3\1\0\3\3\1\0"+
-    "\26\3\1\0\7\3\1\0\2\3\1\0\5\3\2\0\1\0\1\3"+
-    "\10\0\1\0\3\0\1\0\3\0\22\0\1\3\5\0\12\0\21\0"+
-    "\3\0\1\0\10\3\2\0\2\3\2\0\26\3\1\0\7\3\1\0"+
-    "\2\3\2\0\4\3\2\0\1\0\1\3\6\0\3\0\2\0\2\0"+
-    "\3\0\10\0\2\0\4\0\2\3\1\0\3\3\4\0\12\0\22\0"+
-    "\2\0\1\0\6\3\3\0\3\3\1\0\4\3\3\0\2\3\1\0"+
-    "\1\3\1\0\2\3\3\0\2\3\3\0\3\3\3\0\10\3\1\0"+
-    "\3\3\4\0\5\0\3\0\3\0\1\0\4\0\11\0\1\0\17\0"+
-    "\11\0\21\0\3\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0"+
-    "\12\3\1\0\5\3\4\0\7\0\1\0\3\0\1\0\4\0\7\0"+
-    "\2\0\11\0\2\3\4\0\12\0\22\0\2\0\1\0\10\3\1\0"+
-    "\3\3\1\0\27\3\1\0\12\3\1\0\5\3\4\0\7\0\1\0"+
-    "\3\0\1\0\4\0\7\0\2\0\7\0\1\3\1\0\2\3\4\0"+
-    "\12\0\22\0\2\0\1\0\10\3\1\0\3\3\1\0\27\3\1\0"+
-    "\20\3\4\0\6\0\2\0\3\0\1\0\4\0\11\0\1\0\10\0"+
-    "\2\3\4\0\12\0\221\0\56\3\1\0\1\3\1\0\2\3\7\0"+
-    "\5\0\6\3\1\0\10\0\1\0\12\0\47\0\2\3\1\0\1\3"+
-    "\2\0\2\3\1\0\1\3\2\0\1\3\6\0\4\3\1\0\7\3"+
-    "\1\0\3\3\1\0\1\3\1\0\1\3\2\0\2\3\1\0\2\3"+
-    "\1\0\1\3\1\0\2\3\6\0\1\0\2\0\1\3\2\0\5\3"+
-    "\1\0\1\0\1\0\6\0\2\0\12\0\76\0\2\0\6\0\12\0"+
-    "\13\0\1\0\1\0\1\0\1\0\1\0\4\0\2\0\10\3\1\0"+
-    "\41\3\7\0\24\0\1\0\6\0\4\0\6\0\1\0\1\0\1\0"+
-    "\25\0\3\0\7\0\1\0\1\0\346\0\46\3\12\0\47\3\11\0"+
-    "\1\3\1\0\2\3\1\0\3\3\1\0\1\3\1\0\2\3\1\0"+
-    "\5\3\51\0\1\3\1\0\1\3\1\0\1\3\13\0\1\3\1\0"+
-    "\1\3\1\0\1\3\3\0\2\3\3\0\1\3\5\0\3\3\1\0"+
-    "\1\3\1\0\1\3\1\0\1\3\1\0\1\3\3\0\2\3\3\0"+
-    "\2\3\1\0\1\3\50\0\1\3\11\0\1\3\2\0\1\3\2\0"+
-    "\2\3\7\0\2\3\1\0\1\3\1\0\7\3\50\0\1\3\4\0"+
-    "\1\3\10\0\1\3\u0c06\0\234\3\4\0\132\3\6\0\26\3\2\0"+
-    "\6\3\2\0\46\3\2\0\6\3\2\0\10\3\1\0\1\3\1\0"+
-    "\1\3\1\0\1\3\1\0\37\3\2\0\65\3\1\0\7\3\1\0"+
-    "\1\3\3\0\3\3\1\0\7\3\3\0\4\3\2\0\6\3\4\0"+
-    "\15\3\5\0\3\3\1\0\7\3\323\0\15\0\4\0\1\0\104\0"+
-    "\1\3\3\0\2\3\2\0\1\3\121\0\3\3\u0e82\0\1\0\1\0"+
-    "\1\3\31\0\11\3\6\0\1\0\5\0\13\0\124\3\4\0\2\0"+
-    "\2\0\2\0\2\0\132\3\1\0\3\0\6\0\50\3\u1cd3\0\u51a6\3"+
-    "\u0c5a\0\u2ba4\3\u285c\0";
+    "\12\0\1\3\42\0\1\2\1\2\1\0\12\2\1\1\6\0\32\1"+
+    "\4\0\1\1\1\0\32\1\74\0\1\2\10\0\27\1\1\0\37\1"+
+    "\1\0\72\1\2\0\13\1\2\0\10\1\1\0\65\1\1\0\104\1"+
+    "\11\0\44\1\3\0\2\1\4\0\36\1\70\0\131\1\22\0\7\1"+
+    "\16\0\2\2\56\0\106\2\32\0\2\2\44\0\1\1\1\2\3\1"+
+    "\1\0\1\1\1\0\24\1\1\0\54\1\1\0\7\1\3\0\1\1"+
+    "\1\0\1\1\1\0\1\1\1\0\1\1\1\0\22\1\15\0\14\1"+
+    "\1\0\102\1\1\0\14\1\1\0\44\1\1\0\4\2\11\0\65\1"+
+    "\2\0\2\1\2\0\2\1\3\0\34\1\2\0\10\1\2\0\2\1"+
+    "\67\0\46\1\2\0\1\1\7\0\46\1\12\0\21\2\1\0\27\2"+
+    "\1\0\3\2\1\0\1\2\1\0\2\2\1\0\1\2\13\0\33\1"+
+    "\5\0\3\1\56\0\32\1\5\0\1\2\12\1\10\2\15\0\12\2"+
+    "\6\0\1\2\107\1\2\0\5\1\1\0\17\1\1\0\4\1\1\0"+
+    "\1\1\17\2\2\1\2\2\1\0\4\2\2\0\12\2\u0207\0\3\2"+
+    "\1\0\65\1\2\0\1\2\1\1\20\2\3\0\4\2\3\0\12\1"+
+    "\2\2\2\0\12\2\21\0\3\2\1\0\10\1\2\0\2\1\2\0"+
+    "\26\1\1\0\7\1\1\0\1\1\3\0\4\1\2\0\1\2\1\0"+
+    "\7\2\2\0\2\2\2\0\3\2\11\0\1\2\4\0\2\1\1\0"+
+    "\3\1\2\2\2\0\12\2\2\1\20\0\1\2\2\0\6\1\4\0"+
+    "\2\1\2\0\26\1\1\0\7\1\1\0\2\1\1\0\2\1\1\0"+
+    "\2\1\2\0\1\2\1\0\5\2\4\0\2\2\2\0\3\2\13\0"+
+    "\4\1\1\0\1\1\7\0\12\2\2\2\3\1\14\0\3\2\1\0"+
+    "\7\1\1\0\1\1\1\0\3\1\1\0\26\1\1\0\7\1\1\0"+
+    "\2\1\1\0\5\1\2\0\1\2\1\1\10\2\1\0\3\2\1\0"+
+    "\3\2\22\0\1\1\5\0\12\2\21\0\3\2\1\0\10\1\2\0"+
+    "\2\1\2\0\26\1\1\0\7\1\1\0\2\1\2\0\4\1\2\0"+
+    "\1\2\1\1\6\2\3\0\2\2\2\0\3\2\10\0\2\2\4\0"+
+    "\2\1\1\0\3\1\4\0\12\2\22\0\2\2\1\0\6\1\3\0"+
+    "\3\1\1\0\4\1\3\0\2\1\1\0\1\1\1\0\2\1\3\0"+
+    "\2\1\3\0\3\1\3\0\10\1\1\0\3\1\4\0\5\2\3\0"+
+    "\3\2\1\0\4\2\11\0\1\2\17\0\11\2\21\0\3\2\1\0"+
+    "\10\1\1\0\3\1\1\0\27\1\1\0\12\1\1\0\5\1\4\0"+
+    "\7\2\1\0\3\2\1\0\4\2\7\0\2\2\11\0\2\1\4\0"+
+    "\12\2\22\0\2\2\1\0\10\1\1\0\3\1\1\0\27\1\1\0"+
+    "\12\1\1\0\5\1\4\0\7\2\1\0\3\2\1\0\4\2\7\0"+
+    "\2\2\7\0\1\1\1\0\2\1\4\0\12\2\22\0\2\2\1\0"+
+    "\10\1\1\0\3\1\1\0\27\1\1\0\20\1\4\0\6\2\2\0"+
+    "\3\2\1\0\4\2\11\0\1\2\10\0\2\1\4\0\12\2\221\0"+
+    "\56\1\1\0\1\1\1\2\2\1\7\2\5\0\6\1\1\2\10\2"+
+    "\1\0\12\2\47\0\2\1\1\0\1\1\2\0\2\1\1\0\1\1"+
+    "\2\0\1\1\6\0\4\1\1\0\7\1\1\0\3\1\1\0\1\1"+
+    "\1\0\1\1\2\0\2\1\1\0\2\1\1\0\1\1\1\2\2\1"+
+    "\6\2\1\0\2\2\1\1\2\0\5\1\1\0\1\2\1\0\6\2"+
+    "\2\0\12\2\76\0\2\2\6\0\12\2\13\0\1\2\1\0\1\2"+
+    "\1\0\1\2\4\0\2\2\10\1\1\0\41\1\7\0\24\2\1\0"+
+    "\6\2\4\0\6\2\1\0\1\2\1\0\25\2\3\0\7\2\1\0"+
+    "\1\2\346\0\46\1\12\0\47\1\11\0\1\1\1\0\2\1\1\0"+
+    "\3\1\1\0\1\1\1\0\2\1\1\0\5\1\51\0\1\1\1\0"+
+    "\1\1\1\0\1\1\13\0\1\1\1\0\1\1\1\0\1\1\3\0"+
+    "\2\1\3\0\1\1\5\0\3\1\1\0\1\1\1\0\1\1\1\0"+
+    "\1\1\1\0\1\1\3\0\2\1\3\0\2\1\1\0\1\1\50\0"+
+    "\1\1\11\0\1\1\2\0\1\1\2\0\2\1\7\0\2\1\1\0"+
+    "\1\1\1\0\7\1\50\0\1\1\4\0\1\1\10\0\1\1\u0c06\0"+
+    "\234\1\4\0\132\1\6\0\26\1\2\0\6\1\2\0\46\1\2\0"+
+    "\6\1\2\0\10\1\1\0\1\1\1\0\1\1\1\0\1\1\1\0"+
+    "\37\1\2\0\65\1\1\0\7\1\1\0\1\1\3\0\3\1\1\0"+
+    "\7\1\3\0\4\1\2\0\6\1\4\0\15\1\5\0\3\1\1\0"+
+    "\7\1\323\0\15\2\4\0\1\2\104\0\1\1\3\0\2\1\2\0"+
+    "\1\1\121\0\3\1\u0e82\0\1\2\1\0\1\1\31\0\11\1\6\2"+
+    "\1\0\5\2\13\0\124\1\4\0\2\2\2\0\2\2\2\0\132\1"+
+    "\1\0\3\2\6\0\50\1\u1cd3\0\u51a6\1\u0c5a\0\u2ba4\1\u285c\0";
 
   /** 
    * Translates characters to character classes
@@ -111,10 +111,10 @@
   private static final int [] ZZ_ACTION = zzUnpackAction();
 
   private static final String ZZ_ACTION_PACKED_0 =
-    "\1\0\1\1\1\2\4\1";
+    "\1\0\1\1\1\2\1\3";
 
   private static int [] zzUnpackAction() {
-    int [] result = new int[7];
+    int [] result = new int[4];
     int offset = 0;
     offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
     return result;
@@ -139,10 +139,10 @@
   private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
 
   private static final String ZZ_ROWMAP_PACKED_0 =
-    "\0\0\0\4\0\10\0\14\0\20\0\24\0\30";
+    "\0\0\0\4\0\10\0\14";
 
   private static int [] zzUnpackRowMap() {
-    int [] result = new int[7];
+    int [] result = new int[4];
     int offset = 0;
     offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
     return result;
@@ -163,15 +163,14 @@
    * The transition table of the DFA
    */
   private static final int ZZ_TRANS [] = {
-    1, 1, -1, 2, -1, -1, -1, -1, 2, 3, 
-    4, 2, 2, 3, 4, 5, -1, 4, 4, 6, 
-    5, 5, 4, 5, 6, 6, -1, 6, 
+    1, 2, 1, -1, -1, -1, -1, -1, 3, 2, 
+    2, -1, 3, 3, 3, -1
   };
 
   /* error codes */
   private static final int ZZ_UNKNOWN_ERROR = 0;
   private static final int ZZ_NO_MATCH = 1;
-  //private static final int ZZ_PUSHBACK_2BIG = 2;
+//  private static final int ZZ_PUSHBACK_2BIG = 2;
 
   /* error messages for the codes above */
   private static final String ZZ_ERROR_MSG[] = {
@@ -186,10 +185,10 @@
   private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
 
   private static final String ZZ_ATTRIBUTE_PACKED_0 =
-    "\1\0\1\11\5\1";
+    "\1\0\1\11\2\1";
 
   private static int [] zzUnpackAttribute() {
-    int [] result = new int[7];
+    int [] result = new int[4];
     int offset = 0;
     offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
     return result;
@@ -237,47 +236,47 @@
   private int zzEndRead;
 
   /** number of newlines encountered up to the start of the matched text */
-  //private int yyline;
+//  private int yyline;
 
   /** the number of characters up to the start of the matched text */
-  //private int yychar;
+//  private int yychar;
 
   /**
    * the number of characters from the last newline up to the start of the 
    * matched text
    */
-  //private int yycolumn;
+//  private int yycolumn;
 
   /** 
    * zzAtBOL == true <=> the scanner is currently at the beginning of a line
    */
-  //private boolean zzAtBOL = true;
+//  private boolean zzAtBOL = true;
 
   /** zzAtEOF == true <=> the scanner is at the EOF */
   private boolean zzAtEOF;
 
   /* user code: */
+        boolean result;
+        /**
+         * Creates a new scanner
+         */
+        public XML10Names() {
+                this.zzReader = null;
+        }
 
-	/**
-	 * Creates a new scanner
-	 */
-	public XML10Names() {
-		this.zzReader = null;
-	}
-
-	public boolean isValidXML10Name(String stringToCheck) {
-		boolean result = false;
-		yyreset(new java.io.StringReader(stringToCheck));
-		try {
-			result = isValidXML10Name();
-		}
-		catch (java.io.IOException e) {
-			// should be impossible with strings, but if occurs, just means
-			// "not"
-			result = false;
-		}
-		return result;
-	}
+        public boolean isValidXML10Name(String stringToCheck) {
+                boolean result = false;
+                yyreset(new java.io.StringReader(stringToCheck));
+                try {
+                        result = isValidXML10Name();
+                }
+                catch (java.io.IOException e) {
+                        // should be impossible with strings, but if occurs, just means
+                        // "not"
+                        result = false;
+                }
+                return result;
+        }
 
 
 
@@ -311,7 +310,7 @@
     char [] map = new char[0x10000];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 1226) {
+    while (i < 1218) {
       int  count = packed.charAt(i++);
       char value = packed.charAt(i++);
       do map[j++] = value; while (--count > 0);
@@ -569,17 +568,21 @@
 
       switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
         case 1: 
-          { return false;
-          }
-        case 3: break;
-        case 2: 
-          { return true;
+          { return false; /* matched wild */
           }
         case 4: break;
+        case 2: 
+          { return true; /* exact name */
+          }
+        case 5: break;
+        case 3: 
+          { return false; /* more than name */
+          }
+        case 6: break;
         default: 
           if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
             zzAtEOF = true;
-              { {return false;} }
+              { {return false; /* hit end with no match */} }
           } 
           else {
             zzScanError(ZZ_NO_MATCH);
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLSourceParser.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLSourceParser.java
index 69fc6d5..0ada81c 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLSourceParser.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLSourceParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -112,21 +112,23 @@
 	}
 
 	protected void fireNodeParsed(IStructuredDocumentRegion fCurrentNode) {
-		// never let an Exceptions from foreign code interfere with completion
-		// of parsing. To get an exception here is definitely a program error
-		// somewhere,
-		// we can't afford to interrupt the flow of control. or backwards
-		// typing can result!
-		// 
-		// 
+		/*
+		 * Never let an Exceptions from foreign code interfere with completion
+		 * of parsing. To get an exception here is definitely a program error
+		 * somewhere, but we can't afford to interrupt the flow of control. or
+		 * backwards typing can result!
+		 * 
+		 * Protect the user's data above everything.
+		 */
 		try {
 			if (fCurrentNode != null && fStructuredDocumentRegionHandlers != null) {
-				for (int i = 0; i < fStructuredDocumentRegionHandlers.size(); i++)
+				for (int i = 0; i < fStructuredDocumentRegionHandlers.size(); i++) {
 					((StructuredDocumentRegionHandler) fStructuredDocumentRegionHandlers.get(i)).nodeParsed(fCurrentNode);
+				}
 			}
 		}
 		catch (Exception e) {
-			Logger.log(Logger.ERROR, e.getMessage());
+		    Logger.log(Logger.ERROR, "Error occurred while firing Node Parsed event", e); //$NON-NLS-1$
 		}
 	}
 
@@ -232,7 +234,7 @@
 	}
 
 	/**
-	 * 
+	 * @deprecated - use the add/remove methods instead
 	 * @return java.util.List
 	 */
 	public List getStructuredDocumentRegionHandlers() {
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredDocumentReParser.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredDocumentReParser.java
index b186ef8..c185520 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredDocumentReParser.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredDocumentReParser.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredRegionFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredRegionFactory.java
index 304c81d..8a98dc2 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredRegionFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLStructuredRegionFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
index 0af16d8..b4607a2 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/XMLTokenizer.java
@@ -1,7 +1,7 @@
-/* The following code was generated by JFlex 1.2.2 on 1/27/05 4:48 PM */
+/* The following code was generated by JFlex 1.2.2 on 10/17/07 4:27 AM */
 
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -10,7 +10,7 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*nlsXXX*/
+
 package org.eclipse.wst.xml.core.internal.parser;
 
 import java.io.CharArrayReader;
@@ -32,7 +32,7 @@
 /**
  * This class is a scanner generated by 
  * <a href="http://www.informatik.tu-muenchen.de/~kleing/jflex/">JFlex</a> 1.2.2
- * on 1/27/05 4:48 PM from the specification file
+ * on 10/17/07 4:27 AM from the specification file
  * <tt>file:/D:/eclipse.wtp/workspace/org.eclipse.wst.sse.core/DevTimeSupport/SedModel/HTMLTokenizer/devel/XMLTokenizer.jflex</tt>
  */
 public class XMLTokenizer implements BlockTokenizer, DOMRegionContext {
@@ -77,75 +77,75 @@
    * Translates characters to character classes
    */
   final private static String yycmap_packed = 
-    "\11\0\1\5\1\22\2\0\1\14\22\0\1\14\1\21\1\11\1\51"+
+    "\11\0\1\5\1\22\2\0\1\14\22\0\1\14\1\21\1\11\1\55"+
     "\1\16\1\17\1\12\1\13\1\16\1\16\1\16\1\16\1\16\1\7"+
-    "\1\6\1\3\12\15\1\10\1\54\1\1\1\43\1\2\1\4\1\16"+
-    "\1\32\1\55\1\30\1\31\1\35\1\52\1\34\1\34\1\40\1\34"+
-    "\1\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\33"+
-    "\1\53\2\34\1\23\1\44\1\34\1\27\1\0\1\20\1\0\1\10"+
-    "\1\0\1\47\1\55\1\56\1\50\1\35\1\52\1\34\1\34\1\40"+
-    "\2\34\1\26\1\25\1\42\1\41\1\45\1\34\1\36\1\37\1\46"+
-    "\1\53\1\34\1\34\1\24\1\44\1\34\1\0\1\0\72\0\1\60"+
-    "\10\0\27\57\1\0\37\57\1\0\72\57\2\0\13\57\2\0\10\57"+
-    "\1\0\65\57\1\0\104\57\11\0\44\57\3\0\2\57\4\0\36\57"+
-    "\70\0\131\57\22\0\7\57\16\0\2\60\56\0\106\60\32\0\2\60"+
-    "\44\0\1\57\1\60\3\57\1\0\1\57\1\0\24\57\1\0\54\57"+
-    "\1\0\7\57\3\0\1\57\1\0\1\57\1\0\1\57\1\0\1\57"+
-    "\1\0\22\57\15\0\14\57\1\0\102\57\1\0\14\57\1\0\44\57"+
-    "\1\0\4\60\11\0\65\57\2\0\2\57\2\0\2\57\3\0\34\57"+
-    "\2\0\10\57\2\0\2\57\67\0\46\57\2\0\1\57\7\0\46\57"+
-    "\12\0\21\60\1\0\27\60\1\0\3\60\1\0\1\60\1\0\2\60"+
-    "\1\0\1\60\13\0\33\57\5\0\3\57\56\0\32\57\5\0\1\60"+
-    "\12\57\10\60\15\0\12\60\6\0\1\60\107\57\2\0\5\57\1\0"+
-    "\17\57\1\0\4\57\1\0\1\57\17\60\2\57\2\60\1\0\4\60"+
-    "\2\0\12\60\u0207\0\3\60\1\0\65\57\2\0\1\60\1\57\20\60"+
-    "\3\0\4\60\3\0\12\57\2\60\2\0\12\60\21\0\3\60\1\0"+
-    "\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0\1\57\3\0"+
-    "\4\57\2\0\1\60\1\0\7\60\2\0\2\60\2\0\3\60\11\0"+
-    "\1\60\4\0\2\57\1\0\3\57\2\60\2\0\12\60\2\57\20\0"+
-    "\1\60\2\0\6\57\4\0\2\57\2\0\26\57\1\0\7\57\1\0"+
-    "\2\57\1\0\2\57\1\0\2\57\2\0\1\60\1\0\5\60\4\0"+
-    "\2\60\2\0\3\60\13\0\4\57\1\0\1\57\7\0\12\60\2\60"+
-    "\3\57\14\0\3\60\1\0\7\57\1\0\1\57\1\0\3\57\1\0"+
-    "\26\57\1\0\7\57\1\0\2\57\1\0\5\57\2\0\1\60\1\57"+
-    "\10\60\1\0\3\60\1\0\3\60\22\0\1\57\5\0\12\60\21\0"+
-    "\3\60\1\0\10\57\2\0\2\57\2\0\26\57\1\0\7\57\1\0"+
-    "\2\57\2\0\4\57\2\0\1\60\1\57\6\60\3\0\2\60\2\0"+
-    "\3\60\10\0\2\60\4\0\2\57\1\0\3\57\4\0\12\60\22\0"+
-    "\2\60\1\0\6\57\3\0\3\57\1\0\4\57\3\0\2\57\1\0"+
-    "\1\57\1\0\2\57\3\0\2\57\3\0\3\57\3\0\10\57\1\0"+
-    "\3\57\4\0\5\60\3\0\3\60\1\0\4\60\11\0\1\60\17\0"+
-    "\11\60\21\0\3\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0"+
-    "\12\57\1\0\5\57\4\0\7\60\1\0\3\60\1\0\4\60\7\0"+
-    "\2\60\11\0\2\57\4\0\12\60\22\0\2\60\1\0\10\57\1\0"+
-    "\3\57\1\0\27\57\1\0\12\57\1\0\5\57\4\0\7\60\1\0"+
-    "\3\60\1\0\4\60\7\0\2\60\7\0\1\57\1\0\2\57\4\0"+
-    "\12\60\22\0\2\60\1\0\10\57\1\0\3\57\1\0\27\57\1\0"+
-    "\20\57\4\0\6\60\2\0\3\60\1\0\4\60\11\0\1\60\10\0"+
-    "\2\57\4\0\12\60\221\0\56\57\1\0\1\57\1\60\2\57\7\60"+
-    "\5\0\6\57\1\60\10\60\1\0\12\60\47\0\2\57\1\0\1\57"+
-    "\2\0\2\57\1\0\1\57\2\0\1\57\6\0\4\57\1\0\7\57"+
-    "\1\0\3\57\1\0\1\57\1\0\1\57\2\0\2\57\1\0\2\57"+
-    "\1\0\1\57\1\60\2\57\6\60\1\0\2\60\1\57\2\0\5\57"+
-    "\1\0\1\60\1\0\6\60\2\0\12\60\76\0\2\60\6\0\12\60"+
-    "\13\0\1\60\1\0\1\60\1\0\1\60\4\0\2\60\10\57\1\0"+
-    "\41\57\7\0\24\60\1\0\6\60\4\0\6\60\1\0\1\60\1\0"+
-    "\25\60\3\0\7\60\1\0\1\60\346\0\46\57\12\0\47\57\11\0"+
-    "\1\57\1\0\2\57\1\0\3\57\1\0\1\57\1\0\2\57\1\0"+
-    "\5\57\51\0\1\57\1\0\1\57\1\0\1\57\13\0\1\57\1\0"+
-    "\1\57\1\0\1\57\3\0\2\57\3\0\1\57\5\0\3\57\1\0"+
-    "\1\57\1\0\1\57\1\0\1\57\1\0\1\57\3\0\2\57\3\0"+
-    "\2\57\1\0\1\57\50\0\1\57\11\0\1\57\2\0\1\57\2\0"+
-    "\2\57\7\0\2\57\1\0\1\57\1\0\7\57\50\0\1\57\4\0"+
-    "\1\57\10\0\1\57\u0c06\0\234\57\4\0\132\57\6\0\26\57\2\0"+
-    "\6\57\2\0\46\57\2\0\6\57\2\0\10\57\1\0\1\57\1\0"+
-    "\1\57\1\0\1\57\1\0\37\57\2\0\65\57\1\0\7\57\1\0"+
-    "\1\57\3\0\3\57\1\0\7\57\3\0\4\57\2\0\6\57\4\0"+
-    "\15\57\5\0\3\57\1\0\7\57\323\0\15\60\4\0\1\60\104\0"+
-    "\1\57\3\0\2\57\2\0\1\57\121\0\3\57\u0e82\0\1\60\1\0"+
-    "\1\57\31\0\11\57\6\60\1\0\5\60\13\0\124\57\4\0\2\60"+
-    "\2\0\2\60\2\0\132\57\1\0\3\60\6\0\50\57\u1cd3\0\u51a6\57"+
-    "\u0c5a\0\u2ba4\57\134\0\u0800\0\u1ffe\0\2\0";
+    "\1\6\1\3\12\15\1\10\1\61\1\1\1\45\1\2\1\4\1\16"+
+    "\1\34\1\62\1\32\1\33\1\50\1\57\1\36\1\36\1\42\1\36"+
+    "\1\36\1\27\1\25\1\44\1\43\1\47\1\36\1\40\1\56\1\35"+
+    "\1\60\2\36\1\23\1\46\1\36\1\31\1\0\1\20\1\0\1\10"+
+    "\1\0\1\52\1\62\1\63\1\53\1\37\1\57\1\36\1\66\1\42"+
+    "\2\36\1\30\1\26\1\44\1\43\1\47\1\36\1\40\1\41\1\51"+
+    "\1\60\1\36\1\36\1\24\1\54\1\36\1\0\1\0\72\0\1\65"+
+    "\10\0\27\64\1\0\37\64\1\0\72\64\2\0\13\64\2\0\10\64"+
+    "\1\0\65\64\1\0\104\64\11\0\44\64\3\0\2\64\4\0\36\64"+
+    "\70\0\131\64\22\0\7\64\16\0\2\65\56\0\106\65\32\0\2\65"+
+    "\44\0\1\64\1\65\3\64\1\0\1\64\1\0\24\64\1\0\54\64"+
+    "\1\0\7\64\3\0\1\64\1\0\1\64\1\0\1\64\1\0\1\64"+
+    "\1\0\22\64\15\0\14\64\1\0\102\64\1\0\14\64\1\0\44\64"+
+    "\1\0\4\65\11\0\65\64\2\0\2\64\2\0\2\64\3\0\34\64"+
+    "\2\0\10\64\2\0\2\64\67\0\46\64\2\0\1\64\7\0\46\64"+
+    "\12\0\21\65\1\0\27\65\1\0\3\65\1\0\1\65\1\0\2\65"+
+    "\1\0\1\65\13\0\33\64\5\0\3\64\56\0\32\64\5\0\1\65"+
+    "\12\64\10\65\15\0\12\65\6\0\1\65\107\64\2\0\5\64\1\0"+
+    "\17\64\1\0\4\64\1\0\1\64\17\65\2\64\2\65\1\0\4\65"+
+    "\2\0\12\65\u0207\0\3\65\1\0\65\64\2\0\1\65\1\64\20\65"+
+    "\3\0\4\65\3\0\12\64\2\65\2\0\12\65\21\0\3\65\1\0"+
+    "\10\64\2\0\2\64\2\0\26\64\1\0\7\64\1\0\1\64\3\0"+
+    "\4\64\2\0\1\65\1\0\7\65\2\0\2\65\2\0\3\65\11\0"+
+    "\1\65\4\0\2\64\1\0\3\64\2\65\2\0\12\65\2\64\20\0"+
+    "\1\65\2\0\6\64\4\0\2\64\2\0\26\64\1\0\7\64\1\0"+
+    "\2\64\1\0\2\64\1\0\2\64\2\0\1\65\1\0\5\65\4\0"+
+    "\2\65\2\0\3\65\13\0\4\64\1\0\1\64\7\0\12\65\2\65"+
+    "\3\64\14\0\3\65\1\0\7\64\1\0\1\64\1\0\3\64\1\0"+
+    "\26\64\1\0\7\64\1\0\2\64\1\0\5\64\2\0\1\65\1\64"+
+    "\10\65\1\0\3\65\1\0\3\65\22\0\1\64\5\0\12\65\21\0"+
+    "\3\65\1\0\10\64\2\0\2\64\2\0\26\64\1\0\7\64\1\0"+
+    "\2\64\2\0\4\64\2\0\1\65\1\64\6\65\3\0\2\65\2\0"+
+    "\3\65\10\0\2\65\4\0\2\64\1\0\3\64\4\0\12\65\22\0"+
+    "\2\65\1\0\6\64\3\0\3\64\1\0\4\64\3\0\2\64\1\0"+
+    "\1\64\1\0\2\64\3\0\2\64\3\0\3\64\3\0\10\64\1\0"+
+    "\3\64\4\0\5\65\3\0\3\65\1\0\4\65\11\0\1\65\17\0"+
+    "\11\65\21\0\3\65\1\0\10\64\1\0\3\64\1\0\27\64\1\0"+
+    "\12\64\1\0\5\64\4\0\7\65\1\0\3\65\1\0\4\65\7\0"+
+    "\2\65\11\0\2\64\4\0\12\65\22\0\2\65\1\0\10\64\1\0"+
+    "\3\64\1\0\27\64\1\0\12\64\1\0\5\64\4\0\7\65\1\0"+
+    "\3\65\1\0\4\65\7\0\2\65\7\0\1\64\1\0\2\64\4\0"+
+    "\12\65\22\0\2\65\1\0\10\64\1\0\3\64\1\0\27\64\1\0"+
+    "\20\64\4\0\6\65\2\0\3\65\1\0\4\65\11\0\1\65\10\0"+
+    "\2\64\4\0\12\65\221\0\56\64\1\0\1\64\1\65\2\64\7\65"+
+    "\5\0\6\64\1\65\10\65\1\0\12\65\47\0\2\64\1\0\1\64"+
+    "\2\0\2\64\1\0\1\64\2\0\1\64\6\0\4\64\1\0\7\64"+
+    "\1\0\3\64\1\0\1\64\1\0\1\64\2\0\2\64\1\0\2\64"+
+    "\1\0\1\64\1\65\2\64\6\65\1\0\2\65\1\64\2\0\5\64"+
+    "\1\0\1\65\1\0\6\65\2\0\12\65\76\0\2\65\6\0\12\65"+
+    "\13\0\1\65\1\0\1\65\1\0\1\65\4\0\2\65\10\64\1\0"+
+    "\41\64\7\0\24\65\1\0\6\65\4\0\6\65\1\0\1\65\1\0"+
+    "\25\65\3\0\7\65\1\0\1\65\346\0\46\64\12\0\47\64\11\0"+
+    "\1\64\1\0\2\64\1\0\3\64\1\0\1\64\1\0\2\64\1\0"+
+    "\5\64\51\0\1\64\1\0\1\64\1\0\1\64\13\0\1\64\1\0"+
+    "\1\64\1\0\1\64\3\0\2\64\3\0\1\64\5\0\3\64\1\0"+
+    "\1\64\1\0\1\64\1\0\1\64\1\0\1\64\3\0\2\64\3\0"+
+    "\2\64\1\0\1\64\50\0\1\64\11\0\1\64\2\0\1\64\2\0"+
+    "\2\64\7\0\2\64\1\0\1\64\1\0\7\64\50\0\1\64\4\0"+
+    "\1\64\10\0\1\64\u0c06\0\234\64\4\0\132\64\6\0\26\64\2\0"+
+    "\6\64\2\0\46\64\2\0\6\64\2\0\10\64\1\0\1\64\1\0"+
+    "\1\64\1\0\1\64\1\0\37\64\2\0\65\64\1\0\7\64\1\0"+
+    "\1\64\3\0\3\64\1\0\7\64\3\0\4\64\2\0\6\64\4\0"+
+    "\15\64\5\0\3\64\1\0\7\64\323\0\15\65\4\0\1\65\104\0"+
+    "\1\64\3\0\2\64\2\0\1\64\121\0\3\64\u0e82\0\1\65\1\0"+
+    "\1\64\31\0\11\64\6\65\1\0\5\65\13\0\124\64\4\0\2\65"+
+    "\2\0\2\65\2\0\132\64\1\0\3\65\6\0\50\64\u1cd3\0\u51a6\64"+
+    "\u0c5a\0\u2ba4\64\134\0\u0800\0\u1ffe\0\2\0";
 
   /** 
    * Translates characters to character classes
@@ -156,242 +156,276 @@
    * Translates a state to a row index in the transition table
    */
   final private static int yy_rowMap [] = { 
-        0,    49,    98,   147,   196,   245,   294,   343,   392,   441, 
-      490,   539,   588,   637,   686,   735,   784,   833,   882,   931, 
-      980,  1029,  1078,  1127,  1176,  1225,  1274,  1323,  1372,  1421, 
-     1470,  1519,  1568,  1617,  1666,  1715,  1764,  1715,  1764,  1813, 
-     1715,  1715,  1764,  1862,  1911,  1960,  2009,  2058,  2107,  2156, 
-     1715,  1764,  2205,  2254,  2303,  1715,  2352,  2352,  2401,  2450, 
-     2499,  2205,  1715,  2548,  2597,  1715,  2646,  2695,  2744,  2793, 
-     2842,  2891,  1715,  2940,  2989,  3038,  3087,  1715,  3136,  3185, 
-     3234,  3283,  3332,  1715,  3381,  3430,  3479,  3528,  3577,  3626, 
-     3675,  3724,  3724,  3773,  3822,  3871,  3920,  3920,  3969,  4018, 
-     4067,  4116,  4116,  4165,  4214,  4263,  4312,  1715,  4361,  4361, 
-     4410,  4459,  4508,  4557,  1715,  1715,  1764,  1715,  1715,  4606, 
-     4655,  4704,  4753,  4802,  4851,  4900,  4949,  1715,  4998,  5047, 
-     1715,  1715,  2352,  5096,  2450,  1715,  5145,  2499,  2548,  2646, 
-     2695,  5194,  2744,  1715,  5243,  2793,  1715,  3136,  5292,  3234, 
-     1715,  5341,  3283,  4606,  5390,  5439,  5488,  3528,  1715,  5537, 
-     5586,  3724,  5635,  3773,  1715,  5684,  5733,  5782,  5782,  5831, 
-     5880,  3871,  3724,  3920,  5929,  3969,  1715,  5978,  4018,  4067, 
-     3920,  4116,  6027,  4165,  1715,  6076,  6125,  6174,  6174,  6223, 
-     6272,  6321,  4361,  6370,  4410,  1715,  6419,  6468,  6517,  6517, 
-     6566,  6615,  6664,  6713,  6762,  6811,  6860,  1715,  6909,  6958, 
-     1715,  1715,  1715,  2009,  7007,  7056,  7105,  7154,  7203,  7252, 
-     5684,  7301,  7301,  6076,  7350,  7350,  7399,  6419,  7448,  7448, 
-     7497,  1715,  7546,  7595,  1715,  7644,  7693,  7742,  7791,  7840, 
-     7889,  7938,  5831,  6223,  7987,  6566,  8036,  8085,  8134,  8183, 
-     8232,  8281,  8330,  8379,  8428,  8477,  8526,  8575,  8624,  8673, 
-     8722,  1715,  1715,  8771,  8820,  8869,  8918,  1715,  1715,  1715, 
-     8967,  9016,  9065,  9114,  9163,  1715,  4263,  4508
+        0,    55,   110,   165,   220,   275,   330,   385,   440,   495, 
+      550,   605,   660,   715,   770,   825,   880,   935,   990,  1045, 
+     1100,  1155,  1210,  1265,  1320,  1375,  1430,  1485,  1540,  1595, 
+     1650,  1705,  1760,  1815,  1870,  1925,  1980,  1925,  1980,  2035, 
+     1925,  1925,  1980,  2090,  2145,  2200,  2255,  2310,  2365,  2420, 
+     2475,  1925,  1980,  2530,  2585,  2640,  1925,  2695,  2695,  2750, 
+     2805,  2860,  2530,  1925,  2915,  2970,  1925,  3025,  3080,  3135, 
+     3190,  3245,  3300,  1925,  3355,  3410,  3465,  3520,  1925,  3575, 
+     3630,  3685,  3740,  3795,  1925,  3850,  3905,  3960,  4015,  4070, 
+     4125,  4180,  4235,  4235,  4290,  4345,  4400,  4455,  4455,  4510, 
+     4565,  4620,  4675,  4675,  4730,  4785,  4840,  4895,  1925,  4950, 
+     4950,  5005,  5060,  5115,  5170,  1925,  1925,  1980,  1925,  1925, 
+     5225,  5280,  5335,  5390,  5445,  5500,  5555,  5610,  1925,  5665, 
+     5720,  5775,  1925,  1925,  2695,  5830,  2805,  1925,  5885,  2860, 
+     2915,  3025,  3080,  5940,  3135,  1925,  5995,  3190,  1925,  3575, 
+     6050,  3685,  1925,  6105,  3740,  5225,  6160,  6215,  6270,  4015, 
+     1925,  6325,  6380,  4235,  6435,  4290,  1925,  6490,  6545,  6600, 
+     6600,  6655,  6710,  4400,  4235,  4455,  6765,  4510,  1925,  6820, 
+     4565,  4620,  4455,  4675,  6875,  4730,  1925,  6930,  6985,  7040, 
+     7040,  7095,  7150,  7205,  4950,  7260,  5005,  1925,  7315,  7370, 
+     7425,  7425,  7480,  7535,  7590,  7645,  7700,  7755,  7810,  1925, 
+     7865,  7920,  1925,  1925,  1925,  2255,  7975,  8030,  8085,  8140, 
+     8195,  8250,  8305,  6490,  8360,  8360,  6930,  8415,  8415,  8470, 
+     7315,  8525,  8525,  8580,  1925,  8635,  8690,  1925,  8745,  8800, 
+     8855,  8910,  8965,  9020,  9075,  9130,  6655,  7095,  9185,  7480, 
+     9240,  9295,  9350,  9405,  9460,  9515,  9570,  9625,  9680,  9735, 
+     9790,  9845,  9900,  9955, 10010, 10065, 10120,  1925,  1925, 10175, 
+    10230, 10285, 10340, 10395,  1925,  1925,  1925, 10450, 10505, 10560, 
+    10615, 10670, 10725,  1925, 10780,  4840,  5115, 10835, 10890, 10945, 
+    11000,  2255
   };
 
   /** 
    * The packed transition table of the DFA
    */
   final private static String yy_packed = 
-    "\1\40\1\41\10\40\1\42\4\40\1\43\41\40\1\44"+
-    "\1\45\57\44\1\46\1\47\16\46\1\50\1\46\1\51"+
-    "\36\46\1\52\1\53\57\52\1\46\1\47\5\46\1\54"+
-    "\12\46\1\51\37\46\1\47\2\46\1\55\1\56\2\46"+
-    "\1\57\3\46\1\56\5\46\1\56\2\60\2\57\1\46"+
-    "\10\57\1\61\2\57\1\46\5\57\1\46\2\57\1\46"+
-    "\3\57\2\46\1\47\2\46\1\55\1\62\6\46\1\62"+
-    "\5\46\1\62\36\46\1\63\1\64\2\63\1\65\15\63"+
-    "\1\51\36\63\1\46\1\47\2\46\1\66\1\56\2\46"+
-    "\1\67\3\46\1\56\5\46\1\56\4\67\1\46\13\67"+
-    "\1\46\5\67\1\46\2\67\1\46\3\67\2\46\1\47"+
-    "\2\46\1\66\1\56\2\46\1\67\3\46\1\56\5\46"+
-    "\1\56\4\67\1\46\13\67\1\70\5\67\1\46\2\67"+
-    "\1\46\3\67\1\46\1\71\1\47\1\46\1\72\1\73"+
-    "\1\56\3\71\1\74\1\71\1\75\1\56\5\71\1\56"+
-    "\36\71\1\46\1\47\2\46\1\76\15\46\1\51\37\46"+
-    "\1\47\1\77\1\100\1\46\1\56\2\46\1\101\3\46"+
-    "\1\56\5\46\1\56\4\101\1\46\13\101\1\46\5\101"+
-    "\1\46\2\101\1\46\3\101\2\46\1\47\1\77\1\100"+
-    "\1\46\1\56\2\46\1\101\3\46\1\56\5\46\1\56"+
-    "\4\101\1\46\13\101\1\102\5\101\1\46\2\101\1\46"+
-    "\3\101\1\46\1\103\1\47\1\77\1\104\1\103\1\56"+
-    "\3\103\1\105\1\103\1\106\1\56\5\103\1\56\36\103"+
-    "\1\46\1\47\3\46\1\56\6\46\1\56\5\46\1\56"+
-    "\36\46\1\107\1\110\1\111\1\112\4\107\1\113\12\107"+
-    "\4\114\1\107\13\114\1\107\5\114\1\107\2\114\1\107"+
-    "\3\114\1\107\1\46\1\110\1\111\1\112\1\46\1\56"+
-    "\2\46\1\115\3\46\1\56\5\46\1\56\4\115\1\46"+
-    "\13\115\1\46\5\115\1\46\2\115\1\46\3\115\2\46"+
-    "\1\110\1\111\1\112\1\46\1\56\2\46\1\115\3\46"+
-    "\1\56\5\46\1\56\4\115\1\46\13\115\1\116\5\115"+
-    "\1\46\2\115\1\46\3\115\1\46\1\117\1\110\1\111"+
-    "\1\120\1\117\1\56\3\117\1\121\1\117\1\122\1\56"+
-    "\5\117\1\56\36\117\1\46\1\123\1\124\2\46\1\56"+
-    "\6\46\1\56\5\46\1\56\6\46\1\125\1\126\2\46"+
-    "\1\127\11\46\1\126\1\125\11\46\1\47\1\124\2\46"+
-    "\1\56\6\46\1\56\5\46\1\56\4\46\1\130\32\46"+
-    "\1\47\1\124\2\46\1\56\2\46\1\131\3\46\1\56"+
-    "\5\46\1\56\4\131\1\130\13\131\1\46\5\131\1\46"+
-    "\2\131\1\46\3\131\2\46\1\47\1\124\2\46\1\56"+
-    "\6\46\1\56\5\46\1\56\4\46\1\130\7\46\1\132"+
-    "\5\46\1\133\13\46\1\134\1\47\1\124\1\135\1\134"+
-    "\1\56\3\134\1\136\1\134\1\137\1\56\5\134\1\56"+
-    "\4\134\1\140\31\134\1\141\1\47\1\124\1\142\1\141"+
-    "\1\56\3\141\1\143\1\141\1\144\1\56\5\141\1\56"+
-    "\4\141\1\145\31\141\1\146\1\47\1\124\1\147\1\146"+
-    "\1\56\3\146\1\150\1\146\1\151\1\56\5\146\1\56"+
-    "\36\146\1\152\1\153\1\154\56\152\1\155\1\47\1\124"+
-    "\1\156\1\155\1\56\3\155\1\157\1\155\1\160\1\56"+
-    "\5\155\1\56\36\155\1\161\1\162\1\163\56\161\1\164"+
-    "\1\165\57\164\1\40\1\0\10\40\1\0\4\40\1\0"+
-    "\41\40\3\0\1\166\1\167\14\0\1\170\44\0\1\171"+
-    "\2\0\1\172\3\0\1\171\5\0\1\171\4\172\1\0"+
-    "\13\172\1\0\5\172\1\173\2\172\1\0\3\172\6\0"+
-    "\1\171\2\0\1\174\3\0\1\171\5\0\1\171\4\174"+
-    "\1\0\13\174\1\0\5\174\1\0\2\174\1\0\3\174"+
-    "\103\0\1\175\57\0\1\176\47\0\1\177\53\0\1\200"+
-    "\63\0\1\56\6\0\1\56\5\0\1\56\44\0\3\57"+
-    "\4\0\1\57\5\0\4\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57"+
-    "\5\0\2\57\1\201\1\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\6\0\3\57\4\0\1\57"+
-    "\5\0\2\57\1\202\1\57\1\0\13\57\1\0\5\57"+
-    "\1\0\2\57\1\0\4\57\5\0\1\62\6\0\1\62"+
-    "\5\0\1\62\40\0\1\203\60\0\1\204\64\0\3\67"+
-    "\4\0\1\67\5\0\4\67\1\0\13\67\1\0\5\67"+
-    "\1\0\2\67\1\0\4\67\1\71\2\0\1\205\1\71"+
-    "\1\0\3\71\1\0\1\71\2\0\5\71\1\0\37\71"+
-    "\1\0\1\204\1\205\1\71\1\0\3\71\1\0\1\71"+
-    "\2\0\5\71\1\0\36\71\1\74\1\0\1\206\1\207"+
-    "\1\74\1\206\3\74\1\210\1\74\2\206\5\74\1\206"+
-    "\36\74\1\75\1\0\1\211\1\212\1\75\1\211\3\75"+
-    "\1\211\1\75\1\210\1\211\5\75\1\211\36\75\2\0"+
-    "\1\77\1\213\63\0\3\101\4\0\1\101\5\0\4\101"+
-    "\1\0\13\101\1\0\5\101\1\0\2\101\1\0\4\101"+
-    "\1\103\2\0\1\214\1\103\1\0\3\103\1\0\1\103"+
-    "\2\0\5\103\1\0\37\103\1\0\1\77\1\215\1\103"+
-    "\1\0\3\103\1\0\1\103\2\0\5\103\1\0\36\103"+
-    "\1\105\1\0\1\216\1\217\1\105\1\216\3\105\1\220"+
-    "\1\105\2\216\5\105\1\216\36\105\1\106\1\0\1\221"+
-    "\1\222\1\106\1\221\3\106\1\221\1\106\1\220\1\221"+
-    "\5\106\1\221\36\106\1\107\3\0\17\107\4\0\1\107"+
-    "\13\0\1\107\5\0\1\107\2\0\1\107\3\0\1\107"+
-    "\3\0\1\166\15\0\1\170\41\0\1\223\56\0\1\107"+
-    "\3\0\2\107\3\113\4\107\1\113\5\107\4\114\1\107"+
-    "\13\114\1\107\5\114\1\107\2\114\1\107\3\114\1\113"+
-    "\6\0\3\114\4\0\1\114\5\0\4\114\1\0\13\114"+
-    "\1\0\5\114\1\0\2\114\1\0\4\114\6\0\3\115"+
-    "\4\0\1\115\5\0\4\115\1\0\13\115\1\0\5\115"+
-    "\1\0\2\115\1\0\4\115\1\117\2\0\1\224\1\117"+
-    "\1\0\3\117\1\0\1\117\2\0\5\117\1\0\37\117"+
-    "\1\0\1\223\1\224\1\117\1\0\3\117\1\0\1\117"+
-    "\2\0\5\117\1\0\36\117\1\121\1\0\1\225\1\226"+
-    "\1\121\1\225\3\121\1\227\1\121\2\225\5\121\1\225"+
-    "\36\121\1\122\1\0\1\230\1\231\1\122\1\230\3\122"+
-    "\1\230\1\122\1\227\1\230\5\122\1\230\36\122\3\0"+
-    "\1\166\15\0\1\232\100\0\1\233\52\0\1\234\12\0"+
-    "\1\234\40\0\1\235\32\0\20\236\1\237\40\236\6\0"+
-    "\3\131\4\0\1\131\5\0\4\131\1\0\13\131\1\0"+
-    "\5\131\1\0\2\131\1\0\4\131\44\0\1\240\67\0"+
-    "\1\241\5\0\1\134\2\0\1\242\1\134\1\0\3\134"+
-    "\1\0\1\134\2\0\5\134\1\0\36\134\1\136\1\0"+
-    "\1\243\1\244\1\136\1\243\3\136\1\245\1\136\2\243"+
-    "\5\136\1\243\36\136\1\246\1\0\1\247\1\250\1\251"+
-    "\1\247\3\251\1\247\1\246\1\252\1\253\3\251\1\246"+
-    "\1\251\1\253\4\251\1\246\27\251\2\246\1\140\2\236"+
-    "\1\254\1\140\1\236\3\140\1\236\1\140\2\236\3\140"+
-    "\1\255\1\140\1\236\36\140\1\141\2\0\1\256\1\141"+
-    "\1\0\3\141\1\0\1\141\2\0\5\141\1\0\36\141"+
-    "\1\143\2\257\1\260\1\143\1\257\3\143\1\261\1\143"+
-    "\2\257\5\143\1\257\36\143\1\144\2\262\1\263\1\144"+
-    "\1\262\3\144\1\262\1\144\1\261\1\262\5\144\1\262"+
-    "\36\144\1\145\2\236\1\264\1\145\1\236\3\145\1\236"+
-    "\1\145\2\236\3\145\1\265\1\145\1\236\36\145\1\146"+
-    "\2\0\1\266\1\146\1\0\3\146\1\0\1\146\2\0"+
-    "\5\146\1\0\36\146\1\150\1\0\1\267\1\270\1\150"+
-    "\1\267\3\150\1\271\1\150\2\267\5\150\1\267\36\150"+
-    "\1\272\1\0\1\273\1\274\1\275\1\273\3\275\1\273"+
-    "\1\272\1\276\1\277\3\275\1\272\1\275\1\277\4\275"+
-    "\1\272\27\275\2\272\2\152\1\0\60\152\1\0\16\152"+
-    "\1\300\37\152\1\155\2\0\1\301\1\155\1\0\3\155"+
-    "\1\0\1\155\2\0\5\155\1\0\36\155\1\157\1\0"+
-    "\1\302\1\303\1\157\1\302\3\157\1\304\1\157\2\302"+
-    "\5\157\1\302\36\157\1\305\1\0\1\306\1\307\1\310"+
-    "\1\306\3\310\1\306\1\305\1\311\1\312\3\310\1\305"+
-    "\1\310\1\312\4\310\1\305\27\310\2\305\2\161\1\0"+
-    "\60\161\1\0\16\161\1\313\37\161\7\0\1\314\17\0"+
-    "\1\315\36\0\1\171\2\0\1\40\3\0\1\171\5\0"+
-    "\1\171\4\40\1\0\13\40\1\0\5\40\1\0\2\40"+
-    "\1\0\3\40\1\0\1\316\1\0\3\316\1\317\3\172"+
-    "\1\316\1\0\1\316\1\317\1\172\1\316\1\0\2\316"+
-    "\1\317\4\172\1\316\13\172\1\316\5\172\1\316\2\172"+
-    "\1\320\4\172\15\0\1\321\6\0\1\322\34\0\1\316"+
-    "\1\0\3\316\1\317\3\174\1\316\1\0\1\316\1\317"+
-    "\1\174\1\316\1\0\2\316\1\317\4\174\1\316\13\174"+
-    "\1\316\5\174\1\316\2\174\1\323\4\174\27\0\1\315"+
-    "\33\0\1\324\60\0\1\325\64\0\3\57\4\0\1\57"+
-    "\5\0\3\57\1\326\1\0\13\57\1\0\5\57\1\0"+
-    "\2\57\1\0\4\57\6\0\3\57\4\0\1\57\5\0"+
-    "\4\57\1\0\13\57\1\0\1\57\1\327\3\57\1\0"+
-    "\2\57\1\0\4\57\1\206\1\0\7\206\1\210\47\206"+
-    "\1\211\1\0\11\211\1\210\45\211\1\216\1\0\7\216"+
-    "\1\220\47\216\1\221\1\0\11\221\1\220\45\221\1\225"+
-    "\1\0\7\225\1\227\47\225\1\230\1\0\11\230\1\227"+
-    "\45\230\30\0\1\330\25\0\1\330\35\0\1\331\12\0"+
-    "\1\331\47\0\1\332\62\0\1\333\76\0\1\334\3\0"+
-    "\1\243\1\0\7\243\1\245\47\243\1\246\1\0\1\247"+
-    "\1\335\1\246\1\247\3\246\1\247\1\246\1\245\1\247"+
-    "\5\246\1\247\36\246\1\247\1\0\11\247\1\245\45\247"+
-    "\1\246\1\0\1\247\1\335\1\246\1\247\3\246\1\247"+
-    "\1\246\1\336\1\247\5\246\1\247\36\246\13\0\1\337"+
-    "\45\0\1\247\1\0\11\247\1\336\45\247\11\257\1\261"+
-    "\47\257\13\262\1\261\45\262\1\267\1\0\7\267\1\271"+
-    "\47\267\1\272\1\0\1\273\1\340\1\272\1\273\3\272"+
-    "\1\273\1\272\1\271\1\273\5\272\1\273\36\272\1\273"+
-    "\1\0\11\273\1\271\45\273\1\272\1\0\1\273\1\340"+
-    "\1\272\1\273\3\272\1\273\1\272\1\341\1\273\5\272"+
-    "\1\273\36\272\13\0\1\342\45\0\1\273\1\0\11\273"+
-    "\1\341\45\273\2\152\1\0\24\152\1\343\31\152\1\302"+
-    "\1\0\7\302\1\304\47\302\1\305\1\0\1\306\1\344"+
-    "\1\305\1\306\3\305\1\306\1\305\1\304\1\306\5\305"+
-    "\1\306\36\305\1\306\1\0\11\306\1\304\45\306\1\305"+
-    "\1\0\1\306\1\344\1\305\1\306\3\305\1\306\1\305"+
-    "\1\345\1\306\5\305\1\306\36\305\13\0\1\346\45\0"+
-    "\1\306\1\0\11\306\1\345\45\306\2\161\1\0\24\161"+
-    "\1\347\31\161\7\0\1\350\101\0\1\351\30\0\1\316"+
-    "\1\0\10\316\1\0\4\316\1\0\34\316\1\0\5\316"+
-    "\1\0\3\316\1\317\4\316\1\0\1\316\1\317\2\316"+
-    "\1\0\2\316\1\317\31\316\1\352\4\316\15\0\1\321"+
-    "\36\0\1\353\21\0\1\354\12\0\3\354\2\0\1\354"+
-    "\11\0\2\354\1\0\1\354\2\0\2\354\10\0\3\57"+
-    "\4\0\1\57\5\0\4\57\1\0\11\57\1\355\1\57"+
-    "\1\0\5\57\1\0\2\57\1\0\4\57\33\0\1\356"+
-    "\12\0\1\356\40\0\1\357\57\0\1\360\66\0\1\361"+
-    "\12\0\1\361\40\0\1\362\35\0\2\363\1\0\3\363"+
-    "\2\0\1\252\4\363\1\0\6\363\1\0\27\363\5\0"+
-    "\2\364\1\0\3\364\2\0\1\276\4\364\1\0\6\364"+
-    "\1\0\27\364\2\0\2\152\1\0\25\152\1\365\30\152"+
-    "\3\0\2\366\1\0\3\366\2\0\1\311\4\366\1\0"+
-    "\6\366\1\0\27\366\2\0\2\161\1\0\25\161\1\367"+
-    "\30\161\31\0\1\370\103\0\1\352\21\0\1\354\12\0"+
-    "\3\354\2\0\1\354\11\0\2\354\1\0\1\354\1\0"+
-    "\1\353\2\354\10\0\3\57\4\0\1\57\5\0\4\57"+
-    "\1\0\6\57\1\371\4\57\1\0\5\57\1\0\2\57"+
-    "\1\0\4\57\44\0\1\372\54\0\1\373\55\0\1\374"+
-    "\60\0\1\375\63\0\1\376\20\0\2\152\1\0\26\152"+
-    "\1\377\27\152\2\161\1\0\26\161\1\u0100\27\161\32\0"+
-    "\1\u0101\34\0\3\57\4\0\1\57\5\0\4\57\1\0"+
-    "\3\57\1\u0102\7\57\1\0\2\57\1\u0102\2\57\1\0"+
-    "\2\57\1\0\4\57\45\0\1\u0103\52\0\1\u0104\63\0"+
-    "\1\u0105\43\0\1\u0106\63\0\1\u0107\25\0\1\u0107\2\0"+
-    "\2\152\1\0\27\152\1\u0108\26\152\2\161\1\0\27\161"+
-    "\1\u0109\26\161\33\0\1\u010a\32\0\1\u010b\3\57\3\0"+
-    "\1\u010b\1\57\4\0\1\u010b\4\57\1\0\13\57\1\0"+
-    "\5\57\1\0\2\57\1\0\4\57\35\0\1\u010c\56\0"+
-    "\1\u010d\12\0\1\u010d\45\0\1\u010e\12\0\1\u010e\12\0"+
-    "\2\152\1\0\30\152\1\u010f\25\152\2\161\1\0\30\161"+
-    "\1\u0110\25\161\32\0\1\u0111\33\0\1\u010b\6\0\1\u010b"+
-    "\5\0\1\u010b\36\0\2\152\1\0\27\152\1\u0112\26\152"+
-    "\2\161\1\0\27\161\1\u0113\26\161\27\0\1\u0114\31\0"+
-    "\2\152\1\0\24\152\1\u0115\31\152\2\161\1\0\24\161"+
-    "\1\u0116\31\161";
+    "\1\40\1\41\10\40\1\42\4\40\1\43\47\40\1\44"+
+    "\1\45\65\44\1\46\1\47\16\46\1\50\1\46\1\51"+
+    "\44\46\1\52\1\53\65\52\1\46\1\47\5\46\1\54"+
+    "\12\46\1\51\45\46\1\47\2\46\1\55\1\56\2\46"+
+    "\1\57\3\46\1\56\5\46\1\56\1\60\1\61\4\57"+
+    "\1\46\10\57\1\62\2\57\1\46\7\57\1\46\3\57"+
+    "\1\46\3\57\1\46\1\57\1\46\1\47\2\46\1\55"+
+    "\1\63\6\46\1\63\5\46\1\63\44\46\1\64\1\65"+
+    "\2\64\1\66\15\64\1\51\44\64\1\46\1\47\2\46"+
+    "\1\67\1\56\2\46\1\70\3\46\1\56\5\46\1\56"+
+    "\6\70\1\46\13\70\1\46\7\70\1\46\3\70\1\46"+
+    "\3\70\1\46\1\70\1\46\1\47\2\46\1\67\1\56"+
+    "\2\46\1\70\3\46\1\56\5\46\1\56\6\70\1\46"+
+    "\13\70\1\71\7\70\1\46\3\70\1\46\3\70\1\46"+
+    "\1\70\1\72\1\47\1\46\1\73\1\74\1\56\3\72"+
+    "\1\75\1\72\1\76\1\56\5\72\1\56\44\72\1\46"+
+    "\1\47\2\46\1\77\15\46\1\51\45\46\1\47\1\100"+
+    "\1\101\1\46\1\56\2\46\1\102\3\46\1\56\5\46"+
+    "\1\56\6\102\1\46\13\102\1\46\7\102\1\46\3\102"+
+    "\1\46\3\102\1\46\1\102\1\46\1\47\1\100\1\101"+
+    "\1\46\1\56\2\46\1\102\3\46\1\56\5\46\1\56"+
+    "\6\102\1\46\13\102\1\103\7\102\1\46\3\102\1\46"+
+    "\3\102\1\46\1\102\1\104\1\47\1\100\1\105\1\104"+
+    "\1\56\3\104\1\106\1\104\1\107\1\56\5\104\1\56"+
+    "\44\104\1\46\1\47\3\46\1\56\6\46\1\56\5\46"+
+    "\1\56\44\46\1\110\1\111\1\112\1\113\4\110\1\114"+
+    "\12\110\6\115\1\110\13\115\1\110\7\115\1\110\3\115"+
+    "\1\110\3\115\1\110\1\115\1\46\1\111\1\112\1\113"+
+    "\1\46\1\56\2\46\1\116\3\46\1\56\5\46\1\56"+
+    "\6\116\1\46\13\116\1\46\7\116\1\46\3\116\1\46"+
+    "\3\116\1\46\1\116\1\46\1\111\1\112\1\113\1\46"+
+    "\1\56\2\46\1\116\3\46\1\56\5\46\1\56\6\116"+
+    "\1\46\13\116\1\117\7\116\1\46\3\116\1\46\3\116"+
+    "\1\46\1\116\1\120\1\111\1\112\1\121\1\120\1\56"+
+    "\3\120\1\122\1\120\1\123\1\56\5\120\1\56\44\120"+
+    "\1\46\1\124\1\125\2\46\1\56\6\46\1\56\5\46"+
+    "\1\56\10\46\1\126\1\127\2\46\1\130\10\46\1\130"+
+    "\1\46\1\127\1\126\14\46\1\47\1\125\2\46\1\56"+
+    "\6\46\1\56\5\46\1\56\6\46\1\131\36\46\1\47"+
+    "\1\125\2\46\1\56\2\46\1\132\3\46\1\56\5\46"+
+    "\1\56\6\132\1\131\13\132\1\46\7\132\1\46\3\132"+
+    "\1\46\3\132\1\46\1\132\1\46\1\47\1\125\2\46"+
+    "\1\56\6\46\1\56\5\46\1\56\6\46\1\131\7\46"+
+    "\1\133\5\46\1\134\6\46\1\133\10\46\1\135\1\47"+
+    "\1\125\1\136\1\135\1\56\3\135\1\137\1\135\1\140"+
+    "\1\56\5\135\1\56\6\135\1\141\35\135\1\142\1\47"+
+    "\1\125\1\143\1\142\1\56\3\142\1\144\1\142\1\145"+
+    "\1\56\5\142\1\56\6\142\1\146\35\142\1\147\1\47"+
+    "\1\125\1\150\1\147\1\56\3\147\1\151\1\147\1\152"+
+    "\1\56\5\147\1\56\44\147\1\153\1\154\1\155\64\153"+
+    "\1\156\1\47\1\125\1\157\1\156\1\56\3\156\1\160"+
+    "\1\156\1\161\1\56\5\156\1\56\44\156\1\162\1\163"+
+    "\1\164\64\162\1\165\1\166\65\165\1\40\1\0\10\40"+
+    "\1\0\4\40\1\0\47\40\3\0\1\167\1\170\14\0"+
+    "\1\171\52\0\1\172\2\0\1\173\3\0\1\172\5\0"+
+    "\1\172\6\173\1\0\13\173\1\0\7\173\1\174\3\173"+
+    "\1\0\3\173\1\0\1\173\5\0\1\172\2\0\1\175"+
+    "\3\0\1\172\5\0\1\172\6\175\1\0\13\175\1\0"+
+    "\7\175\1\0\3\175\1\0\3\175\1\0\1\175\110\0"+
+    "\1\176\65\0\1\177\55\0\1\200\61\0\1\201\71\0"+
+    "\1\56\6\0\1\56\5\0\1\56\52\0\3\57\4\0"+
+    "\1\57\5\0\6\57\1\0\13\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\2\57\2\202\2\57\1\0\13\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\2\57\1\202\1\203\2\57\1\0\13\57\1\0\7\57"+
+    "\1\0\3\57\1\0\5\57\6\0\3\57\4\0\1\57"+
+    "\5\0\2\57\2\204\2\57\1\0\13\57\1\0\7\57"+
+    "\1\0\3\57\1\0\5\57\5\0\1\63\6\0\1\63"+
+    "\5\0\1\63\46\0\1\205\66\0\1\206\72\0\3\70"+
+    "\4\0\1\70\5\0\6\70\1\0\13\70\1\0\7\70"+
+    "\1\0\3\70\1\0\5\70\1\72\2\0\1\207\1\72"+
+    "\1\0\3\72\1\0\1\72\2\0\5\72\1\0\45\72"+
+    "\1\0\1\206\1\207\1\72\1\0\3\72\1\0\1\72"+
+    "\2\0\5\72\1\0\44\72\1\75\1\0\1\210\1\211"+
+    "\1\75\1\210\3\75\1\212\1\75\2\210\5\75\1\210"+
+    "\44\75\1\76\1\0\1\213\1\214\1\76\1\213\3\76"+
+    "\1\213\1\76\1\212\1\213\5\76\1\213\44\76\2\0"+
+    "\1\100\1\215\71\0\3\102\4\0\1\102\5\0\6\102"+
+    "\1\0\13\102\1\0\7\102\1\0\3\102\1\0\5\102"+
+    "\1\104\2\0\1\216\1\104\1\0\3\104\1\0\1\104"+
+    "\2\0\5\104\1\0\45\104\1\0\1\100\1\217\1\104"+
+    "\1\0\3\104\1\0\1\104\2\0\5\104\1\0\44\104"+
+    "\1\106\1\0\1\220\1\221\1\106\1\220\3\106\1\222"+
+    "\1\106\2\220\5\106\1\220\44\106\1\107\1\0\1\223"+
+    "\1\224\1\107\1\223\3\107\1\223\1\107\1\222\1\223"+
+    "\5\107\1\223\44\107\1\110\3\0\17\110\6\0\1\110"+
+    "\13\0\1\110\7\0\1\110\3\0\1\110\3\0\1\110"+
+    "\4\0\1\167\15\0\1\171\47\0\1\225\64\0\1\110"+
+    "\3\0\2\110\3\114\4\110\1\114\5\110\6\115\1\110"+
+    "\13\115\1\110\7\115\1\110\3\115\1\110\3\115\1\114"+
+    "\1\115\6\0\3\115\4\0\1\115\5\0\6\115\1\0"+
+    "\13\115\1\0\7\115\1\0\3\115\1\0\5\115\6\0"+
+    "\3\116\4\0\1\116\5\0\6\116\1\0\13\116\1\0"+
+    "\7\116\1\0\3\116\1\0\5\116\1\120\2\0\1\226"+
+    "\1\120\1\0\3\120\1\0\1\120\2\0\5\120\1\0"+
+    "\45\120\1\0\1\225\1\226\1\120\1\0\3\120\1\0"+
+    "\1\120\2\0\5\120\1\0\44\120\1\122\1\0\1\227"+
+    "\1\230\1\122\1\227\3\122\1\231\1\122\2\227\5\122"+
+    "\1\227\44\122\1\123\1\0\1\232\1\233\1\123\1\232"+
+    "\3\123\1\232\1\123\1\231\1\232\5\123\1\232\44\123"+
+    "\3\0\1\167\15\0\1\234\110\0\1\235\60\0\1\236"+
+    "\13\0\1\236\44\0\2\237\36\0\20\240\1\241\46\240"+
+    "\6\0\3\132\4\0\1\132\5\0\6\132\1\0\13\132"+
+    "\1\0\7\132\1\0\3\132\1\0\5\132\46\0\1\242"+
+    "\5\0\1\242\72\0\1\243\6\0\1\135\2\0\1\244"+
+    "\1\135\1\0\3\135\1\0\1\135\2\0\5\135\1\0"+
+    "\44\135\1\137\1\0\1\245\1\246\1\137\1\245\3\137"+
+    "\1\247\1\137\2\245\5\137\1\245\44\137\1\250\1\0"+
+    "\1\251\1\252\1\253\1\251\3\253\1\251\1\250\1\254"+
+    "\1\255\3\253\1\250\1\253\1\255\6\253\1\250\32\253"+
+    "\2\250\1\253\1\141\2\240\1\256\1\141\1\240\3\141"+
+    "\1\240\1\141\2\240\3\141\1\257\1\141\1\240\44\141"+
+    "\1\142\2\0\1\260\1\142\1\0\3\142\1\0\1\142"+
+    "\2\0\5\142\1\0\44\142\1\144\2\261\1\262\1\144"+
+    "\1\261\3\144\1\263\1\144\2\261\5\144\1\261\44\144"+
+    "\1\145\2\264\1\265\1\145\1\264\3\145\1\264\1\145"+
+    "\1\263\1\264\5\145\1\264\44\145\1\146\2\240\1\266"+
+    "\1\146\1\240\3\146\1\240\1\146\2\240\3\146\1\267"+
+    "\1\146\1\240\44\146\1\147\2\0\1\270\1\147\1\0"+
+    "\3\147\1\0\1\147\2\0\5\147\1\0\44\147\1\151"+
+    "\1\0\1\271\1\272\1\151\1\271\3\151\1\273\1\151"+
+    "\2\271\5\151\1\271\44\151\1\274\1\0\1\275\1\276"+
+    "\1\277\1\275\3\277\1\275\1\274\1\300\1\301\3\277"+
+    "\1\274\1\277\1\301\6\277\1\274\32\277\2\274\1\277"+
+    "\2\153\1\0\66\153\1\0\16\153\1\302\45\153\1\156"+
+    "\2\0\1\303\1\156\1\0\3\156\1\0\1\156\2\0"+
+    "\5\156\1\0\44\156\1\160\1\0\1\304\1\305\1\160"+
+    "\1\304\3\160\1\306\1\160\2\304\5\160\1\304\44\160"+
+    "\1\307\1\0\1\310\1\311\1\312\1\310\3\312\1\310"+
+    "\1\307\1\313\1\314\3\312\1\307\1\312\1\314\6\312"+
+    "\1\307\32\312\2\307\1\312\2\162\1\0\66\162\1\0"+
+    "\16\162\1\315\45\162\7\0\1\316\21\0\1\317\42\0"+
+    "\1\172\2\0\1\40\3\0\1\172\5\0\1\172\6\40"+
+    "\1\0\13\40\1\0\7\40\1\0\3\40\1\0\3\40"+
+    "\1\0\1\40\1\320\1\0\3\320\1\321\3\173\1\320"+
+    "\1\0\1\320\1\321\1\173\1\320\1\0\2\320\1\321"+
+    "\6\173\1\320\13\173\1\320\7\173\1\320\3\173\1\322"+
+    "\5\173\15\0\1\323\6\0\1\324\42\0\1\320\1\0"+
+    "\3\320\1\321\3\175\1\320\1\0\1\320\1\321\1\175"+
+    "\1\320\1\0\2\320\1\321\6\175\1\320\13\175\1\320"+
+    "\7\175\1\320\3\175\1\325\5\175\31\0\1\317\37\0"+
+    "\1\326\66\0\1\327\72\0\3\57\4\0\1\57\5\0"+
+    "\4\57\2\330\1\0\13\57\1\0\7\57\1\0\3\57"+
+    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\4\57"+
+    "\1\330\1\331\1\0\13\57\1\0\7\57\1\0\3\57"+
+    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\6\57"+
+    "\1\0\13\57\1\0\1\57\1\332\5\57\1\0\3\57"+
+    "\1\0\5\57\1\210\1\0\7\210\1\212\55\210\1\213"+
+    "\1\0\11\213\1\212\53\213\1\220\1\0\7\220\1\222"+
+    "\55\220\1\223\1\0\11\223\1\222\53\223\1\227\1\0"+
+    "\7\227\1\231\55\227\1\232\1\0\11\232\1\231\53\232"+
+    "\32\0\1\333\30\0\1\333\40\0\1\334\13\0\1\334"+
+    "\54\0\1\335\10\0\1\335\57\0\1\336\14\0\1\336"+
+    "\72\0\1\337\4\0\1\245\1\0\7\245\1\247\55\245"+
+    "\1\250\1\0\1\251\1\340\1\250\1\251\3\250\1\251"+
+    "\1\250\1\247\1\251\5\250\1\251\44\250\1\251\1\0"+
+    "\11\251\1\247\53\251\1\250\1\0\1\251\1\340\1\250"+
+    "\1\251\3\250\1\251\1\250\1\341\1\251\5\250\1\251"+
+    "\44\250\13\0\1\342\53\0\1\251\1\0\11\251\1\341"+
+    "\53\251\11\261\1\263\55\261\13\264\1\263\53\264\1\271"+
+    "\1\0\7\271\1\273\55\271\1\274\1\0\1\275\1\343"+
+    "\1\274\1\275\3\274\1\275\1\274\1\273\1\275\5\274"+
+    "\1\275\44\274\1\275\1\0\11\275\1\273\53\275\1\274"+
+    "\1\0\1\275\1\343\1\274\1\275\3\274\1\275\1\274"+
+    "\1\344\1\275\5\274\1\275\44\274\13\0\1\345\53\0"+
+    "\1\275\1\0\11\275\1\344\53\275\2\153\1\0\26\153"+
+    "\1\346\35\153\1\304\1\0\7\304\1\306\55\304\1\307"+
+    "\1\0\1\310\1\347\1\307\1\310\3\307\1\310\1\307"+
+    "\1\306\1\310\5\307\1\310\44\307\1\310\1\0\11\310"+
+    "\1\306\53\310\1\307\1\0\1\310\1\347\1\307\1\310"+
+    "\3\307\1\310\1\307\1\350\1\310\5\307\1\310\44\307"+
+    "\13\0\1\351\53\0\1\310\1\0\11\310\1\350\53\310"+
+    "\2\162\1\0\26\162\1\352\35\162\7\0\1\353\111\0"+
+    "\1\354\34\0\1\320\1\0\10\320\1\0\4\320\1\0"+
+    "\41\320\1\0\6\320\1\0\3\320\1\321\4\320\1\0"+
+    "\1\320\1\321\2\320\1\0\2\320\1\321\36\320\1\355"+
+    "\5\320\15\0\1\323\43\0\1\356\22\0\1\357\14\0"+
+    "\3\357\2\0\1\357\10\0\1\357\1\0\2\357\3\0"+
+    "\1\357\2\0\2\357\11\0\1\57\1\360\1\57\4\0"+
+    "\1\57\5\0\6\57\1\0\13\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\6\57\1\0\11\57\1\361\1\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\35\0\1\362\13\0\1\362\44\0"+
+    "\2\363\63\0\2\364\75\0\1\365\13\0\1\365\44\0"+
+    "\2\366\41\0\2\367\1\0\3\367\2\0\1\254\4\367"+
+    "\1\0\10\367\1\0\32\367\2\0\1\367\3\0\2\370"+
+    "\1\0\3\370\2\0\1\300\4\370\1\0\10\370\1\0"+
+    "\32\370\2\0\1\370\2\153\1\0\27\153\1\371\34\153"+
+    "\3\0\2\372\1\0\3\372\2\0\1\313\4\372\1\0"+
+    "\10\372\1\0\32\372\2\0\1\372\2\162\1\0\27\162"+
+    "\1\373\34\162\33\0\1\374\114\0\1\355\22\0\1\357"+
+    "\14\0\3\357\2\0\1\357\10\0\1\357\1\0\2\357"+
+    "\3\0\1\357\1\0\1\356\2\357\11\0\3\57\4\0"+
+    "\1\57\5\0\6\57\1\0\7\57\1\375\3\57\1\0"+
+    "\7\57\1\0\3\57\1\0\5\57\6\0\3\57\4\0"+
+    "\1\57\5\0\6\57\1\0\6\57\1\376\4\57\1\0"+
+    "\7\57\1\0\3\57\1\0\5\57\46\0\1\377\5\0"+
+    "\1\377\54\0\1\u0100\63\0\1\u0101\10\0\1\u0101\55\0"+
+    "\1\u0102\10\0\1\u0102\60\0\1\u0103\24\0\2\153\1\0"+
+    "\30\153\1\u0104\33\153\2\162\1\0\30\162\1\u0105\33\162"+
+    "\34\0\1\u0106\40\0\3\57\4\0\1\57\5\0\6\57"+
+    "\1\0\13\57\1\0\3\57\1\u0107\3\57\1\0\3\57"+
+    "\1\0\5\57\6\0\3\57\4\0\1\57\5\0\6\57"+
+    "\1\0\3\57\1\u0108\7\57\1\0\3\57\1\u0108\3\57"+
+    "\1\0\3\57\1\0\5\57\47\0\1\u0109\60\0\1\u010a"+
+    "\14\0\1\u010a\54\0\1\u010b\47\0\2\u010c\72\0\1\u010d"+
+    "\30\0\1\u010d\3\0\2\153\1\0\31\153\1\u010e\32\153"+
+    "\2\162\1\0\31\162\1\u010f\32\162\35\0\1\u0110\37\0"+
+    "\3\57\4\0\1\57\5\0\6\57\1\0\13\57\1\0"+
+    "\6\57\1\u0111\1\0\3\57\1\0\5\57\5\0\1\u0112"+
+    "\3\57\3\0\1\u0112\1\57\4\0\1\u0112\6\57\1\0"+
+    "\13\57\1\0\7\57\1\0\3\57\1\0\5\57\37\0"+
+    "\1\u0113\10\0\1\u0113\53\0\1\u0114\13\0\1\u0114\52\0"+
+    "\1\u0115\13\0\1\u0115\15\0\2\153\1\0\32\153\1\u0116"+
+    "\31\153\2\162\1\0\32\162\1\u0117\31\162\34\0\1\u0118"+
+    "\40\0\3\57\4\0\1\57\5\0\5\57\1\u0119\1\0"+
+    "\13\57\1\0\7\57\1\0\3\57\1\0\5\57\5\0"+
+    "\1\u0112\6\0\1\u0112\5\0\1\u0112\44\0\2\153\1\0"+
+    "\31\153\1\u011a\32\153\2\162\1\0\31\162\1\u011b\32\162"+
+    "\31\0\1\u011c\43\0\3\57\4\0\1\57\5\0\6\57"+
+    "\1\0\5\57\1\u011d\5\57\1\0\7\57\1\0\3\57"+
+    "\1\0\5\57\2\153\1\0\26\153\1\u011e\35\153\2\162"+
+    "\1\0\26\162\1\u011f\35\162\6\0\3\57\4\0\1\57"+
+    "\5\0\6\57\1\0\7\57\1\u0120\3\57\1\0\7\57"+
+    "\1\0\3\57\1\0\5\57\6\0\3\57\4\0\1\57"+
+    "\5\0\6\57\1\0\13\57\1\0\7\57\1\0\3\57"+
+    "\1\0\4\57\1\u0121\6\0\3\57\4\0\1\57\5\0"+
+    "\6\57\1\0\5\57\1\u0122\5\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\6\57\1\0\5\57\1\u0123\5\57\1\0\7\57\1\0"+
+    "\3\57\1\0\5\57\6\0\3\57\4\0\1\57\5\0"+
+    "\6\57\1\0\13\57\1\0\3\57\1\u0124\3\57\1\0"+
+    "\3\57\1\0\5\57";
 
   /** 
    * The transition table of the DFA
@@ -420,21 +454,22 @@
      1,  0,  0,  0,  0,  1,  0,  0,  1,  1,  1,  0,  1,  1,  1,  1, 
      1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1, 
      1,  1,  1,  9,  1,  9,  1,  1,  9,  9,  1,  1,  1,  1,  1,  1, 
-     1,  1,  9,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1, 
-     1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  9,  1,  1, 
-     1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
-     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1, 
-     1,  1,  9,  9,  1,  9,  9,  1,  0,  1,  0,  1,  0,  0,  0,  9, 
-     1,  1,  9,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  9, 
-     0,  0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  9,  0, 
-     0,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  0,  1,  0,  0,  0, 
-     9,  0,  0,  0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1, 
-     0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1,  0,  0,  1,  1,  9, 
-     0,  0,  9,  9,  9,  1,  1,  0,  0,  0,  0,  0,  0,  1,  0,  0, 
-     1,  0,  1,  0,  1,  0,  1,  9,  0,  1,  9,  0,  1,  0,  0,  0, 
-     0,  0,  0,  0,  1,  0,  1,  0,  1,  0,  0,  0,  0,  0,  1,  1, 
-     0,  1,  0,  0,  0,  9,  9,  1,  1,  0,  1,  9,  9,  9,  1,  1, 
-     0,  1,  1,  9,  1,  1
+     1,  1,  1,  9,  1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  9, 
+     1,  1,  9,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1,  1,  9,  1, 
+     1,  1,  1,  1,  9,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1, 
+     1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  9,  1,  1,  1, 
+     1,  1,  1,  9,  9,  1,  9,  9,  1,  0,  1,  0,  1,  0,  0,  0, 
+     9,  1,  1,  1,  9,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0, 
+     0,  9,  0,  0,  9,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0, 
+     9,  0,  0,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  0,  1,  0, 
+     0,  0,  9,  0,  0,  0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1, 
+     0,  1,  0,  0,  0,  9,  1,  0,  0,  1,  1,  0,  1,  0,  0,  1, 
+     1,  9,  0,  0,  9,  9,  9,  1,  1,  1,  0,  0,  0,  0,  0,  0, 
+     1,  0,  0,  1,  0,  1,  0,  1,  0,  1,  9,  0,  1,  9,  0,  1, 
+     1,  0,  0,  0,  0,  0,  0,  0,  1,  0,  1,  0,  1,  1,  0,  0, 
+     0,  0,  0,  1,  1,  0,  1,  1,  0,  0,  0,  9,  9,  1,  1,  0, 
+     1,  1,  9,  9,  9,  1,  1,  0,  1,  1,  1,  9,  1,  1,  1,  1, 
+     1,  1,  1,  1
   };
 
   /** the input device */
@@ -967,10 +1002,10 @@
    * @return         the unpacked transition table
    */
   private static int [] yy_unpack(String packed) {
-    int [] trans = new int[9212];
+    int [] trans = new int[11055];
     int i = 0;  /* index in packed string  */
     int j = 0;  /* index in unpacked array */
-    while (i < 3220) {
+    while (i < 3734) {
       int count = packed.charAt(i++);
       int value = packed.charAt(i++);
       value--;
@@ -1293,9 +1328,17 @@
 
       switch (yy_action) {    
 
-        case 275: 
-        case 276: 
-        case 277: 
+        case 291: 
+          { 
+	if(Debug.debugTokenizer)
+		dump("XSL processing instruction target");//$NON-NLS-1$
+        yybegin(ST_XML_PI_ATTRIBUTE_NAME);
+        return XML_TAG_NAME;
+ }
+        case 293: break;
+        case 283: 
+        case 285: 
+        case 286: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nCDATA start");//$NON-NLS-1$
@@ -1303,148 +1346,149 @@
 	yybegin(ST_CDATA_TEXT);
 	return XML_CDATA_OPEN;
  }
-        case 279: break;
-        case 269: 
+        case 294: break;
+        case 276: 
           { 
 	if(Debug.debugTokenizer)
 		dump("element");//$NON-NLS-1$
 	yybegin(ST_XML_ELEMENT_DECLARATION);
 	return XML_ELEMENT_DECLARATION;
  }
-        case 280: break;
-        case 268: 
+        case 295: break;
+        case 275: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist");//$NON-NLS-1$
 	yybegin(ST_XML_ATTLIST_DECLARATION);
 	return XML_ATTLIST_DECLARATION;
  }
-        case 281: break;
-        case 267: 
+        case 296: break;
+        case 274: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_DECLARATION);
 	return XML_DOCTYPE_DECLARATION;
  }
-        case 282: break;
-        case 262: 
+        case 297: break;
+        case 268: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype external id");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_PUBLIC);
 	return XML_DOCTYPE_EXTERNAL_ID_PUBLIC;
  }
-        case 283: break;
-        case 261: 
+        case 298: break;
+        case 267: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype external id");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
 	return XML_DOCTYPE_EXTERNAL_ID_SYSTEM;
  }
-        case 284: break;
-        case 257: 
-        case 266: 
+        case 299: break;
+        case 263: 
+        case 273: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction target");//$NON-NLS-1$
         yybegin(ST_DHTML_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 285: break;
-        case 234: 
+        case 300: break;
+        case 237: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nCharRef");//$NON-NLS-1$
 	return XML_CHAR_REFERENCE;
  }
-        case 286: break;
-        case 231: 
+        case 301: break;
+        case 234: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\ncomment start");//$NON-NLS-1$
 	yybegin(ST_XML_COMMENT);
 	return XML_COMMENT_OPEN;
  }
-        case 287: break;
-        case 213: 
+        case 302: break;
+        case 215: 
+        case 216: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction target");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 288: break;
-        case 212: 
+        case 303: break;
+        case 214: 
           { 
 	if(Debug.debugTokenizer)
 		dump("comment end");//$NON-NLS-1$
 	yybegin(YYINITIAL);
 	return XML_COMMENT_CLOSE;
  }
-        case 289: break;
-        case 211: 
+        case 304: break;
+        case 213: 
           { 
 	if(Debug.debugTokenizer)
 		dump("CDATA end");//$NON-NLS-1$
 	yybegin(fStateStack.pop());
 	return XML_CDATA_CLOSE;
  }
-        case 290: break;
-        case 210: 
+        case 305: break;
+        case 212: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nPEReference");//$NON-NLS-1$
 	return XML_PE_REFERENCE;
  }
-        case 291: break;
-        case 207: 
+        case 306: break;
+        case 209: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nEntityRef");//$NON-NLS-1$
 	return XML_ENTITY_REFERENCE;
  }
-        case 292: break;
-        case 158: 
-        case 172: 
-        case 180: 
+        case 307: break;
+        case 160: 
+        case 174: 
+        case 182: 
           { 
 	return XML_DOCTYPE_INTERNAL_SUBSET;
  }
-        case 293: break;
-        case 146: 
+        case 308: break;
+        case 148: 
           { 
         yybegin(YYINITIAL);
 	if(Debug.debugTokenizer)
 		dump("empty tag close");//$NON-NLS-1$
         return XML_EMPTY_TAG_CLOSE;
  }
-        case 294: break;
-        case 131: 
+        case 309: break;
+        case 133: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction end");//$NON-NLS-1$
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 295: break;
-        case 130: 
+        case 310: break;
+        case 132: 
           { 
 		// ended with nothing inside
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 296: break;
-        case 127: 
+        case 311: break;
+        case 128: 
           { 
 	if(Debug.debugTokenizer)
 		dump("processing instruction end");//$NON-NLS-1$
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 297: break;
-        case 119: 
+        case 312: break;
+        case 120: 
           { 
 	fStateStack.push(yystate());
 	if(Debug.debugTokenizer)
@@ -1452,80 +1496,92 @@
         yybegin(ST_XML_DECLARATION);
 	return XML_DECLARATION_OPEN;
  }
-        case 298: break;
-        case 118: 
+        case 313: break;
+        case 119: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nprocessing instruction start");//$NON-NLS-1$
 	yybegin(ST_PI);
         return XML_PI_OPEN;
  }
-        case 299: break;
-        case 62: 
+        case 314: break;
+        case 63: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction end");//$NON-NLS-1$
         yybegin(YYINITIAL);
         return XML_PI_CLOSE;
  }
-        case 300: break;
-        case 56: 
-        case 58: 
+        case 315: break;
+        case 57: 
         case 59: 
         case 60: 
-        case 135: 
+        case 61: 
+        case 137: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction attribute value");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_NAME);
         return XML_TAG_ATTRIBUTE_VALUE;
  }
-        case 301: break;
-        case 55: 
+        case 316: break;
+        case 56: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction '='");//$NON-NLS-1$
         yybegin(ST_XML_PI_ATTRIBUTE_VALUE);
         return XML_TAG_ATTRIBUTE_EQUALS;
  }
-        case 302: break;
-        case 54: 
+        case 317: break;
+        case 55: 
           { 
 	if(Debug.debugTokenizer)
 		dump("XML processing instruction attribute name");//$NON-NLS-1$
         yybegin(ST_XML_PI_EQUALS);
         return XML_TAG_ATTRIBUTE_NAME;
  }
-        case 303: break;
-        case 50: 
+        case 318: break;
         case 51: 
         case 52: 
+        case 53: 
           { 
 	// block scan until close is found
 	return doScan("?>", false, XML_PI_CONTENT, ST_XML_PI_TAG_CLOSE, ST_XML_PI_TAG_CLOSE);
  }
-        case 304: break;
-        case 49: 
+        case 319: break;
+        case 50: 
           { 
         yybegin(ST_PI_CONTENT);
         return WHITE_SPACE;
  }
-        case 305: break;
+        case 320: break;
         case 46: 
         case 47: 
         case 48: 
-        case 128: 
+        case 49: 
         case 129: 
-        case 214: 
-        case 236: 
-        case 248: 
+        case 130: 
+        case 131: 
+        case 217: 
+        case 239: 
+        case 240: 
+        case 252: 
+        case 253: 
+        case 262: 
+        case 272: 
+        case 280: 
+        case 284: 
+        case 287: 
+        case 288: 
+        case 289: 
+        case 290: 
           { 
 	if(Debug.debugTokenizer)
 		dump("processing instruction target");//$NON-NLS-1$
         yybegin(ST_PI_WS);
         return XML_TAG_NAME;
  }
-        case 306: break;
+        case 321: break;
         case 41: 
         case 42: 
           { 
@@ -1533,27 +1589,27 @@
 		dump("comment content");//$NON-NLS-1$
 	return scanXMLCommentText();
  }
-        case 307: break;
+        case 322: break;
         case 40: 
           { 
 	if(Debug.debugTokenizer)
 		dump("LINE FEED");//$NON-NLS-1$
 	return WHITE_SPACE;
  }
-        case 308: break;
+        case 323: break;
         case 0: 
         case 31: 
-        case 121: 
-        case 123: 
-        case 205: 
-        case 206: 
-        case 233: 
+        case 122: 
+        case 124: 
+        case 207: 
+        case 208: 
+        case 236: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nXML content");//$NON-NLS-1$
 	return XML_CONTENT;
  }
-        case 309: break;
+        case 324: break;
         case 5: 
         case 8: 
         case 9: 
@@ -1579,58 +1635,58 @@
 		dump("white space");//$NON-NLS-1$
         return WHITE_SPACE;
  }
-        case 310: break;
+        case 325: break;
         case 16: 
-        case 70: 
+        case 71: 
           { 
 	if(Debug.debugTokenizer)
 		dump("inappropriate tag name");//$NON-NLS-1$
 	yybegin(YYINITIAL);
         return XML_CONTENT;
  }
-        case 311: break;
+        case 326: break;
         case 27: 
-        case 105: 
         case 106: 
-        case 191: 
-        case 226: 
-        case 244: 
-        case 254: 
-        case 263: 
-        case 270: 
-        case 273: 
+        case 107: 
+        case 193: 
+        case 229: 
+        case 248: 
+        case 259: 
+        case 269: 
+        case 277: 
+        case 281: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl contentspec");//$NON-NLS-1$
 	return XML_ELEMENT_DECL_CONTENT;
  }
-        case 312: break;
+        case 327: break;
         case 29: 
-        case 112: 
         case 113: 
-        case 202: 
-        case 230: 
-        case 246: 
-        case 255: 
-        case 264: 
-        case 271: 
-        case 274: 
+        case 114: 
+        case 204: 
+        case 233: 
+        case 250: 
+        case 260: 
+        case 270: 
+        case 278: 
+        case 282: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist contentspec");//$NON-NLS-1$
 	return XML_ATTLIST_DECL_CONTENT;
  }
-        case 313: break;
+        case 328: break;
         case 32: 
-        case 71: 
-        case 82: 
+        case 72: 
+        case 83: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nstart tag open");//$NON-NLS-1$
         yybegin(ST_XML_TAG_NAME);
         return XML_TAG_OPEN;
  }
-        case 314: break;
+        case 329: break;
         case 33: 
         case 34: 
         case 37: 
@@ -1638,30 +1694,30 @@
         case 39: 
         case 43: 
         case 44: 
-        case 53: 
-        case 57: 
-        case 61: 
-        case 63: 
-        case 67: 
-        case 73: 
-        case 79: 
-        case 84: 
+        case 54: 
+        case 58: 
+        case 62: 
+        case 64: 
+        case 68: 
+        case 74: 
+        case 80: 
         case 85: 
         case 86: 
         case 87: 
-        case 89: 
+        case 88: 
         case 90: 
-        case 92: 
-        case 97: 
-        case 102: 
-        case 109: 
+        case 91: 
+        case 93: 
+        case 98: 
+        case 103: 
+        case 110: 
           { 
 	if (Debug.debugTokenizer)
 		System.out.println("!!!unexpected!!!: \"" + yytext() + "\":" + //$NON-NLS-2$//$NON-NLS-1$
 			yychar + "-" + (yychar + yylength()));//$NON-NLS-1$
 	return UNDEFINED;
  }
-        case 315: break;
+        case 330: break;
         case 35: 
         case 36: 
           { 
@@ -1672,35 +1728,35 @@
 		yybegin(ST_CDATA_END);
 	return blockContext;
  }
-        case 316: break;
-        case 64: 
+        case 331: break;
+        case 65: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction attribute name");//$NON-NLS-1$
         yybegin(ST_DHTML_EQUALS);
         return XML_TAG_ATTRIBUTE_NAME;
  }
-        case 317: break;
-        case 65: 
+        case 332: break;
+        case 66: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction '='");//$NON-NLS-1$
         yybegin(ST_DHTML_ATTRIBUTE_VALUE);
         return XML_TAG_ATTRIBUTE_EQUALS;
  }
-        case 318: break;
-        case 66: 
-        case 68: 
+        case 333: break;
+        case 67: 
         case 69: 
-        case 143: 
+        case 70: 
+        case 145: 
           { 
 	if(Debug.debugTokenizer)
 		dump("DHTML processing instruction attribute value");//$NON-NLS-1$
         yybegin(ST_DHTML_ATTRIBUTE_NAME);
         return XML_TAG_ATTRIBUTE_VALUE;
  }
-        case 319: break;
-        case 72: 
+        case 334: break;
+        case 73: 
           { 
 	if(Debug.debugTokenizer)
 		dump("tag close");//$NON-NLS-1$
@@ -1711,44 +1767,44 @@
         	yybegin(YYINITIAL);
         return XML_TAG_CLOSE;
  }
-        case 320: break;
-        case 74: 
+        case 335: break;
         case 75: 
+        case 76: 
           { 
 	if(Debug.debugTokenizer)
 		dump("tag name");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_NAME);
         return XML_TAG_NAME;
  }
-        case 321: break;
-        case 76: 
+        case 336: break;
+        case 77: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attr name");//$NON-NLS-1$
         yybegin(ST_XML_EQUALS);
         return XML_TAG_ATTRIBUTE_NAME;
  }
-        case 322: break;
-        case 77: 
+        case 337: break;
+        case 78: 
           { 
 	if(Debug.debugTokenizer)
 		dump("equals");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_VALUE);
         return XML_TAG_ATTRIBUTE_EQUALS;
  }
-        case 323: break;
-        case 78: 
-        case 80: 
+        case 338: break;
+        case 79: 
         case 81: 
-        case 150: 
+        case 82: 
+        case 152: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attr value");//$NON-NLS-1$
         yybegin(ST_XML_ATTRIBUTE_NAME);
         return XML_TAG_ATTRIBUTE_VALUE;
  }
-        case 324: break;
-        case 83: 
+        case 339: break;
+        case 84: 
           { 
 	if(Debug.debugTokenizer)
 		dump("declaration end");//$NON-NLS-1$
@@ -1759,59 +1815,59 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 325: break;
-        case 88: 
+        case 340: break;
+        case 89: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype type");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_EXTERNAL_ID);
 	return XML_DOCTYPE_NAME;
  }
-        case 326: break;
-        case 91: 
-        case 93: 
+        case 341: break;
+        case 92: 
         case 94: 
         case 95: 
-        case 164: 
-        case 165: 
-        case 168: 
-        case 169: 
-        case 221: 
+        case 96: 
+        case 166: 
+        case 167: 
+        case 170: 
+        case 171: 
+        case 224: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype public reference");//$NON-NLS-1$
 	yybegin(ST_XML_DOCTYPE_ID_SYSTEM);
 	return XML_DOCTYPE_EXTERNAL_ID_PUBREF;
  }
-        case 327: break;
-        case 96: 
-        case 98: 
+        case 342: break;
+        case 97: 
         case 99: 
         case 100: 
-        case 176: 
+        case 101: 
+        case 178: 
           { 
 	if(Debug.debugTokenizer)
 		dump("doctype system reference");//$NON-NLS-1$
 	yybegin(ST_XML_DECLARATION_CLOSE);
 	return XML_DOCTYPE_EXTERNAL_ID_SYSREF;
  }
-        case 328: break;
-        case 101: 
-        case 103: 
+        case 343: break;
+        case 102: 
         case 104: 
-        case 184: 
-        case 185: 
-        case 188: 
-        case 189: 
-        case 224: 
+        case 105: 
+        case 186: 
+        case 187: 
+        case 190: 
+        case 191: 
+        case 227: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl name");//$NON-NLS-1$
 	yybegin(ST_XML_ELEMENT_DECLARATION_CONTENT);
 	return XML_ELEMENT_DECL_NAME;
  }
-        case 329: break;
-        case 107: 
+        case 344: break;
+        case 108: 
           { 
 	if(Debug.debugTokenizer)
 		dump("elementdecl close");//$NON-NLS-1$
@@ -1822,23 +1878,23 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 330: break;
-        case 108: 
-        case 110: 
+        case 345: break;
+        case 109: 
         case 111: 
-        case 195: 
-        case 196: 
-        case 199: 
-        case 200: 
-        case 228: 
+        case 112: 
+        case 197: 
+        case 198: 
+        case 201: 
+        case 202: 
+        case 231: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist name");//$NON-NLS-1$
 	yybegin(ST_XML_ATTLIST_DECLARATION_CONTENT);
 	return XML_ATTLIST_DECL_NAME;
  }
-        case 331: break;
-        case 114: 
+        case 346: break;
+        case 115: 
           { 
 	if(Debug.debugTokenizer)
 		dump("attlist close");//$NON-NLS-1$
@@ -1849,21 +1905,21 @@
 	yybegin(fStateStack.pop());
 	return XML_DECLARATION_CLOSE;
  }
-        case 332: break;
-        case 117: 
+        case 347: break;
+        case 118: 
           { 
 	if(Debug.debugTokenizer)
 		dump("\nend tag open");//$NON-NLS-1$
         yybegin(ST_XML_TAG_NAME);
         return XML_END_TAG_OPEN;
  }
-        case 333: break;
-        case 115: 
+        case 348: break;
         case 116: 
+        case 117: 
           { 
 		return doBlockTagScan();
 	 }
-        case 334: break;
+        case 349: break;
         default: 
           if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
             yy_atEOF = true;
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeEqualsRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeEqualsRegion.java
index cb0f3c9..836dd41 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeEqualsRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeEqualsRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeNameRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeNameRegion.java
index 5ae7dea..a2c4158 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeNameRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeNameRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeValueRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeValueRegion.java
index 0a7b3a5..7fbbbbf 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeValueRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/AttributeValueRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EmptyTagCloseRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EmptyTagCloseRegion.java
new file mode 100644
index 0000000..339d692
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EmptyTagCloseRegion.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.wst.xml.core.internal.parser.regions;
+
+import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+
+
+public class EmptyTagCloseRegion implements ITextRegion {
+	private int fLength = 2;
+	static private final byte fTextLength = 2;
+	static private final String fType = DOMRegionContext.XML_EMPTY_TAG_CLOSE;
+	private int fStart;
+
+
+	public EmptyTagCloseRegion() {
+		super();
+	}
+
+	public EmptyTagCloseRegion(int start, int textLength, int length) {
+		super();
+		fStart = start;
+		fLength = length;
+		if (fTextLength != textLength)
+			throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
+	}
+
+	public void adjustLength(int i) {
+		fLength += i;
+	}
+
+	public void adjustStart(int i) {
+		fStart += i;
+
+	}
+
+	public void adjustTextLength(int i) {
+		throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
+	}
+
+	public void equatePositions(ITextRegion region) {
+		fStart = region.getStart();
+	}
+
+	public int getEnd() {
+		return fStart + fLength;
+	}
+
+	public int getLength() {
+		return fLength;
+	}
+
+	public int getStart() {
+		return fStart;
+	}
+
+	public int getTextEnd() {
+		return fStart + fTextLength;
+	}
+
+	public int getTextLength() {
+		return fTextLength;
+	}
+
+	public String getType() {
+		return fType;
+	}
+
+	public String toString() {
+		return RegionToStringUtil.toString(this);
+	}
+
+	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
+		// can never be updated
+		return null;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EndTagOpenRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EndTagOpenRegion.java
new file mode 100644
index 0000000..1ad5549
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/EndTagOpenRegion.java
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.wst.xml.core.internal.parser.regions;
+
+import org.eclipse.wst.sse.core.internal.provisional.events.StructuredDocumentEvent;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
+import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
+import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
+
+
+public class EndTagOpenRegion implements ITextRegion {
+	static private final String fType = DOMRegionContext.XML_END_TAG_OPEN;
+	private int fLength;
+	private int fStart;
+	static private final byte fTextLength = 2;
+
+
+	public EndTagOpenRegion() {
+		super();
+	}
+
+	public EndTagOpenRegion(int start, int textLength, int length) {
+		this();
+		fStart = start;
+		if (fTextLength != textLength)
+			throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
+		fLength = length;
+	}
+
+	public EndTagOpenRegion(int start, int length) {
+		this();
+		fStart = start;
+		fLength = length;
+	}
+
+	public void adjustLength(int i) {
+		fLength += i;
+
+	}
+
+	public void adjustStart(int i) {
+		fStart += i;
+
+	}
+
+
+	public void adjustTextLength(int i) {
+//		fTextLength += 1;
+		throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
+	}
+
+	public void equatePositions(ITextRegion region) {
+		fStart = region.getStart();
+		fLength = region.getLength();
+//		fTextLength = region.getTextLength();
+	}
+
+	public int getEnd() {
+		return fStart + fLength;
+	}
+
+	public int getLength() {
+		return fLength;
+	}
+
+	public int getStart() {
+		return fStart;
+	}
+
+	public int getTextEnd() {
+		return fStart + fTextLength;
+	}
+
+	public int getTextLength() {
+		return fTextLength;
+	}
+
+	public String getType() {
+		return fType;
+	}
+
+	public String toString() {
+		return RegionToStringUtil.toString(this);
+	}
+
+	public StructuredDocumentEvent updateRegion(Object requester, IStructuredDocumentRegion parent, String changes, int requestStart, int lengthToReplace) {
+		// can never be updated
+		return null;
+	}
+
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/GenericTemplateRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/GenericTemplateRegion.java
index 624f98b..e6064be 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/GenericTemplateRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/GenericTemplateRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionToStringUtil.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionToStringUtil.java
index 34778bb..af783f6 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionToStringUtil.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionToStringUtil.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionUpdateRule.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionUpdateRule.java
index 3258301..567d093 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionUpdateRule.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/RegionUpdateRule.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -90,7 +90,9 @@
 		if (region.getEnd() > region.getTextEnd()) {
 			// no need to add one to end of text, as we used to, since we
 			// change definition of length to equate to offset plus one.
-			if (requestStart > parent.getTextEndOffset(region)) {
+			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=105866
+			// watch out for whitespace at end of text
+			if (requestStart >= parent.getTextEndOffset(region)) {
 				// ok, we are in the whitespace region, so we can't handle,
 				// unless
 				// we are just inserting whitespace.
@@ -116,7 +118,9 @@
 		if (region.getEnd() > region.getTextEnd()) {
 			// no need to add one to end of text, as we used to, since we
 			// change definition of length to equate to offset plus one.
-			if (requestStart > region.getTextEnd()) {
+			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=105866
+			// watch out for whitespace at end of text
+			if (requestStart >= region.getTextEnd()) {
 				// ok, we are in the whitespace region, so we can't handle,
 				// unless
 				// we are just inserting whitespace.
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagCloseRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagCloseRegion.java
index 1c2f164..027ae4d 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagCloseRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagCloseRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagNameRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagNameRegion.java
index 8fd618f..38b59c4 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagNameRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagNameRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagOpenRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagOpenRegion.java
index d9904e7..e8cb85e 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagOpenRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/TagOpenRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -22,7 +22,7 @@
 	static private final String fType = DOMRegionContext.XML_TAG_OPEN;
 	private int fLength;
 	private int fStart;
-	private int fTextLength;
+	static private final byte fTextLength = 1;
 
 
 	public TagOpenRegion() {
@@ -30,9 +30,14 @@
 	}
 
 	public TagOpenRegion(int start, int textLength, int length) {
+		this(start, length);
+		if (fTextLength != textLength)
+			throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
+	}
+
+	public TagOpenRegion(int start, int length) {
 		this();
 		fStart = start;
-		fTextLength = textLength;
 		fLength = length;
 	}
 
@@ -48,14 +53,13 @@
 
 
 	public void adjustTextLength(int i) {
-		fTextLength += 1;
-
+//		fTextLength += 1;
+		throw new RuntimeException("invalid for this region type"); //$NON-NLS-1$
 	}
 
 	public void equatePositions(ITextRegion region) {
 		fStart = region.getStart();
 		fLength = region.getLength();
-		fTextLength = region.getTextLength();
 	}
 
 	public int getEnd() {
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/WhiteSpaceOnlyRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/WhiteSpaceOnlyRegion.java
index 5780c8a..bc0bcc1 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/WhiteSpaceOnlyRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/WhiteSpaceOnlyRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLCDataTextRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLCDataTextRegion.java
index 35faebb..23da980 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLCDataTextRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLCDataTextRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLContentRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLContentRegion.java
index 6ccb570..e9088db 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLContentRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLContentRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserFactory.java
index 03a9951..38df3ea 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserRegion.java
index 9bceeaa..f3917b6 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLHeadParserRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLParserRegionFactory.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLParserRegionFactory.java
index 583d642..581f447 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLParserRegionFactory.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/parser/regions/XMLParserRegionFactory.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -71,9 +71,15 @@
 		else if (context == DOMRegionContext.XML_TAG_OPEN) {
 			newRegion = new TagOpenRegion(start, textLength, length);
 		}
+		else if (context == DOMRegionContext.XML_END_TAG_OPEN) {
+			newRegion = new EndTagOpenRegion(start, textLength, length);
+		}
 		else if (context == DOMRegionContext.XML_TAG_CLOSE) {
 			newRegion = new TagCloseRegion(start);
 		}
+		else if (context == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
+			newRegion = new EmptyTagCloseRegion(start, textLength, length);
+		}
 		else if (context == DOMRegionContext.WHITE_SPACE) {
 			newRegion = new WhiteSpaceOnlyRegion(start, length);
 		}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
index b2e881a..6c6c59b 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceInitializer.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 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
@@ -7,6 +7,7 @@
  * 
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     David Carver - STAR - [205989] - [validation] validate XML after XInclude resolution
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.preferences;
 
@@ -35,7 +36,10 @@
 		node.put(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.TAB);
 		node.putInt(XMLCorePreferenceNames.INDENTATION_SIZE, 1);
 		node.putBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS, false);
-
+		node.putBoolean(XMLCorePreferenceNames.ALIGN_END_BRACKET, false);
+		node.putBoolean(XMLCorePreferenceNames.PRESERVE_CDATACONTENT, false);
+		node.putBoolean(XMLCorePreferenceNames.SPACE_BEFORE_EMPTY_CLOSE_TAG, true);
+		
 		// cleanup preferences
 		node.putBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, true);
 		node.putBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, true);
@@ -51,7 +55,9 @@
 		// this could be made smarter by actually looking up the content
 		// type's valid extensions
 		node.put(XMLCorePreferenceNames.DEFAULT_EXTENSION, "xml"); //$NON-NLS-1$
-		
-		node.putBoolean(XMLCorePreferenceNames.WARN_NO_GRAMMAR, false);
+
+		node.putBoolean(XMLCorePreferenceNames.WARN_NO_GRAMMAR, true);
+		node.putInt(XMLCorePreferenceNames.INDICATE_NO_GRAMMAR, 1);
+		node.putBoolean(XMLCorePreferenceNames.USE_XINCLUDE, false);
 	}
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
index 25c379e..f572af5 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/preferences/XMLCorePreferenceNames.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
+ * Copyright (c) 2005, 2008 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
@@ -7,6 +7,7 @@
  * 
  * Contributors:
  *     IBM Corporation - initial API and implementation
+ *     David Carver - STAR - [205989] - [validation] validate XML after XInclude resolution
  *******************************************************************************/
 
 package org.eclipse.wst.xml.core.internal.preferences;
@@ -138,6 +139,7 @@
 	 * <p>
 	 * Value is of type <code>Boolean</code>.
 	 * </p>
+	 * @deprecated - no longer used
 	 */
 	public static final String CONVERT_EOL_CODES = "convertEOLCodes";//$NON-NLS-1$
 
@@ -151,7 +153,7 @@
 	 * 
 	 */
 	public static final String CLEANUP_EOL_CODE = "cleanupEOLCode";//$NON-NLS-1$
-	
+
 	/**
 	 * Indicates whether or not a warning should be produced when validating a
 	 * file that specifies not grammar.
@@ -159,7 +161,55 @@
 	 * Value is of type <code>boolean</code>.<br />
 	 * Possible values: {TRUE, FALSE}
 	 * </p>
-	 * 
+	 * @deprecated
 	 */
 	public static final String WARN_NO_GRAMMAR = "warnNoGrammar";//$NON-NLS-1$
+	
+	/**
+	 * Indicates whether or not a message should be produced when validating a
+	 * file that specifies not grammar.
+	 * <p>
+	 * Value is of type <code>integer</code>.<br />
+	 * Possible values: {0, 1, 2} (none, warning, error)
+	 * </p>
+	 */
+	public static final String INDICATE_NO_GRAMMAR = "indicateNoGrammar";//$NON-NLS-1$
+
+ 	/**
+	 * Indicates whether or not xincludes should be processed before
+	 * validation.
+	 * <p>
+	 * Value is of type <code>boolean</code>.<br />
+	 * Possible values: {TRUE, FALSE}
+	 * </p>
+	 * 
+	 */
+	public static final String USE_XINCLUDE = "xinclude";//$NON-NLS-1$
+
+	/**
+	 * Indicates if all whitespace in tags with CDATA content should be
+	 * preserved.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String PRESERVE_CDATACONTENT = "preserveCDATAContent";//$NON-NLS-1$
+
+	/**
+	 * Indicates if end brackets of start tags should be placed on a new line
+	 * if the start tag spans more than one line.
+	 * <p>
+	 * Value is of type <code>Boolean</code>.
+	 * </p>
+	 */
+	public static final String ALIGN_END_BRACKET = "alignEndBracket";//$NON-NLS-1$
+	
+	/**
+	 * Indicates if an empty close tag should have a space inserted before
+	 * closing.
+	 * <p>
+	 * Value is of type <code>Boolean</code>
+	 * </p>
+	 */
+	public static final String SPACE_BEFORE_EMPTY_CLOSE_TAG = "spaceBeforeEmptyCloseTag";//$NON-NLS-1$
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java
index 992d60e..7376d4e 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/propagate/PropagatingAdapterFactoryImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLCharEntity.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLCharEntity.java
index 711716c..b1fb483 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLCharEntity.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLCharEntity.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLNamespace.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLNamespace.java
index 3c77349..8cb2260 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLNamespace.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLNamespace.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLPreferenceNames.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLPreferenceNames.java
index 2740e0f..df49d48 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLPreferenceNames.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/IXMLPreferenceNames.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/NameValidator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/NameValidator.java
index 1f53cfb..496beb7 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/NameValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/NameValidator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
@@ -25,6 +25,9 @@
  * the DOM call. And, natually, want to give the user feedback in a more 
  * timely fashion.
  * 
+ * ISSUE: is "endns:" really valid xml name? I think not, but this method
+ * (currently) says it is.
+ * 
  * @plannedfor 1.0
  */
 public final class NameValidator {
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocType.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocType.java
index d47f940..7a3d95f 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocType.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocType.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -14,8 +14,28 @@
 
 
 public interface CMDocType {
+	/**
+	 * CHTML files
+	 */
 	public final static String CHTML_DOC_TYPE = "CHTML";//$NON-NLS-1$
+	/**
+	 * HTML files
+	 */
 	public final static String HTML_DOC_TYPE = "HTML";//$NON-NLS-1$
+	/**
+	 * JSP 1.1 files (currently includes 1.2 elements for backward behavioral compatibility)
+	 */
 	public final static String JSP11_DOC_TYPE = "JSP11";//$NON-NLS-1$
-
+	/**
+	 * JSP 1.2 files
+	 */
+	public final static String JSP12_DOC_TYPE = "JSP12";//$NON-NLS-1$
+	/**
+	 * JSP 2.0 JSP files
+	 */
+	public final static String JSP20_DOC_TYPE = "JSP20";//$NON-NLS-1$
+	/**
+	 * JSP 2.0 Tag files
+	 */
+	public final static String TAG20_DOC_TYPE = "JSP20.TAG";//$NON-NLS-1$
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocumentTracker.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocumentTracker.java
index 63e9b1a..19baa55 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocumentTracker.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMDocumentTracker.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMNodeWrapper.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMNodeWrapper.java
index 1c905c1..dbe75d6 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMNodeWrapper.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/CMNodeWrapper.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/ContentModelAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/ContentModelAdapter.java
index 2184758..a66811e 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/ContentModelAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/ContentModelAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/NullContentModel.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/NullContentModel.java
index 51e77fb..0b2ee6b 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/NullContentModel.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/contentmodel/NullContentModel.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMAttr.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMAttr.java
index aa798f5..ee16e15 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMAttr.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMAttr.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocument.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocument.java
index c9991fc..4d69e58 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocument.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocument.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocumentType.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocumentType.java
index 3afee60..602c65e 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocumentType.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMDocumentType.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMElement.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMElement.java
index c1a6feb..fcd7763 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMElement.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMElement.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMEntity.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMEntity.java
index 68ffb44..3e22ec0 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMEntity.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMEntity.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMImplementation.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMImplementation.java
index 2c16d40..da73e24 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMImplementation.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMImplementation.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
+ * Copyright (c) 2004, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMModel.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMModel.java
index f0af9da..3effc7e 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMModel.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMModel.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMNode.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMNode.java
index 6389c29..ed8875f 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMNode.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMNode.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMText.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMText.java
index 3c88c76..efb3a5f 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMText.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/IDOMText.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/ISourceGenerator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/ISourceGenerator.java
index e6576cf..473048c 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/ISourceGenerator.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/document/ISourceGenerator.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/CommentNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/CommentNodeFormatter.java
index d6f52ff..f30ed3a 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/CommentNodeFormatter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/CommentNodeFormatter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -19,6 +19,8 @@
 
 
 public class CommentNodeFormatter extends NodeFormatter {
+	static private final String CR = "\r"; //$NON-NLS-1$
+	static private final String LF = "\n"; //$NON-NLS-1$
 
 	protected String adjustIndentations(String aString, String lineIndent, String singleIndent) {
 		String result = new String();
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/DocumentNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/DocumentNodeFormatter.java
index 226be22..297df28 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/DocumentNodeFormatter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/DocumentNodeFormatter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/ElementNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/ElementNodeFormatter.java
index 61409b0..beed8f4 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/ElementNodeFormatter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/ElementNodeFormatter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -31,18 +31,23 @@
 import org.eclipse.wst.xml.core.internal.provisional.document.ISourceGenerator;
 import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
 import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
+import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
 
 public class ElementNodeFormatter extends DocumentNodeFormatter {
-	static protected final char DOUBLE_QUOTE = '"';//$NON-NLS-1$
-	static protected final String DOUBLE_QUOTES = "\"\"";//$NON-NLS-1$
-	static protected final char EQUAL_CHAR = '='; // equal sign$NON-NLS-1$
-	static protected final String PRESERVE = "preserve";//$NON-NLS-1$
-	static protected final String PRESERVE_QUOTED = "\"preserve\"";//$NON-NLS-1$
-	static protected final char SINGLE_QUOTE = '\'';//$NON-NLS-1$
-	static protected final String XML_SPACE = "xml:space";//$NON-NLS-1$
+	static private final char DOUBLE_QUOTE = '"';//$NON-NLS-1$
+	static private final String DOUBLE_QUOTES = "\"\"";//$NON-NLS-1$
+	static private final char EQUAL_CHAR = '='; // equal sign$NON-NLS-1$
+	static private final String PRESERVE = "preserve";//$NON-NLS-1$
+	static private final String PRESERVE_QUOTED = "\"preserve\"";//$NON-NLS-1$
+	static private final char SINGLE_QUOTE = '\'';//$NON-NLS-1$
+	static private final String XML_SPACE = "xml:space";//$NON-NLS-1$
+	static private final char SPACE_CHAR = ' '; //$NON-NLS-1$
+	static private final String XSL_NAMESPACE = "http://www.w3.org/1999/XSL/Transform"; //$NON-NLS-1$
+	static private final String XSL_ATTRIBUTE = "attribute"; //$NON-NLS-1$
+	static private final String XSL_TEXT = "text"; //$NON-NLS-1$
 
 	protected void formatEndTag(IDOMNode node, IStructuredFormatContraints formatContraints) {
 		if (!isEndTagMissing(node)) {
@@ -83,8 +88,14 @@
 					insertAfterNode(lastChild, lineDelimiter + nodeIndentation);
 			}
 			else if (lastChild == null && firstStructuredDocumentRegionContainsLineDelimiters(node)) {
-				// indent end tag
-				replace(structuredDocument, node.getFirstStructuredDocumentRegion().getEndOffset(), 0, lineDelimiter + nodeIndentation);
+				// BUG174243 do not indent end tag if node has empty content
+				// (otherwise new text node would be introduced)
+				ModelQueryAdapter adapter = (ModelQueryAdapter) ((IDOMDocument) node.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
+				CMElementDeclaration elementDeclaration = (CMElementDeclaration) adapter.getModelQuery().getCMNode(node);
+				if ((elementDeclaration == null) || (elementDeclaration.getContentType() != CMElementDeclaration.EMPTY)) {
+					// indent end tag
+					replace(structuredDocument, node.getFirstStructuredDocumentRegion().getEndOffset(), 0, lineDelimiter + nodeIndentation);
+				}
 			}
 
 			// format end tag name
@@ -141,10 +152,14 @@
 	 * available.
 	 */
 	protected void formatStartTag(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		String singleIndent = getFormatPreferences().getIndent();
+		StructuredFormatPreferencesXML preferences = (StructuredFormatPreferencesXML) getFormatPreferences();
+		String singleIndent = preferences.getIndent();
 		String lineIndent = formatContraints.getCurrentIndent();
 		String attrIndent = lineIndent + singleIndent;
-		boolean splitMultiAttrs = ((IStructuredFormatPreferencesXML) fFormatPreferences).getSplitMultiAttrs();
+		boolean splitMultiAttrs = preferences.getSplitMultiAttrs();
+		boolean alignEndBracket = preferences.isAlignEndBracket();
+		boolean sawXmlSpace = false;
+
 		IStructuredDocumentRegion flatNode = node.getFirstStructuredDocumentRegion();
 		NamedNodeMap attributes = node.getAttributes();
 
@@ -160,7 +175,7 @@
 				int lineOffset = node.getStructuredDocument().getLineInformationOfOffset(nodeNameOffset).getOffset();
 				String text = node.getStructuredDocument().get(lineOffset, nodeNameOffset - lineOffset);
 				int usedWidth = getIndentationLength(text);
-				currentAvailableLineWidth = getFormatPreferences().getLineWidth() - usedWidth;
+				currentAvailableLineWidth = preferences.getLineWidth() - usedWidth;
 			}
 			catch (BadLocationException e) {
 				// log for now, unless we find reason not to
@@ -171,7 +186,7 @@
 			String lineDelimiter = node.getModel().getStructuredDocument().getLineDelimiter();
 			int attrLength = attributes.getLength();
 			int lastUndefinedRegionOffset = 0;
-			boolean sawXmlSpace = false;
+			boolean startTagSpansOver1Line = false;
 
 			for (int i = 0; i < attrLength; i++) {
 				AttrImpl attr = (AttrImpl) attributes.item(i);
@@ -218,6 +233,7 @@
 				if (splitMultiAttrs && attrLength > 1) {
 					stringBuffer.append(lineDelimiter + attrIndent);
 					stringBuffer.append(flatNode.getText(nameRegion));
+					startTagSpansOver1Line = true;
 					if (valueRegion != null) {
 						// append undefined regions
 						undefinedRegion = getUndefinedRegions(node, lastUndefinedRegionOffset, flatNode.getStartOffset(equalRegion) - lastUndefinedRegionOffset);
@@ -259,7 +275,8 @@
 						}
 						else {
 							stringBuffer.append(lineDelimiter + attrIndent);
-							currentAvailableLineWidth = getFormatPreferences().getLineWidth() - attrIndent.length();
+							startTagSpansOver1Line = true;
+							currentAvailableLineWidth = preferences.getLineWidth() - attrIndent.length();
 						}
 
 						stringBuffer.append(flatNode.getText(nameRegion));
@@ -292,7 +309,8 @@
 						}
 						else {
 							stringBuffer.append(lineDelimiter + attrIndent);
-							currentAvailableLineWidth = getFormatPreferences().getLineWidth() - attrIndent.length();
+							startTagSpansOver1Line = true;
+							currentAvailableLineWidth = preferences.getLineWidth() - attrIndent.length();
 						}
 
 						stringBuffer.append(flatNode.getText(nameRegion));
@@ -325,15 +343,32 @@
 					if (lastRegion.getType() == DOMRegionContext.XML_TAG_CLOSE || lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE)
 						length = length - lastRegion.getLength();
 
-					if (lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE)
+					if (lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
 						// leave space before XML_EMPTY_TAG_CLOSE: <tagName />
-						stringBuffer.append(SPACE_CHAR);
+						// unless already going to move end bracket
+						if (!startTagSpansOver1Line || !alignEndBracket)
+							stringBuffer.append(SPACE_CHAR);
+					}
 				}
 			}
 
+			if (startTagSpansOver1Line && alignEndBracket) {
+				stringBuffer.append(lineDelimiter).append(lineIndent);
+			}
 
 			replace(structuredDocument, offset, length, stringBuffer.toString());
 
+			// BUG108074 & BUG84688 - preserve whitespace in xsl:text &
+			// xsl:attribute
+			String nodeNamespaceURI = node.getNamespaceURI();
+			if (XSL_NAMESPACE.equals(nodeNamespaceURI)) {
+				String nodeName = ((Element) node).getLocalName();
+				if (XSL_ATTRIBUTE.equals(nodeName) || XSL_TEXT.equals(nodeName)) {
+					sawXmlSpace = true;
+					formatContraints.setInPreserveSpaceElement(true);
+				}
+			}
+
 			// If we didn't see a xml:space attribute above, we'll look for
 			// one in the DTD.
 			// We do not check for a conflict between a DTD's 'fixed' value
@@ -343,19 +378,25 @@
 				ModelQueryAdapter adapter = (ModelQueryAdapter) ((IDOMDocument) node.getOwnerDocument()).getAdapterFor(ModelQueryAdapter.class);
 				CMElementDeclaration elementDeclaration = (CMElementDeclaration) adapter.getModelQuery().getCMNode(node);
 				if (elementDeclaration != null) {
-					CMNamedNodeMap cmAttributes = elementDeclaration.getAttributes();
-					// Check implied values from the DTD way.
-					CMAttributeDeclaration attributeDeclaration = (CMAttributeDeclaration) cmAttributes.getNamedItem(XML_SPACE);
-					if (attributeDeclaration != null) {
-						// CMAttributeDeclaration found, check it out.
-						String defaultValue = attributeDeclaration.getAttrType().getImpliedValue();
+					int contentType = elementDeclaration.getContentType();
+					if (preferences.isPreservePCDATAContent() && contentType == CMElementDeclaration.PCDATA) {
+						formatContraints.setInPreserveSpaceElement(true);
+					}
+					else {
+						CMNamedNodeMap cmAttributes = elementDeclaration.getAttributes();
+						// Check implied values from the DTD way.
+						CMAttributeDeclaration attributeDeclaration = (CMAttributeDeclaration) cmAttributes.getNamedItem(XML_SPACE);
+						if (attributeDeclaration != null) {
+							// CMAttributeDeclaration found, check it out.
+							String defaultValue = attributeDeclaration.getAttrType().getImpliedValue();
 
-						// xml:space="preserve" means preserve space,
-						// everything else means back to default.
-						if (defaultValue.compareTo(PRESERVE) == 0)
-							formatContraints.setInPreserveSpaceElement(true);
-						else
-							formatContraints.setInPreserveSpaceElement(false);
+							// xml:space="preserve" means preserve space,
+							// everything else means back to default.
+							if (PRESERVE.compareTo(defaultValue) == 0)
+								formatContraints.setInPreserveSpaceElement(true);
+							else
+								formatContraints.setInPreserveSpaceElement(false);
+						}
 					}
 				}
 			}
@@ -377,7 +418,7 @@
 		}
 
 		if (result.length() > 0)
-			return SPACE + result.trim();
+			return SPACE_CHAR + result.trim();
 		else
 			return result;
 	}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java
index 61be949..a798dbd 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/FormatProcessorXML.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -17,7 +17,6 @@
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
 import org.eclipse.wst.sse.core.internal.format.IStructuredFormatter;
 import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.document.CDATASectionImpl;
 import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
 import org.w3c.dom.Node;
 
@@ -35,7 +34,9 @@
 			Preferences preferences = getModelPreferences();
 			if (preferences != null) {
 				fFormatPreferences.setLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(XMLCorePreferenceNames.ALIGN_END_BRACKET));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setPreservePCDATAContent(preferences.getBoolean(XMLCorePreferenceNames.PRESERVE_CDATACONTENT));
 				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
 				char indentChar = ' ';
@@ -69,10 +70,11 @@
 				break;
 			}
 			case Node.TEXT_NODE : {
-				if (node instanceof CDATASectionImpl)
-					formatter = new NodeFormatter();
-				else
-					formatter = new TextNodeFormatter();
+				formatter = new TextNodeFormatter();
+				break;
+			}
+			case Node.CDATA_SECTION_NODE : {
+				formatter = new NoMoveFormatter();
 				break;
 			}
 			case Node.COMMENT_NODE : {
@@ -87,6 +89,10 @@
 				formatter = new DocumentNodeFormatter();
 				break;
 			}
+			case Node.ENTITY_REFERENCE_NODE : {
+				formatter = new NoMoveFormatter();
+				break;
+			}
 			default : {
 				formatter = new NodeFormatter();
 			}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/IStructuredFormatPreferencesXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/IStructuredFormatPreferencesXML.java
deleted file mode 100644
index 5af2338..0000000
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/IStructuredFormatPreferencesXML.java
+++ /dev/null
@@ -1,21 +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.wst.xml.core.internal.provisional.format;
-
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatPreferences;
-
-public interface IStructuredFormatPreferencesXML extends IStructuredFormatPreferences {
-	boolean getSplitMultiAttrs();
-
-	void setSplitMultiAttrs(boolean splitMultiAttrs);
-}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NoMoveFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NoMoveFormatter.java
new file mode 100644
index 0000000..7b68ece
--- /dev/null
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NoMoveFormatter.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2007 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.wst.xml.core.internal.provisional.format;
+
+import org.eclipse.wst.sse.core.internal.format.IStructuredFormatContraints;
+import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
+
+/**
+ * Formats entities which really need no formatting. They are just like text
+ * nodes.
+ */
+class NoMoveFormatter extends NodeFormatter {
+	protected void formatIndentationBeforeNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
+		// node nothing
+	}
+
+	protected void formatIndentationAfterNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
+		// still do nothing
+	}
+}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java
index b58c531..f48ed18 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/NodeFormatter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -39,98 +39,14 @@
 import org.w3c.dom.Node;
 
 public class NodeFormatter implements IStructuredFormatter {
-	static protected final String CR = "\r"; //$NON-NLS-1$
-	static protected final String CRLF = "\r\n"; //$NON-NLS-1$
-	static protected final String DELIMITERS = " \t\n\r\f"; //$NON-NLS-1$
 	static protected final String EMPTY_STRING = ""; //$NON-NLS-1$
-	static protected final String FF = "\f"; //$NON-NLS-1$
-	static protected final String LF = "\n"; //$NON-NLS-1$
-	static protected final String SPACE = " "; //$NON-NLS-1$
-	static protected final char SPACE_CHAR = ' '; //$NON-NLS-1$
-	static protected final String TAB = "\t"; //$NON-NLS-1$
-	static protected final char TAB_CHAR = '\t'; //$NON-NLS-1$
+	static private final char SPACE_CHAR = ' '; //$NON-NLS-1$
+	static private final char TAB_CHAR = '\t'; //$NON-NLS-1$
+	static private final String TAB = "\t"; //$NON-NLS-1$
 	protected IStructuredFormatContraints fFormatContraints = null;
 	protected IStructuredFormatPreferences fFormatPreferences = null;
 	protected IProgressMonitor fProgressMonitor = null;
 
-	protected String compressSpaces(String string, IStructuredFormatContraints formatContraints) {
-		/*
-		 * Note that the StructuredTextEditor supports mixed new line
-		 * characters (CR, LF, CRLF) in one file. We have to handle that when
-		 * we try to preserve blank lines.
-		 */
-		String[] stringArray = null;
-		boolean clearAllBlankLines = formatContraints.getClearAllBlankLines();
-
-		if (clearAllBlankLines)
-			stringArray = StringUtils.asArray(string);
-		else
-			stringArray = StringUtils.asArray(string, DELIMITERS, true);
-
-		StringBuffer compressedString = new StringBuffer();
-		if (stringArray.length > 0) {
-			boolean cr = false, lf = false, cr2 = false, nonSpace = true;
-
-			if (stringArray[0].compareTo(CR) == 0)
-				cr = true;
-			else if (stringArray[0].compareTo(LF) == 0)
-				lf = true;
-			else if ((stringArray[0].compareTo(SPACE) != 0) && (stringArray[0].compareTo(TAB) != 0) && (stringArray[0].compareTo(FF) != 0)) {
-				compressedString.append(stringArray[0]);
-				nonSpace = true;
-			}
-
-			for (int i = 1; i < stringArray.length; i++) {
-				if (stringArray[i].compareTo(CR) == 0) {
-					if (cr && lf) {
-						if (nonSpace) {
-							compressedString.append(CR + LF);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-						cr2 = true;
-					}
-					else if (cr) {
-						if (nonSpace) {
-							compressedString.append(CR);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-						cr2 = true;
-					}
-					else
-						cr = true;
-				}
-				else if (stringArray[i].compareTo(LF) == 0) {
-					if (cr && lf && cr2) {
-						compressedString.append(stringArray[i]);
-					}
-					else if (lf) {
-						if (nonSpace) {
-							compressedString.append(LF);
-							nonSpace = false;
-						}
-						compressedString.append(stringArray[i]);
-					}
-					else
-						lf = true;
-				}
-				else if ((stringArray[i].compareTo(SPACE) != 0) && (stringArray[i].compareTo(TAB) != 0) && (stringArray[i].compareTo(FF) != 0)) {
-					if (compressedString.length() > 0)
-						compressedString.append(SPACE);
-					compressedString.append(stringArray[i]);
-
-					cr = false;
-					lf = false;
-					cr2 = false;
-					nonSpace = true;
-				}
-			}
-		}
-
-		return compressedString.toString();
-	}
-
 	protected boolean firstStructuredDocumentRegionContainsLineDelimiters(IDOMNode node) {
 		boolean result = false;
 
@@ -166,19 +82,7 @@
 		if (node != null) {
 			IDOMNode nextSibling = (IDOMNode) node.getNextSibling();
 			IStructuredDocument doc = node.getModel().getStructuredDocument();
-			int line = doc.getLineOfOffset(node.getEndOffset());
-			String lineDelimiter = doc.getLineDelimiter();
-			try {
-				lineDelimiter = doc.getLineDelimiter(line);
-			}
-			catch (BadLocationException e) {
-				// log for now, unless we find reason not to
-				Logger.log(Logger.INFO, e.getMessage());
-			}
-			// BUG115716: if cannot get line delimiter from current line, just
-			// use default line delimiter
-			if (lineDelimiter == null)
-				lineDelimiter = doc.getLineDelimiter();
+			String lineDelimiter = getLineDelimiter(node, doc);
 
 			if (node.getParentNode() != null) {
 				if (node.getParentNode().getNodeType() == Node.DOCUMENT_NODE)
@@ -254,21 +158,8 @@
 		if (node != null) {
 			IDOMNode previousSibling = (IDOMNode) node.getPreviousSibling();
 			IStructuredDocument doc = node.getModel().getStructuredDocument();
-			int line = doc.getLineOfOffset(node.getStartOffset());
-			String lineDelimiter = doc.getLineDelimiter();
-			try {
-				if (line > 0) {
-					lineDelimiter = doc.getLineDelimiter(line - 1);
-				}
-			}
-			catch (BadLocationException e) {
-				// log for now, unless we find reason not to
-				Logger.log(Logger.INFO, e.getMessage());
-			}
-			// BUG115716: if cannot get line delimiter from current line, just
-			// use default line delimiter
-			if (lineDelimiter == null)
-				lineDelimiter = doc.getLineDelimiter();
+			String lineDelimiter = getLineDelimiter(node, doc);
+
 			String lineIndent = formatContraints.getCurrentIndent();
 
 			if (node.getParentNode() != null) {
@@ -320,6 +211,25 @@
 		}
 	}
 
+	private String getLineDelimiter(IDOMNode node, IStructuredDocument doc) {
+		int line = doc.getLineOfOffset(node.getStartOffset());
+		String lineDelimiter = doc.getLineDelimiter();
+		try {
+			if (line > 0) {
+				lineDelimiter = doc.getLineDelimiter(line - 1);
+			}
+		}
+		catch (BadLocationException e) {
+			// log for now, unless we find reason not to
+			Logger.log(Logger.INFO, e.getMessage());
+		}
+		// BUG115716: if cannot get line delimiter from current line, just
+		// use default line delimiter
+		if (lineDelimiter == null)
+			lineDelimiter = doc.getLineDelimiter();
+		return lineDelimiter;
+	}
+
 	protected void formatNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
 		if (node != null && (fProgressMonitor == null || !fProgressMonitor.isCanceled())) {
 			// format indentation before node
@@ -417,10 +327,6 @@
 		}
 	}
 
-	protected String getCompressedNodeText(IDOMNode node, IStructuredFormatContraints formatContraints) {
-		return compressSpaces(getNodeText(node), formatContraints);
-	}
-
 	protected IDOMNode getDeepestChildNode(IDOMNode node) {
 		IDOMNode result = null;
 		IDOMNode lastChild = (IDOMNode) node.getLastChild();
@@ -454,7 +360,9 @@
 			Preferences preferences = getModelPreferences();
 			if (preferences != null) {
 				fFormatPreferences.setLineWidth(preferences.getInt(XMLCorePreferenceNames.LINE_WIDTH));
-				((IStructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setSplitMultiAttrs(preferences.getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setAlignEndBracket(preferences.getBoolean(XMLCorePreferenceNames.ALIGN_END_BRACKET));
+				((StructuredFormatPreferencesXML) fFormatPreferences).setPreservePCDATAContent(preferences.getBoolean(XMLCorePreferenceNames.PRESERVE_CDATACONTENT));
 				fFormatPreferences.setClearAllBlankLines(preferences.getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
 
 				char indentChar = ' ';
@@ -488,10 +396,11 @@
 				break;
 			}
 			case Node.TEXT_NODE : {
-				if (node instanceof CDATASectionImpl)
-					formatter = new NodeFormatter();
-				else
-					formatter = new TextNodeFormatter();
+				formatter = new TextNodeFormatter();
+				break;
+			}
+			case Node.CDATA_SECTION_NODE : {
+				formatter = new NoMoveFormatter();
 				break;
 			}
 			case Node.COMMENT_NODE : {
@@ -506,6 +415,10 @@
 				formatter = new DocumentNodeFormatter();
 				break;
 			}
+			case Node.ENTITY_REFERENCE_NODE : {
+				formatter = new NoMoveFormatter();
+				break;
+			}
 			default : {
 				formatter = new NodeFormatter();
 			}
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/StructuredFormatPreferencesXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/StructuredFormatPreferencesXML.java
index 084c689..07024eb 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/StructuredFormatPreferencesXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/StructuredFormatPreferencesXML.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -14,14 +14,68 @@
 
 import org.eclipse.wst.sse.core.internal.format.StructuredFormatPreferences;
 
-public class StructuredFormatPreferencesXML extends StructuredFormatPreferences implements IStructuredFormatPreferencesXML {
-	private boolean fSplitMultiAttrs;
+public class StructuredFormatPreferencesXML extends StructuredFormatPreferences {
+	private boolean fSplitMultiAttrs = false;
+	private boolean fPreservePCDATAContent = false;
+	private boolean fAlignEndBracket = false;
 
+	/**
+	 * True if formatter should split elements with multiple attributes onto
+	 * new lines.
+	 * 
+	 * @return boolean
+	 */
 	public boolean getSplitMultiAttrs() {
 		return fSplitMultiAttrs;
 	}
 
+	/**
+	 * Sets whether or not formatter should split elements with multiple
+	 * attributes onto new lines.
+	 * 
+	 * @param splitMultiAttrs
+	 */
 	public void setSplitMultiAttrs(boolean splitMultiAttrs) {
 		fSplitMultiAttrs = splitMultiAttrs;
 	}
+
+	/**
+	 * True if tags with PCDATA content should not have their whitespace
+	 * messed with when formatting.
+	 * 
+	 * @return boolean
+	 */
+	public boolean isPreservePCDATAContent() {
+		return fPreservePCDATAContent;
+	}
+
+	/**
+	 * Sets whether or not formatter should preserve whitespace in tags with
+	 * PCDATA content.
+	 * 
+	 * @param preservePCDATAContent
+	 */
+	public void setPreservePCDATAContent(boolean preservePCDATAContent) {
+		fPreservePCDATAContent = preservePCDATAContent;
+	}
+
+	/**
+	 * True if end brackets of start tags should be placed on a new line if
+	 * the start tag spans more than one line.
+	 * 
+	 * @return
+	 */
+	public boolean isAlignEndBracket() {
+		return fAlignEndBracket;
+	}
+
+	/**
+	 * Sets whether or not formatter should align the end bracket of a start
+	 * tag on a new line if the start tag spans more than one line.
+	 * 
+	 * @param alignEndBracket
+	 */
+	public void setAlignEndBracket(boolean alignEndBracket) {
+		fAlignEndBracket = alignEndBracket;
+	}
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/TextNodeFormatter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/TextNodeFormatter.java
index 738e447..873ab76 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/TextNodeFormatter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/format/TextNodeFormatter.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2007 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 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
@@ -26,87 +26,148 @@
 
 
 public class TextNodeFormatter extends NodeFormatter {
+	static private final String CR = "\r"; //$NON-NLS-1$
+	static private final String DELIMITERS = " \t\n\r\f"; //$NON-NLS-1$
+	static private final String EMPTY_STRING = ""; //$NON-NLS-1$
+	static private final String FF = "\f"; //$NON-NLS-1$
+	static private final String LF = "\n"; //$NON-NLS-1$
+	static private final String SPACE = " "; //$NON-NLS-1$
+	static private final String TAB = "\t"; //$NON-NLS-1$
+
+	private String compressSpaces(String string, IStructuredFormatContraints formatContraints) {
+		/*
+		 * Note that the StructuredTextEditor supports mixed new line
+		 * characters (CR, LF, CRLF) in one file. We have to handle that when
+		 * we try to preserve blank lines.
+		 */
+		String[] stringArray = null;
+		boolean clearAllBlankLines = formatContraints.getClearAllBlankLines();
+
+		if (clearAllBlankLines)
+			stringArray = StringUtils.asArray(string);
+		else
+			stringArray = StringUtils.asArray(string, DELIMITERS, true);
+
+		StringBuffer compressedString = new StringBuffer();
+		if (stringArray.length > 0) {
+			boolean cr = false, lf = false, cr2 = false, nonSpace = true;
+
+			if (stringArray[0].compareTo(CR) == 0)
+				cr = true;
+			else if (stringArray[0].compareTo(LF) == 0)
+				lf = true;
+			else if ((stringArray[0].compareTo(SPACE) != 0) && (stringArray[0].compareTo(TAB) != 0) && (stringArray[0].compareTo(FF) != 0)) {
+				compressedString.append(stringArray[0]);
+				nonSpace = true;
+			}
+
+			for (int i = 1; i < stringArray.length; i++) {
+				if (stringArray[i].compareTo(CR) == 0) {
+					if (cr && lf) {
+						if (nonSpace) {
+							compressedString.append(CR + LF);
+							nonSpace = false;
+						}
+						compressedString.append(stringArray[i]);
+						cr2 = true;
+					}
+					else if (cr) {
+						if (nonSpace) {
+							compressedString.append(CR);
+							nonSpace = false;
+						}
+						compressedString.append(stringArray[i]);
+						cr2 = true;
+					}
+					else
+						cr = true;
+				}
+				else if (stringArray[i].compareTo(LF) == 0) {
+					if (cr && lf && cr2) {
+						compressedString.append(stringArray[i]);
+					}
+					else if (lf) {
+						if (nonSpace) {
+							compressedString.append(LF);
+							nonSpace = false;
+						}
+						compressedString.append(stringArray[i]);
+					}
+					else
+						lf = true;
+				}
+				else if ((stringArray[i].compareTo(SPACE) != 0) && (stringArray[i].compareTo(TAB) != 0) && (stringArray[i].compareTo(FF) != 0)) {
+					if (compressedString.length() > 0)
+						compressedString.append(SPACE);
+					compressedString.append(stringArray[i]);
+
+					cr = false;
+					lf = false;
+					cr2 = false;
+					nonSpace = true;
+				}
+			}
+		}
+
+		return compressedString.toString();
+	}
+
 	protected void formatNode(IDOMNode node, IStructuredFormatContraints formatContraints) {
 		// [111674] If inside xml:space="preserve" element, we bail
 		if (formatContraints.getInPreserveSpaceElement())
 			return;
 		if (node != null) {
-			IStructuredDocument doc = node.getModel().getStructuredDocument();
-			int line = doc.getLineOfOffset(node.getStartOffset());
-			String lineDelimiter = doc.getLineDelimiter();
-			try {
-				lineDelimiter = doc.getLineDelimiter(line);
-			}
-			catch (BadLocationException e) {
-				// log for now, unless we find reason not to
-				Logger.log(Logger.INFO, e.getMessage());
-			}
-			// BUG166441: if cannot get line delimiter from current line, just
-			// use default line delimiter
-			if (lineDelimiter == null)
-				lineDelimiter = doc.getLineDelimiter();
+			IStructuredDocument doc = node.getStructuredDocument();
+
 			int lineWidth = getFormatPreferences().getLineWidth();
+			int currentAvailableLineWidth = computeAvailableLineWidth(doc, node.getStartOffset(), lineWidth);
+
+			String nodeText = getNodeText(node);
+			String compressedText = compressSpaces(nodeText, formatContraints);
+
 			IDOMNode parentNode = (IDOMNode) node.getParentNode();
-			String nodeIndentation = formatContraints.getCurrentIndent();
-
-			// compute current available line width
-			int currentAvailableLineWidth = 0;
-			try {
-				int nodeNameOffset = node.getStartOffset();
-				int lineOffset = node.getStructuredDocument().getLineInformationOfOffset(nodeNameOffset).getOffset();
-				String text = node.getStructuredDocument().get(lineOffset, nodeNameOffset - lineOffset);
-				int usedWidth = getIndentationLength(text);
-				currentAvailableLineWidth = getFormatPreferences().getLineWidth() - usedWidth;
-			}
-			catch (BadLocationException e) {
-				// log for now, unless we find reason not to
-				Logger.log(Logger.INFO, e.getMessage());
-			}
-
-			String compressedText = getCompressedNodeText(node, formatContraints);
 
 			if (((enoughSpace(parentNode, currentAvailableLineWidth, compressedText)) && (noSiblingsAndNoFollowingComment(node)) && !firstStructuredDocumentRegionContainsLineDelimiters(parentNode)) || node.getStartOffset() == 0) {
-				// enough space
-				// and text has no line delimiters
-				// and (node has no siblings or followed by inline comment)
-				// and
-				// parentFirstStructuredDocumentRegionContainsLineDelimiters
-
-				if (isEndTagMissing(parentNode)) {
-					parentNode = (IDOMNode) parentNode.getParentNode();
-					while (isEndTagMissing(parentNode))
-						parentNode = (IDOMNode) parentNode.getParentNode();
-
-					// add parent's indentation to end
-					nodeIndentation = getNodeIndent(parentNode);
-
-					if (!compressedText.endsWith(lineDelimiter + nodeIndentation)) {
-						compressedText = StringUtils.appendIfNotEndWith(compressedText, lineDelimiter);
-						compressedText = StringUtils.appendIfNotEndWith(compressedText, nodeIndentation);
-					}
-				}
-
-				if ((parentNode != null) && (parentNode.getNodeType() == Node.DOCUMENT_NODE) && (node.getNodeValue().length() > 0) && (node.getNodeValue().trim().length() == 0) && ((node.getPreviousSibling() == null) || (node.getNextSibling() == null)))
-					// delete spaces at the beginning or end of the document
-					compressedText = EMPTY_STRING;
-
-				replaceNodeValue(node, compressedText);
+				handleNoReflow(node, doc, compressedText, parentNode);
 			}
 			else {
 				// not enough space, need to reflow text
-
+				String nodeIndentation = formatContraints.getCurrentIndent();
 				currentAvailableLineWidth = lineWidth - getIndentationLength(nodeIndentation);
 				List vector = reflowText(compressedText, currentAvailableLineWidth);
 				int vectorSize = vector.size();
-				String reflowedText = new String();
-
-				for (int i = 0; i < vectorSize; i++) {
-					if (((String) vector.get(i)).trim().length() > 0)
-						reflowedText = reflowedText + lineDelimiter + nodeIndentation + (String) vector.get(i);
-					else
-						reflowedText = reflowedText + lineDelimiter;
+				StringBuffer reflowedTextBuffer = new StringBuffer();
+				String lineDelimiter = getLineDelimiter(doc, node.getStartOffset());
+				// handle first line specially to check for allowWhitespace
+				if (vectorSize > 0) {
+					// determines whether or not to allow whitespace if there
+					// is an entity or cdata before it
+					boolean allowWhitespace = true;
+					// [206072] StringIndexOutOfBoundsException
+					if (nodeText.length() == 0 || !Character.isWhitespace(nodeText.charAt(0))) {
+						Node previousSibling = node.getPreviousSibling();
+						if (previousSibling != null && (previousSibling.getNodeType() == Node.ENTITY_REFERENCE_NODE || previousSibling.getNodeType() == Node.CDATA_SECTION_NODE))
+							allowWhitespace = false;
+					}
+					String theString = (String) vector.get(0);
+					if (allowWhitespace) {
+						reflowedTextBuffer.append(lineDelimiter);
+						if (theString.trim().length() > 0)
+							reflowedTextBuffer.append(nodeIndentation).append(theString);
+					}
+					else {
+						reflowedTextBuffer.append(theString);
+					}
 				}
-
+				// do the rest of the lines
+				for (int i = 1; i < vectorSize; i++) {
+					String theString = (String) vector.get(i);
+					if (theString.trim().length() > 0)
+						reflowedTextBuffer.append(lineDelimiter).append(nodeIndentation).append(theString);
+					else
+						reflowedTextBuffer.append(lineDelimiter);
+				}
+				String reflowedText = reflowedTextBuffer.toString();
 				if (node.getNextSibling() == null) {
 					if (isEndTagMissing(parentNode)) {
 						// don't add indentation to end if parent end tag is
@@ -116,7 +177,6 @@
 					else {
 						// add parent's indentation to end
 						nodeIndentation = getNodeIndent(parentNode);
-
 						if (!reflowedText.endsWith(lineDelimiter + nodeIndentation)) {
 							reflowedText = StringUtils.appendIfNotEndWith(reflowedText, lineDelimiter);
 							reflowedText = StringUtils.appendIfNotEndWith(reflowedText, nodeIndentation);
@@ -126,13 +186,12 @@
 				else {
 					if (!reflowedText.endsWith(lineDelimiter + nodeIndentation)) {
 						// not already ended with the expected indentation
-
-						if (node.getNextSibling().getNodeType() == Node.COMMENT_NODE) {
+						Node nextSibling = node.getNextSibling();
+						if (nextSibling.getNodeType() == Node.COMMENT_NODE) {
 							// add indentation to end if
 							// currentTextEndsWithLineDelimiter
 							// or followed by multiLineComment
 
-							String nodeText = getNodeText(node);
 							int indexOfLastLineDelimiter = StringUtils.indexOfLastLineDelimiter(nodeText);
 							boolean currentTextEndsWithLineDelimiter = indexOfLastLineDelimiter != -1;
 							if (currentTextEndsWithLineDelimiter) {
@@ -141,7 +200,7 @@
 								currentTextEndsWithLineDelimiter = StringUtils.indexOfNonblank(nodeText, indexOfLastLineDelimiter) == -1;
 							}
 
-							String nodeValue = node.getNextSibling().getNodeValue();
+							String nodeValue = nextSibling.getNodeValue();
 							boolean multiLineComment = StringUtils.containsLineDelimiter(nodeValue);
 
 							if (currentTextEndsWithLineDelimiter || multiLineComment) {
@@ -149,6 +208,13 @@
 								reflowedText = StringUtils.appendIfNotEndWith(reflowedText, nodeIndentation);
 							}
 						}
+						else if (nextSibling.getNodeType() == Node.ENTITY_REFERENCE_NODE || nextSibling.getNodeType() == Node.CDATA_SECTION_NODE) {
+							int textLength = nodeText.length();
+							if (textLength > 0 && Character.isWhitespace(nodeText.charAt(textLength - 1))) {
+								reflowedText = StringUtils.appendIfNotEndWith(reflowedText, lineDelimiter);
+								reflowedText = StringUtils.appendIfNotEndWith(reflowedText, nodeIndentation);
+							}
+						}
 						else {
 							// not a comment, just add add indentation to end
 							reflowedText = StringUtils.appendIfNotEndWith(reflowedText, lineDelimiter);
@@ -159,10 +225,44 @@
 
 				replaceNodeValue(node, reflowedText);
 			}
-
 		}
 	}
 
+	/**
+	 * Keeps text inline with its parent (no reflow necessary)
+	 * 
+	 * @param node
+	 * @param doc
+	 * @param compressedText
+	 * @param parentNode
+	 */
+	private void handleNoReflow(IDOMNode node, IStructuredDocument doc, String compressedText, IDOMNode parentNode) {
+		String nodeIndentation;
+		// enough space and text has no line delimiters and (node has no
+		// siblings or followed by inline comment) and
+		// parentFirstStructuredDocumentRegionContainsLineDelimiters
+
+		if (isEndTagMissing(parentNode)) {
+			parentNode = (IDOMNode) parentNode.getParentNode();
+			while (isEndTagMissing(parentNode))
+				parentNode = (IDOMNode) parentNode.getParentNode();
+
+			// add parent's indentation to end
+			nodeIndentation = getNodeIndent(parentNode);
+			String lineDelimiter = getLineDelimiter(doc, node.getStartOffset());
+			if (!compressedText.endsWith(lineDelimiter + nodeIndentation)) {
+				compressedText = StringUtils.appendIfNotEndWith(compressedText, lineDelimiter);
+				compressedText = StringUtils.appendIfNotEndWith(compressedText, nodeIndentation);
+			}
+		}
+
+		if ((parentNode != null) && (parentNode.getNodeType() == Node.DOCUMENT_NODE) && (node.getNodeValue().length() > 0) && (node.getNodeValue().trim().length() == 0) && ((node.getPreviousSibling() == null) || (node.getNextSibling() == null)))
+			// delete spaces at the beginning or end of the document
+			compressedText = EMPTY_STRING;
+
+		replaceNodeValue(node, compressedText);
+	}
+
 	private boolean noSiblingsAndNoFollowingComment(IDOMNode node) {
 		IDOMNode nextSibling = (IDOMNode) node.getNextSibling();
 		return !nodeHasSiblings(node) || (noLineDelimiter(node) && isComment(nextSibling) && noLineDelimiter(nextSibling));
@@ -184,8 +284,18 @@
 		return result;
 	}
 
+	/**
+	 * Calculates if there is enough space on the current line for
+	 * compressedText (and for its parent end tag)
+	 * 
+	 * @param parentNode
+	 * @param currentAvailableLineWidth
+	 * @param compressedText
+	 * @return
+	 */
 	private boolean enoughSpace(IDOMNode parentNode, int currentAvailableLineWidth, String compressedText) {
-		return compressedText.length() <= (currentAvailableLineWidth - parentNode.getNodeName().length() - 3) && !StringUtils.containsLineDelimiter(compressedText);
+		int parentEndTagLength = parentNode.getNodeName().length() + 3;
+		return compressedText.length() <= (currentAvailableLineWidth - parentEndTagLength) && !StringUtils.containsLineDelimiter(compressedText);
 	}
 
 	protected Vector reflowText(String text, int availableWidth) {
@@ -236,4 +346,40 @@
 
 		return output;
 	}
+
+	private String getLineDelimiter(IStructuredDocument doc, int nodeOffset) {
+		int line = doc.getLineOfOffset(nodeOffset);
+		String lineDelimiter = doc.getLineDelimiter();
+		try {
+			if (line > 0) {
+				lineDelimiter = doc.getLineDelimiter(line - 1);
+			}
+		}
+		catch (BadLocationException e) {
+			// log for now, unless we find reason not to
+			Logger.log(Logger.INFO, e.getMessage());
+		}
+		// BUG115716: if cannot get line delimiter from current line, just
+		// use default line delimiter
+		if (lineDelimiter == null)
+			lineDelimiter = doc.getLineDelimiter();
+		return lineDelimiter;
+	}
+
+	private int computeAvailableLineWidth(IStructuredDocument doc, int nodeOffset, int lineWidth) {
+		// compute current available line width
+		int currentAvailableLineWidth = 0;
+		try {
+			int lineOffset = doc.getLineInformationOfOffset(nodeOffset).getOffset();
+			String text = doc.get(lineOffset, nodeOffset - lineOffset);
+			int usedWidth = getIndentationLength(text);
+			currentAvailableLineWidth = lineWidth - usedWidth;
+		}
+		catch (BadLocationException e) {
+			// log for now, unless we find reason not to
+			Logger.log(Logger.INFO, e.getMessage());
+		}
+		return currentAvailableLineWidth;
+	}
+
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/text/IXMLPartitions.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/text/IXMLPartitions.java
index 0ac81bf..5d36751 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/text/IXMLPartitions.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/provisional/text/IXMLPartitions.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * 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.xml.core.internal.provisional.text;
 
 
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/regions/DOMRegionContext.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/regions/DOMRegionContext.java
index e379894..4a73d8d 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/regions/DOMRegionContext.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/regions/DOMRegionContext.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapter.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapter.java
index fc5465c..74ad2a1 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapter.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapter.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapterImpl.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapterImpl.java
index 26b00e6..a68e672 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapterImpl.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/ModelQueryAdapterImpl.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/MovableModelQuery.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/MovableModelQuery.java
index 7557efc..49d7339 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/MovableModelQuery.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/ssemodelquery/MovableModelQuery.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/tasks/XMLFileTaskScanner.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/tasks/XMLFileTaskScanner.java
index 4a10d61..94b8155 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/tasks/XMLFileTaskScanner.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/tasks/XMLFileTaskScanner.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/XMLStructuredDocumentRegion.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/XMLStructuredDocumentRegion.java
index c5cc404..e26bf08 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/XMLStructuredDocumentRegion.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/XMLStructuredDocumentRegion.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2005 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v10.html
- * 
+ *
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/rules/StructuredTextPartitionerForXML.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/rules/StructuredTextPartitionerForXML.java
index 6d61095..8b73869 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/rules/StructuredTextPartitionerForXML.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/text/rules/StructuredTextPartitionerForXML.java
@@ -1,10 +1,10 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 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
  *     Jens Lukowski/Innoopract - initial renaming/restructuring
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/AbstractPropagatingValidator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/AbstractPropagatingValidator.java
index adef45a..3fddda3 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/AbstractPropagatingValidator.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/AbstractPropagatingValidator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2008 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -12,6 +12,7 @@
  *******************************************************************************/
 package org.eclipse.wst.xml.core.internal.validate;
 
+import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
 import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
 import org.eclipse.wst.sse.core.internal.validate.ValidationAdapter;
 import org.w3c.dom.Node;
@@ -36,8 +37,30 @@
 			return;
 		getValidator().validate(node);
 
+		propagateToChildElements(getPropagatee(), (Node) node);
+	}
 
-		Propagator.propagateToChildElements(getPropagatee(), (Node) node);
+	private void propagateToChildElements(ValidationComponent validator, Node parent) {
+		if (parent == null)
+			return;
+		Class clazz = validator.getClass();
+
+		Node child = parent.getFirstChild();
+		while (child != null) {
+			if (child.getNodeType() == Node.ELEMENT_NODE) {
+				INodeNotifier notifier = (INodeNotifier) child;
+				ValidationAdapter va = (ValidationAdapter) notifier.getExistingAdapter(clazz);
+				if (va == null) {
+					notifier.addAdapter(validator);
+					va = validator;
+				}
+				// bug 143213 - Can't batch validate open HTML files when
+				// as-you-type validation is enabled
+				va.setReporter(validator.getReporter());
+				va.validate((IndexedRegion) child);
+			}
+			child = child.getNextSibling();
+		}
 	}
 
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/Propagator.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/Propagator.java
index e58d1a6..3ce6569 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/Propagator.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/Propagator.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -18,7 +18,10 @@
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
-
+/**
+ * @deprecated since 2.0 M5 - if propogateToChildElement is needed, just copy
+ *             method to your own class
+ */
 public class Propagator {
 
 	public static void propagateToChildElements(ValidationComponent validator, Node parent) {
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/ValidationComponent.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/ValidationComponent.java
index 7210fe5..dfd921f 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/ValidationComponent.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/internal/validate/ValidationComponent.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
+ * Copyright (c) 2001, 2007 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
@@ -47,4 +47,8 @@
 	public void setReporter(ValidationReporter reporter) {
 		this.reporter = reporter;
 	}
+
+	ValidationReporter getReporter() {
+		return this.reporter;
+	}
 }
diff --git a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/IXMLPartitions.java b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/IXMLPartitions.java
index c16c574..d8da786 100644
--- a/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/IXMLPartitions.java
+++ b/bundles/org.eclipse.wst.xml.core/src/org/eclipse/wst/xml/core/text/IXMLPartitions.java
@@ -1,3 +1,13 @@
+/*******************************************************************************
+ * 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.xml.core.text;
 
 
diff --git a/bundles/org.eclipse.wst.xml.ui/.classpath b/bundles/org.eclipse.wst.xml.ui/.classpath
deleted file mode 100644
index 24be42b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-validation"/>
-	<classpathentry kind="src" path="src-multipage"/>
-	<classpathentry kind="src" path="src-wizards"/>
-	<classpathentry kind="src" path="src-catalog"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.xml.ui/.cvsignore b/bundles/org.eclipse.wst.xml.ui/.cvsignore
deleted file mode 100644
index 701c285..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.cvsignore
+++ /dev/null
@@ -1,10 +0,0 @@
-bin
-temp.folder
-build.xml
-xmleditor.jar
-org.eclipse.wst.xml.ui_1.0.0.jar
-org.eclipse.wst.xml.ui_1.0.0.zip
-xmleditorsrc.zip
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.wst.xml.ui/.options b/bundles/org.eclipse.wst.xml.ui/.options
deleted file mode 100644
index 5acae8f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.options
+++ /dev/null
@@ -1 +0,0 @@
-org.eclipse.wst.xml.ui/projectionperf=false
diff --git a/bundles/org.eclipse.wst.xml.ui/.project b/bundles/org.eclipse.wst.xml.ui/.project
deleted file mode 100644
index 50dc4a8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.project
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.xml.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.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index afa5c91..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
diff --git a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 782e417..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,80 +0,0 @@
-#Sun Apr 16 17:23:39 EDT 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=ignore

-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.annotationSuperInterface=warning

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

-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore

-org.eclipse.jdt.core.compiler.problem.deprecation=ignore

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

-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore

-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

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

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

-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore

-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error

-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error

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

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

-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore

-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error

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

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled

-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=error

-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore

-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.missingOverrideAnnotation=ignore

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

-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error

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

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

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

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning

-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled

-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error

-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning

-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore

-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

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

-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning

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

-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error

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

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

-org.eclipse.jdt.core.compiler.problem.unusedImport=error

-org.eclipse.jdt.core.compiler.problem.unusedLabel=error

-org.eclipse.jdt.core.compiler.problem.unusedLocal=error

-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=error

-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

-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.xml.ui/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index ef2ac65..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:39 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index c59368c..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.pde.prefs b/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index f724958..0000000
--- a/bundles/org.eclipse.wst.xml.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-#Sun Apr 16 14:05:29 EDT 2006
-compilers.p.build=0
-compilers.p.deprecated=1
-compilers.p.illegal-att-value=0
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=0
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.p.unused-element-or-attribute=0
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/bundles/org.eclipse.wst.xml.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xml.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 878a611..0000000
--- a/bundles/org.eclipse.wst.xml.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,60 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.wst.xml.ui; singleton:=true
-Bundle-Version: 1.0.202.qualifier
-Bundle-Activator: org.eclipse.wst.xml.ui.internal.XMLUIPlugin
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.xml.ui,
- org.eclipse.wst.xml.ui.internal;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.actions;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.autoedit;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.catalog;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.catalog.icons.etool50;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.catalog.icons.obj16;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.catalog.icons.ovr16;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.contentassist;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.contentoutline;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.correction;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.dialogs;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.dnd;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.doubleclick;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.editor;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.hyperlink;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.nsedit;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.preferences;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.projection;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.properties;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.provisional;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.registry;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.search;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.selection;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.style;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.tabletree;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.taginfo;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.templates;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.text;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.util;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.validation;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.validation.core.errorinfo;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.wizards;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.internal.wizards.icons;x-friends:="org.eclipse.wst.xsd.ui,org.eclipse.wst.dtd.ui",
- org.eclipse.wst.xml.ui.views.contentoutline,
- org.eclipse.wst.xml.ui.views.properties
-Require-Bundle: org.eclipse.ui.ide;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.views;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.jface.text;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.editors;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.sse.ui;bundle-version="[1.0.101,1.1.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.ui;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.ui;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- com.ibm.icu;bundle-version="[3.4.4,3.5.0)"
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.wst.xml.ui/about.html b/bundles/org.eclipse.wst.xml.ui/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/bundles/org.eclipse.wst.xml.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" 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 ("Redistributor") 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 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.wst.xml.ui/build.properties b/bundles/org.eclipse.wst.xml.ui/build.properties
deleted file mode 100644
index d6aa2ff..0000000
--- a/bundles/org.eclipse.wst.xml.ui/build.properties
+++ /dev/null
@@ -1,30 +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
-#     
-###############################################################################
-bin.includes = plugin.xml,\
-               icons/,\
-               plugin.properties,\
-               templates/,\
-               examples/,\
-               META-INF/,\
-               .,\
-               .options,\
-               about.html
-bin.excludes = bin/**,\
-               @dot/**,\
-               temp.folder/**
-source.. = src/,\
-           src-multipage/,\
-           src-wizards/,\
-           src-catalog/,\
-           src-validation
-src.includes = build.properties
diff --git a/bundles/org.eclipse.wst.xml.ui/examples/EditingAndValidatingXML.zip b/bundles/org.eclipse.wst.xml.ui/examples/EditingAndValidatingXML.zip
deleted file mode 100644
index 6257767..0000000
--- a/bundles/org.eclipse.wst.xml.ui/examples/EditingAndValidatingXML.zip
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/XMLFile.gif b/bundles/org.eclipse.wst.xml.ui/icons/XMLFile.gif
deleted file mode 100644
index 14eb1be..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/XMLFile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/collapse.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/collapse.gif
deleted file mode 100644
index ce74721..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/collapse.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/collapse_all.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/collapse_all.gif
deleted file mode 100644
index 7dc0de5..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/collapse_all.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/constrainoff.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/constrainoff.gif
deleted file mode 100644
index 4bdceb8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/constrainoff.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/constrainon.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/constrainon.gif
deleted file mode 100644
index e823d57..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/constrainon.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/expand.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/expand.gif
deleted file mode 100644
index bc37b7a..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/expand.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/expand_all.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/expand_all.gif
deleted file mode 100644
index 492c14f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/expand_all.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/new_xml.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/new_xml.gif
deleted file mode 100644
index e1cfdf7..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/new_xml.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/rldgrmr.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/rldgrmr.gif
deleted file mode 100644
index 49325dd..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/rldgrmr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/validate.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/validate.gif
deleted file mode 100644
index 561d146..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/dtool16/validate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/collapse.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/collapse.gif
deleted file mode 100644
index b75bc19..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/collapse.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/collapse_all.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/collapse_all.gif
deleted file mode 100644
index a2d80a9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/collapse_all.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/constrainoff.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/constrainoff.gif
deleted file mode 100644
index c1ab04c..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/constrainoff.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/constrainon.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/constrainon.gif
deleted file mode 100644
index 082f9c0..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/constrainon.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/expand.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/expand.gif
deleted file mode 100644
index b2f4530..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/expand.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/expand_all.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/expand_all.gif
deleted file mode 100644
index 0205b29..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/expand_all.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/new_xml.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/new_xml.gif
deleted file mode 100644
index 9dfb62d..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/new_xml.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/rldgrmr.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/rldgrmr.gif
deleted file mode 100644
index 049cac6..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/rldgrmr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/validate.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/validate.gif
deleted file mode 100644
index 2b347ac..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/etool16/validate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/XSDFile.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/XSDFile.gif
deleted file mode 100644
index cc0eeb7..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/XSDFile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/add_correction.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/add_correction.gif
deleted file mode 100644
index 252d7eb..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/add_correction.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/att_req_obj.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/att_req_obj.gif
deleted file mode 100644
index a8c66d5..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/att_req_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/attribute_obj.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/attribute_obj.gif
deleted file mode 100644
index 79d49d0..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/attribute_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/cdatasection.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/cdatasection.gif
deleted file mode 100644
index 6b0872c..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/cdatasection.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/choice.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/choice.gif
deleted file mode 100644
index d13ba2e..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/choice.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/comment_obj.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/comment_obj.gif
deleted file mode 100644
index 28c2ccb..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/comment_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/correction_change.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/correction_change.gif
deleted file mode 100644
index af83c52..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/correction_change.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/doctype.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/doctype.gif
deleted file mode 100644
index 3300f82..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/doctype.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/dtdfile.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/dtdfile.gif
deleted file mode 100644
index 3c0acad..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/dtdfile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/element_obj.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/element_obj.gif
deleted file mode 100644
index 3567815..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/element_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/entity.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/entity.gif
deleted file mode 100644
index 61fd3d4..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/entity.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/entity_reference.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/entity_reference.gif
deleted file mode 100644
index 3af9149..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/entity_reference.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/enum.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/enum.gif
deleted file mode 100644
index 5c0a481..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/enum.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/error-overlay.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/error-overlay.gif
deleted file mode 100644
index 119dccc..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/error-overlay.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/localvariable_obj.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/localvariable_obj.gif
deleted file mode 100644
index 3244b26..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/localvariable_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/notation.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/notation.gif
deleted file mode 100644
index 57ad089..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/notation.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/occurone_obj.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/occurone_obj.gif
deleted file mode 100644
index 7bb65c9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/occurone_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/proinst_obj.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/proinst_obj.gif
deleted file mode 100644
index 74436d8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/proinst_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic-deemphasized.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic-deemphasized.gif
deleted file mode 100644
index 73f47e8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic-deemphasized.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic-emphasized.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic-emphasized.gif
deleted file mode 100644
index bd1ba54..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic-emphasized.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic.gif
deleted file mode 100644
index 65f516e..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-generic.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-macro.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-macro.gif
deleted file mode 100644
index 5d1f81b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/tag-macro.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/text.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/text.gif
deleted file mode 100644
index efa7a38..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/text.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/txtext.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/txtext.gif
deleted file mode 100644
index b226e41..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/txtext.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/warning_obj.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/warning_obj.gif
deleted file mode 100644
index 1e5f5eb..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/obj16/warning_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/error_ovr.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/error_ovr.gif
deleted file mode 100644
index 119dccc..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/error_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/stale_error_ovr.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/stale_error_ovr.gif
deleted file mode 100644
index 5b0471b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/stale_error_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/warn_ovr.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/warn_ovr.gif
deleted file mode 100644
index c350704..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/ovr16/warn_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/full/view16/attibute.gif b/bundles/org.eclipse.wst.xml.ui/icons/full/view16/attibute.gif
deleted file mode 100644
index 79d49d0..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/full/view16/attibute.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/newSampleProject_wiz.gif b/bundles/org.eclipse.wst.xml.ui/icons/newSampleProject_wiz.gif
deleted file mode 100644
index dc96b10..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/newSampleProject_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/newSampleProject_wizbanner.gif b/bundles/org.eclipse.wst.xml.ui/icons/newSampleProject_wizbanner.gif
deleted file mode 100644
index 9a0ff30..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/newSampleProject_wizbanner.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/sourceEditor.gif b/bundles/org.eclipse.wst.xml.ui/icons/sourceEditor.gif
deleted file mode 100644
index 75ebdb8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/sourceEditor.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/icons/xmldoc.gif b/bundles/org.eclipse.wst.xml.ui/icons/xmldoc.gif
deleted file mode 100644
index 14eb1be..0000000
--- a/bundles/org.eclipse.wst.xml.ui/icons/xmldoc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/plugin.properties b/bundles/org.eclipse.wst.xml.ui/plugin.properties
deleted file mode 100644
index 65978f3..0000000
--- a/bundles/org.eclipse.wst.xml.ui/plugin.properties
+++ /dev/null
@@ -1,70 +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
-#     
-###############################################################################
-providerName=Eclipse.org
-pluginName=XML UI Plugin
-XML_Files.name=XML Files
-XML_Source.name=XML Source
-XML_Templates.name=XML Templates
-XML_Styles.name=XML Styles
-XML_Editor.name=XML Editor
-###############################################################################
-_UI_WIZARD_NEW_XML=XML
-genMenuLabel=&Generate
-_UI_ACTION_CREATE_XML=&XML File...
-_UI_CREATE_NEW_XML_FILE=Create a new XML file.
-XMLExample.name=Editing and validating XML files
-XMLExampleProjectCreationWizard.description=Create a project containing XML sample files
-XMLExampleProjectCreationWizard.projectname=XMLExamples
-XMLExampleProjectCreationWizard.pagetitle=XML sample files for editing and validating
-XMLExampleProjectCreationWizard.pagedescription=Create a project containing XML sample files.
-XMLExampleProjectCreationWizard.label=&Project Name:
-###############################################################################
-All_XML_context_type_Extension_Element.name=All XML
-XML_New_context_type_Extension_Element.name=New XML
-XML_Tag_context_type_Extension_Element.name=XML Tag
-XML_Attribute_context_type_Extension_Element.name=XML Attribute
-XML_Attribute_value_context_type_Extension_Element.name=XML Attribute value
-###############################################################################
-AddTask.label=Add &Task...
-AddTask.tooltip=Add Task...
-AddBookmark.label=Add Boo&kmark...
-AddBookmark.tooltip=Add Bookmark...
-SelectRuler.label=Select Ruler
-###############################################################################
-XML_Catalog_File_Type_Extension_Point.name=XML Catalog file type extension point
-_UI_PREF_XML_CATALOG=XML Catalog
-_UI_PREF_DTD_FILES=DTD Files
-_UI_PREF_XSD_FILES=XSD Files
-_UI_PREF_TAGLIB_DEF_FILES=Taglib Definition Files
-###############################################################################
-_UI_XML_VALIDATOR                   = XML Validator
-_UI_REF_FILE_SHOW_DETAILS           = Show Details...
-_UI_MENU_VALIDATE_XML               = Validate XML File
-##
-CleanupDocument_label=Cleanup Document...
-CleanupDocument_tooltip=Cleanup Document
-ToggleComment_label=Toggle Comment
-ToggleComment_tooltip=Toggle Comment
-AddBlockComment_label=Add Block Comment
-AddBlockComment_tooltip=Add Block Comment
-RemoveBlockComment_label=Remove Block Comment
-RemoveBlockComment_tooltip=Remove Block Comment
-FindOccurrences_label=Occurrences in File
-StructureSelectEnclosing_label=Enclosing Element
-StructureSelectEnclosing_tooltip=Expand selection to include enclosing element
-StructureSelectNext_label=Next Element
-StructureSelectNext_tooltip=Expand selection to include next sibling
-StructureSelectPrevious_label=Previous Element
-StructureSelectPrevious_tooltip=Expand selection to include previous sibling
-StructureSelectHistory_label=Restore Last Selection
-StructureSelectHistory_tooltip=Restore last selection
diff --git a/bundles/org.eclipse.wst.xml.ui/plugin.xml b/bundles/org.eclipse.wst.xml.ui/plugin.xml
deleted file mode 100644
index d2cf387..0000000
--- a/bundles/org.eclipse.wst.xml.ui/plugin.xml
+++ /dev/null
@@ -1,486 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-	<extension-point id="catalogFileType" name="%XML_Catalog_File_Type_Extension_Point.name" schema="schema/catalogFileType.exsd"/>
-
-	<extension point="org.eclipse.ui.preferencePages">
-		<page
-			name="%_UI_PREF_XML_CATALOG"
-			category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
-			class="org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogPreferencePage"
-			id="org.eclipse.wst.xml.core.ui.XMLCatalogPreferencePage">
-		</page>
-	</extension>
-	<extension point="org.eclipse.wst.xml.ui.catalogFileType">
-		<fileType
-			extensions="dtd, ent, mod"
-			description="%_UI_PREF_DTD_FILES"
-			id="org.eclipse.wst.xml.core.ui.catalogFileType.dtd">
-		</fileType>
-		<fileType
-			extensions="xsd"
-			description="%_UI_PREF_XSD_FILES"
-			id="org.eclipse.wst.xml.core.ui.catalogFileType.xsd">
-		</fileType>
-		<fileType
-			extensions="tld"
-			description="%_UI_PREF_TAGLIB_DEF_FILES"
-			id="org.eclipse.wst.xml.core.ui.catalogFileType.tld">
-		</fileType>
-	</extension>
-	
-	<!--The org.eclipse.wst.xml.core.xmlsource content type is only for
-		handling some special cases of ill-formed xml in a reasonable
-		manner, and should not be emulated by clients. The two content
-		types are often used interchangeably by the XML component, but
-		please use org.eclipse.core.runtime.xml instead. -->
-	<extension point="org.eclipse.wst.sse.ui.editorConfiguration">
-		<sourceViewerConfiguration
-			class="org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML"
-			target="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.core.xmlsource" />
-		<contentOutlineConfiguration
-			class="org.eclipse.wst.xml.ui.views.contentoutline.XMLContentOutlineConfiguration"
-			target="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.core.xmlsource" />
-		<propertySheetConfiguration
-			class="org.eclipse.wst.xml.ui.views.properties.XMLPropertySheetConfiguration"
-			target="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.core.xmlsource" />
-		<provisionalConfiguration
-			type="sourceeditingtexttools"
-			class="org.eclipse.wst.xml.ui.internal.provisional.XMLSourceEditingTextTools"
-			target="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.core.xmlsource" />
-		<provisionalConfiguration
-			type="characterpairmatcher"
-			class="org.eclipse.wst.xml.ui.internal.text.XMLDocumentRegionEdgeMatcher"
-			target="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.core.xmlsource" />
-		<provisionalConfiguration
-			type="structuredtextfoldingprovider"
-			class="org.eclipse.wst.xml.ui.internal.projection.StructuredTextFoldingProviderXML"
-			target="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.core.xmlsource" />
-		<provisionalConfiguration
-			type="correctionassistant"
-			class="org.eclipse.wst.xml.ui.internal.correction.CorrectionAssistantProviderXML"
-			target="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.core.xmlsource" />
-		<provisionalDefinition
-			type="preferencepages"
-			value="org.eclipse.wst.sse.ui.preferences.xml, org.eclipse.wst.sse.ui.preferences.xml.source, org.eclipse.wst.sse.ui.preferences.xml.templates, org.eclipse.wst.sse.ui.preferences.xml.colors"
-			target="org.eclipse.core.runtime.xml, org.eclipse.wst.xml.core.xmlsource" />
-	</extension>
-
-	<extension
-		point="org.eclipse.core.filebuffers.annotationModelCreation">
-		<factory
-			contentTypeId="org.eclipse.core.runtime.xml"
-			class="org.eclipse.wst.sse.ui.internal.StructuredResourceMarkerAnnotationModelFactory" />
-	</extension>
-	<extension
-		point="org.eclipse.wst.sse.ui.adapterFactoryDescription">
-		<adapterFactoryDescription
-			class="org.eclipse.wst.xml.ui.internal.registry.AdapterFactoryProviderForXML">
-			<contentType id="org.eclipse.core.runtime.xml" />
-		</adapterFactoryDescription>
-	</extension>
-	<extension point="org.eclipse.ui.preferencePages">
-		<!-- XML PREFERENCE PAGES -->
-		<page
-			name="%XML_Files.name"
-			category="org.eclipse.wst.sse.ui.internal.provisional.preferences"
-			class="org.eclipse.wst.xml.ui.internal.preferences.XMLFilesPreferencePage"
-			id="org.eclipse.wst.sse.ui.preferences.xml">
-		</page>
-		<page
-			name="%XML_Source.name"
-			category="org.eclipse.wst.sse.ui.preferences.xml"
-			class="org.eclipse.wst.xml.ui.internal.preferences.XMLSourcePreferencePage"
-			id="org.eclipse.wst.sse.ui.preferences.xml.source">
-		</page>
-		<page
-			name="%XML_Templates.name"
-			category="org.eclipse.wst.sse.ui.preferences.xml"
-			class="org.eclipse.wst.xml.ui.internal.preferences.XMLTemplatePreferencePage"
-			id="org.eclipse.wst.sse.ui.preferences.xml.templates">
-		</page>
-		<page
-			name="%XML_Styles.name"
-			category="org.eclipse.wst.sse.ui.preferences.xml"
-			class="org.eclipse.wst.xml.ui.internal.preferences.XMLColorPage"
-			id="org.eclipse.wst.sse.ui.preferences.xml.colors">
-		</page>
-	</extension>
-	<!-- Editor actionsets -->
-	<extension point="org.eclipse.ui.actionSetPartAssociations">
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.edit.text.actionSet.annotationNavigation">
-			<part id="org.eclipse.core.runtime.xml.source"></part>
-			<part id="org.eclipse.core.runtime.xml.source2"></part>
-		</actionSetPartAssociation>
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.NavigateActionSet">
-			<part id="org.eclipse.core.runtime.xml.source"></part>
-			<part id="org.eclipse.core.runtime.xml.source2"></part>
-		</actionSetPartAssociation>
-	</extension>
-
-	<!-- Templates -->
-	<extension point="org.eclipse.ui.editors.templates">
-		<contextType
-			name="%All_XML_context_type_Extension_Element.name"
-			class="org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeXML"
-			id="xml_all">
-		</contextType>
-		<contextType
-			name="%XML_New_context_type_Extension_Element.name"
-			class="org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeXML"
-			id="xml_new">
-		</contextType>
-		<contextType
-			name="%XML_Tag_context_type_Extension_Element.name"
-			class="org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeXML"
-			id="xml_tag">
-		</contextType>
-		<contextType
-			name="%XML_Attribute_context_type_Extension_Element.name"
-			class="org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeXML"
-			id="xml_attribute">
-		</contextType>
-		<contextType
-			name="%XML_Attribute_value_context_type_Extension_Element.name"
-			class="org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeXML"
-			id="xml_attribute_value">
-		</contextType>
-		<include
-			file="templates/xmldefault-templates.xml"
-			translations="$nl$/templates/xmldefault-templates.properties">
-		</include>
-	</extension>
-
-	<extension point="org.eclipse.ui.editors">
-		<editor
-			name="%XML_Editor.name"
-			icon="$nl$/icons/xmldoc.gif"
-			contributorClass="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorActionBarContributor"
-			class="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart"
-			id="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart">
-			<contentTypeBinding
-				contentTypeId="org.eclipse.core.runtime.xml" />
-			<contentTypeBinding
-				contentTypeId="org.eclipse.wst.xml.core.xmlsource" />
-
-		</editor>
-	</extension>
-
-	<!-- Editor actionsets -->
-	<extension point="org.eclipse.ui.actionSetPartAssociations">
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.edit.text.actionSet.annotationNavigation">
-			<part
-				id="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart">
-			</part>
-		</actionSetPartAssociation>
-		<actionSetPartAssociation
-			targetID="org.eclipse.ui.NavigateActionSet">
-			<part
-				id="org.eclipse.wst.xml.ui.internal.tabletree.XMLMultiPageEditorPart">
-			</part>
-		</actionSetPartAssociation>
-	</extension>
-
-
-
-	<!-- ================================================== -->
-	<!-- Contribute a 'New Wizard' for XML files            -->
-	<!-- ================================================== -->
-	<extension point="org.eclipse.ui.newWizards">
-		<category
-			name="%_UI_WIZARD_NEW_XML"
-			id="org.eclipse.wst.XMLCategory">
-		</category>
-		<wizard
-			name="%_UI_WIZARD_NEW_XML"
-			icon="$nl$/icons/XMLFile.gif"
-			category="org.eclipse.wst.XMLCategory"
-			class="org.eclipse.wst.xml.ui.internal.wizards.NewXMLWizard"
-			id="org.eclipse.wst.xml.ui.internal.wizards.NewXMLWizard">
-			<description>%_UI_CREATE_NEW_XML_FILE</description>
-			<selection class="org.eclipse.core.resources.IResource">
-			</selection>
-		</wizard>
-	</extension>
-
-	<!-- =============================================================================== -->
-	<!-- Allow the 'New XML' wizard to be accessed via the 'Generate' menu on a XSD file -->
-	<!-- =============================================================================== -->
-	<extension point="org.eclipse.ui.popupMenus">
-		<objectContribution
-			objectClass="org.eclipse.core.resources.IFile"
-			nameFilter="*.xsd"
-			id="org.eclipse.wst.xmlwizard.createXMLFromXSD">
-			<menu
-				label="%genMenuLabel"
-				path="additions"
-				id="generateXMLArtifacts">
-				<separator name="xml" />
-			</menu>
-			<action
-				label="%_UI_ACTION_CREATE_XML"
-				class="org.eclipse.wst.xml.ui.internal.wizards.XMLImportActionDelegate"
-				menubarPath="generateXMLArtifacts/xml"
-				enablesFor="1"
-				id="org.eclipse.wst.xmlwizard.createXMLFromXSDAction">
-			</action>
-		</objectContribution>
-	</extension>
-
-	<!-- =============================================================================== -->
-	<!-- Allow the 'New XML' wizard to be accessed via the 'Generate' menu on a DTD file -->
-	<!-- =============================================================================== -->
-	<extension point="org.eclipse.ui.popupMenus">
-		<objectContribution
-			objectClass="org.eclipse.core.resources.IFile"
-			nameFilter="*.dtd"
-			id="org.eclipse.wst.xmlwizard.createXMLFromDTD">
-			<menu
-				label="%genMenuLabel"
-				path="additions"
-				id="generateXMLArtifacts">
-				<separator name="xml" />
-			</menu>
-			<action
-				label="%_UI_ACTION_CREATE_XML"
-				class="org.eclipse.wst.xml.ui.internal.wizards.XMLImportActionDelegate"
-				menubarPath="generateXMLArtifacts/xml"
-				enablesFor="1"
-				id="org.eclipse.wst.xmlwizard.createXMLFromDTDAction">
-			</action>
-		</objectContribution>
-	</extension>
-
-	<!-- =============================================================================== -->
-	<!-- Contribute a New->Example... entry for Editing and Validating XML files         -->
-	<!-- =============================================================================== -->
-
-	<!-- define the XMLSamples project wizard -->
-	<extension point="org.eclipse.ui.newWizards">
-		<category
-			name="%_UI_WIZARD_NEW_XML"
-			parentCategory="org.eclipse.ui.Examples"
-			id="org.eclipse.wst.xml.examples">
-		</category>
-		<wizard
-			name="%XMLExample.name"
-			class="org.eclipse.wst.xml.ui.internal.wizards.ExampleProjectCreationWizard"
-			category="org.eclipse.ui.Examples/org.eclipse.wst.xml.examples"
-			id="org.eclipse.wst.xml.ui.XMLExampleProjectCreationWizard"
-			project="true"
-			icon="$nl$/icons/newSampleProject_wiz.gif">
-			<description>
-				%XMLExampleProjectCreationWizard.description
-			</description>
-		</wizard>
-	</extension>
-
-	<!-- configure the XMLSamples project wizard -->
-	<extension
-		point="org.eclipse.wst.common.ui.exampleProjectCreationWizard"
-		id="XMLExampleProjectCreationWizardExtension">
-		<wizard
-			id="org.eclipse.wst.xml.ui.XMLExampleProjectCreationWizard"
-			banner="icons/newSampleProject_wizbanner.gif">
-			<projectsetup
-				pagetitle="%XMLExampleProjectCreationWizard.pagetitle"
-				name="%XMLExampleProjectCreationWizard.projectname"
-				label="%XMLExampleProjectCreationWizard.label"
-				pagedescription="%XMLExampleProjectCreationWizard.pagedescription"
-				open="readme.html">
-				<import
-					dest=""
-					src="examples/EditingAndValidatingXML.zip" />
-			</projectsetup>
-		</wizard>
-	</extension>
-
-	<!-- initialize xml ui preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.wst.xml.ui.internal.preferences.XMLUIPreferenceInitializer" />
-	</extension>
-
-	<extension point="org.eclipse.wst.sse.ui.sourcevalidation">
-		<validator
-			scope="total"
-			class="org.eclipse.wst.xml.ui.internal.validation.DelegatingSourceValidatorForXML"
-			id="org.eclipse.wst.xml.ui.internal.validation.DelegatingSourceValidatorForXML">
-			<contentTypeIdentifier id="org.eclipse.core.runtime.xml">
-				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT"/>
-				<partitionType id="org.eclipse.wst.sse.ST_DEFAULT"/>
-			</contentTypeIdentifier>
-		</validator>
-	</extension>
-	
-	<extension point="org.eclipse.wst.sse.ui.sourcevalidation">
-		<validator
-			scope="partial"
-			class="org.eclipse.wst.xml.ui.internal.validation.MarkupValidator"
-			id="org.eclipse.wst.xml.ui.internal.validation.markupvalidator">
-			<contentTypeIdentifier id="org.eclipse.core.runtime.xml">
-				<partitionType id="org.eclipse.wst.sse.ST_DEFAULT"/>
-				<partitionType id="org.eclipse.wst.xml.XML_DEFAULT"/>
-			</contentTypeIdentifier>
-		</validator>
-	</extension>
-	
-	<!--======================================================================================-->
-	<!-- Document provider for ExternalFileEditorInput                                        -->
-	<!--======================================================================================-->
-	<extension point="org.eclipse.ui.editors.documentProviders">
-		<provider
-			inputTypes="org.eclipse.wst.xml.ui.internal.hyperlink.ExternalFileEditorInput"
-			class="org.eclipse.ui.editors.text.TextFileDocumentProvider"
-			id="org.eclipse.wst.xml.ui.internal.ExternalFileDocumentProvider">
-		</provider>
-	</extension>
-
-
-	<extension point="org.eclipse.ui.popupMenus">
-		<viewerContribution
-			targetID="org.eclipse.core.runtime.xml.source.RulerContext"
-			id="org.eclipse.ui.texteditor.ruler.context.actions">
-			<action
-				label="%AddTask.label"
-				helpContextId="org.eclipse.ui.AddTask_action_context"
-				class="org.eclipse.ui.texteditor.TaskRulerAction"
-				tooltip="%AddTask.tooltip"
-				menubarPath="additions"
-				id="org.eclipse.ui.texteditor.TaskRulerAction">
-			</action>
-			<action
-				label="%AddBookmark.label"
-				helpContextId="org.eclipse.ui.bookmark_action_context"
-				class="org.eclipse.ui.texteditor.BookmarkRulerAction"
-				tooltip="%AddBookmark.tooltip"
-				menubarPath="additions"
-				id="org.eclipse.ui.texteditor.BookmarkRulerAction">
-			</action>
-		</viewerContribution>
-	</extension>
-
-	<!-- ====================================================== -->
-	<!-- An extension for creating nested validation messages.  -->
-	<!-- This extension should be moved when the referenced     -->
-	<!-- files dialog is moved to another plugin.               -->
-	<!-- ====================================================== -->
-	<extension point="org.eclipse.ui.popupMenus">
-		<objectContribution
-			objectClass="org.eclipse.core.resources.IMarker"
-			id="org.eclipse.wst.xml.ui.internal.validation.nestederrorlist"
-			nameFilter="*">
-			<filter
-				name="done"
-				value="true">
-			</filter>
-			<filter
-				name="type"
-				value="org.eclipse.wst.validation.problemmarker">
-			</filter>
-			<action
-				label="%_UI_REF_FILE_SHOW_DETAILS"
-				class="org.eclipse.wst.xml.ui.internal.validation.core.errorinfo.ReferencedFileErrorActionDelegate"
-				id="org.eclipse.wst.xml.ui.internal.validation.core.errorinfo.ReferencedFileErrorActionDelegate">
-			</action>
-		</objectContribution>
-	</extension>
-
-	
-	<extension point="org.eclipse.ui.editorActions">
-		<editorContribution
-			id="org.eclipse.core.runtime.xml.source.editorActions"
-			targetID="org.eclipse.core.runtime.xml.source">
-			<action
-				id="CleanupDocument"
-				label="%CleanupDocument_label"
-				definitionId="org.eclipse.wst.sse.ui.cleanup.document"
-				tooltip="%CleanupDocument_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.CleanupActionXMLDelegate"
-				actionID="CleanupDocument">
-			</action>
-			<action
-				id="ToggleComment"
-				label="%ToggleComment_label"
-				definitionId="org.eclipse.wst.sse.ui.toggle.comment"
-				tooltip="%ToggleComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.ToggleCommentActionXMLDelegate"
-				actionID="ToggleComment">
-			</action>
-			<action
-				id="AddBlockComment"
-				label="%AddBlockComment_label"
-				definitionId="org.eclipse.wst.sse.ui.add.block.comment"
-				tooltip="%AddBlockComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.AddBlockCommentActionXMLDelegate"
-				actionID="AddBlockComment">
-			</action>
-			<action
-				id="RemoveBlockComment"
-				label="%RemoveBlockComment_label"
-				definitionId="org.eclipse.wst.sse.ui.remove.block.comment"
-				tooltip="%RemoveBlockComment_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.actions.RemoveBlockCommentActionXMLDelegate"
-				actionID="RemoveBlockComment">
-			</action>
-			<action
-				id="FindOccurrences"
-				label="%FindOccurrences_label"
-				definitionId="org.eclipse.wst.sse.ui.search.find.occurrences"
-				class="org.eclipse.wst.xml.ui.internal.search.XMLFindOccurrencesActionDelegate"
-				actionID="FindOccurrences">
-			</action>
-			<action
-				id="StructureSelectEnclosing"
-				label="%StructureSelectEnclosing_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.enclosing"
-				tooltip="%StructureSelectEnclosing_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectEnclosingXMLActionDelegate"
-				actionID="StructureSelectEnclosing">
-			</action>
-			<action
-				id="StructureSelectNext"
-				label="%StructureSelectNext_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.next"
-				tooltip="%StructureSelectNext_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectNextXMLActionDelegate"
-				actionID="StructureSelectNext">
-			</action>
-			<action
-				id="StructureSelectPrevious"
-				label="%StructureSelectPrevious_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.previous"
-				tooltip="%StructureSelectPrevious_tooltip"
-				class="org.eclipse.wst.xml.ui.internal.selection.StructuredSelectPreviousXMLActionDelegate"
-				actionID="StructureSelectPrevious">
-			</action>
-			<action
-				id="StructureSelectHistory"
-				label="%StructureSelectHistory_label"
-				definitionId="org.eclipse.wst.sse.ui.structure.select.last"
-				tooltip="%StructureSelectHistory_tooltip"
-				class="org.eclipse.wst.sse.ui.internal.selection.StructuredSelectHistoryActionDelegate"
-				actionID="StructureSelectHistory">
-			</action>
-		</editorContribution>
-        <editorContribution
-            targetID="org.eclipse.core.runtime.xml.source"
-            id="org.eclipse.core.runtime.xml.source.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>
-</plugin>
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/schema/catalogFileType.exsd b/bundles/org.eclipse.wst.xml.ui/schema/catalogFileType.exsd
deleted file mode 100644
index 3629659..0000000
--- a/bundles/org.eclipse.wst.xml.ui/schema/catalogFileType.exsd
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.wst.xml.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.wst.xml.ui" id="catalogFileType" name="XML Catalog file type extension point"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="fileType" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="fileType">
-      <complexType>
-         <attribute name="extensions" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         &lt;b&gt;This extension point is internal and should not be used by any other plugins.&lt;/b&gt;
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br&gt;
-All rights reserved. This program and the accompanying materials are made 
-available under the terms of the Eclipse Public License v1.0 which accompanies 
-this distribution, and is available at &lt;a
-href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/AdvancedOptionsDialog.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/AdvancedOptionsDialog.java
deleted file mode 100644
index bddc5fe..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/AdvancedOptionsDialog.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 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.wst.xml.ui.internal.catalog;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.SaveAsDialog;
-import org.eclipse.wst.common.ui.internal.dialogs.SelectSingleFileDialog;
-import org.eclipse.wst.xml.core.internal.catalog.CatalogSet;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-public class AdvancedOptionsDialog extends Dialog 
-{
-  protected ICatalog workingUserCatalog;
-
-  public AdvancedOptionsDialog(Shell parentShell, ICatalog workingUserCatalog) 
-  {
-    super(parentShell);
-    setShellStyle(getShellStyle() | SWT.RESIZE);   
-    this.workingUserCatalog = workingUserCatalog;
-  }
-
-
-  protected void createButtonsForButtonBar(Composite parent) 
-  {
-    createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-  }
-
-
-  protected Control createDialogArea(Composite parent) 
-  {
-    Composite dialogArea = (Composite)super.createDialogArea(parent);
-//    WorkbenchHelp.setHelp(dialogArea, new ControlContextComputer(dialogArea, XMLBuilderContextIds.XMLP_PROJECT_DIALOG));
-          
-    Composite composite = new Composite(dialogArea, SWT.NONE);
-    composite.setLayout(new GridLayout());
-    composite.setLayoutData(new GridData(GridData.FILL_BOTH));  
-
-    Label label = new Label(composite, SWT.NONE);
-    label.setText(XMLCatalogMessages.UI_LABEL_DIALOG_DESCRIPTION);
-                                         
-    Composite buttonComposite = new Composite(composite, SWT.NONE);
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 3;
-    buttonComposite.setLayout(gridLayout);     
-    buttonComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-   
-    Composite placeHolder = new Composite(buttonComposite, SWT.NONE);
-    placeHolder.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    
-    Composite buttonGroup = new Composite(buttonComposite, SWT.NONE);
-    gridLayout = new GridLayout();
-    gridLayout.numColumns = 2;
-    gridLayout.makeColumnsEqualWidth = true;
-    buttonGroup.setLayout(gridLayout); 
-    buttonGroup.setLayoutData(createGridData());
-
-    Button importButton = new Button(buttonGroup, SWT.PUSH | SWT.CENTER);
-    importButton.setText("  " + XMLCatalogMessages.UI_BUTTON_IMPORT + "  "); //$NON-NLS-1$ //$NON-NLS-2$
-
-    Button exportButton = new Button(buttonGroup, SWT.PUSH | SWT.CENTER);
-    exportButton.setText("  " + XMLCatalogMessages.UI_BUTTON_EXPORT + "  "); //$NON-NLS-1$ //$NON-NLS-2$
-
-    placeHolder = new Composite(buttonComposite, SWT.NONE);
-    placeHolder.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    // add importButton listener
-    SelectionListener importButtonSelectionListener = new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {                                                                 
-        invokeImportDialog();              
-      }     
-    }; 
-    importButton.addSelectionListener(importButtonSelectionListener);
-        
-    // add exportButton listener
-    SelectionListener exportButtonSelectionListener = new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {                                                                 
-        invokeExportDialog();              
-      }     
-    }; 
-    exportButton.addSelectionListener(exportButtonSelectionListener);
-
-    return dialogArea;
-  }
-       
-  protected GridData createGridData()
-  {
-    GridData gd = new GridData(GridData.CENTER);
-    gd.horizontalAlignment = GridData.HORIZONTAL_ALIGN_CENTER;
-    gd.verticalAlignment = GridData.VERTICAL_ALIGN_CENTER;
-    return gd;
-  }
- 
-                                      
-  protected void invokeImportDialog()
-  {                          
-    SelectSingleFileDialog dialog = new SelectSingleFileDialog(getShell(), null, true); 
-    String[] extensions = {".xmlcatalog", ".xml"}; //$NON-NLS-1$ //$NON-NLS-2$
-    dialog.addFilterExtensions(extensions);   
-    dialog.create();   
-    dialog.getShell().setText(XMLCatalogMessages.UI_LABEL_IMPORT_DIALOG_TITLE);
-    dialog.setTitle(XMLCatalogMessages.UI_LABEL_IMPORT_DIALOG_HEADING);
-    dialog.setMessage(XMLCatalogMessages.UI_LABEL_IMPORT_DIALOG_MESSAGE);
-    dialog.setBlockOnOpen(true);
-    int rc = dialog.open();                        
-    if (rc == Window.OK)
-    {             
-      IFile file = dialog.getFile();
-      if (file != null)
-      {
-        String fileName = file.getLocation().toFile().toURI().toString();
-        try
-        {
-            CatalogSet tempResourceSet = new CatalogSet(); 
-            ICatalog newCatalog = tempResourceSet.lookupOrCreateCatalog("temp", fileName);       //$NON-NLS-1$
-  		      workingUserCatalog.addEntriesFromCatalog(newCatalog); 
-        }
-        catch (Exception e)
-        {
-          //TODO... give error message
-        }   
-      }
-      close();
-    }
-  }
-  
-
-  protected void invokeExportDialog()
-  {                                                          
-    IPath originalFilePath = null;
-    IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
-    if (projects.length > 0)
-    {
-      originalFilePath = projects[0].getFullPath().append(".xmlcatalog"); //$NON-NLS-1$
-    }
-                                         
-    SaveAsDialog dialog = new SaveAsDialog(getShell());
-    if (originalFilePath != null)
-    {
-	    IFile originalFile = ResourcesPlugin.getWorkspace().getRoot().getFile(originalFilePath);   
-      dialog.setOriginalFile(originalFile); 
-    }
-    dialog.create();    
-
-    dialog.getShell().setText(XMLCatalogMessages.UI_LABEL_EXPORT_DIALOG_TITLE);
-    dialog.setTitle(XMLCatalogMessages.UI_LABEL_EXPORT_DIALOG_HEADING);
-    dialog.setMessage(XMLCatalogMessages.UI_LABEL_EXPORT_DIALOG_MESSAGE);
-
-    dialog.setBlockOnOpen(true);
-    int rc = dialog.open();                        
-    if (rc == Window.OK)
-    { 
-      IPath path = dialog.getResult();
-      if (path != null)
-      {                   
-        IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-		String fileName = file.getLocation().toFile().toURI().toString();
-        
-        // here we save the catalog entries to the selected file      
-        try
-        {         
-          createFileIfRequired(file); 
-          workingUserCatalog.setLocation(fileName);
-          workingUserCatalog.save();
-        }
-        catch (Exception ex)
-        {                                                                    
-          try
-          {  
-            String title = XMLCatalogMessages.UI_LABEL_CATALOG_SAVE_ERROR;    
-            String briefMessage = XMLCatalogMessages.UI_LABEL_CATALOG_COULD_NOT_BE_SAVED;     
-            String reason = file.isReadOnly() ?
-            		NLS.bind(XMLCatalogMessages.UI_LABEL_FILE_IS_READ_ONLY, fileName) : 
-            			NLS.bind(XMLCatalogMessages.ERROR_SAVING_FILE, fileName);
-            String details = NLS.bind(XMLCatalogMessages.ERROR_SAVING_FILE, fileName);
-                                                               
-            ErrorDialog.openError(Display.getCurrent().getActiveShell(), title, briefMessage, createStatus(reason, details));
-          }
-          catch (Exception ex2)
-          {
-          }
-        } 
-        close();
-      }
-    }
-  }
-  
-  // TODO... This was copied from WindowUtility.  Is there an easier way to create a status object?
-  // If not, we should open an eclipse bug or add a similar utility to baseExtensionsUI.
-  //
-  private static IStatus createStatus(String reason, String msg)
-  {
-	String pluginId = XMLUIPlugin.getDefault().getBundle().getSymbolicName();    
-	MultiStatus multiStatus = new MultiStatus(pluginId, 0, reason, null);
-	Status status = new Status(IStatus.ERROR, pluginId, 0, msg, null);
-	multiStatus.add(status);
-	return multiStatus;
-  }   
-  
-
-  protected void createFileIfRequired(IFile file)
-  {
-    try
-    {                                
-      if (file != null && !file.exists())
-      {
-        ByteArrayInputStream inputStream = new ByteArrayInputStream(new byte[0]);      
-	      file.create(inputStream, true, null);
-        //createEmptyXMLCatalog(file);
-      }
-    }
-    catch (Exception e)
-    {
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/CatalogFileTypeRegistryReader.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/CatalogFileTypeRegistryReader.java
deleted file mode 100644
index ce4a8d8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/CatalogFileTypeRegistryReader.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-import java.util.Collection;
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-public class CatalogFileTypeRegistryReader {
-	private static CatalogFileTypeRegistryReader _instance;
-
-	static final String ATT_DESCRIPTION = "description"; //$NON-NLS-1$
-
-	static final String ATT_EXTENSIONS = "extensions"; //$NON-NLS-1$
-
-	static final String ATT_ICON = "icon"; //$NON-NLS-1$
-
-	static final String ATT_ID = "id"; //$NON-NLS-1$
-
-	static final String EXTENSION_POINT_ID = "catalogFileType"; //$NON-NLS-1$
-
-	static final String TAG_NAME = "fileType"; //$NON-NLS-1$
-
-	private static CatalogFileTypeRegistryReader getInstance() {
-		if (_instance == null)
-			_instance = new CatalogFileTypeRegistryReader();
-		return _instance;
-	}
-
-	public static Collection getXMLCatalogFileTypes() {
-		return getInstance().hashMap.values();
-	}
-
-	private HashMap hashMap;
-
-	public CatalogFileTypeRegistryReader() {
-		this.hashMap = new HashMap();
-		readRegistry();
-	}
-
-	private void readElement(IConfigurationElement element) {
-		if (element.getName().equals(TAG_NAME)) {
-			String id = element.getAttribute(ATT_ID);
-			if (id != null) {
-				XMLCatalogFileType fileType = (XMLCatalogFileType) hashMap.get(id);
-				if (fileType == null) {
-					fileType = new XMLCatalogFileType();
-					hashMap.put(id, fileType);
-				}
-
-				if (fileType.description == null) {
-					String description = element.getAttribute(ATT_DESCRIPTION);
-					fileType.description = description;
-				}
-
-				fileType.addExtensions(element.getAttribute(ATT_EXTENSIONS));
-			}
-		}
-	}
-
-	private void readRegistry() {
-		readRegistry(EXTENSION_POINT_ID);
-	}
-
-	private void readRegistry(String extensionPointId) {
-		IExtensionRegistry pluginRegistry = Platform.getExtensionRegistry();
-		IExtensionPoint point = pluginRegistry.getExtensionPoint(XMLUIPlugin.ID, extensionPointId);
-		if (point != null) {
-			IConfigurationElement[] elements = point.getConfigurationElements();
-			for (int i = 0; i < elements.length; i++) {
-				readElement(elements[i]);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/EditCatalogEntryDialog.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/EditCatalogEntryDialog.java
deleted file mode 100644
index 037b518..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/EditCatalogEntryDialog.java
+++ /dev/null
@@ -1,969 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 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.wst.xml.ui.internal.catalog;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-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.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.wst.common.ui.internal.dialogs.SelectSingleFileDialog;
-import org.eclipse.wst.common.uriresolver.internal.URI;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-
-public class EditCatalogEntryDialog extends Dialog {
-	protected static Image borwseImage = ImageFactory.INSTANCE.getImage("icons/obj16/file_expand.gif"); //$NON-NLS-1$
-	protected static Image catalogEntryToolBarImage = ImageFactory.INSTANCE.getImage("icons/etool50/catalogEntry.gif"); //$NON-NLS-1$
-	protected static Image nextCatalogToolBarImage = ImageFactory.INSTANCE.getImage("icons/etool50/nextCatalog.gif"); //$NON-NLS-1$
-
-	protected class CatalogEntryPage extends CatalogElementPage {
-
-		protected Button browseButton;
-
-		protected ICatalogEntry catalogEntry;
-
-		protected Button checkboxButton;
-
-		protected Label errorMessageLabel;
-
-		protected Text keyField;
-
-		protected Combo keyTypeCombo;
-
-		protected Text resourceLocationField;
-
-		protected Combo resourceTypeCombo;
-
-		protected Text webAddressField;
-
-		protected void computeErrorMessage() {
-			errorMessage = null;
-			warningMessage = null;
-
-			if (errorMessage == null) {
-				String fileName = resourceLocationField.getText();
-				if (fileName.trim().length() > 0) {
-					if (fileName.indexOf("..") != -1 || fileName.indexOf("./") != -1 || fileName.indexOf("/.") != -1 || fileName.indexOf(".\\") != -1 || fileName.indexOf("\\.") != -1) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						errorMessage = XMLCatalogMessages.UI_WARNING_URI_MUST_NOT_HAVE_DOTS;
-					}
-
-					String uri = fileName;
-					if (!URIHelper.hasProtocol(uri)) {
-					URIHelper.isAbsolute(uri);
-						uri = (URIHelper.isAbsolute(uri)) ? URIHelper.prependFileProtocol(uri) : URIHelper.prependPlatformResourceProtocol(uri);
-					}
-
-					if (errorMessage == null && !URIHelper.isReadableURI(uri, false)) {
-						errorMessage = XMLCatalogMessages.UI_WARNING_URI_NOT_FOUND_COLON + fileName;
-					}
-				} else {
-					// this an error that is not actaully
-					// reported ... OK is just disabled
-					errorMessage = "";  //$NON-NLS-1$
-				}
-
-				// Make sure the key is a fully qualified URI in the cases where the key type is "System ID" or "Schema location"
-				if (keyField.getText().length() > 0 && getKeyType() == ICatalogEntry.ENTRY_TYPE_SYSTEM ) {
-					URI uri = URI.createURI(keyField.getText());
-					if (uri.scheme() == null) {
-						warningMessage = XMLCatalogMessages.UI_WARNING_SHOULD_BE_FULLY_QUALIFIED_URI;
-					}
-				}
-			}
-
-			if (errorMessage == null && checkboxButton.getSelection() && webAddressField.getText().trim().length() == 0) {
-				// this an error that is not actaully
-				// reported ... OK is just disabled
-				errorMessage = "";  //$NON-NLS-1$
-			}
-
-			if (errorMessage == null && keyField.getText().trim().length() == 0) {
-				// this an error that is not actaully
-				// reported ... OK is just disabled
-				errorMessage = "";  //$NON-NLS-1$
-			}
-		}
-
-		protected Control createCatalogEntryPanel(Composite parent) {
-
-			ModifyListener modifyListener = new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					if (e.widget == resourceLocationField) {
-						if (keyField.getText().length() == 0) {
-							String uri = resourceLocationField.getText();
-							if (uri.endsWith("xsd") && !URIHelper.hasProtocol(uri)) { //$NON-NLS-1$
-								uri = URIHelper.isAbsolute(uri) ? URIHelper.prependFileProtocol(uri) : URIHelper.prependPlatformResourceProtocol(uri);
-								String namespaceURI = XMLQuickScan.getTargetNamespaceURIForSchema(uri);
-								if (namespaceURI != null) {
-									keyField.setText(namespaceURI);
-								}
-							}
-						}
-					}
-					updateWidgets(e.widget);
-				}
-			};
-
-
-			Composite composite = new Composite(parent, SWT.NONE);
-			GridData gd = new GridData(GridData.FILL_BOTH);
-			composite.setLayoutData(gd);
-
-			GridLayout layout = new GridLayout();
-			composite.setLayout(layout);
-
-			Composite group = new Composite(composite, SWT.NONE);
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-			group.setLayoutData(gd);
-
-			layout = new GridLayout(3, false);
-			group.setLayout(layout);
-
-			Label resourceLocationLabel = new Label(group, SWT.NONE);
-			resourceLocationLabel.setText(XMLCatalogMessages.UI_LABEL_LOCATION_COLON);
-
-			resourceLocationField = new Text(group, SWT.SINGLE | SWT.BORDER);
-			gd = new GridData();
-			gd.horizontalAlignment = SWT.FILL;
-			gd.grabExcessHorizontalSpace = true;
-			resourceLocationField.setLayoutData(gd);
-			
-			resourceLocationField.setText(getDisplayValue(URIUtils.convertURIToLocation(getEntry().getURI())));
-
-			// WorkbenchHelp.setHelp(resourceLocationField,
-			// XMLBuilderContextIds.XMLP_ENTRY_URI);
-			resourceLocationField.addModifyListener(modifyListener);
-
-
-			browseButton = createBrowseButton(group);
-			// WorkbenchHelp.setHelp(browseButton,
-			// XMLBuilderContextIds.XMLP_ENTRY_BROWSE);
-			browseButton.addSelectionListener(new DropDownSelectionListener(resourceLocationField));
-
-			// Key Type
-			//
-			Label keyTypeLabel = new Label(group, SWT.NONE);
-			keyTypeLabel.setText(XMLCatalogMessages.UI_KEY_TYPE_COLON);
-
-			keyTypeCombo = new Combo(group, SWT.NONE);
-			gd = new GridData();
-			gd.horizontalAlignment = SWT.FILL;
-			gd.grabExcessHorizontalSpace = true;
-			keyTypeCombo.setLayoutData(gd);
-			updateKeyTypeCombo(getEntry().getEntryType());
-			keyTypeCombo.addModifyListener(modifyListener);
-			// WorkbenchHelp.setHelp(keyTypeCombo,
-			// XMLBuilderContextIds.XMLP_ENTRY_KEY_TYPE);
-
-			// a placeholder to fill the 3rd column
-			Button placeHolder = new Button(group, SWT.NONE);
-			placeHolder.setVisible(false);
-
-			// Key
-			// 
-			Label keyValueLabel = new Label(group, SWT.NONE);
-			keyValueLabel.setText(XMLCatalogMessages.UI_LABEL_KEY_COLON);
-			keyField = new Text(group, SWT.SINGLE | SWT.BORDER);
-			// WorkbenchHelp.setHelp(keyField,
-			// XMLBuilderContextIds.XMLP_ENTRY_KEY);
-			keyField.setLayoutData(gd);
-			keyField.setText(getDisplayValue(getEntry().getKey()));
-			keyField.addModifyListener(modifyListener);
-
-			Composite group2 = new Composite(composite, SWT.NONE);
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-			group2.setLayoutData(gd);
-
-			layout = new GridLayout();
-			group2.setLayout(layout);
-
-			// checkbox -- note parent is dialogArea
-			//
-			checkboxButton = new Button(group2, SWT.CHECK);
-			// WorkbenchHelp.setHelp(checkboxButton,
-			// XMLBuilderContextIds.XMLP_ENTRY_SPECIFY_ALTERNATIVE);
-			checkboxButton.setText(XMLCatalogMessages.UI_LABEL_SPECIFY_ALTERNATIVE_WEB_URL);
-			checkboxButton.setLayoutData(new GridData());
-			checkboxButton.setSelection(getEntry().getAttributeValue(ICatalogEntry.ATTR_WEB_URL) != null);
-			SelectionListener buttonListener = new SelectionListener() {
-				public void widgetDefaultSelected(SelectionEvent event) {
-					// no impl
-				}
-
-				public void widgetSelected(SelectionEvent event) {
-					if (event.widget == checkboxButton) {
-						updateWidgets(checkboxButton);
-					}
-				}
-			};
-			checkboxButton.addSelectionListener(buttonListener);
-
-			// Web Address field
-			//
-
-			ModifyListener webAddressFieldListener = new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					computeErrorMessage();
-					updateErrorMessageLabel(errorMessageLabel);
-					updateOKButtonState();
-				}
-			};
-
-			webAddressField = new Text(group2, SWT.SINGLE | SWT.BORDER);
-			// WorkbenchHelp.setHelp(webAddressField,
-			// XMLBuilderContextIds.XMLP_ENTRY_WEB_ADDRESS);
-			webAddressField.setLayoutData(gd);
-			webAddressField.setText(getDisplayValue(getEntry().getAttributeValue(ICatalogEntry.ATTR_WEB_URL)));
-			webAddressField.setEnabled(false);
-			webAddressField.addModifyListener(webAddressFieldListener);
-
-
-			errorMessageLabel = new Label(group2, SWT.NONE);
-			errorMessageLabel.setForeground(color);
-			errorMessageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-			updateWidgets(null);
-
-			return composite;
-		}
-
-		public Control createControl(Composite parent) {
-
-			fControl = createCatalogEntryPanel(parent);
-
-			return fControl;
-		}
-
-
-		public ICatalogElement getData() {
-			return getEntry();
-		}
-
-		protected ICatalogEntry getEntry() {
-			if (catalogEntry == null) {
-				if (fCatalogElement != null && fCatalogElement.getType() == ICatalogElement.TYPE_ENTRY) {
-					catalogEntry = (ICatalogEntry) fCatalogElement;
-				}
-				else {
-					if (catalog != null) {
-						catalogEntry = (ICatalogEntry) catalog.createCatalogElement(ICatalogElement.TYPE_ENTRY);
-					}
-				}
-			}
-			return catalogEntry;
-		}
-
-		protected int getKeyType() {
-			switch (keyTypeCombo.getSelectionIndex()) {
-				case 0 :
-					if ("schema".equals(keyTypeCombo.getData("keyType"))) { //$NON-NLS-1$ //$NON-NLS-2$
-						return ICatalogEntry.ENTRY_TYPE_URI; // xsd namespace is URI type key
-					}
-					return ICatalogEntry.ENTRY_TYPE_PUBLIC;
-				case 1 :
-					return ICatalogEntry.ENTRY_TYPE_SYSTEM;
-				case 2 :
-					return ICatalogEntry.ENTRY_TYPE_URI;
-				default :
-					return ICatalogEntry.ENTRY_TYPE_PUBLIC;
-			}
-		}
-
-		public void saveData() {
-			getEntry().setURI(URIUtils.convertLocationToURI(resourceLocationField.getText()));
-			getEntry().setKey(keyField.getText());
-			getEntry().setEntryType(getKeyType());
-			getEntry().setAttributeValue(ICatalogEntry.ATTR_WEB_URL, checkboxButton.getSelection() ? webAddressField.getText() : null);
-		}
-
-		protected void updateKeyTypeCombo(int type) {
-			keyTypeCombo.removeAll();
-			for (Iterator i = CatalogFileTypeRegistryReader.getXMLCatalogFileTypes().iterator(); i.hasNext();) {
-				XMLCatalogFileType theFileType = (XMLCatalogFileType) i.next();
-				if (theFileType.extensions != null) {
-					for (Iterator j = theFileType.extensions.iterator(); j.hasNext();) {
-						String extension = (String) j.next();
-						if (resourceLocationField.getText().endsWith(extension)) {
-							if (theFileType.description.equals("XSD Files")) { //$NON-NLS-1$
-								keyTypeCombo.add(XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_XSD_PUBLIC);
-								keyTypeCombo.add(XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_XSD_SYSTEM);
-								keyTypeCombo.setData("keyType", "schema"); //$NON-NLS-1$ //$NON-NLS-2$
-							}
-							else if (theFileType.description.equals("DTD Files")) { //$NON-NLS-1$
-								keyTypeCombo.add(XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_DTD_PUBLIC);
-								keyTypeCombo.add(XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_DTD_SYSTEM);
-								keyTypeCombo.add(XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_URI);
-							}
-							else {
-								keyTypeCombo.add(XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_URI);
-							}
-						}
-
-					}
-
-				}
-			}
-			if (keyTypeCombo.getItemCount() == 0) {
-				keyTypeCombo.add(XMLCatalogMessages.
-						UI_KEY_TYPE_DESCRIPTION_DTD_PUBLIC);
-				keyTypeCombo.add(XMLCatalogMessages.
-						UI_KEY_TYPE_DESCRIPTION_DTD_SYSTEM);
-				keyTypeCombo.add(XMLCatalogMessages.
-						UI_KEY_TYPE_DESCRIPTION_URI);
-			}
-		
-			switch (type) {
-				case ICatalogEntry.ENTRY_TYPE_PUBLIC :
-					keyTypeCombo.select(0);
-					break;
-				case ICatalogEntry.ENTRY_TYPE_SYSTEM :
-					keyTypeCombo.select(1);
-					break;
-				case ICatalogEntry.ENTRY_TYPE_URI: // handle XML Schema, where namespace name is mapped to URI situation
-					if ("schema".equals(keyTypeCombo.getData("keyType"))) { //$NON-NLS-1$ //$NON-NLS-2$
-						keyTypeCombo.select(0); // namespace name as URI key type
-					}
-					else {
-						keyTypeCombo.select(2); // URI key type
-					}
-					break;
-				default :
-					if (keyTypeCombo.getItemCount() > 0) {
-						keyTypeCombo.select(0);
-					}
-					break;
-			}
-
-		}
-
-		protected void updateWebAddressWidgets(int keyType) {
-			boolean isPublicKeyType = (keyType == ICatalogEntry.ENTRY_TYPE_PUBLIC);
-			checkboxButton.setEnabled(isPublicKeyType);
-			webAddressField.setEnabled(isPublicKeyType && checkboxButton.getSelection());
-		}
-
-		protected void updateWidgets(Widget widget) {
-			if (widget != keyTypeCombo) {
-				updateKeyTypeCombo(getKeyType());
-			}
-			updateWebAddressWidgets(getKeyType());
-			computeErrorMessage();
-			updateErrorMessageLabel(errorMessageLabel);
-			updateOKButtonState();
-		}
-
-	}
-
-	protected abstract class CatalogElementPage {
-
-		Control fControl;
-
-		public CatalogElementPage() {
-			super();
-
-		}
-
-		public abstract Control createControl(Composite parent);
-
-		public Control getControl() {
-			return fControl;
-		}
-
-		public abstract ICatalogElement getData();
-
-		public abstract void saveData();
-	}
-
-	protected class FilterableSelectSingleFileDialog extends SelectSingleFileDialog implements SelectionListener {
-		protected Combo filterControl;
-
-		public FilterableSelectSingleFileDialog(Shell parentShell) {
-			super(parentShell, null, true);
-			setFilters(null);
-		}
-
-		public void createAndOpen() {
-			this.create();
-			setBlockOnOpen(true);
-			getShell().setText(XMLCatalogMessages.UI_LABEL_FILE_SELECTION);
-			this.setTitle(XMLCatalogMessages.UI_LABEL_SELECT_FILE);
-			this.setMessage(XMLCatalogMessages.UI_LABEL_CHOOSE_FILE_TO_ADD_TO_CATALOG);
-			open();
-		}
-
-		public void createFilterControl(Composite composite) {
-			Label label = new Label(composite, SWT.NONE);
-			label.setText(XMLCatalogMessages.UI_LABEL_SELECT_FILE_FILTER_CONTROL);
-
-			filterControl = new Combo(composite, SWT.NONE);
-			GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-			filterControl.setLayoutData(gd);
-
-			filterControl.setText(XMLCatalogMessages.UI_TEXT_SELECT_FILE_FILTER_CONTROL);
-			filterControl.add(XMLCatalogMessages.UI_TEXT_SELECT_FILE_FILTER_CONTROL);
-
-			for (Iterator i = CatalogFileTypeRegistryReader.getXMLCatalogFileTypes().iterator(); i.hasNext();) {
-				XMLCatalogFileType fileType = (XMLCatalogFileType) i.next();
-				if (fileType.description != null) {
-					filterControl.add(fileType.description);
-				}
-			}
-
-			filterControl.addSelectionListener(this);
-		}
-
-		protected void setFilters(XMLCatalogFileType fileType) {
-			if (fileType == null) {
-				// compute all the supported file extensions
-				List list = new ArrayList();
-				for (Iterator i = CatalogFileTypeRegistryReader.getXMLCatalogFileTypes().iterator(); i.hasNext();) {
-					XMLCatalogFileType theFileType = (XMLCatalogFileType) i.next();
-					if (theFileType.extensions != null) {
-						list.addAll(theFileType.extensions);
-					}
-				}
-				// Any files are now supported with Resource URI
-				// selectSingleFileView.setFilterExtensions(createStringArray(list));
-			}
-			else {
-				if (fileType.extensions != null) {
-					selectSingleFileView.setFilterExtensions(createStringArray(fileType.extensions));
-				}
-			}
-		}
-
-		public void widgetDefaultSelected(SelectionEvent e) {
-			// do nothing
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			String text = filterControl.getText();
-			XMLCatalogFileType fileType = getMatchingFileType(text);
-			setFilters(fileType);
-		}
-	}
-
-	protected class NextCatalogPage extends CatalogElementPage {
-		protected Button browseButton;
-
-		protected Text catalogLocationField;
-
-		protected INextCatalog nextCatalog;
-
-		protected Label errorMessageLabel;
-
-		protected void computeErrorMessage() {
-			errorMessage = null;
-
-			if (errorMessage == null) {
-				String fileName = catalogLocationField.getText();
-				if (fileName.trim().length() > 0) {
-					if (fileName.indexOf("..") != -1 || fileName.indexOf("./") != -1 || fileName.indexOf("/.") != -1 || fileName.indexOf(".\\") != -1 || fileName.indexOf("\\.") != -1) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
-						errorMessage = XMLCatalogMessages.UI_WARNING_URI_MUST_NOT_HAVE_DOTS;
-					}
-
-					String uri = fileName;
-					if (!URIHelper.hasProtocol(uri)) {
-						uri = URIHelper.isAbsolute(uri) ? URIHelper.prependFileProtocol(uri) : URIHelper.prependPlatformResourceProtocol(uri);
-					}
-
-					if (errorMessage == null && !URIHelper.isReadableURI(uri, false)) {
-						errorMessage = XMLCatalogMessages.UI_WARNING_URI_NOT_FOUND_COLON + fileName;
-					}
-				}
-				else {
-					// this an error that is not actually 
-					// reported ... OK is just disabled
-					errorMessage = ""; //$NON-NLS-1$
-				}
-			}
-
-		}
-
-		public Control createControl(Composite parent) {
-			fControl = createNextCatalogPanel(parent);
-			return fControl;
-		}
-
-		protected Control createNextCatalogPanel(Composite parent) {
-			ModifyListener modifyListener = new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					updateWidgets(e.widget);
-				}
-			};
-
-			Composite composite = new Composite(parent, SWT.NONE);
-			GridData gd = new GridData(GridData.FILL_BOTH);
-			composite.setLayoutData(gd);
-
-			GridLayout layout = new GridLayout();
-			composite.setLayout(layout);
-
-			Composite group = new Composite(composite, SWT.NONE);
-			gd = new GridData(GridData.FILL_HORIZONTAL);
-			group.setLayoutData(gd);
-
-			layout = new GridLayout(2, false);
-			group.setLayout(layout);
-
-			Label resourceLocationLabel = new Label(group, SWT.NONE);
-			resourceLocationLabel.setText(XMLCatalogMessages.UI_LABEL_CATALOG_URI_COLON);
-
-			// filler
-			new Label(group, SWT.NONE);
-
-			catalogLocationField = new Text(group, SWT.SINGLE | SWT.BORDER);
-			catalogLocationField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			catalogLocationField.setText(URIUtils.convertURIToLocation(getDisplayValue(getNextCatalog().getCatalogLocation())));
-			// WorkbenchHelp.setHelp(resourceLocationField,
-			// XMLBuilderContextIds.XMLP_ENTRY_URI);
-			catalogLocationField.addModifyListener(modifyListener);
-
-			browseButton = createBrowseButton(group);
-			browseButton.addSelectionListener(new DropDownSelectionListener(catalogLocationField));
-
-			errorMessageLabel = new Label(group, SWT.NONE);
-			errorMessageLabel.setForeground(color);
-			errorMessageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			updateWidgets(null);
-			return composite;
-		}
-
-		public ICatalogElement getData() {
-			return getNextCatalog();
-		}
-
-		protected INextCatalog getNextCatalog() {
-			if (nextCatalog == null) {
-				if (fCatalogElement != null && fCatalogElement.getType() == ICatalogElement.TYPE_NEXT_CATALOG) {
-					nextCatalog = (INextCatalog) fCatalogElement;
-				}
-				else {
-					if (catalog != null) {
-						nextCatalog = (INextCatalog) catalog.createCatalogElement(ICatalogElement.TYPE_NEXT_CATALOG);
-					}
-				}
-			}
-			return nextCatalog;
-		}
-
-		public void saveData() {
-			getNextCatalog().setCatalogLocation(URIUtils.convertLocationToURI(catalogLocationField.getText()));
-		}
-
-		protected void updateWidgets(Widget widget) {
-			computeErrorMessage();
-			updateErrorMessageLabel(errorMessageLabel);
-			updateOKButtonState();
-		}
-	}
-
-	protected class ToolBarItemSelectionChangeListener implements SelectionListener {
-		public void widgetDefaultSelected(SelectionEvent e) {
-			// TODO Auto-generated method stub
-
-		}
-
-		public void widgetSelected(SelectionEvent e) {
-			Object selection = e.getSource();
-			if (selection instanceof ToolItem) {
-				if (!showPage((CatalogElementPage) ((ToolItem) selection).getData())) {
-					// Page flipping wasn't successful
-					// handleError();
-				}
-			}
-		}
-
-	}
-
-	public static String[] createStringArray(List list) {
-		String[] stringArray = new String[list.size()];
-		for (int i = 0; i < stringArray.length; i++) {
-			stringArray[i] = (String) list.get(i);
-		}
-		return stringArray;
-	}
-
-	public static String removeLeadingSlash(String uri) {
-		// remove leading slash from the value to avoid the whole leading
-		// slash
-		// ambiguity problem
-		//       
-		if (uri != null) {
-			while (uri.startsWith("/") || uri.startsWith("\\")) { //$NON-NLS-1$ //$NON-NLS-2$
-				uri = uri.substring(1);
-			}
-		}
-		return uri;
-	}
-
-	protected ICatalog catalog;
-
-	protected ICatalogElement fCatalogElement;
-
-	protected String errorMessage;
-	
-	protected String warningMessage;
-
-	protected Button okButton;
-
-	protected PageBook pageContainer;
-
-	protected CatalogElementPage selectedPage;
-
-	// protected TreeViewer treeViewer;
-
-	protected ToolBar toolBar;
-	
-	protected Color color;
-
-	public EditCatalogEntryDialog(Shell parentShell, ICatalog aCatalog) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.catalog = aCatalog;
-	}
-
-	public EditCatalogEntryDialog(Shell parentShell, ICatalogElement catalogElement) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.fCatalogElement = catalogElement;
-		// TODO EB: fix his
-		// entry.setURI(URIHelper.removePlatformResourceProtocol(entry.getURI()));
-	}
-
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			selectedPage.saveData();
-		}
-		super.buttonPressed(buttonId);
-	}
-
-
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		okButton.setEnabled(false);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-		updateOKButtonState();
-	}
-
-	protected void createCatalogEntryButton() {
-		CatalogElementPage page = new CatalogEntryPage();
-		page.createControl(pageContainer);
-		ToolItem toolItem = new ToolItem(toolBar, SWT.PUSH);
-		toolItem.setImage(catalogEntryToolBarImage);
-		toolItem.setText(XMLCatalogMessages.EditCatalogEntryDialog_catalogEntryLabel);
-		toolItem.setData(page);
-		toolItem.addSelectionListener(new ToolBarItemSelectionChangeListener());
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogAreaComposite = (Composite) super.createDialogArea(parent);
-		color = new Color(dialogAreaComposite.getDisplay(), 200, 0, 0);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		dialogAreaComposite.setLayout(layout);
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.widthHint = 500;
-		gd.heightHint = 250;
-		dialogAreaComposite.setLayoutData(gd);
-		createMainComponent(dialogAreaComposite);
-		return this.dialogArea;
-	}
-
-	public boolean close() {
-		if (color != null) {
-			color.dispose();
-		}
-		return super.close();
-	}
-
-	protected Composite createMainComponent(Composite composite) {
-		if (fCatalogElement != null) // "edit" action
-		{
-			Composite composite1 = new Composite(composite, SWT.NONE);
-			GridData data = new GridData(GridData.FILL_BOTH);
-			composite1.setLayoutData(data);
-			GridLayout layout = new GridLayout();
-			composite1.setLayout(layout);
-
-			pageContainer = new PageBook(composite1, SWT.NONE);
-			pageContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-			if (fCatalogElement.getType() == ICatalogElement.TYPE_ENTRY) {
-				CatalogElementPage entryPage = new CatalogEntryPage();
-				entryPage.createControl(pageContainer);
-				showPage(entryPage);
-			}
-			else if (fCatalogElement.getType() == ICatalogElement.TYPE_NEXT_CATALOG) {
-				CatalogElementPage nextCatalogPage = new NextCatalogPage();
-				nextCatalogPage.createControl(pageContainer);
-				showPage(nextCatalogPage);
-			}
-
-			return composite1;
-		}
-		return createMainComponentWithToolbar(composite);
-		
-	}
-
-	protected Composite createMainComponentWithToolbar(Composite composite) {
-
-		FormLayout formLayout = new FormLayout();
-		formLayout.marginHeight = 5;
-		formLayout.marginWidth = 5;
-		composite.setLayout(formLayout);
-
-		Label label = new Label(composite, SWT.NONE);
-		FormData data = new FormData();
-		data.top = new FormAttachment(0, 0);
-		data.left = new FormAttachment(0, 0);
-		data.right = new FormAttachment(100, 0);
-		label.setLayoutData(data);
-
-		toolBar = new ToolBar(composite, SWT.BORDER | SWT.FLAT | SWT.VERTICAL);
-
-		data = new FormData();
-		data.top = new FormAttachment(label, 0);
-		data.left = new FormAttachment(0, 0);
-		data.bottom = new FormAttachment(100, 0);
-		// data.height = 250;
-		// data.width = 50;
-		toolBar.setLayoutData(data);
-
-		Composite composite1 = new Composite(composite, SWT.BORDER);
-		data = new FormData();
-		data.top = new FormAttachment(label, 0);
-		data.left = new FormAttachment(toolBar, 0, SWT.DEFAULT);
-		data.right = new FormAttachment(100, 0);
-		data.bottom = new FormAttachment(100, 0);
-		composite1.setLayoutData(data);
-		GridLayout layout = new GridLayout();
-		layout.marginHeight = 0;
-		layout.marginWidth = 0;
-		composite1.setLayout(layout);
-
-		// createPageBookPanel(composite1);
-		pageContainer = new PageBook(composite1, SWT.NONE);
-		pageContainer.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		// add pages for each type of catalog element
-		createCatalogEntryButton();
-		createNextCatalogButton();
-		if (toolBar.getItemCount() > 0) {
-			ToolItem item = toolBar.getItem(0);
-			showPage((CatalogElementPage) (item.getData()));
-		}
-		return composite1;
-	}
-
-	protected void createNextCatalogButton() {
-		CatalogElementPage page = new NextCatalogPage();
-		page.createControl(pageContainer);
-		ToolItem toolItem = new ToolItem(toolBar, SWT.PUSH);
-		toolItem.setImage(nextCatalogToolBarImage);
-		toolItem.setText(XMLCatalogMessages.EditCatalogEntryDialog_nextCatalogLabel);
-		toolItem.setData(page);
-		toolItem.addSelectionListener(new ToolBarItemSelectionChangeListener());
-
-	}
-
-	protected ICatalogElement getCatalogElement() {
-		return fCatalogElement;
-	}
-
-	protected String getDisplayValue(String string) {
-		return string != null ? string : ""; //$NON-NLS-1$
-	}
-
-	protected XMLCatalogFileType getMatchingFileType(String description) {
-		XMLCatalogFileType fileType = null;
-		for (Iterator i = CatalogFileTypeRegistryReader.getXMLCatalogFileTypes().iterator(); i.hasNext();) {
-			XMLCatalogFileType theFileType = (XMLCatalogFileType) i.next();
-			if (theFileType.description != null && theFileType.description.equals(description)) {
-				fileType = theFileType;
-			}
-		}
-		return fileType;
-	}
-
-	protected boolean showPage(CatalogElementPage page) {
-		if (pageContainer.isDisposed()) {
-			return false;
-		}
-		selectedPage = page;
-		pageContainer.setVisible(true);
-		pageContainer.showPage(selectedPage.getControl());
-		fCatalogElement = selectedPage.getData();
-		return true;
-	}
-
-	protected void updateErrorMessageLabel(Label errorMessageLabel) {
-		if(errorMessage != null)
-		errorMessageLabel.setText(errorMessage);
-		else if (warningMessage != null)
-			errorMessageLabel.setText(warningMessage);
-		else errorMessageLabel.setText("");
-	}
-
-	protected void updateOKButtonState() {
-		if (okButton != null) {
-			okButton.setEnabled(errorMessage == null);
-		}
-	}
-
-	protected Button createBrowseButton(Composite composite) {
-		Button browseButton = new Button(composite, SWT.FLAT);
-		// browseButton.setText(XMLCatalogMessages.
-		// UI_BUTTON_BROWSE"));
-		browseButton.setImage(borwseImage);
-		Rectangle r = borwseImage.getBounds();
-		GridData gd = new GridData();
-		int IMAGE_WIDTH_MARGIN = 6;
-		int IMAGE_HEIGHT_MARGIN = 6;
-		gd.heightHint = r.height + IMAGE_HEIGHT_MARGIN;
-		gd.widthHint = r.width + IMAGE_WIDTH_MARGIN;
-		browseButton.setLayoutData(gd);
-
-		return browseButton;
-
-	}
-
-	class DropDownSelectionListener extends SelectionAdapter {
-		private Menu menu = null;
-		private Control control;
-
-		public DropDownSelectionListener(Control aControl) {
-			super();
-			this.control = aControl;
-		}
-
-		public void widgetSelected(SelectionEvent event) {
-			// Create the menu if it has not already been created
-			if (menu == null) {
-				// Lazy create the menu.
-				menu = new Menu(getShell());
-				MenuItem menuItem = new MenuItem(menu, SWT.NONE);
-				menuItem.setText(XMLCatalogMessages.UI_BUTTON_MENU_BROWSE_WORKSPACE);
-				/*
-				 * Add a menu selection listener so that the menu is hidden
-				 * when the user selects an item from the drop down menu.
-				 */
-				menuItem.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						setMenuVisible(false);
-						invokeWorkspaceFileSelectionDialog();
-					}
-				});
-
-				menuItem = new MenuItem(menu, SWT.NONE);
-				menuItem.setText(XMLCatalogMessages.UI_BUTTON_MENU_BROWSE_FILE_SYSTEM);
-				/*
-				 * Add a menu selection listener so that the menu is hidden
-				 * when the user selects an item from the drop down menu.
-				 */
-				menuItem.addSelectionListener(new SelectionAdapter() {
-					public void widgetSelected(SelectionEvent e) {
-						setMenuVisible(false);
-						invokeFileSelectionDialog();
-					}
-				});
-
-			}
-
-			// Position the menu below and vertically aligned with the the
-			// drop down tool button.
-			Button button = (Button) event.widget;
-
-			// set location
-			Point ptBrowse = button.getLocation();
-			Rectangle rcBrowse = button.getBounds();
-			ptBrowse.y += rcBrowse.height;
-			ptBrowse = button.getParent().toDisplay(ptBrowse);
-			menu.setLocation(ptBrowse.x, ptBrowse.y);
-
-			setMenuVisible(true);
-
-		}
-
-		void setMenuVisible(boolean visible) {
-			menu.setVisible(visible);
-			// this.visible = visible;
-		}
-
-		void invokeWorkspaceFileSelectionDialog() {
-			FilterableSelectSingleFileDialog dialog = new FilterableSelectSingleFileDialog(getShell());
-			dialog.createAndOpen();
-
-			IFile file = dialog.getFile();
-			if (file != null) {
-				// remove leading slash from the value to avoid the
-				// whole leading slash ambiguity problem
-				//                    
-				String uri = file.getFullPath().toString();
-				while (uri.startsWith("/") || uri.startsWith("\\")) { //$NON-NLS-1$ //$NON-NLS-2$
-					uri = uri.substring(1);
-				}
-				if (control instanceof Text) {
-					((Text) control).setText(uri);
-				}
-
-			}
-		}
-
-		void invokeFileSelectionDialog() {
-			FileDialog dialog = new FileDialog(getShell(), SWT.SINGLE);
-			String file = dialog.open();
-			if (control instanceof Text && file != null) {
-				((Text) control).setText(file);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/ElementNodePage.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/ElementNodePage.java
deleted file mode 100644
index dae891b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/ElementNodePage.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 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.wst.xml.ui.internal.catalog;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-
-
-public abstract class ElementNodePage {
-	
-	Control fControl;
-	
-	public ElementNodePage() {
-		super();
-		
-	}
-	
-	public abstract Control createControl(Composite parent);
-	
-	public Control getControl(){
-		return fControl;
-	}
-	
-	public abstract void saveData();
-	
-	public abstract ICatalogElement getData();
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/ImageFactory.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/ImageFactory.java
deleted file mode 100644
index 1c48654..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/ImageFactory.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-import java.util.Hashtable;
-
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-public class ImageFactory
-{                                
-  public static final int TOP_LEFT = 1;
-  public static final int TOP_RIGHT = 2;
-  public static final int BOTTOM_LEFT = 3;
-  public static final int BOTTOM_RIGHT = 4;     
-
-  protected static final int[][] OVERLAY_COORDINATE = {{0,0},{0,2},{2,0},{2,2}};
-  
-  protected static ImageFactory INSTANCE = new ImageFactory();
-
-  protected Hashtable compositeImageTable = new Hashtable();
-
-  public ImageFactory()
-  {
-	  super();
-  }
-  
-	public Image getImage(String iconName)
-	{
-	  ImageRegistry imageRegistry = XMLUIPlugin.getDefault().getImageRegistry();
-    
-	  if (imageRegistry.get(iconName) != null)
-	  {
-		return imageRegistry.get(iconName);
-	  }
-	  else
-	  {
-		imageRegistry.put(iconName, ImageDescriptor.createFromFile(getClass(), iconName));
-		return imageRegistry.get(iconName);
-	  }
-	}
-
-  public Image createCompositeImage(Image base, Image overlay, int overlayPosition)
-  {                                                   
-    String key = base + "*" + overlay + "*" + overlayPosition; //$NON-NLS-1$ //$NON-NLS-2$
-    Image result = (Image)compositeImageTable.get(key);
-    if (result == null)
-    {
-      ImageDescriptor overlays[][] = new ImageDescriptor[3][3]; 
-      int[] coord = OVERLAY_COORDINATE[overlayPosition];
-      overlays[coord[1]][coord[0]] = new ImageBasedImageDescriptor(overlay);
-      OverlayIcon icon = new OverlayIcon(new ImageBasedImageDescriptor(base), overlays, new Point(16, 16));
-      result = icon.createImage();
-      compositeImageTable.put(key, result);
-    }
-    return result;
-  }  
-
-
-  public static ImageDescriptor createImageDescriptorWrapper(Image image)
-  {
-    return new ImageBasedImageDescriptor(image);
-  }
-
-  /**
-   * An OverlayIcon consists of a main icon and several adornments.
-   */
-   class OverlayIcon extends CompositeImageDescriptor {
-
-      static final int DEFAULT_WIDTH = 22;
-
-      static final int DEFAULT_HEIGHT = 16;
-
-      private Point fSize = null;
-
-      private ImageDescriptor fBase;
-
-      private ImageDescriptor fOverlays[][];
-
-      public OverlayIcon(ImageDescriptor base, ImageDescriptor[][] overlays,
-              Point size) {
-          fBase = base;
-          fOverlays = overlays;
-          fSize = size;
-      }
-
-      protected void drawBottomLeft(ImageDescriptor[] overlays) {
-          if (overlays == null)
-              return;
-          int length = overlays.length;
-          int x = 0;
-          for (int i = 0; i < 3; i++) {
-              if (i < length && overlays[i] != null) {
-                  ImageData id = overlays[i].getImageData();
-                  drawImage(id, x, getSize().y - id.height);
-                  x += id.width;
-              }
-          }
-      }
-
-      protected void drawBottomRight(ImageDescriptor[] overlays) {
-          if (overlays == null)
-              return;
-          int length = overlays.length;
-          int x = getSize().x;
-          for (int i = 2; i >= 0; i--) {
-              if (i < length && overlays[i] != null) {
-                  ImageData id = overlays[i].getImageData();
-                  x -= id.width;
-                  drawImage(id, x, getSize().y - id.height);
-              }
-          }
-      }
-
-      /**
-       * @see CompositeImageDescriptor#drawCompositeImage(int, int)
-       */
-      protected void drawCompositeImage(int width, int height) {
-          ImageData bg;
-          if (fBase == null || (bg = fBase.getImageData()) == null)
-              bg = DEFAULT_IMAGE_DATA;
-          drawImage(bg, 0, 0);
-
-          if (fOverlays != null) {
-              if (fOverlays.length > 0)
-                  drawTopRight(fOverlays[0]);
-
-              if (fOverlays.length > 1)
-                  drawBottomRight(fOverlays[1]);
-
-              if (fOverlays.length > 2)
-                  drawBottomLeft(fOverlays[2]);
-
-              if (fOverlays.length > 3)
-                  drawTopLeft(fOverlays[3]);
-          }
-      }
-
-      protected void drawTopLeft(ImageDescriptor[] overlays) {
-          if (overlays == null)
-              return;
-          int length = overlays.length;
-          int x = 0;
-          for (int i = 0; i < 3; i++) {
-              if (i < length && overlays[i] != null) {
-                  ImageData id = overlays[i].getImageData();
-                  drawImage(id, x, 0);
-                  x += id.width;
-              }
-          }
-      }
-
-      protected void drawTopRight(ImageDescriptor[] overlays) {
-          if (overlays == null)
-              return;
-          int length = overlays.length;
-          int x = getSize().x;
-          for (int i = 2; i >= 0; i--) {
-              if (i < length && overlays[i] != null) {
-                  ImageData id = overlays[i].getImageData();
-                  x -= id.width;
-                  drawImage(id, x, 0);
-              }
-          }
-      }
-
-      /**
-       * @see CompositeImageDescriptor#getSize()
-       */
-      protected Point getSize() {
-          return fSize;
-      }
-  }
-
-   static class ImageBasedImageDescriptor extends ImageDescriptor
-  {
-    protected Image image;
-
-    public ImageBasedImageDescriptor(Image image)
-    {
-      this.image = image;
-    }                    
-
-    public ImageData getImageData()
-    {
-      return image.getImageData();
-    }
-  }  
-}
-
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/URIUtils.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/URIUtils.java
deleted file mode 100644
index cf5a62c..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/URIUtils.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-
-public class URIUtils {
-	
-	  private static final String PROTOCOL_PATTERN = ":"; 
-	  private static final String FILE_PROTOCOL = "file:";
-	  private static final String PLATFORM_RESOURCE_PROTOCOL = "platform:/resource/";
-	  private static final String LOCAL_FILE_PROTOCOL_FORWARD_SLASH = "\\\\\\";
-	  private static final String LOCAL_FILE_PROTOCOL_BACK_SLASH = "///";
-	  private static final char   PATH_SEPARATOR_FORWARD_SLASH = '/';
-	  private static final char   PATH_SEPARATOR_BACK_SLASH = '\\';
-	  
-	  public static String convertURIToLocation(String uri) {
-			String location = uri;
-			if (uri != null) {
-				if (uri.startsWith(FILE_PROTOCOL)) {
-					location = org.eclipse.wst.common.uriresolver.internal.URI.createURI(uri).toFileString();
-					if (location != null && (location.startsWith(LOCAL_FILE_PROTOCOL_BACK_SLASH)
-							|| location.startsWith(LOCAL_FILE_PROTOCOL_FORWARD_SLASH))) {
-						location = location.substring(LOCAL_FILE_PROTOCOL_BACK_SLASH.length());
-					}
-				} else if (uri.startsWith(PLATFORM_RESOURCE_PROTOCOL)) {
-					location = uri.substring(PLATFORM_RESOURCE_PROTOCOL.length());
-				}
-			}
-		return location;
-	  }
-	  
-	  public static String convertLocationToURI(String location) {
-		  String uri = location;
-			if (!URIHelper.hasProtocol(location)) {
-				uri = URIHelper.isAbsolute(location)? org.eclipse.wst.common.uriresolver.internal.URI.createFileURI(location).toString()
-						: URIHelper.prependPlatformResourceProtocol(location);
-			}
-			if (uri.startsWith(FILE_PROTOCOL) && uri.indexOf(PROTOCOL_PATTERN, FILE_PROTOCOL.length()) != -1) {
-				uri = URIHelper.ensureFileURIProtocolFormat(uri);
-			}
-			uri = uri.replace(PATH_SEPARATOR_BACK_SLASH, PATH_SEPARATOR_FORWARD_SLASH);
-			return uri;
-	  }
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogEntriesView.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogEntriesView.java
deleted file mode 100644
index 45706a2..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogEntriesView.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Shell;
-import org.eclipse.wst.xml.core.internal.catalog.Catalog;
-import org.eclipse.wst.xml.core.internal.catalog.CatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-
-
-public class XMLCatalogEntriesView extends Composite
-{
-  protected Button newButton;
-  protected Button editButton;
-  protected Button deleteButton;
-  protected XMLCatalogTreeViewer tableViewer;
-  protected ICatalog workingUserCatalog;
-  protected ICatalog systemCatalog;
-  //protected boolean isPageEnabled = true;
-
-  public XMLCatalogEntriesView(Composite parent, ICatalog workingUserCatalog, ICatalog systemCatalog)
-  {
-    super(parent, SWT.NONE);
-    this.workingUserCatalog = workingUserCatalog;
-    this.systemCatalog = systemCatalog;
-
-    GridLayout gridLayout = new GridLayout();
-    this.setLayout(gridLayout);
-
-    tableViewer = createTableViewer(this);
-    tableViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-    tableViewer.setInput("dummy"); //$NON-NLS-1$
-    tableViewer.expandToLevel(2);
-    tableViewer.reveal(XMLCatalogTreeViewer.USER_SPECIFIED_ENTRIES_OBJECT);
-
-    ISelectionChangedListener listener = new ISelectionChangedListener()
-    {
-      public void selectionChanged(SelectionChangedEvent event)
-      {
-        updateWidgetEnabledState();
-      }
-    };
-    tableViewer.addSelectionChangedListener(listener);
-
-    createButtons(this);
-  }
-
-  public static String removeLeadingSlash(String uri)
-  {
-    // remove leading slash from the value to avoid the whole leading slash ambiguity problem
-    //       
-    if (uri != null)
-    {
-      while (uri.startsWith("/") || uri.startsWith("\\")) //$NON-NLS-1$ //$NON-NLS-2$
-      {
-        uri = uri.substring(1);
-      }
-    }
-    return uri;
-  }
-
-  protected XMLCatalogTreeViewer createTableViewer(Composite parent)
-  {
-    String headings[] = new String[2];
-    headings[0] = XMLCatalogMessages.UI_LABEL_KEY;
-    headings[1] = XMLCatalogMessages.UI_LABEL_URI;
-
-    XMLCatalogTreeViewer theTableViewer = new XMLCatalogTreeViewer(parent, workingUserCatalog, systemCatalog);
-    return theTableViewer;
-  }
-
-  protected void createButtons(Composite parent)
-  {
-    Composite composite = new Composite(parent, SWT.NONE);
-    composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 7;
-    gridLayout.makeColumnsEqualWidth = true;
-    composite.setLayout(gridLayout);
-
-    GridData gd = new GridData();
-    gd.horizontalAlignment = GridData.FILL;
-    gd.grabExcessHorizontalSpace = true;
-    gd.horizontalSpan = 4;
-
-    Button hiddenButton = new Button(composite, SWT.NONE);
-    hiddenButton.setLayoutData(gd);
-    hiddenButton.setVisible(false);
-    hiddenButton.setEnabled(false);
-
-    SelectionListener selectionListener = new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {
-        if (e.widget == newButton)
-        {
-          performNew();
-        }
-        else if (e.widget == editButton)
-        {
-          performEdit();
-        }
-        else if (e.widget == deleteButton)
-        {
-          performDelete();
-        }
-      }
-    };
-
-    // add the "New..." button
-    //
-    gd = new GridData();
-    gd.horizontalAlignment = GridData.FILL;
-    gd.grabExcessHorizontalSpace = true;
-
-    newButton = new Button(composite, SWT.NONE);
-    newButton.setText(XMLCatalogMessages.UI_BUTTON_NEW);
-    //WorkbenchHelp.setHelp(newButton, XMLBuilderContextIds.XMLP_MAPPING_NEW);
-    newButton.setLayoutData(gd);
-    newButton.addSelectionListener(selectionListener);
-
-    // add the "Edit..." button
-    //
-    gd = new GridData();
-    gd.horizontalAlignment = GridData.FILL;
-    gd.grabExcessHorizontalSpace = true;
-    editButton = new Button(composite, SWT.NONE);
-    editButton.setText(XMLCatalogMessages.UI_BUTTON_EDIT);
-    //WorkbenchHelp.setHelp(editButton, XMLBuilderContextIds.XMLP_MAPPING_EDIT);
-    editButton.setLayoutData(gd);
-    editButton.addSelectionListener(selectionListener);
-
-    // add the "Delete" button
-    //
-    gd = new GridData();
-    gd.horizontalAlignment = GridData.FILL;
-    gd.grabExcessHorizontalSpace = true;
-    deleteButton = new Button(composite, SWT.NONE);
-    deleteButton.setText(XMLCatalogMessages.UI_BUTTON_DELETE);
-    //WorkbenchHelp.setHelp(deleteButton, XMLBuilderContextIds.XMLP_MAPPING_DELETE);
-    deleteButton.setLayoutData(gd);
-    deleteButton.addSelectionListener(selectionListener);
-
-    // a cruddy hack so that the PreferenceDialog doesn't close every time we press 'enter'
-    //
-    getShell().setDefaultButton(hiddenButton);
-    updateWidgetEnabledState();
-  }
-
-  public void refresh()
-  {
-    tableViewer.refresh();//XMLCatalogTreeViewer.USER_SPECIFIED_ENTRIES_OBJECT);
-  }
-
-  protected EditCatalogEntryDialog invokeDialog(String title, ICatalogElement entry)
-  {
-    Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-	EditCatalogEntryDialog dialog = new EditCatalogEntryDialog(shell, entry);
-    dialog.create();
-    dialog.getShell().setText(title);
-    dialog.setBlockOnOpen(true);
-    dialog.open();
-    return dialog;
-  }
-  
-  protected EditCatalogEntryDialog invokeDialog(String title, ICatalog catalog)
-  {
-    Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-	EditCatalogEntryDialog dialog = new EditCatalogEntryDialog(shell, catalog);
-    dialog.create();
-    dialog.getShell().setText(title);
-    dialog.setBlockOnOpen(true);
-    dialog.open();
-    return dialog;
-  }
-  
-
-  protected void performNew()
-  {
-
-	//ICatalogEntry newEntry = (ICatalogEntry)workingUserCatalog.createCatalogElement(ICatalogElement.TYPE_ENTRY);
-    EditCatalogEntryDialog dialog = invokeDialog(XMLCatalogMessages.UI_LABEL_NEW_DIALOG_TITLE, workingUserCatalog);
-    ICatalogElement element = dialog.getCatalogElement();
-	if (dialog.getReturnCode() == Window.OK)
-    {
-      workingUserCatalog.addCatalogElement(element);
-      tableViewer.setSelection(new StructuredSelection(element), true);
-	  tableViewer.refresh();
-    }
-  }
-
-  protected void performEdit()
-  {
-    ISelection selection = tableViewer.getSelection();
-    Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-
-    if (selectedObject instanceof ICatalogElement)
-    {
-		ICatalogElement oldEntry = (ICatalogElement) selectedObject;
-		ICatalogElement newEntry = (ICatalogElement)((CatalogElement)oldEntry).clone();
-
-      EditCatalogEntryDialog dialog = invokeDialog(XMLCatalogMessages.UI_LABEL_EDIT_DIALOG_TITLE, newEntry);
-      if (dialog.getReturnCode() == Window.OK)
-      {
-        // delete the old value if the 'mapFrom' has changed
-        //
-        workingUserCatalog.removeCatalogElement(oldEntry);
-
-        // update the new mapping
-        //
-        workingUserCatalog.addCatalogElement(newEntry);
-        tableViewer.setSelection(new StructuredSelection(newEntry));
-      }
-    }
-  }
-
-  protected void performDelete()
-  {
-    ISelection selection = tableViewer.getSelection();
-    Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-
-    if (selectedObject instanceof ICatalogElement)
-    {
-	  ICatalogElement catalogElement = (ICatalogElement) selectedObject;
-      workingUserCatalog.removeCatalogElement(catalogElement);
-    }
-  }
-
-  protected void updateWidgetEnabledState()
-  {
-	  boolean isEditable = false;
-	  ISelection selection = tableViewer.getSelection();
-	  Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-	  
-	  if (selectedObject instanceof ICatalogElement)
-	  {
-		  ICatalogElement[] elements = ((Catalog)workingUserCatalog).getCatalogElements();
-		  //dw List entriesList = new ArrayList(elements.length);
-		  for (int i = 0; i < elements.length; i++)
-		  {
-			  ICatalogElement element = elements[i];
-			  isEditable = selectedObject.equals(element);
-			  if(isEditable) break;  
-		  }
-	  }
-	  
-	  //if (isPageEnabled)
-	  {
-		  editButton.setEnabled(isEditable);
-		  deleteButton.setEnabled(isEditable);
-	  }
-  }
-
-/*
-  public void setPageEnabled(boolean enabled)
-  {
-    isPageEnabled = enabled;
-
-    tableViewer.getControl().setEnabled(isPageEnabled);
-
-    newButton.setEnabled(isPageEnabled);
-    editButton.setEnabled(isPageEnabled);
-    deleteButton.setEnabled(isPageEnabled);
-  }
-*/
-  public void updatePage()
-  {
-    refresh();
-    updateWidgetEnabledState();
-  }
-
-  public Viewer getViewer()
-  {
-    return tableViewer;
-  }
-  
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogEntryDetailsView.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogEntryDetailsView.java
deleted file mode 100644
index 2f69661..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogEntryDetailsView.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-
-
-
-                       
-public class XMLCatalogEntryDetailsView
-{                      
-  protected Text detailsText;
-  protected ScrollBar verticalScroll, horizontalScroll;
-
-  public XMLCatalogEntryDetailsView(Composite parent) 
-  {
-    Color color = parent.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND); 
-                
-	detailsText = new Text(parent, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-
-	GridData data = new GridData(GridData.FILL_BOTH);	
-	data.heightHint = 85;
-	detailsText.setLayoutData(data);
-
-    verticalScroll = detailsText.getVerticalBar();
-    //verticalScroll.setVisible(false);
-    horizontalScroll = detailsText.getHorizontalBar();
-    detailsText.setEditable(false);
-    detailsText.setBackground(color);
-  }
-
-  public void setCatalogElement(ICatalogEntry entry)
-  {                       
-	  
-	String value = getDisplayValue(entry != null ? entry.getURI() : ""); //$NON-NLS-1$
-    String line1 = XMLCatalogMessages.UI_LABEL_DETAILS_URI_COLON + "\t\t" + value; //$NON-NLS-1$
-
-    String line0;
-    if (value.startsWith("jar:file:")) {
-    	String jarFile = URIUtils.convertURIToLocation(URIHelper.ensureURIProtocolFormat(value.substring("jar:".length(), value.indexOf('!'))));
-    	String internalFile = URIUtils.convertURIToLocation(URIHelper.ensureURIProtocolFormat("file://" + value.substring(value.indexOf('!') + 1)));
-    	line0 = XMLCatalogMessages.UI_LABEL_DETAILS_URI_LOCATION + "\t" + internalFile + " " + XMLCatalogMessages.UI_LABEL_DETAILS_IN_JAR_FILE + " " + jarFile;
-    }
-    else {
-    	value = URIUtils.convertURIToLocation(value);
-    	line0 = XMLCatalogMessages.UI_LABEL_DETAILS_URI_LOCATION + "\t" + value; //$NON-NLS-1$
- 	
-    }
-    
-    value = entry != null ? getKeyTypeValue(entry) : ""; //$NON-NLS-1$
-    String line2 = XMLCatalogMessages.UI_KEY_TYPE_DETAILS_COLON + "\t" + value; //$NON-NLS-1$
-
-    value = getDisplayValue(entry != null ? entry.getKey() : ""); //$NON-NLS-1$
-    String line3 = XMLCatalogMessages.UI_LABEL_DETAILS_KEY_COLON + "\t\t" + value; //$NON-NLS-1$
-
-    String entireString = "\n" + line0 + "\n" + line1 + "\n" + line2 + "\n" + line3; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-    detailsText.setText(entireString);
-  }  
-  
-  public void setCatalogElement(INextCatalog nextCatalog)
-  {                       
-    String value = getDisplayValue(nextCatalog != null ? nextCatalog.getCatalogLocation() : ""); //$NON-NLS-1$
-    String line1 = XMLCatalogMessages.UI_LABEL_DETAILS_URI_COLON + "\t\t" + value; //$NON-NLS-1$
-    
-    String line0 = XMLCatalogMessages.UI_LABEL_DETAILS_URI_LOCATION + "\t" + URIUtils.convertURIToLocation(value);
-    
-    String entireString = "\n" + line0 + "\n" + line1; //$NON-NLS-1$
-    detailsText.setText(entireString);
-  }  
-
-  protected String getDisplayValue(String string)
-  {
-    return string != null ? string : ""; //$NON-NLS-1$
-  }      
-
-  protected String getKeyTypeValue(ICatalogEntry entry)
-  {
-    String result = null; 
-    if (entry.getURI() != null && entry.getURI().endsWith("xsd"))     //$NON-NLS-1$
-    {             
-      result = (entry.getEntryType() == ICatalogEntry.ENTRY_TYPE_URI) ?                       
-               XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_XSD_PUBLIC :
-               XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_XSD_SYSTEM;
-    } 
-    else
-    {                                             
-      switch (entry.getEntryType()) {
-			case ICatalogEntry.ENTRY_TYPE_PUBLIC:
-				result = XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_DTD_PUBLIC;
-				break;
-			case ICatalogEntry.ENTRY_TYPE_SYSTEM:
-				result = XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_DTD_SYSTEM;
-				break;
-			default:
-				result = XMLCatalogMessages.UI_KEY_TYPE_DESCRIPTION_URI;
-				break;
-			}
-
-    }
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogFileType.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogFileType.java
deleted file mode 100644
index c2cadf8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogFileType.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 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.wst.xml.ui.internal.catalog;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.swt.graphics.Image;
-
-
-public class XMLCatalogFileType 
-{
-  public String description;
-  public List extensions = new ArrayList();
-  public String iconFileName;
-  public Image icon; 
-    
-  public void addExtensions(String contributedExtensions)
-  {
-	List list = parseExtensions(contributedExtensions);
-	for (Iterator i = list.iterator(); i.hasNext(); )
-	{
-	  String extension = (String)i.next();
-	  if (!extensions.contains(extension))
-	  {
-		extensions.add(extension);
-	  }
-	}
-  }  
-  
-  protected List parseExtensions(String string)
-  {
-	List list = new ArrayList();
-	for (StringTokenizer st = new StringTokenizer(string, ", "); st.hasMoreTokens(); ) //$NON-NLS-1$
-	{
-	  String token = st.nextToken();
-	  if (token != null)
-	  {          	
-		list.add(token); 
-	  }        	  	 
-	}  
-	return list;
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogMessages.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogMessages.java
deleted file mode 100644
index 3461ea5..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogMessages.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XML Editor
- * 
- * @plannedfor 1.0
- */
-public class XMLCatalogMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogResources";//$NON-NLS-1$
-	
-	public static String UI_WIZARD_SCHEMA_AND_NAME_SPACE_INFO;
-	public static String UI_LABEL_NAME_SPACE_PREFIX;
-    public static String UI_LABEL_NAME_SPACE_URI;
-	public static String UI_LABEL_XSD_LOCATION;
-	public static String UI_LABEL_DOCTYPE_INFORMATION;
-	public static String UI_LABEL_SYSTEM_ID;
-	public static String UI_LABEL_PUBLIC_ID;
-	public static String UI_LABEL_SELECT_FILE;
-	public static String UI_LABEL_KEY;
-	public static String UI_LABEL_KEY_COLON;
-	public static String UI_LABEL_DETAILS_KEY_COLON;
-	public static String UI_LABEL_DETAILS_IN_JAR_FILE;
-	public static String UI_LABEL_URI;
-	public static String UI_LABEL_LOCATION_COLON;
-	public static String UI_LABEL_CATALOG_URI_COLON;
-	public static String UI_LABEL_DETAILS_URI_COLON;
-	public static String UI_LABEL_DETAILS_URI_LOCATION;
-	public static String UI_KEY_TYPE_COLON;
-	public static String UI_KEY_TYPE_DETAILS_COLON;
-	public static String UI_KEY_TYPE_DESCRIPTION_XSD_PUBLIC;
-	public static String UI_KEY_TYPE_DESCRIPTION_XSD_SYSTEM;
-	public static String UI_KEY_TYPE_DESCRIPTION_DTD_PUBLIC;
-	public static String UI_KEY_TYPE_DESCRIPTION_DTD_SYSTEM;
-	public static String UI_KEY_TYPE_DESCRIPTION_URI;
-	public static String UI_LABEL_SPECIFY_ALTERNATIVE_WEB_URL;
-	public static String UI_WARNING_URI_MUST_NOT_HAVE_DOTS;
-	public static String UI_LABEL_FILE_SELECTION;
-	public static String UI_LABEL_CHOOSE_FILE_TO_ADD_TO_CATALOG;
-
-
-	public static String UI_WARNING_URI_NOT_FOUND_COLON;
-	public static String UI_WARNING_URI_NOT_FOUND_LONG;
-	public static String UI_WARNING_INVALID_FILE;
-	public static String UI_WARNING_INVALID_FILE_LONG;
-	public static String UI_WARNING_NO_ELEMENT;
-	public static String UI_WARNING_NO_ELEMENT_DTD_LONG;
-	public static String UI_WARNING_NO_ELEMENT_XSD_LONG;
-	public static String UI_WARNING_SHOULD_BE_FULLY_QUALIFIED_URI;
-
-
-	//NewModelWizard
-	public static String UI_INVALID_GRAMMAR_ERROR;
-	public static String UI_BUTTON_BROWSE;
-
-	//XMLCatalogIdMappingPage
-	public static String UI_LABEL_MAP_TO;
-	public static String UI_LABEL_MAP_FROM ;
-	public static String UI_BUTTON_NEW;
-	public static String UI_BUTTON_EDIT;
-	public static String UI_BUTTON_DELETE;
-	public static String UI_LABEL_NEW_DIALOG_TITLE;
-	public static String UI_LABEL_EDIT_DIALOG_TITLE;
-
-
-	// XMLCatalogPreferencePage
-	public static String UI_LABEL_USER_ENTRIES;
-	public static String UI_LABEL_USER_ENTRIES_TOOL_TIP;
-	public static String UI_LABEL_SYSTEM_ENTRIES;
-	public static String UI_LABEL_SYSTEM_ENTRIES_TOOL_TIP;
-	public static String UI_BUTTON_CHANGE;
-	public static String UI_LABEL_SELECT_PROJECT;
-	public static String UI_LABEL_SPECIFY_PROJECT_DESCRIPTION;
-	public static String UI_WARNING_NO_PROJECTS_CREATED;
-	public static String UI_WARNING_PROJECT_NOT_SPECIFIED ;
-	public static String UI_WARNING_PROJECT_DOES_NOT_EXIST ;
-	public static String UI_LABEL_PROJECT_TO_USE ;
-	public static String UI_LABEL_CATALOG_SAVE_ERROR;
-	public static String UI_LABEL_CATALOG_COULD_NOT_BE_SAVED;
-	public static String UI_LABEL_ADVANCED;
-	public static String UI_LABEL_ADVANCED_XML_CATALOG_PREFS;   
-	public static String UI_LABEL_SPECIFY_PERSISTENCE_FILE;
-	public static String UI_LABEL_SAVE_CATALOG_DIALOG_TITLE;
-	public static String UI_LABEL_SAVE_CATALOG_DIALOG_DESC;   
-	public static String UI_LABEL_BROWSE_CATALOG_FILE_TITLE;
-	public static String UI_LABEL_BROWSE_CATALOG_FILE_DESC;   
-	public static String UI_LABEL_DETAILS;
-	public static String UI_LABEL_USER_SPECIFIED_ENTRIES;
-	public static String UI_LABEL_PLUGIN_SPECIFIED_ENTRIES;
-	public static String UI_LABEL_PLATFORM_RESOURCE;
-	public static String UI_LABEL_FILE_SYSTEM_RESOURCE;
-	// AdvancedOptionsDialog
-	public static String UI_BUTTON_IMPORT;
-	public static String UI_BUTTON_EXPORT;
-	                                   
-	public static String UI_LABEL_IMPORT_DIALOG_TITLE;
-	public static String UI_LABEL_IMPORT_DIALOG_HEADING;
-	public static String UI_LABEL_IMPORT_DIALOG_MESSAGE;
-
-	public static String UI_LABEL_EXPORT_DIALOG_TITLE;
-	public static String UI_LABEL_EXPORT_DIALOG_HEADING;
-	public static String UI_LABEL_EXPORT_DIALOG_MESSAGE;
-	public static String ERROR_SAVING_FILE;
-	public static String UI_LABEL_FILE_IS_READ_ONLY;
-	public static String UI_LABEL_DIALOG_DESCRIPTION;
-
-	public static String EditCatalogEntryDialog_catalogEntryLabel;
-	public static String EditCatalogEntryDialog_nextCatalogLabel;
-	public static String UI_BUTTON_MENU_BROWSE_WORKSPACE;
-	public static String UI_BUTTON_MENU_BROWSE_FILE_SYSTEM;
-	public static String UI_LABEL_SELECT_FILE_FILTER_CONTROL;
-	public static String UI_TEXT_SELECT_FILE_FILTER_CONTROL;
-	
-	
-
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, XMLCatalogMessages.class);
-	}
-	
-	private XMLCatalogMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogPreferencePage.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogPreferencePage.java
deleted file mode 100644
index 16947b9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogPreferencePage.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.CatalogSet;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEvent;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogListener;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-
-public class XMLCatalogPreferencePage extends PreferencePage implements
-        IWorkbenchPreferencePage, ICatalogListener
-{
-
-    protected XMLCatalogEntriesView catalogEntriesView;
-
-    protected ICatalog workingUserCatalog;
-
-    protected ICatalog systemCatalog;
-
-    protected ICatalog userCatalog;
-
-    protected ICatalog defaultCatalog;
-
-    protected Button advancedButton;
-
-    public XMLCatalogPreferencePage()
-    {
-        defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-        INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs();
-        for (int i = 0; i < nextCatalogs.length; i++)
-        {
-            INextCatalog catalog = nextCatalogs[i];
-            ICatalog referencedCatalog = catalog.getReferencedCatalog();
-            if (referencedCatalog != null)
-            {
-                if (XMLCorePlugin.SYSTEM_CATALOG_ID
-                        .equals(referencedCatalog.getId()))
-                {
-                    systemCatalog = referencedCatalog;
-                } else if (XMLCorePlugin.USER_CATALOG_ID
-                        .equals(referencedCatalog.getId()))
-                {
-                    userCatalog = referencedCatalog;
-                }
-            }
-        }
-    }
-
-    public void dispose()
-    {
-        super.dispose();
-        workingUserCatalog.removeListener(this);
-    }
-
-    /**
-     * Refresh the view in responce to an event sent by the Catalog
-     */
-    public void catalogChanged(ICatalogEvent event)
-    {
-        catalogEntriesView.updatePage();
-    }
-
-    /**
-     * Creates preference page controls on demand.
-     * 
-     * @param parent
-     *            the parent for the preference page
-     */
-    protected Control createContents(Composite parent)
-    {
-        // we create a working copy of the 'User Settings' for the Catalog
-        // that we can modify
-        CatalogSet tempCatalogSet = new CatalogSet(); 
-        workingUserCatalog = tempCatalogSet.lookupOrCreateCatalog("working", ""); //$NON-NLS-1$ //$NON-NLS-2$
-        
-        // TODO: add entries from the nested catalogs as well
-        workingUserCatalog.addEntriesFromCatalog(userCatalog);
-        workingUserCatalog.addListener(this);
-        noDefaultAndApplyButton();
-        Composite composite = new Composite(parent, SWT.NULL);
-        // WorkbenchHelp.setHelp(composite, new
-        // ControlContextComputer(composite,
-        // XMLBuilderContextIds.XMLP_CATALOG_PAGE));
-        composite.setLayout(new GridLayout());
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-        createCatalogEntriesView(composite);
-        createCatalogDetailsView(composite);
-        createAdvancedButton(composite);
-        // catalogEntriesView.updatePage();
-        applyDialogFont(composite);
-        
-        return composite;
-    }
-
-    protected void createAdvancedButton(Composite composite)
-    {
-        Composite panel = new Composite(composite, SWT.NONE);
-        GridLayout gridLayout = new GridLayout();
-        gridLayout.numColumns = 3;
-        panel.setLayout(gridLayout);
-        panel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        // TODO... is there a better way to expand the page width?
-        // This invisible label is created to force the width of the page to be
-        // wide enough to show
-        // the rather long uri and key fields of a catalog entry.
-        Label widthFudger = new Label(panel, SWT.NONE);
-        String widthFudgerString = ""; //$NON-NLS-1$
-        for (int i = 0; i < 55; i++)
-        {
-            widthFudgerString += "x"; //$NON-NLS-1$
-        }
-        widthFudger.setText(widthFudgerString);
-        widthFudger.setVisible(false);
-        Composite placeHolder = new Composite(panel, SWT.NONE);
-        placeHolder.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        advancedButton = new Button(panel, SWT.NONE);
-        advancedButton.setText(XMLCatalogMessages.UI_LABEL_ADVANCED);
-        SelectionListener selectionListener = new SelectionAdapter()
-        {
-            public void widgetSelected(SelectionEvent e)
-            {
-                AdvancedOptionsDialog dialog = new AdvancedOptionsDialog(
-                        getShell(), workingUserCatalog);
-                dialog.create();
-                dialog
-                        .getShell()
-                        .setText(
-                                XMLCatalogMessages.UI_LABEL_ADVANCED_XML_CATALOG_PREFS);
-                dialog.setBlockOnOpen(true);
-                dialog.open();
-            }
-        };
-        advancedButton.addSelectionListener(selectionListener);
-    }
-
-    public boolean isSameFileName(String a, String b)
-    {
-        boolean result = false;
-        if (a == null && b == null)
-        {
-            result = true;
-        } else if (a != null && b != null)
-        {
-            result = a.equals(b);
-        }
-        return result;
-    }
-
-    protected void createCatalogEntriesView(Composite parent)
-    {
-        Group group = new Group(parent, SWT.NONE);
-        group.setLayout(new GridLayout());
-        group.setLayoutData(new GridData(GridData.FILL_BOTH));
-        group.setText(XMLCatalogMessages.UI_LABEL_USER_ENTRIES);
-        group.setToolTipText(XMLCatalogMessages.UI_LABEL_USER_ENTRIES_TOOL_TIP);
-        // WorkbenchHelp.setHelp(userEntriesGroup, new
-        // ControlContextComputer(userEntriesGroup,
-        // XMLBuilderContextIds.XMLP_CATALOG_USER_GROUP));
-        catalogEntriesView = new XMLCatalogEntriesView(group,
-                workingUserCatalog, systemCatalog);
-        catalogEntriesView.setLayoutData(new GridData(GridData.FILL_BOTH));
-    }
-
-    protected void createCatalogDetailsView(Composite parent)
-    {
-        Group detailsGroup = new Group(parent, SWT.NONE);
-        detailsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        detailsGroup.setLayout(new GridLayout());
-        detailsGroup.setText(XMLCatalogMessages.UI_LABEL_DETAILS);
-        final XMLCatalogEntryDetailsView detailsView = new XMLCatalogEntryDetailsView(
-                detailsGroup);
-        ISelectionChangedListener listener = new ISelectionChangedListener()
-        {
-            public void selectionChanged(SelectionChangedEvent event)
-            {
-                ISelection selection = event.getSelection();
-                Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection)
-                        .getFirstElement()
-                        : null;
-                if (selectedObject instanceof ICatalogEntry)
-                {
-                    ICatalogEntry entry = (ICatalogEntry) selectedObject;
-                    detailsView.setCatalogElement(entry);
-                }
-                else if (selectedObject instanceof INextCatalog)
-                {
-                	INextCatalog entry = (INextCatalog) selectedObject;
-                    detailsView.setCatalogElement(entry);
-                }
-                else {
-                	detailsView.setCatalogElement((ICatalogEntry) null); 
-                }
-                
-            }
-        };
-        catalogEntriesView.getViewer().addSelectionChangedListener(listener);
-    }
-
-    /**
-     * Do anything necessary because the OK button has been pressed.
-     * 
-     * @return whether it is okay to close the preference page
-     */
-    public boolean performOk()
-    {
-        return storeValues();
-    }
-
-    /**
-     * @see IWorkbenchPreferencePage
-     */
-    public void init(IWorkbench workbench)
-    {
-    }
-
-    /**
-     * Stores the values of the controls back to the preference store.
-     */
-    private boolean storeValues()
-    {
-       //dw  Object fileObject = null;
-        try
-        {
-            // update the userCatalog so that its the same as the working
-            // catalog
-            userCatalog.clear();
-            // TODO add entries from the nested catalogs?
-            userCatalog.addEntriesFromCatalog(workingUserCatalog);
-            // now save the userCatalog
-            userCatalog.save();
-        } catch (Exception e)
-        {
-        }
-        return true;
-    }
-    
-	
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogResources.properties b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogResources.properties
deleted file mode 100644
index 7782458..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogResources.properties
+++ /dev/null
@@ -1,111 +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
-###############################################################################
-UI_WIZARD_SCHEMA_AND_NAME_SPACE_INFO = Schema and Namespace Information
-UI_LABEL_NAME_SPACE_PREFIX           = Namespace prefix:
-UI_LABEL_NAME_SPACE_URI              = Namespace URI:
-UI_LABEL_XSD_LOCATION                = Schema location:
-UI_LABEL_DOCTYPE_INFORMATION         = Document type information
-UI_LABEL_SYSTEM_ID                   = &System ID:
-UI_LABEL_PUBLIC_ID                   = &Public ID:
-UI_LABEL_SELECT_FILE                 = Select File
-UI_LABEL_KEY                         = Key
-UI_LABEL_KEY_COLON                   = &Key:
-UI_LABEL_DETAILS_KEY_COLON           = Key:
-UI_LABEL_DETAILS_IN_JAR_FILE		 = in jar file
-UI_LABEL_URI                         = URI
-UI_LABEL_LOCATION_COLON              = &Location:  
-UI_LABEL_CATALOG_URI_COLON		      = Location of another XML Catalog file:
-UI_LABEL_DETAILS_URI_COLON           = URI:   
-UI_KEY_TYPE_COLON                    = Key &Type:
-UI_KEY_TYPE_DETAILS_COLON            = Key Type:
-UI_LABEL_DETAILS_URI_LOCATION        = Location:
-UI_KEY_TYPE_DESCRIPTION_XSD_PUBLIC   = Namespace Name
-UI_KEY_TYPE_DESCRIPTION_XSD_SYSTEM   = Schema Location
-UI_KEY_TYPE_DESCRIPTION_DTD_PUBLIC   = Public ID
-UI_KEY_TYPE_DESCRIPTION_DTD_SYSTEM   = System ID
-UI_KEY_TYPE_DESCRIPTION_URI   		  = URI
-UI_LABEL_SPECIFY_ALTERNATIVE_WEB_URL = Specify &alternative web address
-UI_WARNING_URI_MUST_NOT_HAVE_DOTS    = URI must not included '.' or '..'
-UI_LABEL_PLATFORM_RESOURCE 		 	 = Workspace
-UI_LABEL_FILE_SYSTEM_RESOURCE		 = File System
-
-UI_WARNING_URI_NOT_FOUND_COLON       = The specified resource can't be located :
-UI_WARNING_SHOULD_BE_FULLY_QUALIFIED_URI = Warning: the key value should be a fully qualified URI
-UI_WARNING_URI_NOT_FOUND_LONG        = The specified file cannot be found. It may have been moved to a different location. If the file is located remotely, a network connection cannot be established to the remote location. 
-UI_WARNING_INVALID_FILE              = The specified file is invalid.
-UI_WARNING_INVALID_FILE_LONG         = The specified file is invalid. A proper XML file cannot be generated from it. Open the DTD or XML schema file, edit it as necessary, validate it and try again.
-UI_WARNING_NO_ELEMENT                = The specified file must contain at least one element declaration.
-UI_WARNING_NO_ELEMENT_DTD_LONG       = The specified file must contain at least one element declaration that can be used as the root element in the generated XML file.
-UI_WARNING_NO_ELEMENT_XSD_LONG       = The specified file must contain at least one global element declaration that can be used as the root element in the generated XML file.
-
-
-!NewModelWizard
-UI_INVALID_GRAMMAR_ERROR             = Invalid Grammar
-UI_BUTTON_BROWSE                     = &Browse...
-
-!XMLCatalogIdMappingPage
-UI_LABEL_MAP_TO                      = Map to:
-UI_LABEL_MAP_FROM                    = Map from:
-UI_BUTTON_NEW                        = &Add...
-UI_BUTTON_EDIT                       = &Edit...
-UI_BUTTON_DELETE                     = &Delete
-UI_LABEL_NEW_DIALOG_TITLE            = Add XML Catalog Entry
-UI_LABEL_EDIT_DIALOG_TITLE           = Edit XML Catalog Entry
-
-
-!XMLCatalogPreferencePage
-UI_LABEL_USER_ENTRIES                = XML Catalog Entries
-UI_LABEL_USER_ENTRIES_TOOL_TIP       = XML Catalog entries that have been specified by the user
-UI_LABEL_SYSTEM_ENTRIES              = Plug-in specified entries
-UI_LABEL_SYSTEM_ENTRIES_TOOL_TIP     = XML Catalog entries that have been specified by a plug-in
-UI_BUTTON_CHANGE                     = Change...
-UI_LABEL_SELECT_PROJECT              = Select Project
-UI_LABEL_SPECIFY_PROJECT_DESCRIPTION = Specify the project to persist the XML Catalog information
-UI_WARNING_NO_PROJECTS_CREATED       = No projects have been created yet.
-UI_WARNING_PROJECT_NOT_SPECIFIED     = A project name has not been specified.
-UI_WARNING_PROJECT_DOES_NOT_EXIST    = The specified project does not exist.
-UI_LABEL_PROJECT_TO_USE              = Project to use to persist XML Catalog User Entries: 
-UI_LABEL_CATALOG_SAVE_ERROR          = XML Catalog Save Error
-UI_LABEL_CATALOG_COULD_NOT_BE_SAVED  = The XML Catalog entry could not be saved.
-UI_LABEL_ADVANCED                    = &Advanced...
-UI_LABEL_ADVANCED_XML_CATALOG_PREFS  = Advanced XML Catalog Preferences   
-UI_LABEL_SPECIFY_PERSISTENCE_FILE    = &Specify a file to use to persist the XML Catalog information.
-UI_LABEL_SAVE_CATALOG_DIALOG_TITLE   = Save Changes
-UI_LABEL_SAVE_CATALOG_DIALOG_DESC    = You have made unsaved changes to the current XML Catalog settings. Do you wish to save your changes before loading the new XML Catalog settings?   
-UI_LABEL_BROWSE_CATALOG_FILE_TITLE   = Select Folder
-UI_LABEL_BROWSE_CATALOG_FILE_DESC    = Select the folder that contains the '.xmlcatalog' file.   
-UI_LABEL_DETAILS                     = Details
-UI_LABEL_USER_SPECIFIED_ENTRIES      = User Specified Entries
-UI_LABEL_PLUGIN_SPECIFIED_ENTRIES    = Plugin Specified Entries
-UI_LABEL_FILE_SELECTION				 = File Selection
-UI_LABEL_CHOOSE_FILE_TO_ADD_TO_CATALOG				 = Choose a file to add to the XML Catalog
- 
-!AdvancedOptionsDialog
-UI_LABEL_DIALOG_DESCRIPTION          = Use the buttons below to import or export XML Catalog settings.
-UI_BUTTON_IMPORT                     = Import...
-UI_BUTTON_EXPORT                     = Export...
-                                   
-UI_LABEL_IMPORT_DIALOG_TITLE         = Import XML Catalog Settings
-UI_LABEL_IMPORT_DIALOG_HEADING       = Specify XML Catalog File
-UI_LABEL_IMPORT_DIALOG_MESSAGE       = Specify the file that will used to load the XML Catalog Settings
-
-UI_LABEL_EXPORT_DIALOG_TITLE         = Export XML Catalog Settings
-UI_LABEL_EXPORT_DIALOG_HEADING       = Specify XML Catalog File
-UI_LABEL_EXPORT_DIALOG_MESSAGE       = Specify the file that will used to save the XML Catalog Setting
-ERROR_SAVING_FILE					 = Error saving file %1
-UI_LABEL_FILE_IS_READ_ONLY           = File %1 is read only
-
-EditCatalogEntryDialog_catalogEntryLabel=Catalog Entry
-EditCatalogEntryDialog_nextCatalogLabel=Next Catalog
-UI_BUTTON_MENU_BROWSE_WORKSPACE=Workspace...
-UI_BUTTON_MENU_BROWSE_FILE_SYSTEM=File System...
-UI_LABEL_SELECT_FILE_FILTER_CONTROL=Files of type:
-UI_TEXT_SELECT_FILE_FILTER_CONTROL=All Files
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogTreeViewer.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogTreeViewer.java
deleted file mode 100644
index e61bff7..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLCatalogTreeViewer.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-import com.ibm.icu.text.Collator;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorRegistry;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogElement;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-
-
-public class XMLCatalogTreeViewer extends TreeViewer {
-	protected static Image xmlCatalogImage = ImageFactory.INSTANCE.getImage("icons/obj16/xmlcatalog_obj.gif"); //$NON-NLS-1$
-	protected static Image errorImage = ImageFactory.INSTANCE.getImage("icons/ovr16/error-overlay.gif"); //$NON-NLS-1$
-	protected static Image entryImage = ImageFactory.INSTANCE.getImage("icons/obj16/entry_obj.gif"); //$NON-NLS-1$
-	protected static Image nextCatalogImage = ImageFactory.INSTANCE.getImage("icons/obj16/nextCatalog_obj.gif"); //$NON-NLS-1$
-
-	protected static String ERROR_STATE_KEY = "errorstatekey"; //$NON-NLS-1$
-
-	protected ICatalog fWorkingUserCatalog;
-	protected ICatalog fSystemCatalog;
-
-	public static String USER_SPECIFIED_ENTRIES_OBJECT = XMLCatalogMessages.UI_LABEL_USER_SPECIFIED_ENTRIES;
-	public static String PLUGIN_SPECIFIED_ENTRIES_OBJECT = XMLCatalogMessages.UI_LABEL_PLUGIN_SPECIFIED_ENTRIES;
-
-	public XMLCatalogTreeViewer(Composite parent, ICatalog workingUserCatalog, ICatalog systemCatalog) {
-		super(parent, SWT.NONE);
-		this.fWorkingUserCatalog = workingUserCatalog;
-		this.fSystemCatalog = systemCatalog;
-
-		setContentProvider(new CatalogEntryContentProvider());
-		setLabelProvider(new CatalogEntryLabelProvider());
-	}
-
-	public void setFilterExtensions(String[] extensions) {
-		resetFilters();
-		addFilter(new XMLCatalogTableViewerFilter(extensions));
-	}
-
-	public class CatalogEntryLabelProvider extends LabelProvider {
-		protected HashMap imageTable = new HashMap();
-
-		public String getText(Object object) {
-			String result = null;
-			if (object instanceof ICatalogEntry) {
-				ICatalogEntry catalogEntry = (ICatalogEntry) object;
-				result = catalogEntry.getKey();
-				// result = URIHelper.removePlatformResourceProtocol(result);
-			}
-			else if (object instanceof INextCatalog) {
-				INextCatalog nextCatalog = (INextCatalog) object;
-				//result = nextCatalog.getCatalogLocation();
-				result = URIUtils.convertURIToLocation(nextCatalog.getCatalogLocation());
-				if (nextCatalog.getCatalogLocation().startsWith("file:")) {
-					result += " (" + XMLCatalogMessages.UI_LABEL_FILE_SYSTEM_RESOURCE + ")";
-				} else if (nextCatalog.getCatalogLocation().startsWith("platform:")) {
-					result += " (" + XMLCatalogMessages.UI_LABEL_PLATFORM_RESOURCE + ")";
-				}
-			}
-			return result != null ? result : object.toString();
-		}
-
-		public Image getImage(Object object) {
-			Image result = null;
-			Image base = null;
-			if (object instanceof String) {
-				result = xmlCatalogImage;
-			}
-			else if (object instanceof ICatalogEntry) {
-				ICatalogEntry catalogEntry = (ICatalogEntry) object;
-				String uri = catalogEntry.getURI();
-				IEditorRegistry er = PlatformUI.getWorkbench().getEditorRegistry();
-				ImageDescriptor imageDescriptor = er.getImageDescriptor(uri);
-				Image image = (Image) imageTable.get(imageDescriptor);
-				if (image == null) {
-					image = imageDescriptor.createImage();
-					imageTable.put(imageDescriptor, image);
-				}
-				base = image;
-
-				if (base != null) {
-					if (URIHelper.isReadableURI(uri, true)) {
-						result = base;
-					}
-					else {
-						result = ImageFactory.INSTANCE.createCompositeImage(base, errorImage, ImageFactory.BOTTOM_LEFT);
-					}
-				}
-			}
-			else if (object instanceof INextCatalog) {
-				// TODO: add image to the imageTable and add error overlay if
-				// next catalog URI is not readable
-				result = nextCatalogImage;
-			}
-			return result;
-		}
-		
-		public void dispose() {
-			super.dispose();
-			for (Iterator it = imageTable.values().iterator(); it.hasNext();)
-			{
-				((Image)it.next()).dispose();
-			}
-		}
-	}
-
-
-	public class CatalogEntryContentProvider implements ITreeContentProvider {
-		protected Object[] roots;
-
-		public CatalogEntryContentProvider() {
-			roots = new Object[2];
-			roots[0] = USER_SPECIFIED_ENTRIES_OBJECT;
-			roots[1] = PLUGIN_SPECIFIED_ENTRIES_OBJECT;
-		}
-
-		public boolean isRoot(Object object) {
-			return object instanceof String || object instanceof INextCatalog;
-		}
-
-		public Object[] getElements(Object element) {
-			return roots;
-		}
-
-		public Object[] getChildren(Object parentElement) {
-			Object[] result = new Object[0];
-			if (parentElement == roots[0]) {
-				result = getChildrenHelper(fWorkingUserCatalog);
-			}
-			else if (parentElement == roots[1]) {
-				result = getChildrenHelper(fSystemCatalog);
-			}
-			else if (parentElement instanceof INextCatalog) {
-				ICatalog nextCatalog = ((INextCatalog) parentElement).getReferencedCatalog();
-				result = getChildrenHelper(nextCatalog);
-			}
-			return result;
-		}
-
-		protected Object[] getChildrenHelper(ICatalog catalog) {
-			// TODO add entries from the nested catalogs
-
-			ICatalogEntry[] entries = catalog.getCatalogEntries();
-			if (entries.length > 0) {
-				Comparator comparator = new Comparator() {
-					public int compare(Object o1, Object o2) {
-						int result = 0;
-						if (o1 instanceof ICatalogEntry && o2 instanceof ICatalogEntry) {
-							ICatalogEntry entry1 = (ICatalogEntry) o1;
-							ICatalogEntry entry2 = (ICatalogEntry) o2;
-							result = Collator.getInstance().compare(entry1.getKey(), entry2.getKey());
-						}
-						return result;
-					}
-				};
-				Arrays.sort(entries, comparator);
-			}
-			Vector result = new Vector();
-			result.addAll(Arrays.asList(entries));
-			INextCatalog[] nextCatalogs = catalog.getNextCatalogs();
-			List nextCatalogsList = Arrays.asList(nextCatalogs);
-			result.addAll(nextCatalogsList);
-
-			return  result.toArray(new ICatalogElement[result.size()]);
-		}
-
-		public Object getParent(Object element) {
-			return (element instanceof String) ? null : USER_SPECIFIED_ENTRIES_OBJECT;
-		}
-
-		public boolean hasChildren(Object element) {
-			return isRoot(element) ? getChildren(element).length > 0 : false;
-		}
-
-		public void dispose() {
-			// nothing to dispose
-		}
-
-		public void inputChanged(Viewer viewer, Object old, Object newobj) {
-			// ISSUE: seems we should do something here
-		}
-
-		public boolean isDeleted(Object object) {
-			return false;
-		}
-	}
-
-
-	public void menuAboutToShow(IMenuManager menuManager) {
-		Action action = new Action("hello") { //$NON-NLS-1$
-			public void run() {
-				System.out.println("run!"); //$NON-NLS-1$
-			}
-		};
-		menuManager.add(action);
-	}
-
-
-	class XMLCatalogTableViewerFilter extends ViewerFilter {
-		protected String[] extensions;
-
-		public XMLCatalogTableViewerFilter(String[] extensions1) {
-			this.extensions = extensions1;
-		}
-
-		public boolean isFilterProperty(Object element, Object property) {
-			return false;
-		}
-
-		public boolean select(Viewer viewer, Object parent, Object element) {
-			boolean result = false;
-			if (element instanceof ICatalogEntry) {
-				ICatalogEntry catalogEntry = (ICatalogEntry) element;
-				for (int i = 0; i < extensions.length; i++) {
-					if (catalogEntry.getURI().endsWith(extensions[i])) {
-						result = true;
-						break;
-					}
-				}
-			}
-			else if ( element.equals(XMLCatalogTreeViewer.PLUGIN_SPECIFIED_ENTRIES_OBJECT ) ||
-					element.equals(XMLCatalogTreeViewer.USER_SPECIFIED_ENTRIES_OBJECT) ) {
-				return true;
-			}
-			return result;
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLQuickScan.java b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLQuickScan.java
deleted file mode 100644
index dc09758..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/XMLQuickScan.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.catalog;
-
-import java.io.InputStream;
-import java.net.URL;
-
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.DefaultHandler;
-
-/**
- *
- */
-public class XMLQuickScan
-{
-  public static String getTargetNamespaceURIForSchema(String uri)
-  {
-    String result = null;
-    try
-    {
-      URL url = new URL(uri);
-      InputStream inputStream = url.openStream();
-      result = XMLQuickScan.getTargetNamespaceURIForSchema(inputStream);
-    }
-    catch (Exception e)
-    {
-    }
-    return result;
-  }
-
-  public static String getTargetNamespaceURIForSchema(InputStream input)
-  {
-    TargetNamespaceURIContentHandler handler = new TargetNamespaceURIContentHandler();
-    ClassLoader prevClassLoader = Thread.currentThread().getContextClassLoader();
-    try
-    {
-      Thread.currentThread().setContextClassLoader(XMLQuickScan.class.getClassLoader());
-      SAXParserFactory factory = SAXParserFactory.newInstance();
-      factory.setNamespaceAware(true);
-	  SAXParser parser = factory.newSAXParser();
-	  parser.parse(new InputSource(input), handler);
-    }
-    catch (Exception e)
-    {
-    }
-    finally
-    {
-      Thread.currentThread().setContextClassLoader(prevClassLoader);
-    }
-    return handler.targetNamespaceURI;
-  }
-
-  protected static class TargetNamespaceURIContentHandler extends DefaultHandler
-  {
-    public String targetNamespaceURI;
-
-    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
-    {
-      if (localName.equals("schema")) //$NON-NLS-1$
-      {
-        int nAttributes = attributes.getLength();
-        for (int i = 0; i < nAttributes; i++)
-        {
-          if (attributes.getLocalName(i).equals("targetNamespace")) //$NON-NLS-1$
-          {
-            targetNamespaceURI = attributes.getValue(i);
-            break;
-          }
-        }
-      }
-      // todo there's a nice way to do this I'm sure    
-      // here I intentially cause an exception... 
-      String x = null;
-      x.length();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/etool50/catalogEntry.gif b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/etool50/catalogEntry.gif
deleted file mode 100644
index d65b280..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/etool50/catalogEntry.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/etool50/nextCatalog.gif b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/etool50/nextCatalog.gif
deleted file mode 100644
index 3a934b9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/etool50/nextCatalog.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/entry_obj.gif b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/entry_obj.gif
deleted file mode 100644
index 9a0ff30..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/entry_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/file_expand.gif b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/file_expand.gif
deleted file mode 100644
index 85f9baa..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/file_expand.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/file_obj.gif b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/file_obj.gif
deleted file mode 100644
index 061161a..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/file_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/nextCatalog_obj.gif b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/nextCatalog_obj.gif
deleted file mode 100644
index d4bfe79..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/nextCatalog_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/xmlcatalog_obj.gif b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/xmlcatalog_obj.gif
deleted file mode 100644
index a61441f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/obj16/xmlcatalog_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/ovr16/error-overlay.gif b/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/ovr16/error-overlay.gif
deleted file mode 100644
index 119dccc..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-catalog/org/eclipse/wst/xml/ui/internal/catalog/icons/ovr16/error-overlay.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/DOMPropertyDescriptorFactory.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/DOMPropertyDescriptorFactory.java
deleted file mode 100644
index 754d9bb..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/DOMPropertyDescriptorFactory.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.ui.internal.properties.EnumeratedStringPropertyDescriptor;
-import org.w3c.dom.Attr;
-import org.w3c.dom.CDATASection;
-import org.w3c.dom.Comment;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.EntityReference;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-
-public class DOMPropertyDescriptorFactory {
-
-	protected static final String HACK = "hack"; //$NON-NLS-1$
-
-	public DOMPropertyDescriptorFactory() {
-	}
-
-	public IPropertyDescriptor createAttributePropertyDescriptor(Attr attr) {
-		IPropertyDescriptor result = null;
-
-		String attributeName = attr.getName();
-
-		ModelQuery mq = ModelQueryUtil.getModelQuery(attr.getOwnerDocument());
-
-		if (mq != null) {
-			CMAttributeDeclaration ad = mq.getCMAttributeDeclaration(attr);
-			if (ad != null) {
-				String[] valuesArray = mq.getPossibleDataTypeValues(attr.getOwnerElement(), ad);
-				if (valuesArray != null && valuesArray.length > 0) {
-					result = new EnumeratedStringPropertyDescriptor(attributeName, attributeName, valuesArray);
-				}
-			}
-		}
-
-		if (result == null) {
-			result = createDefaultPropertyDescriptor(attributeName);
-		}
-		return result;
-	}
-
-	public IPropertyDescriptor createCDATASectionPropertyDescriptor(CDATASection cdataSection) {
-		return createDefaultPropertyDescriptor(HACK);
-	}
-
-	public IPropertyDescriptor createCommentPropertyDescriptor(Comment comment) {
-		return createDefaultPropertyDescriptor(HACK);
-	}
-
-	protected IPropertyDescriptor createDefaultPropertyDescriptor(String attributeName) {
-		TextPropertyDescriptor descriptor = new TextPropertyDescriptor(attributeName, attributeName);
-		return descriptor;
-	}
-
-	public IPropertyDescriptor createDocumentTypePropertyDescriptor(DocumentType documentType) {
-		return null; // new TextPropertyDescriptor(HACK, HACK);
-	}
-
-	public IPropertyDescriptor createElementPropertyDescriptor(Element element) {
-		return createDefaultPropertyDescriptor(HACK);
-	}
-
-	public IPropertyDescriptor createEntityReferencePropertyDescriptor(EntityReference entityReference) {
-		return createDefaultPropertyDescriptor(HACK);
-	}
-
-	public IPropertyDescriptor createProcessingInstructionPropertyDescriptor(ProcessingInstruction pi) {
-		return createDefaultPropertyDescriptor(HACK);
-	}
-
-	public IPropertyDescriptor createPropertyDescriptor(Object object) {
-		IPropertyDescriptor result = null;
-		if (object instanceof Node) {
-			Node node = (Node) object;
-			int nodeType = node.getNodeType();
-			switch (nodeType) {
-				case Node.ATTRIBUTE_NODE : {
-					result = createAttributePropertyDescriptor((Attr) node);
-					break;
-				}
-				case Node.CDATA_SECTION_NODE : {
-					result = createCDATASectionPropertyDescriptor((CDATASection) node);
-					break;
-				}
-				case Node.COMMENT_NODE : {
-					result = createCommentPropertyDescriptor((Comment) node);
-					break;
-				}
-				case Node.DOCUMENT_TYPE_NODE : {
-					result = createDocumentTypePropertyDescriptor((DocumentType) node);
-					break;
-				}
-				case Node.ELEMENT_NODE : {
-					result = createElementPropertyDescriptor((Element) node);
-					break;
-				}
-				case Node.ENTITY_REFERENCE_NODE : {
-					result = createEntityReferencePropertyDescriptor((EntityReference) node);
-					break;
-				}
-				case Node.PROCESSING_INSTRUCTION_NODE : {
-					result = createProcessingInstructionPropertyDescriptor((ProcessingInstruction) node);
-					break;
-				}
-				case Node.TEXT_NODE : {
-					result = createTextPropertyDescriptor((Text) node);
-					break;
-				}
-			}
-		}
-		return result;
-	}
-
-	public IPropertyDescriptor createTextPropertyDescriptor(Text text) {
-		return createDefaultPropertyDescriptor(HACK);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/IDesignViewer.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/IDesignViewer.java
deleted file mode 100644
index 8569407..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/IDesignViewer.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Control;
-
-public interface IDesignViewer {
-	public Control getControl();
-
-	String getTitle();
-
-	void setDocument(IDocument document);
-	
-	ISelectionProvider getSelectionProvider();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/IDesignViewerActionBarContributor.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/IDesignViewerActionBarContributor.java
deleted file mode 100644
index c6a45f5..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/IDesignViewerActionBarContributor.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.wst.sse.ui.internal.ISourceViewerActionBarContributor;
-
-
-public interface IDesignViewerActionBarContributor extends ISourceViewerActionBarContributor {
-	public void initViewerSpecificContributions(IActionBars bars);
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/SourceEditorActionBarContributor.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/SourceEditorActionBarContributor.java
deleted file mode 100644
index f30e1ee..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/SourceEditorActionBarContributor.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.ExtendedEditorActionBuilder;
-import org.eclipse.wst.sse.ui.internal.IExtendedContributor;
-import org.eclipse.wst.sse.ui.internal.ISourceViewerActionBarContributor;
-
-
-public class SourceEditorActionBarContributor extends MultiPageEditorActionBarContributor implements IExtendedContributor {
-
-	protected IEditorActionBarContributor designViewerActionBarContributor = null;
-	protected IEditorActionBarContributor sourceViewerActionContributor = null;
-	protected XMLMultiPageEditorPart multiPageEditor = null;
-
-	// EditorExtension
-	private static final String EDITOR_ID = "org.eclipse.wst.xml.ui.XMLMultiPageEditorPart"; //$NON-NLS-1$
-	private IExtendedContributor extendedContributor;
-
-	public SourceEditorActionBarContributor() {
-		super();
-
-		sourceViewerActionContributor = new SourcePageActionContributor();
-
-		// Read action extensions.
-		ExtendedEditorActionBuilder builder = new ExtendedEditorActionBuilder();
-		extendedContributor = builder.readActionExtensions(EDITOR_ID);
-	}
-
-	public void init(IActionBars actionBars) {
-		super.init(actionBars);
-
-		if (actionBars != null) {
-			initDesignViewerActionBarContributor(actionBars);
-			initSourceViewerActionContributor(actionBars);
-		}
-	}
-
-	protected void initDesignViewerActionBarContributor(IActionBars actionBars) {
-		if (designViewerActionBarContributor != null)
-			designViewerActionBarContributor.init(actionBars, getPage());
-	}
-
-	protected void initSourceViewerActionContributor(IActionBars actionBars) {
-		if (sourceViewerActionContributor != null)
-			sourceViewerActionContributor.init(actionBars, getPage());
-	}
-
-	public void dispose() {
-		super.dispose();
-
-		if (designViewerActionBarContributor != null)
-			designViewerActionBarContributor.dispose();
-
-		if (sourceViewerActionContributor != null)
-			sourceViewerActionContributor.dispose();
-
-		if (extendedContributor != null)
-			extendedContributor.dispose();
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToMenu(IMenuManager)
-	 */
-	public final void contributeToMenu(IMenuManager menu) {
-		super.contributeToMenu(menu);
-
-		addToMenu(menu);
-
-		if (extendedContributor != null)
-			extendedContributor.contributeToMenu(menu);
-	}
-
-	protected void addToMenu(IMenuManager menu) {
-	}
-
-	/**
-	 * @see IExtendedContributor#contributeToPopupMenu(IMenuManager)
-	 */
-	public final void contributeToPopupMenu(IMenuManager menu) {
-
-		addToPopupMenu(menu);
-
-		if (extendedContributor != null)
-			extendedContributor.contributeToPopupMenu(menu);
-	}
-
-	protected void addToPopupMenu(IMenuManager menu) {
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToToolBar(IToolBarManager)
-	 */
-	public final void contributeToToolBar(IToolBarManager toolBarManager) {
-		super.contributeToToolBar(toolBarManager);
-
-		addToToolBar(toolBarManager);
-
-		if (extendedContributor != null)
-			extendedContributor.contributeToToolBar(toolBarManager);
-	}
-
-	protected void addToToolBar(IToolBarManager toolBarManager) {
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#contributeToStatusLine(IStatusLineManager)
-	 */
-	public final void contributeToStatusLine(IStatusLineManager manager) {
-		super.contributeToStatusLine(manager);
-
-		addToStatusLine(manager);
-
-		if (extendedContributor != null)
-			extendedContributor.contributeToStatusLine(manager);
-	}
-
-	protected void addToStatusLine(IStatusLineManager manager) {
-	}
-
-	/**
-	 * @see IExtendedContributor#updateToolbarActions()
-	 */
-	public void updateToolbarActions() {
-		if (extendedContributor != null)
-			extendedContributor.updateToolbarActions();
-	}
-
-	public void setActiveEditor(IEditorPart targetEditor) {
-		// save multiPageEditor before calling
-		// super.setActiveEditor(targetEditor)
-		// super.setActiveEditor will call setActivePage(IEditorPart
-		// activeEditor)
-		// multiPageEditor is needed in setActivePage(IEditorPart
-		// activeEditor)
-		if (targetEditor instanceof XMLMultiPageEditorPart)
-			multiPageEditor = (XMLMultiPageEditorPart) targetEditor;
-
-		super.setActiveEditor(targetEditor);
-
-		updateToolbarActions();
-
-		if (extendedContributor != null)
-			extendedContributor.setActiveEditor(targetEditor);
-	}
-
-	public void setActivePage(IEditorPart activeEditor) {
-		// This contributor is designed for StructuredTextMultiPageEditorPart.
-		// To safe-guard this from problems caused by unexpected usage by
-		// other editors, the following
-		// check is added.
-		if (multiPageEditor != null) {
-			if (activeEditor != null && activeEditor instanceof StructuredTextEditor)
-				activateSourcePage(activeEditor);
-			else
-				activateDesignPage(activeEditor);
-		}
-
-		updateToolbarActions();
-
-		IActionBars actionBars = getActionBars();
-		if (actionBars != null) {
-			// update menu bar and tool bar
-			actionBars.updateActionBars();
-		}
-	}
-
-	protected void activateDesignPage(IEditorPart activeEditor) {
-		if (designViewerActionBarContributor != null && designViewerActionBarContributor instanceof IDesignViewerActionBarContributor) {
-			designViewerActionBarContributor.setActiveEditor(multiPageEditor);
-		}
-
-		if (sourceViewerActionContributor != null && sourceViewerActionContributor instanceof ISourceViewerActionBarContributor) {
-			// if design page is not really an IEditorPart, activeEditor ==
-			// null, so pass in multiPageEditor instead (d282414)
-			if (activeEditor == null) {
-				sourceViewerActionContributor.setActiveEditor(multiPageEditor);
-			} else {
-				sourceViewerActionContributor.setActiveEditor(activeEditor);
-			}
-			((ISourceViewerActionBarContributor) sourceViewerActionContributor).setViewerSpecificContributionsEnabled(false);
-		}
-	}
-
-	protected void activateSourcePage(IEditorPart activeEditor) {
-		if (designViewerActionBarContributor != null && designViewerActionBarContributor instanceof IDesignViewerActionBarContributor) {
-			designViewerActionBarContributor.setActiveEditor(multiPageEditor);
-		}
-
-		if (sourceViewerActionContributor != null && sourceViewerActionContributor instanceof ISourceViewerActionBarContributor) {
-			sourceViewerActionContributor.setActiveEditor(activeEditor);
-			((ISourceViewerActionBarContributor) sourceViewerActionContributor).setViewerSpecificContributionsEnabled(true);
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/SourcePageActionContributor.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/SourcePageActionContributor.java
deleted file mode 100644
index c283c27..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/SourcePageActionContributor.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.wst.xml.ui.internal.actions.ActionContributorXML;
-
-
-/**
- * SourcePageActionContributor
- * 
- * This class is for multi page editor's source page contributor.
- * 
- * Use XMLEditorActionContributor for single page editor.
- */
-public class SourcePageActionContributor extends ActionContributorXML {
-
-	private IActionBars fBars;
-
-	/**
-	 * This method calls:
-	 * <ul>
-	 * <li><code>contributeToMenu</code> with <code>bars</code>' menu
-	 * manager</li>
-	 * <li><code>contributeToToolBar</code> with <code>bars</code>' tool
-	 * bar manager</li>
-	 * <li><code>contributeToStatusLine</code> with <code>bars</code>'
-	 * status line manager</li>
-	 * </ul>
-	 * The given action bars are also remembered and made accessible via
-	 * <code>getActionBars</code>.
-	 * 
-	 * @param bars
-	 *            the action bars
-	 *  
-	 */
-	public void init(IActionBars bars) {
-		fBars = bars;
-		contributeToMenu(bars.getMenuManager());
-		contributeToToolBar(bars.getToolBarManager());
-		contributeToStatusLine(bars.getStatusLineManager());
-	}
-
-	/**
-	 * Returns this contributor's action bars.
-	 * 
-	 * @return the action bars
-	 */
-	public IActionBars getActionBars() {
-		return fBars;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/TreeContentHelper.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/TreeContentHelper.java
deleted file mode 100644
index 3db3af2..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/TreeContentHelper.java
+++ /dev/null
@@ -1,450 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMWriter;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.CharacterData;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-
-/**
- * This performs the work of taking a DOM tree and converting it to a
- * displayable 'UI' tree.
- * 
- * For example : - white space text nodes are ommited from the 'UI' tree -
- * adjacent Text and EntityReference nodes are combined into a single 'UI'
- * node - Elements with 'text only' children are diplayed without children
- *  
- */
-public class TreeContentHelper {
-
-	public static final int HIDE_WHITE_SPACE_TEXT_NODES = 8;
-	public static final int COMBINE_ADJACENT_TEXT_AND_ENTITY_REFERENCES = 16;
-	public static final int HIDE_ELEMENT_CHILD_TEXT_NODES = 32;
-
-	protected int style = HIDE_WHITE_SPACE_TEXT_NODES | COMBINE_ADJACENT_TEXT_AND_ENTITY_REFERENCES | HIDE_ELEMENT_CHILD_TEXT_NODES;
-
-	/**
-	 *  
-	 */
-	public boolean hasStyleFlag(int flag) {
-		return (style & flag) != 0;
-	}
-
-	/**
-	 *  
-	 */
-	public Object[] getChildren(Object element) {
-		Object[] result = null;
-
-		if (element instanceof Node) {
-			Node node = (Node) element;
-			List list = new ArrayList();
-			boolean textContentOnly = true;
-
-			NamedNodeMap map = node.getAttributes();
-			if (map != null) {
-				int length = map.getLength();
-				for (int i = 0; i < length; i++) {
-					list.add(map.item(i));
-					textContentOnly = false;
-				}
-			}
-
-			Node prevIncludedNode = null;
-			for (Node childNode = node.getFirstChild(); childNode != null; childNode = childNode.getNextSibling()) {
-				int childNodeType = childNode.getNodeType();
-				boolean includeNode = true;
-
-				if (includeNode && hasStyleFlag(HIDE_WHITE_SPACE_TEXT_NODES)) {
-					if (isIgnorableText(childNode)) {
-						// filter out the ignorable text node
-						includeNode = false;
-					}
-				}
-
-				if (includeNode && hasStyleFlag(COMBINE_ADJACENT_TEXT_AND_ENTITY_REFERENCES)) {
-					if (isTextOrEntityReferenceNode(childNode) && prevIncludedNode != null && isTextOrEntityReferenceNode(prevIncludedNode)) {
-						// we only show the first of a list of adjacent text
-						// or entity reference node in the tree
-						// so we filter out this subsequent one
-						includeNode = false;
-					}
-				}
-
-				if (hasStyleFlag(HIDE_ELEMENT_CHILD_TEXT_NODES)) {
-					if (childNodeType != Node.TEXT_NODE && childNodeType != Node.ENTITY_REFERENCE_NODE) {
-						textContentOnly = false;
-					}
-				}
-
-				if (includeNode) {
-					list.add(childNode);
-					prevIncludedNode = childNode;
-				}
-			}
-
-			if (hasStyleFlag(HIDE_ELEMENT_CHILD_TEXT_NODES) && textContentOnly) {
-				result = new Object[0];
-			} else {
-				result = list.toArray();
-			}
-		}
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	protected boolean isTextOrEntityReferenceNode(Node node) {
-		return node.getNodeType() == Node.TEXT_NODE || node.getNodeType() == Node.ENTITY_REFERENCE_NODE;
-	}
-
-	/**
-	 *  
-	 */
-	public boolean isIgnorableText(Node node) {
-		boolean result = false;
-		if (node.getNodeType() == Node.TEXT_NODE) {
-			String data = ((Text) node).getData();
-			result = (data == null || data.trim().length() == 0);
-		}
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	public boolean isCombinedTextNode(Node node) {
-		boolean result = false;
-		if (node.getNodeType() == Node.TEXT_NODE) {
-			Node nextNode = node.getNextSibling();
-			if (nextNode != null) {
-				if (nextNode.getNodeType() == Node.ENTITY_REFERENCE_NODE) {
-					result = true;
-				}
-			}
-		} else if (node.getNodeType() == Node.ENTITY_REFERENCE_NODE) {
-			result = true;
-		}
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	public List getCombinedTextNodeList(Node theNode) {
-		List list = new Vector();
-		boolean prevIsEntity = false;
-		for (Node node = theNode; node != null; node = node.getNextSibling()) {
-			int nodeType = node.getNodeType();
-			if (nodeType == Node.ENTITY_REFERENCE_NODE) {
-				prevIsEntity = true;
-				list.add(node);
-			} else if (nodeType == Node.TEXT_NODE && (prevIsEntity || node == theNode)) {
-				prevIsEntity = false;
-				list.add(node);
-			} else {
-				break;
-			}
-		}
-		return list;
-	}
-
-    public String getElementTextValue(Element element) 
-    {
-      List list = _getElementTextContent(element);
-      return list != null ? getValueForTextContent(list) : null;
-    }
-    
-    public void setElementTextValue(Element element, String value)
-    {
-      setElementNodeValue(element, value);      
-    }
-    
-    private List _getElementTextContent(Element element) {
-        List result = null;
-
-        for (Node node = element.getFirstChild(); node != null; node = node.getNextSibling()) {
-          if (node.getNodeType() == Node.TEXT_NODE || node.getNodeType() == Node.ENTITY_REFERENCE_NODE) {
-            if (result == null) {
-              result = new Vector();
-            }
-            result.add(node);
-          } else {
-            result = null;
-            break;
-          }
-        }       
-        return result;
-    }
-
-	/**
-	 * If the element is has 'text only' content this method will return the
-	 * list of elements that compose the text only content
-	 */
-	public List getElementTextContent(Element element) {
-		List result = null;
-		if (!element.hasAttributes()) {
-			result = _getElementTextContent(element);
-		}
-		return result;
-	}
-
-    
-	/**
-	 *  
-	 */
-	public String getNodeValue(Node node) {
-		String result = null;
-		int nodeType = node.getNodeType();
-		switch (nodeType) {
-			case Node.ATTRIBUTE_NODE : {
-				result = ((Attr) node).getValue();
-				break;
-			}
-			case Node.CDATA_SECTION_NODE :
-			// drop thru
-			case Node.COMMENT_NODE : {
-				result = ((CharacterData) node).getData();
-				break;
-			}
-			case Node.DOCUMENT_TYPE_NODE : {
-				result = getDocumentTypeValue((DocumentType) node);
-				break;
-			}
-			case Node.ELEMENT_NODE : {
-				result = getElementNodeValue((Element) node);
-				break;
-			}
-			case Node.ENTITY_REFERENCE_NODE :
-			// drop thru
-			case Node.TEXT_NODE : {
-				result = getTextNodeValue(node);
-				break;
-			}
-			case Node.PROCESSING_INSTRUCTION_NODE : {
-				result = ((ProcessingInstruction) node).getData();
-				break;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	public void setNodeValue(Node node, String value) {
-		int nodeType = node.getNodeType();
-		try {
-			switch (nodeType) {
-				case Node.ATTRIBUTE_NODE : {
-					((Attr) node).setValue(value);
-					break;
-				}
-				case Node.CDATA_SECTION_NODE :
-				// drop thru
-				case Node.COMMENT_NODE : {
-					((CharacterData) node).setData(value);
-					break;
-				}
-				case Node.ELEMENT_NODE : {
-					setElementNodeValue((Element) node, value);
-					break;
-				}
-				case Node.ENTITY_REFERENCE_NODE :
-				// drop thru
-				case Node.TEXT_NODE : {
-					setTextNodeValue(node, value);
-					break;
-				}
-				case Node.PROCESSING_INSTRUCTION_NODE : {
-					((ProcessingInstruction) node).setData(value);
-					break;
-				}
-			}
-		} catch (DOMException e) {
-			Display d = getDisplay();
-			if (d != null)
-				d.beep();
-		}
-	}
-
-	private Display getDisplay() {
-
-		return PlatformUI.getWorkbench().getDisplay();
-	}
-
-
-	/**
-	 *  
-	 */
-	protected String getDocumentTypeValue(DocumentType documentType) {
-		return DOMWriter.getDocumentTypeData(documentType);
-	}
-
-	/**
-	 *  
-	 */
-	protected String getElementNodeValue(Element element) {
-		String result = null;
-		List list = getElementTextContent(element);
-		if (list != null) {
-			result = getValueForTextContent(list);
-		}
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	protected void setElementNodeValue(Element element, String value) {
-		List list = getElementTextContent(element);
-		if (list != null) {
-			setValueForTextContent(list, value);
-		} else {
-			Document document = element.getOwnerDocument();
-			Text text = document.createTextNode(value);
-			element.appendChild(text);
-		}
-	}
-
-	/**
-	 *  
-	 */
-	protected String getTextNodeValue(Node node) {
-		String result = null;
-		List list = null;
-		if (isCombinedTextNode(node)) {
-			list = getCombinedTextNodeList(node);
-		} else {
-			list = new Vector();
-			list.add(node);
-		}
-		result = getValueForTextContent(list);
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	protected void setTextNodeValue(Node node, String value) {
-		List list = null;
-		if (isCombinedTextNode(node)) {
-			list = getCombinedTextNodeList(node);
-		} else {
-			list = new Vector();
-			list.add(node);
-		}
-		setValueForTextContent(list, value);
-	}
-
-	public Text getEffectiveTextNodeForCombinedNodeList(List list) {
-		Text result = null;
-		for (Iterator i = list.iterator(); i.hasNext();) {
-			Node node = (Node) i.next();
-			if (node.getNodeType() == Node.TEXT_NODE) {
-				result = (Text) node;
-				break;
-			}
-		}
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	protected String getValueForTextContent(List list) {
-		String result = null;
-		if (list.size() > 0) {
-			IDOMNode first = (IDOMNode) list.get(0);
-			IDOMNode last = (IDOMNode) list.get(list.size() - 1);
-			IDOMModel model = first.getModel();
-			int start = first.getStartOffset();
-			int end = last.getEndOffset();
-			try {
-				result = model.getStructuredDocument().get(start, end - start);
-			} catch (Exception e) {
-			}
-		}
-
-		// we trim the content so that it looks nice when viewed
-		// we need to be carfull to preserve the 'trimmed' text when the value
-		// is set (see setValueForTextContent)
-		if (result != null) {
-			result = result.trim();
-		}
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	protected void setValueForTextContent(List list, String value) {
-		//String oldValue = getValueForTextContent();
-		// we worry about preserving trimmed text
-		if (list.size() > 0) {
-			IDOMNode first = (IDOMNode) list.get(0);
-			IDOMNode last = (IDOMNode) list.get(list.size() - 1);
-			int start = first.getStartOffset();
-			int end = last.getEndOffset();
-			first.getModel().getStructuredDocument().replaceText(this, start, end - start, value);
-		}
-	}
-
-	/**
-	 *  
-	 */
-	public boolean isEditable(Node node) {
-		int nodeType = node.getNodeType();
-		boolean result = false;
-		switch (nodeType) {
-			case Node.ATTRIBUTE_NODE :
-			// drop thru
-			case Node.CDATA_SECTION_NODE :
-			// drop thru
-			case Node.COMMENT_NODE :
-			// drop thru
-			case Node.ENTITY_REFERENCE_NODE :
-			// drop thru
-			case Node.TEXT_NODE :
-			// drop thru
-			case Node.PROCESSING_INSTRUCTION_NODE : {
-				result = true;
-				break;
-			}
-			case Node.ELEMENT_NODE : {
-				result = getElementTextContent((Element) node) != null || node.getChildNodes().getLength() == 0;
-				break;
-			}
-		}
-		return result;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/TreeExtension.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/TreeExtension.java
deleted file mode 100644
index ea03d96..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/TreeExtension.java
+++ /dev/null
@@ -1,553 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-
-
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.ScrollBar;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.PlatformUI;
-
-
-public class TreeExtension implements PaintListener {
-
-	protected Tree fTree;
-	protected EditManager editManager;
-	protected String[] fColumnProperties;
-	protected ICellModifier cellModifier;
-	protected int columnPosition = 300;
-	protected int columnHitWidth = 5;
-	protected Color tableLineColor;
-	protected int controlWidth;
-	protected DelayedDrawTimer delayedDrawTimer;
-	private boolean fisUnsupportedInput = false;
-
-	public TreeExtension(Tree tree) {
-		this.fTree = tree;
-		InternalMouseListener listener = new InternalMouseListener();
-		tree.addMouseMoveListener(listener);
-		tree.addMouseListener(listener);
-		tree.addPaintListener(this);
-		editManager = new EditManager(tree);
-		delayedDrawTimer = new DelayedDrawTimer(tree);
-
-		tableLineColor = tree.getDisplay().getSystemColor(SWT.COLOR_WIDGET_LIGHT_SHADOW);
-	}
-
-	public void dispose() {
-		tableLineColor.dispose();
-	}
-
-	public void setCellModifier(ICellModifier modifier) {
-		cellModifier = modifier;
-	}
-
-	public void resetCachedData() {
-		// todo: sure seems we should reset something?
-	}
-
-	public ICellModifier getCellModifier() {
-		return cellModifier;
-	}
-
-	public List getItemList() {
-		List list = new Vector();
-		getItemListHelper(fTree.getItems(), list);
-		return list;
-	}
-
-	protected void getItemListHelper(TreeItem[] items, List list) {
-		for (int i = 0; i < items.length; i++) {
-			TreeItem item = items[i];
-			list.add(item);
-			getItemListHelper(item.getItems(), list);
-		}
-	}
-
-	protected TreeItem getTreeItemOnRow(int px, int py) {
-		TreeItem result = null;
-		List list = getItemList();
-		for (Iterator i = list.iterator(); i.hasNext();) {
-			TreeItem item = (TreeItem) i.next();
-			Rectangle r = item.getBounds();
-			if (r != null && px >= r.x && py >= r.y && py <= r.y + r.height) {
-				result = item;
-			}
-		}
-		return result;
-	}
-
-	protected class InternalMouseListener extends MouseAdapter implements MouseMoveListener {
-		protected int columnDragged = -1;
-		protected boolean isDown = false;
-		protected int prevX = -1;
-		protected Cursor cursor = null;
-
-		public void mouseMove(MouseEvent e) {
-			if (e.x > columnPosition - columnHitWidth && e.x < columnPosition + columnHitWidth) {
-				if (cursor == null) {
-					cursor = new Cursor(fTree.getDisplay(), SWT.CURSOR_SIZEWE);
-					fTree.setCursor(cursor);
-				}
-			}
-			else {
-				if (cursor != null) {
-					fTree.setCursor(null);
-					cursor.dispose();
-					cursor = null;
-				}
-			}
-
-			if (columnDragged != -1) {
-				// using the delay timer will make redraws less flickery
-				if (e.x > 20) {
-					columnPosition = e.x;
-					delayedDrawTimer.reset(20);
-				}
-			}
-		}
-
-		public void mouseDown(MouseEvent e) {
-			// here we handle the column resizing by detect if the user has
-			// click on a column separator
-			//
-			columnDragged = -1;
-			editManager.deactivateCellEditor();
-
-			if (e.x > columnPosition - columnHitWidth && e.x < columnPosition + columnHitWidth) {
-				columnDragged = 0;
-			}
-
-			// here we handle selecting tree items when any thing on the 'row'
-			// is clicked
-			//
-			TreeItem item = fTree.getItem(new Point(e.x, e.y));
-			if (item == null) {
-				item = getTreeItemOnRow(e.x, e.y);
-				if (item != null) {
-					TreeItem[] items = new TreeItem[1];
-					items[0] = item;
-					fTree.setSelection(items);
-				}
-			}
-		}
-
-		public void mouseUp(MouseEvent e) {
-			columnDragged = -1;
-		}
-	}
-
-	public String[] getColumnProperties() {
-		return fColumnProperties;
-	}
-
-	public void setColumnProperties(String[] columnProperties) {
-		this.fColumnProperties = columnProperties;
-	}
-
-	public void paintControl(PaintEvent event) {
-		GC gc = event.gc;
-		Rectangle treeBounds = fTree.getBounds();
-
-		controlWidth = treeBounds.width;
-		Color bg = fTree.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-		Color bg2 = fTree.getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION);
-
-		gc.setBackground(bg2);
-
-		// // This next part causes problems on LINUX, so let's not do it
-		// there
-		// if (B2BHacks.IS_UNIX == false) {
-		// TreeItem[] selectedItems = tree.getSelection();
-		// if (selectedItems.length > 0) {
-		// for (int i = 0; i < selectedItems.length; i++) {
-		// TreeItem item = selectedItems[i];
-		// Rectangle bounds = item.getBounds();
-		// if (bounds != null) {
-		// gc.fillRectangle(bounds.x + bounds.width, bounds.y, controlWidth,
-		// bounds.height);
-		// }
-		// }
-		// }
-		// }
-		//
-		if (!fisUnsupportedInput) {
-			TreeItem[] items = fTree.getItems();
-			if (items.length > 0) {
-				gc.setForeground(tableLineColor);
-				gc.setBackground(bg);
-
-				gc.fillRectangle(columnPosition, treeBounds.x, treeBounds.width, treeBounds.height);
-
-				Rectangle itemBounds = items[0].getBounds();
-				int height = computeTreeItemHeight();
-
-				if (itemBounds != null) {
-					/*
-					 * Bounds will be for the first item, which will either be
-					 * visible at the top of the Tree, or scrolled off with
-					 * negative values
-					 */
-					int startY = itemBounds.y;
-
-					/* Only draw lines within the Tree boundaries */
-					for (int i = startY; i < treeBounds.height; i += height) {
-						if (i >= treeBounds.y) {
-							gc.drawLine(0, i, treeBounds.width, i);
-						}
-					}
-				}
-				gc.drawLine(columnPosition, 0, columnPosition, treeBounds.height);
-				paintItems(gc, items, treeBounds);
-
-			}
-			else {
-				addEmptyTreeMessage(gc);
-			}
-		}
-		else {
-			addUnableToPopulateTreeMessage(gc);
-		}
-	}
-
-	protected int computeTreeItemHeight() {
-		int result = -1;
-
-		/*
-		 * On GTK tree.getItemHeight() seems to lie to us. It reports that the
-		 * tree item occupies a few pixles less vertical space than it should
-		 * (possibly because of the image height vs. the text height?). This
-		 * foils our code that draws the 'row' lines since we assume that
-		 * lines should be drawn at 'itemHeight' increments. Don't trust
-		 * getItemHeight() to compute the increment... instead compute the
-		 * value based on distance between two TreeItems, and then use the
-		 * larger value.
-		 * 
-		 * This strategy only works on trees where the items are of even
-		 * height, however bug
-		 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=117201 indicates that
-		 * this is no longer promised, at least on win32 and likely on other
-		 * platforms soon.
-		 */
-		if (fTree.getItemCount() > 0) {
-			TreeItem[] items = fTree.getItems();
-			Rectangle itemBounds = items[0].getBounds();
-
-			if (items[0].getExpanded()) {
-				TreeItem[] children = items[0].getItems();
-				if (children.length > 0) {
-					result = children[0].getBounds().y - itemBounds.y;
-				}
-			}
-			else if (items.length > 1) {
-				result = items[1].getBounds().y - itemBounds.y;
-			}
-		}
-
-		result = Math.max(fTree.getItemHeight(), result);
-		return result;
-	}
-
-	protected void addEmptyTreeMessage(GC gc) {
-		// nothing to add here
-	}
-
-	private void addUnableToPopulateTreeMessage(GC gc) {
-		// here we print a message when the document cannot be displayed just
-		// to give the
-		// user a visual cue
-		// so that they know how to proceed to edit the blank view
-		gc.setForeground(fTree.getDisplay().getSystemColor(SWT.COLOR_BLACK));
-		gc.setBackground(fTree.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-		gc.drawString(XMLEditorMessages.TreeExtension_0, 10, 10);
-	}
-
-	void setIsUnsupportedInput(boolean isUnsupported) {
-		fisUnsupportedInput = isUnsupported;
-	}
-
-	public void paintItems(GC gc, TreeItem[] items, Rectangle treeBounds) {
-		if (items != null) {
-			for (int i = 0; i < items.length; i++) {
-				TreeItem item = items[i];
-				if (item != null) {
-					Rectangle bounds = item.getBounds();
-					if (bounds != null) {
-						if (treeBounds.intersects(bounds)) {
-							paintItem(gc, item, bounds);
-						}
-					}
-
-					// defect 241039
-					//
-					if (item.getExpanded()) {
-						paintItems(gc, item.getItems(), treeBounds);
-					}
-				}
-			}
-		}
-	}
-
-	protected void paintItem(GC gc, TreeItem item, Rectangle bounds) {
-		// nothing to paint
-	}
-
-	public interface ICellEditorProvider {
-		CellEditor getCellEditor(Object o, int col);
-	}
-
-	/**
-	 * This class is used to improve drawing during a column resize.
-	 */
-	public class DelayedDrawTimer implements Runnable {
-		protected Control control;
-
-		public DelayedDrawTimer(Control control1) {
-			this.control = control1;
-		}
-
-		public void reset(int milliseconds) {
-			getDisplay().timerExec(milliseconds, this);
-		}
-
-		public void run() {
-			control.redraw();
-		}
-	}
-
-	Display getDisplay() {
-
-		return PlatformUI.getWorkbench().getDisplay();
-	}
-
-	/**
-	 * EditManager
-	 */
-	public class EditManager {
-		protected Tree fTree1;
-		protected Control cellEditorHolder;
-		protected CellEditorState cellEditorState;
-
-		public EditManager(Tree tree) {
-			this.fTree1 = tree;
-			this.cellEditorHolder = new Composite(tree, SWT.NONE);
-
-			final Tree theTree = tree;
-
-			MouseAdapter theMouseAdapter = new MouseAdapter() {
-				public void mouseDown(MouseEvent e) {
-					deactivateCellEditor();
-
-					if (e.x > columnPosition + columnHitWidth) {
-						TreeItem[] items = theTree.getSelection();
-						// No edit if more than one row is selected.
-						if (items.length == 1) {
-							Rectangle bounds = items[0].getBounds();
-							if (bounds != null && e.y >= bounds.y && e.y <= bounds.y + bounds.height) {
-								int columnToEdit = 1;
-								activateCellEditor(items[0], columnToEdit);
-							}
-						}
-					}
-				}
-			};
-
-			SelectionListener selectionListener = new SelectionListener() {
-				public void widgetDefaultSelected(SelectionEvent e) {
-					applyCellEditorValue();
-				}
-
-				public void widgetSelected(SelectionEvent e) {
-					applyCellEditorValue();
-				}
-			};
-
-			KeyListener keyListener = new KeyAdapter() {
-				public void keyPressed(KeyEvent e) {
-					if (e.character == SWT.CR) {
-						deactivateCellEditor();
-						TreeItem[] items = theTree.getSelection();
-						if (items.length == 1) {
-							activateCellEditor(items[0], 1);
-						}
-					}
-				}
-			};
-
-			tree.addMouseListener(theMouseAdapter);
-			tree.addKeyListener(keyListener);
-			ScrollBar hBar = tree.getHorizontalBar();
-			if (hBar != null)
-				hBar.addSelectionListener(selectionListener);
-			ScrollBar vBar = tree.getVerticalBar();
-			if (vBar != null)
-				vBar.addSelectionListener(selectionListener);
-		}
-
-		public boolean isCellEditorActive() {
-			return cellEditorState != null;
-		}
-
-		public void applyCellEditorValue() {
-			if (cellEditorState != null && cellModifier != null) {
-				TreeItem treeItem = cellEditorState.fTreeItem;
-
-				// The area below the cell editor needs to be explicity
-				// repainted on Linux
-				//
-				// Rectangle r = B2BHacks.IS_UNIX ? treeItem.getBounds() :
-				// null;
-
-				Object value = cellEditorState.fCellEditor.getValue();
-				String property = cellEditorState.fProperty;
-
-				deactivateCellEditor();
-
-				cellModifier.modify(treeItem, property, value);
-
-				// if (r != null) {
-				// tree.redraw(r.x, r.y, tree.getBounds().width, r.height,
-				// false);
-				// }
-			}
-		}
-
-		public void deactivateCellEditor() {
-			// Clean up any previous editor control
-			if (cellEditorState != null) {
-				cellEditorState.deactivate();
-				cellEditorState = null;
-			}
-		}
-
-		public void activateCellEditor(TreeItem treeItem, int column) {
-			if (cellModifier instanceof ICellEditorProvider) {
-				ICellEditorProvider cellEditorProvider = (ICellEditorProvider) cellModifier;
-				Object data = treeItem.getData();
-				if (fColumnProperties.length > column) {
-					String property = fColumnProperties[column];
-					if (cellModifier.canModify(data, property)) {
-						CellEditor newCellEditor = cellEditorProvider.getCellEditor(data, column);
-						if (newCellEditor != null) {
-							// The control that will be the editor must be a
-							// child of the columnPosition
-							Control control = newCellEditor.getControl();
-							if (control != null) {
-								cellEditorState = new CellEditorState(newCellEditor, control, treeItem, column, property);
-								cellEditorState.activate();
-							}
-						}
-					}
-				}
-			}
-		}
-
-		/**
-		 * this class holds the state that is need on a per cell editor
-		 * invocation basis
-		 */
-		public class CellEditorState implements ICellEditorListener, FocusListener {
-			public CellEditor fCellEditor;
-			public Control fControl;
-			public TreeItem fTreeItem;
-			public int fColumnNumber;
-			public String fProperty;
-
-			public CellEditorState(CellEditor cellEditor, Control control, TreeItem treeItem, int columnNumber, String property) {
-				this.fCellEditor = cellEditor;
-				this.fControl = control;
-				this.fTreeItem = treeItem;
-				this.fColumnNumber = columnNumber;
-				this.fProperty = property;
-			}
-
-			public void activate() {
-				Object element = fTreeItem.getData();
-				String value = cellModifier.getValue(element, fProperty).toString();
-				if (fControl instanceof Text) {
-					Text text = (Text) fControl;
-					int requiredSize = value.length() + 100;
-					if (text.getTextLimit() < requiredSize) {
-						text.setTextLimit(requiredSize);
-					}
-				}
-				Rectangle r = fTreeItem.getBounds();
-				if (r != null) {
-					fControl.setBounds(columnPosition + 5, r.y + 1, fTree1.getClientArea().width - (columnPosition + 5), r.height - 1);
-					fControl.setVisible(true);
-					fCellEditor.setValue(value);
-					fCellEditor.addListener(this);
-					fCellEditor.setFocus();
-					fControl.addFocusListener(this);
-				}
-			}
-
-			public void deactivate() {
-				fCellEditor.removeListener(this);
-				fControl.removeFocusListener(this);
-				fCellEditor.deactivate();
-				fTree1.forceFocus();
-			}
-
-			// ICellEditorListener methods
-			//
-			public void applyEditorValue() {
-				applyCellEditorValue();
-			}
-
-			public void cancelEditor() {
-				deactivateCellEditor();
-			}
-
-			public void editorValueChanged(boolean oldValidState, boolean newValidState) {
-				// nothing, for now
-			}
-
-			// FocusListener methods
-			//
-			public void focusGained(FocusEvent e) {
-				// do nothing
-			}
-
-			public void focusLost(FocusEvent e) {
-				applyCellEditorValue();
-			}
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/ViewerExpandCollapseAction.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/ViewerExpandCollapseAction.java
deleted file mode 100644
index 785ddfa..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/ViewerExpandCollapseAction.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.AbstractTreeViewer;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-public class ViewerExpandCollapseAction extends Action {
-
-	protected boolean isExpandAction;
-	protected AbstractTreeViewer viewer = null;
-
-	public ViewerExpandCollapseAction(boolean isExpandAction) {
-		this.isExpandAction = isExpandAction;
-		if (isExpandAction) {
-			ImageDescriptor e_imageDescriptor = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_ETOOL_EXPANDALL);
-			ImageDescriptor d_imageDescriptor = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_DTOOL_EXPANDALL);
-
-			setImageDescriptor(e_imageDescriptor);
-			setDisabledImageDescriptor(d_imageDescriptor);
-			setToolTipText(XMLUIMessages._UI_INFO_EXPAND_ALL); //$NON-NLS-1$
-		} else {
-			ImageDescriptor e_imageDescriptor = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_ETOOL_COLLAPSEALL);
-			ImageDescriptor d_imageDescriptor = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_DTOOL_COLLAPSEALL);
-
-			setImageDescriptor(e_imageDescriptor);
-			setDisabledImageDescriptor(d_imageDescriptor);
-			setToolTipText(XMLUIMessages._UI_INFO_COLLAPSE_ALL); //$NON-NLS-1$
-		}
-	}
-
-	public void setViewer(AbstractTreeViewer viewer) {
-		this.viewer = viewer;
-	}
-
-	public void run() {
-		if (viewer != null) {
-			// temporarily set the visibility to false
-			// this has a HUGE performance benefit
-			boolean isVisible = viewer.getControl().getVisible();
-			viewer.getControl().setVisible(false);
-
-			if (isExpandAction) {
-				viewer.expandAll();
-			} else {
-				viewer.collapseAll();
-			}
-
-			// restore the previous visibility state
-			// 
-			viewer.getControl().setVisible(isVisible);
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorActionDefinitionIds.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorActionDefinitionIds.java
deleted file mode 100644
index f7568ca..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorActionDefinitionIds.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-
-
-/**
- * Defines the definitions ids for the XML editor actions.
- * 
- * @deprecated Use org.eclipse.wst.sse.ui.edit.util.ActionDefinitionIds instead
- */
-public interface XMLEditorActionDefinitionIds {
-	public final static String CLEANUP_DOCUMENT = "org.eclipse.wst.sse.ui.edit.ui.cleanup.document";//$NON-NLS-1$
-	public final static String FORMAT_DOCUMENT = "org.eclipse.wst.sse.ui.edit.ui.format.document";//$NON-NLS-1$
-	public final static String FORMAT_ACTIVE_ELEMENTS = "org.eclipse.wst.sse.ui.edit.ui.format.active.elements";//$NON-NLS-1$
-	public final static String OPEN_FILE = "org.eclipse.wst.sse.ui.edit.ui.open.file.from.source";//$NON-NLS-1$
-	//	public final static String INFORMATION =
-	// "org.eclipse.wst.sse.ui.edit.ui.show.tooltip.information";//$NON-NLS-1$
-	public final static String INFORMATION = "org.eclipse.jdt.ui.edit.text.java.show.javadoc";//$NON-NLS-1$
-	public final static String ADD_BREAKPOINTS = "org.eclipse.wst.sse.ui.edit.ui.add.breakpoints";//$NON-NLS-1$
-	public final static String MANAGE_BREAKPOINTS = "org.eclipse.wst.sse.ui.edit.ui.manage.breakpoints";//$NON-NLS-1$
-	public final static String ENABLE_BREAKPOINTS = "org.eclipse.wst.sse.ui.edit.ui.enable.breakpoints";//$NON-NLS-1$
-	public final static String DISABLE_BREAKPOINTS = "org.eclipse.wst.sse.ui.edit.ui.disable.breakpoints";//$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorMessages.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorMessages.java
deleted file mode 100644
index 36d0be8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorMessages.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XML Editor
- * 
- * @plannedfor 1.0
- */
-public class XMLEditorMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.ui.internal.tabletree.XMLEditorResources";//$NON-NLS-1$
-
-	public static String XMLTableTreeViewer_0;
-	public static String XMLMultiPageEditorPart_0;
-	public static String XMLTreeExtension_0;
-	public static String XMLTreeExtension_1;
-	public static String XMLTreeExtension_3;
-	public static String XMLTreeExtension_4;
-	public static String XMLTableTreeActionBarContributor_0;
-	public static String XMLTableTreeActionBarContributor_1;
-	public static String XMLTableTreeActionBarContributor_2;
-	public static String XMLTableTreeActionBarContributor_3;
-	public static String XMLTableTreeActionBarContributor_4;
-	public static String XMLTableTreeActionBarContributor_5;
-	public static String XMLTableTreeActionBarContributor_6;
-	public static String XMLTableTreeActionBarContributor_7;
-	public static String XMLTableTreeActionBarContributor_8;
-	public static String An_error_has_occurred_when1_ERROR_;
-	public static String Resource__does_not_exist;
-	public static String Editor_could_not_be_open;
-	public static String TreeExtension_0;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, XMLEditorMessages.class);
-	}
-	
-	private XMLEditorMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginHOLD_OLD.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginHOLD_OLD.java
deleted file mode 100644
index 6fa19db..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginHOLD_OLD.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryImpl;
-
-/**
- * @deprecated This plugin has combined with the org.eclipse.wst.xml.ui plugin.
- *             Use XMLUIPlugin instead.
- */
-public class XMLEditorPluginHOLD_OLD extends AbstractUIPlugin {
-
-	public final static String PLUGIN_ID = "org.eclipse.wst.xml.ui.internal.XMLEditorPluginHOLD_OLD"; //$NON-NLS-1$
-	protected static XMLEditorPluginHOLD_OLD instance = null;
-
-	/**
-	 * XMLUIPlugin constructor comment.
-	 */
-	public XMLEditorPluginHOLD_OLD() {
-		super();
-		instance = this;
-
-		// reference the preference store so
-		// initializeDefaultPreferences(IPreferenceStore preferenceStore) is
-		// called
-		getPreferenceStore();
-	}
-
-	public static XMLEditorPluginHOLD_OLD getDefault() {
-		return instance;
-	}
-
-	public synchronized static XMLEditorPluginHOLD_OLD getInstance() {
-		return instance;
-	}
-
-	public AdapterFactoryRegistry getAdapterFactoryRegistry() {
-		return AdapterFactoryRegistryImpl.getInstance();
-
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginImageHelper.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginImageHelper.java
deleted file mode 100644
index 4b5f8d3..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginImageHelper.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-/**
- * Helper class to handle images provided by this plug-in.
- * 
- * NOTE: For internal use only. For images used externally, please use the
- * Shared***ImageHelper class instead.
- * 
- * @author amywu
- */
-public class XMLEditorPluginImageHelper {
-	private final String PLUGINID = XMLUIPlugin.ID;
-	private static XMLEditorPluginImageHelper instance = null;
-
-	//	 save a descriptor for each image
-	private HashMap fImageDescRegistry = null;
-
-	/**
-	 * Gets the instance.
-	 * 
-	 * @return Returns a XMLEditorPluginImageHelper
-	 */
-	public synchronized static XMLEditorPluginImageHelper getInstance() {
-		if (instance == null)
-			instance = new XMLEditorPluginImageHelper();
-		return instance;
-	}
-
-	/**
-	 * Retrieves the image associated with resource from the image registry.
-	 * If the image cannot be retrieved, attempt to find and load the image at
-	 * the location specified in resource.
-	 * 
-	 * @param resource
-	 *            the image to retrieve
-	 * @return Image the image associated with resource or null if one could
-	 *         not be found
-	 */
-	public Image getImage(String resource) {
-		Image image = getImageRegistry().get(resource);
-		if (image == null) {
-			// create an image
-			image = createImage(resource);
-		}
-		return image;
-	}
-
-	/**
-	 * Retrieves the image descriptor associated with resource from the image
-	 * descriptor registry. If the image descriptor cannot be retrieved,
-	 * attempt to find and load the image descriptor at the location specified
-	 * in resource.
-	 * 
-	 * @param resource
-	 *            the image descriptor to retrieve
-	 * @return ImageDescriptor the image descriptor assocated with resource or
-	 *         the default "missing" image descriptor if one could not be
-	 *         found
-	 */
-	public ImageDescriptor getImageDescriptor(String resource) {
-		ImageDescriptor imageDescriptor = null;
-		Object o = getImageDescriptorRegistry().get(resource);
-		if (o == null) {
-			//create a descriptor
-			imageDescriptor = createImageDescriptor(resource);
-		} else {
-			imageDescriptor = (ImageDescriptor) o;
-		}
-		return imageDescriptor;
-	}
-
-	/**
-	 * Returns the image descriptor registry for this plugin.
-	 * 
-	 * @return HashMap - image descriptor registry for this plugin
-	 */
-	private HashMap getImageDescriptorRegistry() {
-		if (fImageDescRegistry == null)
-			fImageDescRegistry = new HashMap();
-		return fImageDescRegistry;
-	}
-
-	/**
-	 * Returns the image registry for this plugin.
-	 * 
-	 * @return ImageRegistry - image registry for this plugin
-	 */
-	private ImageRegistry getImageRegistry() {
-		return JFaceResources.getImageRegistry();
-	}
-
-	/**
-	 * Creates an image from the given resource and adds the image to the
-	 * image registry.
-	 * 
-	 * @param resource
-	 * @return Image
-	 */
-	private Image createImage(String resource) {
-		ImageDescriptor desc = getImageDescriptor(resource);
-		Image image = null;
-
-		if (desc != null) {
-			image = desc.createImage();
-			// dont add the missing image descriptor image to the image
-			// registry
-			if (!desc.equals(ImageDescriptor.getMissingImageDescriptor()))
-				getImageRegistry().put(resource, image);
-		}
-		return image;
-	}
-
-	/**
-	 * Creates an image descriptor from the given imageFilePath and adds the
-	 * image descriptor to the image descriptor registry. If an image
-	 * descriptor could not be created, the default "missing" image descriptor
-	 * is returned but not added to the image descriptor registry.
-	 * 
-	 * @param imageFilePath
-	 * @return ImageDescriptor image descriptor for imageFilePath or default
-	 *         "missing" image descriptor if resource could not be found
-	 */
-	private ImageDescriptor createImageDescriptor(String imageFilePath) {
-		ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(PLUGINID, imageFilePath);
-		if (imageDescriptor != null) {
-			getImageDescriptorRegistry().put(imageFilePath, imageDescriptor);
-		} else {
-			imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
-		}
-
-		return imageDescriptor;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginImages.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginImages.java
deleted file mode 100644
index eb8f84b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorPluginImages.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-/**
- * Bundle of most images used by the XML Editor plug-in.
- */
-public class XMLEditorPluginImages {
-	public static final String IMG_DTOOL_COLLAPSE = "icons/full/dtool16/collapse.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_COLLAPSE = "icons/full/etool16/collapse.gif"; //$NON-NLS-1$
-	public static final String IMG_DTOOL_COLLAPSEALL = "icons/full/dtool16/collapse_all.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_COLLAPSEALL = "icons/full/etool16/collapse_all.gif"; //$NON-NLS-1$
-	public static final String IMG_DTOOL_EXPAND = "icons/full/dtool16/expand.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_EXPAND = "icons/full/etool16/expand.gif"; //$NON-NLS-1$
-	public static final String IMG_DTOOL_EXPANDALL = "icons/full/dtool16/expand_all.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_EXPANDALL = "icons/full/etool16/expand_all.gif"; //$NON-NLS-1$
-	public static final String IMG_DTOOL_NEW_XML = "icons/full/dtool16/new_xml.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_NEW_XML = "icons/full/etool16/new_xml.gif"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorResources.properties b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorResources.properties
deleted file mode 100644
index d22d022..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLEditorResources.properties
+++ /dev/null
@@ -1,30 +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
-###############################################################################
-XMLTableTreeViewer_0=Design
-XMLMultiPageEditorPart_0=Source
-XMLTreeExtension_0=Structure
-XMLTreeExtension_1=Value
-XMLTreeExtension_3=The document is empty.
-XMLTreeExtension_4=Right mouse click here to insert content.
-XMLTableTreeActionBarContributor_0=&XML
-XMLTableTreeActionBarContributor_1=&Expand All
-XMLTableTreeActionBarContributor_2=&Collapse All
-XMLTableTreeActionBarContributor_3=Turn Grammar Constraints Off
-XMLTableTreeActionBarContributor_4=&Turn Grammar Constraints Off
-XMLTableTreeActionBarContributor_5=Turn Grammar Constraints On
-XMLTableTreeActionBarContributor_6=&Turn Grammar Constraints On
-XMLTableTreeActionBarContributor_7=Reload Dependencies
-XMLTableTreeActionBarContributor_8=&Reload Dependencies
-##
-An_error_has_occurred_when1_ERROR_=An error has occurred when initializing the input for the the editor's source page.
-Resource__does_not_exist=Resource {0} does not exist.
-Editor_could_not_be_open=Editor could not be open on {0}
-TreeExtension_0=Cannot display document contents.
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLMultiPageEditorActionBarContributor.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLMultiPageEditorActionBarContributor.java
deleted file mode 100644
index 4683c54..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLMultiPageEditorActionBarContributor.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.sse.ui.internal.ISourceViewerActionBarContributor;
-
-
-public class XMLMultiPageEditorActionBarContributor extends SourceEditorActionBarContributor {
-
-	private boolean needsMultiInit = true;
-
-	public XMLMultiPageEditorActionBarContributor() {
-		super();
-	}
-
-	protected void initDesignViewerActionBarContributor(IActionBars actionBars) {
-		super.initDesignViewerActionBarContributor(actionBars);
-
-		if (designViewerActionBarContributor != null)
-			if (designViewerActionBarContributor instanceof IDesignViewerActionBarContributor)
-				((IDesignViewerActionBarContributor) designViewerActionBarContributor).initViewerSpecificContributions(actionBars);
-	}
-
-	protected void activateDesignPage(IEditorPart activeEditor) {
-		if (sourceViewerActionContributor != null && sourceViewerActionContributor instanceof ISourceViewerActionBarContributor) {
-			// if design page is not really an IEditorPart, activeEditor ==
-			// null, so pass in multiPageEditor instead (d282414)
-			if (activeEditor == null) {
-				sourceViewerActionContributor.setActiveEditor(multiPageEditor);
-			} else {
-				sourceViewerActionContributor.setActiveEditor(activeEditor);
-			}
-			((ISourceViewerActionBarContributor) sourceViewerActionContributor).setViewerSpecificContributionsEnabled(false);
-		}
-
-		if (designViewerActionBarContributor != null && designViewerActionBarContributor instanceof IDesignViewerActionBarContributor) {
-			designViewerActionBarContributor.setActiveEditor(multiPageEditor);
-			((IDesignViewerActionBarContributor) designViewerActionBarContributor).setViewerSpecificContributionsEnabled(true);
-		}
-	}
-
-	protected void activateSourcePage(IEditorPart activeEditor) {
-		if (designViewerActionBarContributor != null && designViewerActionBarContributor instanceof IDesignViewerActionBarContributor) {
-			designViewerActionBarContributor.setActiveEditor(multiPageEditor);
-			((IDesignViewerActionBarContributor) designViewerActionBarContributor).setViewerSpecificContributionsEnabled(false);
-		}
-
-		if (sourceViewerActionContributor != null && sourceViewerActionContributor instanceof ISourceViewerActionBarContributor) {
-			sourceViewerActionContributor.setActiveEditor(activeEditor);
-			((ISourceViewerActionBarContributor) sourceViewerActionContributor).setViewerSpecificContributionsEnabled(true);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorActionBarContributor#init(org.eclipse.ui.IActionBars)
-	 */
-	public void init(IActionBars actionBars) {
-		super.init(actionBars);
-		needsMultiInit = true;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorActionBarContributor#setActiveEditor(org.eclipse.ui.IEditorPart)
-	 */
-	public void setActiveEditor(IEditorPart targetEditor) {
-		if (needsMultiInit) {
-			designViewerActionBarContributor = new XMLTableTreeActionBarContributor();
-			initDesignViewerActionBarContributor(getActionBars());
-			needsMultiInit = false;
-		}
-		super.setActiveEditor(targetEditor);
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLMultiPageEditorPart.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLMultiPageEditorPart.java
deleted file mode 100644
index eb0aca8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLMultiPageEditorPart.java
+++ /dev/null
@@ -1,796 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPartListener;
-import org.eclipse.ui.IPartService;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWindowListener;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.IGotoMarker;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageEditorSite;
-import org.eclipse.ui.part.MultiPageSelectionProvider;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.xml.core.internal.provisional.IXMLPreferenceNames;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-public class XMLMultiPageEditorPart extends MultiPageEditorPart {
-
-	/**
-	 * Internal part activation listener, copied from AbstractTextEditor
-	 */
-	class ActivationListener implements IPartListener, IWindowListener {
-
-		/** Cache of the active workbench part. */
-		private IWorkbenchPart fActivePart;
-		/** Indicates whether activation handling is currently be done. */
-		private boolean fIsHandlingActivation = false;
-		/**
-		 * The part service.
-		 * 
-		 * @since 3.1
-		 */
-		private IPartService fPartService;
-
-		/**
-		 * Creates this activation listener.
-		 * 
-		 * @param partService
-		 *            the part service on which to add the part listener
-		 * @since 3.1
-		 */
-		public ActivationListener(IPartService partService) {
-			fPartService = partService;
-			fPartService.addPartListener(this);
-			PlatformUI.getWorkbench().addWindowListener(this);
-		}
-
-		/**
-		 * Disposes this activation listener.
-		 * 
-		 * @since 3.1
-		 */
-		public void dispose() {
-			fPartService.removePartListener(this);
-			PlatformUI.getWorkbench().removeWindowListener(this);
-			fPartService = null;
-		}
-
-		/*
-		 * @see IPartListener#partActivated(org.eclipse.ui.IWorkbenchPart)
-		 */
-		public void partActivated(IWorkbenchPart part) {
-			fActivePart = part;
-			handleActivation();
-		}
-
-		/*
-		 * @see IPartListener#partBroughtToTop(org.eclipse.ui.IWorkbenchPart)
-		 */
-		public void partBroughtToTop(IWorkbenchPart part) {
-			// do nothing
-		}
-
-		/*
-		 * @see IPartListener#partClosed(org.eclipse.ui.IWorkbenchPart)
-		 */
-		public void partClosed(IWorkbenchPart part) {
-			// do nothing
-		}
-
-		/*
-		 * @see IPartListener#partDeactivated(org.eclipse.ui.IWorkbenchPart)
-		 */
-		public void partDeactivated(IWorkbenchPart part) {
-			fActivePart = null;
-		}
-
-		/*
-		 * @see IPartListener#partOpened(org.eclipse.ui.IWorkbenchPart)
-		 */
-		public void partOpened(IWorkbenchPart part) {
-			// do nothing
-		}
-
-		/**
-		 * Handles the activation triggering a element state check in the
-		 * editor.
-		 */
-		void handleActivation() {
-			if (fIsHandlingActivation || getTextEditor() == null)
-				return;
-
-			if (fActivePart == XMLMultiPageEditorPart.this) {
-				fIsHandlingActivation = true;
-				try {
-					getTextEditor().safelySanityCheckState(getEditorInput());
-				}
-				finally {
-					fIsHandlingActivation = false;
-				}
-			}
-		}
-
-		/*
-		 * @see org.eclipse.ui.IWindowListener#windowActivated(org.eclipse.ui.IWorkbenchWindow)
-		 * @since 3.1
-		 */
-		public void windowActivated(IWorkbenchWindow window) {
-			if (window == getEditorSite().getWorkbenchWindow()) {
-				/*
-				 * Workaround for problem described in
-				 * http://dev.eclipse.org/bugs/show_bug.cgi?id=11731 Will be
-				 * removed when SWT has solved the problem.
-				 */
-				window.getShell().getDisplay().asyncExec(new Runnable() {
-					public void run() {
-						handleActivation();
-					}
-				});
-			}
-		}
-
-		/*
-		 * @see org.eclipse.ui.IWindowListener#windowDeactivated(org.eclipse.ui.IWorkbenchWindow)
-		 * @since 3.1
-		 */
-		public void windowDeactivated(IWorkbenchWindow window) {
-			// do nothing
-		}
-
-		/*
-		 * @see org.eclipse.ui.IWindowListener#windowClosed(org.eclipse.ui.IWorkbenchWindow)
-		 * @since 3.1
-		 */
-		public void windowClosed(IWorkbenchWindow window) {
-			// do nothing
-		}
-
-		/*
-		 * @see org.eclipse.ui.IWindowListener#windowOpened(org.eclipse.ui.IWorkbenchWindow)
-		 * @since 3.1
-		 */
-		public void windowOpened(IWorkbenchWindow window) {
-			// do nothing
-		}
-	}
-
-	/**
-	 * Listens for selection from the source page, applying it to the design
-	 * viewer.
-	 */
-	private class TextEditorPostSelectionAdapter extends UIJob implements ISelectionChangedListener {
-		boolean forcePostSelection = false;
-		ISelection selection = null;
-
-		public TextEditorPostSelectionAdapter() {
-			super(getTitle());
-			setUser(true);
-		}
-
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-			if (selection != null) {
-				fDesignViewer.getSelectionProvider().setSelection(selection);
-			}
-			return Status.OK_STATUS;
-		}
-
-		public void selectionChanged(SelectionChangedEvent event) {
-			if (fDesignViewer != null && ((getActivePage() != fDesignPageIndex) || !XMLMultiPageEditorPart.this.equals(getSite().getPage().getActivePart()))) {
-				if (forcePostSelection) {
-					selection = event.getSelection();
-					schedule(200);
-				}
-				else {
-					fDesignViewer.getSelectionProvider().setSelection(event.getSelection());
-				}
-			}
-		}
-	}
-
-	/**
-	 * Internal IPropertyListener
-	 */
-	class PropertyListener implements IPropertyListener {
-		public void propertyChanged(Object source, int propId) {
-			switch (propId) {
-				// had to implement input changed "listener" so that
-				// StructuredTextEditor could tell it containing editor that
-				// the input has change, when a 'resource moved' event is
-				// found.
-				case IEditorPart.PROP_INPUT :
-				case IEditorPart.PROP_DIRTY : {
-					if (source == getTextEditor()) {
-						if (getTextEditor().getEditorInput() != getEditorInput()) {
-							setInput(getTextEditor().getEditorInput());
-							/*
-							 * title should always change when input changes.
-							 * create runnable for following post call
-							 */
-							Runnable runnable = new Runnable() {
-								public void run() {
-									_firePropertyChange(IWorkbenchPart.PROP_TITLE);
-								}
-							};
-							/*
-							 * Update is just to post things on the display
-							 * queue (thread). We have to do this to get the
-							 * dirty property to get updated after other
-							 * things on the queue are executed.
-							 */
-							((Control) getTextEditor().getAdapter(Control.class)).getDisplay().asyncExec(runnable);
-						}
-					}
-					break;
-				}
-				case IWorkbenchPart.PROP_TITLE : {
-					// update the input if the title is changed
-					if (source == getTextEditor()) {
-						if (getTextEditor().getEditorInput() != getEditorInput()) {
-							setInput(getTextEditor().getEditorInput());
-						}
-					}
-					break;
-				}
-				default : {
-					// propagate changes. Is this needed? Answer: Yes.
-					if (source == getTextEditor()) {
-						_firePropertyChange(propId);
-					}
-					break;
-				}
-			}
-
-		}
-	}
-
-	class TextInputListener implements ITextInputListener {
-		public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
-			// do nothing
-		}
-
-		public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
-			if (fDesignViewer != null && newInput != null)
-				fDesignViewer.setDocument(newInput);
-		}
-	}
-
-	/** The design page index. */
-	private int fDesignPageIndex;
-
-	/** The design viewer */
-	IDesignViewer fDesignViewer;
-
-	private ActivationListener fActivationListener;
-
-	IPropertyListener fPropertyListener = null;
-
-	/** The source page index. */
-	int fSourcePageIndex;
-
-	/** The text editor. */
-	private StructuredTextEditor fTextEditor;
-
-	private TextEditorPostSelectionAdapter fTextEditorSelectionListener;
-
-	/**
-	 * StructuredTextMultiPageEditorPart constructor comment.
-	 */
-	public XMLMultiPageEditorPart() {
-		super();
-	}
-
-	/*
-	 * This method is just to make firePropertyChanged accessible from some
-	 * (anonomous) inner classes.
-	 */
-	void _firePropertyChange(int property) {
-		super.firePropertyChange(property);
-	}
-
-	/**
-	 * Adds the source page of the multi-page editor.
-	 */
-	private void addSourcePage() throws PartInitException {
-		fSourcePageIndex = addPage(fTextEditor, getEditorInput());
-		setPageText(fSourcePageIndex, XMLEditorMessages.XMLMultiPageEditorPart_0);
-		// the update's critical, to get viewer selection manager and
-		// highlighting to work
-		fTextEditor.update();
-
-		firePropertyChange(PROP_TITLE);
-
-		// Changes to the Text Viewer's document instance should also
-		// force an
-		// input refresh
-		fTextEditor.getTextViewer().addTextInputListener(new TextInputListener());
-	}
-
-	/**
-	 * Connects the design viewer with the viewer selection manager. Should be
-	 * done after createSourcePage() is done because we need to get the
-	 * ViewerSelectionManager from the TextEditor. setModel is also done here
-	 * because getModel() needs to reference the TextEditor.
-	 */
-	private void connectDesignPage() {
-		if (fDesignViewer != null) {
-			fDesignViewer.setDocument(getDocument());
-		}
-
-		/*
-		 * Connect selection from the Design page to the selection provider
-		 * for the XMLMultiPageEditorPart so that selection changes in the
-		 * Design page will propogate across the workbench
-		 */
-		if (fDesignViewer.getSelectionProvider() instanceof IPostSelectionProvider) {
-			((IPostSelectionProvider) fDesignViewer.getSelectionProvider()).addPostSelectionChangedListener(new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					((MultiPageSelectionProvider) getSite().getSelectionProvider()).firePostSelectionChanged(event);
-				}
-			});
-		}
-		fDesignViewer.getSelectionProvider().addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				((MultiPageSelectionProvider) getSite().getSelectionProvider()).fireSelectionChanged(event);
-			}
-		});
-
-		/*
-		 * Connect selection from the Design page to the selection provider of
-		 * the Source page so that selection in the Design page will drive
-		 * selection in the Source page. Prefer post selection.
-		 */
-		if (fDesignViewer.getSelectionProvider() instanceof IPostSelectionProvider) {
-			((IPostSelectionProvider) fDesignViewer.getSelectionProvider()).addPostSelectionChangedListener(new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					/*
-					 * Only force selection update if source page is not
-					 * active
-					 */
-					if (getActivePage() != fSourcePageIndex) {
-						getTextEditor().getSelectionProvider().setSelection(event.getSelection());
-					}
-				}
-			});
-		}
-		else {
-			fDesignViewer.getSelectionProvider().addSelectionChangedListener(new ISelectionChangedListener() {
-				public void selectionChanged(SelectionChangedEvent event) {
-					/*
-					 * Only force selection update if source page is not
-					 * active
-					 */
-					if (getActivePage() != fSourcePageIndex) {
-						getTextEditor().getSelectionProvider().setSelection(event.getSelection());
-					}
-				}
-			});
-		}
-
-		/*
-		 * Handle double-click in the Design page by selecting the
-		 * corresponding amount of text in the Source page.
-		 */
-		fDesignViewer.getControl().addListener(SWT.MouseDoubleClick, new Listener() {
-			public void handleEvent(Event event) {
-				ISelection selection = fDesignViewer.getSelectionProvider().getSelection();
-				int start = -1;
-				int length = -1;
-				if (selection instanceof IStructuredSelection) {
-					/*
-					 * selection goes from the start of the first object to
-					 * the end of the last
-					 */
-					IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-					Object o = structuredSelection.getFirstElement();
-					Object o2 = null;
-					if (structuredSelection.size() > 1) {
-						o2 = structuredSelection.toArray()[structuredSelection.size() - 1];
-					}
-					else {
-						o2 = o;
-					}
-					if (o instanceof IndexedRegion) {
-						start = ((IndexedRegion) o).getStartOffset();
-						length = ((IndexedRegion) o2).getEndOffset() - start;
-					}
-					else if (o2 instanceof ITextRegion) {
-						start = ((ITextRegion) o).getStart();
-						length = ((ITextRegion) o2).getEnd() - start;
-					}
-				}
-				else if (selection instanceof ITextSelection) {
-					start = ((ITextSelection) selection).getOffset();
-					length = ((ITextSelection) selection).getLength();
-				}
-				if (start > -1 && length > -1) {
-					getTextEditor().selectAndReveal(start, length);
-				}
-			}
-		});
-
-		/*
-		 * Connect selection from the Source page to the selection provider of
-		 * the Design page so that selection in the Source page will drive
-		 * selection in the Design page. Prefer post selection.
-		 */
-		ISelectionProvider provider = getTextEditor().getSelectionProvider();
-		if (fTextEditorSelectionListener == null) {
-			fTextEditorSelectionListener = new TextEditorPostSelectionAdapter();
-		}
-		if (provider instanceof IPostSelectionProvider) {
-			fTextEditorSelectionListener.forcePostSelection = false;
-			((IPostSelectionProvider) provider).addPostSelectionChangedListener(fTextEditorSelectionListener);
-		}
-		else {
-			fTextEditorSelectionListener.forcePostSelection = true;
-			provider.addSelectionChangedListener(fTextEditorSelectionListener);
-		}
-	}
-
-	/**
-	 * Create and Add the Design Page using a registered factory
-	 * 
-	 */
-	private void createAndAddDesignPage() {
-		IDesignViewer designViewer = createDesignPage();
-
-		fDesignViewer = designViewer;
-		// note: By adding the design page as a Control instead of an
-		// IEditorPart, page switches will indicate
-		// a "null" active editor when the design page is made active
-		fDesignPageIndex = addPage(designViewer.getControl());
-		setPageText(fDesignPageIndex, designViewer.getTitle());
-	}
-
-	protected IDesignViewer createDesignPage() {
-		XMLTableTreeViewer tableTreeViewer = new XMLTableTreeViewer(getContainer());
-		// Set the default infopop for XML design viewer.
-		XMLUIPlugin.getInstance().getWorkbench().getHelpSystem().setHelp(tableTreeViewer.getControl(), XMLTableTreeHelpContextIds.XML_DESIGN_VIEW_HELPID);
-		return tableTreeViewer;
-	}
-
-	/**
-	 * Creates the pages of this multi-page editor.
-	 * <p>
-	 * Subclasses of <code>MultiPageEditor</code> must implement this
-	 * method.
-	 * </p>
-	 */
-	protected void createPages() {
-		try {
-			// source page MUST be created before design page, now
-			createSourcePage();
-
-			createAndAddDesignPage();
-			addSourcePage();
-			connectDesignPage();
-
-			// set the active editor in the action bar contributor first
-			// before setactivepage calls action bar contributor's
-			// setactivepage (bug141013 - remove when bug151488 is fixed)
-			IEditorActionBarContributor contributor = getEditorSite().getActionBarContributor();
-			if (contributor instanceof MultiPageEditorActionBarContributor) {
-				((MultiPageEditorActionBarContributor) contributor).setActiveEditor(this);
-			}
-
-			int activePageIndex = getPreferenceStore().getInt(IXMLPreferenceNames.LAST_ACTIVE_PAGE);
-			if (activePageIndex >= 0 && activePageIndex < getPageCount()) {
-				setActivePage(activePageIndex);
-			}
-			else {
-				setActivePage(fSourcePageIndex);
-			}
-		}
-		catch (PartInitException e) {
-			Logger.logException(e);
-			throw new RuntimeException(e);
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#createSite(org.eclipse.ui.IEditorPart)
-	 */
-	protected IEditorSite createSite(IEditorPart editor) {
-		IEditorSite site = null;
-		if (editor == fTextEditor) {
-			site = new MultiPageEditorSite(this, editor) {
-				/**
-				 * @see org.eclipse.ui.part.MultiPageEditorSite#getActionBarContributor()
-				 */
-				public IEditorActionBarContributor getActionBarContributor() {
-					IEditorActionBarContributor contributor = super.getActionBarContributor();
-					IEditorActionBarContributor multiContributor = XMLMultiPageEditorPart.this.getEditorSite().getActionBarContributor();
-					if (multiContributor instanceof XMLMultiPageEditorActionBarContributor) {
-						contributor = ((XMLMultiPageEditorActionBarContributor) multiContributor).sourceViewerActionContributor;
-					}
-					return contributor;
-				}
-
-				public String getId() {
-					// sets this id so nested editor is considered xml source
-					// page
-					return ContentTypeIdForXML.ContentTypeID_XML + ".source"; //$NON-NLS-1$;
-				}
-			};
-		}
-		else {
-			site = super.createSite(editor);
-		}
-		return site;
-	}
-
-	/**
-	 * Creates the source page of the multi-page editor.
-	 */
-	protected void createSourcePage() throws PartInitException {
-		fTextEditor = createTextEditor();
-		fTextEditor.setEditorPart(this);
-
-		if (fPropertyListener == null) {
-			fPropertyListener = new PropertyListener();
-		}
-		fTextEditor.addPropertyListener(fPropertyListener);
-	}
-
-	/**
-	 * Method createTextEditor.
-	 * 
-	 * @return StructuredTextEditor
-	 */
-	private StructuredTextEditor createTextEditor() {
-		return new StructuredTextEditor();
-	}
-
-	private void disconnectDesignPage() {
-		if (fDesignViewer != null) {
-			fDesignViewer.setDocument(null);
-		}
-	}
-
-	public void dispose() {
-		Logger.trace("Source Editor", "XMLMultiPageEditorPart::dispose entry"); //$NON-NLS-1$ //$NON-NLS-2$
-
-		disconnectDesignPage();
-
-		if (fActivationListener != null) {
-			fActivationListener.dispose();
-			fActivationListener = null;
-		}
-
-		if (fTextEditor != null && fPropertyListener != null) {
-			fTextEditor.removePropertyListener(fPropertyListener);
-		}
-
-		// moved to last when added window ... seems like
-		// we'd be in danger of losing some data, like site,
-		// or something.
-		super.dispose();
-
-		Logger.trace("Source Editor", "StructuredTextMultiPageEditorPart::dispose exit"); //$NON-NLS-1$ //$NON-NLS-2$
-
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void doSave(IProgressMonitor monitor) {
-		fTextEditor.doSave(monitor);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#doSaveAs()
-	 */
-	public void doSaveAs() {
-		fTextEditor.doSaveAs();
-		/**
-		 * TEMPORARY WORKAROUND, the property change listener should really
-		 * handle this
-		 * 
-		 * Update the design viewer since the editor input would have changed
-		 * to the new file.
-		 */
-		if (fDesignViewer != null) {
-			fDesignViewer.setDocument(getDocument());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class key) {
-		Object result = null;
-		if (key == IDesignViewer.class) {
-			result = fDesignViewer;
-
-		}
-		else if (key.equals(IGotoMarker.class)) {
-			result = new IGotoMarker() {
-				public void gotoMarker(IMarker marker) {
-					XMLMultiPageEditorPart.this.gotoMarker(marker);
-				}
-			};
-		}
-		else {
-			// DMW: I'm bullet-proofing this because
-			// its been reported (on IBM WSAD 4.03 version) a null pointer
-			// sometimes
-			// happens here on startup, when an editor has been left
-			// open when workbench shutdown.
-			if (fTextEditor != null) {
-				result = fTextEditor.getAdapter(key);
-			}
-		}
-		return result;
-	}
-
-	private IDocument getDocument() {
-		IDocument document = null;
-		if (fTextEditor != null)
-			document = fTextEditor.getDocumentProvider().getDocument(fTextEditor.getEditorInput());
-		return document;
-	}
-
-	private IPreferenceStore getPreferenceStore() {
-		return XMLUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	StructuredTextEditor getTextEditor() {
-		return fTextEditor;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#getTitle()
-	 */
-	public String getTitle() {
-		String title = null;
-		if (getTextEditor() == null) {
-			if (getEditorInput() != null) {
-				title = getEditorInput().getName();
-			}
-		}
-		else {
-			title = getTextEditor().getTitle();
-		}
-		if (title == null) {
-			title = getPartName();
-		}
-		return title;
-	}
-
-	void gotoMarker(IMarker marker) {
-		setActivePage(fSourcePageIndex);
-		IDE.gotoMarker(fTextEditor, marker);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IEditorPart#init(org.eclipse.ui.IEditorSite,
-	 *      org.eclipse.ui.IEditorInput)
-	 */
-	public void init(IEditorSite site, IEditorInput input) throws PartInitException {
-		try {
-			super.init(site, input);
-			// we want to listen for our own activation
-			fActivationListener = new ActivationListener(site.getWorkbenchWindow().getPartService());
-		}
-		catch (Exception e) {
-			Logger.logException("exception initializing " + getClass().getName(), e); //$NON-NLS-1$
-		}
-		setPartName(input.getName());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isSaveAsAllowed()
-	 */
-	public boolean isSaveAsAllowed() {
-		return fTextEditor != null && fTextEditor.isSaveAsAllowed();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.ISaveablePart#isSaveOnCloseNeeded()
-	 */
-	public boolean isSaveOnCloseNeeded() {
-		// overriding super class since it does a lowly isDirty!
-		if (fTextEditor != null)
-			return fTextEditor.isSaveOnCloseNeeded();
-		return isDirty();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.MultiPageEditorPart#pageChange(int)
-	 */
-	protected void pageChange(int newPageIndex) {
-		super.pageChange(newPageIndex);
-		saveLastActivePageIndex(newPageIndex);
-
-		if (newPageIndex == fDesignPageIndex) {
-			// design page isn't an IEditorPart, therefore we have to send
-			// selection changes ourselves
-			ISelectionProvider selectionProvider = fDesignViewer.getSelectionProvider();
-			if (selectionProvider != null) {
-				SelectionChangedEvent event = new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection());
-				((MultiPageSelectionProvider) getSite().getSelectionProvider()).fireSelectionChanged(event);
-				((MultiPageSelectionProvider) getSite().getSelectionProvider()).firePostSelectionChanged(event);
-			}
-		}
-	}
-
-	private void saveLastActivePageIndex(int newPageIndex) {
-		// save the last active page index to preference manager
-		getPreferenceStore().setValue(IXMLPreferenceNames.LAST_ACTIVE_PAGE, newPageIndex);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#setInput(org.eclipse.ui.IEditorInput)
-	 */
-	protected void setInput(IEditorInput input) {
-		/*
-		 * If driven from the Source page, it's "model" may not be up to date
-		 * with (or even exist for) the input just yet. Later notification
-		 * from the TextViewer could set us straight, although it's not
-		 * guaranteed to happen after the model has been created.
-		 */
-		super.setInput(input);
-		if (fDesignViewer != null) {
-			fDesignViewer.setDocument(getDocument());
-		}
-		setPartName(input.getName());
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeActionBarContributor.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeActionBarContributor.java
deleted file mode 100644
index 855c7a2..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeActionBarContributor.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.CMDocumentLoader;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.InferredGrammarBuildingCMDocumentLoader;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.ui.internal.util.SharedXMLEditorPluginImageHelper;
-import org.w3c.dom.Document;
-
-/**
- *  
- */
-public class XMLTableTreeActionBarContributor implements IDesignViewerActionBarContributor {
-
-	protected IEditorPart editorPart;
-	protected final static String DESIGN_VIEWER_SEPARATOR_1_ID = "sed.tabletree.separator.1"; //$NON-NLS-1$
-	protected final static String DESIGN_VIEWER_SEPARATOR_2_ID = "sed.tabletree.separator.2"; //$NON-NLS-1$
-	protected final static String VALIDATE_XML_ID = "sed.tabletree.validateXML"; //$NON-NLS-1$
-	protected final static String RELOAD_GRAMMAR_ID = "sed.tabletree.reloadGrammar"; //$NON-NLS-1$
-	protected final static String TOGGLE_EDIT_MODE_ID = "sed.tabletree.toggleEditMode"; //$NON-NLS-1$
-	protected final static String EXPAND_ALL_ID = "sed.tabletree.expandAll"; //$NON-NLS-1$
-	protected final static String COLLAPSE_ALL_ID = "sed.tabletree.collapseAll"; //$NON-NLS-1$
-
-	protected ToggleEditModeAction toggleAction;
-	protected ReloadGrammarAction reloadGrammarAction;
-	//	protected ValidateXMLAction validateXMLAction;
-	protected ViewerExpandCollapseAction expandAction;
-	protected ViewerExpandCollapseAction collapseAction;
-	protected ViewerExpandCollapseAction xmlMenuExpandAction;
-	protected ViewerExpandCollapseAction xmlMenuCollapseAction;
-
-	public XMLTableTreeActionBarContributor() {
-	}
-
-	protected void removeContributions(IContributionManager manager) {
-		try {
-			doRemove(manager, DESIGN_VIEWER_SEPARATOR_1_ID);
-			doRemove(manager, DESIGN_VIEWER_SEPARATOR_2_ID);
-			doRemove(manager, VALIDATE_XML_ID);
-			doRemove(manager, RELOAD_GRAMMAR_ID);
-			doRemove(manager, TOGGLE_EDIT_MODE_ID);
-			doRemove(manager, EXPAND_ALL_ID);
-			doRemove(manager, COLLAPSE_ALL_ID);
-		} catch (Exception e) {
-		}
-	}
-
-	protected void doRemove(IContributionManager manager, String id) {
-		try {
-			if (manager.find(id) != null) {
-				manager.remove(id);
-			}
-		} catch (Exception e) {
-		}
-	}
-
-	public void init(IActionBars bars, IWorkbenchPage page) {
-		init(bars);
-	}
-
-	public void init(IActionBars bars) {
-		IToolBarManager tbm = bars.getToolBarManager();
-
-		IMenuManager xmlMenu = bars.getMenuManager().findMenuUsingPath("org.eclipse.core.runtime.xml.design.xmlmenu"); //$NON-NLS-1$
-
-		if (xmlMenu == null) {
-			xmlMenu = new MenuManager(XMLEditorMessages.XMLTableTreeActionBarContributor_0, "org.eclipse.core.runtime.xml.design.xmlmenu"); //$NON-NLS-1$
-			bars.getMenuManager().insertBefore(IWorkbenchActionConstants.M_WINDOW, xmlMenu);
-		} else {
-			removeContributions(xmlMenu);
-		}
-
-		tbm.add(new Separator("DESIGN_VIEWER_SEPARATOR_1_ID")); //$NON-NLS-1$
-
-		// ValidateXMLAction
-		//                        
-		// ugly hack ... we don't contribute the generic XML validator if we
-		// already
-		// have a DAD validator contribution (in the case of the DAD editor).
-		// This hack will be removed when defect 212448 is fixed.
-		//
-		//		if (tbm.find("validate.dad.validateDAD") == null) {
-		//			validateXMLAction = new ValidateXMLAction();
-		//			tbm.add(validateXMLAction);
-		//			xmlMenu.add(validateXMLAction);
-		//		}
-
-		// ToggleEditModeAction
-		//           
-		toggleAction = new ToggleEditModeAction();
-		toggleAction.setId(TOGGLE_EDIT_MODE_ID);
-		xmlMenu.add(toggleAction);
-		tbm.add(toggleAction);
-
-		// ReloadGrammarAction
-		//
-		reloadGrammarAction = new ReloadGrammarAction();
-		reloadGrammarAction.setId(RELOAD_GRAMMAR_ID);
-		tbm.add(reloadGrammarAction);
-		xmlMenu.add(reloadGrammarAction);
-
-		xmlMenu.add(new Separator());
-
-		// ExpandCollapseAction
-		//
-		xmlMenuExpandAction = new ViewerExpandCollapseAction(true);
-		xmlMenuExpandAction.setId(EXPAND_ALL_ID);
-		xmlMenuExpandAction.setText(XMLEditorMessages.XMLTableTreeActionBarContributor_1); //$NON-NLS-1$
-		xmlMenu.add(xmlMenuExpandAction);
-
-		xmlMenuCollapseAction = new ViewerExpandCollapseAction(false);
-		xmlMenuCollapseAction.setId(COLLAPSE_ALL_ID);
-		xmlMenuCollapseAction.setId(EXPAND_ALL_ID);
-		xmlMenuCollapseAction.setText(XMLEditorMessages.XMLTableTreeActionBarContributor_2); //$NON-NLS-1$
-		xmlMenu.add(xmlMenuCollapseAction);
-	}
-
-	protected void addActionWithId(IMenuManager menuManager, Action action, String id) {
-		action.setId(id);
-		menuManager.add(action);
-	}
-
-	public void initViewerSpecificContributions(IActionBars bars) {
-		IToolBarManager tbm = bars.getToolBarManager();
-		tbm.add(new Separator(DESIGN_VIEWER_SEPARATOR_2_ID));
-
-		expandAction = new ViewerExpandCollapseAction(true);
-		expandAction.setId(EXPAND_ALL_ID);
-		tbm.add(expandAction);
-
-		collapseAction = new ViewerExpandCollapseAction(false);
-		collapseAction.setId(COLLAPSE_ALL_ID);
-		tbm.add(collapseAction);
-	}
-
-	public void setViewerSpecificContributionsEnabled(boolean enabled) {
-		if (expandAction != null) {
-			expandAction.setEnabled(enabled);
-			xmlMenuExpandAction.setEnabled(enabled);
-		}
-
-		if (collapseAction != null) {
-			collapseAction.setEnabled(enabled);
-			xmlMenuCollapseAction.setEnabled(enabled);
-		}
-	}
-
-	public void setActiveEditor(IEditorPart targetEditor) {
-		editorPart = targetEditor;
-
-		IStructuredModel model = getModelForEditorPart(targetEditor);
-		reloadGrammarAction.setModel(model);
-		toggleAction.setModelQuery(ModelQueryUtil.getModelQuery(model));
-
-		XMLTableTreeViewer tableTreeViewer = getTableTreeViewerForEditorPart(editorPart);
-		if (tableTreeViewer != null) {
-			expandAction.setViewer(tableTreeViewer);
-			collapseAction.setViewer(tableTreeViewer);
-
-			xmlMenuExpandAction.setViewer(tableTreeViewer);
-			xmlMenuCollapseAction.setViewer(tableTreeViewer);
-		}
-
-		if (editorPart instanceof XMLMultiPageEditorPart) {
-			IWorkbenchPartSite site = editorPart.getSite();
-			if (site instanceof IEditorSite) {
-				ITextEditor textEditor = ((XMLMultiPageEditorPart) editorPart).getTextEditor();
-				IActionBars actionBars = ((IEditorSite) site).getActionBars();
-				actionBars.setGlobalActionHandler(ITextEditorActionConstants.UNDO, getAction(textEditor, ITextEditorActionConstants.UNDO));
-				actionBars.setGlobalActionHandler(ITextEditorActionConstants.REDO, getAction(textEditor, ITextEditorActionConstants.REDO));
-			}
-		}
-
-		// TODO... uncomment this and investigate NPE
-		//
-		// add the cut/copy/paste for text fields
-		// ActionHandlerPlugin.connectPart(editorPart);
-	}
-
-	protected final IAction getAction(ITextEditor editor, String actionId) {
-		return (editor == null ? null : editor.getAction(actionId));
-	}
-
-	protected IStructuredModel getModelForEditorPart(IEditorPart targetEditor) {
-		IStructuredModel result = null;
-		if (editorPart instanceof XMLMultiPageEditorPart) {
-			StructuredTextEditor textEditor = ((XMLMultiPageEditorPart) targetEditor).getTextEditor();
-			result = (textEditor != null) ? textEditor.getModel() : null;
-		}
-		return result;
-	}
-
-	protected XMLTableTreeViewer getTableTreeViewerForEditorPart(IEditorPart targetEditor) {
-		XMLTableTreeViewer result = null;
-		Object object = targetEditor.getAdapter(IDesignViewer.class);
-		if (object instanceof XMLTableTreeViewer) {
-			result = (XMLTableTreeViewer) object;
-		}
-		return result;
-	}
-
-	/**
-	 *  
-	 */
-	public class ToggleEditModeAction extends Action {
-		protected ImageDescriptor onImage = SharedXMLEditorPluginImageHelper.getImageDescriptor(SharedXMLEditorPluginImageHelper.IMG_ETOOL_CONSTRAINON);
-		protected ImageDescriptor offImage = SharedXMLEditorPluginImageHelper.getImageDescriptor(SharedXMLEditorPluginImageHelper.IMG_ETOOL_CONSTRAINOFF);
-		protected ModelQuery modelQuery;
-
-		public ToggleEditModeAction() {
-			setAppearanceForEditMode(ModelQuery.EDIT_MODE_CONSTRAINED_STRICT);
-		}
-
-		public void run() {
-			if (modelQuery != null) {
-				int newState = getNextState(modelQuery.getEditMode());
-				modelQuery.setEditMode(newState);
-				setAppearanceForEditMode(newState);
-			}
-		}
-
-		public void setModelQuery(ModelQuery newModelQuery) {
-			modelQuery = newModelQuery;
-			if (modelQuery != null) {
-				setAppearanceForEditMode(modelQuery.getEditMode());
-			}
-		}
-
-		public void setAppearanceForEditMode(int editMode) {
-			if (editMode == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) {
-				setToolTipText(XMLEditorMessages.XMLTableTreeActionBarContributor_3); //$NON-NLS-1$
-				setText(XMLEditorMessages.XMLTableTreeActionBarContributor_4); //$NON-NLS-1$
-				setImageDescriptor(onImage);
-			} else {
-				setToolTipText(XMLEditorMessages.XMLTableTreeActionBarContributor_5); //$NON-NLS-1$
-				setText(XMLEditorMessages.XMLTableTreeActionBarContributor_6); //$NON-NLS-1$
-				setImageDescriptor(offImage);
-			}
-		}
-
-		public int getNextState(int editMode) {
-			int result = -1;
-			if (editMode == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) {
-				result = ModelQuery.EDIT_MODE_UNCONSTRAINED;
-			} else {
-				result = ModelQuery.EDIT_MODE_CONSTRAINED_STRICT;
-			}
-			return result;
-		}
-	}
-
-	/**
-	 *  
-	 */
-	public class ReloadGrammarAction extends Action {
-		protected IStructuredModel model;
-
-		public ReloadGrammarAction() {
-			setDisabledImageDescriptor(SharedXMLEditorPluginImageHelper.getImageDescriptor(SharedXMLEditorPluginImageHelper.IMG_DTOOL_RLDGRMR));
-			setImageDescriptor(SharedXMLEditorPluginImageHelper.getImageDescriptor(SharedXMLEditorPluginImageHelper.IMG_ETOOL_RLDGRMR));
-			setToolTipText(XMLEditorMessages.XMLTableTreeActionBarContributor_7); //$NON-NLS-1$
-			setText(XMLEditorMessages.XMLTableTreeActionBarContributor_8); //$NON-NLS-1$
-		}
-
-		public void setModel(IStructuredModel newModel) {
-			this.model = newModel;
-		}
-
-		public void run() {
-			if (model != null) {
-				ModelQuery modelQuery = ModelQueryUtil.getModelQuery(model);
-				Document document = ((IDOMModel) model).getDocument();
-				if (modelQuery != null && modelQuery.getCMDocumentManager() != null) {
-					modelQuery.getCMDocumentManager().getCMDocumentCache().clear();
-					// TODO... need to figure out how to access the
-					// DOMObserver via ModelQuery
-					//  ...why?
-					CMDocumentLoader loader = new InferredGrammarBuildingCMDocumentLoader(document, modelQuery);
-					loader.loadCMDocuments();
-				}
-			}
-		}
-	}
-
-	/**
-	 * @see org.eclipse.ui.IEditorActionBarContributor#dispose()
-	 */
-	public void dispose() {
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeContentProvider.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeContentProvider.java
deleted file mode 100644
index e0c5e23..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeContentProvider.java
+++ /dev/null
@@ -1,314 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-
-
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapterFactory;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManagerListener;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.util.SharedXMLEditorPluginImageHelper;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-
-public class XMLTableTreeContentProvider implements ITreeContentProvider, ITableLabelProvider, ILabelProvider, CMDocumentManagerListener {
-
-	protected CMDocumentManager documentManager;
-
-	StructuredViewer fViewer = null;
-
-	protected TreeContentHelper treeContentHelper = new TreeContentHelper();
-
-	public XMLTableTreeContentProvider() {
-		super();
-	}
-
-	//
-	// ILabelProvider stuff
-	//
-	public void addListener(ILabelProviderListener listener) {
-		// since we always return 'false' for "isLabelProperty",
-		// not need to listen. Maybe that should change some day?
-	}
-
-	// CMDocumentManagerListener
-	//
-	public void cacheCleared(CMDocumentCache cache) {
-		doDelayedRefreshForViewers();
-	}
-
-	public void cacheUpdated(CMDocumentCache cache, final String uri, int oldStatus, int newStatus, CMDocument cmDocument) {
-		if (newStatus == CMDocumentCache.STATUS_LOADED || newStatus == CMDocumentCache.STATUS_ERROR) {
-			doDelayedRefreshForViewers();
-		}
-	}
-
-	public void dispose() {
-	}
-
-	private void doDelayedRefreshForViewers() {
-		if (fViewer != null && !fViewer.getControl().isDisposed()) {
-			fViewer.getControl().getDisplay().asyncExec(new Runnable() {
-				public void run() {
-					if (fViewer != null && !fViewer.getControl().isDisposed()) {
-						fViewer.refresh(true);
-					}
-				}
-			});
-		}
-	}
-
-	public Object[] getChildren(Object element) {
-		if (element instanceof INodeNotifier)
-			((INodeNotifier) element).getAdapterFor(IJFaceNodeAdapter.class);
-		return treeContentHelper.getChildren(element);
-	}
-
-	public Image getColumnImage(Object object, int columnIndex) {
-		return (columnIndex == 0) ? getImage(object) : null;
-	}
-
-	//
-	// ITableLabelProvider stuff
-	//
-	public String getColumnText(Object object, int column) {
-		String result = null;
-		if (column == 0) {
-			result = getText(object);
-		}
-		else if (column == 1 && object instanceof Node) {
-			result = treeContentHelper.getNodeValue((Node) object);
-		}
-		return result != null ? result : ""; //$NON-NLS-1$
-	}
-
-	public Object[] getElements(Object element) {
-		return getChildren(element);
-	}
-
-	public Image getImage(Object object) {
-		if (object instanceof INodeNotifier)
-			((INodeNotifier) object).getAdapterFor(IJFaceNodeAdapter.class);
-
-		Image image = null;
-		if (object instanceof Node) {
-			Node node = (Node) object;
-			switch (node.getNodeType()) {
-				case Node.ATTRIBUTE_NODE : {
-					image = SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_ATTRIBUTE);
-					break;
-				}
-				case Node.CDATA_SECTION_NODE : {
-					image = SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_CDATASECTION);
-					break;
-				}
-				case Node.COMMENT_NODE : {
-					image = SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_COMMENT);
-					break;
-				}
-				case Node.DOCUMENT_TYPE_NODE : {
-					image = SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_DOCTYPE);
-					break;
-				}
-				case Node.ELEMENT_NODE : {
-					image = SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_ELEMENT);
-					break;
-				}
-				case Node.PROCESSING_INSTRUCTION_NODE : {
-					image = SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_PROCESSINGINSTRUCTION);
-					break;
-				}
-				case Node.TEXT_NODE : {
-					image = SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_TXTEXT);
-					break;
-				}
-				case Node.ENTITY_REFERENCE_NODE : {
-					image = SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_ENTITY_REFERENCE);
-					break;
-				}
-			}
-
-			// if (image != null) {
-			// Image markerOverlayImage =
-			// overlayIconManager.getOverlayImageForObject(node);
-			// if (markerOverlayImage != null) {
-			// image = imageFactory.createCompositeImage(image,
-			// markerOverlayImage, ImageFactory.BOTTOM_LEFT);
-			// }
-			// }
-		}
-		return image;
-	}
-
-	public Object getParent(Object o) {
-		if (o instanceof INodeNotifier)
-			((INodeNotifier) o).getAdapterFor(IJFaceNodeAdapter.class);
-
-		Object result = null;
-		if (o instanceof Node) {
-			Node node = (Node) o;
-			if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
-				result = ((Attr) node).getOwnerElement();
-			}
-			else {
-				result = node.getParentNode();
-			}
-		}
-		return result;
-	}
-
-	public Element getRootElement(Document document) {
-		Element rootElement = null;
-
-		for (Node childNode = document.getFirstChild(); childNode != null; childNode = childNode.getNextSibling()) {
-			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-				rootElement = (Element) childNode;
-				break;
-			}
-		}
-		return rootElement;
-	}
-
-	public String getText(Object object) {
-		if (object instanceof INodeNotifier)
-			((INodeNotifier) object).getAdapterFor(IJFaceNodeAdapter.class);
-
-		String result = null;
-		if (object instanceof Node) {
-			Node node = (Node) object;
-			switch (node.getNodeType()) {
-				case Node.ATTRIBUTE_NODE : {
-					result = node.getNodeName();
-					break;
-				}
-				case Node.DOCUMENT_TYPE_NODE : {
-					result = "DOCTYPE"; //$NON-NLS-1$
-					break;
-				}
-				case Node.ELEMENT_NODE : {
-					result = node.getNodeName();
-					break;
-				}
-				case Node.PROCESSING_INSTRUCTION_NODE : {
-					result = ((ProcessingInstruction) node).getTarget();
-					break;
-				}
-			}
-		}
-		return result != null ? result : ""; //$NON-NLS-1$
-	}
-
-	public boolean hasChildren(Object element) {
-		return getChildren(element).length > 0;
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		// remove our listeners to the old state
-		if (oldInput != null) {
-			Document domDoc = (Document) oldInput;
-			ModelQuery mq = ModelQueryUtil.getModelQuery(domDoc);
-			if (mq != null) {
-				documentManager = mq.getCMDocumentManager();
-				if (documentManager != null) {
-					documentManager.removeListener(this);
-				}
-			}
-		}
-
-		if (oldInput != null && oldInput instanceof IDOMNode) {
-			IJFaceNodeAdapterFactory factory = (IJFaceNodeAdapterFactory) ((IDOMNode) oldInput).getModel().getFactoryRegistry().getFactoryFor(IJFaceNodeAdapter.class);
-			if (factory != null) {
-				factory.removeListener(viewer);
-			}
-		}
-
-		if (viewer instanceof StructuredViewer) {
-			fViewer = null;
-		}
-		else {
-			fViewer = (StructuredViewer) viewer;
-		}
-
-		if (newInput != null && newInput instanceof IDOMNode) {
-			IJFaceNodeAdapterFactory factory = (IJFaceNodeAdapterFactory) ((IDOMNode) newInput).getModel().getFactoryRegistry().getFactoryFor(IJFaceNodeAdapter.class);
-			if (factory != null) {
-				factory.addListener(viewer);
-			}
-		}
-
-		if (newInput != null) {
-			Document domDoc = (Document) newInput;
-			ModelQuery mq = ModelQueryUtil.getModelQuery(domDoc);
-
-			if (mq != null) {
-				documentManager = mq.getCMDocumentManager();
-				if (documentManager != null) {
-					documentManager.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD, true);
-					documentManager.addListener(this);
-				}
-			}
-		}
-	}
-
-	public boolean isDeleted(Object element) {
-		return element != null;
-	}
-
-	// the following methods handle filtering aspects of the viewer
-	//
-	//
-	public boolean isIgnorableText(Node node) {
-		boolean result = false;
-		try {
-			if (node.getNodeType() == Node.TEXT_NODE) {
-				String data = ((Text) node).getData();
-				result = (data == null || data.trim().length() == 0);
-			}
-		}
-		catch (Exception e) {
-			Logger.logException(e);
-		}
-		return result;
-	}
-
-	public boolean isLabelProperty(Object object, String property) {
-		return false;
-	}
-
-	public void propertyChanged(CMDocumentManager cmDocumentManager, String propertyName) {
-		if (cmDocumentManager.getPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD)) {
-			doDelayedRefreshForViewers();
-		}
-	}
-
-	public void removeListener(ILabelProviderListener listener) {
-		// since we always return 'false' for "isLabelProperty",
-		// not need to listen. Maybe that should change some day?
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeHelpContextIds.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeHelpContextIds.java
deleted file mode 100644
index 4c9a381..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeHelpContextIds.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-
-
-/**
- * Help context ids for the TableTree view.
- * <p>
- * This interface contains constants only; it is not intended to be
- * implemented or extended.
- * </p>
- *  
- */
-public interface XMLTableTreeHelpContextIds {
-	// org.eclipse.wst.xml.ui.
-	public static final String PREFIX = XMLUIPlugin.ID + "."; //$NON-NLS-1$
-
-	// XML Design View
-	public static final String XML_DESIGN_VIEW_HELPID = PREFIX + "xmlm3000"; //$NON-NLS-1$
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreePropertyDescriptorFactory.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreePropertyDescriptorFactory.java
deleted file mode 100644
index cffc2be..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreePropertyDescriptorFactory.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-
-
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import java.util.List;
-
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.ui.internal.properties.EnumeratedStringPropertyDescriptor;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-
-public class XMLTableTreePropertyDescriptorFactory extends DOMPropertyDescriptorFactory {
-
-	protected TreeContentHelper treeContentHelper = new TreeContentHelper();
-
-	public XMLTableTreePropertyDescriptorFactory() {
-		super();
-	}
-
-	protected IPropertyDescriptor createPropertyDescriptorHelper(String name, Element element, CMNode cmNode) {
-		IPropertyDescriptor result = null;
-
-		ModelQuery mq = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-		String[] valuesArray = null;
-		if (mq != null) {
-			valuesArray = mq.getPossibleDataTypeValues(element, cmNode);
-		}
-		if (valuesArray != null && valuesArray.length > 0) {
-			result = new EnumeratedStringPropertyDescriptor(name, name, valuesArray);
-		}
-		else {
-			result = createDefaultPropertyDescriptor(name);
-		}
-
-		return result;
-	}
-
-	public IPropertyDescriptor createTextPropertyDescriptor(Text text) {
-		IPropertyDescriptor result = null;
-		Node parentNode = text.getParentNode();
-		if (parentNode != null && parentNode.getNodeType() == Node.ELEMENT_NODE) {
-			Element parentElement = (Element) parentNode;
-			ModelQuery mq = ModelQueryUtil.getModelQuery(text.getOwnerDocument());
-			CMElementDeclaration ed = null;
-			if (mq != null) {
-				ed = mq.getCMElementDeclaration(parentElement);
-			}
-			if (ed != null) {
-				result = createPropertyDescriptorHelper(HACK, parentElement, ed);
-			}
-			else {
-				result = createDefaultPropertyDescriptor(parentElement.getNodeName());
-			}
-		}
-
-		if (result == null) {
-			result = new TextPropertyDescriptor(HACK, HACK);
-		}
-
-		return result;
-	}
-
-	public IPropertyDescriptor createAttributePropertyDescriptor(Attr attr) {
-		IPropertyDescriptor result = null;
-
-		String attributeName = attr.getName();
-		ModelQuery mq = ModelQueryUtil.getModelQuery(attr.getOwnerDocument());
-
-		CMAttributeDeclaration ad = null;
-		if (mq != null) {
-			ad = mq.getCMAttributeDeclaration(attr);
-		}
-		if (ad != null) {
-			result = createPropertyDescriptorHelper(attributeName, attr.getOwnerElement(), ad);
-		}
-
-		if (result == null) {
-			result = new TextPropertyDescriptor(attributeName, attributeName);
-		}
-
-		return result;
-	}
-
-	public IPropertyDescriptor createElementPropertyDescriptor(Element element) {
-		IPropertyDescriptor result = null;
-		List list = treeContentHelper.getElementTextContent(element);
-		if (list != null) {
-			Text text = treeContentHelper.getEffectiveTextNodeForCombinedNodeList(list);
-			if (text != null) {
-				result = createTextPropertyDescriptor(text);
-			}
-		}
-
-		if (result == null) {
-			result = new TextPropertyDescriptor(HACK, HACK);
-		}
-		return result;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeViewer.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeViewer.java
deleted file mode 100644
index 14d094b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTableTreeViewer.java
+++ /dev/null
@@ -1,261 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004, 2007 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-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.text.IDocument;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSource;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DragSourceListener;
-import org.eclipse.swt.dnd.DropTarget;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.DropTargetListener;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.ui.internal.actions.NodeAction;
-import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
-import org.eclipse.wst.xml.ui.internal.dnd.DragNodeCommand;
-import org.w3c.dom.Document;
-
-public class XMLTableTreeViewer extends TreeViewer implements IDesignViewer {
-
-	class NodeActionMenuListener implements IMenuListener {
-		public void menuAboutToShow(IMenuManager menuManager) {
-			// used to disable NodeSelection listening while running
-			// NodeAction
-			XMLNodeActionManager nodeActionManager = new XMLNodeActionManager(((IDOMDocument) getInput()).getModel(), XMLTableTreeViewer.this) {
-				public void beginNodeAction(NodeAction action) {
-					super.beginNodeAction(action);
-				}
-
-				public void endNodeAction(NodeAction action) {
-					super.endNodeAction(action);
-				}
-			};
-			nodeActionManager.fillContextMenu(menuManager, getSelection());
-		}
-	}
-
-	protected CellEditor cellEditor;
-
-	int count = 0;
-
-	protected XMLTreeExtension treeExtension;
-
-	public XMLTableTreeViewer(Composite parent) {
-		super(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
-
-		// set up providers
-		this.treeExtension = new XMLTreeExtension(getTree());
-
-		XMLTableTreeContentProvider provider = new XMLTableTreeContentProvider();
-		setContentProvider(provider);
-		setLabelProvider(provider);
-
-		createContextMenu();
-
-		DragSource dragSource = new DragSource(getControl(), DND.DROP_COPY | DND.DROP_MOVE);
-		dragSource.addDragListener(createDragSourceListener());
-		dragSource.setTransfer(new Transfer[] {LocalSelectionTransfer.getTransfer()});
-
-		DropTarget dropTarget = new DropTarget(getControl(), DND.DROP_COPY | DND.DROP_MOVE);
-		dropTarget.addDropListener(createDropTargetListener());
-		dropTarget.setTransfer(new Transfer[] {LocalSelectionTransfer.getTransfer()});
-	}
-
-	/**
-	 * This creates a context menu for the viewer and adds a listener as well
-	 * registering the menu for extension.
-	 */
-	protected void createContextMenu() {
-		MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$
-		contextMenu.add(new Separator("additions")); //$NON-NLS-1$
-		contextMenu.setRemoveAllWhenShown(true);
-		contextMenu.addMenuListener(new NodeActionMenuListener());
-		Menu menu = contextMenu.createContextMenu(getControl());
-		getControl().setMenu(menu);
-	}
-
-	protected void doRefresh(Object o, boolean fromDelayed) {
-		treeExtension.resetCachedData();
-		super.refresh(o);
-	}
-
-	public ISelectionProvider getSelectionProvider() {
-		return this;
-	}
-
-	public String getTitle() {
-		return XMLEditorMessages.XMLTableTreeViewer_0;
-	}
-
-	protected void handleDispose(DisposeEvent event) {
-		super.handleDispose(event);
-		treeExtension.dispose();
-		setDocument(null);
-	}
-
-	public void refresh() {
-		treeExtension.resetCachedData();
-		super.refresh();
-	}
-
-	public void refresh(Object o) {
-		treeExtension.resetCachedData();
-		super.refresh(o);
-	}
-	
-	public void refresh(boolean updateLabels) {
-		treeExtension.resetCachedData();
-		super.refresh(updateLabels);
-		getControl().redraw();
-	}
-	
-	public void refresh(Object element, boolean updateLabels) {
-		treeExtension.resetCachedData();
-		super.refresh(element, updateLabels);
-		getControl().redraw();
-	}
-
-	public void setDocument(IDocument document) {
-		/*
-		 * let the text editor to be the one that manages the model's lifetime
-		 */
-		IStructuredModel model = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-
-			if (model != null && model instanceof IDOMModel) {
-				Document domDoc = null;
-				domDoc = ((IDOMModel) model).getDocument();
-				setInput(domDoc);
-				treeExtension.setIsUnsupportedInput(false);
-			}
-			else {
-				treeExtension.setIsUnsupportedInput(true);
-			}
-		}
-		finally {
-			if (model != null) {
-				model.releaseFromRead();
-			}
-		}
-
-	}
-
-	private DragSourceListener createDragSourceListener() {
-		return new DragSourceListener() {
-			public void dragFinished(DragSourceEvent event) {
-				LocalSelectionTransfer.getTransfer().setSelection(null);
-			}
-
-			public void dragSetData(DragSourceEvent event) {
-			}
-
-			public void dragStart(DragSourceEvent event) {
-				LocalSelectionTransfer.getTransfer().setSelection(getSelection());
-			}
-		};
-	}
-
-	private DropTargetListener createDropTargetListener() {
-		return new DropTargetListener() {
-			public void dragEnter(DropTargetEvent event) {
-			}
-
-			public void dragLeave(DropTargetEvent event) {
-			}
-
-			public void dragOperationChanged(DropTargetEvent event) {
-			}
-
-			public void drop(DropTargetEvent event) {
-				if (event.operations != DND.DROP_NONE && LocalSelectionTransfer.getTransfer().getSelection() instanceof IStructuredSelection) {
-					dragOver(event);
-					IStructuredSelection selection = (IStructuredSelection) LocalSelectionTransfer.getTransfer().getSelection();
-					if (selection != null && !selection.isEmpty() && event.item != null && event.item.getData() != null) {
-						/*
-						 * the command uses these numbers instead of the
-						 * feedback constants (even though it converts in
-						 * the other direction as well)
-						 */
-						float feedbackFloat = getHeightInItem(event);
-
-						final DragNodeCommand command = new DragNodeCommand(event.item.getData(), feedbackFloat, event.operations, event.detail, selection.toList(), XMLTableTreeViewer.this);
-						if (command != null && command.canExecute()) {
-							SafeRunnable.run(new SafeRunnable() {
-								public void run() throws Exception {
-									command.execute();
-								}
-							});
-						}
-					}
-				}
-			}
-
-			public void dropAccept(DropTargetEvent event) {
-			}
-
-			public void dragOver(DropTargetEvent event) {
-				event.feedback = DND.FEEDBACK_SELECT;
-				float feedbackFloat = getHeightInItem(event);
-				if (feedbackFloat > 0.75) {
-					event.feedback = DND.FEEDBACK_INSERT_AFTER;
-				}
-				else if (feedbackFloat < 0.25) {
-					event.feedback = DND.FEEDBACK_INSERT_BEFORE;
-				}
-				event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;
-			}
-
-			private float getHeightInItem(DropTargetEvent event) {
-				if(event.item == null) return .5f;
-				if (event.item instanceof TreeItem) {
-					TreeItem treeItem = (TreeItem) event.item;
-					Control control = treeItem.getParent();
-					Point point = control.toControl(new Point(event.x, event.y));
-					Rectangle bounds = treeItem.getBounds();
-					return (float) (point.y - bounds.y) / (float) bounds.height;
-				}
-				else if (event.item instanceof TableItem) {
-					TableItem tableItem = (TableItem) event.item;
-					Control control = tableItem.getParent();
-					Point point = control.toControl(new Point(event.x, event.y));
-					Rectangle bounds = tableItem.getBounds(0);
-					return (float) (point.y - bounds.y) / (float) bounds.height;
-				}
-				else {
-					return 0.0F;
-				}
-			}
-		};
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTreeExtension.java b/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTreeExtension.java
deleted file mode 100644
index 2775fae..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-multipage/org/eclipse/wst/xml/ui/internal/tabletree/XMLTreeExtension.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*****************************************************************************
- * Copyright (c) 2004 IBM Corporation and others. All rights reserved. This
- * program and the accompanying materials are made available under the terms
- * of the Eclipse Public License v1.0 which accompanies this distribution, and
- * is available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: IBM Corporation - initial API and implementation
- ****************************************************************************/
-package org.eclipse.wst.xml.ui.internal.tabletree;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Item;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDescriptionBuilder;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class XMLTreeExtension extends TreeExtension {
-
-	public final static String STRUCTURE_PROPERTY = XMLEditorMessages.XMLTreeExtension_0;
-	public final static String VALUE_PROPERTY = XMLEditorMessages.XMLTreeExtension_1;
-
-	protected Composite control;
-	protected MyCellModifier modifier;
-	protected XMLTableTreePropertyDescriptorFactory propertyDescriptorFactory;
-	protected CMDescriptionBuilder decriptionBuilder = new CMDescriptionBuilder();
-	protected TreeContentHelper treeContentHelper = new TreeContentHelper();
-
-	protected Color f1, f2, b1, b2;
-	protected boolean cachedDataIsValid = true;
-
-	public XMLTreeExtension(Tree tree) {
-		super(tree);
-		control = tree;
-		modifier = new MyCellModifier();
-		setCellModifier(modifier);
-		String[] properties = {STRUCTURE_PROPERTY, VALUE_PROPERTY};
-		setColumnProperties(properties);
-
-		f1 = tree.getDisplay().getSystemColor(SWT.COLOR_BLACK);
-		Color background = tree.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND);
-
-		int r = Math.abs(background.getRed() - 125);
-		int g = Math.abs(background.getGreen() - 85);
-		int b = Math.abs(background.getBlue() - 105);
-
-		f2 = new Color(tree.getDisplay(), r, g, b);
-		b1 = tree.getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION);
-		b2 = background;
-
-		propertyDescriptorFactory = new XMLTableTreePropertyDescriptorFactory();
-	}
-
-	public void dispose() {
-		super.dispose();
-		f2.dispose();
-	}
-
-	public void resetCachedData() {
-		cachedDataIsValid = false;
-	}
-
-	public void paintItems(GC gc, TreeItem[] items, Rectangle treeBounds) {
-		super.paintItems(gc, items, treeBounds);
-		cachedDataIsValid = true;
-	}
-
-	protected Object[] computeTreeExtensionData(Object object) {
-		Color color = f1;
-		String string = ""; //$NON-NLS-1$
-		if (string.length() == 0) {
-			string = (String) modifier.getValue(object, VALUE_PROPERTY);
-			color = f1;
-		}
-		if (string.length() == 0 && object instanceof Element) {
-			string = getElementValueHelper((Element) object);
-			color = f2;
-		}
-		Object[] data = new Object[2];
-		data[0] = string;
-		data[1] = color;
-		return data;
-	}
-
-	protected void paintItem(GC gc, TreeItem item, Rectangle bounds) {
-		super.paintItem(gc, item, bounds);
-		Object[] data = computeTreeExtensionData(item.getData());
-		if (data != null && data.length == 2) {
-			gc.setClipping(columnPosition, bounds.y + 1, controlWidth, bounds.height);
-			gc.setForeground((Color) data[1]);
-			gc.drawString((String) data[0], columnPosition + 5, bounds.y + 1);
-			gc.setClipping((Rectangle) null);
-		}
-	}
-
-	protected void addEmptyTreeMessage(GC gc) {
-		// here we print a message when the document is empty just to give the
-		// user a visual cue
-		// so that they know how to proceed to edit the blank view
-		gc.setForeground(fTree.getDisplay().getSystemColor(SWT.COLOR_BLACK));
-		gc.setBackground(fTree.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-		gc.drawString(XMLEditorMessages.XMLTreeExtension_3, 10, 10);
-		gc.drawString(XMLEditorMessages.XMLTreeExtension_4, 10, 10 + gc.getFontMetrics().getHeight());
-	}
-
-	public String getElementValueHelper(Element element) {
-		String result = null;
-
-		ModelQuery mq = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-		if (result == null && mq != null) {
-			CMElementDeclaration ed = mq.getCMElementDeclaration(element);
-			if (ed != null && !Boolean.TRUE.equals(ed.getProperty("isInferred"))) { //$NON-NLS-1$
-				result = decriptionBuilder.buildDescription(ed);
-			}
-		}
-		return result != null ? result : ""; //$NON-NLS-1$
-	}
-
-	/**
-	 * 
-	 */
-	public class MyCellModifier implements ICellModifier, TreeExtension.ICellEditorProvider {
-		public boolean canModify(Object element, String property) {
-			boolean result = false;
-			if (element instanceof Node) {
-				Node node = (Node) element;
-				result = property == VALUE_PROPERTY && treeContentHelper.isEditable(node);
-			}
-			return result;
-		}
-
-		public Object getValue(Object object, String property) {
-			String result = null;
-			if (object instanceof Node) {
-				result = treeContentHelper.getNodeValue((Node) object);
-			}
-			return (result != null) ? result : ""; //$NON-NLS-1$
-		}
-
-		public void modify(Object element, String property, Object value) {
-			// enableNodeSelectionListener(false);
-			Item item = (Item) element;
-			String oldValue = treeContentHelper.getNodeValue((Node) item.getData());
-			String newValue = value.toString();
-			if (newValue != null && !newValue.equals(oldValue)) {
-				treeContentHelper.setNodeValue((Node) item.getData(), value.toString());
-			}
-			// enableNodeSelectionListener(true);
-		}
-
-		public CellEditor getCellEditor(Object o, int col) {
-			IPropertyDescriptor pd = propertyDescriptorFactory.createPropertyDescriptor(o);
-			return pd != null ? pd.createPropertyEditor(control) : null;
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/XMLValidationUIMessages.java b/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/XMLValidationUIMessages.java
deleted file mode 100644
index 9302cd8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/XMLValidationUIMessages.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.validation;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XML Validation
- */
-public class XMLValidationUIMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.ui.internal.validation.xmlvalidation"; //$NON-NLS-1$
-
-	private XMLValidationUIMessages() {
-		// cannot create new instance
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, XMLValidationUIMessages.class);
-	}
-	public static String _UI_REF_FILE_ERROR_DESCRIPTION;
-	public static String _UI_REF_FILE_ERROR_MESSAGE;
-	public static String _UI_REF_FILE_ERROR_DETAILS;
-	public static String _UI_DETAILS_INFORMATION_UNAVAILABLE;
-	public static String _UI_DETAILS_INFO_REVALIDATE_TO_REGENERATE;
-	public static String _UI_SAVE_DIRTY_FILE_MESSAGE;
-	public static String _UI_SAVE_DIRTY_FILE_TITLE;
-	public static String TaskListTableViewer_0;
-	public static String TaskListTableViewer_1;
-	public static String TaskListTableViewer_2;
-	public static String TaskListTableViewer_3;
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorActionDelegate.java b/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorActionDelegate.java
deleted file mode 100644
index 96457cd..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorActionDelegate.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.validation.core.errorinfo;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-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.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.actions.ActionDelegate;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-import org.eclipse.wst.xml.ui.internal.validation.XMLValidationUIMessages;
-
-public class ReferencedFileErrorActionDelegate extends ActionDelegate implements IObjectActionDelegate
-{
-  protected IMarker selectedMarker;
-
-  /**
-   * 
-   */
-  public ReferencedFileErrorActionDelegate()
-  {
-    super();
-  }
-
-  public void run(IAction action)
-  {
-    if (selectedMarker != null)
-    {
-      try
-      {
-      	
-        Map map = (Map) selectedMarker.getResource().getSessionProperty(ValidationMessage.ERROR_MESSAGE_MAP_QUALIFIED_NAME);
-        if (map == null)
-        {
-			String infoUnavailable = XMLValidationUIMessages._UI_DETAILS_INFORMATION_UNAVAILABLE;
-			String revalidateToRegenerateErrors = XMLValidationUIMessages._UI_DETAILS_INFO_REVALIDATE_TO_REGENERATE;
-        	MessageDialog.openInformation(Display.getCurrent().getActiveShell(), infoUnavailable, revalidateToRegenerateErrors);
-        }
-        else
-        {
-          String uri = null;
-
-          String groupName = (String) selectedMarker.getAttribute("groupName"); //$NON-NLS-1$
-          if (groupName.startsWith("referencedFileError")) //$NON-NLS-1$
-          {
-            int index1 = groupName.indexOf("("); //$NON-NLS-1$
-            int index2 = groupName.lastIndexOf(")"); //$NON-NLS-1$
-            if (index1 != -1 && index2 > index1)
-            {
-              uri = groupName.substring(index1 + 1, index2);
-            }
-          }
-
-          if (uri != null)
-          {
-            List list = Collections.EMPTY_LIST;
-
-            ValidationMessage message = (ValidationMessage) map.get(uri);
-            if (message != null)
-            {
-              list = message.getNestedMessages();
-            }
-
-            String validatedFileURI = selectedMarker.getResource().getLocation().toOSString();//URIHelper.normalize(selectedMarker.getResource().getLocation().toOSString());
-            validatedFileURI = "file:/" + validatedFileURI; //$NON-NLS-1$
-
-            ReferencedFileErrorDialog dialog = new ReferencedFileErrorDialog(Display.getCurrent().getActiveShell(), list, validatedFileURI, uri);
-            dialog.createAndOpen();
-          }
-        }
-      }
-      catch (CoreException e)
-      {
-    	// Do nothing.
-      }
-    }
-  }
-
-  public void selectionChanged(IAction action, ISelection selection)
-  {
-    super.selectionChanged(action, selection);
-    selectedMarker = null;
-    if (selection instanceof IStructuredSelection)
-    {
-      try
-      {
-        Object first = ((IStructuredSelection) selection).getFirstElement();
-        
-        IMarker marker = (IMarker)first;
-        selectedMarker = marker;
-//        String groupName = (String) marker.getAttribute("groupName");
-//        if (groupName.startsWith("referencedFileError"))
-//        {
-//          selectedMarker = marker;
-//        }
-      }
-      catch (Exception e)
-      {
-    	// Do nothing.
-      }
-    }
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
-   */
-  public void setActivePart(IAction action, IWorkbenchPart targetPart)
-  {
-   //dw int i = 0;
-  }
-}
-
-/*
-	private static void printMap(Map map)
-	{
-		for (Iterator i = map.keySet().iterator(); i.hasNext();)
-		{
-			String key = (String) i.next();
-			System.out.println("entry : " + key + " = " + map.get(key));
-		}
-	}
-  
-	private void printErrorMap(Map map)
-	{
-		for (Iterator i = map.keySet().iterator(); i.hasNext();)
-		{
-			String key = (String) i.next();
-			ErrorMessage message = (ErrorMessage) map.get(key);
-			if (message != null)
-			{
-				printErrorMessage(message);
-			}
-		}
-	}
-  
-	private void printErrorMessage(ErrorMessage errorMessage)
-	{
-		System.out.println(errorMessage.getText());
-		for (Iterator i = errorMessage.getNestedErrors().iterator(); i.hasNext();)
-		{
-			printErrorMessage((ErrorMessage) i.next());
-		}
-	}
- */
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorDialog.java b/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorDialog.java
deleted file mode 100644
index dc465c6..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorDialog.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.validation.core.errorinfo;
-
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-import org.eclipse.wst.xml.ui.internal.validation.XMLValidationUIMessages;
-
-
-public class ReferencedFileErrorDialog extends Dialog
-{
-  protected TaskListTableViewer tableViewer;
-  protected List errorList;
-  protected String markedUpDetailsMessage;
-  protected String contextFile;
-  protected String referencedFile;
-  protected StyledText styledText;
-  protected Text fullFileNameField;
-
-  public ReferencedFileErrorDialog(Shell parentShell, List errorList, String contextFile, String referencedFile)
-  {
-    super(parentShell);
-
-    int styleBits = getShellStyle() | SWT.RESIZE;
-    styleBits &= ~SWT.APPLICATION_MODAL;
-
-    setShellStyle(styleBits);
-    this.errorList = errorList;
-
-    this.referencedFile = referencedFile;
-    this.contextFile = contextFile;
-    this.markedUpDetailsMessage = getMarkedUpDetailsMessage();
-  }
-
-  public int createAndOpen()
-  {
-    create();
-    getShell().setText(XMLValidationUIMessages._UI_REF_FILE_ERROR_DETAILS);
-	
-    setBlockOnOpen(false);
-    return open();
-  }
-
-
-  protected Control createButtonBar(Composite parent)
-  {
-    Composite composite = new Composite(parent, SWT.NONE);
-    composite.setLayout(new GridLayout(2, false));
-    composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    fullFileNameField = new Text(composite, SWT.NONE);
-    fullFileNameField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    fullFileNameField.setBackground(parent.getBackground());
-    fullFileNameField.setEditable(false);
-
-    super.createButtonBar(composite);
-
-    return composite;
-  }
-
-  protected Control createDialogArea(Composite parent)
-  {
-    Composite dialogArea = (Composite) super.createDialogArea(parent);
-    dialogArea.setLayout(new GridLayout());
-
-    Composite c = new Composite(dialogArea, SWT.NONE);
-    c.setLayout(new GridLayout());
-    c.setLayoutData(createGridData(true, -1, 200));
-
-    styledText = new StyledText(c, SWT.MULTI | SWT.WRAP);
-    styledText.setBackground(c.getBackground());
-    setStyledText(styledText, markedUpDetailsMessage);
-    styledText.setEditable(false);
-    styledText.setLayoutData(createGridData(false, 650, -1));
-
-    MouseListener mouseListener = new MouseListener();
-    styledText.addMouseMoveListener(mouseListener);
-
-    tableViewer = new TaskListTableViewer(c, 10);
-    tableViewer.setInput(errorList);
-    tableViewer.addSelectionChangedListener(new InternalSelectionListener());
-    tableViewer.getControl().setLayoutData(createGridData(true, 700, -1));
-    return dialogArea;
-  }
-
-  String getFullURI(int offset)
-  {
-    String uri = ""; //$NON-NLS-1$
-    int index = getIndex(offset);
-    if (index != -1)
-    {
-      if (index == 0 || index == 2 || index == 3)
-      {
-        uri = referencedFile;
-      }
-      else
-      {
-        uri = contextFile;
-      }
-    }
-    return uri;
-  }
-
-  private int getIndex(int offset)
-  {
-    int result = -1;
-    StyleRange[] range = styledText.getStyleRanges();
-    for (int i = 0; i < range.length; i++)
-    {
-      int l = range[i].start;
-      int r = l + range[i].length;
-      if (l <= offset && r >= offset)
-      {
-        result = i;
-        break;
-      }
-    }
-    return result;
-  }
-
-  class MouseListener implements MouseMoveListener
-  {
-    public void mouseMove(MouseEvent event)
-    {
-      String toolTipText = ""; //$NON-NLS-1$
-      try
-      {
-
-        int offset = styledText.getOffsetAtLocation(new Point(event.x, event.y));
-        toolTipText = getFullURI(offset);
-
-      }
-      catch (Exception e)
-      {
-    	// Do nothing.
-      }
-      styledText.setToolTipText(toolTipText);
-      if (toolTipText != null && toolTipText.length() > 0)
-      {
-        fullFileNameField.setText(toolTipText);
-      }
-    }
-  }
-
-  private String getMarkedUpDetailsMessage()
-  {
-	String detailsMessage = "";  	 //$NON-NLS-1$
-    // TODO... need to move '_UI_REF_FILE_ERROR_DESCRIPTION' to this plugin's properties file
-    //			
-      String string = XMLValidationUIMessages._UI_REF_FILE_ERROR_DESCRIPTION;
-      // TODO... need to edit the properties file to remove "'" characters from the string
-      // I'm using these characters to markup the bold font. It's safer if I add these programtically.
-      //
-	  string = removePattern(string, "'"); //$NON-NLS-1$
-
-      String c = "'" + getLastSegment(contextFile) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
-      String r = "'" + getLastSegment(referencedFile) + "'"; //$NON-NLS-1$ //$NON-NLS-2$
-
-      detailsMessage = NLS.bind(string, new Object[] { r, c, r, c });    
-    return detailsMessage;
-  }
-
-  private String removePattern(String string, String pattern)
-  {
-  	while (true)
-  	{
-  		int index = string.indexOf(pattern);
-  		if (index != -1)
-  		{
-  			string = string.substring(0, index) + string.substring(index + pattern.length());
-  		}
-  		else
-  		{
-  			break;
-  		}
-  	}
-  	return string;  	
-  }
-
-  private void setStyledText(StyledText styledText, String text)
-  {
-    String visibleMessage = ""; //$NON-NLS-1$
-    for (StringTokenizer st = new StringTokenizer(markedUpDetailsMessage, "'", false); st.hasMoreTokens();) //$NON-NLS-1$
-    {
-      String token = st.nextToken();
-      visibleMessage += token;
-    }
-
-    styledText.setText(visibleMessage);
-   //dw Font font = styledText.getFont();
-
-    boolean inQuote = false;
-    int position = 0;
-    for (StringTokenizer st = new StringTokenizer(markedUpDetailsMessage, "'", true); st.hasMoreTokens();) //$NON-NLS-1$
-    {
-      String token = st.nextToken();
-
-      if (token.equals("'")) //$NON-NLS-1$
-      {
-        inQuote = !inQuote;
-      }
-      else
-      {
-        if (inQuote)
-        {
-          try
-          {
-
-            StyleRange style = new StyleRange(position, token.length(), styledText.getForeground(), styledText.getBackground(), SWT.BOLD);
-            styledText.setStyleRange(style);
-          }
-          catch (Exception e)
-          {
-            e.printStackTrace();
-          }
-        }
-        position = position + token.length();
-      }
-    }
-  }
-
-  private static GridData createGridData(boolean fillBoth, int w, int h)
-  {
-    GridData gd = new GridData(fillBoth ? GridData.FILL_BOTH : GridData.FILL_HORIZONTAL);
-    gd.widthHint = w;
-    gd.heightHint = h;
-    return gd;
-  }
-  
-  private static String getLastSegment(String uri)
-  {
-    String result = uri;
-    int index = Math.max(uri.lastIndexOf("/"), uri.lastIndexOf("\\")); //$NON-NLS-1$ //$NON-NLS-2$
-    if (index != -1)
-    {
-      result = uri.substring(index + 1);
-    }
-    return result;
-  }
-
-  protected class InternalSelectionListener implements ISelectionChangedListener
-  {
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      ISelection selection = event.getSelection();
-      if (selection instanceof StructuredSelection)
-      {
-        ValidationMessage validationMessage = (ValidationMessage) ((StructuredSelection) selection).getFirstElement();
-        if (validationMessage != null)
-        {
-          String uristring = validationMessage.getUri();
-          ReferencedFileErrorUtility.openEditorAndGotoError(uristring, validationMessage.getLineNumber(), validationMessage.getColumnNumber());
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorUtility.java b/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorUtility.java
deleted file mode 100644
index b30df8c..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/ReferencedFileErrorUtility.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.validation.core.errorinfo;
-
-import java.net.URL;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.editors.text.TextEditor;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.wst.xml.core.internal.validation.core.logging.LoggerFactory;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-
-public class ReferencedFileErrorUtility
-{
-  public static void openEditorAndGotoError(String uristring, final int line, final int column)
-  {
-    if (uristring != null)
-    {
-      try
-      {
-        URL uri = new URL(uristring);
-        if (uri != null)
-        {
-          if ("file".equals(uri.getProtocol())) //$NON-NLS-1$
-          {
-            String pathString = uri.getPath();
-            IPath path = new Path(pathString);
-            String device = path.getDevice();
-            if (device != null && device.startsWith("/")) //$NON-NLS-1$
-            {
-              path = path.setDevice(device.substring(1));
-            }
-            IFile file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
-            if (file != null && file.exists())
-            {
-              //WorkbenchUtility.openEditor(file);
-              // Open the editor for this file.
-              final IFile iFile = file;
-              IWorkbench workbench = XMLUIPlugin.getInstance().getWorkbench();
-              final IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-
-              Display.getDefault().asyncExec
-              (new Runnable()
-              {
-                public void run()
-                {
-                  try
-                  {
-                  	IEditorDescriptor descriptor = XMLUIPlugin.getInstance().getWorkbench().getEditorRegistry().getDefaultEditor(iFile.getName());
-                  	String editorId;
-                  	if(descriptor != null)
-                  	{
-                  	  editorId = descriptor.getId();
-                  	}
-                  	else
-                  	{
-                  	  editorId = XMLUIPlugin.getInstance().getWorkbench().getEditorRegistry().getDefaultEditor(iFile.getName() + ".txt").getId(); //$NON-NLS-1$
-                  	}
-                    workbenchWindow.getActivePage().openEditor(new FileEditorInput(iFile), editorId);
-                  }
-                  catch (PartInitException ex)
-                  {
-                    LoggerFactory.getLoggerInstance().logError("Exception encountered when attempting to open file: " + iFile + "\n\n", ex); //$NON-NLS-1$ //$NON-NLS-2$
-                  	//B2BGUIPlugin.getPlugin().getMsgLogger().write("Exception encountered when attempting to open file: " + iFile + "\n\n" + ex);
-                  }
-                }
-              });
-                
-              Runnable runnable = new Runnable()
-              {
-                public void run()
-                {
-                  //IEditorPart editorPart = WorkbenchUtility.getActiveEditor();
-                  IEditorPart editorPart = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-                  gotoError(editorPart, line, column);
-                }
-              };
-              Display.getCurrent().asyncExec(runnable);
-            }
-          }
-        }
-      }
-      catch (Exception e)
-      {
-    	// Do nothing.
-      }
-    }
-  }
-
-  static void gotoError(IEditorPart editorPart, int line, int column)
-  {
-    if (editorPart != null)
-    {
-      TextEditor textEditor = (TextEditor) editorPart.getAdapter(TextEditor.class);
-      if (textEditor != null)
-      {
-        try
-        {
-          IDocumentProvider dp = textEditor.getDocumentProvider();
-          IDocument document = (dp != null) ? dp.getDocument(textEditor.getEditorInput()) : null;
-          textEditor.selectAndReveal(document.getLineOffset(line - 1) + column - 1, 0);
-        }
-        catch (BadLocationException x)
-        {
-          // marker refers to invalid text position -> do nothing
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/TaskListTableViewer.java b/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/TaskListTableViewer.java
deleted file mode 100644
index 55a5610..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/core/errorinfo/TaskListTableViewer.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.validation.core.errorinfo;
-
-import java.util.List;
-
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.validation.XMLValidationUIMessages;
-
-
-
-public class TaskListTableViewer extends TableViewer
-{	
-  protected static final int COLUMN_ICON = 0;
-  protected static final int COLUMN_DESCRIPTION = 1;
-  protected static final int COLUMN_RESOURCE = 3;
-  protected static final int COLUMN_LOCATION = 2;
-
-  protected static final String LABEL_ICON = ""; //$NON-NLS-1$
-  protected static final String LABEL_DESCRIPTION = XMLValidationUIMessages.TaskListTableViewer_0;
-  protected static final String LABEL_RESOURCE = XMLValidationUIMessages.TaskListTableViewer_1;
-  protected static final String LABEL_LOCATION = XMLValidationUIMessages.TaskListTableViewer_2;
-
-  protected int visibleRows = -1;
-
-  protected int getColumnWidth(int column)
-  {
-    int result = 0;
-    switch (column)
-    {
-      case COLUMN_ICON :
-        {
-          result = 1;
-          break;
-        }
-      case COLUMN_DESCRIPTION :
-        {
-          result = 20;
-          break;
-        }
-      case COLUMN_RESOURCE :
-        {
-          result = 3;
-          break;
-        }
-      case COLUMN_LOCATION :
-        {
-          result = 3;
-          break;
-        }
-    }
-    return result;
-  }
-
-  public TaskListTableViewer(Composite parent, int visibleRows)
-  {
-    this(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER, visibleRows);
-  }
-
-  public TaskListTableViewer(Composite parent, int style, int visibleRows)
-  {
-    super(new Table(parent, style));
-    getTable().setLinesVisible(true);
-
-    Provider provider = new Provider();
-    setContentProvider(provider);
-    setLabelProvider(provider);
-
-    String[] columnPropertiesArray = { LABEL_ICON, LABEL_DESCRIPTION, LABEL_LOCATION };
-    setColumnProperties(columnPropertiesArray);
-
-    Table table = getTable();
-    table.setHeaderVisible(true);
-    table.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-    TableLayout layout = new TableLayout();
-
-    for (int i = 0; i < columnPropertiesArray.length; i++)
-    {
-      TableColumn column = new TableColumn(table, i);
-      column.setText(columnPropertiesArray[i]);
-      column.setAlignment(SWT.LEFT);
-      layout.addColumnData(new ColumnWeightData(getColumnWidth(i), true));
-    }
-
-    table.setLayout(layout);
-   
-    this.visibleRows = visibleRows;
-  }
-
-  /**
-  	* NamespaceInfoTableLabelProvider
-  	*/
-  protected class Provider extends LabelProvider implements ITableLabelProvider, IStructuredContentProvider
-  {
-    Viewer viewer;
-    Image errorImage; 
-    Image warnImage;
-    
-    public Provider()
-    {
-      errorImage = XMLUIPlugin.getInstance().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
-       
-      warnImage = XMLUIPlugin.getInstance().getImage(ISharedImages.IMG_OBJS_WARN_TSK);
-    }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-      this.viewer = viewer;
-    }
-
-    public Object[] getElements(Object inputElement)
-    {
-      List list = (List) viewer.getInput();
-      return list != null ? list.toArray() : null;
-    }
-
-    public Image getColumnImage(Object object, int columnIndex)
-    {
-	  ValidationMessage validationMessage = (ValidationMessage) object;    	
-      Image result = null; 
-      if (columnIndex == 0)
-      {
-      	int severity = validationMessage.getSeverity();
-      	if (severity == IMessage.HIGH_SEVERITY || 
-      	    severity == IMessage.NORMAL_SEVERITY)      	    
-      	{
-			result = errorImage;
-      	} 
-      	else
-      	{
-      	  result = warnImage;
-      	}
-      }
-      return result;
-    }
-
-    public String getColumnText(Object object, int column)
-    {
-      ValidationMessage errorMessage = (ValidationMessage) object;
-      String result = ""; //$NON-NLS-1$
-      switch (column)
-      {
-        case COLUMN_DESCRIPTION :
-          {
-            result = errorMessage.getMessage();
-            break;
-          }
-        case COLUMN_LOCATION :
-          {
-            result = XMLValidationUIMessages.TaskListTableViewer_3 + errorMessage.getLineNumber();
-            break;
-          }
-      }
-      return result;
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/xmlvalidation.properties b/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/xmlvalidation.properties
deleted file mode 100644
index 5faa59a..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-validation/org/eclipse/wst/xml/ui/internal/validation/xmlvalidation.properties
+++ /dev/null
@@ -1,29 +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
-###############################################################################
-### Constants for strings  
-
-#
-# Referenced File Dialog 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_MESSAGE          = Referenced file contains errors ({0}).  For more information, right click on the message and select "Show Details..."
-_UI_REF_FILE_ERROR_DETAILS          = Referenced File Error Details
-
-_UI_DETAILS_INFORMATION_UNAVAILABLE       = Details Information Unavailable
-_UI_DETAILS_INFO_REVALIDATE_TO_REGENERATE = Details information currently unavailable.  Please revalidate the file to regenerate the error details.
-
-#
-# Dirty File Dialog Related Messages
-#
-TaskListTableViewer_0=Description
-TaskListTableViewer_1=Resource
-TaskListTableViewer_2=Location
-TaskListTableViewer_3=line 
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationOperation.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationOperation.java
deleted file mode 100644
index 5212cc2..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationOperation.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 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.wst.xml.ui.internal.wizards;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-import java.util.zip.ZipFile;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.wizards.datatransfer.ImportOperation;
-import org.eclipse.ui.wizards.datatransfer.ZipFileStructureProvider;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.osgi.framework.Bundle;
-
-public class ExampleProjectCreationOperation implements IRunnableWithProgress {
-
-	private IResource elementToOpen;
-
-	private IOverwriteQuery overwriteQuery;
-
-	private ExampleProjectCreationWizardPage[] pages;
-
-	/**
-	 * Constructor for ExampleProjectCreationOperation
-	 */
-	public ExampleProjectCreationOperation(ExampleProjectCreationWizardPage[] myPages, IOverwriteQuery myOverwriteQuery) {
-		elementToOpen = null;
-		pages = myPages;
-		overwriteQuery = myOverwriteQuery;
-	}
-
-	private IProject configNewProject(IWorkspaceRoot root, String name, String[] natureIds, IProject[] referencedProjects, IProgressMonitor monitor) throws InvocationTargetException {
-		try {
-			IProject project = root.getProject(name);
-			if (!project.exists()) {
-				project.create(null);
-			}
-			if (!project.isOpen()) {
-				project.open(null);
-			}
-			IProjectDescription desc = project.getDescription();
-			desc.setLocation(null);
-			desc.setNatureIds(natureIds);
-			desc.setReferencedProjects(referencedProjects);
-
-			project.setDescription(desc, new SubProgressMonitor(monitor, 1));
-
-			return project;
-		}
-		catch (CoreException e) {
-			throw new InvocationTargetException(e);
-		}
-	}
-
-	private void createProject(IWorkspaceRoot root, ExampleProjectCreationWizardPage page, IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		IConfigurationElement desc = page.getConfigurationElement();
-
-		IConfigurationElement[] imports = desc.getChildren("import"); //$NON-NLS-1$
-		IConfigurationElement[] natures = desc.getChildren("nature"); //$NON-NLS-1$
-		IConfigurationElement[] references = desc.getChildren("references"); //$NON-NLS-1$
-		int nImports = (imports == null) ? 0 : imports.length;
-		int nNatures = (natures == null) ? 0 : natures.length;
-		int nReferences = (references == null) ? 0 : references.length;
-
-		monitor.beginTask(XMLWizardsMessages.ExampleProjectCreationOperation_op_desc_proj, nImports + 1);
-
-		String name = page.getProjectName();
-
-		String[] natureIds = new String[nNatures];
-		for (int i = 0; i < nNatures; i++) {
-			natureIds[i] = natures[i].getAttribute("id"); //$NON-NLS-1$
-		}
-		IProject[] referencedProjects = new IProject[nReferences];
-		for (int i = 0; i < nReferences; i++) {
-			referencedProjects[i] = root.getProject(references[i].getAttribute("id")); //$NON-NLS-1$
-		}
-
-		IProject proj = configNewProject(root, name, natureIds, referencedProjects, monitor);
-
-		for (int i = 0; i < nImports; i++) {
-			doImports(proj, imports[i], new SubProgressMonitor(monitor, 1));
-		}
-
-		String open = desc.getAttribute("open"); //$NON-NLS-1$
-		if (open != null && open.length() > 0) {
-			IResource fileToOpen = proj.findMember(new Path(open));
-			if (fileToOpen != null) {
-				elementToOpen = fileToOpen;
-			}
-		}
-
-	}
-
-	private void doImports(IProject project, IConfigurationElement curr, IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		try {
-			IPath destPath;
-			String name = curr.getAttribute("dest"); //$NON-NLS-1$
-			if (name == null || name.length() == 0) {
-				destPath = project.getFullPath();
-			}
-			else {
-				IFolder folder = project.getFolder(name);
-				if (!folder.exists()) {
-					folder.create(true, true, null);
-				}
-				destPath = folder.getFullPath();
-			}
-			String importPath = curr.getAttribute("src"); //$NON-NLS-1$
-			if (importPath == null) {
-				importPath = ""; //$NON-NLS-1$
-				Logger.log(Logger.ERROR, "projectsetup descriptor: import missing"); //$NON-NLS-1$
-				return;
-			}
-
-			ZipFile zipFile = getZipFileFromPluginDir(importPath, getContributingPlugin(curr));
-			importFilesFromZip(zipFile, destPath, new SubProgressMonitor(monitor, 1));
-		}
-		catch (CoreException e) {
-			throw new InvocationTargetException(e);
-		}
-	}
-
-	private String getContributingPlugin(IConfigurationElement configurationElement) {
-		Object parent = configurationElement;
-		while (parent != null) {
-			if (parent instanceof IExtension)
-				return ((IExtension) parent).getNamespace();
-			parent = ((IConfigurationElement) parent).getParent();
-		}
-		return null;
-	}
-
-	public IResource getElementToOpen() {
-		return elementToOpen;
-	}
-
-	private ZipFile getZipFileFromPluginDir(String pluginRelativePath, String symbolicName) throws CoreException {
-		try {
-			Bundle bundle = Platform.getBundle(symbolicName);
-			URL starterURL = new URL(bundle.getEntry("/"), pluginRelativePath); //$NON-NLS-1$
-			return new ZipFile(Platform.asLocalURL(starterURL).getFile());
-		}
-		catch (IOException e) {
-			String message = pluginRelativePath + ": " + e.getMessage(); //$NON-NLS-1$
-			Status status = new Status(IStatus.ERROR, XMLUIPlugin.ID, IStatus.ERROR, message, e);
-			throw new CoreException(status);
-		}
-	}
-
-	private void importFilesFromZip(ZipFile srcZipFile, IPath destPath, IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		ZipFileStructureProvider structureProvider = new ZipFileStructureProvider(srcZipFile);
-		ImportOperation op = new ImportOperation(destPath, structureProvider.getRoot(), structureProvider, overwriteQuery);
-		op.run(monitor);
-	}
-
-	/*
-	 * @see IRunnableWithProgress#run(IProgressMonitor)
-	 */
-	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		if (monitor == null) {
-			monitor = new NullProgressMonitor();
-		}
-		try {
-			monitor.beginTask(XMLWizardsMessages.ExampleProjectCreationOperation_op_desc, pages.length);
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-
-			for (int i = 0; i < pages.length; i++) {
-				createProject(root, pages[i], new SubProgressMonitor(monitor, 1));
-			}
-		}
-		finally {
-			monitor.done();
-		}
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationWizard.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationWizard.java
deleted file mode 100644
index 0f39284..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationWizard.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 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.wst.xml.ui.internal.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExecutableExtension;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation;
-import org.eclipse.ui.dialogs.IOverwriteQuery;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.wizards.newresource.BasicNewProjectResourceWizard;
-import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-public class ExampleProjectCreationWizard extends Wizard implements INewWizard, IExecutableExtension {
-
-	private class ImportOverwriteQuery implements IOverwriteQuery {
-
-		private int openDialog(final String file) {
-			final int[] result = {IDialogConstants.CANCEL_ID};
-			getShell().getDisplay().syncExec(new Runnable() {
-				public void run() {
-					String title = XMLWizardsMessages.ExampleProjectCreationWizard_overwritequery_title;
-					String msg = NLS.bind(XMLWizardsMessages.ExampleProjectCreationWizard_overwritequery_message, file);
-					String[] options = {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.YES_TO_ALL_LABEL, IDialogConstants.CANCEL_LABEL};
-					MessageDialog dialog = new MessageDialog(getShell(), title, null, msg, MessageDialog.QUESTION, options, 0);
-					result[0] = dialog.open();
-				}
-			});
-			return result[0];
-		}
-
-		public String queryOverwrite(String file) {
-			String[] returnCodes = {YES, NO, ALL, CANCEL};
-			int returnVal = openDialog(file);
-			return returnVal < 0 ? CANCEL : returnCodes[returnVal];
-		}
-	}
-
-	private IConfigurationElement wizardConfigElement;
-	private IConfigurationElement exampleConfigElement;
-
-	private String EXAMPLE_WIZARD_XP_ID = "org.eclipse.wst.common.ui.exampleProjectCreationWizard"; //$NON-NLS-1$
-
-	private ExampleProjectCreationWizardPage[] pages;
-
-	private final String WEB_BROWSER_ID = "org.eclipse.ui.browser.editor"; //$NON-NLS-1$
-
-	public ExampleProjectCreationWizard() {
-		super();
-		setDialogSettings(XMLUIPlugin.getDefault().getDialogSettings());
-		setWindowTitle(XMLWizardsMessages.ExampleProjectCreationWizard_title);
-		setNeedsProgressMonitor(true);
-	}
-
-	/*
-	 * @see Wizard#addPages
-	 */
-	public void addPages() {
-		super.addPages();
-
-		if (exampleConfigElement == null)
-			return;
-		IConfigurationElement[] children = exampleConfigElement.getChildren("projectsetup"); //$NON-NLS-1$
-		if (children == null || children.length == 0) {
-			Logger.log(Logger.ERROR, "descriptor must contain one ore more projectsetup tags"); //$NON-NLS-1$
-			return;
-		}
-
-		pages = new ExampleProjectCreationWizardPage[children.length];
-
-		for (int i = 0; i < children.length; i++) {
-			pages[i] = new ExampleProjectCreationWizardPage(i, children[i]);
-			addPage(pages[i]);
-		}
-	}
-	
-    public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
-		if (exampleConfigElement != null) {
-			String banner = exampleConfigElement.getAttribute("banner"); //$NON-NLS-1$
-			if (banner != null) {
-				URL imageURL = Platform.find(Platform.getBundle(exampleConfigElement.getDeclaringExtension().getNamespace()), new Path(banner));
-				ImageDescriptor desc = ImageDescriptor.createFromURL(imageURL);
-				setDefaultPageImageDescriptor(desc);
-			}
-		}
-    }
-
-	protected IConfigurationElement[] getExtendedConfigurationElements() {
-		IExtensionRegistry registry = Platform.getExtensionRegistry();
-		IExtensionPoint exampleWizardXP = registry.getExtensionPoint(EXAMPLE_WIZARD_XP_ID);
-		if (exampleWizardXP == null) {
-			return new IConfigurationElement[0];
-		}
-		IExtension extension = exampleWizardXP.getExtension(getWizardExtensionId());
-		if (extension != null) {
-			return extension.getConfigurationElements();
-		}
-		IConfigurationElement[] exampleWizardCEs = exampleWizardXP.getConfigurationElements();
-		return exampleWizardCEs;
-	}
-
-	private void handleException(Throwable target) {
-		String title = XMLWizardsMessages.ExampleProjectCreationWizard_op_error_title;
-		String message = XMLWizardsMessages.ExampleProjectCreationWizard_op_error_message;
-		if (target instanceof CoreException) {
-			IStatus status = ((CoreException) target).getStatus();
-			ErrorDialog.openError(getShell(), title, message, status);
-			Logger.logException(status.getMessage(), status.getException());
-		}
-		else {
-			MessageDialog.openError(getShell(), title, target.getMessage());
-			Logger.logException(target);
-		}
-	}
-	
-	private void openResource(final IResource resource) {
-		if (resource.getType() != IResource.FILE) {
-			return;
-		}
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window == null) {
-			return;
-		}
-		final IWorkbenchPage activePage = window.getActivePage();
-		if (activePage != null) {
-			final Display display = getShell().getDisplay();
-			display.asyncExec(new Runnable() {
-				public void run() {
-					try {
-						IDE.openEditor(activePage, (IFile) resource, WEB_BROWSER_ID, true);
-					}
-					catch (PartInitException e) {
-						Logger.logException(e);
-					}
-				}
-			});
-			BasicNewResourceWizard.selectAndReveal(resource, activePage.getWorkbenchWindow());
-		}
-	}
-
-	/*
-	 * @see Wizard#performFinish
-	 */
-	public boolean performFinish() {
-		ExampleProjectCreationOperation runnable = new ExampleProjectCreationOperation(pages, new ImportOverwriteQuery());
-
-		IRunnableWithProgress op = new WorkspaceModifyDelegatingOperation(runnable);
-		try {
-			getContainer().run(false, true, op);
-		}
-		catch (InvocationTargetException e) {
-			handleException(e.getTargetException());
-			return false;
-		}
-		catch (InterruptedException e) {
-			return false;
-		}
-		BasicNewProjectResourceWizard.updatePerspective(wizardConfigElement);
-		IResource res = runnable.getElementToOpen();
-		if (res != null) {
-			openResource(res);
-		}
-		return true;
-	}
-
-	/**
-	 * Stores the configuration element for the wizard. The config element
-	 * will be used in <code>performFinish</code> to set the result
-	 * perspective.
-	 */
-	public void setInitializationData(IConfigurationElement cfig, String propertyName, Object data) {
-		wizardConfigElement = cfig;
-		String title = wizardConfigElement.getAttribute("name"); //$NON-NLS-1$
-		if (title != null) {
-			setWindowTitle(title);
-		}
-		String wizardId = getWizardExtensionId(); //$NON-NLS-1$
-		IConfigurationElement[] exampleWizardCEs = getExtendedConfigurationElements();
-		for (int i = 0; i < exampleWizardCEs.length; i++) {
-			IConfigurationElement element = exampleWizardCEs[i];
-			String extWizardId = element.getAttribute("id"); //$NON-NLS-1$
-			if (wizardId != null && extWizardId != null && wizardId.equals(extWizardId)) {
-				exampleConfigElement = element;
-			}
-		}
-		// initializeDefaultPageImageDescriptor();
-	}
-
-	public String getWizardExtensionId() {
-		return wizardConfigElement.getAttribute("id"); //$NON-NLS-1$
-	}
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationWizardPage.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationWizardPage.java
deleted file mode 100644
index a411368..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/ExampleProjectCreationWizardPage.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2002 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.wst.xml.ui.internal.wizards;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.jface.wizard.IWizard;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.ui.dialogs.WizardNewProjectCreationPage;
-
-public class ExampleProjectCreationWizardPage extends WizardNewProjectCreationPage {
-
-	private IConfigurationElement configurationElement;
-
-	public ExampleProjectCreationWizardPage(int pageNumber, IConfigurationElement elem) {
-
-		super("page" + pageNumber); //$NON-NLS-1$
-		configurationElement = elem;
-
-		String name = getAttribute(elem, "name"); //$NON-NLS-1$
-		setInitialProjectName(calculateInitialProjectName(name));
-
-		setDescription(getAttribute(configurationElement, "pagedescription")); //$NON-NLS-1$
-		setTitle(getAttribute(configurationElement, "pagetitle")); //$NON-NLS-1$
-
-	}
-
-	/*
-	 * Set the default project name that is to appear on the initialPage page
-	 * of this wizard.
-	 */
-	protected String calculateInitialProjectName(String projectName) {
-		IProject projectHandle = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
-		if (!projectHandle.exists()) {
-			return projectName;
-		}
-		// Change the name until it doesn't exists. Try 9 times and then
-		// give up.
-		for (int i = 1; i < 10; i++) {
-			projectHandle = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName + i);
-			if (!projectHandle.exists()) {
-				return projectName + i;
-			}
-		}
-		return projectName + "9"; //$NON-NLS-1$
-
-	}
-
-	private String getAttribute(IConfigurationElement elem, String tag) {
-		String res = elem.getAttribute(tag);
-		if (res == null) {
-			return '!' + tag + '!';
-		}
-		return res;
-	}
-
-
-
-	/**
-	 * Returns the configuration element of this page.
-	 * 
-	 * @return Returns a IConfigurationElement
-	 */
-	public IConfigurationElement getConfigurationElement() {
-		return configurationElement;
-	}
-
-	/**
-	 * @see org.eclipse.ui.dialogs.WizardNewProjectCreationPage#validatePage()
-	 */
-	protected boolean validatePage() {
-		if (!super.validatePage())
-			return false;
-
-		String projectName = getProjectName();
-		if (projectName == null)
-			return false;
-
-		IWizard wizard = getWizard();
-		if (wizard instanceof ExampleProjectCreationWizard) {
-			IWizardPage[] pages = wizard.getPages();
-			for (int i = 0; i < pages.length; i++) {
-				if ((pages[i] != this) && (pages[i] instanceof ExampleProjectCreationWizardPage)) {
-					if (projectName.equals(((ExampleProjectCreationWizardPage) pages[i]).getProjectName())) {
-						setErrorMessage(XMLWizardsMessages.ExampleProjectCreationWizardPage_error_alreadyexists);
-						return false;
-					}
-				}
-			}
-		}
-
-		return true;
-	}
-
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/IXMLWizardHelpContextIds.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/IXMLWizardHelpContextIds.java
deleted file mode 100644
index e342efa..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/IXMLWizardHelpContextIds.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-/**
- * Help context ids for the xml wizard.
- * <p>
- * This interface contains constants only; it is not intended to be
- * implemented.
- * </p>
- */
-interface IXMLWizardHelpContextIds {
-	// org.eclipse.wst.xml.ui.
-	public static final String PREFIX = XMLUIPlugin.ID + "."; //$NON-NLS-1$
-	// Create XML file from a DTD file radio
-	public static final String XML_NEWWIZARD_CREATEXML1_HELPID = PREFIX + "xmlc0101"; //$NON-NLS-1$
-	// Create XML file from an XML schema file radio button
-	public static final String XML_NEWWIZARD_CREATEXML2_HELPID = PREFIX + "xmlc0102"; //$NON-NLS-1$
-	// Create XML file from scratch radio button
-	public static final String XML_NEWWIZARD_CREATEXML3_HELPID = PREFIX + "xmlc0103"; //$NON-NLS-1$
-	// Select Source file page
-	public static final String XML_NEWWIZARD_SELECTSOURCE_HELPID = PREFIX + "xmlc0500"; //$NON-NLS-1$
-	// Root element for both DTD and XML schema
-	public static final String XML_NEWWIZARD_SELECTROOTELEMENT_HELPID = PREFIX + "xmlc0410"; //$NON-NLS-1$
-	// Create Optional Attributes
-	public static final String XML_NEWWIZARD_SELECTROOTELEMENT1_HELPID = PREFIX + "xmlc0441"; //$NON-NLS-1$
-	// Create Optional Elements
-	public static final String XML_NEWWIZARD_SELECTROOTELEMENT2_HELPID = PREFIX + "xmlc0442"; //$NON-NLS-1$
-	// Create first choice of required choice
-	public static final String XML_NEWWIZARD_SELECTROOTELEMENT3_HELPID = PREFIX + "xmlc0443"; //$NON-NLS-1$
-	// Fill elements and attribute with data
-	public static final String XML_NEWWIZARD_SELECTROOTELEMENT4_HELPID = PREFIX + "xmlc0444"; //$NON-NLS-1$
-	// System ID for DTD
-	public static final String XML_NEWWIZARD_SELECTROOTELEMENT5_HELPID = PREFIX + "xmlc0210"; //$NON-NLS-1$
-	// Public ID for DTD
-	public static final String XML_NEWWIZARD_SELECTROOTELEMENT6_HELPID = PREFIX + "xmlc0220"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NamespaceInfoContentBuilder.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NamespaceInfoContentBuilder.java
deleted file mode 100644
index 5817c01..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NamespaceInfoContentBuilder.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.ContentBuilder;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-
-public class NamespaceInfoContentBuilder extends ContentBuilder
-  {      
-    protected int count = 1;   
-    public List list = new Vector();
-    protected Hashtable table = new Hashtable();   
-
-    public NamespaceInfoContentBuilder()
-    {
-      super();
-    }
-   
-    public void visitCMElementDeclaration(CMElementDeclaration ed)
-    {                      
-      if (ed.getProperty("http://org.eclipse.wst/cm/properties/definitionInfo") != null) //$NON-NLS-1$
-      {
-        super.visitCMElementDeclaration(ed);
-      }
-    }
-
-    protected void createAnyElementNode(CMAnyElement anyElement)
-    {
-      String uri = anyElement.getNamespaceURI();
-      if (uri != null && !uri.startsWith("##")) //$NON-NLS-1$
-      {
-        if (table.get(uri) == null)
-        {
-          NamespaceInfo info = new NamespaceInfo();
-          info.uri = uri;     
-          info.prefix = "p" + count++; //$NON-NLS-1$
-          table.put(uri, info); 
-          list.add(info);
-        }
-      }
-    }
-  }                         
-
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewModelWizard.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewModelWizard.java
deleted file mode 100644
index e8de054..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewModelWizard.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-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.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-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.Event;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-
-public class NewModelWizard extends Wizard implements INewWizard
-{
-  
-  protected IStructuredSelection fSelection;
-  protected IWorkbench fWorkbench;
-  protected String fCurrentDirectory;
-
-  public NewModelWizard()
-  {
-	  super();
-  }
-
-  public void init(IWorkbench workbench, IStructuredSelection selection)
-  {
-    this.fWorkbench = workbench;
-    this.fSelection = selection;
-  }
-
-  public boolean performFinish()
-  {
-    boolean result = true;
-    WizardPage currentPage = (WizardPage)getContainer().getCurrentPage();
-    if (currentPage != null)
-    {
-      result = currentPage.isPageComplete();
-    }
-    return result;
-  }
-
-  /**
-   * showFileDialog
-   */
-  public FileDialog showFileDialog(Shell shell, String defaultDirectory, String defaultFile, String [] filterExtensions)
-  {
-    FileDialog fileDialog = new FileDialog(shell, SWT.OPEN);
-
-    // Get the last visit directory if we haven't defined a particular one here.
-    if (defaultDirectory == null || defaultDirectory.length() == 0)
-    {
-      //defaultDirectory = Locate.instance(this).getLastSelectedDirectory(getResourcePath());
-    }
-
-    if (defaultDirectory != null && defaultDirectory.length() != 0)
-    {
-      fileDialog.setFilterPath(defaultDirectory);
-    }
-
-    fileDialog.setFileName(defaultFile);
-    fileDialog.setFilterExtensions(filterExtensions);
-
-    fileDialog.open();
-
-    return fileDialog;
-  }
-
-
-  public void setCurrentDirectory(String currentDirectory1)
-  {
-    this.fCurrentDirectory = currentDirectory1;
-  }
-
-
-  public void createWorkbenchResource(IContainer container, String fileName)
-  {
-    IPath path = container.getFullPath();
-    path = path.append(fileName);
-    IFile file = container.getWorkspace().getRoot().getFile(path);
-    if (!file.exists())
-    {
-      try
-      {
-        file.create(null, true, null);
-      }
-      catch (CoreException e)
-      {
-        //XMLBuilderPlugin.getPlugin().getMsgLogger().write("Encountered exception creating file: " + e.getMessage());
-      }
-    }
-  }
-
-  /**
-   * StartPage
-   */
-  public class StartPage extends WizardPage implements Listener
-  {
-    protected int selectedButton;
-    protected String[] radioButtonLabel;
-    protected Button[] radioButton;
-
-    public StartPage(String pageName, String[] radioButtonLabel)
-    {
-      super(pageName);
-      this.radioButtonLabel = radioButtonLabel;
-      radioButton = new Button[radioButtonLabel.length];
-    }
-
-    public Button getRadioButtonAtIndex(int i)
-    {
-      Button result = null;
-      if (i >= 0 && i < radioButton.length)
-      {
-        result = radioButton[i];
-      }
-      return result;
-    }
-
-    public int getSelectedRadioButtonIndex()
-    {
-      int result = -1;
-      for (int i = 0; i < radioButton.length; i++)
-      {
-        if (radioButton[i].getSelection())
-        {
-          result = i;
-        }
-      }
-      return result;
-    }
-
-    public void createControl(Composite parent)
-    {
-      Composite base = new Composite(parent, SWT.NONE);
-      base.setLayout(new GridLayout());
-
-      //radio buttons' container	
-      Composite radioButtonsGroup = new Composite(base, SWT.NONE);
-      GridLayout layout = new GridLayout();
-      layout.numColumns = 1;
-      layout.makeColumnsEqualWidth = true;
-      layout.marginWidth = 0;                
-
-      radioButtonsGroup.setLayout(layout);
-      GridData gd = new GridData(GridData.FILL_BOTH);
-      gd.heightHint = 300;
-      gd.widthHint = 400;
-      radioButtonsGroup.setLayoutData(gd);
-
-      for (int i = 0; i < radioButtonLabel.length; i++)
-      {
-        radioButton[i] = new Button(radioButtonsGroup, SWT.RADIO);
-        radioButton[i].setText(radioButtonLabel[i]);
-        radioButton[i].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        //radioButton[i].addListener(SWT.Modify, this);
-      }
-      setControl(base);
-      setPageComplete(isPageComplete());
-    }
-
-    public void handleEvent(Event event)
-    {
-      if (event.type == SWT.Modify)
-      {
-        setPageComplete(isPageComplete());
-      }
-    }
-  }
-
-
-  /**
-   *  NewFilePage
-   */
-  public class NewFilePage extends WizardNewFileCreationPage
-  {
-    public String defaultName = "NewFile"; //$NON-NLS-1$
-    public String defaultFileExtension = ".txt"; //$NON-NLS-1$
-    public String[] filterExtensions = { "*.txt"}; //$NON-NLS-1$
-	private List fValidExtensions = null;
-
-    public NewFilePage(IStructuredSelection selection)
-    {
-      super("", selection); //$NON-NLS-1$
-    }
-
-    protected String computeDefaultFileName()
-    {
-      int count = 0;
-      String fileName = defaultName + defaultFileExtension;
-      IPath containerFullPath = getContainerFullPath();
-      if (containerFullPath != null)
-      {
-        while (true)
-        {
-          IPath path = containerFullPath.append(fileName);
-          if (ResourcesPlugin.getWorkspace().getRoot().exists(path))
-          {
-            count++;
-            fileName = defaultName + count + defaultFileExtension;
-          }
-          else
-          {
-            break;
-          }
-        }
-      }
-      return fileName;
-    }
-
-    // returns true if file of specified name exists in any case for selected container
-    protected String existsFileAnyCase(String fileName)
-    {
-      if ( (getContainerFullPath() != null) && (getContainerFullPath().isEmpty() == false)
-            && (fileName.compareTo("") != 0)) //$NON-NLS-1$
-      {
-        //look through all resources at the specified container - compare in upper case
-        IResource parent = ResourcesPlugin.getWorkspace().getRoot().findMember(getContainerFullPath());
-        if (parent instanceof IContainer)
-        {
-          IContainer container = (IContainer) parent;
-          try
-          {
-            IResource[] members = container.members();
-            String enteredFileUpper = fileName.toUpperCase();
-            for (int i=0; i<members.length; i++)
-            {
-              String resourceUpperName = members[i].getName().toUpperCase();
-              if (resourceUpperName.equals(enteredFileUpper))
-              {  
-                return members[i].getName();    
-              }
-            }
-          }
-          catch (CoreException e)
-          {
-          }
-        }
-      }
-      return null;
-    }
-
-
-    protected boolean validatePage() {
-		String fullFileName = getFileName();
-		if (!extensionValidForContentType(fullFileName)) {
-			setErrorMessage(NLS.bind(XMLWizardsMessages._ERROR_BAD_FILENAME_EXTENSION, getValidExtensions().toString()));
-			return false;
-		}
-		// no fileExtension, let's check for this file with default file extension
-		fullFileName += defaultFileExtension;
-		if ((getContainerFullPath() != null) && (getContainerFullPath().isEmpty() == false) && (getFileName().compareTo("") != 0)) //$NON-NLS-1$
-		{
-			Path fullPath = new Path(getContainerFullPath().toString() + '/' + fullFileName);
-			IResource resource = ResourcesPlugin.getWorkspace().getRoot().findMember(fullPath);
-			if (resource != null) {
-				setErrorMessage(XMLWizardsMessages._ERROR_FILE_ALREADY_EXISTS);
-				return false;
-			}
-		}
-
-		// check for file should be case insensitive
-		String sameName = existsFileAnyCase(fullFileName);
-		if (sameName != null) {
-			//ISSUE: is qualitifedFileName not needed, or is it supposed to be used in error message?
-			//String qualifiedFileName = getContainerFullPath().toString() + '/' + fullFileName;
-			setErrorMessage(XMLWizardsMessages._ERROR_FILE_ALREADY_EXISTS + " " + sameName); //$NON-NLS-1$
-			return false;
-		}
-
-		return super.validatePage();
-	}
-
-    public void createControl(Composite parent)
-    {
-      // inherit default container and name specification widgets
-      super.createControl(parent);
-      this.setFileName(computeDefaultFileName());
-      setPageComplete(validatePage());
-    }
-	
-	/**
-	 * Get list of valid extensions for XML Content type
-	 * 
-	 * @return List
-	 */
-	List getValidExtensions() {
-		if (fValidExtensions == null) {
-			IContentType type = Platform.getContentTypeManager().getContentType(ContentTypeIdForXML.ContentTypeID_XML);
-			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
-		}
-		return fValidExtensions;
-	}
-	
-	/**
-	 * Verifies if fileName is valid name for content type. Takes base content
-	 * type into consideration.
-	 * 
-	 * @param fileName
-	 * @return true if extension is valid for this content type
-	 */
-	boolean extensionValidForContentType(String fileName) {
-		boolean valid = false;
-
-		IContentType type = Platform.getContentTypeManager().getContentType(ContentTypeIdForXML.ContentTypeID_XML);
-		// there is currently an extension
-		if (fileName.lastIndexOf('.') != -1) {
-			// check what content types are associated with current extension
-			IContentType[] types = Platform.getContentTypeManager().findContentTypesFor(fileName);
-			int i = 0;
-			while (i < types.length && !valid) {
-				valid = types[i].isKindOf(type);
-				++i;
-			}
-		}
-		else
-			valid = true; // no extension so valid
-		return valid;
-	}
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLGenerator.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLGenerator.java
deleted file mode 100644
index 6ef29f3..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLGenerator.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.ContentModelManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.ContentBuilder;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilderImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMWriter;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class NewXMLGenerator {
-
-	protected String grammarURI;
-	protected CMDocument cmDocument;
-	protected int buildPolicy;
-	protected String rootElementName;
-
-	protected ICatalogEntry xmlCatalogEntry;
-
-	// info for dtd
-	protected String publicId;
-	protected String systemId;
-	protected String defaultSystemId;
-
-	// info for xsd
-	public List namespaceInfoList;
-
-	public NewXMLGenerator() {
-		super();
-	}
-
-	public NewXMLGenerator(String grammarURI, CMDocument cmDocument) {
-		this.grammarURI = grammarURI;
-		this.cmDocument = cmDocument;
-	}
-
-
-	public static CMDocument createCMDocument(String uri, String[] errorInfo) {
-		String title = null;
-		String message = null;
-		List errorList = new Vector();
-		CMDocument cmDocument = null;
-
-		if (URIHelper.isReadableURI(uri, true)) {
-		    // (cs) assume the uri has been provided in a normalized form
-			cmDocument = ContentModelManager.getInstance().createCMDocument(uri, null);
-
-			if (uri.endsWith(".dtd")) { //$NON-NLS-1$
-				if (errorList.size() > 0) {
-					title = XMLWizardsMessages._UI_INVALID_GRAMMAR_ERROR;
-					message = XMLWizardsMessages._UI_LABEL_ERROR_DTD_INVALID_INFO;
-				}
-			}
-			else // ".xsd"
-			{
-				// To be consistent with the schema editor validation
-				XMLSchemaValidationChecker validator = new XMLSchemaValidationChecker();
-				if (!validator.isValid(uri)) {
-					title = XMLWizardsMessages._UI_INVALID_GRAMMAR_ERROR;
-					message = XMLWizardsMessages._UI_LABEL_ERROR_SCHEMA_INVALID_INFO;
-				}
-				else if (cmDocument != null) {
-					int globalElementCount = cmDocument.getElements().getLength();
-					if (globalElementCount == 0) {
-						title = XMLWizardsMessages._UI_WARNING_TITLE_NO_ROOT_ELEMENTS;
-						message = XMLWizardsMessages._UI_WARNING_MSG_NO_ROOT_ELEMENTS;
-					}
-				}
-			}
-		}
-		else {
-			title = XMLWizardsMessages._UI_WARNING_TITLE_NO_ROOT_ELEMENTS;
-			message = XMLWizardsMessages._UI_WARNING_URI_NOT_FOUND_COLON + " " + uri; //$NON-NLS-1$
-		}
-		errorInfo[0] = title;
-		errorInfo[1] = message;
-
-		return cmDocument;
-	}
-
-
-	public void createEmptyXMLDocument(IFile newFile) throws Exception {
-		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-		String charSet = getUserPreferredCharset();
-
-		PrintWriter writer = new PrintWriter(new OutputStreamWriter(outputStream, charSet));
-		writer.println("<?xml version=\"1.0\" encoding=\"" + charSet + "\"?>"); //$NON-NLS-1$ //$NON-NLS-2$
-		writer.flush();
-		outputStream.close();
-
-		ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
-		newFile.setContents(inputStream, true, true, null);
-		inputStream.close();
-	}
-
-	private String getUserPreferredCharset() {
-		Preferences preference = XMLCorePlugin.getDefault().getPluginPreferences();
-		String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-		return charSet;
-	}
-
-	public void createXMLDocument(String xmlFileName) throws Exception {
-		IContentType contentType = Platform.getContentTypeManager().findContentTypeFor(xmlFileName);
-		String charset = null;
-		if (contentType != null) {
-			charset = contentType.getDefaultCharset();
-		}
-		ByteArrayOutputStream outputStream = createXMLDocument(xmlFileName, charset);
-
-		File file = new File(xmlFileName);
-		FileOutputStream fos = new FileOutputStream(file);
-		outputStream.writeTo(fos);
-		fos.close();
-	}
-
-
-	public void createXMLDocument(IFile newFile, String xmlFileName) throws Exception {
-		String charset = newFile.getCharset();
-		ByteArrayOutputStream outputStream = createXMLDocument(xmlFileName, charset);
-
-		ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
-		newFile.setContents(inputStream, true, true, null);
-		inputStream.close();
-	}
-
-
-	public ByteArrayOutputStream createXMLDocument(String xmlFileName, String charset) throws Exception {
-		if (charset == null) {
-			charset = getUserPreferredCharset();
-			if (charset == null) {
-				charset = "UTF-8"; //$NON-NLS-1$
-			}
-		}
-		CMDocument cmDocument = getCMDocument();
-
-		Assert.isNotNull(cmDocument);
-		Assert.isNotNull(getRootElementName());
-
-		// create the xml model
-		CMNamedNodeMap nameNodeMap = cmDocument.getElements();
-		CMElementDeclaration cmElementDeclaration = (CMElementDeclaration) nameNodeMap.getNamedItem(getRootElementName());
-
-		Document xmlDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
-		DOMContentBuilderImpl contentBuilder = new DOMContentBuilderImpl(xmlDocument);
-        
-        // this 'uglyTempHack' flag is required in order to supress the creation a default encoding 
-        // we'll handle this later in the domWriter.print() method used below
-        //
-        contentBuilder.supressCreationOfDoctypeAndXMLDeclaration = true;
-		contentBuilder.setBuildPolicy(buildPolicy);
-		contentBuilder.setExternalCMDocumentSupport(new MyExternalCMDocumentSupport(namespaceInfoList, xmlFileName));
-		contentBuilder.createDefaultRootContent(cmDocument, cmElementDeclaration, namespaceInfoList);
-
-		ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
-		OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, charset);
-            
-		DOMWriter domWriter = new DOMWriter(outputStreamWriter);
-        
-        // TODO... instead of relying on file extensions, we need to keep track of the grammar type
-        // better yet we should reate an SSE document so that we can format it nicely before saving
-        // then we won't need the DOMWriter at all
-        //
-		domWriter.print(xmlDocument, charset, cmDocument.getNodeName(), getNonWhitespaceString(getPublicId()), getNonWhitespaceString(getSystemId())); 
-		outputStream.flush();
-		outputStream.close();
-
-		return outputStream;
-	}
-
-
-	public void createNamespaceInfoList() {
-		List result = new Vector();
-	    if (cmDocument != null) {
-			result = (List) cmDocument.getProperty("http://org.eclipse.wst/cm/properties/namespaceInfo"); //$NON-NLS-1$
-			if (result != null) {
-				int size = result.size();
-				for (int i = 0; i < size; i++) {
-					NamespaceInfo info = (NamespaceInfo) result.get(i);
-					if (i == 0) {
-						String locationInfo = null;
-						if (xmlCatalogEntry != null) {
-							if (xmlCatalogEntry.getEntryType() == ICatalogEntry.ENTRY_TYPE_PUBLIC) {
-								locationInfo = xmlCatalogEntry.getAttributeValue(ICatalogEntry.ATTR_WEB_URL);
-							}
-							else {
-								locationInfo = xmlCatalogEntry.getKey();
-							}
-						}
-						if (locationInfo == null) {
-							locationInfo = defaultSystemId;
-						}
-						info.locationHint = locationInfo;
-						info.setProperty("locationHint-readOnly", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-					}
-					info.setProperty("uri-readOnly", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-					info.setProperty("unremovable", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-				}
-			}
-
-			NamespaceInfoContentBuilder builder = new NamespaceInfoContentBuilder();
-			builder.setBuildPolicy(ContentBuilder.BUILD_ONLY_REQUIRED_CONTENT);
-			builder.visitCMNode(cmDocument);
-			result.addAll(builder.list);
-		}
-		namespaceInfoList = result;
-	}
-
-
-	public boolean isMissingNamespaceLocation() {
-		boolean result = false;
-		for (Iterator i = namespaceInfoList.iterator(); i.hasNext();) {
-			NamespaceInfo info = (NamespaceInfo) i.next();
-			if (info.locationHint == null) {
-				result = true;
-				break;
-			}
-		}
-		return result;
-	}
-
-
-	public String[] getNamespaceInfoErrors() {
-		String[] errorList = null;
-
-		if (namespaceInfoList != null && isMissingNamespaceLocation()) {
-			String title = XMLWizardsMessages._UI_LABEL_NO_LOCATION_HINT;
-			String message = XMLWizardsMessages._UI_WARNING_MSG_NO_LOCATION_HINT_1 + " " + XMLWizardsMessages._UI_WARNING_MSG_NO_LOCATION_HINT_2 + "\n\n" + XMLWizardsMessages._UI_WARNING_MSG_NO_LOCATION_HINT_3; //$NON-NLS-1$ //$NON-NLS-2$
-
-			errorList = new String[2];
-			errorList[0] = title;
-			errorList[1] = message;
-		}
-
-		return errorList;
-	}
-
-
-	public void setXMLCatalogEntry(ICatalogEntry catalogEntry) {
-		xmlCatalogEntry = catalogEntry;
-	}
-
-	public ICatalogEntry getXMLCatalogEntry() {
-		return xmlCatalogEntry;
-	}
-
-
-	public void setBuildPolicy(int policy) {
-		buildPolicy = policy;
-	}
-
-
-	public void setDefaultSystemId(String sysId) {
-		defaultSystemId = sysId;
-	}
-
-	public String getDefaultSystemId() {
-		return defaultSystemId;
-	}
-
-	public void setSystemId(String sysId) {
-		systemId = sysId;
-	}
-
-	public String getSystemId() {
-		return systemId;
-	}
-
-	public void setPublicId(String pubId) {
-		publicId = pubId;
-	}
-
-	public String getPublicId() {
-		return publicId;
-	}
-
-	public void setGrammarURI(String gramURI) {
-		grammarURI = gramURI;
-	}
-
-	public String getGrammarURI() {
-		return grammarURI;
-	}
-
-	public void setCMDocument(CMDocument cmDoc) {
-		cmDocument = cmDoc;
-	}
-
-	public CMDocument getCMDocument() {
-		return cmDocument;
-	}
-
-	public void setRootElementName(String rootName) {
-		rootElementName = rootName;
-	}
-
-	public String getRootElementName() {
-		return rootElementName;
-	}
-
-
-	protected class MyExternalCMDocumentSupport implements DOMContentBuilderImpl.ExternalCMDocumentSupport {
-		protected List namespaceInfoList1;
-		protected URIResolver idResolver;
-		protected String resourceLocation;
-
-		protected MyExternalCMDocumentSupport(List namespaceInfoListParam, String resourceLocation) {
-			this.namespaceInfoList1 = namespaceInfoListParam;
-			this.resourceLocation = resourceLocation;
-			idResolver = URIResolverPlugin.createResolver();
-		}
-
-		public CMDocument getCMDocument(Element element, String namespaceURI) {
-			CMDocument result = null;
-			if (namespaceURI != null && namespaceURI.trim().length() > 0) {
-				String locationHint = null;
-				for (Iterator i = namespaceInfoList1.iterator(); i.hasNext();) {
-					NamespaceInfo info = (NamespaceInfo) i.next();
-					if (namespaceURI.equals(info.uri)) {
-						locationHint = info.locationHint;
-						break;
-					}
-				}
-				if (locationHint != null) {
-					grammarURI = idResolver.resolve(resourceLocation, locationHint, locationHint);
-					result = ContentModelManager.getInstance().createCMDocument(getGrammarURI(), null);
-				}
-			}
-			else {
-				result = cmDocument;
-			}
-			return result;
-		}
-	}
-
-	public static String getNonWhitespaceString(String string) {
-		String result = null;
-		if (string != null) {
-			if (string.trim().length() > 0) {
-				result = string;
-			}
-		}
-		return result;
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLWizard.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLWizard.java
deleted file mode 100644
index fec92bf..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/NewXMLWizard.java
+++ /dev/null
@@ -1,842 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import com.ibm.icu.text.Collator;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilder;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.dialogs.NamespaceInfoErrorHelper;
-import org.eclipse.wst.xml.ui.internal.dialogs.SelectFileOrXMLCatalogIdPanel;
-import org.eclipse.wst.xml.ui.internal.nsedit.CommonEditNamespacesDialog;
-
-public class NewXMLWizard extends NewModelWizard {
-	protected static final int CREATE_FROM_DTD = 0;
-	protected static final int CREATE_FROM_XSD = 1;
-	protected static final int CREATE_FROM_SCRATCH = 2;
-
-	protected static final String[] createFromRadioButtonLabel = {XMLWizardsMessages._UI_RADIO_XML_FROM_DTD, XMLWizardsMessages._UI_RADIO_XML_FROM_SCHEMA, XMLWizardsMessages._UI_RADIO_XML_FROM_SCRATCH};
-
-	protected static final String[] filePageFilterExtensions = {".xml"}; //$NON-NLS-1$
-	protected static final String[] browseXSDFilterExtensions = {".xsd"}; //$NON-NLS-1$
-	protected static final String[] browseDTDFilterExtensions = {".dtd"}; //$NON-NLS-1$
-
-	protected NewFilePage newFilePage;
-	protected StartPage startPage;
-	protected SelectGrammarFilePage selectGrammarFilePage;
-	protected SelectRootElementPage selectRootElementPage;
-
-	protected String cmDocumentErrorMessage;
-
-	protected NewXMLGenerator generator;
-
-
-	public NewXMLWizard() {
-		setWindowTitle(XMLWizardsMessages._UI_WIZARD_CREATE_XML_HEADING);
-		setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(XMLWizard.class, "icons/generatexml_wiz.gif")); //$NON-NLS-1$
-		generator = new NewXMLGenerator();
-	}
-
-
-	public NewXMLWizard(IFile file, CMDocument cmDocument) {
-		this();
-
-		generator.setGrammarURI(URIHelper.getPlatformURI(file));
-		generator.setCMDocument(cmDocument);
-	}
-
-
-	public static void showDialog(Shell shell, IFile file, IStructuredSelection structuredSelection) {
-		String[] errorInfo = new String[2];
-		// (cs) the URI argument to createCMDocument needs to be a fully qualified URI
-		//
-		CMDocument cmDocument = NewXMLGenerator.createCMDocument(URIHelper.getPlatformURI(file), errorInfo);
-		if (errorInfo[0] == null) {
-			NewXMLWizard wizard = new NewXMLWizard(file, cmDocument);
-			wizard.init(PlatformUI.getWorkbench(), structuredSelection);
-			wizard.setNeedsProgressMonitor(true);
-			WizardDialog dialog = new WizardDialog(shell, wizard);
-			dialog.create();
-			dialog.getShell().setText(XMLWizardsMessages._UI_DIALOG_NEW_TITLE);
-			dialog.setBlockOnOpen(true);
-			dialog.open();
-		}
-		else {
-			MessageDialog.openInformation(shell, errorInfo[0], errorInfo[1]);
-		}
-	}
-
-
-	public void addPages() {
-		String grammarURI = generator.getGrammarURI();
-
-		if (grammarURI == null) {
-			// start page
-			startPage = new StartPage("StartPage", createFromRadioButtonLabel) //$NON-NLS-1$
-			{
-				public void createControl(Composite parent) {
-					super.createControl(parent);
-				}
-
-				public void setVisible(boolean visible) {
-					super.setVisible(visible);
-					getRadioButtonAtIndex(getCreateMode()).setSelection(true);
-					getRadioButtonAtIndex(getCreateMode()).setFocus();
-
-					// Set the help context for each button
-					PlatformUI.getWorkbench().getHelpSystem().setHelp(startPage.getRadioButtonAtIndex(0), IXMLWizardHelpContextIds.XML_NEWWIZARD_CREATEXML1_HELPID);
-					PlatformUI.getWorkbench().getHelpSystem().setHelp(startPage.getRadioButtonAtIndex(1), IXMLWizardHelpContextIds.XML_NEWWIZARD_CREATEXML2_HELPID);
-					PlatformUI.getWorkbench().getHelpSystem().setHelp(startPage.getRadioButtonAtIndex(2), IXMLWizardHelpContextIds.XML_NEWWIZARD_CREATEXML3_HELPID);
-				}
-			};
-
-
-			startPage.setTitle(XMLWizardsMessages._UI_WIZARD_CREATE_XML_HEADING);
-			startPage.setDescription(XMLWizardsMessages._UI_WIZARD_CREATE_XML_EXPL);
-			addPage(startPage);
-		}
-
-		// new file page
-		newFilePage = new NewFilePage(fSelection);
-		newFilePage.setTitle(XMLWizardsMessages._UI_WIZARD_CREATE_XML_FILE_HEADING);
-		newFilePage.setDescription(XMLWizardsMessages._UI_WIZARD_CREATE_XML_FILE_EXPL);
-		newFilePage.defaultName = (grammarURI != null) ? URIHelper.removeFileExtension(URIHelper.getLastSegment(grammarURI)) : "NewFile"; //$NON-NLS-1$
-		Preferences preference = XMLCorePlugin.getDefault().getPluginPreferences();
-		String ext = preference.getString(XMLCorePreferenceNames.DEFAULT_EXTENSION);
-		newFilePage.defaultFileExtension = "."+ext; //$NON-NLS-1$
-		newFilePage.filterExtensions = filePageFilterExtensions;
-		addPage(newFilePage);
-
-		// selectGrammarFilePage
-		selectGrammarFilePage = new SelectGrammarFilePage();
-		addPage(selectGrammarFilePage);
-
-		// select root element page
-		selectRootElementPage = new SelectRootElementPage();
-		selectRootElementPage.setTitle(XMLWizardsMessages._UI_WIZARD_SELECT_ROOT_HEADING);
-		selectRootElementPage.setDescription(XMLWizardsMessages._UI_WIZARD_SELECT_ROOT_EXPL);
-		addPage(selectRootElementPage);
-	}
-
-
-	public IWizardPage getStartingPage() {
-		WizardPage result = null;
-		if (startPage != null) {
-			result = startPage;
-		}
-		else {
-			result = newFilePage;
-		}
-		return result;
-	}
-
-
-	public int getCreateMode() {
-		String grammarURI = generator.getGrammarURI();
-
-		int result = CREATE_FROM_SCRATCH;
-		if (grammarURI != null) {
-			if (grammarURI.endsWith(".dtd")) //$NON-NLS-1$
-			{
-				result = CREATE_FROM_DTD;
-			}
-			else if (grammarURI.endsWith(".xsd")) //$NON-NLS-1$
-			{
-				result = CREATE_FROM_XSD;
-			}
-		}
-		else if (startPage != null) {
-			int selectedIndex = startPage.getSelectedRadioButtonIndex();
-			if (selectedIndex != -1) {
-				result = selectedIndex;
-			}
-		}
-		return result;
-	}
-
-
-	public IWizardPage getNextPage(IWizardPage currentPage) {
-		WizardPage nextPage = null;
-		if (currentPage == startPage) {
-			nextPage = newFilePage;
-		}
-		else if (currentPage == newFilePage) {
-			if (getCreateMode() == CREATE_FROM_SCRATCH) {
-				nextPage = null;
-			}
-			else if (generator.getGrammarURI() == null) {
-				nextPage = selectGrammarFilePage;
-			}
-			else {
-				nextPage = selectRootElementPage;
-			}
-		}
-		else if (currentPage == selectGrammarFilePage) {
-			nextPage = selectRootElementPage;
-		}
-		return nextPage;
-	}
-
-
-	public boolean canFinish() {
-		boolean result = false;
-
-		IWizardPage currentPage = getContainer().getCurrentPage();
-
-		if ((startPage != null && startPage.getSelectedRadioButtonIndex() == CREATE_FROM_SCRATCH && currentPage == newFilePage) || (currentPage == selectRootElementPage)) {
-			result = currentPage.isPageComplete();
-		}
-		return result;
-	}
-
-
-	public boolean performFinish() {
-		boolean result = true;
-		super.performFinish();
-		String fileName = null;
-		try {
-
-			String[] namespaceErrors = generator.getNamespaceInfoErrors();
-			if (namespaceErrors != null) {
-				String title = namespaceErrors[0];
-				String message = namespaceErrors[1];
-				result = MessageDialog.openQuestion(getShell(), title, message);
-			}
-
-			if (result) {
-				fileName = newFilePage.getFileName();
-				if ((new Path(fileName)).getFileExtension() == null) {
-					newFilePage.setFileName(fileName.concat(newFilePage.defaultFileExtension));
-				}
-
-				IFile newFile = newFilePage.createNewFile();
-				String xmlFileName = newFile.getLocation().toOSString();
-
-				if (getContainer().getCurrentPage() == selectRootElementPage) {
-
-					generator.createXMLDocument(newFile, xmlFileName);
-				}
-				else {
-					generator.createEmptyXMLDocument(newFile);
-				}
-
-				newFile.refreshLocal(1, null);
-
-				IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-				BasicNewResourceWizard.selectAndReveal(newFile, workbenchWindow);
-				openEditor(newFile);
-			}
-		}
-		catch (Exception e) {
-			Logger.logException("Exception completing New XML wizard " + fileName, e); //$NON-NLS-1$
-		}
-		return result;
-	}
-
-	public void openEditor(IFile file) {
-		// Open editor on new file.
-		String editorId = null;
-		try {
-			IEditorDescriptor editor = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(file.getLocation().toOSString(), file.getContentDescription().getContentType());
-			if (editor != null) {
-				editorId = editor.getId();
-			}
-		}
-		catch (CoreException e1) {
-			// editor id could not be retrieved, so we can not open editor
-			return;
-		}
-		IWorkbenchWindow dw = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		try {
-			if (dw != null) {
-				IWorkbenchPage page = dw.getActivePage();
-				if (page != null)
-					page.openEditor(new FileEditorInput(file), editorId, true);
-			}
-		}
-		catch (PartInitException e) {
-			// editor can not open for some reason
-			return;
-		}
-
-	}
-
-
-	protected String getDefaultSystemId() {
-		String relativePath = "platform:/resource/" + newFilePage.getContainerFullPath().toString() + "/dummy"; //$NON-NLS-1$ //$NON-NLS-2$
-		return URIHelper.getRelativeURI(generator.getGrammarURI(), relativePath);
-	}
-
-
-	/**
-	 * SelectGrammarFilePage
-	 */
-	class SelectGrammarFilePage extends WizardPage {
-		protected SelectFileOrXMLCatalogIdPanel panel;
-
-		SelectGrammarFilePage() {
-			super("SelectGrammarFilePage"); //$NON-NLS-1$
-		}
-
-		public void createControl(Composite parent) {
-			Composite composite = new Composite(parent, SWT.NONE);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IXMLWizardHelpContextIds.XML_NEWWIZARD_SELECTSOURCE_HELPID);
-			composite.setLayout(new GridLayout());
-			composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-			setControl(composite);
-
-			panel = new SelectFileOrXMLCatalogIdPanel(composite);
-			panel.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-			SelectFileOrXMLCatalogIdPanel.Listener listener = new SelectFileOrXMLCatalogIdPanel.Listener() {
-				public void completionStateChanged() {
-					updateErrorMessage();
-				}
-			};
-			panel.setListener(listener);
-		}
-
-		public void setVisible(boolean visible) {
-			super.setVisible(visible);
-			if (visible) {
-				if (getCreateMode() == CREATE_FROM_DTD) {
-					setTitle(XMLWizardsMessages._UI_WIZARD_SELECT_DTD_FILE_TITLE);
-					setDescription(XMLWizardsMessages._UI_WIZARD_SELECT_DTD_FILE_DESC);
-					panel.setFilterExtensions(browseDTDFilterExtensions);
-				}
-				else {
-					setTitle(XMLWizardsMessages._UI_WIZARD_SELECT_XSD_FILE_TITLE);
-					setDescription(XMLWizardsMessages._UI_WIZARD_SELECT_XSD_FILE_DESC);
-					panel.setFilterExtensions(browseXSDFilterExtensions);
-				}
-				generator.setGrammarURI(null);
-				generator.setCMDocument(null);
-				cmDocumentErrorMessage = null;
-			}
-			panel.setVisibleHelper(visible);
-		}
-
-		public String getURI() {
-			String uri = panel.getXMLCatalogURI();
-			if (uri == null) {
-				IFile file = panel.getFile();
-				if (file != null) {
-					uri = URIHelper.getPlatformURI(file);
-				}
-			}
-			return uri;
-		}
-
-		public boolean isPageComplete() {
-			return getURI() != null && getErrorMessage() == null;
-		}
-
-		public String getXMLCatalogId() {
-			return panel.getXMLCatalogId();
-		}
-
-		public ICatalogEntry getXMLCatalogEntry() {
-			return panel.getXMLCatalogEntry();
-		}
-
-		public String computeErrorMessage() {
-			String errorMessage = null;
-			String uri = getURI();
-			if (uri != null) {
-				if (!URIHelper.isReadableURI(uri, false)) {
-					errorMessage = XMLWizardsMessages._UI_LABEL_ERROR_CATALOG_ENTRY_INVALID;
-				}
-			}
-			return errorMessage;
-		}
-
-
-		public void updateErrorMessage() {
-			String errorMessage = computeErrorMessage();
-			setErrorMessage(errorMessage);
-			setPageComplete(isPageComplete());
-		}
-	}
-
-
-	/**
-	 * SelectRootElementPage
-	 */
-	class SelectRootElementPage extends WizardPage implements SelectionListener {
-		protected Combo combo;
-		protected Button[] radioButton;
-		protected PageBook pageBook;
-		protected XSDOptionsPanel xsdOptionsPanel;
-		protected DTDOptionsPanel dtdOptionsPanel;
-
-
-		SelectRootElementPage() {
-			super("SelectRootElementPage"); //$NON-NLS-1$
-		}
-
-		public void createControl(Composite parent) {
-			// container group
-			Composite containerGroup = new Composite(parent, SWT.NONE);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(containerGroup, IXMLWizardHelpContextIds.XML_NEWWIZARD_SELECTROOTELEMENT_HELPID);
-			containerGroup.setLayout(new GridLayout());
-			containerGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			setControl(containerGroup);
-
-			// select root element
-			Label containerLabel = new Label(containerGroup, SWT.NONE);
-			containerLabel.setText(XMLWizardsMessages._UI_LABEL_ROOT_ELEMENT);
-			combo = new Combo(containerGroup, SWT.DROP_DOWN | SWT.READ_ONLY);
-			combo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			combo.addSelectionListener(this);
-
-			// Options
-			{
-				Group group = new Group(containerGroup, SWT.NONE);
-				group.setText(XMLWizardsMessages._UI_WIZARD_CONTENT_OPTIONS);
-
-				GridLayout layout = new GridLayout();
-				layout.numColumns = 1;
-				layout.makeColumnsEqualWidth = true;
-				layout.marginWidth = 0;
-				group.setLayout(layout);
-				group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-				radioButton = new Button[4];
-
-				radioButton[0] = new Button(group, SWT.CHECK);
-				radioButton[0].setText(XMLWizardsMessages._UI_WIZARD_CREATE_OPTIONAL_ATTRIBUTES);
-				radioButton[0].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-				radioButton[0].setSelection(false);
-				PlatformUI.getWorkbench().getHelpSystem().setHelp(radioButton[0], IXMLWizardHelpContextIds.XML_NEWWIZARD_SELECTROOTELEMENT1_HELPID);
-
-				radioButton[1] = new Button(group, SWT.CHECK);
-				radioButton[1].setText(XMLWizardsMessages._UI_WIZARD_CREATE_OPTIONAL_ELEMENTS);
-				radioButton[1].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-				radioButton[1].setSelection(false);
-				PlatformUI.getWorkbench().getHelpSystem().setHelp(radioButton[1], IXMLWizardHelpContextIds.XML_NEWWIZARD_SELECTROOTELEMENT2_HELPID);
-
-				radioButton[2] = new Button(group, SWT.CHECK);
-				radioButton[2].setText(XMLWizardsMessages._UI_WIZARD_CREATE_FIRST_CHOICE);
-				radioButton[2].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-				radioButton[2].setSelection(true);
-				PlatformUI.getWorkbench().getHelpSystem().setHelp(radioButton[2], IXMLWizardHelpContextIds.XML_NEWWIZARD_SELECTROOTELEMENT3_HELPID);
-
-				radioButton[3] = new Button(group, SWT.CHECK);
-				radioButton[3].setText(XMLWizardsMessages._UI_WIZARD_FILL_ELEMENTS_AND_ATTRIBUTES);
-				radioButton[3].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-				radioButton[3].setSelection(true);
-				PlatformUI.getWorkbench().getHelpSystem().setHelp(radioButton[3], IXMLWizardHelpContextIds.XML_NEWWIZARD_SELECTROOTELEMENT4_HELPID);
-				/*
-				 * radioButton = new Button[2];
-				 * 
-				 * radioButton[0] = new Button(group, SWT.RADIO);
-				 * radioButton[0].setText(XMLWizardsMessages.getString("_UI_WIZARD_CREATE_REQUIRED"));
-				 * radioButton[0].setLayoutData(new
-				 * GridData(GridData.FILL_HORIZONTAL));
-				 * radioButton[0].setSelection(true);
-				 * WorkbenchHelp.setHelp(radioButton[0],
-				 * XMLBuilderContextIds.XMLC_CREATE_REQUIRED_ONLY);
-				 * 
-				 * radioButton[1] = new Button(group, SWT.RADIO);
-				 * radioButton[1].setText(XMLWizardsMessages.getString("_UI_WIZARD_CREATE_OPTIONAL"));
-				 * radioButton[1].setLayoutData(new
-				 * GridData(GridData.FILL_HORIZONTAL));
-				 * WorkbenchHelp.setHelp(radioButton[1],
-				 * XMLBuilderContextIds.XMLC_CREATE_REQUIRED_AND_OPTION);
-				 */
-			}
-
-			// add the grammar specific generation options
-			//
-			{
-				pageBook = new PageBook(containerGroup, SWT.NONE);
-				pageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
-				xsdOptionsPanel = new XSDOptionsPanel(this, pageBook);
-				dtdOptionsPanel = new DTDOptionsPanel(this, pageBook);
-				pageBook.showPage(xsdOptionsPanel);
-			}
-		}
-
-		public void widgetSelected(SelectionEvent event) {
-			int index = combo.getSelectionIndex();
-			String rootElementName = (index != -1) ? combo.getItem(index) : null;
-			generator.setRootElementName(rootElementName);
-		}
-
-		public void widgetDefaultSelected(SelectionEvent event) {
-			// do nothing
-		}
-
-		public void setVisible(boolean visible) {
-			super.setVisible(visible);
-
-			if (visible) {
-				try {
-					if (generator.getGrammarURI() == null) {
-						generator.setGrammarURI(selectGrammarFilePage.getURI());
-						generator.setXMLCatalogEntry(selectGrammarFilePage.getXMLCatalogEntry());
-					}
-					Assert.isNotNull(generator.getGrammarURI());
-
-					if (generator.getCMDocument() == null) {
-						final String[] errorInfo = new String[2];
-						final CMDocument[] cmdocs = new CMDocument[1];
-						Runnable r = new Runnable() {
-							public void run() {
-								cmdocs[0] = NewXMLGenerator.createCMDocument(generator.getGrammarURI(), errorInfo);
-							}
-						};
-						org.eclipse.swt.custom.BusyIndicator.showWhile(Display.getCurrent(), r);
-
-						generator.setCMDocument(cmdocs[0]);
-						cmDocumentErrorMessage = errorInfo[1];
-					}
-
-					if (generator.getCMDocument() != null && cmDocumentErrorMessage == null) {
-						CMNamedNodeMap nameNodeMap = generator.getCMDocument().getElements();
-						Vector nameNodeVector = new Vector();
-
-						for (int i = 0; i < nameNodeMap.getLength(); i++) {
-							CMElementDeclaration cmElementDeclaration = (CMElementDeclaration) nameNodeMap.item(i);
-							Object value = cmElementDeclaration.getProperty("Abstract"); //$NON-NLS-1$
-							if (value != Boolean.TRUE) {
-								nameNodeVector.add(cmElementDeclaration.getElementName());
-							}
-						}
-
-						Object[] nameNodeArray = nameNodeVector.toArray();
-						if (nameNodeArray.length > 0) {
-							Arrays.sort(nameNodeArray, Collator.getInstance());
-						}
-
-						String defaultRootName = (String) (generator.getCMDocument()).getProperty("http://org.eclipse.wst/cm/properties/defaultRootName"); //$NON-NLS-1$
-						int defaultRootIndex = -1;
-						combo.removeAll();
-
-
-						for (int i = 0; i < nameNodeArray.length; i++) {
-							String elementName = (String) nameNodeArray[i];
-
-							combo.add(elementName);
-							if (defaultRootName != null && defaultRootName.equals(elementName)) {
-								defaultRootIndex = i;
-							}
-						}
-
-						if (nameNodeArray.length > 0) {
-							defaultRootIndex = defaultRootIndex != -1 ? defaultRootIndex : 0;
-							combo.select(defaultRootIndex);
-							generator.setRootElementName(combo.getItem(defaultRootIndex));
-						}
-					}
-
-					if (generator.getGrammarURI().endsWith("xsd")) //$NON-NLS-1$
-					{
-						pageBook.showPage(xsdOptionsPanel);
-						generator.setDefaultSystemId(getDefaultSystemId());
-						generator.createNamespaceInfoList();
-
-						// Provide default namespace prefix if none
-						for (int i = 0; i < generator.namespaceInfoList.size(); i++) {
-							NamespaceInfo nsinfo = (NamespaceInfo) generator.namespaceInfoList.get(i);
-							if ((nsinfo.prefix == null || nsinfo.prefix.trim().length() == 0) && (nsinfo.uri != null && nsinfo.uri.trim().length() != 0)) {
-								if("http://www.w3.org/XML/1998/namespace".equals(nsinfo.uri)) { //$NON-NLS-1$
-									nsinfo.prefix = "xml"; //$NON-NLS-1$
-								} else if("http://www.w3.org/2000/xmlns".equals(nsinfo.uri)) { //$NON-NLS-1$
-									nsinfo.prefix = "xmlns"; //$NON-NLS-1$
-								} else {
-									nsinfo.prefix = getDefaultPrefix(generator.namespaceInfoList);
-								}
-							}
-						}
-						xsdOptionsPanel.setNamespaceInfoList(generator.namespaceInfoList);
-					}
-					else if (generator.getGrammarURI().endsWith("dtd")) //$NON-NLS-1$
-					{
-						pageBook.showPage(dtdOptionsPanel);
-						dtdOptionsPanel.update();
-					}
-				}
-				catch (Exception e) {
-					// XMLBuilderPlugin.getPlugin().getMsgLogger().writeCurrentThread();
-				}
-
-				/*
-				 * String errorMessage = computeErrorMessage(); if
-				 * (errorMessage == null) super.setVisible(visible);
-				 */
-
-				updateErrorMessage();
-			}
-		}
-
-		private String getDefaultPrefix(List nsInfoList) {
-			String defaultPrefix = "p"; //$NON-NLS-1$
-			if (nsInfoList == null)
-				return defaultPrefix;
-
-			Vector v = new Vector();
-			for (int i = 0; i < nsInfoList.size(); i++) {
-				NamespaceInfo nsinfo = (NamespaceInfo) nsInfoList.get(i);
-				if (nsinfo.prefix != null)
-					v.addElement(nsinfo.prefix);
-			}
-
-			if (v.contains(defaultPrefix)) {
-				String s = defaultPrefix;
-				for (int j = 0; v.contains(s); j++) {
-					s = defaultPrefix + Integer.toString(j);
-				}
-				return s;
-			}
-			return defaultPrefix;
-		}
-
-		public boolean isPageComplete() {
-			boolean complete = (generator.getRootElementName() != null && generator.getRootElementName().length() > 0) && getErrorMessage() == null;
-
-			if (complete) {
-				/*
-				 * int buildPolicy = radioButton[0].getSelection() ?
-				 * DOMContentBuilder.BUILD_ONLY_REQUIRED_CONTENT :
-				 * DOMContentBuilder.BUILD_ALL_CONTENT;
-				 */
-				int buildPolicy = 0;
-				if (radioButton[0].getSelection())
-					buildPolicy = buildPolicy | DOMContentBuilder.BUILD_OPTIONAL_ATTRIBUTES;
-				if (radioButton[1].getSelection())
-					buildPolicy = buildPolicy | DOMContentBuilder.BUILD_OPTIONAL_ELEMENTS;
-				if (radioButton[2].getSelection())
-					buildPolicy = buildPolicy | DOMContentBuilder.BUILD_FIRST_CHOICE | DOMContentBuilder.BUILD_FIRST_SUBSTITUTION;
-				if (radioButton[3].getSelection())
-					buildPolicy = buildPolicy | DOMContentBuilder.BUILD_TEXT_NODES;
-
-				generator.setBuildPolicy(buildPolicy);
-			}
-
-			return complete;
-		}
-
-		public String computeErrorMessage() {
-			String errorMessage = null;
-
-			if (cmDocumentErrorMessage != null) {
-				errorMessage = cmDocumentErrorMessage;
-			}
-			else if (generator.getRootElementName() == null || generator.getRootElementName().length() == 0) {
-				errorMessage = XMLWizardsMessages._ERROR_ROOT_ELEMENT_MUST_BE_SPECIFIED;
-			}
-
-			return errorMessage;
-		}
-
-
-		public void updateErrorMessage() {
-			String errorMessage = computeErrorMessage();
-			if (errorMessage == null) {
-				if (xsdOptionsPanel.isVisible()) {
-
-					errorMessage = xsdOptionsPanel.computeErrorMessage();
-				}
-				else if (dtdOptionsPanel.isVisible()) {
-					errorMessage = dtdOptionsPanel.computeErrorMessage();
-				}
-			}
-			setErrorMessage(errorMessage);
-			setPageComplete(isPageComplete());
-		}
-	}
-
-	// //////////////End SelectRootElementPage
-
-
-
-	public static GridLayout createOptionsPanelLayout() {
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.marginWidth = 0;
-		gridLayout.horizontalSpacing = 0;
-		return gridLayout;
-	}
-
-
-
-	/**
-	 * 
-	 */
-	class XSDOptionsPanel extends Composite {
-		protected String errorMessage = null;
-		protected SelectRootElementPage parentPage;
-		protected CommonEditNamespacesDialog editNamespaces;
-
-		public XSDOptionsPanel(SelectRootElementPage parentPage, Composite parent) {
-			super(parent, SWT.NONE);
-			this.parentPage = parentPage;
-
-			setLayout(createOptionsPanelLayout());
-			setLayoutData(new GridData(GridData.FILL_BOTH));
-
-			Composite co = new Composite(this, SWT.NONE);
-			co.setLayout(new GridLayout());
-
-			if (newFilePage != null && newFilePage.getContainerFullPath() != null) {
-				// todo... this is a nasty mess. I need to revist this code.
-				//
-				String resourceURI = "platform:/resource" + newFilePage.getContainerFullPath().toString() + "/dummy"; //$NON-NLS-1$ //$NON-NLS-2$
-				String resolvedPath = URIHelper.normalize(resourceURI, null, null);
-				if (resolvedPath.startsWith("file:/")) //$NON-NLS-1$
-				{
-					resolvedPath = resolvedPath.substring(6);
-				}
-				// end nasty messs
-				String tableTitle = XMLWizardsMessages._UI_LABEL_NAMESPACE_INFORMATION;
-				editNamespaces = new CommonEditNamespacesDialog(co, new Path(resolvedPath), tableTitle, true, true);
-			}
-		}
-
-		public void setNamespaceInfoList(List list) {
-			editNamespaces.setNamespaceInfoList(list);
-			editNamespaces.updateErrorMessage(list);
-		}
-
-		public void updateErrorMessage(List namespaceInfoList) {
-			NamespaceInfoErrorHelper helper = new NamespaceInfoErrorHelper();
-			errorMessage = helper.computeErrorMessage(namespaceInfoList, null);
-			parentPage.updateErrorMessage();
-		}
-
-
-		public String computeErrorMessage() {
-			return errorMessage;
-		}
-	}
-
-
-	/**
-	 * 
-	 */
-	public class DTDOptionsPanel extends Composite implements ModifyListener {
-		protected Group group;
-		protected Text systemIdField;
-		protected Text publicIdField;
-		protected SelectRootElementPage parentPage;
-
-		public DTDOptionsPanel(SelectRootElementPage parentPage, Composite parent) {
-			super(parent, SWT.NONE);
-			this.parentPage = parentPage;
-			setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-			setLayout(createOptionsPanelLayout());
-			Group group = new Group(this, SWT.NONE);
-			group.setText(XMLWizardsMessages._UI_LABEL_DOCTYPE_INFORMATION);
-
-			GridLayout layout = new GridLayout();
-			layout.numColumns = 2;
-			group.setLayout(layout);
-			group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-			Label publicIdLabel = new Label(group, SWT.NONE);
-			publicIdLabel.setText(XMLWizardsMessages._UI_LABEL_PUBLIC_ID);
-			publicIdField = new Text(group, SWT.SINGLE | SWT.BORDER);
-			publicIdField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			publicIdField.addModifyListener(this);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(publicIdField, IXMLWizardHelpContextIds.XML_NEWWIZARD_SELECTROOTELEMENT5_HELPID);
-
-			Label systemIdLabel = new Label(group, SWT.NONE);
-			systemIdLabel.setText(XMLWizardsMessages._UI_LABEL_SYSTEM_ID);
-			systemIdField = new Text(group, SWT.SINGLE | SWT.BORDER);
-			systemIdField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			systemIdField.addModifyListener(this);
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(systemIdField, IXMLWizardHelpContextIds.XML_NEWWIZARD_SELECTROOTELEMENT6_HELPID);
-		}
-
-		public void update() {
-			String thePublicId = null;
-			String theSystemId = null;
-			ICatalogEntry xmlCatalogEntry = generator.getXMLCatalogEntry();
-
-			if (xmlCatalogEntry != null) {
-				if (xmlCatalogEntry.getEntryType() == ICatalogEntry.ENTRY_TYPE_PUBLIC) {
-					thePublicId = xmlCatalogEntry.getKey();
-					theSystemId = xmlCatalogEntry.getAttributeValue(ICatalogEntry.ATTR_WEB_URL);
-					if (theSystemId == null) {
-						theSystemId = generator.getGrammarURI().startsWith("http:") ? generator.getGrammarURI() : URIHelper.getLastSegment(generator.getGrammarURI()); //$NON-NLS-1$
-					}
-				}
-				else {
-					theSystemId = xmlCatalogEntry.getKey();
-				}
-			}
-			else {
-				theSystemId = getDefaultSystemId();
-			}
-
-			publicIdField.setText(thePublicId != null ? thePublicId : ""); //$NON-NLS-1$
-			systemIdField.setText(theSystemId != null ? theSystemId : ""); //$NON-NLS-1$
-		}
-
-		public void modifyText(ModifyEvent e) {
-			generator.setSystemId(systemIdField.getText());
-			generator.setPublicId(publicIdField.getText());
-			parentPage.updateErrorMessage();
-		}
-
-		public String computeErrorMessage() {
-			return null;
-		}
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLImportActionDelegate.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLImportActionDelegate.java
deleted file mode 100644
index 932dd24..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLImportActionDelegate.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import java.util.Iterator;
-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.IActionDelegate;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-// TODO cs... rename this class NewXMLActionDelegate
-// we need to re-add pre-validation using the validation framework API's
-// since we also need to add validation to the 'New XML' case, this prevalidation
-// function should really go into the NewWizard somewhere
-//
-public class XMLImportActionDelegate implements IActionDelegate
-{ 
-  /**
-   * Checks the current selection and runs the separate browser
-   * to show the content of the Readme file. This code shows how
-   * to launch separate browsers that are not VA/Base desktop parts.
-   *
-   * @param action  the action that was performed
-   */
-  public void run(IAction action)
-  {
-    IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-    ISelection selection = workbenchWindow.getSelectionService().getSelection();
-    Object selectedObject = getSelection(selection);
-
-    if (selectedObject instanceof IFile && selection instanceof IStructuredSelection)
-    {
-      IFile file = (IFile)selectedObject;
-      IStructuredSelection structuredSelection = (IStructuredSelection)selection;    
-      try
-      {
-        NewXMLWizard.showDialog(workbenchWindow.getShell(), file, structuredSelection);
-      }
-      catch (Exception e)
-      {
-        //XMLCorePlugin.getDefault().getLog().log();
-      }    
-    }
-  }
-
-  /**
-   * unused
-   */
-  public void selectionChanged(IAction action, ISelection selection)
-  {
-    // unused
-  }
-
-  // scammed from WindowUtility
-  //
-  public static Object getSelection(ISelection selection)
-  {
-    if (selection == null)
-    {
-      return null;
-    } // end of if ()
-
-    Object result = null;
-    if (selection instanceof IStructuredSelection)
-    {
-       IStructuredSelection es= (IStructuredSelection)selection;
-       Iterator i= es.iterator();
-       if (i.hasNext())
-       {
-         result= i.next();
-       }
-    }			
-    return result;
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLSchemaValidationChecker.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLSchemaValidationChecker.java
deleted file mode 100644
index aec4a35..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLSchemaValidationChecker.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-public class XMLSchemaValidationChecker {
-	public boolean isValid(IFile ifile) {
-		String xsdFileName = ifile.getLocation().toString();
-		return isValid(xsdFileName);
-	}
-	/**
-	 * Should this be implemented as a Validator and simply called as such with
-	 * a reporter that only checks the results for severity = error?  Or should
-	 * the Xerces requirement be broken using a plug-in extension?
-	 */
-
-	public boolean isValid(String xsdFileName) {
-//		DOMASBuilderImpl builder = new DOMASBuilderImpl();
-//		DOMErrorHandler errorHandler = new DOMErrorHandler();
-//		builder.setErrorHandler(errorHandler);
-		try {
-			//String uri = 
-				URIHelper.getURIForFilePath(xsdFileName);
-//			ASModel model = builder.parseASURI(uri);
-//			if (errorHandler.hasError())
-//				return false;
-		}
-		catch (Exception e) // invalid schema
-			{
-			return false;
-		}
-
-		return true;
-	}
-
-	// inner class
-	class DOMErrorHandler implements ErrorHandler {
-		private boolean hasError = false;
-
-		public boolean hasError() {
-			return hasError;
-		}
-
-		public void error(SAXParseException err) {
-			hasError = true;
-		}
-		public void fatalError(SAXParseException exception) throws SAXException {
-			hasError = true;
-		}
-		public void warning(SAXParseException exception) throws SAXException {
-			// not an error
-		}
-	} // end DOMErrorHandlerImpl
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLWizard.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLWizard.java
deleted file mode 100644
index 10cafe6..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLWizard.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-public class XMLWizard
-{
-  protected static XMLWizard instance = new XMLWizard();
-
-  public synchronized static XMLWizard getInstance() {
-    return instance;
-  }
-  
-  public XMLWizard()
-  {
-    instance = this;
-
-  }
-  
-  public ImageDescriptor getImageDescriptor(String name)
-  {
-    try {
-      URL url= new URL(Platform.getBundle("org.eclipse.wst.xml.ui").getEntry("/"), name); //$NON-NLS-1$ //$NON-NLS-2$
-      return ImageDescriptor.createFromURL(url);
-    }
-    catch (MalformedURLException e) {
-      return ImageDescriptor.getMissingImageDescriptor();
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLWizardsMessages.java b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLWizardsMessages.java
deleted file mode 100644
index 066d1b6..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/XMLWizardsMessages.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.wst.xml.ui.internal.wizards;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XML Wizards
- * 
- * @plannedfor 1.0
- */
-public class XMLWizardsMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.ui.internal.wizards.wizardResource";//$NON-NLS-1$
-
-	public static String _UI_DIALOG_NEW_TITLE;
-	public static String _UI_DIALOG_TITLE_INVALID_GRAMMAR;
-	public static String _UI_DIALOG_MESSAGE_INVALID_GRAMMAR;
-	public static String _UI_RADIO_XML_FROM_DTD;
-	public static String _UI_RADIO_XML_FROM_SCHEMA;
-	public static String _UI_RADIO_XML_FROM_SCRATCH;
-	public static String _UI_WIZARD_CREATE_XML_HEADING;
-	public static String _UI_WIZARD_CREATE_XML_EXPL;
-	public static String _UI_WIZARD_CREATE_XML_FILE_HEADING;
-	public static String _UI_WIZARD_CREATE_XML_FILE_EXPL;
-	public static String _UI_WIZARD_SELECT_DTD_FILE_DESC;
-	public static String _UI_WIZARD_SELECT_DTD_FILE_TITLE;
-	public static String _UI_WIZARD_SELECT_XSD_FILE_DESC;
-	public static String _UI_WIZARD_SELECT_XSD_FILE_TITLE;
-	public static String _UI_WIZARD_SELECT_ROOT_HEADING;
-	public static String _UI_WIZARD_SELECT_ROOT_EXPL;
-	public static String _UI_LABEL_ROOT_ELEMENT;
-	public static String _UI_WARNING_TITLE_NO_ROOT_ELEMENTS;
-	public static String _UI_WARNING_MSG_NO_ROOT_ELEMENTS;
-	public static String _UI_LABEL_NO_LOCATION_HINT;
-	public static String _UI_WARNING_MSG_NO_LOCATION_HINT_1;
-	public static String _UI_WARNING_MSG_NO_LOCATION_HINT_2;
-	public static String _UI_WARNING_MSG_NO_LOCATION_HINT_3;
-	public static String _UI_WIZARD_CONTENT_OPTIONS;
-	public static String _UI_WIZARD_CREATE_REQUIRED;// commented out
-	public static String _UI_WIZARD_CREATE_OPTIONAL;// commented out
-	public static String _UI_WIZARD_CREATE_OPTIONAL_ATTRIBUTES;
-	public static String _UI_WIZARD_CREATE_OPTIONAL_ELEMENTS;
-	public static String _UI_WIZARD_CREATE_FIRST_CHOICE;
-	public static String _UI_WIZARD_FILL_ELEMENTS_AND_ATTRIBUTES;
-	public static String _UI_LABEL_DOCTYPE_INFORMATION;
-	public static String _UI_LABEL_SYSTEM_ID;
-	public static String _UI_LABEL_PUBLIC_ID;
-	public static String _UI_WARNING_URI_NOT_FOUND_COLON;
-	public static String _UI_INVALID_GRAMMAR_ERROR;
-	public static String _ERROR_BAD_FILENAME_EXTENSION;
-	public static String _ERROR_FILE_ALREADY_EXISTS;
-	public static String _ERROR_ROOT_ELEMENT_MUST_BE_SPECIFIED;
-	public static String _UI_LABEL_ERROR_SCHEMA_INVALID_INFO;
-	public static String _UI_LABEL_ERROR_DTD_INVALID_INFO;
-	public static String _UI_LABEL_ERROR_CATALOG_ENTRY_INVALID;
-	public static String _UI_LABEL_NAMESPACE_INFORMATION;
-	public static String Validation_Plugins_Unavailable;
-	public static String Validation_cannot_be_performed;
-	public static String ExampleProjectCreationOperation_op_desc;
-	public static String ExampleProjectCreationOperation_op_desc_proj;
-	public static String ExampleProjectCreationWizard_title;
-	public static String ExampleProjectCreationWizard_op_error_title;
-	public static String ExampleProjectCreationWizard_op_error_message;
-	public static String ExampleProjectCreationWizard_overwritequery_title;
-	public static String ExampleProjectCreationWizard_overwritequery_message;
-	public static String ExampleProjectCreationWizardPage_error_alreadyexists;
-	
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, XMLWizardsMessages.class);
-	}
-
-	private XMLWizardsMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/icons/generatexml_wiz.gif b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/icons/generatexml_wiz.gif
deleted file mode 100644
index 2e4f667..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/icons/generatexml_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/wizardResource.properties b/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/wizardResource.properties
deleted file mode 100644
index 42393a0..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src-wizards/org/eclipse/wst/xml/ui/internal/wizards/wizardResource.properties
+++ /dev/null
@@ -1,80 +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
-###############################################################################
-! Properties file for component: XML Tools -  New XML Wizard
-! Packaged for translation in:  xml.zip
-
-!XMLImportActionDelegate
-_UI_DIALOG_NEW_TITLE        = New
-_UI_DIALOG_TITLE_INVALID_GRAMMAR = Invalid Grammar
-_UI_DIALOG_MESSAGE_INVALID_GRAMMAR = The grammar file contains errors. If you proceed, an incorrect result file will be generated. Do you want to continue?
-
-!NewXMLBWizard
-_UI_RADIO_XML_FROM_DTD                = Create XML file from a &DTD file
-_UI_RADIO_XML_FROM_SCHEMA             = Create XML file from an &XML schema file
-_UI_RADIO_XML_FROM_SCRATCH            = Create XML file from &scratch
-_UI_WIZARD_CREATE_XML_HEADING         = Create XML File
-_UI_WIZARD_CREATE_XML_EXPL            = Select how you would like to create your XML file.
-_UI_WIZARD_CREATE_XML_FILE_HEADING    = XML File Name
-_UI_WIZARD_CREATE_XML_FILE_EXPL       = Specify a name for the new XML file.
-_UI_WIZARD_SELECT_DTD_FILE_DESC       = Select the DTD file to create the XML file.
-_UI_WIZARD_SELECT_DTD_FILE_TITLE      = Select DTD File
-_UI_WIZARD_SELECT_XSD_FILE_DESC       = Select the schema file to create the XML file.
-_UI_WIZARD_SELECT_XSD_FILE_TITLE      = Select XML Schema File
-_UI_WIZARD_SELECT_ROOT_HEADING        = Select Root Element
-_UI_WIZARD_SELECT_ROOT_EXPL           = Select the root element of the XML file.
-_UI_LABEL_ROOT_ELEMENT                = Root element:
-_UI_WARNING_TITLE_NO_ROOT_ELEMENTS    = No Root Elements
-_UI_WARNING_MSG_NO_ROOT_ELEMENTS      = No root element exists since the schema provided has no global elements.
-_UI_LABEL_NO_LOCATION_HINT            = Unspecified Namespace Location
-_UI_WARNING_MSG_NO_LOCATION_HINT_1    = You have not specified a location hint for one or more namespace entries.
-_UI_WARNING_MSG_NO_LOCATION_HINT_2    = Elements from these namespaces will not be generated. This may lead to an invalid generated document.
-_UI_WARNING_MSG_NO_LOCATION_HINT_3    = Click Yes to continue, Click No to go back and specify the location hints.
-_UI_WIZARD_CONTENT_OPTIONS            = Content options
-
-_UI_WIZARD_CREATE_REQUIRED            = &Create required content only
-_UI_WIZARD_CREATE_OPTIONAL            = Create required and &optional content
-
-_UI_WIZARD_CREATE_OPTIONAL_ATTRIBUTES = Create optional &attributes
-_UI_WIZARD_CREATE_OPTIONAL_ELEMENTS   = Create optional e&lements
-_UI_WIZARD_CREATE_FIRST_CHOICE        = Create first choice of required &choice
-_UI_WIZARD_FILL_ELEMENTS_AND_ATTRIBUTES = Fill elements and attributes with &data
-
-_UI_LABEL_DOCTYPE_INFORMATION         = Document type information
-_UI_LABEL_SYSTEM_ID                   = &System ID:
-_UI_LABEL_PUBLIC_ID                   = &Public ID:
-
-_UI_WARNING_URI_NOT_FOUND_COLON       = The specified resource cannot be located :
-
-!NewModelWizard
-_UI_INVALID_GRAMMAR_ERROR             = Invalid Grammar
-
-!NewModelWizard
-_ERROR_BAD_FILENAME_EXTENSION         = The file name must end in one of the following extensions {0}.
-_ERROR_FILE_ALREADY_EXISTS            = The same file already exists.
-_ERROR_ROOT_ELEMENT_MUST_BE_SPECIFIED = A root element must be specified.
-_UI_LABEL_ERROR_SCHEMA_INVALID_INFO   = The schema file contains errors. Open it in the XML schema editor for details.
-_UI_LABEL_ERROR_DTD_INVALID_INFO      = The DTD file contains errors. Open it in the DTD editor for details.
-
-_UI_LABEL_ERROR_CATALOG_ENTRY_INVALID = The selected catalog entry specifies a URI that can not be located.
-
-_UI_LABEL_NAMESPACE_INFORMATION=Namespace Information
-Validation_Plugins_Unavailable=Validation Plugins Unavailable
-Validation_cannot_be_performed=Validation cannot be performed because the validation plugins were disabled or not found.  The generated file may be invalid.  Do you wish to continue?
-#
-# ExampleProject
-ExampleProjectCreationOperation_op_desc=Creating example projects...
-ExampleProjectCreationOperation_op_desc_proj=Configuring project...
-ExampleProjectCreationWizard_title=New Example Project
-ExampleProjectCreationWizard_op_error_title=Project Creation Failed
-ExampleProjectCreationWizard_op_error_message=Project could not be created.
-ExampleProjectCreationWizard_overwritequery_title=Overwrite
-ExampleProjectCreationWizard_overwritequery_message=Do you want to overwrite {0}?
-ExampleProjectCreationWizardPage_error_alreadyexists=Project already exists.
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/StructuredTextViewerConfigurationXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/StructuredTextViewerConfigurationXML.java
deleted file mode 100644
index 8bf1f56..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/StructuredTextViewerConfigurationXML.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.ITextDoubleClickStrategy;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.formatter.IContentFormatter;
-import org.eclipse.jface.text.formatter.MultiPassContentFormatter;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
-import org.eclipse.wst.sse.core.text.IStructuredPartitions;
-import org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.format.StructuredFormattingStrategy;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.taginfo.TextHoverManager;
-import org.eclipse.wst.sse.ui.internal.util.EditorUtility;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
-import org.eclipse.wst.xml.core.internal.text.rules.StructuredTextPartitionerForXML;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-import org.eclipse.wst.xml.ui.internal.autoedit.AutoEditStrategyForTabs;
-import org.eclipse.wst.xml.ui.internal.autoedit.StructuredAutoEditStrategyXML;
-import org.eclipse.wst.xml.ui.internal.contentassist.NoRegionContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.contentassist.XMLContentAssistProcessor;
-import org.eclipse.wst.xml.ui.internal.doubleclick.XMLDoubleClickStrategy;
-import org.eclipse.wst.xml.ui.internal.hyperlink.XMLHyperlinkDetector;
-import org.eclipse.wst.xml.ui.internal.style.LineStyleProviderForXML;
-import org.eclipse.wst.xml.ui.internal.taginfo.XMLInformationProvider;
-import org.eclipse.wst.xml.ui.internal.taginfo.XMLTagInfoHoverProcessor;
-
-/**
- * Configuration for a source viewer which shows XML content.
- * <p>
- * Clients can subclass and override just those methods which must be specific
- * to their needs.
- * </p>
- * 
- * @see org.eclipse.wst.sse.ui.StructuredTextViewerConfiguration
- * @since 1.0
- */
-public class StructuredTextViewerConfigurationXML extends StructuredTextViewerConfiguration {
-	/*
-	 * One instance per configuration because not sourceviewer-specific and
-	 * it's a String array
-	 */
-	private String[] fConfiguredContentTypes;
-	/*
-	 * One instance per configuration
-	 */
-	private LineStyleProvider fLineStyleProviderForXML;
-
-	/**
-	 * Create new instance of StructuredTextViewerConfigurationXML
-	 */
-	public StructuredTextViewerConfigurationXML() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	public IAutoEditStrategy[] getAutoEditStrategies(ISourceViewer sourceViewer, String contentType) {
-		List allStrategies = new ArrayList(0);
-
-		IAutoEditStrategy[] superStrategies = super.getAutoEditStrategies(sourceViewer, contentType);
-		for (int i = 0; i < superStrategies.length; i++) {
-			allStrategies.add(superStrategies[i]);
-		}
-
-		if (contentType == IXMLPartitions.XML_DEFAULT) {
-			allStrategies.add(new StructuredAutoEditStrategyXML());
-		}
-
-		// be sure this is last, so it can modify any results form previous
-		// commands that might on on same partiion type.
-		// add auto edit strategy that handles when tab key is pressed
-		allStrategies.add(new AutoEditStrategyForTabs());
-
-		return (IAutoEditStrategy[]) allStrategies.toArray(new IAutoEditStrategy[allStrategies.size()]);
-	}
-
-	public String[] getConfiguredContentTypes(ISourceViewer sourceViewer) {
-
-		if (fConfiguredContentTypes == null) {
-			String[] xmlTypes = StructuredTextPartitionerForXML.getConfiguredContentTypes();
-			fConfiguredContentTypes = new String[xmlTypes.length + 2];
-			fConfiguredContentTypes[0] = IStructuredPartitions.DEFAULT_PARTITION;
-			fConfiguredContentTypes[1] = IStructuredPartitions.UNKNOWN_PARTITION;
-			int index = 0;
-			System.arraycopy(xmlTypes, 0, fConfiguredContentTypes, index += 2, xmlTypes.length);
-		}
-		return fConfiguredContentTypes;
-	}
-
-	protected IContentAssistProcessor[] getContentAssistProcessors(ISourceViewer sourceViewer, String partitionType) {
-		IContentAssistProcessor[] processors = null;
-
-		if ((partitionType == IStructuredPartitions.DEFAULT_PARTITION) || (partitionType == IXMLPartitions.XML_DEFAULT)) {
-			processors = new IContentAssistProcessor[]{new XMLContentAssistProcessor()};
-		}
-		else if (partitionType == IStructuredPartitions.UNKNOWN_PARTITION) {
-			processors = new IContentAssistProcessor[]{new NoRegionContentAssistProcessor()};
-		}
-
-		return processors;
-	}
-
-	public IContentFormatter getContentFormatter(ISourceViewer sourceViewer) {
-		final MultiPassContentFormatter formatter = new MultiPassContentFormatter(getConfiguredDocumentPartitioning(sourceViewer), IXMLPartitions.XML_DEFAULT);
-
-		formatter.setMasterStrategy(new StructuredFormattingStrategy(new FormatProcessorXML()));
-
-		return formatter;
-	}
-
-	public ITextDoubleClickStrategy getDoubleClickStrategy(ISourceViewer sourceViewer, String contentType) {
-
-		ITextDoubleClickStrategy doubleClickStrategy = null;
-		if (contentType.compareTo(IXMLPartitions.XML_DEFAULT) == 0)
-			doubleClickStrategy = new XMLDoubleClickStrategy();
-		else
-			doubleClickStrategy = super.getDoubleClickStrategy(sourceViewer, contentType);
-		return doubleClickStrategy;
-	}
-
-	public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
-		if (sourceViewer == null || !fPreferenceStore.getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_HYPERLINKS_ENABLED))
-			return null;
-
-		List allDetectors = new ArrayList(0);
-		allDetectors.add(new XMLHyperlinkDetector());
-
-		IHyperlinkDetector[] superDetectors = super.getHyperlinkDetectors(sourceViewer);
-		for (int m = 0; m < superDetectors.length; m++) {
-			IHyperlinkDetector detector = superDetectors[m];
-			if (!allDetectors.contains(detector)) {
-				allDetectors.add(detector);
-			}
-		}
-		return (IHyperlinkDetector[]) allDetectors.toArray(new IHyperlinkDetector[0]);
-	}
-
-	public String[] getIndentPrefixes(ISourceViewer sourceViewer, String contentType) {
-		Vector vector = new Vector();
-
-		// prefix[0] is either '\t' or ' ' x tabWidth, depending on preference
-		Preferences preferences = XMLCorePlugin.getDefault().getPluginPreferences();
-		int indentationWidth = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE);
-		String indentCharPref = preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR);
-		boolean useSpaces = XMLCorePreferenceNames.SPACE.equals(indentCharPref);
-
-		for (int i = 0; i <= indentationWidth; i++) {
-			StringBuffer prefix = new StringBuffer();
-			boolean appendTab = false;
-
-			if (useSpaces) {
-				for (int j = 0; j + i < indentationWidth; j++)
-					prefix.append(' ');
-
-				if (i != 0)
-					appendTab = true;
-			}
-			else {
-				for (int j = 0; j < i; j++)
-					prefix.append(' ');
-
-				if (i != indentationWidth)
-					appendTab = true;
-			}
-
-			if (appendTab) {
-				prefix.append('\t');
-				vector.add(prefix.toString());
-				// remove the tab so that indentation - tab is also an indent
-				// prefix
-				prefix.deleteCharAt(prefix.length() - 1);
-			}
-			vector.add(prefix.toString());
-		}
-
-		vector.add(""); //$NON-NLS-1$
-
-		return (String[]) vector.toArray(new String[vector.size()]);
-	}
-
-	protected IInformationProvider getInformationProvider(ISourceViewer sourceViewer, String partitionType) {
-		IInformationProvider provider = null;
-		if ((partitionType == IStructuredPartitions.DEFAULT_PARTITION) || (partitionType == IXMLPartitions.XML_DEFAULT)) {
-			provider = new XMLInformationProvider();
-		}
-		return provider;
-	}
-
-	public LineStyleProvider[] getLineStyleProviders(ISourceViewer sourceViewer, String partitionType) {
-		LineStyleProvider[] providers = null;
-
-		if (partitionType == IXMLPartitions.XML_DEFAULT || partitionType == IXMLPartitions.XML_CDATA || partitionType == IXMLPartitions.XML_COMMENT || partitionType == IXMLPartitions.XML_DECLARATION || partitionType == IXMLPartitions.XML_PI) {
-			providers = new LineStyleProvider[]{getLineStyleProviderForXML()};
-		}
-
-		return providers;
-	}
-
-	private LineStyleProvider getLineStyleProviderForXML() {
-		if (fLineStyleProviderForXML == null)
-			fLineStyleProviderForXML = new LineStyleProviderForXML();
-		return fLineStyleProviderForXML;
-	}
-
-	public ITextHover getTextHover(ISourceViewer sourceViewer, String contentType, int stateMask) {
-		ITextHover textHover = null;
-
-		// look for appropriate text hover processor to return based on
-		// content type and state mask
-		if ((contentType == IStructuredPartitions.DEFAULT_PARTITION) || (contentType == IXMLPartitions.XML_DEFAULT)) {
-			// check which of xml's text hover is handling stateMask
-			TextHoverManager manager = SSEUIPlugin.getDefault().getTextHoverManager();
-			TextHoverManager.TextHoverDescriptor[] hoverDescs = manager.getTextHovers();
-			int i = 0;
-			while (i < hoverDescs.length && textHover == null) {
-				if (hoverDescs[i].isEnabled() && EditorUtility.computeStateMask(hoverDescs[i].getModifierString()) == stateMask) {
-					String hoverType = hoverDescs[i].getId();
-					if (TextHoverManager.COMBINATION_HOVER.equalsIgnoreCase(hoverType))
-						textHover = manager.createBestMatchHover(new XMLTagInfoHoverProcessor());
-					else if (TextHoverManager.DOCUMENTATION_HOVER.equalsIgnoreCase(hoverType))
-						textHover = new XMLTagInfoHoverProcessor();
-				}
-				i++;
-			}
-		}
-
-		// no appropriate text hovers found, try super
-		if (textHover == null)
-			textHover = super.getTextHover(sourceViewer, contentType, stateMask);
-
-		return textHover;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/DOMObserver.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/DOMObserver.java
deleted file mode 100644
index 6f65976..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/DOMObserver.java
+++ /dev/null
@@ -1,193 +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.wst.xml.ui.internal;
-
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.CMDocumentLoader;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.InferredGrammarBuildingCMDocumentLoader;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * This class is used to observe changes in the DOM and perform
- * occasional'scans' to deduce information. We use a delay timer mechanism to
- * ensure scans are made every couple of seconds to avoid performance
- * problems. Currently this class is used to keep track of referenced grammar
- * uri's within the document ensure that they are loaded by the
- * CMDocumentManager. We might want to generalize this class to perform other
- * suplimental information gathering that is suitable for 'time delayed'
- * computation (error hints etc.).
- */
-// TODO: Where should this class go?
-public class DOMObserver {
-
-
-	// An abstract adapter that ensures that the children of a new Node are
-	// also adapted
-	//
-	abstract class DocumentAdapter implements INodeAdapter {
-		public DocumentAdapter() {
-		}
-
-		public void connect(Document document) {
-			((INodeNotifier) document).addAdapter(this);
-			adapt(document.getDocumentElement());
-		}
-
-		public void dicconnect(Document document) {
-			((INodeNotifier) document).removeAdapter(this);
-		}
-
-		public void adapt(Element element) {
-			if (element != null) {
-				if (((INodeNotifier) element).getExistingAdapter(this) == null) {
-					((INodeNotifier) element).addAdapter(this);
-
-					for (Node child = element.getFirstChild(); child != null; child = child.getNextSibling()) {
-						if (child.getNodeType() == Node.ELEMENT_NODE) {
-							adapt((Element) child);
-						}
-					}
-				}
-			}
-		}
-
-		public boolean isAdapterForType(Object type) {
-			return type == this;
-		}
-
-		abstract public void notifyChanged(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index);
-	}
-
-	/**
-	 * This class listens to the changes in the CMDocument and triggers a
-	 * CMDocument load
-	 */
-	class MyDocumentAdapter extends DocumentAdapter {
-
-		public void notifyChanged(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index) {
-			switch (eventType) {
-				case INodeNotifier.ADD : {
-					if (newValue instanceof Element) {
-						// System.out.println("ADD (to " +
-						// ((Node)notifier).getNodeName() + ") " +
-						// ((Element)newValue).getNodeName() + " old " +
-						// oldValue);
-						adapt((Element) newValue);
-					}
-					break;
-				}
-					// case INodeNotifier.REMOVE:
-				case INodeNotifier.CHANGE :
-				case INodeNotifier.STRUCTURE_CHANGED :
-				case INodeNotifier.CONTENT_CHANGED : {
-					Node node = (Node) notifier;
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						switch (eventType) {
-							case INodeNotifier.CHANGE :
-							case INodeNotifier.STRUCTURE_CHANGED : {
-								// structure change
-								invokeDelayedCMDocumentLoad();
-								break;
-							}
-							case INodeNotifier.CONTENT_CHANGED : {
-								// some content changed
-								break;
-							}
-						}
-					}
-					else if (node.getNodeType() == Node.DOCUMENT_NODE) {
-						invokeDelayedCMDocumentLoad();
-					}
-					break;
-				}
-			}
-		}
-	}
-
-	/**
-	 * Intentionally left visible to the user
-	 */
-	class TimerJob extends Job {
-		public TimerJob() {
-			super(SSEUIMessages.LoadingReferencedGrammars);
-			setPriority(Job.SHORT);
-		}
-
-		public IStatus run(IProgressMonitor monitor) {
-			monitor.beginTask("", IProgressMonitor.UNKNOWN); //$NON-NLS-1$
-			invokeCMDocumentLoad();
-			monitor.done();
-			return Status.OK_STATUS;
-		}
-	}
-
-	private Job timer = new TimerJob();
-	protected Document fDocument;
-	protected boolean isGrammarInferenceEnabled;
-
-	public DOMObserver(IStructuredModel model) {
-		fDocument = (model instanceof IDOMModel) ? ((IDOMModel) model).getDocument() : null;
-
-		if (fDocument != null) {
-			// here we create and init an adapter that will listen to
-			// changes to the document and contained elements
-			MyDocumentAdapter adapter = new MyDocumentAdapter();
-			adapter.connect(fDocument);
-
-			ModelQuery modelQuery = ModelQueryUtil.getModelQuery(fDocument);
-			if (modelQuery != null && modelQuery.getCMDocumentManager() != null) {
-				CMDocumentManager cmDocumentManager = modelQuery.getCMDocumentManager();
-				cmDocumentManager.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD, false);
-			}
-		}
-	}
-
-	public void init() {
-		// CS: we seem to expose an XSD initialization problem when we do this
-		// immediately
-		// very nasty... I need to revist this problem with Ed Merks
-		//
-		// invokeCMDocumentLoad();
-		invokeDelayedCMDocumentLoad();
-	}
-
-	public void invokeCMDocumentLoad() {
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(fDocument);
-		if (modelQuery != null && modelQuery.getCMDocumentManager() != null) {
-			CMDocumentLoader loader = isGrammarInferenceEnabled ? new InferredGrammarBuildingCMDocumentLoader(fDocument, modelQuery) : new CMDocumentLoader(fDocument, modelQuery);
-			loader.loadCMDocuments();
-		}
-	}
-
-	public void invokeDelayedCMDocumentLoad() {
-		timer.schedule(2000);
-	}
-
-	public void setGrammarInferenceEnabled(boolean isEnabled) {
-		isGrammarInferenceEnabled = isEnabled;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/Logger.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/Logger.java
deleted file mode 100644
index eaa667f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/Logger.java
+++ /dev/null
@@ -1,159 +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.wst.xml.ui.internal;
-
-
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-/**
- * Small convenience class to log messages to plugin's log file and also, if
- * desired, the console. This class should only be used by classes in this
- * plugin. Other plugins should make their own copy, with appropriate ID.
- */
-public class Logger {
-	private static final String PLUGIN_ID = "org.eclipse.wst.xml.ui"; //$NON-NLS-1$
-	
-	public static final int ERROR = IStatus.ERROR; // 4
-	public static final int ERROR_DEBUG = 200 + ERROR;
-	public static final int INFO = IStatus.INFO; // 1
-	public static final int INFO_DEBUG = 200 + INFO;
-
-	public static final int OK = IStatus.OK; // 0
-
-	public static final int OK_DEBUG = 200 + OK;
-
-	private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
-	public static final int WARNING = IStatus.WARNING; // 2
-	public static final int WARNING_DEBUG = 200 + WARNING;
-
-	/**
-	 * Adds message to log.
-	 * 
-	 * @param level
-	 *            severity level of the message (OK, INFO, WARNING, ERROR,
-	 *            OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
-	 * @param message
-	 *            text to add to the log
-	 * @param exception
-	 *            exception thrown
-	 */
-	protected static void _log(int level, String message, Throwable exception) {
-		if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
-			if (!isDebugging())
-				return;
-		}
-
-		int severity = IStatus.OK;
-		switch (level) {
-			case INFO_DEBUG :
-			case INFO :
-				severity = IStatus.INFO;
-				break;
-			case WARNING_DEBUG :
-			case WARNING :
-				severity = IStatus.WARNING;
-				break;
-			case ERROR_DEBUG :
-			case ERROR :
-				severity = IStatus.ERROR;
-		}
-		message = (message != null) ? message : "null"; //$NON-NLS-1$
-		Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		if (bundle != null) 
-			Platform.getLog(bundle).log(statusObj);
-	}
-
-	/**
-	 * Prints message to log if category matches /debug/tracefilter option.
-	 * 
-	 * @param message
-	 *            text to print
-	 * @param category
-	 *            category of the message, to be compared with
-	 *            /debug/tracefilter
-	 */
-	protected static void _trace(String category, String message, Throwable exception) {
-		if (isTracing(category)) {
-			message = (message != null) ? message : "null"; //$NON-NLS-1$
-			Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
-			Bundle bundle = Platform.getBundle(PLUGIN_ID);
-			if (bundle != null) 
-				Platform.getLog(bundle).log(statusObj);
-		}
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-
-	/**
-	 * Determines if currently tracing a category
-	 * 
-	 * @param category
-	 * @return true if tracing category, false otherwise
-	 */
-	public static boolean isTracing(String category) {
-		if (!isDebugging())
-			return false;
-
-		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
-		if (traceFilter != null) {
-			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				String cat = tokenizer.nextToken().trim();
-				if (category.equals(cat)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static void log(int level, String message) {
-		_log(level, message, null);
-	}
-
-	public static void log(int level, String message, Throwable exception) {
-		_log(level, message, exception);
-	}
-
-	public static void logException(String message, Throwable exception) {
-		_log(ERROR, message, exception);
-	}
-
-	public static void logException(Throwable exception) {
-		_log(ERROR, exception.getMessage(), exception);
-	}
-
-	public static void trace(String category, String message) {
-		_trace(category, message, null);
-	}
-
-	public static void traceException(String category, String message, Throwable exception) {
-		_trace(category, message, exception);
-	}
-
-	public static void traceException(String category, Throwable exception) {
-		_trace(category, exception.getMessage(), exception);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
deleted file mode 100644
index 7026279..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIMessages.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2005 IBM Corporation and others. All rights reserved.   This
- * program and the accompanying materials are made available under the terms of
- * the Eclipse Public License v1.0 which accompanies this distribution, and is
- * available at http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.wst.xml.ui.internal;
-
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XML UI
- * 
- * @plannedfor 1.0
- */
-public class XMLUIMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xml.ui.internal.XMLUIPluginResources";//$NON-NLS-1$
-	private static ResourceBundle fResourceBundle;
-
-	public static String Sample_XML_doc;
-	public static String Comment_Delimiters_UI_;
-	public static String Comment_Content_UI_;
-	public static String Tag_Delimiters_UI_;
-	public static String Tag_Names_UI_;
-	public static String Attribute_Names_UI_;
-	public static String Attribute_Values_UI_;
-	public static String Declaration_Delimiters_UI_;
-	public static String Content_UI_;
-	public static String CDATA_Delimiters_UI_;
-	public static String CDATA_Content_UI_;
-	public static String Processing_Instruction_Del_UI_;
-	public static String Processing_Instruction_Con_UI__UI_;
-	public static String DOCTYPE_Name_UI_;
-	public static String DOCTYPE_SYSTEM_PUBLIC_Keyw_UI_;
-	public static String DOCTYPE_Public_Reference_UI_;
-	public static String DOCTYPE_System_Reference_UI_;
-	public static String DELETE;
-	public static String ADD_PROCESSING_INSTRUCTION;
-	public static String _UI_MENU_ADD_AFTER;
-	public static String _UI_MENU_ADD_ATTRIBUTE;
-	public static String _UI_MENU_ADD_BEFORE;
-	public static String _UI_MENU_ADD_CHILD;
-	public static String _UI_MENU_REMOVE;
-	public static String _UI_MENU_REPLACE_WITH;
-	public static String _UI_MENU_EDIT_DOCTYPE;
-	public static String _UI_LABEL_UNDO_REPLACE_DESCRIPTION;
-	public static String _UI_LABEL_EDIT_DOCTYPE;
-	public static String _UI_INFO_EXPAND_ALL;
-	public static String _UI_INFO_COLLAPSE_ALL;
-	public static String _UI_MENU_ADD_DTD_INFORMATION;
-	public static String _UI_MENU_ADD_SCHEMA_INFORMATION;
-	public static String _UI_MENU_EDIT_PROCESSING_INSTRUCTION;
-	public static String _UI_MENU_EDIT_NAMESPACES;
-	public static String _UI_MENU_ADD_DTD_INFORMATION_TITLE;
-	public static String _UI_MENU_EDIT_PROCESSING_INSTRUCTION_TITLE;
-	public static String _UI_MENU_EDIT_SCHEMA_INFORMATION_TITLE;
-	public static String _UI_MENU_NEW_ATTRIBUTE;
-	public static String _UI_MENU_NEW_ATTRIBUTE_TITLE;
-	public static String _UI_MENU_EDIT_ATTRIBUTE;
-	public static String _UI_MENU_EDIT_ATTRIBUTE_TITLE;
-	public static String _UI_MENU_NEW_ELEMENT;
-	public static String _UI_MENU_NEW_ELEMENT_TITLE;
-	public static String _UI_MENU_RENAME;
-	public static String _UI_MENU_RENAME_TITLE;
-	public static String _UI_LABEL_ELEMENT_NAME;
-	public static String _UI_MENU_ADD_COMMENT;
-	public static String _UI_MENU_ADD_PROCESSING_INSTRUCTION;
-	public static String _UI_MENU_ADD_CDATA_SECTION;
-	public static String _UI_MENU_ADD_PCDATA;
-	public static String _UI_MENU_COMMENT;
-	public static String _UI_MENU_PROCESSING_INSTRUCTION;
-	public static String _UI_MENU_CDATA_SECTION;
-	public static String _UI_MENU_PCDATA;
-	public static String _UI_MENU_ADD;
-	public static String _UI_COMMENT_VALUE;
-	public static String _UI_PI_TARGET_VALUE;
-	public static String _UI_PI_DATA_VALUE;
-	public static String _UI_LABEL_ROOT_ELEMENT_VALUE;
-	public static String _UI_LABEL_TARGET_COLON;
-	public static String _UI_LABEL_DATA_COLON;
-	public static String _UI_LABEL_ROOT_ELEMENT_NAME_COLON;
-	public static String _UI_LABEL_PUBLIC_ID_COLON;
-	public static String _UI_LABEL_SYSTEM_ID_COLON;
-	public static String _UI_LABEL_BROWSE;
-	public static String _UI_LABEL_SELECT_XML_CATALOG_ENTRY;
-	public static String _UI_LABEL_SPECIFY_SYSTEM_ID;
-	public static String _UI_LABEL_SELECT_FILE;
-	public static String _UI_LABEL_KEY;
-	public static String _UI_LABEL_URI;
-	public static String _UI_LABEL_XML_CATALOG_COLON;
-	public static String _UI_LABEL_NAMESPACE_NAME;
-	public static String _UI_LABEL_LOCATION_HINT;
-	public static String _UI_LABEL_PREFIX;
-	public static String _UI_LABEL_NAMESPACE_NAME_COLON;
-	public static String _UI_LABEL_LOCATION_HINT_COLON;
-	public static String _UI_LABEL_PREFIX_COLON;
-	public static String _UI_NO_NAMESPACE_NAME;
-	public static String _UI_NO_PREFIX;
-	public static String _UI_LABEL_XML_SCHEMA_INFORMATION;
-	public static String _UI_LABEL_NAME_COLON;
-	public static String _UI_LABEL_VALUE_COLON;
-	public static String _UI_BUTTON_DELETE;
-	public static String _UI_BUTTON_NEW;
-	public static String _UI_BUTTON_EDIT;
-	public static String _UI_LABEL_NEW_NAMESPACE_INFORMATION;
-	public static String _UI_RADIO_BUTTON_SELECT_FROM_WORKSPACE;
-	public static String _UI_RADIO_BUTTON_SELECT_FROM_CATALOG;
-	public static String _UI_WARNING_MORE_THAN_ONE_NS_WITH_NAME;
-	public static String _UI_WARNING_MORE_THAN_ONE_NS_WITHOUT_NAME;
-	public static String _UI_WARNING_MORE_THAN_ONE_NS_WITHOUT_PREFIX;
-	public static String _UI_WARNING_MORE_THAN_ONE_NS_WITH_PREFIX;
-	public static String _UI_WARNING_SCHEMA_CAN_NOT_BE_LOCATED;
-	public static String _UI_WARNING_LOCATION_HINT_NOT_SPECIFIED;
-	public static String _UI_WARNING_NAMESPACE_NAME_NOT_SPECIFIED;
-	public static String _UI_WARNING_PREFIX_NOT_SPECIFIED;
-	public static String _UI_WARNING_ROOT_ELEMENT_MUST_BE_SPECIFIED;
-	public static String _UI_WARNING_SYSTEM_ID_MUST_BE_SPECIFIED;
-	public static String _UI_INVALID_NAME;
-	public static String _UI_ENTER_REQ_PREFIX_AND_NAMESPACE;
-	public static String _UI_SELECT_REGISTERED_NAMESPACES;
-	public static String _UI_SPECIFY_NEW_NAMESPACE;
-	public static String _UI_SELECT_NAMESPACE_TO_ADD;
-	public static String _UI_ADD_NAMESPACE_DECLARATIONS;
-	public static String _UI_NAMESPACE_DECLARATIONS;
-	public static String _UI_TARGET_NAMESPACE;
-	public static String _ERROR_XML_ATTRIBUTE_ALREADY_EXISTS;
-	public static String error_message_goes_here;
-	public static String SurroundWithNewElementQuickAssistProposal_0;
-	public static String SurroundWithNewElementQuickAssistProposal_1;
-	public static String RenameInFileQuickAssistProposal_0;
-	public static String RenameInFileQuickAssistProposal_1;
-	public static String InsertRequiredAttrsQuickAssistProposal_0;
-	public static String InsertRequiredAttrsQuickAssistProposal_1;
-	public static String EncodingSettings_0;
-	public static String EncodingSettings_1;
-	public static String DragNodeCommand_0;
-	public static String DragNodeCommand_1;
-	public static String CommonEditNamespacesDialog_0;
-	public static String JFaceNodeAdapter_1;
-	public static String QuickFixProcessorXML_0;
-	public static String QuickFixProcessorXML_1;
-	public static String QuickFixProcessorXML_2;
-	public static String QuickFixProcessorXML_3;
-	public static String QuickFixProcessorXML_4;
-	public static String QuickFixProcessorXML_5;
-	public static String QuickFixProcessorXML_6;
-	public static String QuickFixProcessorXML_7;
-	public static String QuickFixProcessorXML_8;
-	public static String QuickFixProcessorXML_9;
-	public static String QuickFixProcessorXML_10;
-	public static String QuickFixProcessorXML_11;
-	public static String QuickFixProcessorXML_12;
-	public static String QuickFixProcessorXML_13;
-	public static String QuickFixProcessorXML_14;
-	public static String QuickFixProcessorXML_15;
-	public static String XMLPropertySourceAdapter_0;
-	public static String WorkbenchDefaultEncodingSettings_0;
-	public static String refreshoutline_0;
-	public static String Creating_files_encoding;
-	public static String End_tag_has_attributes;
-	public static String Attribute__is_missing_a_value;
-	public static String Attribute__has_no_value;
-	public static String Missing_end_tag_;
-	public static String ReconcileStepForMarkup_0;
-	public static String ReconcileStepForMarkup_1;
-	public static String ReconcileStepForMarkup_2;
-	public static String ReconcileStepForMarkup_3;
-	public static String ReconcileStepForMarkup_4;
-	public static String ReconcileStepForMarkup_5;
-	public static String ReconcileStepForMarkup_6;
-	public static String End_with_;
-	public static String SEVERE_internal_error_occu_UI_;
-	public static String No_known_attribute__UI_;
-	public static String Content_Assist_not_availab_UI_;
-	public static String Element__is_unknown;
-	public static String Comment__;
-	public static String Close_with__;
-	public static String End_with__;
-	public static String Close_with___;
-	public static String Close_with____;
-	public static String _Has_no_available_child;
-	public static String No_known_child_tag;
-	public static String __Has_no_known_child;
-	public static String No_known_child_tag_names;
-	public static String The_document_element__;
-	public static String No_definition_for_in;
-	public static String No_definition_for;
-	public static String No_content_model_for;
-	public static String No_content_model_found_UI_;
-	public static String Cleanup_UI_;
-	public static String Compress_empty_element_tags_UI_;
-	public static String Insert_required_attributes_UI_;
-	public static String Insert_missing_tags_UI_;
-	public static String Quote_attribute_values_UI_;
-	public static String Format_source_UI_;
-	public static String Convert_EOL_codes_UI_;
-	public static String EOL_Windows_UI;
-	public static String EOL_Unix_UI;
-	public static String EOL_Mac_UI;
-	public static String Creating_files;
-	public static String Encoding_desc;
-	public static String Encoding;
-	public static String Creating_or_saving_files;
-	public static String End_of_line_code_desc;
-	public static String End_of_line_code;
-	public static String EOL_Windows;
-	public static String EOL_Unix;
-	public static String EOL_Mac;
-	public static String EOL_NoTranslation;
-	public static String XMLFilesPreferencePage_ExtensionLabel;
-	public static String XMLFilesPreferencePage_ExtensionError;
-	public static String Content_assist_UI_;
-	public static String Automatically_make_suggest_UI_;
-	public static String Prompt_when_these_characte_UI_;
-	public static String Formatting_UI_;
-	public static String Line_width__UI_;
-	public static String Split_multiple_attributes;
-	public static String Indent_using_tabs;
-	public static String Indent_using_spaces;
-	public static String Indentation_size;
-	public static String Indentation_size_tip;
-	public static String Clear_all_blank_lines_UI_;
-	public static String Grammar_Constraints;
-	public static String Use_inferred_grammar_in_absence_of;
-	public static String Suggestion_Strategy;
-	public static String Suggestion_Strategy_Lax;
-	public static String Suggestion_Strategy_Strict;
-	public static String Element____1;
-	public static String Content_Model____2;
-	public static String Attribute____3;
-	public static String Data_Type____4;
-	public static String Enumerated_Values____5;
-	public static String FormatMenu_label;
-	public static String SourceMenu_label;
-	public static String Comment_label; // Resource bundle
-	public static String Comment_tooltip; // Resource bundle
-	public static String Comment_description; // Resource bundle
-	public static String Uncomment_label; // Resource bundle
-	public static String Uncomment_tooltip; // Resource bundle
-	public static String Uncomment_description; // Resource bundle
-	public static String ToggleComment_label; // Resource bundle
-	public static String ToggleComment_tooltip; // Resource bundle
-	public static String ToggleComment_description; // Resource bundle
-	public static String AddBlockComment_label; // Resource bundle
-	public static String AddBlockComment_tooltip; // Resource bundle
-	public static String AddBlockComment_description; // Resource bundle
-	public static String RemoveBlockComment_label; // Resource bundle
-	public static String RemoveBlockComment_tooltip; // Resource bundle
-	public static String RemoveBlockComment_description; // Resource bundle
-	public static String CleanupDocument_label; // Resource bundle
-	public static String CleanupDocument_tooltip; // Resource bundle
-	public static String CleanupDocument_description; // Resource bundle
-	public static String FindOccurrences_label; // Resource bundle
-	public static String ShowTooltipDesc_label; // Resource bundle
-	public static String ShowTooltipDesc_tooltip; // Resource bundle
-	public static String ShowTooltipDesc_description; // Resource bundle
-	public static String ContentAssistProposals_label; // Resource bundle
-	public static String ContentAssistProposals_tooltip; // Resource bundle
-	public static String ContentAssistProposals_description; // Resourcebundle
-	public static String QuickFix_label; // Resource bundle
-	public static String QuickFix_tooltip; // Resource bundle
-	public static String QuickFix_description; // Resource bundle
-	public static String FormatDocument_label; // Resource bundle
-	public static String FormatDocument_tooltip; // Resource bundle
-	public static String FormatDocument_description; // Resource bundle
-	public static String FormatActiveElements_label; // Resource bundle
-	public static String FormatActiveElements_tooltip; // Resource bundle
-	public static String FormatActiveElements_description; // Resource bundle
-	public static String OpenFileFromSource_label; // Resource bundle
-	public static String OpenFileFromSource_tooltip; // Resource bundle
-	public static String OpenFileFromSource_description; // Resource bundle
-	public static String XMLContentOutlineConfiguration_0;
-	public static String StructureSelectEnclosing_label;
-	public static String StructureSelectEnclosing_tooltip;
-	public static String StructureSelectEnclosing_description;
-	public static String StructureSelectNext_label;
-	public static String StructureSelectNext_tooltip;
-	public static String StructureSelectNext_description;
-	public static String StructureSelectPrevious_label;
-	public static String StructureSelectPrevious_tooltip;
-	public static String StructureSelectPrevious_description;
-	public static String MESSAGE_XML_VALIDATION_MESSAGE_UI_;
-	public static String Warn_no_grammar_specified;
-	public static String Validating_files;
-
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, XMLUIMessages.class);
-	}
-
-	private XMLUIMessages() {
-		// cannot create new instance
-	}
-
-	public static ResourceBundle getResourceBundle() {
-		try {
-			if (fResourceBundle == null)
-				fResourceBundle = ResourceBundle.getBundle(BUNDLE_NAME);
-		}
-		catch (MissingResourceException x) {
-			fResourceBundle = null;
-		}
-		return fResourceBundle;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPlugin.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPlugin.java
deleted file mode 100644
index 491d881..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPlugin.java
+++ /dev/null
@@ -1,116 +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.wst.xml.ui.internal;
-
-import java.io.IOException;
-
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.editors.text.templates.ContributionContextTypeRegistry;
-import org.eclipse.ui.editors.text.templates.ContributionTemplateStore;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistry;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryRegistryImpl;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLUIPreferenceNames;
-import org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeIdsXML;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class XMLUIPlugin extends AbstractUIPlugin {
-	public final static String ID = "org.eclipse.wst.xml.ui"; //$NON-NLS-1$
-
-	protected static XMLUIPlugin instance = null;
-
-	public static XMLUIPlugin getDefault() {
-		return instance;
-	}
-
-	public synchronized static XMLUIPlugin getInstance() {
-		return instance;
-	}
-
-	/**
-	 * The template context type registry for the xml editor.
-	 */
-	private ContextTypeRegistry fContextTypeRegistry;
-
-	/**
-	 * The template store for the xml editor.
-	 * 
-	 */
-	private TemplateStore fTemplateStore;
-
-	public XMLUIPlugin() {
-		super();
-		instance = this;
-	}
-
-	public AdapterFactoryRegistry getAdapterFactoryRegistry() {
-		return AdapterFactoryRegistryImpl.getInstance();
-
-	}
-
-	/**
-	 * Returns the template store for the xml editor templates.
-	 * 
-	 * @return the template store for the xml editor templates
-	 */
-	public TemplateStore getTemplateStore() {
-		if (fTemplateStore == null) {
-			fTemplateStore = new ContributionTemplateStore(
-					getTemplateContextRegistry(), getPreferenceStore(),
-					XMLUIPreferenceNames.TEMPLATES_KEY);
-
-			try {
-				fTemplateStore.load();
-			} catch (IOException e) {
-				Logger.logException(e);
-			}
-		}
-		return fTemplateStore;
-	}
-
-	/**
-	 * Returns the template context type registry for the xml plugin.
-	 * 
-	 * @return the template context type registry for the xml plugin
-	 */
-	public ContextTypeRegistry getTemplateContextRegistry() {
-		if (fContextTypeRegistry == null) {
-			ContributionContextTypeRegistry registry = new ContributionContextTypeRegistry();
-			registry.addContextType(TemplateContextTypeIdsXML.ALL);
-			registry.addContextType(TemplateContextTypeIdsXML.NEW);
-			registry.addContextType(TemplateContextTypeIdsXML.TAG);
-			registry.addContextType(TemplateContextTypeIdsXML.ATTRIBUTE);
-			registry.addContextType(TemplateContextTypeIdsXML.ATTRIBUTE_VALUE);
-
-			fContextTypeRegistry = registry;
-		}
-
-		return fContextTypeRegistry;
-	}
-	/**
-	   * Get an image from the registry. 
-	   * 
-	   * *This method is used by the referencingfile dialog and should be 
-	   *  removed when the dialog is moved to anothercomponent.
-	   * 
-	   * @param imageName The name of the image.
-	   * @return The image registered for the given name.
-	   */
-	public Image getImage(String imageName){
-	    return getWorkbench().getSharedImages().getImage(imageName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
deleted file mode 100644
index 897cbfa..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/XMLUIPluginResources.properties
+++ /dev/null
@@ -1,320 +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
-#
-###############################################################################
-## The following line is a sample XML document.  Please translate only the following parts:
-## begin color definitions
-## Normal text content.
-Sample_XML_doc=<?xml version=\"1.0\"?>\n<?customProcessingInstruction\n\tXML processor specific\n\tcontent ?>\n<!DOCTYPE colors\n\tPUBLIC \"//IBM/XML/COLORS/\" \"colors.dtd\">\n<colors>\n\t<!-- begin color definitions -->\n\t<color name=\"plaintext\" foreground=\"#000000\"\n\t\tbackground=\"#D4D0C8\" />\n\t<color name=\"bold\" foreground=\"#000000\"\n\t\tbackground=\"#B3ACA0\" />\n\t<![CDATA[<123456789>]]>\n\tNormal text content.\n\t<color name=\"inverse\" foreground=\"#F0F0F0\"\n\t\tbackground=\"#D4D0C8\" />\n\n</colors>\n
-Comment_Delimiters_UI_=Comment Delimiters
-Comment_Content_UI_=Comment Content
-Tag_Delimiters_UI_=Tag Delimiters
-Tag_Names_UI_=Tag Names
-Attribute_Names_UI_=Attribute Names
-Attribute_Values_UI_=Attribute Values
-Declaration_Delimiters_UI_=Declaration Delimiters
-Content_UI_=Content
-## on the following 2 lines, do not translate CDATA
-CDATA_Delimiters_UI_=CDATA Delimiters
-CDATA_Content_UI_=CDATA Content
-Processing_Instruction_Del_UI_=Processing Instruction Delimiters
-Processing_Instruction_Con_UI__UI_=Processing Instruction Content
-## on the following line solely translate:  Name
-DOCTYPE_Name_UI_=DOCTYPE Name
-## on the following line solely translate:  Keyword
-DOCTYPE_SYSTEM_PUBLIC_Keyw_UI_=DOCTYPE SYSTEM/PUBLIC Keyword
-## on the following line solely translate:  Public Reference
-DOCTYPE_Public_Reference_UI_=DOCTYPE Public Reference
-## on the following line solely translate:  System Reference
-DOCTYPE_System_Reference_UI_=DOCTYPE System Reference
-# XML Common UI
-# Constants for strings
-
-DELETE=Remove
-ADD_PROCESSING_INSTRUCTION=Add Processing Instruction
-
-_UI_MENU_ADD_AFTER=Add &After
-_UI_MENU_ADD_ATTRIBUTE=Add A&ttribute
-_UI_MENU_ADD_BEFORE=Add &Before
-_UI_MENU_ADD_CHILD=Add &Child
-_UI_MENU_REMOVE=Re&move
-_UI_MENU_REPLACE_WITH=Re&place With
-_UI_MENU_EDIT_DOCTYPE=Edit DOCTYPE...
-_UI_LABEL_UNDO_REPLACE_DESCRIPTION=Replace
-_UI_LABEL_EDIT_DOCTYPE=Edit DOCTYPE
-_UI_INFO_EXPAND_ALL=Expand All
-_UI_INFO_COLLAPSE_ALL=Collapse All
-
-_UI_MENU_ADD_DTD_INFORMATION=Add DTD Information...
-_UI_MENU_ADD_SCHEMA_INFORMATION=Add Schema Information...
-_UI_MENU_EDIT_PROCESSING_INSTRUCTION=Edit Process&ing Instruction...
-_UI_MENU_EDIT_NAMESPACES=Edit &Namespaces...
-
-_UI_MENU_ADD_DTD_INFORMATION_TITLE=Add DTD Information
-_UI_MENU_EDIT_PROCESSING_INSTRUCTION_TITLE=Edit Processing Instruction
-_UI_MENU_EDIT_SCHEMA_INFORMATION_TITLE=Edit Schema Information
-
-_UI_MENU_NEW_ATTRIBUTE=&New Attribute...
-_UI_MENU_NEW_ATTRIBUTE_TITLE=New Attribute
-_UI_MENU_EDIT_ATTRIBUTE=Edit Attribute...
-_UI_MENU_EDIT_ATTRIBUTE_TITLE=Edit Attribute
-_UI_MENU_NEW_ELEMENT=New &Element...
-_UI_MENU_NEW_ELEMENT_TITLE=New Element
-_UI_MENU_RENAME=R&ename
-_UI_MENU_RENAME_TITLE=Rename
-_UI_LABEL_ELEMENT_NAME=Element name:
-
-_UI_MENU_ADD_COMMENT=Add Comment
-_UI_MENU_ADD_PROCESSING_INSTRUCTION=Add Processing Instruction
-_UI_MENU_ADD_CDATA_SECTION=Add CDATA Section
-_UI_MENU_ADD_PCDATA=Add #PCDATA;
-
-_UI_MENU_COMMENT=C&omment
-_UI_MENU_PROCESSING_INSTRUCTION=P&rocessing Instruction
-_UI_MENU_CDATA_SECTION=CDATA Section
-_UI_MENU_PCDATA=#PC&DATA;
-
-_UI_MENU_ADD=Add
-
-_UI_COMMENT_VALUE=comment
-_UI_PI_TARGET_VALUE=target
-_UI_PI_DATA_VALUE=data
-_UI_LABEL_ROOT_ELEMENT_VALUE=RootElement
-
-_UI_LABEL_TARGET_COLON=Target:
-_UI_LABEL_DATA_COLON=Data:
-_UI_LABEL_ROOT_ELEMENT_NAME_COLON=Root element name:
-_UI_LABEL_PUBLIC_ID_COLON=Public ID:
-_UI_LABEL_SYSTEM_ID_COLON=System ID:
-_UI_LABEL_BROWSE=Browse...
-_UI_LABEL_SELECT_XML_CATALOG_ENTRY=Select XML Catalog Entry
-_UI_LABEL_SPECIFY_SYSTEM_ID=Specify System ID
-_UI_LABEL_SELECT_FILE=Select File
-
-_UI_LABEL_KEY=Key
-_UI_LABEL_URI=URI:
-_UI_LABEL_XML_CATALOG_COLON=XML Catalog
-_UI_LABEL_NAMESPACE_NAME=Namespace Name
-_UI_LABEL_LOCATION_HINT=Location Hint
-_UI_LABEL_PREFIX=Prefix
-_UI_LABEL_NAMESPACE_NAME_COLON=Namespace Name:
-_UI_LABEL_LOCATION_HINT_COLON=Location Hint:
-_UI_LABEL_PREFIX_COLON=Prefix:
-_UI_NO_NAMESPACE_NAME=<no namespace name>
-_UI_NO_PREFIX=<no prefix>
-
-_UI_LABEL_XML_SCHEMA_INFORMATION=XML Schema Information
-
-_UI_LABEL_NAME_COLON=Name:
-_UI_LABEL_VALUE_COLON=Value:
-
-_UI_BUTTON_DELETE=Delete
-_UI_BUTTON_NEW=New...
-_UI_BUTTON_EDIT=Edit...
-
-_UI_LABEL_NEW_NAMESPACE_INFORMATION=New Namespace Information
-
-# SelectFileOrXMLCatalogIdPanel.java
-
-_UI_RADIO_BUTTON_SELECT_FROM_WORKSPACE=Select file from workbench
-_UI_RADIO_BUTTON_SELECT_FROM_CATALOG=Select XML Catalog entry
-
-_UI_WARNING_MORE_THAN_ONE_NS_WITH_NAME=More than one namespace has been specified with the namespace name :
-_UI_WARNING_MORE_THAN_ONE_NS_WITHOUT_NAME=More than one schema has been specified without a namespace name
-_UI_WARNING_MORE_THAN_ONE_NS_WITHOUT_PREFIX=More than one namespace has been specificed without a prefix
-_UI_WARNING_MORE_THAN_ONE_NS_WITH_PREFIX=More than one namespace has been specified with the prefix :
-_UI_WARNING_SCHEMA_CAN_NOT_BE_LOCATED=The specified schema can not be located :
-_UI_WARNING_LOCATION_HINT_NOT_SPECIFIED=A location hint has not been specified for the namespace with name
-_UI_WARNING_NAMESPACE_NAME_NOT_SPECIFIED=A name must be specified for the namespace with prefix :
-_UI_WARNING_PREFIX_NOT_SPECIFIED=A prefix must be specified for the namespace named :
-_UI_WARNING_ROOT_ELEMENT_MUST_BE_SPECIFIED=A root element name must be specified.
-_UI_WARNING_SYSTEM_ID_MUST_BE_SPECIFIED=A system ID must be specified.
-
-_UI_INVALID_NAME=Invalid name
-
-# String used for editing namespaces (org.eclipse.wst.xml.ui.nsedit)
-_UI_ENTER_REQ_PREFIX_AND_NAMESPACE=Enter the required prefix and namespace URI for the namespace declaration.
-_UI_SELECT_REGISTERED_NAMESPACES=Select From Registered Namespaces
-_UI_SPECIFY_NEW_NAMESPACE=Specify New Namespace
-_UI_SELECT_NAMESPACE_TO_ADD=Select the namespace declarations to add.
-_UI_ADD_NAMESPACE_DECLARATIONS=Add Namespace Declarations
-_UI_NAMESPACE_DECLARATIONS=Namespace Declarations
-_UI_TARGET_NAMESPACE=Target Namespace
-
-_ERROR_XML_ATTRIBUTE_ALREADY_EXISTS=The element already has an attribute with this name.
-
-#
-error_message_goes_here=error message goes here
-SurroundWithNewElementQuickAssistProposal_0=Surround with new element
-SurroundWithNewElementQuickAssistProposal_1=Surround with new element
-RenameInFileQuickAssistProposal_0=Link all references for a rename in file (does not change references in other files)
-RenameInFileQuickAssistProposal_1=Rename in file
-InsertRequiredAttrsQuickAssistProposal_0=Insert required attributes
-InsertRequiredAttrsQuickAssistProposal_1=Insert required attributes
-EncodingSettings_0=IANA:
-EncodingSettings_1=Encoding:
-DragNodeCommand_0=Move
-DragNodeCommand_1=Copy
-CommonEditNamespacesDialog_0=Add...
-JFaceNodeAdapter_1=Refresh Property Sheet
-QuickFixProcessorXML_0=Remove empty tag
-QuickFixProcessorXML_1=Change to empty-element tag
-QuickFixProcessorXML_2=Remove this tag
-QuickFixProcessorXML_3=Insert end tag before first child element
-QuickFixProcessorXML_4=Insert end tag at end of element
-QuickFixProcessorXML_5=Remove attributes in end tag
-QuickFixProcessorXML_6=Insert default attribute value
-QuickFixProcessorXML_7=Remove this attribute
-QuickFixProcessorXML_8=Remove spaces before tag name
-QuickFixProcessorXML_9=Remove spaces before processing instruction
-QuickFixProcessorXML_10=Remove namespace in processing instruction
-QuickFixProcessorXML_11=Remove this element
-QuickFixProcessorXML_12=Remove this attribute value
-QuickFixProcessorXML_13=Insert required attribute
-QuickFixProcessorXML_14=Quote attribute value
-QuickFixProcessorXML_15=Insert closing bracket
-XMLPropertySourceAdapter_0=Attributes
-
-WorkbenchDefaultEncodingSettings_0=Use workbench encoding
-refreshoutline_0=Refreshing Outline
-Creating_files_encoding=Creating files encoding preference
-# ReconcileStepForMarkup
-End_tag_has_attributes=End tag has attributes
-Attribute__is_missing_a_value=Attribute \"{0}\" is missing a value
-Attribute__has_no_value=Attribute \"{0}\"  has no value
-Missing_end_tag_=Missing end tag \"{0}\"
-ReconcileStepForMarkup_0=Missing closing quote
-ReconcileStepForMarkup_1=Missing quotes for attribute value
-ReconcileStepForMarkup_2=A tagname cannot start with a space
-ReconcileStepForMarkup_3=Empty tags are not allowed
-ReconcileStepForMarkup_4=Namespaces are not allowed in a Processing Instruction target
-ReconcileStepForMarkup_5=Spaces are not allowed before a Processing Instruction
-ReconcileStepForMarkup_6=Tag missing closing bracket '>'
-# Content Assist
-End_with_=End with {0}>
-SEVERE_internal_error_occu_UI_=SEVERE internal error occurred
-No_known_attribute__UI_=No known attribute
-Content_Assist_not_availab_UI_=Content Assist not available at the current location
-Element__is_unknown=Element <{0}> is unknown.
-Comment__=comment {0}
-Close_with__=Close with {0}
-End_with__=End with \"</{0}>\"
-Close_with___=Close with \"{0}\"
-Close_with____=Close with \"></{0}>\"
-_Has_no_available_child={0} has no available child tags.
-No_known_child_tag=No known child tag names of <{0}> begin with \"{1}\".
-__Has_no_known_child=<{0}> has no known child tags.
-No_known_child_tag_names=No known child tag names of <{0}> begin with \"{1}\"
-The_document_element__=The document element <{0}> is already present.
-No_definition_for_in=No definition was found for element <{0}> in {1}
-No_definition_for=No definition was found for element <{0}>
-No_content_model_for=No content model found for {0}.
-No_content_model_found_UI_=No content model found
-## The following strings are for the XML Cleanup dialog
-Cleanup_UI_=Cleanup
-Compress_empty_element_tags_UI_=&Compress empty element tags
-Insert_required_attributes_UI_=Insert &required attributes
-Insert_missing_tags_UI_=&Insert missing tags
-Quote_attribute_values_UI_=&Quote attribute values
-Format_source_UI_=&Format source
-Convert_EOL_codes_UI_=Convert line &delimiters to
-EOL_Windows_UI=&Windows
-EOL_Unix_UI=U&NIX
-EOL_Mac_UI=&Mac
-## XML Files preference page
-Creating_files=Creating files
-Encoding_desc=The following encoding will apply:
-Encoding=En&coding:
-Creating_or_saving_files=Creating or saving files
-End_of_line_code_desc=The following line delimiter will apply:
-End_of_line_code=&Line delimiter:
-EOL_Windows=Windows
-EOL_Unix=UNIX
-EOL_Mac=Mac
-EOL_NoTranslation=No translation
-Validating_files=Validating files
-Warn_no_grammar_specified=Warn when no grammar is specified
-XMLFilesPreferencePage_ExtensionLabel=Add this suffix (if not specified):
-XMLFilesPreferencePage_ExtensionError=Suffix must be one of the following {0}.
-## XML Source preference page
-Content_assist_UI_=Content assist
-Automatically_make_suggest_UI_=Automatically ma&ke suggestions
-Prompt_when_these_characte_UI_=P&rompt when these characters are inserted:
-Formatting_UI_=Formatting
-Line_width__UI_=Line &width:
-Split_multiple_attributes=Split &multiple attributes each on a new line
-Indent_using_tabs=&Indent using tabs
-Indent_using_spaces=I&ndent using spaces
-Indentation_size=In&dentation size:
-Indentation_size_tip=Indentation size
-Clear_all_blank_lines_UI_=Clear all &blank lines
-Grammar_Constraints=Grammar Constraints
-Use_inferred_grammar_in_absence_of=Use inferred grammar in absence of DTD/Schema
-Suggestion_Strategy=&Suggestion strategy:
-Suggestion_Strategy_Lax=Lax
-Suggestion_Strategy_Strict=Strict
-## tag info
-Element____1=Element :
-Content_Model____2=Content Model :
-Attribute____3=Attribute :
-Data_Type____4=Data Type :
-Enumerated_Values____5=Enumerated Values :
-## copied from sse.ui
-FormatMenu_label=F&ormat
-SourceMenu_label=&Source
-Comment_label=Co&mment
-Comment_tooltip=Comment
-Comment_description=Comment
-Uncomment_label=&Uncomment
-Uncomment_tooltip=Uncomment
-Uncomment_description=Uncomment
-ToggleComment_label=Toggle Comment
-ToggleComment_tooltip=Toggle Comment
-ToggleComment_description=Toggle Comment
-AddBlockComment_label=Add Block Comment
-AddBlockComment_tooltip=Add Block Comment
-AddBlockComment_description=Add Block Comment
-RemoveBlockComment_label=Remove Block Comment
-RemoveBlockComment_tooltip=Remove Block Comment
-RemoveBlockComment_description=Remove Block Comment
-CleanupDocument_label=Cleanup Document...
-CleanupDocument_tooltip=Cleanup Document
-CleanupDocument_description=Cleanup Document
-FindOccurrences_label=Occurrences in File
-ShowTooltipDesc_label=Show &Tooltip Description
-ShowTooltipDesc_tooltip=Displays the hover help for the selected element
-ShowTooltipDesc_description=Displays the hover help for the selected element
-ContentAssistProposals_label=Con&tent Assist
-ContentAssistProposals_tooltip=Content Assist
-ContentAssistProposals_description=Content Assist
-QuickFix_label=&Quick Fix
-QuickFix_tooltip=Quick Fix
-QuickFix_description=Quick Fix
-FormatDocument_label=&Document
-FormatDocument_tooltip=Format Document
-FormatDocument_description=Format Document
-FormatActiveElements_label=Act&ive Elements
-FormatActiveElements_tooltip=Format Active Elements
-FormatActiveElements_description=Format Active Elements
-OpenFileFromSource_label=Op&en Selection
-OpenFileFromSource_tooltip=Open an editor on the selected link
-OpenFileFromSource_description=Open an editor on the selected link
-XMLContentOutlineConfiguration_0=Show Attributes
-StructureSelectEnclosing_label=Enclosing Element
-StructureSelectEnclosing_tooltip=Expand selection to include enclosing element
-StructureSelectEnclosing_description=Expand selection to include enclosing element
-StructureSelectNext_label=Next Element
-StructureSelectNext_tooltip=Expand selection to include next sibling
-StructureSelectNext_description=Expand selection to include next sibling
-StructureSelectPrevious_label=Previous Element
-StructureSelectPrevious_tooltip=Expand selection to include previous sibling
-StructureSelectPrevious_description=Expand selection to include previous sibling
-MESSAGE_XML_VALIDATION_MESSAGE_UI_=XML Validator validating {0}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AbstractCommentActionXMLDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AbstractCommentActionXMLDelegate.java
deleted file mode 100644
index 13eee15..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AbstractCommentActionXMLDelegate.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.xml.ui.internal.Logger;
-
-/**
- * Abstract comment action delegate for XML editors
- */
-abstract public class AbstractCommentActionXMLDelegate implements IEditorActionDelegate, IActionDelegate2, IViewActionDelegate {
-	static final String CLOSE_COMMENT = "-->"; //$NON-NLS-1$
-	static final String OPEN_COMMENT = "<!--"; //$NON-NLS-1$
-
-	IEditorPart fEditor;
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		fEditor = targetEditor;
-	}
-
-	public void dispose() {
-		// nulling out just in case
-		fEditor = null;
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-
-	public void run(IAction action) {
-		if (fEditor instanceof ITextEditor) {
-			ITextEditor textEditor = (ITextEditor) fEditor;
-			IDocument document = textEditor.getDocumentProvider().getDocument(textEditor.getEditorInput());
-			if (document != null) {
-				// get current text selection
-				ITextSelection textSelection = getCurrentSelection();
-				if (textSelection.isEmpty())
-					return;
-
-				processAction(document, textSelection);
-			}
-		}
-	}
-
-	public void init(IViewPart view) {
-		// do nothing
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		// do nothing
-	}
-
-	private ITextSelection getCurrentSelection() {
-		if (fEditor instanceof ITextEditor) {
-			ISelectionProvider provider = ((ITextEditor) fEditor).getSelectionProvider();
-			if (provider != null) {
-				ISelection selection = provider.getSelection();
-				if (selection instanceof ITextSelection)
-					return (ITextSelection) selection;
-			}
-		}
-		return TextSelection.emptySelection();
-	}
-
-	abstract void processAction(IDocument document, ITextSelection textSelection);
-
-	void removeOpenCloseComments(IDocument document, int offset, int length) {
-		try {
-			int adjusted_length = length;
-
-			// remove open comments
-			String string = document.get(offset, length);
-			int index = string.lastIndexOf(OPEN_COMMENT);
-			while (index != -1) {
-				document.replace(offset + index, OPEN_COMMENT.length(), ""); //$NON-NLS-1$
-				index = string.lastIndexOf(OPEN_COMMENT, index - 1);
-				adjusted_length -= OPEN_COMMENT.length();
-			}
-
-			// remove close comments
-			string = document.get(offset, adjusted_length);
-			index = string.lastIndexOf(CLOSE_COMMENT);
-			while (index != -1) {
-				document.replace(offset + index, CLOSE_COMMENT.length(), ""); //$NON-NLS-1$
-				index = string.lastIndexOf(CLOSE_COMMENT, index - 1);
-			}
-		}
-		catch (BadLocationException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AbstractNodeActionManager.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AbstractNodeActionManager.java
deleted file mode 100644
index 10bb371..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AbstractNodeActionManager.java
+++ /dev/null
@@ -1,667 +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.wst.xml.ui.internal.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDescriptionBuilder;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilder;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMContentBuilderImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.editor.CMImageUtil;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.ProcessingInstruction;
-
-public abstract class AbstractNodeActionManager extends BaseNodeActionManager {
-
-
-	/**
-	 * AddNodeAction
-	 */
-	public class AddNodeAction extends NodeAction {
-		protected CMNode cmnode;
-		protected String description;
-		protected int index;
-		protected int nodeType;
-		protected Node parent;
-		protected String undoDescription;
-
-
-		public AddNodeAction(CMNode cmnode, Node parent, int index) {
-			this.cmnode = cmnode;
-			this.parent = parent;
-			this.index = index;
-
-			String text = getLabel(parent, cmnode);
-			setText(text);
-			description = text;
-			undoDescription = XMLUIMessages._UI_MENU_ADD + " " + text; //$NON-NLS-1$ //$NON-NLS-2$
-			ImageDescriptor descriptor = CMImageUtil.getImageDescriptor(cmnode);
-			if (descriptor == null) {
-				descriptor = imageDescriptorCache.getImageDescriptor(cmnode);
-			}
-			setImageDescriptor(descriptor);
-		}
-
-
-		public AddNodeAction(int nodeType, Node parent, int index) {
-			this.nodeType = nodeType;
-			this.index = index;
-			this.parent = parent;
-
-			switch (nodeType) {
-				case Node.COMMENT_NODE : {
-					description = XMLUIMessages._UI_MENU_COMMENT; //$NON-NLS-1$
-					undoDescription = XMLUIMessages._UI_MENU_ADD_COMMENT; //$NON-NLS-1$
-					break;
-				}
-				case Node.PROCESSING_INSTRUCTION_NODE : {
-					description = XMLUIMessages._UI_MENU_PROCESSING_INSTRUCTION; //$NON-NLS-1$
-					undoDescription = XMLUIMessages._UI_MENU_ADD_PROCESSING_INSTRUCTION; //$NON-NLS-1$
-					break;
-				}
-				case Node.CDATA_SECTION_NODE : {
-					description = XMLUIMessages._UI_MENU_CDATA_SECTION; //$NON-NLS-1$
-					undoDescription = XMLUIMessages._UI_MENU_ADD_CDATA_SECTION; //$NON-NLS-1$
-					break;
-				}
-				case Node.TEXT_NODE : {
-					description = XMLUIMessages._UI_MENU_PCDATA; //$NON-NLS-1$
-					undoDescription = XMLUIMessages._UI_MENU_ADD_PCDATA; //$NON-NLS-1$
-					break;
-				}
-			}
-			setText(description);
-			setImageDescriptor(imageDescriptorCache.getImageDescriptor(new Integer(nodeType)));
-		}
-
-
-		protected void addNodeForCMNode() {
-			if (parent != null) {
-				insert(parent, cmnode, index);
-			}
-		}
-
-
-		protected void addNodeForNodeType() {
-			Document document = parent.getNodeType() == Node.DOCUMENT_NODE ? (Document) parent : parent.getOwnerDocument();
-			Node newChildNode = null;
-			boolean format = true;
-			switch (nodeType) {
-				case Node.COMMENT_NODE : {
-					newChildNode = document.createComment(XMLUIMessages._UI_COMMENT_VALUE); //$NON-NLS-1$
-					break;
-				}
-				case Node.PROCESSING_INSTRUCTION_NODE : {
-					newChildNode = document.createProcessingInstruction(XMLUIMessages._UI_PI_TARGET_VALUE, XMLUIMessages._UI_PI_DATA_VALUE); //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				}
-				case Node.CDATA_SECTION_NODE : {
-					newChildNode = document.createCDATASection(""); //$NON-NLS-1$
-					break;
-				}
-				case Node.TEXT_NODE : {
-					format = false;
-					newChildNode = document.createTextNode(parent.getNodeName());
-					break;
-				}
-			}
-
-			if (newChildNode != null) {
-				List list = new Vector(1);
-				list.add(newChildNode);
-				insertNodesAtIndex(parent, list, index, format);
-			}
-		}
-
-
-		public String getUndoDescription() {
-			return undoDescription;
-		}
-
-
-		public void run() {
-			beginNodeAction(this);
-			if (cmnode != null) {
-				addNodeForCMNode();
-			} else {
-				addNodeForNodeType();
-			}
-			endNodeAction(this);
-		}
-	}
-
-
-	/**
-	 * DeleteAction
-	 */
-	public class DeleteAction extends NodeAction {
-		protected List list;
-
-		public DeleteAction(List list) {
-			setText(XMLUIMessages._UI_MENU_REMOVE); //$NON-NLS-1$
-			this.list = list;
-		}
-
-		public DeleteAction(Node node) {
-			setText(XMLUIMessages._UI_MENU_REMOVE); //$NON-NLS-1$
-			list = new Vector();
-			list.add(node);
-		}
-
-		public String getUndoDescription() {
-			return XMLUIMessages.DELETE; //$NON-NLS-1$
-		}
-
-		public void run() {
-			beginNodeAction(this);
-
-			for (Iterator i = list.iterator(); i.hasNext();) {
-				Node node = (Node) i.next();
-				if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
-					Attr attr = (Attr) node;
-					attr.getOwnerElement().removeAttributeNode(attr);
-				} else {
-					Node parent = node.getParentNode();
-					if (parent != null) {
-						Node previousSibling = node.getPreviousSibling();
-						if (previousSibling != null && isWhitespaceTextNode(previousSibling)) {
-							parent.removeChild(previousSibling);
-						}
-						parent.removeChild(node);
-					}
-				}
-			}
-
-			endNodeAction(this);
-		}
-	}
-
-
-	class ImageDescriptorCache {
-		protected ImageDescriptor attributeImage = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
-		protected ImageDescriptor attributeReqImage = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ATT_REQ_OBJ);
-		protected ImageDescriptor cdataSectionImage = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_CDATASECTION);
-		protected ImageDescriptor commentImage = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_COMMENT);
-		protected ImageDescriptor elementImage = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ELEMENT);
-		protected ImageDescriptor piImage = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_PROCESSINGINSTRUCTION);
-		protected ImageDescriptor textImage = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_TXTEXT);
-
-		public ImageDescriptor getImageDescriptor(Object object) {
-			ImageDescriptor result = null;
-			if (object instanceof CMNode) {
-				CMNode cmnode = (CMNode) object;
-				switch (cmnode.getNodeType()) {
-					case CMNode.ATTRIBUTE_DECLARATION : {
-						result = CMImageUtil.getImageDescriptor(cmnode);
-						if (result == null)
-							if (((CMAttributeDeclaration) cmnode).getUsage() == CMAttributeDeclaration.REQUIRED)
-								result = attributeReqImage;
-							else
-								result = attributeImage;
-						break;
-					}
-					case CMNode.DATA_TYPE : {
-						result = textImage;
-						break;
-					}
-					case CMNode.ELEMENT_DECLARATION : {
-						result = CMImageUtil.getImageDescriptor(cmnode);
-						if (result == null)
-							result = elementImage;
-						break;
-					}
-					case CMNode.GROUP : {
-						result = elementImage;
-						break;
-					}
-				}
-			} else if (object instanceof Integer) {
-				Integer integer = (Integer) object;
-				switch (integer.intValue()) {
-					case Node.COMMENT_NODE : {
-						result = commentImage;
-						break;
-					}
-					case Node.PROCESSING_INSTRUCTION_NODE : {
-						result = piImage;
-						break;
-					}
-					case Node.CDATA_SECTION_NODE : {
-						result = cdataSectionImage;
-						break;
-					}
-					case Node.TEXT_NODE : {
-						result = textImage;
-						break;
-					}
-				}
-			}
-			return result;
-		}
-	}
-
-	// TODO... remove this class. I'm pretty sure it is no longer used by
-	// anyone.
-	/**
-	 * @depracated
-	 */
-	public class InsertAction extends NodeAction {
-		protected String description;
-		protected int index;
-		protected int nodeType;
-		protected Node parent;
-
-		public InsertAction(int nodeType, Node parent, int index) {
-			this.nodeType = nodeType;
-			this.index = index;
-			this.parent = parent;
-			switch (nodeType) {
-				case Node.COMMENT_NODE : {
-					description = XMLUIMessages._UI_MENU_COMMENT; //$NON-NLS-1$
-					break;
-				}
-				case Node.PROCESSING_INSTRUCTION_NODE : {
-					description = XMLUIMessages._UI_MENU_PROCESSING_INSTRUCTION; //$NON-NLS-1$
-					break;
-				}
-				case Node.CDATA_SECTION_NODE : {
-					description = XMLUIMessages._UI_MENU_CDATA_SECTION; //$NON-NLS-1$
-					break;
-				}
-				case Node.TEXT_NODE : {
-					description = XMLUIMessages._UI_MENU_PCDATA; //$NON-NLS-1$
-					break;
-				}
-			}
-			setText(description);
-			setImageDescriptor(imageDescriptorCache.getImageDescriptor(new Integer(nodeType)));
-		}
-
-		public InsertAction(int nodeType, Node parent, int index, String title) {
-			this.nodeType = nodeType;
-			this.index = index;
-			this.parent = parent;
-			description = title;
-			setText(description);
-			setImageDescriptor(imageDescriptorCache.getImageDescriptor(new Integer(nodeType)));
-		}
-
-		public String getUndoDescription() {
-			return XMLUIMessages._UI_MENU_ADD + " " + description; //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		public void run() {
-			beginNodeAction(this);
-
-			Document document = parent.getNodeType() == Node.DOCUMENT_NODE ? (Document) parent : parent.getOwnerDocument();
-			Node newChildNode = null;
-			boolean format = true;
-			switch (nodeType) {
-				case Node.COMMENT_NODE : {
-					newChildNode = document.createComment(XMLUIMessages._UI_COMMENT_VALUE); //$NON-NLS-1$
-					break;
-				}
-				case Node.PROCESSING_INSTRUCTION_NODE : {
-					newChildNode = document.createProcessingInstruction(XMLUIMessages._UI_PI_TARGET_VALUE, XMLUIMessages._UI_PI_DATA_VALUE); //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				}
-				case Node.CDATA_SECTION_NODE : {
-					newChildNode = document.createCDATASection(""); //$NON-NLS-1$
-					break;
-				}
-				case Node.TEXT_NODE : {
-					format = false;
-					newChildNode = document.createTextNode(parent.getNodeName());
-					break;
-				}
-			}
-
-			if (newChildNode != null) {
-				List list = new Vector(1);
-				list.add(newChildNode);
-				insertNodesAtIndex(parent, list, index, format);
-			}
-
-			endNodeAction(this);
-		}
-	}
-
-
-	/**
-	 * ReplaceNodeAction
-	 */
-	public class ReplaceNodeAction extends NodeAction {
-		protected CMNode cmnode;
-		protected String description;
-		protected int endIndex;
-		protected Node parent;
-		protected int startIndex;
-
-
-		public ReplaceNodeAction(Node parent, CMNode cmnode, int startIndex, int endIndex) {
-			this.parent = parent;
-			this.cmnode = cmnode;
-			this.startIndex = startIndex;
-			this.endIndex = endIndex;
-
-			setText(getLabel(parent, cmnode));
-			setImageDescriptor(imageDescriptorCache.getImageDescriptor(cmnode));
-		}
-
-		public String getUndoDescription() {
-			String result = XMLUIMessages._UI_LABEL_UNDO_REPLACE_DESCRIPTION; //$NON-NLS-1$
-			result += " " + getLabel(parent, cmnode); //$NON-NLS-1$
-			return result;
-		}
-
-		public void run() {
-			beginNodeAction(this);
-
-			if (parent != null && cmnode != null) {
-				remove(parent, startIndex, endIndex);
-				insert(parent, cmnode, startIndex);
-			}
-			endNodeAction(this);
-		}
-	}
-
-	protected ImageDescriptorCache imageDescriptorCache = new ImageDescriptorCache();
-	protected Viewer fViewer;
-
-	public AbstractNodeActionManager(IStructuredModel model, ModelQuery modelQuery, Viewer viewer) {
-		super(model, modelQuery);
-		this.fViewer = viewer;
-	}
-
-
-	public void beginNodeAction(NodeAction action) {
-		fModel.beginRecording(action, action.getUndoDescription());
-	}
-
-
-	protected Action createAddAttributeAction(Element parent, CMAttributeDeclaration ad) {
-		Action action = null;
-		if (ad == null) {
-			action = new EditAttributeAction(this, parent, null, XMLUIMessages._UI_MENU_NEW_ATTRIBUTE, XMLUIMessages._UI_MENU_NEW_ATTRIBUTE_TITLE); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			action = new AddNodeAction(ad, parent, -1);
-		}
-		return action;
-	}
-
-
-	protected Action createAddCDataSectionAction(Node parent, int index) {
-		return new AddNodeAction(Node.CDATA_SECTION_NODE, parent, index);
-	}
-
-
-	protected Action createAddCommentAction(Node parent, int index) {
-		return new AddNodeAction(Node.COMMENT_NODE, parent, index);
-	}
-
-
-	protected Action createAddDoctypeAction(Document document, int index) {
-		return new EditDoctypeAction(fModel, document, fModel.getBaseLocation(), XMLUIMessages._UI_MENU_ADD_DTD_INFORMATION); //$NON-NLS-1$
-	}
-
-
-	protected Action createAddElementAction(Node parent, CMElementDeclaration ed, int index) {
-		Action action = null;
-		if (ed == null) {
-			action = new EditElementAction(this, parent, index, XMLUIMessages._UI_MENU_NEW_ELEMENT, XMLUIMessages._UI_MENU_NEW_ELEMENT_TITLE); //$NON-NLS-1$ //$NON-NLS-2$
-		} else {
-			action = new AddNodeAction(ed, parent, index);
-		}
-		return action;
-	}
-
-
-	protected Action createAddPCDataAction(Node parent, CMDataType dataType, int index) {
-		Action action = null;
-		if (dataType == null) {
-			action = new AddNodeAction(Node.TEXT_NODE, parent, index);
-		} else {
-			action = new AddNodeAction(dataType, parent, index);
-		}
-		return action;
-	}
-
-
-	protected Action createAddProcessingInstructionAction(Node parent, int index) {
-		Node refChild = getRefChildNodeAtIndex(parent, index);
-		Action action = new EditProcessingInstructionAction(this, parent, refChild, XMLUIMessages._UI_MENU_ADD_PROCESSING_INSTRUCTION, XMLUIMessages.ADD_PROCESSING_INSTRUCTION); //$NON-NLS-1$ //$NON-NLS-2$
-		action.setImageDescriptor(imageDescriptorCache.getImageDescriptor(new Integer(Node.PROCESSING_INSTRUCTION_NODE)));
-		return action;
-	}
-
-
-	protected Action createAddSchemaInfoAction(Element element) {
-		return new EditSchemaInfoAction(this, element.getOwnerDocument(), fModel.getBaseLocation(), XMLUIMessages._UI_MENU_ADD_SCHEMA_INFORMATION); //$NON-NLS-1$
-	}
-
-
-	protected Action createDeleteAction(List selection) {
-		DeleteAction deleteAction = new DeleteAction(selection);
-		deleteAction.setEnabled(selection.size() > 0);
-		return deleteAction;
-	}
-
-
-	public DOMContentBuilder createDOMContentBuilder(Document document) {
-		DOMContentBuilderImpl builder = new DOMContentBuilderImpl(document);
-		return builder;
-	}
-
-
-	protected Action createEditAttributeAction(Attr attr, CMAttributeDeclaration ad) {
-		return new EditAttributeAction(this, attr.getOwnerElement(), attr, XMLUIMessages._UI_MENU_EDIT_ATTRIBUTE, XMLUIMessages._UI_MENU_EDIT_ATTRIBUTE_TITLE); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-
-	protected Action createEditDoctypeAction(DocumentType doctype) {
-		return new EditDoctypeAction(fModel, doctype, fModel.getBaseLocation(), XMLUIMessages._UI_MENU_EDIT_DOCTYPE); //$NON-NLS-1$
-	}
-
-
-	protected Action createEditProcessingInstructionAction(ProcessingInstruction pi) {
-		return new EditProcessingInstructionAction(this, pi, XMLUIMessages._UI_MENU_EDIT_PROCESSING_INSTRUCTION, XMLUIMessages._UI_MENU_EDIT_PROCESSING_INSTRUCTION_TITLE); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-
-	protected Action createEditSchemaInfoAction(Element element) {
-		return new EditSchemaInfoAction(this, element.getOwnerDocument(), fModel.getBaseLocation(), XMLUIMessages._UI_MENU_EDIT_NAMESPACES); //$NON-NLS-1$
-	}
-
-
-	protected Action createRenameAction(Node node) {
-		Action result = null;
-		if (node instanceof Element) {
-			result = new EditElementAction(this, (Element) node, XMLUIMessages._UI_MENU_RENAME, XMLUIMessages._UI_MENU_RENAME_TITLE); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		return result;
-	}
-
-
-	protected Action createReplaceAction(Node parent, CMNode cmnode, int startIndex, int endIndex) {
-		return new ReplaceNodeAction(parent, cmnode, startIndex, endIndex);
-	}
-
-	public void endNodeAction(NodeAction action) {
-		fModel.endRecording(action);
-	}
-
-
-
-	public void fillContextMenu(IMenuManager menuManager, ISelection selection) {
-		try {
-			List selectionList = new ArrayList();
-			if (selection instanceof IStructuredSelection) {
-				IStructuredSelection es = (IStructuredSelection) selection;
-				for (Iterator i = es.iterator(); i.hasNext();) {
-					selectionList.add(i.next());
-				}
-			}
-
-			contributeActions(menuManager, selectionList);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 *  
-	 */
-	public String getLabel(Node parent, CMNode cmnode) {
-		String result = "?" + cmnode + "?"; //$NON-NLS-1$ //$NON-NLS-2$
-		if (cmnode != null) {
-			result = (String) cmnode.getProperty("description"); //$NON-NLS-1$
-			if (result == null) {
-				if (cmnode.getNodeType() == CMNode.GROUP) {
-					CMDescriptionBuilder descriptionBuilder = new CMDescriptionBuilder();
-					result = descriptionBuilder.buildDescription(cmnode);
-				} else {
-					result = DOMNamespaceHelper.computeName(cmnode, parent, null);
-				}
-			}
-		}
-		return result;
-	}
-
-
-	public IStructuredModel getModel() {
-		return fModel;
-	}
-
-
-	public Shell getWorkbenchWindowShell() {
-		return XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-	}
-
-
-	public void insert(Node parent, CMNode cmnode, int index) {
-		Document document = parent.getNodeType() == Node.DOCUMENT_NODE ? (Document) parent : parent.getOwnerDocument();
-		DOMContentBuilder builder = createDOMContentBuilder(document);
-		builder.setBuildPolicy(DOMContentBuilder.BUILD_ONLY_REQUIRED_CONTENT);
-		builder.build(parent, cmnode);
-		insertNodesAtIndex(parent, builder.getResult(), index);
-	}
-
-
-	public void insertNodesAtIndex(Node parent, List list, int index) {
-		insertNodesAtIndex(parent, list, index, true);
-	}
-
-
-	public void insertNodesAtIndex(Node parent, List list, int index, boolean format) {
-		NodeList nodeList = parent.getChildNodes();
-		if (index == -1) {
-			index = nodeList.getLength();
-		}
-		Node refChild = (index < nodeList.getLength()) ? nodeList.item(index) : null;
-
-		// here we consider the case where the previous node is a 'white
-		// space' Text node
-		// we should really do the insert before this node
-		//
-		int prevIndex = index - 1;
-		Node prevChild = (prevIndex < nodeList.getLength()) ? nodeList.item(prevIndex) : null;
-		if (isWhitespaceTextNode(prevChild)) {
-			refChild = prevChild;
-		}
-
-		for (Iterator i = list.iterator(); i.hasNext();) {
-			Node newNode = (Node) i.next();
-
-			if (newNode.getNodeType() == Node.ATTRIBUTE_NODE) {
-				Element parentElement = (Element) parent;
-				parentElement.setAttributeNode((Attr) newNode);
-			} else {
-				parent.insertBefore(newNode, refChild);
-			}
-		}
-
-		boolean formatDeep = false;
-		for (Iterator i = list.iterator(); i.hasNext();) {
-			Node newNode = (Node) i.next();
-			if (newNode.getNodeType() == Node.ELEMENT_NODE) {
-				formatDeep = true;
-			}
-
-			if (format) {
-				reformat(newNode, formatDeep);
-			}
-		}
-
-		setViewerSelection(list);
-	}
-
-
-	/**
-	 * This method is abstract since currently, the sed editor is required to
-	 * perform formating and we don't want to create a dependency on the sed
-	 * editor.
-	 */
-	public abstract void reformat(Node parent, boolean deep);
-
-
-	public void remove(Node parent, int startIndex, int endIndex) {
-		NodeList nodeList = parent.getChildNodes();
-		for (int i = endIndex; i >= startIndex; i--) {
-			Node node = nodeList.item(i);
-			if (node != null) {
-				parent.removeChild(node);
-			}
-		}
-	}
-
-
-	public void setViewerSelection(List list) {
-		if (fViewer != null) {
-			fViewer.setSelection(new StructuredSelection(list), true);
-		}
-	}
-
-
-	public void setViewerSelection(Node node) {
-		if (fViewer != null) {
-			fViewer.setSelection(new StructuredSelection(node), true);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ActionContributorXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ActionContributorXML.java
deleted file mode 100644
index 6aaa8b1..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ActionContributorXML.java
+++ /dev/null
@@ -1,204 +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.wst.xml.ui.internal.actions;
-
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds;
-import org.eclipse.ui.texteditor.RetargetTextEditorAction;
-import org.eclipse.wst.sse.ui.internal.actions.ActionContributor;
-import org.eclipse.wst.sse.ui.internal.actions.ActionDefinitionIds;
-import org.eclipse.wst.sse.ui.internal.actions.StructuredTextEditorActionConstants;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/**
- * XMLEditorActionContributor
- * 
- * This class should not be used inside multi page editor's
- * ActionBarContributor, since cascaded init() call from the
- * ActionBarContributor will causes exception and it leads to lose whole
- * toolbars.
- * 
- * Instead, use SourcePageActionContributor for source page contributor of
- * multi page editor.
- * 
- * Note that this class is still valid for single page editor.
- */
-public class ActionContributorXML extends ActionContributor {
-	private static final String[] EDITOR_IDS = {"org.eclipse.core.runtime.xml.source", "org.eclipse.core.runtime.xml.source2", "org.eclipse.wst.sse.ui.StructuredTextEditor"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	protected RetargetTextEditorAction fCleanupDocument = null;
-	protected RetargetTextEditorAction fComment = null;
-	// tooltip
-	// action
-	protected RetargetTextEditorAction fContentAssist = null;
-	// action
-	protected RetargetTextEditorAction fFindOccurrences = null;
-	protected RetargetTextEditorAction fFormatActiveElements = null;
-	protected RetargetTextEditorAction fFormatDocument = null;
-	protected MenuManager fFormatMenu = null;
-	protected RetargetTextEditorAction fOpenFileAction = null; // open file
-	protected RetargetTextEditorAction fQuickFix = null;
-
-	protected RetargetTextEditorAction fShowTooltipAction = null; // show
-	protected RetargetTextEditorAction fUncomment = null;
-
-	public ActionContributorXML() {
-		super();
-
-		ResourceBundle resourceBundle = XMLUIMessages.getResourceBundle();
-
-		// edit commands
-		fShowTooltipAction = new RetargetTextEditorAction(resourceBundle, "");	//$NON-NLS-1$
-		fShowTooltipAction.setActionDefinitionId(ActionDefinitionIds.INFORMATION);
-
-		fContentAssist = new RetargetTextEditorAction(resourceBundle, "");	//$NON-NLS-1$
-		fContentAssist.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
-
-		fQuickFix = new RetargetTextEditorAction(resourceBundle, "");	//$NON-NLS-1$
-		fQuickFix.setActionDefinitionId(ActionDefinitionIds.QUICK_FIX);
-
-		// source commands
-		fCleanupDocument = new RetargetTextEditorAction(resourceBundle, "");	//$NON-NLS-1$
-		fCleanupDocument.setActionDefinitionId(ActionDefinitionIds.CLEANUP_DOCUMENT);
-
-		fFormatDocument = new RetargetTextEditorAction(resourceBundle, "");	//$NON-NLS-1$
-		fFormatDocument.setActionDefinitionId(ActionDefinitionIds.FORMAT_DOCUMENT);
-
-		fFormatActiveElements = new RetargetTextEditorAction(resourceBundle, "");	//$NON-NLS-1$
-		fFormatActiveElements.setActionDefinitionId(ActionDefinitionIds.FORMAT_ACTIVE_ELEMENTS);
-
-		fFormatMenu = new MenuManager(XMLUIMessages.FormatMenu_label);
-		fFormatMenu.add(fFormatDocument);
-		fFormatMenu.add(fFormatActiveElements);
-
-		// navigate commands
-		fOpenFileAction = new RetargetTextEditorAction(resourceBundle, "");	//$NON-NLS-1$
-		fOpenFileAction.setActionDefinitionId(ActionDefinitionIds.OPEN_FILE);
-
-		fFindOccurrences = new RetargetTextEditorAction(resourceBundle, "");	//$NON-NLS-1$
-		fFindOccurrences.setActionDefinitionId(ActionDefinitionIds.FIND_OCCURRENCES);
-	}
-
-	protected void addToMenu(IMenuManager menu) {
-		// edit commands
-		IMenuManager editMenu = menu.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT);
-		if (editMenu != null) {
-			editMenu.add(fCommandsSeparator);
-			editMenu.add(fToggleInsertModeAction);
-			editMenu.add(fCommandsSeparator);
-			editMenu.add(fExpandSelectionToMenu);
-			editMenu.add(fCommandsSeparator);
-			editMenu.add(fShowTooltipAction);
-			editMenu.add(fContentAssist);
-			editMenu.add(fQuickFix);
-			editMenu.add(fMenuAdditionsGroupMarker);
-		}
-
-		// source commands
-		String sourceMenuLabel = XMLUIMessages.SourceMenu_label;
-		String sourceMenuId = "sourceMenuId"; //$NON-NLS-1$
-		IMenuManager sourceMenu = new MenuManager(sourceMenuLabel, sourceMenuId);
-		menu.insertAfter(IWorkbenchActionConstants.M_EDIT, sourceMenu);
-		if (sourceMenu != null) {
-			sourceMenu.add(fCommandsSeparator);
-			sourceMenu.add(fToggleComment);
-			sourceMenu.add(fAddBlockComment);
-			sourceMenu.add(fRemoveBlockComment);
-			sourceMenu.add(fShiftRight);
-			sourceMenu.add(fShiftLeft);
-			sourceMenu.add(fCleanupDocument);
-			sourceMenu.add(fFormatMenu);
-			sourceMenu.add(fCommandsSeparator);
-			sourceMenu.add(fFindOccurrences);
-		}
-
-		// navigate commands
-		IMenuManager navigateMenu = menu.findMenuUsingPath(IWorkbenchActionConstants.M_NAVIGATE);
-		if (navigateMenu != null) {
-			navigateMenu.appendToGroup(IWorkbenchActionConstants.OPEN_EXT, fCommandsSeparator);
-			navigateMenu.appendToGroup(IWorkbenchActionConstants.OPEN_EXT, fOpenFileAction);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.edit.util.ActionContributor#getExtensionIDs()
-	 */
-	protected String[] getExtensionIDs() {
-		return EDITOR_IDS;
-	}
-
-	/**
-	 * @see org.eclipse.ui.IEditorActionBarContributor#setActiveEditor(IEditorPart)
-	 */
-	public void setActiveEditor(IEditorPart activeEditor) {
-		if (getActiveEditorPart() == activeEditor)
-			return;
-		super.setActiveEditor(activeEditor);
-
-		IActionBars actionBars = getActionBars();
-		if (actionBars != null) {
-			IStatusLineManager statusLineManager = actionBars.getStatusLineManager();
-			if (statusLineManager != null) {
-				statusLineManager.setMessage(null);
-				statusLineManager.setErrorMessage(null);
-			}
-		}
-
-		ITextEditor textEditor = getTextEditor(activeEditor);
-
-		fShowTooltipAction.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_INFORMATION));
-		fContentAssist.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_CONTENTASSIST_PROPOSALS));
-		fQuickFix.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_QUICK_FIX));
-
-		fCleanupDocument.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_CLEANUP_DOCUMENT));
-		fFormatDocument.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_DOCUMENT));
-		fFormatActiveElements.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_FORMAT_ACTIVE_ELEMENTS));
-		fCleanupDocument.setEnabled(textEditor != null && textEditor.isEditable());
-		fFormatDocument.setEnabled(textEditor != null && textEditor.isEditable());
-		fFormatActiveElements.setEnabled(textEditor != null && textEditor.isEditable());
-
-		fOpenFileAction.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE));
-
-		fFindOccurrences.setAction(getAction(textEditor, StructuredTextEditorActionConstants.ACTION_NAME_FIND_OCCURRENCES));
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.ISourceViewerActionBarContributor#setViewerSpecificContributionsEnabled(boolean)
-	 */
-	public void setViewerSpecificContributionsEnabled(boolean enabled) {
-		super.setViewerSpecificContributionsEnabled(enabled);
-
-		fShowTooltipAction.setEnabled(enabled);
-		fContentAssist.setEnabled(enabled);
-		fQuickFix.setEnabled(enabled);
-		// cleanup and format document actions do not rely on source viewer
-		// being enabled
-		//		fCleanupDocument.setEnabled(enabled);
-		//		fFormatDocument.setEnabled(enabled);
-
-		fFormatActiveElements.setEnabled(enabled);
-		fOpenFileAction.setEnabled(enabled);
-		fFindOccurrences.setEnabled(enabled);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AddBlockCommentActionXMLDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AddBlockCommentActionXMLDelegate.java
deleted file mode 100644
index 5521493..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/AddBlockCommentActionXMLDelegate.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.xml.core.internal.document.CommentImpl;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/**
- * Add block comment action delegate for XML editor
- */
-public class AddBlockCommentActionXMLDelegate extends AbstractCommentActionXMLDelegate {
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(XMLUIMessages.AddBlockComment_label);
-			action.setToolTipText(XMLUIMessages.AddBlockComment_tooltip);
-			action.setDescription(XMLUIMessages.AddBlockComment_description);
-		}
-	}
-
-	void processAction(IDocument document, ITextSelection textSelection) {
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForEdit(document);
-		if (model != null) {
-			try {
-				IndexedRegion selectionStartIndexedRegion = model.getIndexedRegion(textSelection.getOffset());
-				IndexedRegion selectionEndIndexedRegion = model.getIndexedRegion(textSelection.getOffset() + textSelection.getLength());
-
-				if (selectionStartIndexedRegion == null)
-					return;
-				if (selectionEndIndexedRegion == null && textSelection.getLength() > 0) {
-					selectionEndIndexedRegion = model.getIndexedRegion(textSelection.getOffset() + textSelection.getLength() - 1);
-				}
-				if (selectionEndIndexedRegion == null)
-					return;
-
-				int openCommentOffset = selectionStartIndexedRegion.getStartOffset();
-				int closeCommentOffset = selectionEndIndexedRegion.getEndOffset() + OPEN_COMMENT.length();
-
-
-				if (textSelection.getLength() == 0 && selectionStartIndexedRegion instanceof CommentImpl)
-					return;
-
-				model.beginRecording(this, XMLUIMessages.AddBlockComment_tooltip);
-				model.aboutToChangeModel();
-
-				try {
-					document.replace(openCommentOffset, 0, OPEN_COMMENT);
-					document.replace(closeCommentOffset, 0, CLOSE_COMMENT);
-					removeOpenCloseComments(document, openCommentOffset + OPEN_COMMENT.length(), closeCommentOffset - openCommentOffset - CLOSE_COMMENT.length());
-				}
-				catch (BadLocationException e) {
-					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-				}
-				finally {
-					model.changedModel();
-					model.endRecording(this);
-				}
-			}
-			finally {
-				model.releaseFromEdit();
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/BaseNodeActionManager.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/BaseNodeActionManager.java
deleted file mode 100644
index 9eef9a0..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/BaseNodeActionManager.java
+++ /dev/null
@@ -1,514 +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.wst.xml.ui.internal.actions;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAction;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.ProcessingInstruction;
-
-public abstract class BaseNodeActionManager {
-
-
-	/**
-	 * MyMenuManager
-	 */
-	public static class MyMenuManager extends MenuManager {
-		protected String title;
-
-		public MyMenuManager(String s) {
-			super(s);
-			title = s;
-		}
-
-		public boolean isEnabled() {
-			return !isEmpty();
-		}
-
-		public String toString() {
-			return title;
-		}
-	}
-
-	public static DocumentType getDoctype(Node node) {
-		Document document = (node.getNodeType() == Node.DOCUMENT_NODE) ? (Document) node : node.getOwnerDocument();
-		return document.getDoctype();
-	}
-
-	protected MenuBuilder menuBuilder = new MenuBuilder();
-	protected IStructuredModel fModel;
-	protected ModelQuery modelQuery;
-
-	protected BaseNodeActionManager(IStructuredModel model, ModelQuery modelQuery) {
-		this.fModel = model;
-		this.modelQuery = modelQuery;
-	}
-
-
-	protected void addActionHelper(IMenuManager menu, List modelQueryActionList) {
-		List actionList = new Vector();
-		for (Iterator i = modelQueryActionList.iterator(); i.hasNext();) {
-			ModelQueryAction action = (ModelQueryAction) i.next();
-			if (action.getCMNode() != null) {
-				int cmNodeType = action.getCMNode().getNodeType();
-				if (action.getKind() == ModelQueryAction.INSERT) {
-					switch (cmNodeType) {
-						case CMNode.ATTRIBUTE_DECLARATION : {
-							actionList.add(createAddAttributeAction((Element) action.getParent(), (CMAttributeDeclaration) action.getCMNode()));
-							break;
-						}
-						case CMNode.ELEMENT_DECLARATION : {
-							actionList.add(createAddElementAction(action.getParent(), (CMElementDeclaration) action.getCMNode(), action.getStartIndex()));
-							break;
-						}
-					}
-				} else if (action.getKind() == ModelQueryAction.REPLACE) {
-					if (action.getParent() != null && action.getCMNode() != null) {
-						actionList.add(createReplaceAction(action.getParent(), action.getCMNode(), action.getStartIndex(), action.getEndIndex()));
-					}
-				}
-			}
-		}
-		menuBuilder.populateMenu(menu, actionList, false);
-	}
-
-	protected void contributeAction(IMenuManager menu, Action action) {
-		if (action != null) {
-			menu.add(action);
-		}
-	}
-
-
-	public void contributeActions(IMenuManager menu, List selection) {
-		int editMode = modelQuery.getEditMode();
-		int ic = ModelQuery.INCLUDE_CHILD_NODES;
-		int vc = (editMode == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) ? ModelQuery.VALIDITY_STRICT : ModelQuery.VALIDITY_NONE;
-
-		List implicitlySelectedNodeList = null;
-
-		if (selection.size() > 0) {
-			implicitlySelectedNodeList = getSelectedNodes(selection, true);
-
-			// contribute delete actions
-			contributeDeleteActions(menu, implicitlySelectedNodeList, ic, vc);
-		}
-
-		if (selection.size() == 1) {
-			Node node = (Node) selection.get(0);
-
-			// contribute edit actions
-			contributeEditActions(menu, node);
-
-			// contribute add child actions
-			contributeAddChildActions(menu, node, ic, vc);
-
-			// contribute add before actions
-			contributeAddSiblingActions(menu, node, ic, vc);
-		}
-
-		if (selection.size() > 0) {
-			// contribute replace actions
-			contributeReplaceActions(menu, implicitlySelectedNodeList, ic, vc);
-		}
-
-		if (selection.size() == 0) {
-			Document document = ((IDOMModel) fModel).getDocument();
-			contributeAddDocumentChildActions(menu, document, ic, vc);
-			contributeEditGrammarInformationActions(menu, document);
-		}
-	}
-
-
-	protected void contributeAddChildActions(IMenuManager menu, Node node, int ic, int vc) {
-		int nodeType = node.getNodeType();
-
-		if (nodeType == Node.ELEMENT_NODE) {
-			// 'Add Child...' and 'Add Attribute...' actions
-			//
-			Element element = (Element) node;
-
-			IMenuManager addAttributeMenu = new MyMenuManager(XMLUIMessages._UI_MENU_ADD_ATTRIBUTE); //$NON-NLS-1$
-			IMenuManager addChildMenu = new MyMenuManager(XMLUIMessages._UI_MENU_ADD_CHILD); //$NON-NLS-1$
-			menu.add(addAttributeMenu);
-			menu.add(addChildMenu);
-
-			CMElementDeclaration ed = modelQuery.getCMElementDeclaration(element);
-			if (ed != null) {
-				// add insert attribute actions
-				//
-				List modelQueryActionList = new ArrayList();
-				modelQuery.getInsertActions(element, ed, -1, ModelQuery.INCLUDE_ATTRIBUTES, vc, modelQueryActionList);
-				addActionHelper(addAttributeMenu, modelQueryActionList);
-
-				// add insert child node actions
-				//
-				modelQueryActionList = new ArrayList();
-				modelQuery.getInsertActions(element, ed, -1, ic, vc, modelQueryActionList);
-				addActionHelper(addChildMenu, modelQueryActionList);
-			}
-
-			// add PI and COMMENT
-			contributePIAndCommentActions(addChildMenu, element, ed, -1);
-
-			// add PCDATA, CDATA_SECTION
-			contributeTextNodeActions(addChildMenu, element, ed, -1);
-
-			// add NEW ELEMENT
-			contributeUnconstrainedAddElementAction(addChildMenu, element, ed, -1);
-
-			// add ATTRIBUTE
-			contributeUnconstrainedAttributeActions(addAttributeMenu, element, ed);
-		}
-	}
-
-
-	protected void contributeAddDocumentChildActions(IMenuManager menu, Document document, int ic, int vc) {
-		IMenuManager addChildMenu = new MyMenuManager(XMLUIMessages._UI_MENU_ADD_CHILD); //$NON-NLS-1$
-		menu.add(addChildMenu);
-
-		// add PI and COMMENT
-		contributePIAndCommentActions(addChildMenu, document, -1);
-
-		// add NEW ELEMENT
-		contributeUnconstrainedAddElementAction(addChildMenu, document, -1);
-	}
-
-
-	protected void contributeAddSiblingActions(IMenuManager menu, Node node, int ic, int vc) {
-		IMenuManager addBeforeMenu = new MyMenuManager(XMLUIMessages._UI_MENU_ADD_BEFORE); //$NON-NLS-1$
-		IMenuManager addAfterMenu = new MyMenuManager(XMLUIMessages._UI_MENU_ADD_AFTER); //$NON-NLS-1$
-		menu.add(addBeforeMenu);
-		menu.add(addAfterMenu);
-
-		Node parentNode = node.getParentNode();
-		if (parentNode != null) {
-			int index = getIndex(parentNode, node);
-			if (parentNode.getNodeType() == Node.ELEMENT_NODE) {
-				Element parentElement = (Element) parentNode;
-				CMElementDeclaration parentED = modelQuery.getCMElementDeclaration(parentElement);
-				if (parentED != null) {
-					// 'Add Before...' and 'Add After...' actions
-					//
-					List modelQueryActionList = new ArrayList();
-					modelQuery.getInsertActions(parentElement, parentED, index, ic, vc, modelQueryActionList);
-					addActionHelper(addBeforeMenu, modelQueryActionList);
-
-					modelQueryActionList = new ArrayList();
-					modelQuery.getInsertActions(parentElement, parentED, index + 1, ic, vc, modelQueryActionList);
-					addActionHelper(addAfterMenu, modelQueryActionList);
-				}
-
-				// add COMMENT and PI before and after
-				contributePIAndCommentActions(addBeforeMenu, parentElement, parentED, index);
-				contributePIAndCommentActions(addAfterMenu, parentElement, parentED, index + 1);
-
-				// add PCDATA, CDATA_SECTION before and after
-				contributeTextNodeActions(addBeforeMenu, parentElement, parentED, index);
-				contributeTextNodeActions(addAfterMenu, parentElement, parentED, index + 1);
-
-				// add NEW ELEMENT before and after
-				contributeUnconstrainedAddElementAction(addBeforeMenu, parentElement, parentED, index);
-				contributeUnconstrainedAddElementAction(addAfterMenu, parentElement, parentED, index + 1);
-			} else if (parentNode.getNodeType() == Node.DOCUMENT_NODE) {
-				Document document = (Document) parentNode;
-				CMDocument cmDocument = modelQuery.getCorrespondingCMDocument(parentNode);
-				if (cmDocument != null) {
-					// add possible root element insertions
-					//        
-					List modelQueryActionList = new ArrayList();
-					modelQuery.getInsertActions(document, cmDocument, index, ic, vc, modelQueryActionList);
-					addActionHelper(addAfterMenu, modelQueryActionList);
-
-					modelQueryActionList = new ArrayList();
-					modelQuery.getInsertActions(document, cmDocument, index + 1, ic, vc, modelQueryActionList);
-					addActionHelper(addAfterMenu, modelQueryActionList);
-				}
-
-				// add COMMENT and PI before and after
-				contributePIAndCommentActions(addBeforeMenu, document, index);
-				contributePIAndCommentActions(addAfterMenu, document, index + 1);
-
-				// add ELEMENT before and after
-				contributeUnconstrainedAddElementAction(addBeforeMenu, document, index);
-				contributeUnconstrainedAddElementAction(addAfterMenu, document, index + 1);
-			}
-		}
-	}
-
-	protected void contributeDeleteActions(IMenuManager menu, List list, int ic, int vc) {
-		boolean canRemove = modelQuery.canRemove(list, vc);
-
-
-		// a delete action with an empty list will produce a disabled menu
-		// item
-		//
-		List resultList = canRemove ? list : Collections.EMPTY_LIST;
-		contributeAction(menu, createDeleteAction(resultList));
-	}
-
-
-	protected void contributeEditActions(IMenuManager menu, Node node) {
-		contributeEditGrammarInformationActions(menu, node);
-
-		if (node.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE) {
-			contributeAction(menu, createEditProcessingInstructionAction((ProcessingInstruction) node));
-		} else if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
-			contributeAction(menu, createEditAttributeAction((Attr) node, null));
-		}
-	}
-
-
-	protected void contributeEditGrammarInformationActions(IMenuManager menu, Node node) {
-		Document document = node.getNodeType() == Node.DOCUMENT_NODE ? (Document) node : node.getOwnerDocument();
-
-		DocumentType doctype = getDoctype(node);
-		if (doctype == null) {
-			contributeAction(menu, createAddDoctypeAction(document, -1));
-		}
-
-		if (node.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
-			contributeAction(menu, createEditDoctypeAction((DocumentType) node));
-		}
-
-		if (doctype == null && getRootElement(document) != null) {
-			contributeAction(menu, createEditSchemaInfoAction(getRootElement(document)));
-		}
-	}
-
-	protected void contributePIAndCommentActions(IMenuManager menu, Document document, int index) {
-		// test to make sure that the index isn't before the XML declaration
-		// 
-		contributeAction(menu, createAddCommentAction(document, index));
-		contributeAction(menu, createAddProcessingInstructionAction(document, index));
-	}
-
-
-	protected void contributePIAndCommentActions(IMenuManager menu, Element parentElement, CMElementDeclaration parentEd, int index) {
-		if (parentEd == null || isCommentAllowed(parentEd)) {
-			contributeAction(menu, createAddCommentAction(parentElement, index));
-			contributeAction(menu, createAddProcessingInstructionAction(parentElement, index));
-		}
-	}
-
-
-	protected void contributeReplaceActions(IMenuManager menu, List selectedNodeList, int ic, int vc) {
-		// 'Replace With...' actions
-		//                                                                                                                   
-		IMenuManager replaceWithMenu = new MyMenuManager(XMLUIMessages._UI_MENU_REPLACE_WITH); //$NON-NLS-1$
-		menu.add(replaceWithMenu);
-
-		if (modelQuery.getEditMode() == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT && selectedNodeList.size() > 0) {
-			Node node = (Node) selectedNodeList.get(0);
-			Node parentNode = node.getParentNode();
-			if (parentNode != null && parentNode.getNodeType() == Node.ELEMENT_NODE) {
-				Element parentElement = (Element) parentNode;
-				CMElementDeclaration parentED = modelQuery.getCMElementDeclaration(parentElement);
-				if (parentED != null) {
-					List replaceActionList = new Vector();
-					modelQuery.getReplaceActions(parentElement, parentED, selectedNodeList, ic, vc, replaceActionList);
-					addActionHelper(replaceWithMenu, replaceActionList);
-				}
-			}
-		}
-	}
-
-	protected void contributeTextNodeActions(IMenuManager menu, Element parentElement, CMElementDeclaration parentEd, int index) {
-		if (parentEd == null || isTextAllowed(parentEd)) {
-			CMDataType dataType = parentEd != null ? parentEd.getDataType() : null;
-			contributeAction(menu, createAddPCDataAction(parentElement, dataType, index));
-			contributeAction(menu, createAddCDataSectionAction(parentElement, index));
-		}
-	}
-
-
-	protected void contributeUnconstrainedAddElementAction(IMenuManager menu, Document document, int index) {
-		if (isUnconstrainedActionAllowed()) {
-			if (getRootElement(document) == null) {
-				int xmlDeclarationIndex = -1;
-				int doctypeIndex = -1;
-				NodeList nodeList = document.getChildNodes();
-				int nodeListLength = nodeList.getLength();
-				for (int i = 0; i < nodeListLength; i++) {
-					Node node = nodeList.item(i);
-					int nodeType = node.getNodeType();
-					if (nodeType == Node.DOCUMENT_TYPE_NODE) {
-						doctypeIndex = i;
-						break;
-					} else if (nodeType == Node.PROCESSING_INSTRUCTION_NODE) {
-						ProcessingInstruction pi = (ProcessingInstruction) node;
-						if (pi.getTarget().equalsIgnoreCase("xml") && xmlDeclarationIndex == -1) { //$NON-NLS-1$
-							xmlDeclarationIndex = i;
-						}
-					}
-				}
-
-				if ((xmlDeclarationIndex == -1 || index > xmlDeclarationIndex) && (doctypeIndex == -1 || index > doctypeIndex)) {
-					contributeAction(menu, createAddElementAction(document, null, index));
-				}
-			}
-		}
-	}
-
-
-	protected void contributeUnconstrainedAddElementAction(IMenuManager menu, Element parentElement, CMElementDeclaration parentEd, int index) {
-		if (isUnconstrainedActionAllowed()) {
-			if (parentEd == null || parentEd.getProperty("isInferred") == Boolean.TRUE || (modelQuery.getEditMode() != ModelQuery.EDIT_MODE_CONSTRAINED_STRICT && isElementAllowed(parentEd))) { //$NON-NLS-1$
-				contributeAction(menu, createAddElementAction(parentElement, null, index));
-			}
-		}
-	}
-
-
-	protected void contributeUnconstrainedAttributeActions(IMenuManager menu, Element parentElement, CMElementDeclaration parentEd) {
-		if (isUnconstrainedActionAllowed()) {
-			if (parentEd == null || parentEd.getProperty("isInferred") == Boolean.TRUE || modelQuery.getEditMode() != ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) { //$NON-NLS-1$
-				contributeAction(menu, createAddAttributeAction(parentElement, null));
-			}
-		}
-	}
-
-	abstract protected Action createAddAttributeAction(Element parent, CMAttributeDeclaration ad);
-
-	abstract protected Action createAddCDataSectionAction(Node parent, int index);
-
-	abstract protected Action createAddCommentAction(Node parent, int index);
-
-	abstract protected Action createAddDoctypeAction(Document parent, int index);
-
-	abstract protected Action createAddElementAction(Node parent, CMElementDeclaration ed, int index);
-
-	abstract protected Action createAddPCDataAction(Node parent, CMDataType dataType, int index);
-
-	abstract protected Action createAddProcessingInstructionAction(Node parent, int index);
-
-	abstract protected Action createAddSchemaInfoAction(Element element);
-
-	abstract protected Action createDeleteAction(List selection);
-
-	abstract protected Action createEditAttributeAction(Attr attribute, CMAttributeDeclaration ad);
-
-	abstract protected Action createEditDoctypeAction(DocumentType doctype);
-
-	abstract protected Action createEditProcessingInstructionAction(ProcessingInstruction pi);
-
-	abstract protected Action createEditSchemaInfoAction(Element element);
-
-	abstract protected Action createRenameAction(Node node);
-
-	abstract protected Action createReplaceAction(Node parent, CMNode cmnode, int startIndex, int endIndex);
-
-
-	public int getIndex(Node parentNode, Node child) {
-		NodeList nodeList = parentNode.getChildNodes();
-		int index = -1;
-		int size = nodeList.getLength();
-		for (int i = 0; i < size; i++) {
-			if (nodeList.item(i) == child) {
-				index = i;
-				break;
-			}
-		}
-		return index;
-	}
-
-
-	public Node getRefChildNodeAtIndex(Node parent, int index) {
-		NodeList nodeList = parent.getChildNodes();
-		Node refChild = (index >= 0 && index < nodeList.getLength()) ? nodeList.item(index) : null;
-		return refChild;
-	}
-
-
-	protected Element getRootElement(Document document) {
-		Element result = null;
-		NodeList nodeList = document.getChildNodes();
-		int nodeListLength = nodeList.getLength();
-		for (int i = 0; i < nodeListLength; i++) {
-			Node node = nodeList.item(i);
-			if (node.getNodeType() == Node.ELEMENT_NODE) {
-				result = (Element) node;
-				break;
-			}
-		}
-		return result;
-	}
-
-
-	protected List getSelectedNodes(List list, boolean includeTextNodes) {
-		List result = new ArrayList(0);
-		for (Iterator i = list.iterator(); i.hasNext();) {
-			Object object = i.next();
-			if (object instanceof Node) {
-				Node node = (Node) object;
-				if (node.getNodeType() == Node.TEXT_NODE) {
-					if (includeTextNodes) {
-						result.add(object);
-					}
-				} else {
-					result.add(node);
-				}
-			}
-		}
-		return result;
-	}
-
-
-	protected boolean isCommentAllowed(CMElementDeclaration parentEd) {
-		int contentType = parentEd.getContentType();
-		return contentType == CMElementDeclaration.ELEMENT || contentType == CMElementDeclaration.MIXED || contentType == CMElementDeclaration.PCDATA || contentType == CMElementDeclaration.ANY;
-	}
-
-
-	protected boolean isElementAllowed(CMElementDeclaration parentEd) {
-		int contentType = parentEd.getContentType();
-		return contentType == CMElementDeclaration.ELEMENT || contentType == CMElementDeclaration.MIXED || contentType == CMElementDeclaration.ANY;
-	}
-
-
-	protected boolean isTextAllowed(CMElementDeclaration parentEd) {
-		int contentType = parentEd.getContentType();
-		return contentType == CMElementDeclaration.MIXED || contentType == CMElementDeclaration.PCDATA || contentType == CMElementDeclaration.ANY;
-	}
-
-
-	protected boolean isUnconstrainedActionAllowed() {
-		return true;
-	}
-
-
-	protected boolean isWhitespaceTextNode(Node node) {
-		return (node != null) && (node.getNodeType() == Node.TEXT_NODE) && (node.getNodeValue().trim().length() == 0);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupActionXMLDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupActionXMLDelegate.java
deleted file mode 100644
index 81ddbd2..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupActionXMLDelegate.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IActionDelegate2;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewActionDelegate;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.cleanup.IStructuredCleanupProcessor;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.SSEUIMessages;
-import org.eclipse.wst.xml.core.internal.cleanup.CleanupProcessorXML;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/**
- * Cleanup action delegate for CSS editor
- */
-public class CleanupActionXMLDelegate implements IEditorActionDelegate, IActionDelegate2, IViewActionDelegate {
-	private IEditorPart fEditor;
-	private IStructuredCleanupProcessor fCleanupProcessor;
-
-	public void setActiveEditor(IAction action, IEditorPart targetEditor) {
-		fEditor = targetEditor;
-	}
-
-	public void dispose() {
-		// nulling out just in case
-		fEditor = null;
-		fCleanupProcessor = null;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(XMLUIMessages.CleanupDocument_label);
-			action.setToolTipText(XMLUIMessages.CleanupDocument_tooltip);
-			action.setDescription(XMLUIMessages.CleanupDocument_description);
-		}
-	}
-
-	public void runWithEvent(IAction action, Event event) {
-		run(action);
-	}
-
-	public void init(IViewPart view) {
-		// do nothing
-	}
-
-	public void run(IAction action) {
-		if (fEditor instanceof ITextEditor) {
-			final ITextEditor editor = (ITextEditor) fEditor;
-			Dialog cleanupDialog = new CleanupDialogXML(editor.getSite().getShell());
-			if (cleanupDialog.open() == Window.OK) {
-				// setup runnable
-				Runnable runnable = new Runnable() {
-					public void run() {
-						IStructuredCleanupProcessor cleanupProcessor = getCleanupProcessor();
-						if (cleanupProcessor != null) {
-							IStructuredModel model = null;
-							try {
-								model = StructuredModelManager.getModelManager().getExistingModelForEdit(editor.getDocumentProvider().getDocument(editor.getEditorInput()));
-								if (model != null)
-									cleanupProcessor.cleanupModel(model);
-							}
-							finally {
-								if (model != null)
-									model.releaseFromEdit();
-							}
-						}
-					}
-				};
-
-				// TODO: make independent of 'model'.
-				IStructuredModel model = null;
-				try {
-					model = StructuredModelManager.getModelManager().getExistingModelForEdit(editor.getDocumentProvider().getDocument(editor.getEditorInput()));
-					if (model != null) {
-						// begin recording
-						ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
-						model.beginRecording(this, SSEUIMessages.Cleanup_Document_UI_, SSEUIMessages.Cleanup_Document_UI_, selection.getOffset(), selection.getLength()); //$NON-NLS-1$ //$NON-NLS-2$
-
-						// tell the model that we are about to make a big
-						// model change
-						model.aboutToChangeModel();
-
-						// run
-						BusyIndicator.showWhile(fEditor.getEditorSite().getWorkbenchWindow().getShell().getDisplay(), runnable);
-					}
-				}
-				finally {
-					if (model != null) {
-						// tell the model that we are done with the big
-						// model
-						// change
-						model.changedModel();
-
-						// end recording
-						ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection();
-						model.endRecording(this, selection.getOffset(), selection.getLength());
-						model.releaseFromEdit();
-					}
-				}
-			}
-		}
-	}
-
-	public void selectionChanged(IAction action, ISelection selection) {
-		// do nothing
-	}
-
-	IStructuredCleanupProcessor getCleanupProcessor() {
-		if (fCleanupProcessor == null)
-			fCleanupProcessor = new CleanupProcessorXML();
-
-		return fCleanupProcessor;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java
deleted file mode 100644
index 3e170a0..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/CleanupDialogXML.java
+++ /dev/null
@@ -1,197 +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.wst.xml.ui.internal.actions;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds;
-
-public class CleanupDialogXML extends Dialog implements SelectionListener {
-	protected Button fCheckBoxCompressEmptyElementTags;
-	protected Button fCheckBoxConvertEOLCodes;
-	protected Button fCheckBoxFormatSource;
-	protected Button fCheckBoxInsertMissingTags;
-	protected Button fCheckBoxInsertRequiredAttrs;
-	protected Button fCheckBoxQuoteAttrValues;
-	protected IStructuredModel fModel = null;
-	protected Preferences fPreferences = null;
-	protected Button fRadioButtonAttrNameCaseAsis;
-	protected Button fRadioButtonAttrNameCaseLower;
-	protected Button fRadioButtonAttrNameCaseUpper;
-	protected Button fRadioButtonConvertEOLMac;
-	protected Button fRadioButtonConvertEOLUnix;
-	protected Button fRadioButtonConvertEOLWindows;
-
-	protected Button fRadioButtonTagNameCaseAsis;
-	protected Button fRadioButtonTagNameCaseLower;
-	protected Button fRadioButtonTagNameCaseUpper;
-
-	public CleanupDialogXML(Shell shell) {
-
-		super(shell);
-	}
-
-	public Control createDialogArea(Composite parent) {
-
-		getShell().setText(XMLUIMessages.Cleanup_UI_);
-		Composite composite = new Composite(parent, SWT.NULL);
-		createDialogAreaInComposite(composite);
-		initializeOptions();
-		return composite;
-	}
-
-	protected void createDialogAreaInComposite(Composite composite) {
-
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.CLEANUP_XML_HELPID); // use
-		// XML
-		// specific
-		// help
-
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		layout.makeColumnsEqualWidth = true;
-		composite.setLayout(layout);
-
-		// Compress empty element tags
-		fCheckBoxCompressEmptyElementTags = new Button(composite, SWT.CHECK);
-		fCheckBoxCompressEmptyElementTags.setText(XMLUIMessages.Compress_empty_element_tags_UI_);
-		fCheckBoxCompressEmptyElementTags.addSelectionListener(this);
-
-		// Insert missing required attrs
-		fCheckBoxInsertRequiredAttrs = new Button(composite, SWT.CHECK);
-		fCheckBoxInsertRequiredAttrs.setText(XMLUIMessages.Insert_required_attributes_UI_);
-		fCheckBoxInsertRequiredAttrs.addSelectionListener(this);
-
-		// Insert missing begin/end tags
-		fCheckBoxInsertMissingTags = new Button(composite, SWT.CHECK);
-		fCheckBoxInsertMissingTags.setText(XMLUIMessages.Insert_missing_tags_UI_);
-		fCheckBoxInsertMissingTags.addSelectionListener(this);
-
-		// Quote attribute values
-		fCheckBoxQuoteAttrValues = new Button(composite, SWT.CHECK);
-		fCheckBoxQuoteAttrValues.setText(XMLUIMessages.Quote_attribute_values_UI_);
-		fCheckBoxQuoteAttrValues.addSelectionListener(this);
-
-		// Format source
-		fCheckBoxFormatSource = new Button(composite, SWT.CHECK);
-		fCheckBoxFormatSource.setText(XMLUIMessages.Format_source_UI_);
-		fCheckBoxFormatSource.addSelectionListener(this);
-
-		// Convert EOL code
-		fCheckBoxConvertEOLCodes = new Button(composite, SWT.CHECK);
-		fCheckBoxConvertEOLCodes.setText(XMLUIMessages.Convert_EOL_codes_UI_);
-		fCheckBoxConvertEOLCodes.addSelectionListener(this);
-		Composite EOLCodes = new Composite(composite, SWT.NULL);
-		GridLayout hLayout = new GridLayout();
-		hLayout.numColumns = 3;
-		EOLCodes.setLayout(hLayout);
-		fRadioButtonConvertEOLWindows = new Button(EOLCodes, SWT.RADIO);
-		fRadioButtonConvertEOLWindows.setText(XMLUIMessages.EOL_Windows_UI);
-		fRadioButtonConvertEOLWindows.addSelectionListener(this);
-		fRadioButtonConvertEOLUnix = new Button(EOLCodes, SWT.RADIO);
-		fRadioButtonConvertEOLUnix.setText(XMLUIMessages.EOL_Unix_UI);
-		fRadioButtonConvertEOLUnix.addSelectionListener(this);
-		fRadioButtonConvertEOLMac = new Button(EOLCodes, SWT.RADIO);
-		fRadioButtonConvertEOLMac.setText(XMLUIMessages.EOL_Mac_UI);
-		fRadioButtonConvertEOLMac.addSelectionListener(this);
-	}
-
-	protected void enableEOLCodeRadios(boolean enable) {
-
-		if ((fRadioButtonConvertEOLWindows != null) && (fRadioButtonConvertEOLUnix != null) && (fRadioButtonConvertEOLMac != null)) {
-			fRadioButtonConvertEOLWindows.setEnabled(enable);
-			fRadioButtonConvertEOLUnix.setEnabled(enable);
-			fRadioButtonConvertEOLMac.setEnabled(enable);
-			if (!fRadioButtonConvertEOLWindows.getSelection() && !fRadioButtonConvertEOLUnix.getSelection() && !fRadioButtonConvertEOLMac.getSelection())
-				fRadioButtonConvertEOLWindows.setSelection(true);
-		}
-	}
-
-	protected Preferences getModelPreferences() {
-		return XMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	protected void initializeOptions() {
-
-		fCheckBoxCompressEmptyElementTags.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS));
-		fCheckBoxInsertRequiredAttrs.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS));
-		fCheckBoxInsertMissingTags.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.INSERT_MISSING_TAGS));
-		fCheckBoxQuoteAttrValues.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.QUOTE_ATTR_VALUES));
-		fCheckBoxFormatSource.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.FORMAT_SOURCE));
-		fCheckBoxConvertEOLCodes.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.CONVERT_EOL_CODES));
-		String EOLCode = getModelPreferences().getString(XMLCorePreferenceNames.CLEANUP_EOL_CODE);
-		if (EOLCode.compareTo(CommonEncodingPreferenceNames.LF) == 0)
-			fRadioButtonConvertEOLUnix.setSelection(true);
-		else if (EOLCode.compareTo(CommonEncodingPreferenceNames.CR) == 0)
-			fRadioButtonConvertEOLMac.setSelection(true);
-		else
-			fRadioButtonConvertEOLWindows.setSelection(true);
-		enableEOLCodeRadios(fCheckBoxConvertEOLCodes.getSelection());
-	}
-
-	protected void okPressed() {
-
-		storeOptions();
-		super.okPressed();
-	}
-
-	public void setModel(IStructuredModel model) {
-
-		fModel = model;
-	}
-
-	protected void storeOptions() {
-
-		getModelPreferences().setValue(XMLCorePreferenceNames.COMPRESS_EMPTY_ELEMENT_TAGS, fCheckBoxCompressEmptyElementTags.getSelection());
-		getModelPreferences().setValue(XMLCorePreferenceNames.INSERT_REQUIRED_ATTRS, fCheckBoxInsertRequiredAttrs.getSelection());
-		getModelPreferences().setValue(XMLCorePreferenceNames.INSERT_MISSING_TAGS, fCheckBoxInsertMissingTags.getSelection());
-		getModelPreferences().setValue(XMLCorePreferenceNames.QUOTE_ATTR_VALUES, fCheckBoxQuoteAttrValues.getSelection());
-		getModelPreferences().setValue(XMLCorePreferenceNames.FORMAT_SOURCE, fCheckBoxFormatSource.getSelection());
-		getModelPreferences().setValue(XMLCorePreferenceNames.CONVERT_EOL_CODES, fCheckBoxConvertEOLCodes.getSelection());
-		if (fRadioButtonConvertEOLUnix.getSelection()) {
-			getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.LF);
-		} else if (fRadioButtonConvertEOLMac.getSelection()) {
-			getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CR);
-		} else {
-			getModelPreferences().setValue(XMLCorePreferenceNames.CLEANUP_EOL_CODE, CommonEncodingPreferenceNames.CRLF);
-		}
-		// explicitly save plugin preferences so values are stored
-		XMLCorePlugin.getDefault().savePluginPreferences();
-	}
-
-	public void widgetDefaultSelected(SelectionEvent e) {
-
-		widgetSelected(e);
-	}
-
-	public void widgetSelected(SelectionEvent e) {
-
-		getButton(OK).setEnabled((fRadioButtonTagNameCaseLower != null && (fRadioButtonTagNameCaseLower.getSelection() || fRadioButtonTagNameCaseUpper.getSelection())) || (fRadioButtonAttrNameCaseLower != null && (fRadioButtonAttrNameCaseLower.getSelection() || fRadioButtonAttrNameCaseUpper.getSelection())) || fCheckBoxInsertMissingTags.getSelection() || fCheckBoxQuoteAttrValues.getSelection() || fCheckBoxFormatSource.getSelection() || fCheckBoxConvertEOLCodes.getSelection() || (fRadioButtonConvertEOLUnix != null && (fRadioButtonConvertEOLUnix.getSelection() || fRadioButtonConvertEOLMac.getSelection() || fRadioButtonConvertEOLWindows.getSelection())));
-		if (e.widget == fCheckBoxConvertEOLCodes)
-			enableEOLCodeRadios(fCheckBoxConvertEOLCodes.getSelection());
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditAttributeAction.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditAttributeAction.java
deleted file mode 100644
index 5e3a984..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditAttributeAction.java
+++ /dev/null
@@ -1,80 +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.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.dialogs.EditAttributeDialog;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class EditAttributeAction extends NodeAction {
-	protected static ImageDescriptor imageDescriptor;
-
-	public static ImageDescriptor createImageDescriptor() {
-		if (imageDescriptor == null) {
-			imageDescriptor = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
-		}
-		return imageDescriptor;
-	}
-
-	protected Attr attr;
-	protected AbstractNodeActionManager manager;
-	protected Element ownerElement;
-	protected String title;
-
-	public EditAttributeAction(AbstractNodeActionManager manager, Element ownerElement, Attr attr, String actionLabel, String title) {
-		this.manager = manager;
-		this.ownerElement = ownerElement;
-		this.attr = attr;
-		this.title = title;
-		setText(actionLabel);
-		// assume if attr is null then this is an 'Add' that requires action
-		// an icons... otherwise this is an edit
-		if (attr == null) {
-			setImageDescriptor(createImageDescriptor());
-		}
-	}
-
-	public String getUndoDescription() {
-		return title;
-	}
-
-	public void run() {
-		manager.beginNodeAction(this);
-		Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		EditAttributeDialog dialog = new EditAttributeDialog(shell, ownerElement, attr);
-		dialog.create();
-		dialog.getShell().setText(title);
-		dialog.setBlockOnOpen(true);
-		dialog.open();
-
-		if (dialog.getReturnCode() == Window.OK) {
-			if (attr != null) {
-				ownerElement.removeAttributeNode(attr);
-			}
-			Document document = ownerElement.getOwnerDocument();
-			Attr newAttribute = document.createAttribute(dialog.getAttributeName());
-			newAttribute.setValue(dialog.getAttributeValue());
-			ownerElement.setAttributeNode(newAttribute);
-			manager.setViewerSelection(newAttribute);
-		}
-		manager.endNodeAction(this);
-	}
-}
-
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditDoctypeAction.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditDoctypeAction.java
deleted file mode 100644
index 0a7c2bf..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditDoctypeAction.java
+++ /dev/null
@@ -1,187 +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.wst.xml.ui.internal.actions;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocumentType;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.dialogs.EditDoctypeDialog;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * EditDoctypeAction
- */
-public class EditDoctypeAction extends Action {
-	protected DocumentType doctype;
-	protected Document document;
-	protected IStructuredModel model;
-	protected String resourceLocation;
-	protected String title;
-
-	/**
-	 * This constructor is used to create a new doctype.
-	 */
-	public EditDoctypeAction(IStructuredModel model, Document document, String resourceLocation, String title) {
-		setText(title);
-		this.model = model;
-		this.document = document;
-		this.resourceLocation = resourceLocation;
-		this.title = title;
-	}
-
-	/**
-	 * This constructor is used to edit an exisitng doctype.
-	 */
-	public EditDoctypeAction(IStructuredModel model, DocumentType doctype, String resourceLocation, String title) {
-		setText(title);
-		this.model = model;
-		this.doctype = doctype;
-		this.resourceLocation = resourceLocation;
-		this.title = title;
-	}
-
-
-	protected DocumentType createDoctype(EditDoctypeDialog dialog, Document document) {
-		DocumentType result = null;
-		if (document instanceof DocumentImpl) {
-			IDOMDocument documentImpl = (IDOMDocument) document;
-			IDOMDocumentType doctypeImpl = (IDOMDocumentType) documentImpl.createDoctype(dialog.getName());
-			doctypeImpl.setPublicId(dialog.getPublicId());
-			doctypeImpl.setSystemId(dialog.getSystemId());
-			result = doctypeImpl;
-		}
-		return result;
-	}
-
-	private Display getDisplay() {
-
-		return PlatformUI.getWorkbench().getDisplay();
-	}
-
-
-	protected String getRootElementName(Document document) {
-		Element rootElement = null;
-		NodeList nodeList = document.getChildNodes();
-		int nodeListLength = nodeList.getLength();
-		for (int i = 0; i < nodeListLength; i++) {
-			Node childNode = nodeList.item(i);
-			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-				rootElement = (Element) childNode;
-				break;
-			}
-		}
-		return rootElement != null ? rootElement.getNodeName() : XMLUIMessages._UI_LABEL_ROOT_ELEMENT_VALUE; //$NON-NLS-1$
-	}
-
-	public String getUndoDescription() {
-		return title;
-	}
-
-
-	protected void insertDoctype(DocumentType doctype, Document document) {
-		Node refChild = null;
-		NodeList nodeList = document.getChildNodes();
-		int nodeListLength = nodeList.getLength();
-		for (int i = 0; i < nodeListLength; i++) {
-			Node childNode = nodeList.item(i);
-			if (childNode.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE || childNode.getNodeType() == Node.COMMENT_NODE) {
-				// continue on to the nextNode
-			} else {
-				refChild = childNode;
-				break;
-			}
-		}
-
-		document.insertBefore(doctype, refChild);
-		//manager.reformat(doctype, false);
-	}
-
-	public void run() {
-		model.beginRecording(this, getUndoDescription());
-		//Shell shell =
-		// XMLCommonUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		Shell shell = getDisplay().getActiveShell();
-		EditDoctypeDialog dialog = showEditDoctypeDialog(shell);
-
-		if (dialog.getReturnCode() == Window.OK) {
-			if (doctype != null) {
-				updateDoctype(dialog, doctype);
-			} else if (document != null) {
-				DocumentType doctype = createDoctype(dialog, document);
-				if (doctype != null) {
-					insertDoctype(doctype, document);
-				}
-			}
-		}
-		model.endRecording(this);
-	}
-
-	protected EditDoctypeDialog showEditDoctypeDialog(Shell shell) {
-		EditDoctypeDialog dialog = null;
-
-		if (doctype != null) {
-			dialog = new EditDoctypeDialog(shell, doctype);
-			if (title == null) {
-				title = XMLUIMessages._UI_LABEL_EDIT_DOCTYPE; //$NON-NLS-1$
-			}
-		} else if (document != null) {
-			String rootElementName = getRootElementName(document);
-			dialog = new EditDoctypeDialog(shell, rootElementName, "", rootElementName + ".dtd"); //$NON-NLS-1$ //$NON-NLS-2$
-			if (title == null) {
-				title = XMLUIMessages._UI_MENU_ADD_DTD_INFORMATION_TITLE; //$NON-NLS-1$
-			}
-		}
-
-		dialog.setComputeSystemId(doctype == null || doctype.getSystemId() == null || doctype.getSystemId().trim().length() == 0);
-
-		dialog.setErrorChecking(false);//!model.getType().equals(IStructuredModel.HTML));
-		dialog.create();
-		dialog.getShell().setText(title);
-		dialog.setBlockOnOpen(true);
-		dialog.setResourceLocation(new Path(resourceLocation));
-		dialog.open();
-
-		return dialog;
-	}
-
-
-	protected void updateDoctype(EditDoctypeDialog dialog, DocumentType doctype) {
-		if (doctype instanceof IDOMDocumentType) {
-			IDOMDocumentType doctypeImpl = (IDOMDocumentType) doctype;
-			if (doctypeImpl.getName().equals(dialog.getName())) {
-				doctypeImpl.setPublicId(dialog.getPublicId());
-				doctypeImpl.setSystemId(dialog.getSystemId());
-			} else {
-				// we need to create a new one and remove the old
-				//                  
-				Document document = doctype.getOwnerDocument();
-				DocumentType newDoctype = createDoctype(dialog, document);
-				document.insertBefore(newDoctype, doctype);
-				document.removeChild(doctype);
-				//manager.reformat(newDoctype, false);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditElementAction.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditElementAction.java
deleted file mode 100644
index 9084fa9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditElementAction.java
+++ /dev/null
@@ -1,117 +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.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.dialogs.EditElementDialog;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class EditElementAction extends NodeAction {
-
-	protected static ImageDescriptor imageDescriptor;
-
-	public static ImageDescriptor createImageDescriptor() {
-		if (imageDescriptor == null) {
-			imageDescriptor = XMLEditorPluginImageHelper.getInstance().getImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ELEMENT);
-		}
-		return imageDescriptor;
-	}
-
-	protected Element element;
-	protected int insertionIndex = -1;
-	protected AbstractNodeActionManager manager;
-	protected Node parent;
-	protected String title;
-
-	public EditElementAction(AbstractNodeActionManager manager, Element element, String actionLabel, String dialogTitle) {
-		this(manager, element.getParentNode(), -1, element, actionLabel, dialogTitle);
-	}
-
-	protected EditElementAction(AbstractNodeActionManager manager, Node parent, int index, Element element, String actionLabel, String title) {
-		this.manager = manager;
-		this.parent = parent;
-		this.insertionIndex = index;
-		this.element = element;
-		this.title = title;
-		setText(actionLabel);
-		if (element == null) {
-			setImageDescriptor(createImageDescriptor());
-		}
-	}
-
-	public EditElementAction(AbstractNodeActionManager manager, Node parent, int index, String actionLabel, String title) {
-		this(manager, parent, index, null, actionLabel, title);
-	}
-
-	public String getUndoDescription() {
-		return title;
-	}
-
-	public void run() {
-		manager.beginNodeAction(this);
-		Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		EditElementDialog dialog = new EditElementDialog(shell, element);
-		dialog.create();
-		dialog.getShell().setText(title);
-		dialog.setBlockOnOpen(true);
-		dialog.open();
-
-		if (dialog.getReturnCode() == Window.OK) {
-			Document document = parent.getNodeType() == Node.DOCUMENT_NODE ? (Document) parent : parent.getOwnerDocument();
-			if (element != null) {
-				// here we need to do a rename... which seems to be quite hard
-				// to do :-(
-				if (element instanceof IDOMElement) {
-					IDOMElement elementImpl = (IDOMElement) element;
-					IDOMModel model = elementImpl.getModel();
-					String oldName = elementImpl.getNodeName();
-					String newName = dialog.getElementName();
-					setStructuredDocumentRegionElementName(model, elementImpl.getStartStructuredDocumentRegion(), oldName, newName);
-					setStructuredDocumentRegionElementName(model, elementImpl.getEndStructuredDocumentRegion(), oldName, newName);
-				}
-			} else {
-				Element newElement = document.createElement(dialog.getElementName());
-				NodeList nodeList = parent.getChildNodes();
-				int nodeListLength = nodeList.getLength();
-				Node refChild = insertionIndex < nodeListLength && insertionIndex >= 0 ? nodeList.item(insertionIndex) : null;
-				parent.insertBefore(newElement, refChild);
-				manager.reformat(newElement, false);
-				manager.setViewerSelection(newElement);
-			}
-		}
-		manager.endNodeAction(this);
-	}
-
-	protected void setStructuredDocumentRegionElementName(IDOMModel model, IStructuredDocumentRegion flatNode, String oldName, String newName) {
-		if (flatNode != null) {
-			String string = flatNode.getText();
-			int index = string.indexOf(oldName);
-			if (index != -1) {
-				index += flatNode.getStart();
-				model.getStructuredDocument().replaceText(this, index, oldName.length(), newName);
-			}
-		}
-	}
-}
-
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditProcessingInstructionAction.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditProcessingInstructionAction.java
deleted file mode 100644
index cf1cc1d..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditProcessingInstructionAction.java
+++ /dev/null
@@ -1,94 +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.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.dialogs.EditProcessingInstructionDialog;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-
-/**
- * EditProcessingInstructionAction
- */
-public class EditProcessingInstructionAction extends NodeAction {
-	protected Node childRef;
-	protected AbstractNodeActionManager manager;
-	protected Node parent;
-	protected ProcessingInstruction pi;
-	protected String title;
-
-	/**
-	 * This constructor is used to add a new ProcessingInstruction
-	 */
-	public EditProcessingInstructionAction(AbstractNodeActionManager manager, Node parent, Node childRef, String actionLabel, String title) {
-		setText(actionLabel);
-		this.manager = manager;
-		this.parent = parent;
-		this.childRef = childRef;
-		this.title = title;
-	}
-
-	/**
-	 * This constructor is used to edit a ProcessingInstruction
-	 */
-	public EditProcessingInstructionAction(AbstractNodeActionManager manager, ProcessingInstruction pi, String actionLabel, String title) {
-		setText(actionLabel);
-		this.manager = manager;
-		this.pi = pi;
-		this.parent = pi.getParentNode();
-		this.title = title;
-	}
-
-	public String getUndoDescription() {
-		return title;
-	}
-
-	public void run() {
-		manager.beginNodeAction(this);
-		Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-
-		EditProcessingInstructionDialog dialog = null;
-		if (pi != null) {
-			dialog = new EditProcessingInstructionDialog(shell, pi);
-		} else {
-			dialog = new EditProcessingInstructionDialog(shell, XMLUIMessages._UI_PI_TARGET_VALUE, XMLUIMessages._UI_PI_DATA_VALUE); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-
-		dialog.create();
-		dialog.getShell().setText(title);
-		dialog.setBlockOnOpen(true);
-		dialog.open();
-
-		if (dialog.getReturnCode() == Window.OK) {
-			if (pi != null) {
-				childRef = pi;
-			}
-
-			Document document = parent.getNodeType() == Node.DOCUMENT_NODE ? (Document) parent : parent.getOwnerDocument();
-			Node newNode = document.createProcessingInstruction(dialog.getTarget(), dialog.getData());
-			parent.insertBefore(newNode, childRef);
-
-			if (pi != null) {
-				parent.removeChild(pi);
-			}
-
-			manager.reformat(newNode, false);
-			manager.setViewerSelection(newNode);
-		}
-		manager.endNodeAction(this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditSchemaInfoAction.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditSchemaInfoAction.java
deleted file mode 100644
index 391931b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/EditSchemaInfoAction.java
+++ /dev/null
@@ -1,164 +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.wst.xml.ui.internal.actions;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceInfoManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.dialogs.EditSchemaInfoDialog;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * EditDoctypeAction
- */
-public class EditSchemaInfoAction extends NodeAction {
-	protected AbstractNodeActionManager manager;
-	protected DOMNamespaceInfoManager namespaceInfoManager = new DOMNamespaceInfoManager();
-	protected Node node;
-	protected String resourceLocation;
-	protected String title;
-
-	public EditSchemaInfoAction(AbstractNodeActionManager manager, Node node, String resourceLocation, String title) {
-		this.manager = manager;
-		this.node = node;
-		setText(title);
-		this.resourceLocation = resourceLocation;
-		this.title = title;
-	}
-
-	protected Map createPrefixMapping(List oldList, List newList) {
-		Map map = new Hashtable();
-
-		Hashtable oldURIToPrefixTable = new Hashtable();
-		for (Iterator i = oldList.iterator(); i.hasNext();) {
-			NamespaceInfo oldInfo = (NamespaceInfo) i.next();
-			oldURIToPrefixTable.put(oldInfo.uri, oldInfo);
-		}
-
-		for (Iterator i = newList.iterator(); i.hasNext();) {
-			NamespaceInfo newInfo = (NamespaceInfo) i.next();
-			NamespaceInfo oldInfo = (NamespaceInfo) oldURIToPrefixTable.get(newInfo.uri != null ? newInfo.uri : ""); //$NON-NLS-1$
-
-
-			// if oldInfo is non null ... there's a matching URI in the old
-			// set
-			// we can use its prefix to detemine out mapping
-			//
-			// if oldInfo is null ... we use the 'oldCopy' we stashed away
-			// assuming that the user changed the URI and the prefix
-			if (oldInfo == null) {
-				oldInfo = (NamespaceInfo) newInfo.getProperty("oldCopy"); //$NON-NLS-1$
-			}
-
-			if (oldInfo != null) {
-				String newPrefix = newInfo.prefix != null ? newInfo.prefix : ""; //$NON-NLS-1$
-				String oldPrefix = oldInfo.prefix != null ? oldInfo.prefix : ""; //$NON-NLS-1$
-				if (!oldPrefix.equals(newPrefix)) {
-					map.put(oldPrefix, newPrefix);
-				}
-			}
-		}
-		return map;
-	}
-
-	public Element getElement(Node node) {
-		Element result = null;
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			result = (Element) node;
-		} else if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			result = getRootElement((Document) node);
-		}
-		return result;
-	}
-
-
-	public Element getRootElement(Document document) {
-		Element rootElement = null;
-		NodeList nodeList = document.getChildNodes();
-		int nodeListLength = nodeList.getLength();
-		for (int i = 0; i < nodeListLength; i++) {
-			Node childNode = nodeList.item(i);
-			if (childNode.getNodeType() == Node.ELEMENT_NODE) {
-				rootElement = (Element) childNode;
-				break;
-			}
-		}
-		return rootElement;
-	}
-
-	public String getUndoDescription() {
-		return title;
-	}
-
-	public void run() {
-		manager.beginNodeAction(this);
-
-		// todo... change constructor to take an element
-		Element element = getElement(node);
-		if (element != null) {
-			Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-			EditSchemaInfoDialog dialog = new EditSchemaInfoDialog(shell, new Path(resourceLocation));
-
-			List namespaceInfoList = namespaceInfoManager.getNamespaceInfoList(element);
-			List oldNamespaceInfoList = NamespaceInfo.cloneNamespaceInfoList(namespaceInfoList);
-
-			// here we store a copy of the old info for each NamespaceInfo
-			// this info will be used in createPrefixMapping() to figure out
-			// how to update the document
-			// in response to these changes
-			for (Iterator i = namespaceInfoList.iterator(); i.hasNext();) {
-				NamespaceInfo info = (NamespaceInfo) i.next();
-				NamespaceInfo oldCopy = new NamespaceInfo(info);
-				info.setProperty("oldCopy", oldCopy); //$NON-NLS-1$
-			}
-
-			dialog.setNamespaceInfoList(namespaceInfoList);
-			dialog.create();
-			//dialog.getShell().setSize(500, 300);
-			dialog.getShell().setText(XMLUIMessages._UI_MENU_EDIT_SCHEMA_INFORMATION_TITLE); //$NON-NLS-1$
-			dialog.setBlockOnOpen(true);
-			dialog.open();
-
-			if (dialog.getReturnCode() == Window.OK) {
-				List newInfoList = dialog.getNamespaceInfoList();
-				namespaceInfoManager.removeNamespaceInfo(element);
-				namespaceInfoManager.addNamespaceInfo(element, newInfoList, true);
-
-				// see if we need to rename any prefixes
-				Map prefixMapping = createPrefixMapping(oldNamespaceInfoList, namespaceInfoList);
-				if (prefixMapping.size() > 0) {
-					try {
-						manager.getModel().aboutToChangeModel();
-						ReplacePrefixAction replacePrefixAction = new ReplacePrefixAction(manager, element, prefixMapping);
-						replacePrefixAction.run();
-					} finally {
-						manager.getModel().changedModel();
-					}
-				}
-			}
-		}
-		manager.endNodeAction(this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/MenuBuilder.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/MenuBuilder.java
deleted file mode 100644
index ed716d7..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/MenuBuilder.java
+++ /dev/null
@@ -1,145 +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.wst.xml.ui.internal.actions;
-
-import com.ibm.icu.text.Collator;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-
-
-public class MenuBuilder {
-
-
-	protected Comparator comparator = new Comparator() {
-
-		public int compare(Object o1, Object o2) {
-			return Collator.getInstance().compare(getSortKey(o1), getSortKey(o2));
-		}
-
-		protected String getSortKey(Object o) {
-			String result = ""; //$NON-NLS-1$
-			if (o instanceof IAction) {
-				IAction action = (IAction) o;
-				result = action.getText();
-			}
-			//else if (o instanceof MenuData)
-			//{
-			//  result = "z" + ((MenuData)o).name;
-			//}
-			return result;
-		}
-	};
-
-
-	protected void createAlphebeticalGrouping(IMenuManager menu, List actionList) {
-		Object[] array = actionList.toArray();
-		if (array.length > 0) {
-			Arrays.sort(array, comparator);
-		}
-
-		int groupSize = 15;
-		int minGroupSize = 5;
-		int numberOfGroups = (array.length / groupSize) + ((array.length % groupSize > minGroupSize) ? 1 : 0);
-
-		for (int i = 0; i < numberOfGroups; i++) {
-			boolean isLastGroup = (i == (numberOfGroups - 1));
-			int firstIndex = i * groupSize;
-			int lastIndex = isLastGroup ? array.length - 1 : i * groupSize + groupSize - 1;
-			Action firstAction = (Action) array[firstIndex];
-			Action lastAction = (Action) array[lastIndex];
-			MenuManager submenu = new MenuManager(firstAction.getText() + " - " + lastAction.getText()); //$NON-NLS-1$
-			menu.add(submenu);
-			for (int j = firstIndex; j <= lastIndex; j++) {
-				submenu.add((Action) array[j]);
-			}
-		}
-	}
-
-
-	public void populateMenu(IMenuManager menu, List actionList, boolean createTiered) {
-		// sort the actions
-		if (actionList.size() < 25) {
-			Object[] array = actionList.toArray();
-			if (array.length > 0) {
-				Arrays.sort(array, comparator);
-			}
-			for (int i = 0; i < array.length; i++) {
-				menu.add((Action) array[i]);
-			}
-		} else {
-			createAlphebeticalGrouping(menu, actionList);
-		}
-	}
-
-	/*
-	 * protected void createPropertyGrouping(IMenuManager menu, List
-	 * actionList) { MenuDataTable menuDataTable = new MenuDataTable();
-	 * 
-	 * for (Iterator i = actionList.iterator(); i.hasNext(); ) { String
-	 * groupName = null; Action action = (Action)i.next(); if (action
-	 * instanceof NodeAction) { groupName =
-	 * ((NodeAction)action).getGroupName(); } if (groupName == null) {
-	 * groupName = ""; } MenuData menuData =
-	 * menuDataTable.lookupOrCreate(groupName, "");
-	 * menuData.childList.add(action); } populateMenu(menu,
-	 * menuDataTable.getRoot()); }
-	 * 
-	 * 
-	 * protected void populateMenu(MenuManager menuManager, MenuData menuData) {
-	 * for (Iterator i = menuData.childList.iterator(); i.hasNext(); ) {
-	 * Object o = i.next(); if (o instanceof Action) {
-	 * menuManager.add((Action)o); } else if (o instanceof MenuData) {
-	 * MenuData childMenuData = (MenuData)o; MenuManager childMenuManager =
-	 * new MenuManager(childMenuData.name); menuManager.add(childMenuManager);
-	 * populateMenu(childMenuManager, childMenuData); } } }
-	 * 
-	 * 
-	 * public MenuDataTable { protected Hashtable table = new Hashtable();
-	 * protected MenuData root;
-	 * 
-	 * public MenuDataTable() { root = lookupOrCreateMenuData(null, null); }
-	 * 
-	 * protected MenuData lookupMenuData(String name) { String key = name !=
-	 * null ? name : ""; return (MenuData)menuDataTable.get(key); }
-	 * 
-	 * protected MenuData lookupOrCreateMenuData(String name, String
-	 * parentName) { String key = name != null ? name : ""; MenuData menuData =
-	 * (MenuData)menuDataTable.get(key); if (menuData == null) { menuData =
-	 * new MenuData(name, parentName); menuDataTable.put(key, menuData); }
-	 * return menuData; }
-	 * 
-	 * public MenuData getRoot() { return root; } }
-	 * 
-	 * 
-	 * protected class MenuData { public String name; public String
-	 * parentName; public List childList = new Vector();
-	 * 
-	 * MenuData(String name, String parentName) { this.name = name;
-	 * this.parentName = parentName; }
-	 * 
-	 * protected void sort() { Object[] array = childList.toArray(); if
-	 * (array.length > 0 ) { Arrays.sort(array, comparator); } childList =
-	 * Arrays.asList(array);
-	 * 
-	 * for (Iterator i = childList.iterator(); i.hasNext(); ) { Object o =
-	 * i.next(); if (o instanceof MenuData) { ((MenuData)o).sort(); } } } }
-	 */
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/NodeAction.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/NodeAction.java
deleted file mode 100644
index 64c4728..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/NodeAction.java
+++ /dev/null
@@ -1,26 +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.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.action.Action;
-
-public abstract class NodeAction extends Action {
-
-	public String getSortKey() {
-		return null;
-	}
-
-	public abstract String getUndoDescription();
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/RemoveBlockCommentActionXMLDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/RemoveBlockCommentActionXMLDelegate.java
deleted file mode 100644
index a762cea..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/RemoveBlockCommentActionXMLDelegate.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.xml.core.internal.document.CommentImpl;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/**
- * Remove block comment action delegate for XML editor
- */
-public class RemoveBlockCommentActionXMLDelegate extends AbstractCommentActionXMLDelegate {
-
-	void processAction(IDocument document, ITextSelection textSelection) {
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForEdit(document);
-		if (model != null) {
-			try {
-				IndexedRegion selectionStartIndexedRegion = model.getIndexedRegion(textSelection.getOffset());
-				IndexedRegion selectionEndIndexedRegion = model.getIndexedRegion(textSelection.getOffset() + textSelection.getLength());
-
-				if (selectionStartIndexedRegion == null || selectionEndIndexedRegion == null)
-					return;
-
-				int openCommentOffset = selectionStartIndexedRegion.getStartOffset();
-				int closeCommentOffset = selectionEndIndexedRegion.getEndOffset() - OPEN_COMMENT.length() - CLOSE_COMMENT.length();
-
-				model.beginRecording(this, XMLUIMessages.RemoveBlockComment_tooltip);
-				model.aboutToChangeModel();
-
-				try {
-					if (textSelection.getLength() == 0) {
-						if (selectionStartIndexedRegion instanceof CommentImpl) {
-							document.replace(openCommentOffset, OPEN_COMMENT.length(), ""); //$NON-NLS-1$
-							document.replace(closeCommentOffset, CLOSE_COMMENT.length(), ""); //$NON-NLS-1$
-						}
-					}
-					else {
-						if (selectionStartIndexedRegion instanceof CommentImpl) {
-							document.replace(openCommentOffset, OPEN_COMMENT.length(), ""); //$NON-NLS-1$
-						}
-
-						if (selectionEndIndexedRegion instanceof CommentImpl) {
-							document.replace(closeCommentOffset, CLOSE_COMMENT.length(), ""); //$NON-NLS-1$
-						}
-					}
-					removeOpenCloseComments(document, openCommentOffset + OPEN_COMMENT.length(), closeCommentOffset - openCommentOffset - CLOSE_COMMENT.length());
-				}
-				catch (BadLocationException e) {
-					Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-				}
-				finally {
-					model.changedModel();
-					model.endRecording(this);
-				}
-			}
-			finally {
-				model.releaseFromEdit();
-			}
-		}
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(XMLUIMessages.RemoveBlockComment_label);
-			action.setToolTipText(XMLUIMessages.RemoveBlockComment_tooltip);
-			action.setDescription(XMLUIMessages.RemoveBlockComment_description);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ReplacePrefixAction.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ReplacePrefixAction.java
deleted file mode 100644
index 46430e9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ReplacePrefixAction.java
+++ /dev/null
@@ -1,79 +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.wst.xml.ui.internal.actions;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMVisitor;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-
-public class ReplacePrefixAction extends NodeAction {
-
-	class NodeCollectingDOMVisitor extends DOMVisitor {
-		public List list = new Vector();
-
-		protected boolean isPrefixChangedNeeded(Node node) {
-			String key = node.getPrefix() != null ? node.getPrefix() : ""; //$NON-NLS-1$
-			return prefixMapping.get(key) != null;
-		}
-
-		public void visitAttr(Attr attr) {
-			/*
-			 * if (isPrefixChangedNeeded(element)) { list.add(attr); }
-			 */
-		}
-
-		protected void visitElement(Element element) {
-			super.visitElement(element);
-			if (isPrefixChangedNeeded(element)) {
-				list.add(element);
-			}
-		}
-	}
-
-	protected static ImageDescriptor imageDescriptor;
-	protected Element element;
-	protected AbstractNodeActionManager manager;
-	protected Map prefixMapping;
-
-	public ReplacePrefixAction(AbstractNodeActionManager manager, Element element, Map prefixMapping) {
-		this.manager = manager;
-		this.element = element;
-		this.prefixMapping = prefixMapping;
-	}
-
-	public String getUndoDescription() {
-		return ""; //$NON-NLS-1$
-	}
-
-	public void run() {
-		NodeCollectingDOMVisitor visitor = new NodeCollectingDOMVisitor();
-		visitor.visitNode(element);
-		for (Iterator i = visitor.list.iterator(); i.hasNext();) {
-			Node node = (Node) i.next();
-			String key = node.getPrefix() != null ? node.getPrefix() : ""; //$NON-NLS-1$
-			String newPrefix = (String) prefixMapping.get(key);
-			if (newPrefix != null) {
-				node.setPrefix(newPrefix);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ToggleCommentActionXMLDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ToggleCommentActionXMLDelegate.java
deleted file mode 100644
index 5c6710f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/actions/ToggleCommentActionXMLDelegate.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/**
- * Toggle comment action delegate for XML editor
- */
-public class ToggleCommentActionXMLDelegate extends AbstractCommentActionXMLDelegate {
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(XMLUIMessages.ToggleComment_label);
-			action.setToolTipText(XMLUIMessages.ToggleComment_tooltip);
-			action.setDescription(XMLUIMessages.ToggleComment_description);
-		}
-	}
-
-	void processAction(IDocument document, ITextSelection textSelection) {
-		// get text selection lines info
-		int selectionStartLine = textSelection.getStartLine();
-		int selectionEndLine = textSelection.getEndLine();
-		try {
-			int selectionEndLineOffset = document.getLineOffset(selectionEndLine);
-			int selectionEndOffset = textSelection.getOffset() + textSelection.getLength();
-
-			// adjust selection end line
-			if (selectionEndLine > selectionStartLine && selectionEndLineOffset == selectionEndOffset)
-				selectionEndLine--;
-
-		}
-		catch (BadLocationException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-
-		// save the selection position since it will be changing
-		Position selectionPosition = null;
-		boolean updateStartOffset = false;
-		try {
-			selectionPosition = new Position(textSelection.getOffset(), textSelection.getLength());
-			document.addPosition(selectionPosition);
-
-			// extra check if commenting from beginning of line
-			int selectionStartLineOffset = document.getLineOffset(selectionStartLine);
-			if (textSelection.getLength() > 0 && selectionStartLineOffset == textSelection.getOffset() && !isCommentLine(document, selectionStartLine))
-				updateStartOffset = true;
-		}
-		catch (BadLocationException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-
-		processAction(document, selectionStartLine, selectionEndLine);
-
-		updateCurrentSelection(selectionPosition, document, updateStartOffset);
-	}
-
-	private void processAction(IDocument document, int selectionStartLine, int selectionEndLine) {
-		IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForEdit(document);
-		if (model != null) {
-			try {
-				model.beginRecording(this, XMLUIMessages.ToggleComment_tooltip);
-				model.aboutToChangeModel();
-
-				for (int i = selectionStartLine; i <= selectionEndLine; i++) {
-					try {
-						if (document.getLineLength(i) > 0) {
-							if (isCommentLine(document, i)) {
-								int lineOffset = document.getLineOffset(i);
-								IRegion region = document.getLineInformation(i);
-								String string = document.get(region.getOffset(), region.getLength());
-								int openCommentOffset = lineOffset + string.indexOf(OPEN_COMMENT);
-								int closeCommentOffset = lineOffset + string.indexOf(CLOSE_COMMENT) - OPEN_COMMENT.length();
-								uncomment(document, openCommentOffset, closeCommentOffset);
-							}
-							else {
-								int openCommentOffset = document.getLineOffset(i);
-								int lineDelimiterLength = document.getLineDelimiter(i) == null ? 0 : document.getLineDelimiter(i).length();
-								int closeCommentOffset = openCommentOffset + document.getLineLength(i) - lineDelimiterLength + OPEN_COMMENT.length();
-								comment(document, openCommentOffset, closeCommentOffset);
-							}
-						}
-					}
-					catch (BadLocationException e) {
-						Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-					}
-				}
-			}
-			finally {
-				model.changedModel();
-				model.endRecording(this);
-				model.releaseFromEdit();
-			}
-		}
-	}
-
-	private boolean isCommentLine(IDocument document, int line) {
-		boolean isComment = false;
-
-		try {
-			IRegion region = document.getLineInformation(line);
-			String string = document.get(region.getOffset(), region.getLength()).trim();
-			isComment = string.length() >= OPEN_COMMENT.length() + CLOSE_COMMENT.length() && string.startsWith(OPEN_COMMENT) && string.endsWith(CLOSE_COMMENT);
-		}
-		catch (BadLocationException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-		return isComment;
-	}
-
-	private void comment(IDocument document, int openCommentOffset, int closeCommentOffset) {
-		try {
-			document.replace(openCommentOffset, 0, OPEN_COMMENT);
-			document.replace(closeCommentOffset, 0, CLOSE_COMMENT);
-			removeOpenCloseComments(document, openCommentOffset + OPEN_COMMENT.length(), closeCommentOffset - openCommentOffset - CLOSE_COMMENT.length());
-		}
-		catch (BadLocationException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-	}
-
-	private void uncomment(IDocument document, int openCommentOffset, int closeCommentOffset) {
-		try {
-			document.replace(openCommentOffset, OPEN_COMMENT.length(), ""); //$NON-NLS-1$
-			document.replace(closeCommentOffset, CLOSE_COMMENT.length(), ""); //$NON-NLS-1$
-		}
-		catch (BadLocationException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-	}
-
-	private void updateCurrentSelection(Position selectionPosition, IDocument document, boolean updateStartOffset) {
-		if (fEditor instanceof ITextEditor) {
-			// update the selection if text selection changed
-			if (selectionPosition != null) {
-				ITextSelection selection = null;
-				if (updateStartOffset)
-					selection = new TextSelection(document, selectionPosition.getOffset() - OPEN_COMMENT.length(), selectionPosition.getLength() + OPEN_COMMENT.length());
-				else
-					selection = new TextSelection(document, selectionPosition.getOffset(), selectionPosition.getLength());
-				ISelectionProvider provider = ((ITextEditor) fEditor).getSelectionProvider();
-				if (provider != null) {
-					provider.setSelection(selection);
-				}
-				document.removePosition(selectionPosition);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/autoedit/AutoEditStrategyForTabs.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/autoedit/AutoEditStrategyForTabs.java
deleted file mode 100644
index bc7fece..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/autoedit/AutoEditStrategyForTabs.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.autoedit;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.ConfigurableLineTracker;
-import org.eclipse.jface.text.DocumentCommand;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ILineTracker;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.TextUtilities;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorExtension3;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.ui.internal.Logger;
-
-/**
- * AutoEditStrategy to handle characters inserted when Tab key is pressed
- */
-public class AutoEditStrategyForTabs implements IAutoEditStrategy {
-	private final String TAB_CHARACTER = "\t";	//$NON-NLS-1$
-	
-	public void customizeDocumentCommand(IDocument document, DocumentCommand command) {
-		// if not in smart insert mode just ignore
-		if (!isSmartInsertMode())
-			return;
-		
-		// spaces for tab character
-		if (command.length == 0 && command.text != null && command.text.length() > 0 && command.text.indexOf(TAB_CHARACTER) != -1)
-			smartInsertForTab(command, document);
-	}
-
-	/**
-	 * Insert spaces for tabs
-	 * 
-	 * @param command
-	 */
-	private void smartInsertForTab(DocumentCommand command, IDocument document) {
-		// tab key was pressed. now check preferences to see if need to insert
-		// spaces instead of tab
-		int indentationWidth = getIndentationWidth();
-		if (indentationWidth > -1) {
-			String originalText = command.text;
-			StringBuffer newText = new StringBuffer(originalText);
-
-			// determine where in line this command begins
-			int lineOffset = -1;
-			try {
-				IRegion lineInfo = document.getLineInformationOfOffset(command.offset);
-				lineOffset = command.offset - lineInfo.getOffset();
-			} catch (BadLocationException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-
-			ILineTracker lineTracker = getLineTracker(document, originalText);
-
-			int startIndex = 0;
-			int index = newText.indexOf(TAB_CHARACTER);
-			while (index != -1) {
-				String indent = getIndentString(indentationWidth, lineOffset, lineTracker, index);
-
-				// replace \t character with spaces
-				newText.replace(index, index + 1, indent);
-				if (lineTracker != null) {
-					try {
-						lineTracker.replace(index, 1, indent);
-					} catch (BadLocationException e) {
-						// if something goes wrong with replacing text, just
-						// reset to current string
-						lineTracker.set(newText.toString());
-						Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-					}
-				}
-
-				startIndex = index + indent.length();
-				index = newText.indexOf(TAB_CHARACTER, startIndex);
-			}
-			command.text = newText.toString();
-		}
-	}
-
-	/**
-	 * Calculate number of spaces for next tab stop
-	 */
-	private String getIndentString(int indentationWidth, int lineOffset, ILineTracker lineTracker, int index) {
-		int indentSize = indentationWidth;
-		int offsetInLine = -1;
-		if (lineTracker != null) {
-			try {
-				IRegion lineInfo = lineTracker.getLineInformationOfOffset(index);
-				if (lineInfo.getOffset() == 0 && lineOffset > -1)
-					offsetInLine = lineOffset + index;
-				else
-					offsetInLine = index - lineInfo.getOffset();
-			} catch (BadLocationException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		} else {
-			if (lineOffset > -1) {
-				offsetInLine = lineOffset + index;
-			}
-		}
-		if (offsetInLine > -1 && indentationWidth > 0) {
-			int remainder = offsetInLine % indentationWidth;
-			indentSize = indentationWidth - remainder;
-		}
-
-		StringBuffer indent = new StringBuffer();
-		for (int i = 0; i < indentSize; i++)
-			indent.append(' ');
-		return indent.toString();
-	}
-
-	/**
-	 * Set up a line tracker for text within command if text is multi-line
-	 */
-	private ILineTracker getLineTracker(IDocument document, String originalText) {
-		ConfigurableLineTracker lineTracker = null;
-		int[] delims = TextUtilities.indexOf(document.getLegalLineDelimiters(), originalText, 0);
-		if (delims[0] != -1 || delims[1] != -1) {
-			lineTracker = new ConfigurableLineTracker(document.getLegalLineDelimiters());
-			lineTracker.set(originalText);
-		}
-		return lineTracker;
-	}
-	
-	/**
-	 * Return true if active editor is in smart insert mode, false otherwise
-	 * 
-	 * @return boolean
-	 */
-	private boolean isSmartInsertMode() {
-		boolean isSmartInsertMode = false;
-		
-		ITextEditor textEditor = null;
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				IEditorPart editor = page.getActiveEditor();
-				if (editor != null) {
-					if (editor instanceof ITextEditor)
-						textEditor = (ITextEditor)editor;
-					else
-						textEditor = (ITextEditor)editor.getAdapter(ITextEditor.class);
-				}
-			}
-		}
-		
-		// check if smart insert mode
-		if (textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT)
-			isSmartInsertMode = true;
-		return isSmartInsertMode;
-	}
-	
-	/**
-	 * Returns indentation width if using spaces for indentation, -1 otherwise
-	 * 
-	 * @return int
-	 */
-	private int getIndentationWidth() {
-		int width = -1;
-
-		Preferences preferences = XMLCorePlugin.getDefault().getPluginPreferences();
-		if (XMLCorePreferenceNames.SPACE.equals(preferences.getString(XMLCorePreferenceNames.INDENTATION_CHAR)))
-			width = preferences.getInt(XMLCorePreferenceNames.INDENTATION_SIZE);
-
-		return width;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/autoedit/StructuredAutoEditStrategyXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/autoedit/StructuredAutoEditStrategyXML.java
deleted file mode 100644
index 591c0c9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/autoedit/StructuredAutoEditStrategyXML.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.autoedit;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentCommand;
-import org.eclipse.jface.text.IAutoEditStrategy;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorExtension3;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.w3c.dom.Node;
-
-/**
- * Automatically inserts closing comment tag or end tag when appropriate.
- */
-public class StructuredAutoEditStrategyXML implements IAutoEditStrategy {
-	/*
-	 * NOTE: copies of this class exists in
-	 * org.eclipse.wst.xml.ui.internal.autoedit
-	 * org.eclipse.wst.html.ui.internal.autoedit
-	 */
-	public void customizeDocumentCommand(IDocument document, DocumentCommand command) {
-		Object textEditor = getActiveTextEditor();
-		if (!(textEditor instanceof ITextEditorExtension3 && ((ITextEditorExtension3) textEditor).getInsertMode() == ITextEditorExtension3.SMART_INSERT))
-			return;
-
-		IStructuredModel model = null;
-		try {
-			model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (model != null) {
-				if (command.text != null) {
-					smartInsertForComment(command, document, model);
-					smartInsertForEndTag(command, document, model);
-				}
-			}
-		}
-		finally {
-			if (model != null)
-				model.releaseFromRead();
-		}
-	}
-
-	private boolean isCommentNode(IDOMNode node) {
-		return (node != null && node instanceof IDOMElement && ((IDOMElement) node).isCommentTag());
-	}
-
-	private boolean isDocumentNode(IDOMNode node) {
-		return (node != null && node.getNodeType() == Node.DOCUMENT_NODE);
-	}
-
-	private void smartInsertForComment(DocumentCommand command, IDocument document, IStructuredModel model) {
-		try {
-			if (command.text.equals("-") && document.getLength() >= 3 && document.get(command.offset - 3, 3).equals("<!-")) { //$NON-NLS-1$ //$NON-NLS-2$
-				command.text += "  -->"; //$NON-NLS-1$
-				command.shiftsCaret = false;
-				command.caretOffset = command.offset + 2;
-				command.doit = false;
-			}
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-
-	}
-
-	private void smartInsertForEndTag(DocumentCommand command, IDocument document, IStructuredModel model) {
-		try {
-			if (command.text.equals("/") && document.getLength() >= 1 && document.get(command.offset - 1, 1).equals("<")) { //$NON-NLS-1$ //$NON-NLS-2$
-				IDOMNode parentNode = (IDOMNode) ((IDOMNode) model.getIndexedRegion(command.offset - 1)).getParentNode();
-				if (isCommentNode(parentNode)) {
-					// loop and find non comment node parent
-					while (parentNode != null && isCommentNode(parentNode)) {
-						parentNode = (IDOMNode) parentNode.getParentNode();
-					}
-				}
-
-				if (!isDocumentNode(parentNode)) {
-					// only add end tag if one does not already exist or if
-					// add '/' does not create one already
-					IStructuredDocumentRegion endTagStructuredDocumentRegion = parentNode.getEndStructuredDocumentRegion();
-					if (endTagStructuredDocumentRegion == null) {
-						StringBuffer toAdd = new StringBuffer(parentNode.getNodeName());
-						if (toAdd.length() > 0) {
-							toAdd.append(">"); //$NON-NLS-1$
-							String suffix = toAdd.toString();
-							if ((document.getLength() < command.offset + suffix.length()) || (!suffix.equals(document.get(command.offset, suffix.length())))) {
-								command.text += suffix;
-							}
-						}
-					}
-				}
-			}
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-	}
-
-	/**
-	 * Return the active text editor if possible, otherwise the active editor
-	 * part.
-	 * 
-	 * @return Object
-	 */
-	private Object getActiveTextEditor() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window != null) {
-			IWorkbenchPage page = window.getActivePage();
-			if (page != null) {
-				IEditorPart editor = page.getActiveEditor();
-				if (editor != null) {
-					if (editor instanceof ITextEditor)
-						return editor;
-					ITextEditor textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
-					if (textEditor != null)
-						return textEditor;
-					return editor;
-				}
-			}
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java
deleted file mode 100644
index 4438385..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentAssistProcessor.java
+++ /dev/null
@@ -1,2332 +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.wst.xml.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import java.util.Vector;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.encoding.ContentTypeEncodingPreferences;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMEntityDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAction;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.core.internal.document.AttrImpl;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.editor.CMImageUtil;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLUIPreferenceNames;
-import org.eclipse.wst.xml.ui.internal.taginfo.MarkupTagInfoProvider;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-abstract public class AbstractContentAssistProcessor implements IContentAssistProcessor, IReleasable {
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	private class DOMJSPRegionContextsPrivateCopy {
-		private static final String JSP_CLOSE = "JSP_CLOSE"; //$NON-NLS-1$
-		private static final String JSP_COMMENT_CLOSE = "JSP_COMMENT_CLOSE"; //$NON-NLS-1$
-
-		private static final String JSP_COMMENT_OPEN = "JSP_COMMENT_OPEN"; //$NON-NLS-1$
-		private static final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$
-		private static final String JSP_DIRECTIVE_CLOSE = "JSP_DIRECTIVE_CLOSE"; //$NON-NLS-1$
-		private static final String JSP_DIRECTIVE_NAME = "JSP_DIRECTIVE_NAME"; //$NON-NLS-1$
-
-		private static final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$
-		private static final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$
-
-		private static final String JSP_ROOT_TAG_NAME = "JSP_ROOT_TAG_NAME"; //$NON-NLS-1$
-
-		private static final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$
-
-	}
-
-	protected static final String INTERNALERROR = XMLUIMessages.SEVERE_internal_error_occu_UI_;
-	protected static final String UNKNOWN_ATTR = XMLUIMessages.No_known_attribute__UI_;
-	protected static final String UNKNOWN_CONTEXT = XMLUIMessages.Content_Assist_not_availab_UI_;
-	protected char completionProposalAutoActivationCharacters[] = null;
-	protected char contextInformationAutoActivationCharacters[] = null;
-	private AttributeContextInformationProvider fAttributeInfoProvider = null;
-	private AttributeContextInformationPresenter fContextInformationPresenter = null;
-
-	protected String fErrorMessage = null;
-	protected XMLContentModelGenerator fGenerator;
-	// protected IResource resource = null;
-	protected MarkupTagInfoProvider fInfoProvider = null;
-	protected ITextViewer fTextViewer = null;
-
-	private final boolean showValues = true;
-
-	public AbstractContentAssistProcessor() {
-		init();
-	}
-
-	protected void addAttributeNameProposals(ContentAssistRequest contentAssistRequest) {
-		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-		IStructuredDocumentRegion sdRegion = contentAssistRequest.getDocumentRegion();
-		// retrieve the list of attributes
-		CMElementDeclaration elementDecl = getCMElementDeclaration(node);
-		if (elementDecl != null) {
-			CMNamedNodeMap attributes = elementDecl.getAttributes();
-			String matchString = contentAssistRequest.getMatchString();
-
-			// check whether an attribute really exists for the replacement
-			// offsets AND if it possesses a value
-			boolean attrAtLocationHasValue = false;
-			NamedNodeMap attrs = node.getAttributes();
-			for (int i = 0; i < attrs.getLength(); i++) {
-				AttrImpl existingAttr = (AttrImpl) attrs.item(i);
-				ITextRegion name = existingAttr.getNameRegion();
-
-				if (sdRegion.getStartOffset(name) <= contentAssistRequest.getReplacementBeginPosition() && sdRegion.getStartOffset(name) + name.getLength() >= contentAssistRequest.getReplacementBeginPosition() + contentAssistRequest.getReplacementLength() && existingAttr.getValueRegion() != null) {
-					attrAtLocationHasValue = true;
-					break;
-				}
-			}
-
-			// only add proposals for the attributes whose names begin with
-			// the matchstring
-			if (attributes != null) {
-				for (int i = 0; i < attributes.getLength(); i++) {
-					CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) attributes.item(i);
-					
-					int isRequired = 0;
-					if (attrDecl.getUsage() == CMAttributeDeclaration.REQUIRED) {
-						isRequired = XMLRelevanceConstants.R_REQUIRED;
-					}
-
-					boolean showAttribute = true;
-					showAttribute = showAttribute && beginsWith(getRequiredName(node, attrDecl), matchString.trim());
-					AttrImpl attr = (AttrImpl) node.getAttributes().getNamedItem(getRequiredName(node, attrDecl));
-					ITextRegion nameRegion = attr != null ? attr.getNameRegion() : null;
-					// nameRegion.getEndOffset() + 1 is required to allow for
-					// matches against the full name of an existing Attr
-					showAttribute = showAttribute && ((attr == null) || (nameRegion != null && sdRegion.getStartOffset(nameRegion) <= contentAssistRequest.getReplacementBeginPosition() && sdRegion.getStartOffset(nameRegion) + nameRegion.getLength() >= contentAssistRequest.getReplacementBeginPosition() + contentAssistRequest.getReplacementLength()));
-					if (showAttribute) {
-						Image attrImage = CMImageUtil.getImage(attrDecl);
-						if (attrImage == null) {
-							if (isRequired > 0) {
-								attrImage = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ATT_REQ_OBJ);
-							}
-							else {
-								attrImage = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
-							}
-						}
-
-						String proposedText = null;
-						String proposedInfo = getAdditionalInfo(elementDecl, attrDecl);
-						CustomCompletionProposal proposal = null;
-						// attribute is at this location and already exists
-						if (attrAtLocationHasValue) {
-							// only propose the name
-							proposedText = getRequiredName(node, attrDecl);
-							proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), proposedText.length(), attrImage, proposedText, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_NAME + isRequired, true);		
-						}
-						// no attribute exists or is elsewhere, generate
-						// minimally
-						else {
-							Attr existingAttrNode = (Attr) node.getAttributes().getNamedItem(getRequiredName(node, attrDecl));
-							String value = null;
-							if (existingAttrNode != null)
-								value = existingAttrNode.getNodeValue();
-							if (value != null && value.length() > 0)
-								proposedText = getRequiredName(node, attrDecl);
-							else {
-								proposedText = getRequiredText(node, attrDecl);
-							}
-							proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), attrDecl.getNodeName().length() + 2, attrImage,
-							// if the value isn't empty (no empty set of
-										// quotes), show it
-										(showValues && proposedText.indexOf("\"\"") < 0) ? proposedText : getRequiredName(node, attrDecl), //$NON-NLS-1$
-										null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_NAME + isRequired);
-						}
-						contentAssistRequest.addProposal(proposal);
-					}
-				}
-			}
-		}
-		else {
-			setErrorMessage(NLS.bind(XMLUIMessages.Element__is_unknown, (new Object[]{node.getNodeName()})));
-		}
-	}
-
-	protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest) {
-		
-		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-
-		// Find the attribute region and name for which this position should
-		// have a value proposed
-		IStructuredDocumentRegion open = node.getFirstStructuredDocumentRegion();
-		ITextRegionList openRegions = open.getRegions();
-		int i = openRegions.indexOf(contentAssistRequest.getRegion());
-		if (i < 0)
-			return;
-		ITextRegion nameRegion = null;
-		while (i >= 0) {
-			nameRegion = openRegions.get(i--);
-			if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-				break;
-		}
-
-		// the name region is REQUIRED to do anything useful
-		if (nameRegion != null) {
-			// Retrieve the declaration
-			CMElementDeclaration elementDecl = getCMElementDeclaration(node);
-
-			// String attributeName = nameRegion.getText();
-			String attributeName = open.getText(nameRegion);
-
-			CMAttributeDeclaration attrDecl = null;
-
-			// No CMElementDeclaration means no attribute metadata, but
-			// retrieve the
-			// declaration for the attribute otherwise
-			if (elementDecl != null) {
-				CMNamedNodeMap attributes = elementDecl.getAttributes();
-				String noprefixName = DOMNamespaceHelper.getUnprefixedName(attributeName);
-				if (attributes != null) {
-					attrDecl = (CMAttributeDeclaration) attributes.getNamedItem(noprefixName);
-					if (attrDecl == null) {
-						attrDecl = (CMAttributeDeclaration) attributes.getNamedItem(attributeName);
-					}
-				}
-				if (attrDecl == null) {
-					setErrorMessage(UNKNOWN_ATTR, attributeName);
-				}
-			}
-
-			String currentValue = node.getAttributes().getNamedItem(attributeName).getNodeValue();
-			String proposedInfo = null;
-			Image image = CMImageUtil.getImage(attrDecl);
-			if (image == null) {
-				if (attrDecl != null && attrDecl.getUsage() == CMAttributeDeclaration.REQUIRED) {
-					image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ATT_REQ_OBJ);
-				}
-				else {
-					image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
-				}
-			}
-
-			if (attrDecl != null && attrDecl.getAttrType() != null) {
-				// attribute is known, prompt with values from the declaration
-				proposedInfo = getAdditionalInfo(elementDecl, attrDecl);
-				List possibleValues = getPossibleDataTypeValues(node, attrDecl);
-				if (possibleValues.size() > 0) {
-					// ENUMERATED VALUES
-					String matchString = contentAssistRequest.getMatchString();
-					if (matchString == null)
-						matchString = ""; //$NON-NLS-1$
-					if (matchString.length() > 0 && (matchString.startsWith("\"") || matchString.startsWith("'"))) //$NON-NLS-2$//$NON-NLS-1$
-						matchString = matchString.substring(1);
-					boolean currentValid = false;
-
-					// d210858, if the region's a container, don't suggest the
-					// enumerated values as they probably won't help
-					boolean existingComplicatedValue = contentAssistRequest.getRegion() != null && contentAssistRequest.getRegion() instanceof ITextRegionContainer;
-					if (!existingComplicatedValue) {
-						for (Iterator j = possibleValues.iterator(); j.hasNext();) {
-							String possibleValue = (String) j.next();
-							currentValid = currentValid || possibleValue.equals(currentValue);
-							if (matchString.length() == 0 || possibleValue.startsWith(matchString)) {
-								
-								String rString = "\"" + possibleValue + "\""; //$NON-NLS-2$//$NON-NLS-1$
-								int rOffset = contentAssistRequest.getReplacementBeginPosition();
-								int rLength = contentAssistRequest.getReplacementLength();
-								int cursorAfter = possibleValue.length() + 1;
-								String displayString = "\"" + possibleValue + "\""; //$NON-NLS-2$//$NON-NLS-1$
-								
-								CustomCompletionProposal proposal = new CustomCompletionProposal(rString, rOffset, rLength, cursorAfter, image, displayString, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
-								contentAssistRequest.addProposal(proposal);
-							}
-						}
-					}
-				}
-				else if ((attrDecl.getUsage() == CMAttributeDeclaration.FIXED || attrDecl.getAttrType().getImpliedValueKind() == CMDataType.IMPLIED_VALUE_FIXED) && attrDecl.getAttrType().getImpliedValue() != null) {
-					// FIXED values
-					String value = attrDecl.getAttrType().getImpliedValue();
-					if (value != null && value.length() > 0) {
-						String rValue = "\"" + value + "\"";//$NON-NLS-2$//$NON-NLS-1$
-						CustomCompletionProposal proposal = new CustomCompletionProposal(rValue, 
-									contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), rValue.length() + 1, image, rValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
-						contentAssistRequest.addProposal(proposal);
-						if (currentValue.length() > 0 && !value.equals(currentValue)) {
-							rValue = "\"" + currentValue + "\""; //$NON-NLS-2$//$NON-NLS-1$
-							proposal = new CustomCompletionProposal(rValue,
-										contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), rValue.length() + 1, image, rValue, null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
-							contentAssistRequest.addProposal(proposal);
-						}
-					}
-				}
-			}
-			else {
-				// unknown attribute, so supply nice empty values
-				proposedInfo = getAdditionalInfo(null, elementDecl);
-				CustomCompletionProposal proposal = null;
-				if (currentValue != null && currentValue.length() > 0) {
-					String rValue = "\"" + currentValue + "\""; //$NON-NLS-2$//$NON-NLS-1$
-					proposal = new CustomCompletionProposal(rValue,
-								contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), 1, image, rValue, //$NON-NLS-2$//$NON-NLS-1$
-								null, proposedInfo, XMLRelevanceConstants.R_XML_ATTRIBUTE_VALUE);
-					contentAssistRequest.addProposal(proposal);
-				}
-			}
-		}
-		else
-			setErrorMessage(UNKNOWN_CONTEXT);
-	}
-
-	protected void addCommentProposal(ContentAssistRequest contentAssistRequest) {
-		contentAssistRequest.addProposal(new CustomCompletionProposal("<!--  -->", //$NON-NLS-1$
-					contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), 5, XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_COMMENT), NLS.bind(XMLUIMessages.Comment__, (new Object[]{" <!--  -->"})), //$NON-NLS-1$
-					null, null, XMLRelevanceConstants.R_COMMENT));
-	}
-
-	/**
-	 * Add all of the element declarations int the CMContent object into one
-	 * big list.
-	 */
-	protected void addContent(List contentList, CMContent content) {
-		if (content == null)
-			return;
-		if (content instanceof CMGroup) {
-			CMNodeList children = ((CMGroup) content).getChildNodes();
-			if (children == null)
-				return;
-			for (int i = 0; i < children.getLength(); i++) {
-				CMNode child = children.item(i);
-				if (child.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-					contentList.add(child);
-				}
-				else {
-					if (child.getNodeType() == CMNode.GROUP) {
-						addContent(contentList, (CMContent) child);
-					}
-					else {
-						throw new IllegalArgumentException("Unknown content child: " + child); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-		else {
-			contentList.add(content);
-		}
-	}
-
-	protected void addDocTypeProposal(ContentAssistRequest contentAssistRequest) {
-		// if a DocumentElement exists, use that for the root Element name
-		String rootname = "unspecified"; //$NON-NLS-1$
-		if (contentAssistRequest.getNode().getOwnerDocument().getDocumentElement() != null)
-			rootname = contentAssistRequest.getNode().getOwnerDocument().getDocumentElement().getNodeName();
-
-		String proposedText = "<!DOCTYPE " + rootname + " PUBLIC \"//UNKNOWN/\" \"unknown.dtd\">"; //$NON-NLS-1$ //$NON-NLS-2$
-		ICompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), 10, XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_DOCTYPE), "<!DOCTYPE ... >", //$NON-NLS-1$
-					null, null, XMLRelevanceConstants.R_DOCTYPE);
-		// TODO provide special documentation on doc type
-		contentAssistRequest.addProposal(proposal);
-	}
-
-	/**
-	 * Add the proposals for a completely empty document
-	 */
-	protected void addEmptyDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		// nothing
-	}
-
-	/**
-	 * Add the proposals for the name in an end tag
-	 */
-	protected void addEndTagNameProposals(ContentAssistRequest contentAssistRequest) {
-
-		if (contentAssistRequest.getStartOffset() + contentAssistRequest.getRegion().getTextLength() < contentAssistRequest.getReplacementBeginPosition()) {
-			CustomCompletionProposal proposal = new CustomCompletionProposal(">", //$NON-NLS-1$
-						contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), 1, XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC), NLS.bind(XMLUIMessages.Close_with__, (new Object[]{" '>'"})), //$NON-NLS-1$
-						null, null, XMLRelevanceConstants.R_END_TAG_NAME);
-			contentAssistRequest.addProposal(proposal);
-		}
-		else {
-			IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-			ModelQuery modelQuery = ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-			Node aNode = contentAssistRequest.getNode();
-			String matchString = contentAssistRequest.getMatchString();
-			if (matchString.startsWith("</")) //$NON-NLS-1$
-				matchString = matchString.substring(2);
-			while (aNode != null) {
-				if (aNode.getNodeType() == Node.ELEMENT_NODE) {
-					if (aNode.getNodeName().startsWith(matchString)) {
-						IDOMNode aXMLNode = (IDOMNode) aNode;
-						CMElementDeclaration ed = modelQuery.getCMElementDeclaration((Element) aNode);
-						if ((aXMLNode.getEndStructuredDocumentRegion() == null) && (ed == null || (ed.getContentType() != CMElementDeclaration.EMPTY))) {
-							String proposedText = aNode.getNodeName();
-							String proposedInfo = (ed != null) ? getAdditionalInfo(null, ed) : null;
-							if (node.getNodeType() == Node.TEXT_NODE && !contentAssistRequest.getDocumentRegion().isEnded())
-								proposedText += ">"; //$NON-NLS-1$
-							CustomCompletionProposal proposal = null;
-							// double check to see if the region acted upon is
-							// a tag name; replace it if so
-							Image image = CMImageUtil.getImage(ed);
-							if (image == null) {
-								image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
-							}
-							if (contentAssistRequest.getRegion().getType() == DOMRegionContext.XML_TAG_NAME) {
-								proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getStartOffset(), contentAssistRequest.getRegion().getTextLength(), proposedText.length(), image, proposedText, null, proposedInfo, XMLRelevanceConstants.R_END_TAG_NAME);
-							}
-							else {
-								proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), proposedText.length(), image, NLS.bind(XMLUIMessages.Close_with__, (new Object[]{"'" + proposedText + "'"})), //$NON-NLS-1$ //$NON-NLS-2$
-											null, proposedInfo, XMLRelevanceConstants.R_END_TAG_NAME);
-							}
-							contentAssistRequest.addProposal(proposal);
-						}
-					}
-				}
-				aNode = aNode.getParentNode();
-			}
-		}
-	}
-
-	/**
-	 * Prompt for end tags to a non-empty Node that hasn't ended Handles these
-	 * cases: <br>
-	 * <tagOpen>| <br>
-	 * <tagOpen>< |<br>
-	 * <tagOpen></ |
-	 * 
-	 * @param contentAssistRequest
-	 */
-	protected void addEndTagProposals(ContentAssistRequest contentAssistRequest) {
-		IDOMNode node = (IDOMNode) contentAssistRequest.getParent();
-
-		if (isCommentNode(node)) {
-			// loop and find non comment node parent
-			while (node != null && isCommentNode(node)) {
-				node = (IDOMNode) node.getParentNode();
-			}
-		}
-		
-		// node is already closed
-		if(node.isClosed()) {
-			// loop and find non comment unclose node parent
-			while (node != null && node.isClosed()) {
-				node = (IDOMNode) node.getParentNode();
-			}
-		}
-		// there were no unclosed tags
-		if(node == null)
-			return;
-		
-		// data to create a CustomCompletionProposal
-		String replaceText = node.getNodeName() + ">"; //$NON-NLS-1$
-		int replaceBegin = contentAssistRequest.getReplacementBeginPosition();
-		int replaceLength = contentAssistRequest.getReplacementLength();
-		int cursorOffset = node.getNodeName().length() + 1;
-		String displayString = ""; //$NON-NLS-1$
-		String proposedInfo = ""; //$NON-NLS-1$
-		Image image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
-
-		setErrorMessage(null);
-		boolean addProposal = false;
-
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			// ////////////////////////////////////////////////////////////////////////////////////
-			IStructuredDocument sDoc = (IStructuredDocument) fTextViewer.getDocument();
-			IStructuredDocumentRegion xmlEndTagOpen = sDoc.getRegionAtCharacterOffset(contentAssistRequest.getReplacementBeginPosition());
-			// skip backward to "<", "</", or the (unclosed) start tag, null
-			// if not found
-			String type = ""; //$NON-NLS-1$
-			while (xmlEndTagOpen != null && (type = xmlEndTagOpen.getType()) != DOMRegionContext.XML_END_TAG_OPEN && type != DOMRegionContext.XML_TAG_CLOSE && !needsEndTag(xmlEndTagOpen) && type != DOMRegionContext.XML_TAG_OPEN) {
-				xmlEndTagOpen = xmlEndTagOpen.getPrevious();
-			}
-
-			if (xmlEndTagOpen == null)
-				return;
-
-			node = (IDOMNode) node.getModel().getIndexedRegion(xmlEndTagOpen.getStartOffset());
-			node = (IDOMNode) node.getParentNode();
-			
-			if (isStartTag(xmlEndTagOpen)) {
-				// this is the case for a start tag w/out end tag
-				// eg:
-				// <p>
-				// <% String test = "test"; %>
-				// |
-				if (needsEndTag(xmlEndTagOpen)) {
-					String tagName = getTagName(xmlEndTagOpen);
-					xmlEndTagOpen.getTextEndOffset();
-					replaceLength = 0;
-					replaceText = "</" + tagName + ">"; //$NON-NLS-1$ //$NON-NLS-2$ $NON-NLS-2$
-					// replaceText = "</" + node.getNodeName() + ">";
-					// //$NON-NLS-1$ $NON-NLS-2$
-					cursorOffset = tagName.length() + 3;
-					displayString = NLS.bind(XMLUIMessages.End_with__, (new Object[]{tagName}));
-					addProposal = true;
-				}
-			}
-			else if (type == DOMRegionContext.XML_END_TAG_OPEN) {
-				// this is the case for: <tag> </ |
-				// possibly <tag> </ |<anotherTag>
-				// should only be replacing white space...
-				replaceLength = (replaceBegin > xmlEndTagOpen.getTextEndOffset()) ? replaceBegin - xmlEndTagOpen.getTextEndOffset() : 0;
-				replaceText = node.getNodeName() + ">"; //$NON-NLS-1$
-				cursorOffset = replaceText.length();
-				replaceBegin = xmlEndTagOpen.getTextEndOffset();
-				displayString = NLS.bind(XMLUIMessages.End_with_, (new Object[]{node.getNodeName()}));
-				addProposal = true;
-			}
-			else if (type == DOMRegionContext.XML_TAG_OPEN) {
-				// this is the case for: <tag> < |
-				replaceText = "/" + node.getNodeName() + ">"; //$NON-NLS-1$ //$NON-NLS-2$ $NON-NLS-2$
-				cursorOffset = replaceText.length();
-				// replaceText = "/" + node.getNodeName() + ">"; //$NON-NLS-1$
-				// $NON-NLS-2$
-				// should only be replacing white space...
-				replaceLength = (replaceBegin > xmlEndTagOpen.getTextEndOffset()) ? replaceBegin - xmlEndTagOpen.getTextEndOffset() : 0;
-				replaceBegin = xmlEndTagOpen.getTextEndOffset();
-				displayString = NLS.bind(XMLUIMessages.End_with_,  (new Object[]{"/" + node.getNodeName()})); //$NON-NLS-1$
-				addProposal = true;
-			}
-		}
-		// ////////////////////////////////////////////////////////////////////////////////////
-		// sometimes the node is not null, but
-		// getNodeValue() is null, put in a null check
-		else if (node.getNodeValue() != null && node.getNodeValue().indexOf("</") != -1) { //$NON-NLS-1$
-			// the case where "</" is started, but the nodes comes in as a
-			// text node (instead of element)
-			// like this: <tag> </|
-			Node parent = node.getParentNode();
-			if (parent != null && parent.getNodeType() != Node.DOCUMENT_NODE) {
-				replaceText = parent.getNodeName() + ">"; //$NON-NLS-1$
-				cursorOffset = replaceText.length();
-				displayString = NLS.bind(XMLUIMessages.End_with__, (new Object[]{parent.getNodeName()}));
-				setErrorMessage(null);
-				addProposal = true;
-			}
-		}
-		// ////////////////////////////////////////////////////////////////////////////////////
-		else if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			setErrorMessage(UNKNOWN_CONTEXT);
-		}
-		if (addProposal == true) {
-			CustomCompletionProposal proposal = new CustomCompletionProposal(replaceText, replaceBegin, replaceLength, cursorOffset, image, displayString, null, proposedInfo, XMLRelevanceConstants.R_END_TAG);
-			contentAssistRequest.addProposal(proposal);
-		}
-	}
-
-	protected void addEntityProposals(ContentAssistRequest contentAssistRequest, int documentPosition, ITextRegion completionRegion, IDOMNode treeNode) {
-		ICompletionProposal[] eps = computeEntityReferenceProposals(documentPosition, completionRegion, treeNode);
-		for (int i = 0; eps != null && i < eps.length; i++)
-			contentAssistRequest.addProposal(eps[i]);
-	}
-
-	protected void addEntityProposals(Vector proposals, Properties map, String key, int nodeOffset, IStructuredDocumentRegion sdRegion, ITextRegion completionRegion) {
-		if (map == null)
-			return;
-		String entityName = ""; //$NON-NLS-1$
-		String entityValue = ""; //$NON-NLS-1$
-		Image entityIcon = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ENTITY_REFERENCE);
-		String replacementText = ""; //$NON-NLS-1$
-		String displayString = ""; //$NON-NLS-1$
-		Enumeration keys = map.keys();
-
-		while (keys != null && keys.hasMoreElements()) {
-			entityName = (String) keys.nextElement();
-			entityValue = map.getProperty(entityName);
-			// filter based on partial entity string...
-			if (entityName.toLowerCase().startsWith(key.toLowerCase()) || key.trim().equals("")) //$NON-NLS-1$
-			{
-				// figure out selection...if text is selected, add it to
-				// selection length
-				int selectionLength = nodeOffset;
-				if (fTextViewer != null) {
-					selectionLength += fTextViewer.getSelectedRange().y;
-				}
-				// create a new proposal for entity string...
-				replacementText = "&" + entityName + ";"; //$NON-NLS-1$ //$NON-NLS-2$ 
-				displayString = "&" + entityName + "; (" + entityValue + ")"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				ICompletionProposal cp = new CustomCompletionProposal(replacementText, sdRegion.getStartOffset(completionRegion), selectionLength, replacementText.length(), entityIcon, displayString, null, null, XMLRelevanceConstants.R_ENTITY);
-				if (cp != null) {
-					proposals.add(cp);
-				}
-			}
-		}
-	}
-
-	protected void addPCDATAProposal(String nodeName, ContentAssistRequest contentAssistRequest) {
-		CustomCompletionProposal proposal = new CustomCompletionProposal("<![CDATA[]]>", //$NON-NLS-1$
-					contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), 9, XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_CDATASECTION), "CDATA Section", //$NON-NLS-1$
-					null, null, XMLRelevanceConstants.R_CDATA);
-		contentAssistRequest.addProposal(proposal);
-
-		proposal = new CustomCompletionProposal(nodeName, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), nodeName.length(), XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TXTEXT), "#PCDATA", //$NON-NLS-1$
-					null, null, XMLRelevanceConstants.R_CDATA);
-		contentAssistRequest.addProposal(proposal);
-	}
-
-	protected void addStartDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		Node aNode = contentAssistRequest.getNode();
-		boolean xmlpiFound = false;
-		Document owningDocument = aNode.getOwnerDocument();
-		// ==> // int xmlpiNodePosition = -1;
-
-		// make sure xmlpi is root element
-		// don't want doctype proposal if XMLPI isn't first element...
-		Node first = owningDocument.getFirstChild();
-		boolean xmlpiIsFirstElement = (first != null && first.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE);
-		boolean insertDoctype = xmlpiIsFirstElement;
-
-		for (Node child = owningDocument.getFirstChild(); child != null; child = child.getNextSibling()) {
-			boolean xmlpi = (child.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE && child.getNodeName().equals("xml")); //$NON-NLS-1$
-			xmlpiFound = xmlpiFound || xmlpi;
-			if (xmlpiFound) {
-				if (child instanceof IDOMNode) {
-					// ==> // int xmlpiNodePosition =
-					// ((XMLNode)child).getEndOffset();
-				}
-				// skip white space and text
-				while ((child = child.getNextSibling()) != null && (child.getNodeType() == Node.TEXT_NODE)) {
-					// just skipping
-				}
-				// check if theres a node inbetween XMLPI and cursor position
-				if (child != null && child instanceof IDOMNode) {
-					if (contentAssistRequest.getReplacementBeginPosition() >= ((IDOMNode) child).getEndOffset() || !xmlpiIsFirstElement) {
-						insertDoctype = false;
-					}
-				}
-				break;
-			}
-		}
-
-		if (xmlpiFound && owningDocument.getDoctype() == null && isCursorAfterXMLPI(contentAssistRequest) && insertDoctype) {
-			addDocTypeProposal(contentAssistRequest);
-		}
-	}
-
-	/**
-	 * Close an unclosed start tag
-	 */
-	protected void addTagCloseProposals(ContentAssistRequest contentAssistRequest) {
-		IDOMNode node = (IDOMNode) contentAssistRequest.getParent();
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-
-			CMElementDeclaration elementDecl = getCMElementDeclaration(node);
-			String proposedInfo = (elementDecl != null) ? getAdditionalInfo(null, elementDecl) : null;
-			int contentType = (elementDecl != null) ? elementDecl.getContentType() : CMElementDeclaration.ANY;
-			// if it's XML and content doesn't HAVE to be element, add "/>"
-			// proposal.
-			boolean endWithSlashBracket = (getXML(node) && contentType != CMElementDeclaration.ELEMENT);
-
-			Image image = CMImageUtil.getImage(elementDecl);
-			if (image == null) {
-				image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
-			}
-
-			// is the start tag ended properly?
-			if (contentAssistRequest.getDocumentRegion() == node.getFirstStructuredDocumentRegion() && !(node.getFirstStructuredDocumentRegion()).isEnded()) {
-				setErrorMessage(null);
-				// Is this supposed to be an empty tag? Note that if we can't
-				// tell, we assume it's not.
-				if (elementDecl != null && elementDecl.getContentType() == CMElementDeclaration.EMPTY) {
-					// prompt with a self-closing end character if needed
-					CustomCompletionProposal proposal = new CustomCompletionProposal(getContentGenerator().getStartTagClose(node, elementDecl), contentAssistRequest.getReplacementBeginPosition(),
-					// this is one of the few times to ignore the length --
-								// always insert
-								// contentAssistRequest.getReplacementLength(),
-								0, getContentGenerator().getStartTagClose(node, elementDecl).length(), image, NLS.bind(XMLUIMessages.Close_with___, (new Object[]{getContentGenerator().getStartTagClose(node, elementDecl)})),
-								null, proposedInfo, XMLRelevanceConstants.R_CLOSE_TAG);
-					contentAssistRequest.addProposal(proposal);
-				}
-				else {
-					// prompt with a close for the start tag
-					CustomCompletionProposal proposal = new CustomCompletionProposal(">", //$NON-NLS-1$
-								contentAssistRequest.getReplacementBeginPosition(),
-								// this is one of the few times to ignore the
-								// length -- always insert
-								// contentAssistRequest.getReplacementLength(),
-								0, 1, image, NLS.bind(XMLUIMessages.Close_with__, (new Object[]{" '>'"})), //$NON-NLS-1$
-								null, proposedInfo, XMLRelevanceConstants.R_CLOSE_TAG);
-					contentAssistRequest.addProposal(proposal);
-
-					// prompt with the closer for the start tag and an end tag
-					// if one is not present
-					if (node.getEndStructuredDocumentRegion() == null) {
-						// make sure tag name is actually what it thinks it
-						// is...(eg. <%@ vs. <jsp:directive)
-						IStructuredDocumentRegion sdr = contentAssistRequest.getDocumentRegion();
-						String openingTagText = (sdr != null) ? sdr.getFullText() : ""; //$NON-NLS-1$
-						if (openingTagText != null && openingTagText.indexOf(node.getNodeName()) != -1) {
-							proposal = new CustomCompletionProposal("></" + node.getNodeName() + ">", //$NON-NLS-2$//$NON-NLS-1$
-										contentAssistRequest.getReplacementBeginPosition(),
-										// this is one of the few times to
-										// ignore the length -- always insert
-										// contentAssistRequest.getReplacementLength(),
-										0, 1, image, NLS.bind(XMLUIMessages.Close_with____, (new Object[]{node.getNodeName()})),
-										null, proposedInfo, XMLRelevanceConstants.R_CLOSE_TAG);
-							contentAssistRequest.addProposal(proposal);
-						}
-					}
-					// prompt with slash bracket "/>" incase if it's a self
-					// ending tag
-					if (endWithSlashBracket) {
-						proposal = new CustomCompletionProposal("/>", //$NON-NLS-1$
-									contentAssistRequest.getReplacementBeginPosition(),
-									// this is one of the few times to ignore
-									// the length -- always insert
-									// contentAssistRequest.getReplacementLength(),
-									0, 2, image, NLS.bind(XMLUIMessages.Close_with__, (new Object[]{" \"/>\""})), //$NON-NLS-1$
-									null, proposedInfo, XMLRelevanceConstants.R_CLOSE_TAG + 1); // +1
-						// to
-						// bring
-						// to
-						// top
-						// of
-						// list
-						contentAssistRequest.addProposal(proposal);
-					}
-				}
-			}
-			else if (contentAssistRequest.getDocumentRegion() == node.getLastStructuredDocumentRegion() && !node.getLastStructuredDocumentRegion().isEnded()) {
-				setErrorMessage(null);
-				// prompt with a closing end character for the end tag
-				CustomCompletionProposal proposal = new CustomCompletionProposal(">", //$NON-NLS-1$
-							contentAssistRequest.getReplacementBeginPosition(),
-							// this is one of the few times to ignore the
-							// length -- always insert
-							// contentAssistRequest.getReplacementLength(),
-							0, 1, image, NLS.bind(XMLUIMessages.Close_with__, (new Object[]{" '>'"})), //$NON-NLS-1$
-							null, proposedInfo, XMLRelevanceConstants.R_CLOSE_TAG);
-				contentAssistRequest.addProposal(proposal);
-			}
-		}
-		else if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			setErrorMessage(UNKNOWN_CONTEXT);
-		}
-	}
-
-	protected void addTagInsertionProposals(ContentAssistRequest contentAssistRequest, int childPosition) {
-		List cmnodes = null;
-		Node parent = contentAssistRequest.getParent();
-		String error = null;
-
-		// (nsd) This is only valid at the document element level
-		// only valid if it's XML (check added 2/17/2004)
-		if (parent != null && parent.getNodeType() == Node.DOCUMENT_NODE && ((IDOMDocument) parent).isXMLType() && !isCursorAfterXMLPI(contentAssistRequest)) {
-			return;
-		}
-		// only want proposals if cursor is after doctype...
-		if (!isCursorAfterDoctype(contentAssistRequest))
-			return;
-		
-		// fix for meta-info comment nodes.. they currently "hide" other
-		// proposals because the don't
-		// have a content model (so can't propose any children..)
-		if (parent != null && parent instanceof IDOMNode && isCommentNode((IDOMNode) parent)) {
-			// loop and find non comment node?
-			while (parent != null && isCommentNode((IDOMNode) parent)) {
-				parent = parent.getParentNode();
-			}
-		}
-
-		if (parent.getNodeType() == Node.ELEMENT_NODE) {
-			CMElementDeclaration parentDecl = getCMElementDeclaration(parent);
-			if (parentDecl != null) {
-				// XSD-specific ability - no filtering
-				CMDataType childType = parentDecl.getDataType();
-				if (childType != null) {
-					String[] childStrings = childType.getEnumeratedValues();
-					if (childStrings != null) {
-						// the content string is the sole valid child...so
-						// replace the rest
-						int begin = contentAssistRequest.getReplacementBeginPosition();
-						int length = contentAssistRequest.getReplacementLength();
-						if (parent instanceof IDOMNode) {
-							if (((IDOMNode) parent).getLastStructuredDocumentRegion() != ((IDOMNode) parent).getFirstStructuredDocumentRegion()) {
-								begin = ((IDOMNode) parent).getFirstStructuredDocumentRegion().getEndOffset();
-								length = ((IDOMNode) parent).getLastStructuredDocumentRegion().getStartOffset() - begin;
-							}
-						}
-						String proposedInfo = getAdditionalInfo(parentDecl, childType);
-						for (int i = 0; i < childStrings.length; i++) {
-							CustomCompletionProposal textProposal = new CustomCompletionProposal(childStrings[i], begin, length, childStrings[i].length(), XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ENUM), childStrings[i], null, proposedInfo, XMLRelevanceConstants.R_TAG_INSERTION);
-							contentAssistRequest.addProposal(textProposal);
-						}
-					}
-				}
-			}
-			if (parentDecl != null && parentDecl.getContentType() == CMElementDeclaration.PCDATA) {
-				addPCDATAProposal(parentDecl.getNodeName(), contentAssistRequest);
-			}
-			else {
-				// retrieve the list of all possible children within this parent context
-				cmnodes = getAvailableChildElementDeclarations((Element)parent, childPosition, ModelQueryAction.INSERT);
-                
-                // retrieve the list of the possible children within this parent context and at this index
-                List strictCMNodeSuggestions = null;
-                if (XMLUIPreferenceNames.SUGGESTION_STRATEGY_VALUE_STRICT.equals(XMLUIPlugin.getInstance().getPreferenceStore().getString(XMLUIPreferenceNames.SUGGESTION_STRATEGY))) 
-                { 
-                  strictCMNodeSuggestions = getValidChildElementDeclarations((Element)parent, childPosition, ModelQueryAction.INSERT);                
-                }
- 				Iterator nodeIterator = cmnodes.iterator();
-				if (!nodeIterator.hasNext()) {
-					if (getCMElementDeclaration(parent) != null)
-						error = NLS.bind(XMLUIMessages._Has_no_available_child, (new Object[]{parent.getNodeName()}));
-					else
-						error = NLS.bind(XMLUIMessages.Element__is_unknown, (new Object[]{parent.getNodeName()}));
-				}
-				String matchString = contentAssistRequest.getMatchString();
-				// chop off any leading <'s and whitespace from the
-				// matchstring
-				while ((matchString.length() > 0) && (Character.isWhitespace(matchString.charAt(0)) || beginsWith(matchString, "<"))) //$NON-NLS-1$
-					//$NON-NLS-1$
-					matchString = matchString.substring(1);
-				while (nodeIterator.hasNext()) {
-					Object o = nodeIterator.next();
-					if (o instanceof CMElementDeclaration) {
-						CMElementDeclaration elementDecl = (CMElementDeclaration) o;
-						// only add proposals for the child element's that
-						// begin with the matchstring
-						String tagname = getRequiredName(parent, elementDecl);
-                        boolean isStrictCMNodeSuggestion = strictCMNodeSuggestions != null ? strictCMNodeSuggestions.contains(elementDecl) : false;
-                        
-                        Image image = CMImageUtil.getImage(elementDecl);
-  
-						if (image == null) {
-                            if (strictCMNodeSuggestions != null) {
-                                image = isStrictCMNodeSuggestion ?                                 
-							            XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC_EMPHASIZED) :
-                                        XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC_DEEMPHASIZED);                                                                                        
-                            }
-                            else {
-                                image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
-                            }
-                              
-						}
-
-						//int markupAdjustment = getContentGenerator().getMinimalStartTagLength(parent, elementDecl);
-						if (beginsWith(tagname, matchString)) {
-							String proposedText = getRequiredText(parent, elementDecl);
-							
-							// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89811
-							// place cursor in first empty quotes
-							int markupAdjustment = getCursorPositionForProposedText(proposedText);
-							
-							String proposedInfo = getAdditionalInfo(parentDecl, elementDecl);
-                            int relevance = isStrictCMNodeSuggestion ? XMLRelevanceConstants.R_STRICTLY_VALID_TAG_INSERTION : XMLRelevanceConstants.R_TAG_INSERTION; 
-							CustomCompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), markupAdjustment, image, tagname, null, proposedInfo, relevance);
-							contentAssistRequest.addProposal(proposal);
-						}
-					}
-				}
-				if (contentAssistRequest.getProposals().size() == 0) {
-					if (error != null)
-						setErrorMessage(error);
-					else if (contentAssistRequest.getMatchString() != null && contentAssistRequest.getMatchString().length() > 0)
-						setErrorMessage(NLS.bind(XMLUIMessages.No_known_child_tag, (new Object[]{parent.getNodeName(), contentAssistRequest.getMatchString()})));
-					//$NON-NLS-1$ = "No known child tag names of <{0}> begin with \"{1}\"."
-					else
-						setErrorMessage(NLS.bind(XMLUIMessages.__Has_no_known_child, (new Object[]{parent.getNodeName()})));
-				}
-			}
-		}
-		else if (parent.getNodeType() == Node.DOCUMENT_NODE) {
-			// Can only prompt with elements if the cursor position is past
-			// the XML processing
-			// instruction and DOCTYPE declaration
-			boolean xmlpiFound = false;
-			boolean doctypeFound = false;
-			int minimumOffset = -1;
-
-			for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-
-				boolean xmlpi = (child.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE && child.getNodeName().equals("xml")); //$NON-NLS-1$
-				boolean doctype = child.getNodeType() == Node.DOCUMENT_TYPE_NODE;
-				if (xmlpi || doctype && minimumOffset < 0)
-					minimumOffset = ((IDOMNode) child).getFirstStructuredDocumentRegion().getStartOffset() + ((IDOMNode) child).getFirstStructuredDocumentRegion().getTextLength();
-				xmlpiFound = xmlpiFound || xmlpi;
-				doctypeFound = doctypeFound || doctype;
-			}
-
-			if (contentAssistRequest.getReplacementBeginPosition() >= minimumOffset) {
-				List childDecls = getAvailableRootChildren((Document) parent, childPosition);
-				for (int i = 0; i < childDecls.size(); i++) {
-					CMElementDeclaration ed = (CMElementDeclaration) childDecls.get(i);
-					if (ed != null) {
-						Image image = CMImageUtil.getImage(ed);
-						if (image == null) {
-							image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
-						}
-						String proposedText = getRequiredText(parent, ed);
-						String tagname = getRequiredName(parent, ed);
-						// account for the &lt; and &gt;
-						int markupAdjustment = getContentGenerator().getMinimalStartTagLength(parent, ed);
-						String proposedInfo = getAdditionalInfo(null, ed);
-						CustomCompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), markupAdjustment, image, tagname, null, proposedInfo, XMLRelevanceConstants.R_TAG_INSERTION);
-						contentAssistRequest.addProposal(proposal);
-					}
-				}
-			}
-		}
-	}
-
-	protected void addTagNameProposals(ContentAssistRequest contentAssistRequest, int childPosition) {
-		List cmnodes = null;
-		Node parent = contentAssistRequest.getParent();
-		IDOMNode node = (IDOMNode) contentAssistRequest.getNode();
-		String error = null;
-		String matchString = contentAssistRequest.getMatchString();
-		if (parent.getNodeType() == Node.ELEMENT_NODE) {
-			// retrieve the list of children
-			//validActions = getAvailableChildrenAtIndex((Element) parent, childPosition);
-			cmnodes = getAvailableChildElementDeclarations((Element)parent, childPosition, ModelQueryAction.INSERT);
-			Iterator nodeIterator = cmnodes.iterator();
-			// chop off any leading <'s and whitespace from the matchstring
-			while ((matchString.length() > 0) && (Character.isWhitespace(matchString.charAt(0)) || beginsWith(matchString, "<"))) //$NON-NLS-1$
-				//$NON-NLS-1$
-				matchString = matchString.substring(1);
-			if (!nodeIterator.hasNext())
-				error = NLS.bind(XMLUIMessages.__Has_no_known_child, (new Object[]{parent.getNodeName()}));
-			while (nodeIterator.hasNext()) {
-				CMNode elementDecl = (CMNode) nodeIterator.next();
-				if (elementDecl != null) {
-					// only add proposals for the child element's that begin
-					// with the matchstring
-					String proposedText = null;
-					int cursorAdjustment = 0;
-
-					// do a check to see if partial attributes of partial tag
-					// names are in list
-					if ((node != null && node.getAttributes() != null && node.getAttributes().getLength() > 0 && attributeInList(node, parent, elementDecl)) || ((node.getNodeType() != Node.TEXT_NODE) && node.getFirstStructuredDocumentRegion().isEnded())) {
-
-						proposedText = getRequiredName(parent, elementDecl);
-						cursorAdjustment = proposedText.length();
-					}
-					else {
-						proposedText = getRequiredName(parent, elementDecl);
-						cursorAdjustment = proposedText.length();
-						if (elementDecl instanceof CMElementDeclaration) {
-							CMElementDeclaration ed = (CMElementDeclaration) elementDecl;
-							if (ed.getContentType() == CMElementDeclaration.EMPTY) {
-								proposedText += getContentGenerator().getStartTagClose(parent, ed);
-								cursorAdjustment = proposedText.length();
-							}
-							else {
-								// https://bugs.eclipse.org/bugs/show_bug.cgi?id=89811
-								StringBuffer sb = new StringBuffer();
-								getContentGenerator().generateTag(parent, ed, sb);
-								// since it's a name proposal, assume '<' is already there
-								// only return the rest of the tag
-								proposedText = sb.toString().substring(1);
-								cursorAdjustment = getCursorPositionForProposedText(proposedText);
-								
-								//cursorAdjustment = proposedText.length() + 1;
-								//proposedText += "></" + getRequiredName(parent, elementDecl) + ">"; //$NON-NLS-2$//$NON-NLS-1$
-							}
-						}
-					}
-					if (beginsWith(proposedText, matchString)) {
-						Image image = CMImageUtil.getImage(elementDecl);
-						if (image == null) {
-							image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
-						}
-						String proposedInfo = getAdditionalInfo(getCMElementDeclaration(parent), elementDecl);
-						CustomCompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), cursorAdjustment, image, getRequiredName(parent, elementDecl), null, proposedInfo, XMLRelevanceConstants.R_TAG_NAME);
-						contentAssistRequest.addProposal(proposal);
-					}
-				}
-			}
-			if (contentAssistRequest.getProposals().size() == 0) {
-				if (error != null)
-					setErrorMessage(error);
-				else if (contentAssistRequest.getMatchString() != null && contentAssistRequest.getMatchString().length() > 0)
-					setErrorMessage(NLS.bind(XMLUIMessages.No_known_child_tag_names, (new Object[]{parent.getNodeName(), contentAssistRequest.getMatchString()})));
-				//$NON-NLS-1$ = "No known child tag names of <{0}> begin with \"{1}\""
-				else
-					setErrorMessage(NLS.bind(XMLUIMessages.__Has_no_known_child, (new Object[]{parent.getNodeName()})));
-			}
-		}
-		else if (parent.getNodeType() == Node.DOCUMENT_NODE) {
-			List childElements = getAvailableRootChildren((Document) parent, childPosition);
-			for (int i = 0; i < childElements.size(); i++) {
-				CMNode ed = (CMNode) childElements.get(i);
-				if (ed == null)
-					continue;
-				String proposedText = null;
-				int cursorAdjustment = 0;
-				if(ed instanceof CMElementDeclaration) {
-					// proposedText = getRequiredName(parent, ed);
-					StringBuffer sb = new StringBuffer();
-					getContentGenerator().generateTag(parent, (CMElementDeclaration)ed, sb);
-					// tag starts w/ '<', but we want to compare to name
-					proposedText = sb.toString().substring(1);
-					
-					if (!beginsWith(proposedText, matchString))
-						continue;
-					
-					cursorAdjustment = getCursorPositionForProposedText(proposedText);
-				
-					if (ed instanceof CMElementDeclaration) {
-						CMElementDeclaration elementDecl = (CMElementDeclaration) ed;
-						if (elementDecl.getContentType() == CMElementDeclaration.EMPTY) {
-							proposedText += getContentGenerator().getStartTagClose(parent, elementDecl);
-							cursorAdjustment = proposedText.length();
-						}
-					}
-				
-					String proposedInfo = getAdditionalInfo(null, ed);
-					Image image = CMImageUtil.getImage(ed);
-					if (image == null) {
-						image = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC);
-					}
-					CustomCompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), cursorAdjustment, image, getRequiredName(parent, ed), null, proposedInfo, XMLRelevanceConstants.R_TAG_NAME);
-					contentAssistRequest.addProposal(proposal);
-				}
-			}
-		}
-	}
-	/**
-	 * this is the position the cursor should be in after the proposal is applied
-	 * @param proposedText
-	 * @return  the position the cursor should be in after the proposal is applied
-	 */
-	private int getCursorPositionForProposedText(String proposedText) {
-		int cursorAdjustment;
-		cursorAdjustment = proposedText.indexOf("\"\"") + 1; //$NON-NLS-1$
-		// otherwise, after the first tag
-		if(cursorAdjustment==0)
-			cursorAdjustment = proposedText.indexOf('>') + 1;
-		if(cursorAdjustment==0)
-			cursorAdjustment = proposedText.length() + 1;
-		
-		return cursorAdjustment;
-	}
-
-	/**
-	 * @deprecated XML proposal is added via xml declaration template instead
-	 */
-	protected void addXMLProposal(ContentAssistRequest contentAssistRequest) {
-		String proposedText = "<?xml version=\"1.0\" encoding=\"" + ContentTypeEncodingPreferences.getUserPreferredCharsetName(ContentTypeIdForXML.ContentTypeID_XML) + "\"?>"; //$NON-NLS-2$//$NON-NLS-1$
-		ICompletionProposal proposal = new CustomCompletionProposal(proposedText, contentAssistRequest.getReplacementBeginPosition(), contentAssistRequest.getReplacementLength(), proposedText.length(), XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_PROCESSINGINSTRUCTION), proposedText, null, null, XMLRelevanceConstants.R_XML_DECLARATION);
-		// TODO add special XML proposal info
-		contentAssistRequest.addProposal(proposal);
-	}
-
-	/**
-	 * This method determines if any of the attributes in the proposed XMLNode
-	 * node, are possible values of attributes from possible Elements at this
-	 * point in the document according to the Content Model.
-	 * 
-	 * @param node
-	 *            the element with attributes that you would like to test if
-	 *            are possible for possible Elements at this point
-	 * @param cmnode
-	 *            possible element at this point in the document (depending on
-	 *            what 'node' is) true if any attributes of 'node' match any
-	 *            possible attributes from 'cmnodes' list.
-	 */
-	protected boolean attributeInList(IDOMNode node, Node parent, CMNode cmnode) {
-		if (node == null || parent == null || cmnode == null)
-			return false;
-		String elementMatchString = node.getNodeName();
-		String cmnodeName = getRequiredName(parent, cmnode);// cmnode.getNodeName();
-		if (node instanceof Element) {
-			NamedNodeMap map = ((Element) node).getAttributes();
-			String attrMatchString = ""; //$NON-NLS-1$
-			CMNamedNodeMap cmattrMap = null;
-			// iterate attribute possibilities for partially started node
-			for (int i = 0; map != null && i < map.getLength(); i++) {
-				attrMatchString = map.item(i).getNodeName();
-				// filter on whatever user typed for element name already
-				if (beginsWith(cmnodeName, elementMatchString)) {
-					if (cmnode.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-						cmattrMap = ((CMElementDeclaration) cmnode).getAttributes();
-						// iterate possible attributes from a cmnode in
-						// proposal list
-						for (int k = 0; cmattrMap != null && k < cmattrMap.getLength(); k++) {
-							// check if name matches
-							if (cmattrMap.item(k).getNodeName().equals(attrMatchString)) {
-								return true;
-							}
-						}
-					}
-				}
-			}
-		}
-		return false;
-	}
-
-	protected boolean beginsWith(String aString, String prefix) {
-		if (aString == null || prefix == null)
-			return true;
-		// (pa) matching independent of case to be consistant with Java
-		// editor CA
-		return aString.toLowerCase().startsWith(prefix.toLowerCase());
-	}
-
-	protected ContentAssistRequest computeAttributeProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		ContentAssistRequest contentAssistRequest = null;
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-		if (documentPosition < sdRegion.getStartOffset(completionRegion)) {
-			// setup to insert new attributes
-			contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, completionRegion, documentPosition, 0, matchString);
-		}
-		else {
-			// Setup to replace an existing attribute name
-			contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), completionRegion.getTextLength(), matchString);
-		}
-		addAttributeNameProposals(contentAssistRequest);
-		contentAssistRequest.setReplacementBeginPosition(documentPosition);
-		contentAssistRequest.setReplacementLength(0);
-		if (node.getFirstStructuredDocumentRegion() != null && (!node.getFirstStructuredDocumentRegion().isEnded())) {
-			addTagCloseProposals(contentAssistRequest);
-		}
-		return contentAssistRequest;
-	}
-
-	protected ContentAssistRequest computeAttributeValueProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		ContentAssistRequest contentAssistRequest = null;
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-		if (documentPosition > sdRegion.getStartOffset(completionRegion) + completionRegion.getTextLength() && sdRegion.getStartOffset(completionRegion) + completionRegion.getTextLength() != sdRegion.getStartOffset(completionRegion) + completionRegion.getLength()) {
-			// setup to add a new attribute at the documentPosition
-			IDOMNode actualNode = (IDOMNode) node.getModel().getIndexedRegion(sdRegion.getStartOffset(completionRegion));
-			contentAssistRequest = newContentAssistRequest(actualNode, actualNode, sdRegion, completionRegion, documentPosition, 0, matchString);
-			addAttributeNameProposals(contentAssistRequest);
-			if (actualNode.getFirstStructuredDocumentRegion() != null && !actualNode.getFirstStructuredDocumentRegion().isEnded()) {
-				addTagCloseProposals(contentAssistRequest);
-			}
-		}
-		else {
-			// setup to replace the existing value
-			if (!nodeAtOffset.getFirstStructuredDocumentRegion().isEnded() && documentPosition < sdRegion.getStartOffset(completionRegion)) {
-				// if the IStructuredDocumentRegion isn't closed and the
-				// cursor is in front of the value, add
-				contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, completionRegion, documentPosition, 0, matchString);
-				addAttributeNameProposals(contentAssistRequest);
-			}
-			else {
-				contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), completionRegion.getTextLength(), matchString);
-				addAttributeValueProposals(contentAssistRequest);
-			}
-		}
-		return contentAssistRequest;
-	}
-
-	protected ContentAssistRequest computeCompletionProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
-		ContentAssistRequest contentAssistRequest = null;
-		String regionType = completionRegion.getType();
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-
-		// Handle the most common and best supported cases
-		if (xmlnode.getNodeType() == Node.ELEMENT_NODE || xmlnode.getNodeType() == Node.DOCUMENT_NODE) {
-			if (regionType == DOMRegionContext.XML_TAG_OPEN) {
-				contentAssistRequest = computeTagOpenProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_NAME) {
-				contentAssistRequest = computeTagNameProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				contentAssistRequest = computeAttributeProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				contentAssistRequest = computeEqualsProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && documentPosition == sdRegion.getTextEndOffset() && (sdRegion.getText(completionRegion).endsWith("\"") || sdRegion.getText(completionRegion).endsWith("\'"))) //$NON-NLS-1$ //$NON-NLS-2$
-			{
-				// this is for when the cursor is at the end of the closing
-				// quote for an attribute..
-				IDOMNode actualNode = (IDOMNode) xmlnode.getModel().getIndexedRegion(sdRegion.getStartOffset(completionRegion));
-				contentAssistRequest = newContentAssistRequest(actualNode, actualNode, sdRegion, completionRegion, documentPosition, 0, matchString);
-				addTagCloseProposals(contentAssistRequest);
-			}
-			else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				contentAssistRequest = computeAttributeValueProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			}
-			else if ((regionType == DOMRegionContext.XML_TAG_CLOSE) || (regionType == DOMRegionContext.XML_EMPTY_TAG_CLOSE) || (regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_DIRECTIVE_CLOSE))) {
-				contentAssistRequest = computeTagCloseProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			}
-			else if (regionType == DOMRegionContext.XML_END_TAG_OPEN) {
-				contentAssistRequest = computeEndTagOpenProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			}
-			else if (regionType == DOMRegionContext.XML_CONTENT || regionType == DOMRegionContext.XML_CHAR_REFERENCE || regionType == DOMRegionContext.XML_ENTITY_REFERENCE || regionType == DOMRegionContext.XML_PE_REFERENCE) {
-				contentAssistRequest = computeContentProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-			}
-
-			// These ITextRegion types begin DOM Elements as well and although
-			// internally harder to assist,
-			// text insertions directly before them can be made
-			else if (documentPosition == sdRegion.getStartOffset(completionRegion) && (regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_COMMENT_OPEN) || regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_DECLARATION_OPEN) || regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_DIRECTIVE_OPEN) || regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_EXPRESSION_OPEN) || regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_SCRIPTLET_OPEN) || regionType == DOMRegionContext.XML_DECLARATION_OPEN || regionType == DOMRegionContext.XML_PI_OPEN || regionType == DOMRegionContext.XML_COMMENT_OPEN || regionType == DOMRegionContext.XML_CDATA_OPEN)) {
-				contentAssistRequest = newContentAssistRequest(treeNode, xmlnode.getParentNode(), sdRegion, completionRegion, documentPosition, 0, matchString);
-				addTagInsertionProposals(contentAssistRequest, getElementPositionForModelQuery(treeNode));
-				addStartDocumentProposals(contentAssistRequest);
-			}
-		}
-		// Not a Document or Element? (odd cases go here for now)
-		else if (isCloseRegion(completionRegion)) {
-			contentAssistRequest = newContentAssistRequest(treeNode, xmlnode.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion) + completionRegion.getLength(), 0, matchString);
-			addStartDocumentProposals(contentAssistRequest);
-			if (documentPosition >= sdRegion.getTextEndOffset(completionRegion))
-				addTagInsertionProposals(contentAssistRequest, getElementPositionForModelQuery(treeNode) + 1);
-		}
-		else if (documentPosition == sdRegion.getStartOffset(completionRegion) && (regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_COMMENT_OPEN) || regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_DECLARATION_OPEN) || regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_DIRECTIVE_OPEN) || regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_EXPRESSION_OPEN) || regionType.equals(DOMJSPRegionContextsPrivateCopy.JSP_SCRIPTLET_OPEN) || regionType == DOMRegionContext.XML_DECLARATION_OPEN || regionType == DOMRegionContext.XML_PI_OPEN || regionType == DOMRegionContext.XML_COMMENT_OPEN || regionType == DOMRegionContext.XML_CDATA_OPEN)) {
-			contentAssistRequest = newContentAssistRequest(treeNode, xmlnode.getParentNode(), sdRegion, completionRegion, documentPosition, 0, matchString);
-			addTagInsertionProposals(contentAssistRequest, getElementPositionForModelQuery(treeNode));
-			addStartDocumentProposals(contentAssistRequest);
-		}
-		return contentAssistRequest;
-	}
-
-	/**
-	 * CONTENT ASSIST STARTS HERE
-	 * 
-	 * Return a list of proposed code completions based on the specified
-	 * location within the document that corresponds to the current cursor
-	 * position within the text-editor control.
-	 * 
-	 * @param textViewer
-	 * @param documentPosition -
-	 *            the cursor location within the document
-	 * 
-	 * an array of ICompletionProposals
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer textViewer, int documentPosition) {
-
-		setErrorMessage(null);
-
-		fTextViewer = textViewer;
-
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt((StructuredTextViewer) textViewer, documentPosition);
-
-		Node node = (Node) treeNode;
-		while (node != null && node.getNodeType() == Node.TEXT_NODE && node.getParentNode() != null)
-			node = node.getParentNode();
-		IDOMNode xmlnode = (IDOMNode) node;
-
-		ContentAssistRequest contentAssistRequest = null;
-
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-		ITextRegion completionRegion = getCompletionRegion(documentPosition, node);
-
-		String matchString = getMatchString(sdRegion, completionRegion, documentPosition);
-
-		// Handle empty Documents
-		if (completionRegion == null) {
-			if (((treeNode == null) || ((Node) treeNode).getNodeType() == Node.DOCUMENT_NODE) && completionRegion == null && (xmlnode == null || xmlnode.getChildNodes() == null || xmlnode.getChildNodes().getLength() == 0)) {
-				IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(textViewer.getDocument());
-				try {
-					if (sModel != null) {
-						IDOMDocument docNode = ((IDOMModel) sModel).getDocument();
-						contentAssistRequest = newContentAssistRequest(docNode, docNode, sdRegion, completionRegion, documentPosition, 0, null);
-						addEmptyDocumentProposals(contentAssistRequest);
-					}
-				}
-				finally {
-					if (sModel != null)
-						sModel.releaseFromRead();
-				}
-				if (contentAssistRequest == null) {
-					Logger.logException(new IllegalStateException("problem getting model")); //$NON-NLS-1$
-					return new ICompletionProposal[0];
-				}
-				return contentAssistRequest.getCompletionProposals();
-			}
-			// MASSIVE ERROR CONDITION
-			Logger.logException(new IllegalStateException("completion region was null")); //$NON-NLS-1$
-			setErrorMessage(INTERNALERROR);
-			contentAssistRequest = newContentAssistRequest((Node) treeNode, node.getParentNode(), sdRegion, completionRegion, documentPosition, 0, ""); //$NON-NLS-1$
-			return contentAssistRequest.getCompletionProposals();
-		}
-
-
-		// catch documents where no region can be determined
-		if (xmlnode.getNodeType() == Node.DOCUMENT_NODE && (completionRegion == null || xmlnode.getChildNodes() == null || xmlnode.getChildNodes().getLength() == 0)) {
-			contentAssistRequest = computeStartDocumentProposals(documentPosition, matchString, completionRegion, (IDOMNode) treeNode, xmlnode);
-			return contentAssistRequest.getCompletionProposals();
-		}
-
-		// compute normal proposals
-		contentAssistRequest = computeCompletionProposals(documentPosition, matchString, completionRegion, (IDOMNode) treeNode, xmlnode);
-		if (contentAssistRequest == null) {
-			contentAssistRequest = newContentAssistRequest((Node) treeNode, node.getParentNode(), sdRegion, completionRegion, documentPosition, 0, ""); //$NON-NLS-1$
-			if (Debug.displayWarnings)
-				System.out.println(UNKNOWN_CONTEXT + " " + completionRegion.getType() + "@" + documentPosition); //$NON-NLS-2$//$NON-NLS-1$
-			setErrorMessage(UNKNOWN_CONTEXT);
-		}
-
-		if (contentAssistRequest.getProposals().size() == 0)
-			setErrorMessage(UNKNOWN_CONTEXT);
-
-		return contentAssistRequest.getCompletionProposals();
-	}
-
-	protected ContentAssistRequest computeContentProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		ContentAssistRequest contentAssistRequest = null;
-
-		// setup to add children at the content node's position
-		contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, getStructuredDocumentRegion(documentPosition), completionRegion, documentPosition, 0, matchString);
-		if (node != null && node.getNodeType() == Node.DOCUMENT_NODE && ((Document) node).getDoctype() == null)
-			addStartDocumentProposals(contentAssistRequest);
-		addTagInsertionProposals(contentAssistRequest, getElementPositionForModelQuery(nodeAtOffset));
-		if (node.getNodeType() != Node.DOCUMENT_NODE) {
-			addEndTagProposals(contentAssistRequest);
-		}
-		// entities?
-		addEntityProposals(contentAssistRequest, documentPosition, completionRegion, node);
-		// addEntityProposals(contentAssistRequest);
-		return contentAssistRequest;
-	}
-
-	/**
-	 * Returns information about possible contexts based on the specified
-	 * location within the document that corresponds to the current cursor
-	 * position within the text viewer.
-	 * 
-	 * @param viewer
-	 *            the viewer whose document is used to compute the possible
-	 *            contexts an array of context information objects or
-	 *            <code>null</code> if no context could be found
-	 */
-	public IContextInformation[] computeContextInformation(ITextViewer viewer, int documentOffset) {
-		if (fAttributeInfoProvider == null)
-			fAttributeInfoProvider = new AttributeContextInformationProvider((IStructuredDocument) viewer.getDocument(), (AttributeContextInformationPresenter) getContextInformationValidator());
-		return fAttributeInfoProvider.getAttributeInformation(documentOffset);
-	}
-
-	protected ContentAssistRequest computeEndTagOpenProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		ContentAssistRequest contentAssistRequest = null;
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-		int completionRegionStart = sdRegion.getStartOffset(completionRegion);
-		int completionRegionLength = completionRegion.getLength();
-		IStructuredDocumentRegion sdRegionAtCompletionOffset = node.getStructuredDocument().getRegionAtCharacterOffset(completionRegionStart + completionRegionLength);
-		ITextRegion regionAtEndOfCompletion = sdRegionAtCompletionOffset.getRegionAtCharacterOffset(completionRegionStart + completionRegionLength);
-
-		if (documentPosition != completionRegionStart && regionAtEndOfCompletion != null && regionAtEndOfCompletion.getType() == DOMRegionContext.XML_TAG_NAME) {
-			ITextRegion nameRegion = regionAtEndOfCompletion;
-			contentAssistRequest = newContentAssistRequest(nodeAtOffset, nodeAtOffset.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(nameRegion), nameRegion.getTextLength(), matchString);
-		}
-		else {
-			if (nodeAtOffset.getFirstStructuredDocumentRegion() == sdRegion) {
-				// abnormal case, this unmatched end tag will be a sibling
-				contentAssistRequest = newContentAssistRequest(nodeAtOffset, nodeAtOffset.getParentNode(), sdRegion, completionRegion, documentPosition, 0, matchString);
-			}
-			else {
-				// normal case, this end tag is the parent
-				contentAssistRequest = newContentAssistRequest(nodeAtOffset, nodeAtOffset, sdRegion, completionRegion, documentPosition, 0, matchString);
-			}
-		}
-		// if (documentPosition >= sdRegion.getStartOffset(completionRegion) +
-		// completionRegion.getTextLength())
-		addEndTagProposals(contentAssistRequest);
-		// else
-		if (completionRegionStart == documentPosition) {
-			// positioned at start of end tag
-			addTagInsertionProposals(contentAssistRequest, node.getChildNodes().getLength());
-		}
-		return contentAssistRequest;
-	}
-
-	/**
-	 * return all possible EntityReferenceProposals (according to current
-	 * position in doc)
-	 */
-	protected ICompletionProposal[] computeEntityReferenceProposals(int documentPosition, ITextRegion completionRegion, IDOMNode treeNode) {
-		// only handle XML content for now
-		Vector proposals = new Vector(); // ICompletionProposals
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-		if (completionRegion != null && completionRegion.getType() == DOMRegionContext.XML_CONTENT) {
-			int nodeOffset = documentPosition - sdRegion.getStartOffset(completionRegion);
-			String regionText = sdRegion.getFullText(completionRegion);
-
-			// if directly to the right of a &, region will be null, need to
-			// move to
-			// the previous region...there might be a better way to do this
-			if (regionText != null && regionText.trim().equals("") && documentPosition > 0) { //$NON-NLS-1$
-				IStructuredDocumentRegion prev = treeNode.getStructuredDocument().getRegionAtCharacterOffset(documentPosition - 1);
-				if (prev != null && prev.getFullText().trim().equals("&")) { //$NON-NLS-1$		
-					completionRegion = prev;
-					regionText = prev.getFullText();
-					nodeOffset = 1;
-				}
-			}
-
-			// string must start w/ &
-			if (regionText != null && regionText.startsWith("&")) { //$NON-NLS-1$						 		
-				String key = (nodeOffset > 0) ? regionText.substring(1, nodeOffset) : ""; //$NON-NLS-1$
-
-				// get entity proposals, passing in the appropriate start
-				// string
-				ModelQuery mq = ModelQueryUtil.getModelQuery(((Node) treeNode).getOwnerDocument());
-				if (mq != null) {
-					CMDocument xmlDoc = mq.getCorrespondingCMDocument(treeNode);
-					CMNamedNodeMap cmmap = null;
-					Properties entities = null;
-					if (xmlDoc != null) {
-						cmmap = xmlDoc.getEntities();
-					}
-					if (cmmap != null) {
-						entities = mapToProperties(cmmap);
-					}
-					else // 224787 in absence of content model, just use
-					// minimal 5 entities
-					{
-						entities = new Properties();
-						entities.put("quot", "\""); //$NON-NLS-1$ //$NON-NLS-2$
-						entities.put("apos", "'"); //$NON-NLS-1$ //$NON-NLS-2$
-						entities.put("amp", "&"); //$NON-NLS-1$ //$NON-NLS-2$
-						entities.put("lt", "<"); //$NON-NLS-1$ //$NON-NLS-2$
-						entities.put("gt", ">"); //$NON-NLS-1$ //$NON-NLS-2$	
-						entities.put("nbsp", " "); //$NON-NLS-1$ //$NON-NLS-2$									
-					}
-					addEntityProposals(proposals, entities, key, nodeOffset, sdRegion, completionRegion); //$NON-NLS-1$
-				}
-			}
-		}
-		return (ICompletionProposal[]) ((proposals.size() > 0) ? proposals.toArray(new ICompletionProposal[proposals.size()]) : null);
-	}
-
-	protected ContentAssistRequest computeEqualsProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		ContentAssistRequest contentAssistRequest = null;
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-		ITextRegion valueRegion = node.getStartStructuredDocumentRegion().getRegionAtCharacterOffset(sdRegion.getStartOffset(completionRegion) + completionRegion.getLength());
-		if (valueRegion != null && valueRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE && sdRegion.getStartOffset(valueRegion) <= documentPosition) {
-			// replace the adjacent attribute value
-			contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, valueRegion, sdRegion.getStartOffset(valueRegion), valueRegion.getTextLength(), matchString);
-		}
-		else {
-			// append an attribute value after the '='
-			contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, completionRegion, documentPosition, 0, matchString);
-		}
-		addAttributeValueProposals(contentAssistRequest);
-		return contentAssistRequest;
-	}
-
-	protected ContentAssistRequest computeStartDocumentProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		// setup for a non-empty document, but one that hasn't been formally
-		// started
-		ContentAssistRequest contentAssistRequest = null;
-		contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, getStructuredDocumentRegion(documentPosition), completionRegion, documentPosition, 0, matchString);
-		addStartDocumentProposals(contentAssistRequest);
-		return contentAssistRequest;
-	}
-
-	protected ContentAssistRequest computeTagCloseProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		ContentAssistRequest contentAssistRequest = null;
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-
-		if ((node.getNodeType() == Node.DOCUMENT_NODE) || (documentPosition >= sdRegion.getEndOffset())) {
-			// this is a content request as the documentPosition is AFTER the
-			// end of the closing region
-			if (node == nodeAtOffset && node.getParentNode() != null)
-				node = (IDOMNode) node.getParentNode();
-			contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, completionRegion, documentPosition, 0, matchString);
-			addTagInsertionProposals(contentAssistRequest, getElementPositionForModelQuery(nodeAtOffset));
-			if (node.getNodeType() != Node.DOCUMENT_NODE && node.getEndStructuredDocumentRegion() == null) {
-				addEndTagProposals(contentAssistRequest);
-			}
-		}
-		else {
-			// at the start of the tag's close or within it
-			ITextRegion closeRegion = sdRegion.getLastRegion();
-			boolean insideTag = !sdRegion.isEnded() || documentPosition <= sdRegion.getStartOffset(closeRegion);
-			if (insideTag) {
-				// this is a request for completions within a tag
-				contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, completionRegion, documentPosition, 0, matchString);
-				if (node.getNodeType() != Node.DOCUMENT_NODE && node.getEndStructuredDocumentRegion() != null) {
-					addTagCloseProposals(contentAssistRequest);
-				}
-				if (sdRegion == nodeAtOffset.getFirstStructuredDocumentRegion()) {
-					contentAssistRequest.setReplacementBeginPosition(documentPosition);
-					contentAssistRequest.setReplacementLength(0);
-					addAttributeNameProposals(contentAssistRequest);
-				}
-			}
-		}
-		return contentAssistRequest;
-	}
-
-	protected ContentAssistRequest computeTagNameProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		ContentAssistRequest contentAssistRequest = null;
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-
-		if (sdRegion != nodeAtOffset.getFirstStructuredDocumentRegion()) {
-			// completing the *first* tag in "<tagname1 |<tagname2"
-			IDOMNode actualNode = (IDOMNode) node.getModel().getIndexedRegion(sdRegion.getStartOffset(completionRegion));
-			if (actualNode != null) {
-				if (actualNode.getFirstStructuredDocumentRegion() == sdRegion) {
-					// start tag
-					if (documentPosition > sdRegion.getStartOffset(completionRegion) + completionRegion.getLength()) {
-						// it's attributes
-						contentAssistRequest = newContentAssistRequest(actualNode, actualNode, sdRegion, completionRegion, documentPosition - matchString.length(), matchString.length(), matchString);
-						if (node.getStructuredDocument().getRegionAtCharacterOffset(sdRegion.getStartOffset(completionRegion) - 1).getRegionAtCharacterOffset(sdRegion.getStartOffset(completionRegion) - 1).getType() == DOMRegionContext.XML_TAG_OPEN)
-							addAttributeNameProposals(contentAssistRequest);
-						addTagCloseProposals(contentAssistRequest);
-					}
-					else {
-						// it's name
-						contentAssistRequest = newContentAssistRequest(actualNode, actualNode.getParentNode(), sdRegion, completionRegion, documentPosition - matchString.length(), matchString.length(), matchString);
-						addTagNameProposals(contentAssistRequest, getElementPositionForModelQuery(actualNode));
-					}
-				}
-				else {
-					if (documentPosition >= sdRegion.getStartOffset(completionRegion) + completionRegion.getLength()) {
-						// insert name
-						contentAssistRequest = newContentAssistRequest(actualNode, actualNode.getParentNode(), sdRegion, completionRegion, documentPosition, 0, matchString);
-					}
-					else {
-						// replace name
-						contentAssistRequest = newContentAssistRequest(actualNode, actualNode.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), completionRegion.getTextLength(), matchString);
-					}
-					addEndTagNameProposals(contentAssistRequest);
-				}
-			}
-		}
-		else {
-			if (documentPosition > sdRegion.getStartOffset(completionRegion) + completionRegion.getTextLength()) {
-				// unclosed tag with only a name; should prompt for attributes
-				// and a close instead
-				contentAssistRequest = newContentAssistRequest(nodeAtOffset, node, sdRegion, completionRegion, documentPosition - matchString.length(), matchString.length(), matchString);
-				addAttributeNameProposals(contentAssistRequest);
-				addTagCloseProposals(contentAssistRequest);
-			}
-			else {
-				if (sdRegion.getRegions().get(0).getType() != DOMRegionContext.XML_END_TAG_OPEN) {
-					int replaceLength = documentPosition - sdRegion.getStartOffset(completionRegion);
-					contentAssistRequest = newContentAssistRequest(node, node.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), replaceLength, matchString);
-					addTagNameProposals(contentAssistRequest, getElementPositionForModelQuery(nodeAtOffset));
-				}
-				else {
-					IDOMNode actualNode = (IDOMNode) node.getModel().getIndexedRegion(documentPosition);
-					if (actualNode != null) {
-						if (documentPosition >= sdRegion.getStartOffset(completionRegion) + completionRegion.getTextLength()) {
-							contentAssistRequest = newContentAssistRequest(actualNode, actualNode.getParentNode(), sdRegion, completionRegion, documentPosition, 0, matchString);
-						}
-						else {
-							contentAssistRequest = newContentAssistRequest(actualNode, actualNode.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), completionRegion.getTextLength(), matchString);
-						}
-						addEndTagNameProposals(contentAssistRequest);
-					}
-				}
-			}
-		}
-		return contentAssistRequest;
-	}
-
-	protected ContentAssistRequest computeTagOpenProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode nodeAtOffset, IDOMNode node) {
-		ContentAssistRequest contentAssistRequest = null;
-		IStructuredDocumentRegion sdRegion = getStructuredDocumentRegion(documentPosition);
-		if (sdRegion != nodeAtOffset.getFirstStructuredDocumentRegion()) {
-			// completing the *first* XML_TAG_OPEN in "<<tagname"
-			IDOMNode actualNode = (IDOMNode) node.getModel().getIndexedRegion(sdRegion.getStartOffset(completionRegion));
-			if (actualNode != null) {
-				contentAssistRequest = newContentAssistRequest(actualNode, actualNode.getParentNode(), sdRegion, completionRegion, documentPosition, 0, matchString);
-				addTagNameProposals(contentAssistRequest, getElementPositionForModelQuery(actualNode));
-				addEndTagProposals(contentAssistRequest); // (pa) 220850
-			}
-		}
-		else {
-			if (documentPosition == sdRegion.getStartOffset(completionRegion)) {
-				if (node.getNodeType() == Node.ELEMENT_NODE) {
-					// at the start of an existing tag, right before the '<'
-					contentAssistRequest = newContentAssistRequest(nodeAtOffset, node.getParentNode(), sdRegion, completionRegion, documentPosition, 0, matchString);
-					addTagInsertionProposals(contentAssistRequest, getElementPositionForModelQuery(nodeAtOffset));
-					addEndTagProposals(contentAssistRequest);
-				}
-				else if (node.getNodeType() == Node.DOCUMENT_NODE) {
-					// at the opening of the VERY first tag with a '<'
-					contentAssistRequest = newContentAssistRequest(nodeAtOffset, node.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(completionRegion), completionRegion.getTextLength(), matchString);
-					addStartDocumentProposals(contentAssistRequest);
-				}
-			}
-			else {
-				// within the white space
-				ITextRegion name = getNameRegion(node.getStartStructuredDocumentRegion());
-				// (pa) ITextRegion refactor
-				// if (name != null && name.containsOffset(documentPosition))
-				// {
-				if (name != null && (sdRegion.getStartOffset(name) <= documentPosition && sdRegion.getEndOffset(name) >= documentPosition)) {
-					// replace the existing name
-					contentAssistRequest = newContentAssistRequest(node, node.getParentNode(), sdRegion, completionRegion, sdRegion.getStartOffset(name), name.getTextLength(), matchString);
-				}
-				else {
-					// insert a valid new name, or possibly an end tag
-					contentAssistRequest = newContentAssistRequest(nodeAtOffset, ((Node) nodeAtOffset).getParentNode(), sdRegion, completionRegion, documentPosition, 0, matchString);
-					addEndTagProposals(contentAssistRequest);
-					contentAssistRequest.setReplacementBeginPosition(documentPosition);
-					contentAssistRequest.setReplacementLength(0);
-				}
-				addTagNameProposals(contentAssistRequest, getElementPositionForModelQuery(nodeAtOffset));
-			}
-		}
-		return contentAssistRequest;
-	}
-
-	/**
-	 * Retreives cmnode's documentation to display in the completion
-	 * proposal's additional info. If no documentation exists for cmnode, try
-	 * displaying parentOrOwner's documentation
-	 * 
-	 * String any documentation information to display for cmnode.
-	 * <code>null</code> if there is nothing to display.
-	 */
-	protected String getAdditionalInfo(CMNode parentOrOwner, CMNode cmnode) {
-		String addlInfo = null;
-
-		if (cmnode == null) {
-			if (Debug.displayWarnings) {
-				new IllegalArgumentException("Null declaration!").printStackTrace(); //$NON-NLS-1$
-			}
-			return null;
-		}
-
-		addlInfo = getInfoProvider().getInfo(cmnode);
-		if (addlInfo == null && parentOrOwner != null)
-			addlInfo = getInfoProvider().getInfo(parentOrOwner);
-		return addlInfo;
-	}
-
-	// returns a list of ModelQueryActions
-	protected List getAvailableChildrenAtIndex(Element parent, int index, int validityChecking) {
-		List list = new ArrayList();
-		CMElementDeclaration parentDecl = getCMElementDeclaration(parent);
-		if (parentDecl != null) {
-			ModelQuery modelQuery = ModelQueryUtil.getModelQuery(parent.getOwnerDocument());
-			// taken from ActionManagers
-			// int editMode = modelQuery.getEditMode();
-			int editMode = ModelQuery.EDIT_MODE_UNCONSTRAINED;
-			int ic = (editMode == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) ? ModelQuery.INCLUDE_CHILD_NODES | ModelQuery.INCLUDE_SEQUENCE_GROUPS : ModelQuery.INCLUDE_CHILD_NODES;
-			modelQuery.getInsertActions(parent, parentDecl, index, ic, validityChecking, list);
-		}
-		return list;
-	}
-
-	// returns a list of CMElementDeclarations
-	protected List getAvailableRootChildren(Document document, int childIndex) {
-		List list = null;
-
-		// extract the valid 'root' node name from the DocumentType Node
-		DocumentType docType = document.getDoctype();
-		String rootName = null;
-		if (docType != null) {
-			rootName = docType.getNodeName();
-		}
-		if (rootName == null)
-			return new ArrayList(0);
-
-		for (Node child = document.getFirstChild(); child != null; child = child.getNextSibling()) {
-			// make sure the "root" Element isn't already present
-			// is it required to be an Element?
-			if (child.getNodeType() == Node.ELEMENT_NODE && stringsEqual(child.getNodeName(), rootName)) {
-				// if the node is missing either the start or end tag, don't
-				// count it as present
-				if (child instanceof IDOMNode && (((IDOMNode) child).getStartStructuredDocumentRegion() == null || ((IDOMNode) child).getEndStructuredDocumentRegion() == null))
-					continue;
-				if (Debug.displayInfo)
-					System.out.println(rootName + " already present!"); //$NON-NLS-1$
-				setErrorMessage(NLS.bind(XMLUIMessages.The_document_element__, (new Object[]{rootName})));
-				return new ArrayList(0);
-			}
-		}
-
-		list = new ArrayList(1);
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(document);
-		if (modelQuery != null) {
-			CMDocument cmdoc = modelQuery.getCorrespondingCMDocument(document);
-			if (cmdoc != null) {
-				if (rootName != null) {
-					CMElementDeclaration rootDecl = (CMElementDeclaration) cmdoc.getElements().getNamedItem(rootName);
-					if (rootDecl != null) {
-						list.add(rootDecl);
-					}
-					else {
-						// supply the given document name anyway, even if it
-						// is an error
-						list.add(new SimpleCMElementDeclaration(rootName));
-						if (Debug.displayInfo || Debug.displayWarnings)
-							System.out.println("No definition found for " + rootName + " in " + docType.getPublicId() + "/" + docType.getSystemId()); //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-						String location = "" + (docType.getPublicId() != null ? docType.getPublicId() + "/" : "") + (docType.getSystemId() != null ? docType.getSystemId() : ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-						//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-						//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-						if (location.length() > 0)
-							setErrorMessage(NLS.bind(XMLUIMessages.No_definition_for_in, (new Object[]{rootName, location})));
-						else
-							setErrorMessage(NLS.bind(XMLUIMessages.No_definition_for, (new Object[]{rootName})));
-					}
-				}
-			}
-			else {
-				if (Debug.displayInfo || Debug.displayWarnings)
-					System.out.println("No content model found."); //$NON-NLS-1$
-				//$NON-NLS-1$
-				//$NON-NLS-1$
-				String location = "" + (docType.getPublicId() != null ? docType.getPublicId() + "/" : "") + (docType.getSystemId() != null ? docType.getSystemId() : ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-				//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-				if (location.length() > 0)
-					setErrorMessage(NLS.bind(XMLUIMessages.No_content_model_for, (new Object[]{location})));
-				else
-					setErrorMessage(XMLUIMessages.No_content_model_found_UI_);
-			}
-		}
-
-		return list;
-	}
-
-	protected CMElementDeclaration getCMElementDeclaration(Node node) {
-		CMElementDeclaration result = null;
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			ModelQuery modelQuery = ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-			if (modelQuery != null)
-				result = modelQuery.getCMElementDeclaration((Element) node);
-		}
-		return result;
-	}
-
-	/**
-	 * Returns the characters which when entered by the user should
-	 * automatically trigger the presentation of possible completions.
-	 * 
-	 * the auto activation characters for completion proposal or
-	 * <code>null</code> if no auto activation is desired
-	 */
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		return completionProposalAutoActivationCharacters;
-	}
-
-	protected ITextRegion getCompletionRegion(int offset, IStructuredDocumentRegion sdRegion) {
-		ITextRegion region = sdRegion.getRegionAtCharacterOffset(offset);
-		if (region == null)
-			return null;
-
-		if (sdRegion.getStartOffset(region) == offset) {
-			// The offset is at the beginning of the region
-			if ((sdRegion.getStartOffset(region) == sdRegion.getStartOffset()) && (sdRegion.getPrevious() != null) && (!sdRegion.getPrevious().isEnded())) {
-				// Is the region also the start of the node? If so, the
-				// previous IStructuredDocumentRegion is
-				// where to look for a useful region.
-				region = sdRegion.getPrevious().getRegionAtCharacterOffset(offset - 1);
-			}
-			else {
-				// Is there no separating whitespace from the previous region?
-				// If not,
-				// then that region is the important one
-				ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(offset - 1);
-				if ((previousRegion != null) && (previousRegion != region) && (previousRegion.getTextLength() == previousRegion.getLength())) {
-					region = previousRegion;
-				}
-			}
-		}
-		else {
-			// The offset is NOT at the beginning of the region
-			if (offset > sdRegion.getStartOffset(region) + region.getTextLength()) {
-				// Is the offset within the whitespace after the text in this
-				// region?
-				// If so, use the next region
-				ITextRegion nextRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) + region.getLength());
-				if (nextRegion != null)
-					region = nextRegion;
-			}
-			else {
-				// Is the offset within the important text for this region?
-				// If so, then we've already got the right one.
-			}
-		}
-
-		// valid WHITE_SPACE region handler (#179924)
-		if (region != null && region.getType() == DOMRegionContext.WHITE_SPACE) {
-			ITextRegion previousRegion = sdRegion.getRegionAtCharacterOffset(sdRegion.getStartOffset(region) - 1);
-			if (previousRegion != null)
-				region = previousRegion;
-		}
-
-		return region;
-	}
-
-	/**
-	 * Return the region whose content's require completion. This is something
-	 * of a misnomer as sometimes the user wants to be prompted for contents
-	 * of a non-existant ITextRegion, such as for enumerated attribute values
-	 * following an '=' sign.
-	 */
-	protected ITextRegion getCompletionRegion(int documentPosition, Node domnode) {
-		if (domnode == null)
-			return null;
-
-		ITextRegion region = null;
-		int offset = documentPosition;
-		IStructuredDocumentRegion flatNode = null;
-		IDOMNode node = (IDOMNode) domnode;
-
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			if (node.getStructuredDocument().getLength() == 0)
-				return null;
-			ITextRegion result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
-			while (result == null) {
-				offset--;
-				result = node.getStructuredDocument().getRegionAtCharacterOffset(offset).getRegionAtCharacterOffset(offset);
-			}
-			return result;
-		}
-
-		IStructuredDocumentRegion startTag = node.getStartStructuredDocumentRegion();
-		IStructuredDocumentRegion endTag = node.getEndStructuredDocumentRegion();
-
-		// Determine if the offset is within the start
-		// IStructuredDocumentRegion, end IStructuredDocumentRegion, or
-		// somewhere within the Node's XML content.
-		if ((startTag != null) && (startTag.getStartOffset() <= offset) && (offset < startTag.getStartOffset() + startTag.getLength()))
-			flatNode = startTag;
-		else if ((endTag != null) && (endTag.getStartOffset() <= offset) && (offset < endTag.getStartOffset() + endTag.getLength()))
-			flatNode = endTag;
-
-		if (flatNode != null) {
-			// the offset is definitely within the start or end tag, continue
-			// on and find the region
-			region = getCompletionRegion(offset, flatNode);
-		}
-		else {
-			// the docPosition is neither within the start nor the end, so it
-			// must be content
-			flatNode = node.getStructuredDocument().getRegionAtCharacterOffset(offset);
-			// (pa) ITextRegion refactor
-			// if (flatNode.contains(documentPosition)) {
-			if (flatNode.getStartOffset() <= documentPosition && flatNode.getEndOffset() >= documentPosition) {
-				// we're interesting in completing/extending the previous
-				// IStructuredDocumentRegion if the current
-				// IStructuredDocumentRegion isn't plain content or if it's
-				// preceded by an orphan '<'
-				if ((offset == flatNode.getStartOffset()) && (flatNode.getPrevious() != null) && (flatNode.getRegionAtCharacterOffset(documentPosition) != null && flatNode.getRegionAtCharacterOffset(documentPosition).getType() != DOMRegionContext.XML_CONTENT || flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_TAG_OPEN || flatNode.getPrevious().getLastRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN)) {
-					// Is the region also the start of the node? If so, the
-					// previous IStructuredDocumentRegion is
-					// where to look for a useful region.
-					region = flatNode.getPrevious().getLastRegion();
-				}
-				else if (flatNode.getEndOffset() == documentPosition) {
-					region = flatNode.getLastRegion();
-				}
-				else
-					region = flatNode.getFirstRegion();
-			}
-			else {
-				// catch end of document positions where the docPosition isn't
-				// in a IStructuredDocumentRegion
-				region = flatNode.getLastRegion();
-			}
-		}
-
-		return region;
-	}
-
-	/**
-	 * Provided by default. Subclasses may override with their own
-	 * implementations.
-	 * 
-	 * @see AbstractContentAssistProcessor#getContentGenerator()
-	 */
-	public XMLContentModelGenerator getContentGenerator() {
-		if (fGenerator == null)
-			fGenerator = new XMLContentModelGenerator();
-		return fGenerator;
-	}
-
-	/**
-	 * Returns the characters which when entered by the user should
-	 * automatically trigger the presentation of context information.
-	 * 
-	 * the auto activation characters for presenting context information or
-	 * <code>null</code> if no auto activation is desired
-	 */
-	public char[] getContextInformationAutoActivationCharacters() {
-		return contextInformationAutoActivationCharacters;
-	}
-
-	/**
-	 * Returns a validator used to determine when displayed context
-	 * information should be dismissed. May only return <code>null</code> if
-	 * the processor is incapable of computing context information.
-	 * 
-	 * a context information validator, or <code>null</code> if the
-	 * processor is incapable of computing context information
-	 */
-	public IContextInformationValidator getContextInformationValidator() {
-		if (fContextInformationPresenter == null)
-			fContextInformationPresenter = new AttributeContextInformationPresenter();
-		return fContextInformationPresenter;
-	}
-
-	protected int getElementPosition(Node child) {
-		Node parent = child.getParentNode();
-		if (parent == null)
-			return 0;
-
-		NodeList children = parent.getChildNodes();
-		if (children == null)
-			return 0;
-		int count = 0;
-
-		for (int i = 0; i < children.getLength(); i++) {
-			if (children.item(i) == child)
-				return count;
-			else
-				// if (children.item(i).getNodeType() == Node.ELEMENT_NODE)
-				count++;
-		}
-		return 0;
-	}
-
-	private int getElementPositionForModelQuery(Node child) {
-		return getElementPosition(child);
-		// return -1;
-	}
-
-	/**
-	 * Return the reason why computeProposals was not able to find any
-	 * completions.
-	 * 
-	 * an error message or null if no error occurred
-	 */
-	public String getErrorMessage() {
-		return fErrorMessage;
-	}
-
-	/**
-	 * @param iResource
-	 */
-	// public void initialize(IResource iResource) {
-	// this.resource = iResource;
-	// }
-	/**
-	 * Gets the infoProvider.
-	 * 
-	 * fInfoProvider and if fInfoProvider was <code>null</code> create a new
-	 * instance
-	 */
-	public MarkupTagInfoProvider getInfoProvider() {
-		if (fInfoProvider == null) {
-			fInfoProvider = new MarkupTagInfoProvider();
-		}
-		return fInfoProvider;
-	}
-
-	protected String getMatchString(IStructuredDocumentRegion parent, ITextRegion aRegion, int offset) {
-		if (aRegion == null || isCloseRegion(aRegion))
-			return ""; //$NON-NLS-1$
-		String matchString = null;
-		String regionType = aRegion.getType();
-		if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS || regionType == DOMRegionContext.XML_TAG_OPEN || (offset > parent.getStartOffset(aRegion) + aRegion.getTextLength())) {
-			matchString = ""; //$NON-NLS-1$
-		}
-		else if (regionType == DOMRegionContext.XML_CONTENT) {
-			matchString = ""; //$NON-NLS-1$
-		}
-		else {
-			if (parent.getText(aRegion).length() > 0 && parent.getStartOffset(aRegion) < offset)
-				matchString = parent.getText(aRegion).substring(0, offset - parent.getStartOffset(aRegion));
-			else
-				matchString = ""; //$NON-NLS-1$
-		}
-		return matchString;
-	}
-
-	protected ITextRegion getNameRegion(IStructuredDocumentRegion flatNode) {
-		if (flatNode == null)
-			return null;
-		Iterator regionList = flatNode.getRegions().iterator();
-		while (regionList.hasNext()) {
-			ITextRegion region = (ITextRegion) regionList.next();
-			if (isNameRegion(region))
-				return region;
-		}
-		return null;
-	}
-
-	/**
-	 * Retrieves all of the possible valid values for this attribute
-	 * declaration
-	 */
-	protected List getPossibleDataTypeValues(Node node, CMAttributeDeclaration ad) {
-		List list = null;
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			Element element = (Element) node;
-			String[] dataTypeValues = null;
-			// The ModelQuery may not be available if the corresponding
-			// adapter
-			// is absent
-			ModelQuery modelQuery = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-			if (modelQuery != null) {
-				dataTypeValues = modelQuery.getPossibleDataTypeValues(element, ad);
-			}
-			else {
-				if (ad.getAttrType() != null)
-					dataTypeValues = ad.getAttrType().getEnumeratedValues();
-			}
-			if (dataTypeValues != null) {
-				list = new ArrayList(dataTypeValues.length);
-				for (int i = 0; i < dataTypeValues.length; i++) {
-					list.add(dataTypeValues[i]);
-				}
-			}
-		}
-		if (list == null) {
-			list = new ArrayList(0);
-		}
-		return list;
-	}
-
-	protected String getRequiredName(Node parentOrOwner, CMNode cmnode) {
-		if (cmnode == null || parentOrOwner == null) {
-			if (Debug.displayWarnings) {
-				new IllegalArgumentException("Null declaration!").printStackTrace(); //$NON-NLS-1$
-			}
-			return ""; //$NON-NLS-1$
-		}
-		return getContentGenerator().getRequiredName(parentOrOwner, cmnode);
-	}
-
-	protected String getRequiredText(Node parentOrOwner, CMAttributeDeclaration attrDecl) {
-		if (attrDecl == null) {
-			if (Debug.displayWarnings) {
-				new IllegalArgumentException("Null attribute declaration!").printStackTrace(); //$NON-NLS-1$
-			}
-			return ""; //$NON-NLS-1$
-		}
-		StringBuffer buff = new StringBuffer();
-		getContentGenerator().generateRequiredAttribute(parentOrOwner, attrDecl, buff);
-		return buff.toString();
-	}
-
-	protected String getRequiredText(Node parentOrOwner, CMElementDeclaration elementDecl) {
-		if (elementDecl == null) {
-			if (Debug.displayWarnings) {
-				new IllegalArgumentException("Null attribute declaration!").printStackTrace(); //$NON-NLS-1$
-			}
-			return ""; //$NON-NLS-1$
-		}
-		StringBuffer buff = new StringBuffer();
-		getContentGenerator().generateTag(parentOrOwner, elementDecl, buff);
-		return buff.toString();
-	}
-
-	/**
-	 * StructuredTextViewer must be set before using this.
-	 */
-	public IStructuredDocumentRegion getStructuredDocumentRegion(int pos) {
-		// (pa) ITextRegion refactor defect 245190
-		// return
-		// (IStructuredDocumentRegion)ContentAssistUtils.getNodeAt((StructuredTextViewer)fTextViewer,
-		// pos);
-		return ContentAssistUtils.getStructuredDocumentRegion((StructuredTextViewer) fTextViewer, pos);
-	}
-
-	private String getTagName(IStructuredDocumentRegion sdRegion) {
-		ITextRegionList regions = sdRegion.getRegions();
-		ITextRegion region = null;
-		String name = ""; //$NON-NLS-1$
-		for (int i = 0; i < regions.size(); i++) {
-			region = regions.get(i);
-			if (region.getType() == DOMRegionContext.XML_TAG_NAME) {
-				name = sdRegion.getText(region);
-				break;
-			}
-		}
-		return name;
-	}
-
-    // returns a list of CMNodes that are available within this parent context
-    // Given the grammar shown below and a snippet of XML code (where the '|' indicated the cursor position) 
-    // the list would return all of the element declarations that are potential child elements of Foo. 
-    //
-    // grammar : Foo -> (A, B, C)   
-    // snippet : <Foo><A>|
-    // result  : {A, B, C}
-    // 
-    // TODO cs... do we need to pass in the 'kindOfAction'?  Seems to me we could assume it's always an insert.
-	protected List getAvailableChildElementDeclarations(Element parent, int childPosition, int kindOfAction) 
-    {
-        List modelQueryActions =  getAvailableChildrenAtIndex(parent, childPosition, ModelQuery.VALIDITY_NONE); 
-		Iterator iterator = modelQueryActions.iterator();
-		List cmnodes = new Vector();
-		while (iterator.hasNext()) {
-			ModelQueryAction action = (ModelQueryAction) iterator.next();
-			if (childPosition < 0 || (action.getStartIndex() <= childPosition && childPosition <= action.getEndIndex()) && action.getKind() == kindOfAction) {
-				CMNode actionCMNode = action.getCMNode();
-				if (actionCMNode != null && !cmnodes.contains(actionCMNode))
-					cmnodes.add(actionCMNode);
-			}
-		}
-		return cmnodes;
-	}
-
-    // returns a list of CMNodes that can be validly inserted at this childPosition 
-    // Given the grammar shown below and a snippet of XML code (where the '|' indicated the cursor position) 
-    // the list would return only the element declarations can be inserted while maintaing validity of the content. 
-    //
-    // grammar : Foo -> (A, B, C)   
-    // snippet : <Foo><A>|
-    // result  : {B}
-    //    
-    protected List getValidChildElementDeclarations(Element parent, int childPosition, int kindOfAction) 
-    {
-        List modelQueryActions =  getAvailableChildrenAtIndex(parent, childPosition, ModelQuery.VALIDITY_STRICT); 
-        Iterator iterator = modelQueryActions.iterator();
-        List cmnodes = new Vector();
-        while (iterator.hasNext()) {
-            ModelQueryAction action = (ModelQueryAction) iterator.next();      
-            if (childPosition < 0 || (action.getStartIndex() <= childPosition && childPosition <= action.getEndIndex()) && action.getKind() == kindOfAction) {
-                CMNode actionCMNode = action.getCMNode();
-                if (actionCMNode != null && !cmnodes.contains(actionCMNode))
-                    cmnodes.add(actionCMNode);
-            }           
-        }
-        return cmnodes;
-    }
-
-	/**
-	 * Similar to the call in HTMLContentAssistProcessor. Pass in a node, it
-	 * tells you if the document is XML type.
-	 * 
-	 * @param node
-	 * 
-	 */
-	protected boolean getXML(Node node) {
-		if (node == null)
-			return false;
-
-		Document doc = null;
-		doc = (node.getNodeType() != Node.DOCUMENT_NODE) ? node.getOwnerDocument() : ((Document) node);
-
-		return (doc instanceof IDOMDocument) && ((IDOMDocument) doc).isXMLType();
-	}
-
-	// Initialize local settings
-	protected void init() {
-		// implement in subclasses
-	}
-
-	protected boolean isCloseRegion(ITextRegion region) {
-		String type = region.getType();
-		return ((type == DOMRegionContext.XML_PI_CLOSE) || (type == DOMRegionContext.XML_TAG_CLOSE) || (type == DOMRegionContext.XML_EMPTY_TAG_CLOSE) || (type == DOMRegionContext.XML_CDATA_CLOSE) || (type == DOMRegionContext.XML_COMMENT_CLOSE) || (type == DOMRegionContext.XML_ATTLIST_DECL_CLOSE) || (type == DOMRegionContext.XML_ELEMENT_DECL_CLOSE) || (type == DOMRegionContext.XML_DOCTYPE_DECLARATION_CLOSE) || (type == DOMJSPRegionContextsPrivateCopy.JSP_CLOSE) || (type == DOMJSPRegionContextsPrivateCopy.JSP_COMMENT_CLOSE) || (type.equals(DOMJSPRegionContextsPrivateCopy.JSP_DIRECTIVE_CLOSE)) || (type == DOMRegionContext.XML_DECLARATION_CLOSE));
-	}
-
-	/*
-	 * This is to determine if a tag is a special meta-info comment tag that
-	 * shows up as an ELEMENT
-	 */
-	private boolean isCommentNode(IDOMNode node) {
-		return (node != null && node instanceof IDOMElement && ((IDOMElement) node).isCommentTag());
-	}
-
-	/**
-	 * Checks if cursor position is after doctype tag...
-	 * 
-	 * @param car
-	 * 
-	 */
-	protected boolean isCursorAfterDoctype(ContentAssistRequest car) {
-		Node aNode = car.getNode();
-		Document parent = aNode.getOwnerDocument();
-		int xmldoctypeNodePosition = -1;
-		boolean isAfterDoctype = true;
-
-		if (parent == null)
-			return true; // blank document case
-
-		for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (child instanceof IDOMNode) {
-				if (child.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
-					xmldoctypeNodePosition = ((IDOMNode) child).getEndOffset();
-					isAfterDoctype = (car.getReplacementBeginPosition() >= xmldoctypeNodePosition);
-					break;
-				}
-			}
-		}
-		return isAfterDoctype;
-	}
-
-	/**
-	 * This method can check if the cursor is after the XMLPI
-	 * 
-	 * @param car
-	 * 
-	 */
-	protected boolean isCursorAfterXMLPI(ContentAssistRequest car) {
-		Node aNode = car.getNode();
-		boolean xmlpiFound = false;
-		Document parent = aNode.getOwnerDocument();
-		int xmlpiNodePosition = -1;
-		boolean isAfterXMLPI = false;
-
-		if (parent == null)
-			return true; // blank document case
-
-		for (Node child = parent.getFirstChild(); child != null; child = child.getNextSibling()) {
-			boolean xmlpi = (child.getNodeType() == Node.PROCESSING_INSTRUCTION_NODE && child.getNodeName().equals("xml")); //$NON-NLS-1$
-			xmlpiFound = xmlpiFound || xmlpi;
-			if (xmlpiFound) {
-				if (child instanceof IDOMNode) {
-					xmlpiNodePosition = ((IDOMNode) child).getEndOffset();
-					isAfterXMLPI = (car.getReplacementBeginPosition() >= xmlpiNodePosition);
-				}
-				break;
-			}
-		}
-		return isAfterXMLPI;
-	}
-
-	protected boolean isNameRegion(ITextRegion region) {
-		String type = region.getType();
-		return ((type == DOMRegionContext.XML_TAG_NAME) || (type == DOMJSPRegionContextsPrivateCopy.JSP_DIRECTIVE_NAME) || (type == DOMRegionContext.XML_ELEMENT_DECL_NAME) || (type == DOMRegionContext.XML_DOCTYPE_NAME) || (type == DOMRegionContext.XML_ATTLIST_DECL_NAME) || (type == DOMJSPRegionContextsPrivateCopy.JSP_ROOT_TAG_NAME) || type.equals(DOMJSPRegionContextsPrivateCopy.JSP_DIRECTIVE_NAME));
-	}
-
-	protected boolean isQuote(String string) {
-		String trimmed = string.trim();
-		if (trimmed.length() > 0) {
-			return trimmed.charAt(0) == '\'' || trimmed.charAt(0) == '"';
-		}
-		return false;
-	}
-
-	private boolean isSelfClosed(IStructuredDocumentRegion startTag) {
-		ITextRegionList regions = startTag.getRegions();
-		return regions.get(regions.size() - 1).getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE;
-	}
-
-	private boolean isStartTag(IStructuredDocumentRegion sdRegion) {
-		boolean result = false;
-		if (sdRegion.getRegions().size() > 0) {
-			ITextRegion r = sdRegion.getRegions().get(0);
-			result = r.getType() == DOMRegionContext.XML_TAG_OPEN && sdRegion.isEnded();
-		}
-		return result;
-	}
-
-	protected Properties mapToProperties(CMNamedNodeMap map) {
-		Properties p = new Properties();
-		for (int i = 0; i < map.getLength(); i++) {
-			CMEntityDeclaration decl = (CMEntityDeclaration) map.item(i);
-			p.put(decl.getName(), decl.getValue());
-		}
-		return p;
-	}
-
-	/**
-	 * Gets the corresponding XMLNode, and checks if it's closed.
-	 * 
-	 * @param startTag
-	 * 
-	 */
-	private boolean needsEndTag(IStructuredDocumentRegion startTag) {
-		boolean result = false;
-		IStructuredModel sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fTextViewer.getDocument());
-		try {
-			if (sModel != null) {
-				IDOMNode xmlNode = (IDOMNode) sModel.getIndexedRegion(startTag.getStart());
-				if (!isStartTag(startTag))
-					result = false;
-				else if (isSelfClosed(startTag))
-					result = false;
-				else if (!xmlNode.isContainer())
-					result = false;
-				else
-					result = xmlNode.getEndStructuredDocumentRegion() == null;
-			}
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-		return result;
-	}
-
-	protected ContentAssistRequest newContentAssistRequest(Node node, Node possibleParent, IStructuredDocumentRegion documentRegion, ITextRegion completionRegion, int begin, int length, String filter) {
-		return new ContentAssistRequest(node, possibleParent, documentRegion, completionRegion, begin, length, filter);
-	}
-
-	public void release() {
-		fGenerator = null;
-	}
-
-	/**
-	 * Set the reason why computeProposals was not able to find any
-	 * completions.
-	 */
-	public void setErrorMessage(String errorMessage) {
-		fErrorMessage = errorMessage;
-	}
-
-	/**
-	 * Set the reason why computeProposals was not able to find any
-	 * completions.
-	 */
-	protected void setErrorMessage(String errorMessage, String append) {
-		setErrorMessage(errorMessage + append);
-	}
-
-	/**
-	 * Set the reason why computeProposals was not able to find any
-	 * completions.
-	 */
-	protected void setErrorMessage(String errorMessage, String prepend, String append) {
-		setErrorMessage(prepend + errorMessage + append);
-	}
-
-	protected boolean stringsEqual(String a, String b) {
-		// (pa) 221190 matching independent of case to be consistant with Java
-		// editor CA
-		return a.equalsIgnoreCase(b);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentModelGenerator.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentModelGenerator.java
deleted file mode 100644
index e97ac6c..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AbstractContentModelGenerator.java
+++ /dev/null
@@ -1,86 +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.wst.xml.ui.internal.contentassist;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.w3c.dom.Node;
-
-
-public abstract class AbstractContentModelGenerator {
-
-	public static boolean generateChildren = false;
-
-	public AbstractContentModelGenerator() {
-		super();
-	}
-
-	public abstract void generateAttribute(CMAttributeDeclaration attrDecl, StringBuffer buffer);
-
-	protected void generateAttributes(CMElementDeclaration elementDecl, StringBuffer buffer) {
-		CMNamedNodeMap attributes = elementDecl.getAttributes();
-		if (attributes == null)
-			return;
-		for (int i = 0; i < attributes.getLength(); i++) {
-			generateAttribute((CMAttributeDeclaration) attributes.item(i), buffer);
-		}
-		return;
-	}
-
-	protected abstract void generateEndTag(String tagName, Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer);
-
-	public void generateRequiredChildren(Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer) {
-		if (generateChildren) {
-		}
-		return;
-	}
-
-	protected abstract void generateStartTag(String tagName, Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer);
-
-	public void generateTag(Node parent, CMElementDeclaration elementDecl, StringBuffer buffer) {
-		if (elementDecl == null || buffer == null)
-			return;
-
-		String tagName = getRequiredName(parent, elementDecl);
-
-		generateStartTag(tagName, parent, elementDecl, buffer);
-		generateRequiredChildren(parent, elementDecl, buffer);
-		generateEndTag(tagName, parent, elementDecl, buffer);
-		return;
-	}
-
-	public abstract int getMinimalStartTagLength(Node node, CMElementDeclaration elementDecl);
-
-	public String getRequiredName(Node ownerNode, CMNode cmnode) {
-		if (ownerNode != null) {
-			return DOMNamespaceHelper.computeName(cmnode, ownerNode, null);
-		}
-		return cmnode.getNodeName();
-	}
-
-	public abstract String getStartTagClose(Node parentNode, CMElementDeclaration elementDecl);
-
-	protected boolean requiresAttributes(CMElementDeclaration ed) {
-		CMNamedNodeMap attributes = ed.getAttributes();
-		if (attributes == null)
-			return false;
-		for (int i = 0; i < attributes.getLength(); i++) {
-			if (((CMAttributeDeclaration) attributes.item(i)).getUsage() == CMAttributeDeclaration.REQUIRED)
-				return true;
-		}
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformation.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformation.java
deleted file mode 100644
index 1987b65..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformation.java
+++ /dev/null
@@ -1,113 +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.wst.xml.ui.internal.contentassist;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.ui.internal.util.Assert;
-
-
-/**
- * Implementation of IContextInformation. Adds knowledge about the information
- * display string such as required attributes for this context.
- * 
- * @author pavery
- */
-public class AttributeContextInformation implements IContextInformation {
-	private HashMap fAttr2RangeMap;
-	/** The name of the context */
-	private String fContextDisplayString;
-	/** The image to be displayed */
-	private Image fImage;
-	/** The information to be displayed */
-	private String fInformationDisplayString;
-	private int fPosition;
-
-	/**
-	 * Creates a new context information with an image.
-	 * 
-	 * @param image
-	 *            the image to display when presenting the context information
-	 * @param contextDisplayString
-	 *            the string to be used when presenting the context
-	 * @param informationDisplayString
-	 *            the string to be displayed when presenting the context
-	 *            information, may not be <code>null</code>
-	 */
-	public AttributeContextInformation(Image image, String contextDisplayString, String informationDisplayString, HashMap attr2RangeMap) {
-		Assert.isNotNull(informationDisplayString, "illegal argument: informationDisplayString can not be null"); //$NON-NLS-1$
-
-		fImage = image;
-		fContextDisplayString = contextDisplayString;
-		fInformationDisplayString = informationDisplayString;
-		fAttr2RangeMap = attr2RangeMap;
-	}
-
-	/**
-	 * Creates a new context information without an image.
-	 * 
-	 * @param contextDisplayString
-	 *            the string to be used when presenting the context
-	 * @param informationDisplayString
-	 *            the string to be displayed when presenting the context
-	 *            information
-	 */
-	public AttributeContextInformation(String contextDisplayString, String informationDisplayString, HashMap attr2RangeMap) {
-		this(null, contextDisplayString, informationDisplayString, attr2RangeMap);
-	}
-
-	/**
-	 * Maps (String -> Position). The attribute name to the Text position.
-	 * 
-	 * 
-	 */
-	public HashMap getAttr2RangeMap() {
-		return fAttr2RangeMap;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContextInformation#getContextDisplayString()
-	 */
-	public String getContextDisplayString() {
-		if (fContextDisplayString != null)
-			return fContextDisplayString;
-		return fInformationDisplayString;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContextInformationExtension#getContextInformationPosition()
-	 */
-	public int getContextInformationPosition() {
-		return fPosition;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContextInformation#getImage()
-	 */
-	public Image getImage() {
-		return fImage;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContextInformation#getInformationDisplayString()
-	 */
-	public String getInformationDisplayString() {
-		return fInformationDisplayString;
-	}
-
-	public void setContextInformationPosition(int position) {
-		fPosition = position;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformationPresenter.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformationPresenter.java
deleted file mode 100644
index f9cfdd1..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformationPresenter.java
+++ /dev/null
@@ -1,120 +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.wst.xml.ui.internal.contentassist;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.TextPresentation;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationPresenter;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-/**
- * Responsible for the presentation of the context info popup. This includes
- * text style, and when the window should close.
- * 
- * @author pavery
- */
-public class AttributeContextInformationPresenter implements IContextInformationPresenter, IContextInformationValidator {
-	private int fDocumentPosition = -1;
-
-	private IContextInformation fInfo = null;
-	private ContextInfoModelUtil fModelUtil = null;
-	private ITextViewer fViewer = null;
-
-	public AttributeContextInformationPresenter() {
-		super();
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContextInformationValidator#install(org.eclipse.jface.text.contentassist.IContextInformation,
-	 *      org.eclipse.jface.text.ITextViewer, int)
-	 */
-	public void install(IContextInformation info, ITextViewer viewer, int documentPosition) {
-		fInfo = info;
-		fViewer = viewer;
-		fDocumentPosition = documentPosition;
-		fModelUtil = new ContextInfoModelUtil((IStructuredDocument) fViewer.getDocument());
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContextInformationValidator#isContextInformationValid(int)
-	 */
-	public boolean isContextInformationValid(int documentPosition) {
-		// determine whether or not this context info should still be
-		// showing...
-		// if cursor still within the element it's valid...
-		boolean result = false;
-		if (fModelUtil != null) {
-			IStructuredDocumentRegion startRegion = fModelUtil.getXMLNode(fDocumentPosition).getStartStructuredDocumentRegion();
-			int start = startRegion.getStartOffset();
-			int end = startRegion.getEndOffset();
-			result = documentPosition < end && documentPosition > start + 1;
-		}
-		return result;
-	}
-
-	/**
-	 * @see org.eclipse.jface.text.contentassist.IContextInformationPresenter#updatePresentation(int,
-	 *      org.eclipse.jface.text.TextPresentation)
-	 */
-	public boolean updatePresentation(int documentPosition, TextPresentation presentation) {
-		presentation.clear();
-
-		if (!(fInfo instanceof AttributeContextInformation))
-			return false;
-
-		// iterate existing attributes from current node
-		IDOMNode xmlNode = fModelUtil.getXMLNode(documentPosition);
-		IStructuredDocumentRegion sdRegion = xmlNode.getFirstStructuredDocumentRegion();
-		ITextRegionList regions = sdRegion.getRegions();
-		ITextRegion r = null;
-		String attrName = ""; //$NON-NLS-1$
-		Object temp = null;
-		Position p = null;
-		HashMap map = ((AttributeContextInformation) fInfo).getAttr2RangeMap();
-
-		// so we can add ranges in order
-		StyleRange[] sorted = new StyleRange[fInfo.getInformationDisplayString().length()];
-		for (int i = 0; i < regions.size(); i++) {
-			r = regions.get(i);
-			if (r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-				attrName = sdRegion.getText(r);
-				temp = map.get(attrName);
-				if (temp != null) {
-					p = (Position) temp;
-					sorted[p.offset] = new StyleRange(p.offset, p.length, null, null, SWT.BOLD);
-				}
-			}
-		}
-		// style ranges need to be added in order
-		StyleRange sr = null;
-		for (int i = 0; i < sorted.length; i++) {
-			sr = sorted[i];
-			if (sr != null)
-				presentation.addStyleRange(sr);
-		}
-		return true;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformationProvider.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformationProvider.java
deleted file mode 100644
index 8634ec4..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/AttributeContextInformationProvider.java
+++ /dev/null
@@ -1,208 +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.wst.xml.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.contentassist.ContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-/**
- * Calculates attribute context information based on a StructuedDocument and
- * document position.
- * 
- * @author pavery
- */
-class AttributeContextInformationProvider {
-	private final IContextInformation[] EMPTY_CONTEXT_INFO = new IContextInformation[0];
-	private Comparator fComparator;
-
-	private IStructuredDocument fDocument = null;
-	private ContextInfoModelUtil fModelUtil = null;
-
-	public AttributeContextInformationProvider(IStructuredDocument doc, AttributeContextInformationPresenter presenter) {
-		fDocument = doc;
-		fModelUtil = new ContextInfoModelUtil(fDocument);
-	}
-
-	/**
-	 * @param sdRegion
-	 
-	 */
-	private boolean canProposeInfo(IStructuredDocumentRegion sdRegion) {
-		if (sdRegion != null && isEndTag(sdRegion))
-			return false;
-		else
-			return true;
-	}
-
-	public IContextInformation[] getAttributeInformation(int offset) {
-		/*
-		 * need to take care of special cases w/ ambiguous regions <tag>|
-		 * </tag> also end tags..
-		 */
-		IContextInformation[] results = EMPTY_CONTEXT_INFO;
-
-		IStructuredDocumentRegion sdRegion = fModelUtil.getDocument().getRegionAtCharacterOffset(offset);
-		if (!canProposeInfo(sdRegion))
-			return EMPTY_CONTEXT_INFO;
-
-		IDOMNode node = fModelUtil.getXMLNode(offset);
-		if (node != null) {
-			switch (node.getNodeType()) {
-				case Node.ELEMENT_NODE :
-					results = getInfoForElement(node);
-					break;
-			// future...
-			//			case Node.TEXT_NODE :
-			//				results = getInfoForText(node);
-			//				break;
-			}
-		}
-		return results;
-	}
-
-	/**
-	 * Returns a comparator that compares CMAttributeDeclaration names.
-	 * 
-	  the comparator
-	 */
-	private Comparator getCMAttributeComparator() {
-		if (fComparator == null)
-			fComparator = new Comparator() {
-				public int compare(Object o1, Object o2) {
-					return ((CMAttributeDeclaration) o1).getAttrName().compareTo(((CMAttributeDeclaration) o2).getAttrName());
-				}
-			};
-		return fComparator;
-	}
-
-	/**
-	 * @param node
-	 
-	 */
-	private IContextInformation[] getInfoForElement(IDOMNode node) {
-		IContextInformation[] results = EMPTY_CONTEXT_INFO;
-		CMElementDeclaration decl = fModelUtil.getModelQuery().getCMElementDeclaration((Element) node);
-		if (decl != null) {
-			CMNamedNodeMap attributes = decl.getAttributes();
-
-			String attrContextString = node.getNodeName();
-			StringBuffer attrInfo = new StringBuffer(" "); //$NON-NLS-1$
-			String name = ""; //$NON-NLS-1$
-			HashMap attrPosMap = new HashMap();
-			int pos = 0;
-			int length = 0;
-			int numPerLine = 8;
-
-			CMAttributeDeclaration[] sortedAttrs = getSortedAttributes(attributes);
-
-			for (int i = 0; i < sortedAttrs.length; i++) {
-				name = sortedAttrs[i].getAttrName();
-				length = name.length();
-				pos = attrInfo.length();
-
-				attrInfo.append(name);
-
-				if (sortedAttrs[i].getUsage() == CMAttributeDeclaration.REQUIRED) {
-					attrInfo.append("*"); //$NON-NLS-1$
-					length++;
-				}
-				if (i < attributes.getLength() - 1) {
-					attrInfo.append(" "); //$NON-NLS-1$
-					if (i != 0 && i % numPerLine == 0)
-						attrInfo.append("\n "); //$NON-NLS-1$
-				}
-				attrPosMap.put(name, new Position(pos, length));
-			}
-			if (!attrInfo.toString().trim().equals("")) //$NON-NLS-1$
-				return new IContextInformation[]{new AttributeContextInformation(attrContextString, attrInfo.toString(), attrPosMap)};
-		}
-		return results;
-	}
-
-	/**
-	 * @param node
-	 
-	 */
-	 IContextInformation[] getInfoForText(IDOMNode node) {
-		Node parent = node.getParentNode();
-		String contextString = node.getNodeName();
-		StringBuffer info = new StringBuffer(" "); //$NON-NLS-1$
-		if (parent != null && parent.getNodeType() == Node.ELEMENT_NODE) {
-			CMElementDeclaration decl = fModelUtil.getModelQuery().getCMElementDeclaration((Element) parent);
-			CMContent content = decl.getContent();
-			if (content instanceof CMGroup) {
-				CMGroup cmGroup = (CMGroup) content;
-				CMNodeList children = cmGroup.getChildNodes();
-				CMNode cmNode = null;
-				for (int i = 0; i < children.getLength(); i++) {
-					cmNode = children.item(i);
-					contextString = cmNode.getNodeName();
-					if (contextString != null) {
-						info.append("<" + cmNode.getNodeName() + ">"); //$NON-NLS-1$ //$NON-NLS-2$
-						if (i < children.getLength() - 1)
-							info.append(" "); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-		if (!info.toString().trim().equals("")) //$NON-NLS-1$
-			return new IContextInformation[]{new ContextInformation(contextString, info.toString())};
-		else
-			return EMPTY_CONTEXT_INFO;
-	}
-
-	/**
-	 * Returns sorted array of CMAttributeDeclarations.
-	 * 
-	 * @param attributes
-	 
-	 */
-	private CMAttributeDeclaration[] getSortedAttributes(CMNamedNodeMap attributes) {
-		List sorted = new ArrayList();
-		for (int i = 0; i < attributes.getLength(); i++)
-			sorted.add(attributes.item(i));
-		Collections.sort(sorted, getCMAttributeComparator());
-		return (CMAttributeDeclaration[]) sorted.toArray(new CMAttributeDeclaration[sorted.size()]);
-	}
-
-	/**
-	 * @param sdRegion
-	 
-	 */
-	private boolean isEndTag(IStructuredDocumentRegion sdRegion) {
-		ITextRegionList regions = sdRegion.getRegions();
-		return regions.get(0).getType() == DOMRegionContext.XML_END_TAG_OPEN;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java
deleted file mode 100644
index 2ee1bd1..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContentAssistRequest.java
+++ /dev/null
@@ -1,256 +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.wst.xml.ui.internal.contentassist;
-
-
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionCollection;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.w3c.dom.Node;
-
-
-public class ContentAssistRequest {
-	protected IStructuredDocumentRegion documentRegion = null;
-	protected List macros = new ArrayList();
-	protected String matchString;
-	protected Node node = null;
-	protected Node parent = null;
-	protected List proposals = new ArrayList();
-	protected ITextRegion region = null;
-	protected int replacementBeginPosition;
-	protected int replacementLength;
-
-	//	private Boolean separate = null; // (pa) not used
-	//	private Boolean sort = null; // (pa) not used
-	/**
-	 * XMLContentAssistRequest constructor comment.
-	 */
-	public ContentAssistRequest(Node node, Node parent, IStructuredDocumentRegion documentRegion, ITextRegion completionRegion, int begin, int length, String filter) {
-		super();
-		setNode(node);
-		setParent(parent);
-		setDocumentRegion(documentRegion);
-		setRegion(completionRegion);
-		setMatchString(filter);
-		setReplacementBeginPosition(begin);
-		setReplacementLength(length);
-	}
-
-	public void addMacro(ICompletionProposal newProposal) {
-		macros.add(newProposal);
-	}
-
-	public void addProposal(ICompletionProposal newProposal) {
-		proposals.add(newProposal);
-	}
-
-	public ICompletionProposal[] getCompletionProposals() {
-		ICompletionProposal results[] = null;
-		if (getProposals().size() > 0 || getMacros().size() > 0) {
-			List allProposals = new ArrayList();
-			if (!shouldSeparate()) {
-				allProposals.addAll(getProposals());
-				// should be empty, as all macros should have gone into the
-				// proposal list
-				allProposals.addAll(getMacros());
-				allProposals = sortProposals(allProposals);
-			} else {
-				allProposals.addAll(sortProposals(getProposals()));
-				allProposals.addAll(sortProposals(getMacros()));
-			}
-
-			results = new ICompletionProposal[allProposals.size()];
-			for (int i = 0; i < allProposals.size(); i++) {
-				results[i] = (ICompletionProposal) allProposals.get(i);
-			}
-		}
-		return results;
-	}
-
-
-	public IStructuredDocumentRegion getDocumentRegion() {
-		return documentRegion;
-	}
-
-	/**
-	 * 
-	 * @return java.util.List
-	 */
-	public java.util.List getMacros() {
-		return macros;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public java.lang.String getMatchString() {
-		return matchString;
-	}
-
-	/**
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public org.w3c.dom.Node getNode() {
-		return node;
-	}
-
-	/**
-	 * 
-	 * @return org.w3c.dom.Node
-	 */
-	public org.w3c.dom.Node getParent() {
-		return parent;
-	}
-
-	/**
-	 * 
-	 * @return java.util.List
-	 */
-	public java.util.List getProposals() {
-		return proposals;
-	}
-
-	public ITextRegion getRegion() {
-		return region;
-	}
-
-	/**
-	 * 
-	 * @return int
-	 */
-	public int getReplacementBeginPosition() {
-		return replacementBeginPosition;
-	}
-
-	/**
-	 * @return int
-	 */
-	public int getReplacementLength() {
-		return replacementLength;
-	}
-
-	public int getStartOffset() {
-		if (getDocumentRegion() != null && getRegion() != null)
-			return ((ITextRegionCollection) getDocumentRegion()).getStartOffset(getRegion());
-		return -1;
-	}
-
-	public String getText() {
-		if (getDocumentRegion() != null && getRegion() != null)
-			return ((ITextRegionCollection) getDocumentRegion()).getText(getRegion());
-		return ""; //$NON-NLS-1$
-	}
-
-	public int getTextEndOffset() {
-		if (getDocumentRegion() != null && getRegion() != null)
-			return ((ITextRegionCollection) getDocumentRegion()).getTextEndOffset(getRegion());
-		return -1;
-	}
-
-	/**
-	 * @param region
-	 */
-	public void setDocumentRegion(IStructuredDocumentRegion region) {
-		documentRegion = region;
-	}
-
-	/**
-	 * 
-	 * @param newMatchString
-	 *            java.lang.String
-	 */
-	public void setMatchString(java.lang.String newMatchString) {
-		matchString = newMatchString;
-	}
-
-	/**
-	 * 
-	 * @param newNode
-	 *            org.w3c.dom.Node
-	 */
-	public void setNode(org.w3c.dom.Node newNode) {
-		node = newNode;
-	}
-
-	/**
-	 * 
-	 * @param newParent
-	 *            org.w3c.dom.Node
-	 */
-	public void setParent(org.w3c.dom.Node newParent) {
-		parent = newParent;
-	}
-
-	/**
-	 * 
-	 * @param newRegion
-	 */
-	public void setRegion(ITextRegion newRegion) {
-		region = newRegion;
-	}
-
-	/**
-	 * 
-	 * @param newReplacementBeginPosition
-	 *            int
-	 */
-	public void setReplacementBeginPosition(int newReplacementBeginPosition) {
-		replacementBeginPosition = newReplacementBeginPosition;
-	}
-
-
-	public void setReplacementLength(int newReplacementLength) {
-		replacementLength = newReplacementLength;
-	}
-
-	public boolean shouldSeparate() {
-		/*
-		 * if (separate == null) { PreferenceManager manager =
-		 * getPreferenceManager(); if(manager == null) { separate =
-		 * Boolean.FALSE; } else { Element caSettings =
-		 * manager.getElement(PreferenceNames.CONTENT_ASSIST); separate = new
-		 * Boolean(caSettings.getAttribute(PreferenceNames.SEPARATE).equals(PreferenceNames.TRUE)); } }
-		 * return separate.booleanValue();
-		 */
-		return false;
-	}
-
-	protected List sortProposals(List proposalsIn) {
-		Collections.sort(proposalsIn, new ProposalComparator());
-		return proposalsIn;
-
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public java.lang.String toString() {
-		return "Node: " + getNode() //$NON-NLS-1$
-					+ "\nParent: " + getParent() //$NON-NLS-1$
-					+ "\nStructuredDocumentRegion: " + StringUtils.escape(getDocumentRegion().toString()) //$NON-NLS-1$
-					+ "\nRegion: " + getRegion() //$NON-NLS-1$
-					+ "\nMatch string: '" + StringUtils.escape(getMatchString()) + "'" //$NON-NLS-2$//$NON-NLS-1$
-					+ "\nOffsets: [" + getReplacementBeginPosition() + "-" + (getReplacementBeginPosition() + getReplacementLength()) + "]\n"; //$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContextInfoModelUtil.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContextInfoModelUtil.java
deleted file mode 100644
index be38e4f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ContextInfoModelUtil.java
+++ /dev/null
@@ -1,65 +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.wst.xml.ui.internal.contentassist;
-
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-
-
-/**
- * @author pavery
- */
-public class ContextInfoModelUtil {
-	IStructuredDocument fDocument = null;
-
-	ContextInfoModelUtil(IStructuredDocument doc) {
-		fDocument = doc;
-	}
-
-	public IStructuredDocument getDocument() {
-		return fDocument;
-	}
-
-	public ModelQuery getModelQuery() {
-		ModelQuery mq = null;
-
-		IStructuredModel xmlModel = null;
-		try {
-			xmlModel = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
-			mq = ModelQueryUtil.getModelQuery(xmlModel);
-		}
-		finally {
-			if (xmlModel != null) {
-				xmlModel.releaseFromRead();
-			}
-		}
-		return mq;
-	}
-
-	public IDOMNode getXMLNode(int offset) {
-		IStructuredModel xmlModel = null;
-		IDOMNode xmlNode = null;
-		try {
-			xmlModel = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
-			xmlNode = (IDOMNode) xmlModel.getIndexedRegion(offset);
-		}
-		finally {
-			xmlModel.releaseFromRead();
-		}
-		return xmlNode;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/CustomTemplateProposal.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/CustomTemplateProposal.java
deleted file mode 100644
index 8b8b749..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/CustomTemplateProposal.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.contentassist;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateProposal;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceCompletionProposal;
-
-/**
- * Purpose of this class is to make the additional proposal info into content
- * fit for an HTML viewer (by escaping characters)
- */
-class CustomTemplateProposal extends TemplateProposal implements IRelevanceCompletionProposal {
-	// copies of this class exist in:
-	// org.eclipse.jst.jsp.ui.internal.contentassist
-	// org.eclipse.wst.html.ui.internal.contentassist
-	// org.eclipse.wst.xml.ui.internal.contentassist
-
-	public CustomTemplateProposal(Template template, TemplateContext context, IRegion region, Image image, int relevance) {
-		super(template, context, region, image, relevance);
-	}
-
-	public String getAdditionalProposalInfo() {
-		String additionalInfo = super.getAdditionalProposalInfo();
-		return StringUtils.convertToHTMLContent(additionalInfo);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/NoRegionContentAssistProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/NoRegionContentAssistProcessor.java
deleted file mode 100644
index c324112..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/NoRegionContentAssistProcessor.java
+++ /dev/null
@@ -1,262 +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.wst.xml.ui.internal.contentassist;
-
-
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.ITypedRegion;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.contentassist.IContextInformationValidator;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-
-
-/**
- * ContentAssistProcessor to handle special cases in content assist where the
- * partitioner cannot determine a partition type at the current cursor
- * position (usually at EOF).
- * 
- * @author pavery
- */
-public class NoRegionContentAssistProcessor implements IContentAssistProcessor, IReleasable {
-
-	private static final boolean DEBUG = false;
-	protected char completionProposalAutoActivationCharacters[] = null;
-	protected char contextInformationAutoActivationCharacters[] = null;
-
-	private final ICompletionProposal[] EMPTY_PROPOSAL_SET = new ICompletionProposal[0];
-	protected String fErrorMessage = null;
-	private HashMap fNameToProcessorMap = null;
-	private HashMap fPartitionToProcessorMap = null;
-
-	public NoRegionContentAssistProcessor() {
-		super();
-		fPartitionToProcessorMap = new HashMap();
-		fNameToProcessorMap = new HashMap();
-		initNameToProcessorMap();
-		initPartitionToProcessorMap();
-
-	}
-
-	protected void addPartitionProcessor(String key, IContentAssistProcessor processor) {
-		addProcessor(fPartitionToProcessorMap, key, processor);
-	}
-
-	protected void addNameProcessor(String key, IContentAssistProcessor processor) {
-		addProcessor(fNameToProcessorMap, key, processor);
-	}
-
-	protected IContentAssistProcessor getPartitionProcessor(String key) {
-		return (IContentAssistProcessor) fPartitionToProcessorMap.get(key);
-	}
-
-	/**
-	 * Ensures release if it's a duplicate partition type.
-	 * 
-	 * @param map
-	 * @param key
-	 * @param processor
-	 */
-	private void addProcessor(HashMap map, String key, IContentAssistProcessor processor) {
-		Object o = map.remove(key);
-		if (o != null) {
-			if (o instanceof IReleasable) {
-				((IReleasable) o).release();
-			}
-		}
-		map.put(key, processor);
-	}
-
-	/**
-	 * Figures out what the correct ICompletionProposalProcessor is and
-	 * computesCompletionProposals on that.
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeCompletionProposals(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int documentOffset) {
-		IContentAssistProcessor p = null;
-		ICompletionProposal[] results = EMPTY_PROPOSAL_SET;
-
-		p = guessContentAssistProcessor(viewer, documentOffset);
-		if (p != null)
-			results = p.computeCompletionProposals(viewer, documentOffset);
-
-		return (results != null) ? results : EMPTY_PROPOSAL_SET;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#computeContextInformation(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IContextInformation[] computeContextInformation(ITextViewer viewer, int documentOffset) {
-		// get context info from processor that we end up using...
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getCompletionProposalAutoActivationCharacters()
-	 */
-	public char[] getCompletionProposalAutoActivationCharacters() {
-		return completionProposalAutoActivationCharacters;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationAutoActivationCharacters()
-	 */
-	public char[] getContextInformationAutoActivationCharacters() {
-		return contextInformationAutoActivationCharacters;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getContextInformationValidator()
-	 */
-	public IContextInformationValidator getContextInformationValidator() {
-		// return the validator for the content assist processor that we
-		// used...
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.IContentAssistProcessor#getErrorMessage()
-	 */
-	public String getErrorMessage() {
-		return fErrorMessage;
-	}
-
-	/**
-	 * Gives you the document partition type (String) for the given
-	 * StructuredTextViewer and documentPosition.
-	 * 
-	 * @param viewer
-	 * @param documentPosition
-	 * @return String
-	 */
-	protected String getPartitionType(StructuredTextViewer viewer, int documentPosition) {
-		IDocument document = viewer.getDocument();
-		String partitionType = null;
-		ITypedRegion partition = null;
-		try {
-			partition = document.getPartition(documentPosition);
-			partitionType = partition.getType();
-		}
-		catch (BadLocationException e) {
-			partitionType = null;
-		}
-		return partitionType;
-	}
-
-	/**
-	 * Guesses a ContentAssistProcessor based on the TextViewer and
-	 * documentOffset.
-	 * 
-	 * @param viewer
-	 * @param documentOffset
-	 */
-	protected IContentAssistProcessor guessContentAssistProcessor(ITextViewer viewer, int documentOffset) {
-		// mapping logic here...
-		// look @ previous region
-		// look @ previous doc partition type
-		// look @ page language
-		IContentAssistProcessor p = null;
-		IStructuredDocumentRegion sdRegion = ContentAssistUtils.getStructuredDocumentRegion((StructuredTextViewer) viewer, documentOffset);
-		if (sdRegion != null) {
-			String currentRegionType = sdRegion.getType();
-			// System.out.println("current region type is >> " +
-			// currentRegionType);
-			if (currentRegionType == DOMRegionContext.UNDEFINED) {
-				IStructuredDocumentRegion sdPrev = sdRegion.getPrevious();
-				if (sdPrev != null) {
-					if (DEBUG) {
-						String prevRegionType = sdPrev.getType();
-						System.out.println("previous region type is >> " + prevRegionType); //$NON-NLS-1$
-					}
-				}
-			}
-		}
-		// working w/ viewer & document partition
-		if (p == null && viewer.getDocument().getLength() > 0) {
-			String prevPartitionType = getPartitionType((StructuredTextViewer) viewer, documentOffset - 1);
-			// System.out.println("previous partition type is > " +
-			// prevPartitionType);
-			p = (IContentAssistProcessor) fPartitionToProcessorMap.get(prevPartitionType);
-		}
-		return p;
-	}
-
-	/**
-	 * Inits map for extra ContentAssistProcessors (useBean, get/setProperty)
-	 */
-	protected void initNameToProcessorMap() {
-		// nothing to do in this case
-	}
-
-	/**
-	 * Adds all relevent ContentAssistProcessors to the partition to processor
-	 * map (just XML here)
-	 */
-	protected void initPartitionToProcessorMap() {
-		XMLContentAssistProcessor xmlProcessor = new XMLContentAssistProcessor();
-		addProcessor(fPartitionToProcessorMap, IXMLPartitions.XML_DEFAULT, xmlProcessor);
-	}
-
-	public void release() {
-		releasePartitionToProcessorMap();
-		releaseNameToProcessorMap();
-	}
-
-	protected void releaseMap(HashMap map) {
-		if (map != null && !map.isEmpty()) {
-			Iterator it = map.keySet().iterator();
-			Object key = null;
-			while (it.hasNext()) {
-				key = it.next();
-				if (map.get(key) instanceof IReleasable) {
-					((IReleasable) map.get(key)).release();
-				}
-			}
-			map.clear();
-			map = null;
-		}
-	}
-
-	protected void releaseNameToProcessorMap() {
-		releaseMap(fNameToProcessorMap);
-	}
-
-	protected void releasePartitionToProcessorMap() {
-		releaseMap(fPartitionToProcessorMap);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/NonValidatingModelQueryAction.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/NonValidatingModelQueryAction.java
deleted file mode 100644
index c124016..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/NonValidatingModelQueryAction.java
+++ /dev/null
@@ -1,159 +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.wst.xml.ui.internal.contentassist;
-
-
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public class NonValidatingModelQueryAction implements org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQueryAction {
-
-	protected CMNode cmnode = null;
-	protected int endIndex = 0;
-	protected int kind = INSERT;
-	protected int startIndex = 0;
-	protected Object userData = null;
-
-	/**
-	 * NonValidatingModelQueryAction constructor comment.
-	 */
-	protected NonValidatingModelQueryAction() {
-		super();
-	}
-
-	/**
-	 * NonValidatingModelQueryAction constructor comment.
-	 */
-	public NonValidatingModelQueryAction(CMNode newChild, int newKind, int newStart, int newEnd, Object newUserData) {
-		super();
-		cmnode = newChild;
-		kind = newKind;
-		startIndex = newStart;
-		endIndex = newEnd;
-		userData = newUserData;
-	}
-
-	/**
-	 * getCMNode method comment.
-	 */
-	public org.eclipse.wst.xml.core.internal.contentmodel.CMNode getCMNode() {
-		return cmnode;
-	}
-
-	/**
-	 * 
-	 * @return int
-	 */
-	public int getEndIndex() {
-		return endIndex;
-	}
-
-	/**
-	 * 
-	 * @return int
-	 */
-	public int getKind() {
-		return kind;
-	}
-
-	/**
-	 * getParent method comment.
-	 */
-	public org.w3c.dom.Node getParent() {
-		return null;
-	}
-
-	/**
-	 * 
-	 * @return int
-	 */
-	public int getStartIndex() {
-		return startIndex;
-	}
-
-	/**
-	 * getUserData method comment.
-	 */
-	public Object getUserData() {
-		return null;
-	}
-
-	/**
-	 * performAction method comment.
-	 */
-	public void performAction() {
-	}
-
-	/**
-	 * setCMNode method comment.
-	 */
-	protected void setCMNode(org.eclipse.wst.xml.core.internal.contentmodel.CMNode newNode) {
-		cmnode = newNode;
-	}
-
-	/**
-	 * 
-	 * @param newEndIndex
-	 *            int
-	 */
-	protected void setEndIndex(int newEndIndex) {
-		endIndex = newEndIndex;
-	}
-
-	/**
-	 * 
-	 * @param newKind
-	 *            int
-	 */
-	protected void setKind(int newKind) {
-		kind = newKind;
-	}
-
-	/**
-	 * 
-	 * @param newStartIndex
-	 *            int
-	 */
-	protected void setStartIndex(int newStartIndex) {
-		startIndex = newStartIndex;
-	}
-
-	/**
-	 * setUserData method comment.
-	 */
-	public void setUserData(Object object) {
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public String toString() {
-		String actionName = null;
-		switch (kind) {
-			case INSERT :
-				actionName = "INSERT";//$NON-NLS-1$
-				break;
-			case REMOVE :
-				actionName = "REMOVE";//$NON-NLS-1$
-				break;
-			case REPLACE :
-				actionName = "REPLACE";//$NON-NLS-1$
-				break;
-			default :
-				actionName = "UNKNOWN ACTION ";//$NON-NLS-1$
-		}
-		String nodeName = (cmnode != null) ? getCMNode().getNodeName() : "(unknown)";//$NON-NLS-1$
-		return actionName + "=" + nodeName + "(" + startIndex + "..." + endIndex + ")";//$NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ProposalComparator.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ProposalComparator.java
deleted file mode 100644
index 7dda160..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ProposalComparator.java
+++ /dev/null
@@ -1,48 +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.wst.xml.ui.internal.contentassist;
-
-
-
-import java.util.Comparator;
-
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceCompletionProposal;
-
-
-public class ProposalComparator implements Comparator {
-
-
-	public int compare(Object o1, Object o2) {
-		int relevance = 0;
-		if (o1 instanceof IRelevanceCompletionProposal && o2 instanceof IRelevanceCompletionProposal) {
-			// sort based on relevance
-			IRelevanceCompletionProposal cp1 = (IRelevanceCompletionProposal) o1;
-			IRelevanceCompletionProposal cp2 = (IRelevanceCompletionProposal) o2;
-
-			relevance = cp2.getRelevance() - cp1.getRelevance();
-
-			// if same relevance, secondary sort (lexigraphically)
-			if (relevance == 0 && o1 instanceof ICompletionProposal && o2 instanceof ICompletionProposal) {
-				String displayString1 = ((ICompletionProposal) o1).getDisplayString();
-				String displayString2 = ((ICompletionProposal) o2).getDisplayString();
-				if (displayString1 != null && displayString2 != null)
-					//relevance = displayString1.compareTo(displayString2);
-					// // this didn't mix caps w/ lowercase
-					relevance = com.ibm.icu.text.Collator.getInstance().compare(displayString1, displayString2);
-			}
-		}
-		// otherwise if it's not ISEDRelevanceCompletionProposal, don't sort
-		return relevance;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ReplaceNameTemplateContext.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ReplaceNameTemplateContext.java
deleted file mode 100644
index 9eb98c4..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/ReplaceNameTemplateContext.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.contentassist;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.templates.DocumentTemplateContext;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateBuffer;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateException;
-
-/**
- * Just like DocumentTemplateContext except if an insert offset is passed in,
- * during evaluation, the "prefix" before the template will be checked to see
- * if it matches the template name. If so, overwrite the template name.
- * Otherwise, just insert the template at the insert offset location (by not
- * overwriting the prefix text)
- */
-public class ReplaceNameTemplateContext extends DocumentTemplateContext {
-	private int fInsertOffset = -1;
-
-	/**
-	 * Creates a document template context.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param offset
-	 *            the offset of the document region
-	 * @param length
-	 *            the length of the document region
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length) {
-		this(type, document, new Position(offset, length));
-	}
-
-	/**
-	 * Creates a document template context. The supplied <code>Position</code>
-	 * will be queried to compute the <code>getStart</code> and
-	 * <code>getEnd</code> methods, which will therefore answer updated
-	 * position data if it is registered with the document.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param position
-	 *            the position describing the area of the document which forms
-	 *            the template context
-	 * @since 3.1
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, Position position) {
-		super(type, document, position);
-	}
-
-	/**
-	 * Creates a document template context.
-	 * 
-	 * @param type
-	 *            the context type
-	 * @param document
-	 *            the document this context applies to
-	 * @param offset
-	 *            the offset of the document region
-	 * @param length
-	 *            the length of the document region
-	 * @param insertOffset
-	 *            the offset of the document region where insert was
-	 *            originally requested
-	 */
-	public ReplaceNameTemplateContext(TemplateContextType type, IDocument document, int offset, int length, int insertOffset) {
-		this(type, document, new Position(offset, length));
-		fInsertOffset = insertOffset;
-	}
-
-	/*
-	 * @see org.eclipse.jface.text.templates.TemplateContext#evaluate(org.eclipse.jface.text.templates.Template)
-	 */
-	public TemplateBuffer evaluate(Template template) throws BadLocationException, TemplateException {
-		TemplateBuffer buffer = super.evaluate(template);
-		if (buffer != null) {
-			if (fInsertOffset > -1 && fInsertOffset > getStart()) {
-				String prefix = getDocument().get(getStart(), fInsertOffset - getStart());
-				if (!template.getName().startsWith(prefix)) {
-					// generate a new buffer that actually contains the
-					// text that was going to be overwritten
-					buffer = new TemplateBuffer(prefix + buffer.getString(), buffer.getVariables());
-				}
-			}
-		}
-		return buffer;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/SimpleCMElementDeclaration.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/SimpleCMElementDeclaration.java
deleted file mode 100644
index 137d6a6..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/SimpleCMElementDeclaration.java
+++ /dev/null
@@ -1,170 +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.wst.xml.ui.internal.contentassist;
-
-
-
-public class SimpleCMElementDeclaration implements org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration {
-
-	String fNodeName;
-
-	/**
-	 * SimpleCMELementDeclaration constructor comment.
-	 */
-	public SimpleCMElementDeclaration() {
-		super();
-	}
-
-	public SimpleCMElementDeclaration(String nodeName) {
-		super();
-		setNodeName(nodeName);
-	}
-
-	/**
-	 * getAttributes method
-	 * 
-	 * @return CMNamedNodeMap
-	 * 
-	 * Returns CMNamedNodeMap of AttributeDeclaration
-	 */
-	public org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap getAttributes() {
-		return null;
-	}
-
-	/**
-	 * getCMContent method
-	 * 
-	 * @return CMContent
-	 * 
-	 * Returns the root node of this element's content model. This can be an
-	 * CMElementDeclaration or a CMGroup
-	 */
-	public org.eclipse.wst.xml.core.internal.contentmodel.CMContent getContent() {
-		return null;
-	}
-
-	/**
-	 * getContentType method
-	 * 
-	 * @return int
-	 * 
-	 * Returns one of : ANY, EMPTY, ELEMENT, MIXED, PCDATA, CDATA.
-	 */
-	public int getContentType() {
-		return 0;
-	}
-
-	/**
-	 * getDataType method
-	 * 
-	 * @return java.lang.String
-	 */
-	public org.eclipse.wst.xml.core.internal.contentmodel.CMDataType getDataType() {
-		return null;
-	}
-
-	/**
-	 * getElementName method
-	 * 
-	 * @return java.lang.String
-	 */
-	public String getElementName() {
-		return null;
-	}
-
-	/**
-	 * getLocalElements method
-	 * 
-	 * @return CMNamedNodeMap
-	 * 
-	 * Returns a list of locally defined elements.
-	 */
-	public org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap getLocalElements() {
-		return null;
-	}
-
-	/**
-	 * getMaxOccur method
-	 * 
-	 * @return int
-	 * 
-	 * If -1, it's UNBOUNDED.
-	 */
-	public int getMaxOccur() {
-		return 0;
-	}
-
-	/**
-	 * getMinOccur method
-	 * 
-	 * @return int
-	 * 
-	 * If 0, it's OPTIONAL. If 1, it's REQUIRED.
-	 */
-	public int getMinOccur() {
-		return 0;
-	}
-
-	/**
-	 * 
-	 * @return java.lang.String
-	 */
-	public java.lang.String getNodeName() {
-		return fNodeName;
-	}
-
-	/**
-	 * getNodeType method
-	 * 
-	 * @return int
-	 * 
-	 * Returns one of :
-	 *  
-	 */
-	public int getNodeType() {
-		return 0;
-	}
-
-	/**
-	 * getProperty method
-	 * 
-	 * @return java.lang.Object
-	 * 
-	 * Returns the object property desciped by the propertyName
-	 *  
-	 */
-	public Object getProperty(String propertyName) {
-		return null;
-	}
-
-	/**
-	 * 
-	 * @param newNodeName
-	 *            java.lang.String
-	 */
-	public void setNodeName(java.lang.String newNodeName) {
-		fNodeName = newNodeName;
-	}
-
-	/**
-	 * supports method
-	 * 
-	 * @return boolean
-	 * 
-	 * Returns true if the CMNode supports a specified property
-	 *  
-	 */
-	public boolean supports(String propertyName) {
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/SourceEditorImageHelper.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/SourceEditorImageHelper.java
deleted file mode 100644
index 3cbd698..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/SourceEditorImageHelper.java
+++ /dev/null
@@ -1,48 +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.wst.xml.ui.internal.contentassist;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-
-/**
- * @deprecated use internal XMLEditorPluginImageHelper or external
- *             SharedXMLEditorPluginImageHelper instead
- */
-public class SourceEditorImageHelper {
-
-	public SourceEditorImageHelper() {
-		super();
-	}
-
-	public Image createImage(String resource) {
-		ImageDescriptor desc = AbstractUIPlugin.imageDescriptorFromPlugin(XMLUIPlugin.ID, resource);
-		Image image = desc.createImage();
-		JFaceResources.getImageRegistry().put(resource, image);
-		return image;
-	}
-
-	public Image getImage(String resource) {
-		Image image = JFaceResources.getImageRegistry().get(resource);
-		if (image == null) {
-			image = createImage(resource);
-		}
-		return image;
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistProcessor.java
deleted file mode 100644
index 32b40df..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistProcessor.java
+++ /dev/null
@@ -1,157 +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.wst.xml.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.util.IPropertyChangeListener;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLUIPreferenceNames;
-import org.eclipse.wst.xml.ui.internal.templates.TemplateContextTypeIdsXML;
-
-public class XMLContentAssistProcessor extends AbstractContentAssistProcessor implements IPropertyChangeListener {
-
-	protected IPreferenceStore fPreferenceStore = null;
-	protected IResource fResource = null;
-	private XMLTemplateCompletionProcessor fTemplateProcessor = null;
-	private List fTemplateContexts = new ArrayList();
-
-	public XMLContentAssistProcessor() {
-		super();
-	}
-	
-	protected void addAttributeNameProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.ATTRIBUTE);
-		super.addAttributeNameProposals(contentAssistRequest);
-	}
-	
-	protected void addAttributeValueProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.ATTRIBUTE_VALUE);
-		super.addAttributeValueProposals(contentAssistRequest);
-	}
-	
-	protected void addEmptyDocumentProposals(ContentAssistRequest contentAssistRequest) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.NEW);
-		super.addEmptyDocumentProposals(contentAssistRequest);
-	}
-	
-	protected void addTagInsertionProposals(ContentAssistRequest contentAssistRequest, int childPosition) {
-		addTemplates(contentAssistRequest, TemplateContextTypeIdsXML.TAG);
-		super.addTagInsertionProposals(contentAssistRequest, childPosition);
-	}
-	
-	/**
-	 * Adds templates to the list of proposals
-	 * 
-	 * @param contentAssistRequest
-	 * @param context
-	 */
-	private void addTemplates(ContentAssistRequest contentAssistRequest, String context) {
-		addTemplates(contentAssistRequest, context, contentAssistRequest.getReplacementBeginPosition());
-	}
-	
-	/**
-	 * Adds templates to the list of proposals
-	 * 
-	 * @param contentAssistRequest
-	 * @param context
-	 * @param startOffset
-	 */
-	private void addTemplates(ContentAssistRequest contentAssistRequest, String context, int startOffset) {
-		if (contentAssistRequest == null)
-			return;
-		
-		// if already adding template proposals for a certain context type, do
-		// not add again
-		if (!fTemplateContexts.contains(context)) {
-			fTemplateContexts.add(context);
-			boolean useProposalList = !contentAssistRequest.shouldSeparate();
-
-			if (getTemplateCompletionProcessor() != null) {
-				getTemplateCompletionProcessor().setContextType(context);
-				ICompletionProposal[] proposals = getTemplateCompletionProcessor().computeCompletionProposals(fTextViewer, startOffset);
-				for (int i = 0; i < proposals.length; ++i) {
-					if (useProposalList)
-						contentAssistRequest.addProposal(proposals[i]);
-					else
-						contentAssistRequest.addMacro(proposals[i]);
-				}
-			}
-		}
-	}
-	
-	protected ContentAssistRequest computeCompletionProposals(int documentPosition, String matchString, ITextRegion completionRegion, IDOMNode treeNode, IDOMNode xmlnode) {
-		ContentAssistRequest request = super.computeCompletionProposals(documentPosition, matchString, completionRegion, treeNode, xmlnode);
-		// bug115927 use original document position for all/any region templates
-		addTemplates(request, TemplateContextTypeIdsXML.ALL, documentPosition);
-		return request;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.xml.ui.contentassist.AbstractContentAssistProcessor#computeCompletionProposals(org.eclipse.jface.text.ITextViewer, int)
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer textViewer, int documentPosition) {
-		fTemplateContexts.clear();
-		return super.computeCompletionProposals(textViewer, documentPosition);
-	}
-
-	protected IPreferenceStore getPreferenceStore() {
-		if (fPreferenceStore == null)
-			fPreferenceStore = XMLUIPlugin.getDefault().getPreferenceStore();
-		return fPreferenceStore;
-	}
-
-	private XMLTemplateCompletionProcessor getTemplateCompletionProcessor() {
-		if (fTemplateProcessor == null) {
-			fTemplateProcessor = new XMLTemplateCompletionProcessor();
-		}
-		return fTemplateProcessor;
-	}
-
-	protected void init() {
-		getPreferenceStore().addPropertyChangeListener(this);
-		reinit();
-	}
-
-	public void propertyChange(PropertyChangeEvent event) {
-		String property = event.getProperty();
-
-		if (property.compareTo(XMLUIPreferenceNames.AUTO_PROPOSE) == 0 || property.compareTo(XMLUIPreferenceNames.AUTO_PROPOSE_CODE) == 0) {
-			reinit();
-		}
-	}
-
-	protected void reinit() {
-		String key = XMLUIPreferenceNames.AUTO_PROPOSE;
-		boolean doAuto = getPreferenceStore().getBoolean(key);
-		if (doAuto) {
-			key = XMLUIPreferenceNames.AUTO_PROPOSE_CODE;
-			completionProposalAutoActivationCharacters = getPreferenceStore().getString(key).toCharArray();
-		} else {
-			completionProposalAutoActivationCharacters = null;
-		}
-	}
-
-	public void release() {
-		super.release();
-		getPreferenceStore().removePropertyChangeListener(this);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistUtilities.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistUtilities.java
deleted file mode 100644
index 16118e6..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentAssistUtilities.java
+++ /dev/null
@@ -1,490 +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.wst.xml.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionContainer;
-import org.eclipse.wst.sse.core.internal.util.ScriptLanguageKeys;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.contentassist.CustomCompletionProposal;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.w3c.dom.Document;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * @author pavery
- */
-public class XMLContentAssistUtilities extends ContentAssistUtils {
-	
-    /**
-     * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-     * way for expedency. Should be evolved in future to depend on "nestedContext".
-     */
-	private class DOMJSPRegionContextsPrivateCopy {
-		private static final String JSP_CLOSE = "JSP_CLOSE"; //$NON-NLS-1$
-		private static final String JSP_DECLARATION_OPEN = "JSP_DECLARATION_OPEN"; //$NON-NLS-1$
-		private static final String JSP_SCRIPTLET_OPEN = "JSP_SCRIPTLET_OPEN"; //$NON-NLS-1$
-		private static final String JSP_EXPRESSION_OPEN = "JSP_EXPRESSION_OPEN"; //$NON-NLS-1$
-
-	}
-
-
-	public static final String CONTENT = "Content"; //$NON-NLS-1$
-	public static final String CONTENT_SCRIPT_TYPE = "Content-Script-Type"; //$NON-NLS-1$
-	public static final String HEAD = "HEAD"; //$NON-NLS-1$
-	public static final String HTML = "HTML"; //$NON-NLS-1$
-	public static final String HTTP_EQUIV = "HTTP-EQUIV"; //$NON-NLS-1$
-	public static final String META = "META"; //$NON-NLS-1$
-
-	/**
-	 * A convenience method for getting the closing proposal given the
-	 * contents (IndexedRegion) of a tag that is started, but possibly not
-	 * ended
-	 * 
-	 * @param viewer
-	 *            the text viewer
-	 * @param documentPosition
-	 *            the cursor position in the viewer
-	 * @param indexedNode
-	 *            the contents of the tag that is started but possibly not
-	 *            ended
-	 * @param parentTagName
-	 *            the tag on which you are checkin for an ending tag
-	 * @param imagePath
-	 *            content assist image relative path 
-	 * @return ICompletionProposal
-	 */
-	public static ICompletionProposal computeJSPEndTagProposal(ITextViewer viewer, int documentPosition, IndexedRegion indexedNode, String parentTagName, String imagePath) {
-		ICompletionProposal p = null;
-
-		// check if tag is closed
-		boolean hasEndTag = true;
-		boolean isJSPTag = false;
-		IDOMNode xnode = null;
-		String tagName = ""; //$NON-NLS-1$
-		if (indexedNode instanceof IDOMNode) {
-			xnode = ((IDOMNode) indexedNode);
-			// it's ended already...
-			if (xnode.getEndStructuredDocumentRegion() != null)
-				return null;
-			IDOMNode openNode = null;
-			if (!xnode.getNodeName().equalsIgnoreCase(parentTagName))
-				openNode = (IDOMNode) xnode.getParentNode();
-			if (openNode != null) {
-				if (openNode instanceof IDOMElement) {
-					isJSPTag = ((IDOMElement) openNode).isJSPTag();
-				}
-				tagName = openNode.getNodeName();
-				hasEndTag = (openNode.getEndStructuredDocumentRegion() != null);
-			}
-		}
-
-		// it's closed, don't add close tag proposal
-		if (!hasEndTag && !isJSPTag) {
-
-			// create appropriate close tag text
-			String proposedText = "</" + tagName; //$NON-NLS-1$
-			String viewerText = viewer.getTextWidget().getText();
-			if (viewerText.length() >= documentPosition && viewerText.length() >= 2 && documentPosition >= 2) {
-				String last2chars = viewerText.substring(documentPosition - 2, documentPosition);
-				if (last2chars.endsWith("</")) //$NON-NLS-1$
-					proposedText = tagName;
-				else if (last2chars.endsWith("<")) //$NON-NLS-1$
-					proposedText = "/" + tagName; //$NON-NLS-1$
-			}
-
-			// create proposal
-			p = new CustomCompletionProposal(proposedText + ">", //$NON-NLS-1$
-						documentPosition, 0, proposedText.length() + 1, XMLEditorPluginImageHelper.getInstance().getImage(imagePath), //$NON-NLS-1$
-						NLS.bind(XMLUIMessages.End_with_, (new Object[]{proposedText})),
-						null, null, XMLRelevanceConstants.R_END_TAG);
-		}
-		else if (!hasEndTag && isJSPTag) {
-
-			// create appropriate close tag text
-			String proposedText = "%"; //$NON-NLS-1$
-			String viewerText = viewer.getTextWidget().getText();
-
-			// TODO (pa) make it smarter to add "%>" or just ">" if % is
-			// already there...
-			if (viewerText.length() >= documentPosition && viewerText.length() >= 2) {
-				String last2chars = viewerText.substring(documentPosition - 2, documentPosition);
-				String lastchar = viewerText.substring(documentPosition - 1, documentPosition);
-				if (lastchar.equals("%")) //$NON-NLS-1$
-				{
-					if (last2chars.endsWith("<%")) //$NON-NLS-1$
-						proposedText = "%"; //$NON-NLS-1$
-					else
-						proposedText = ""; //$NON-NLS-1$
-				}
-			}
-
-			// create proposal
-			p = new CustomCompletionProposal(proposedText + ">", //$NON-NLS-1$
-						documentPosition, 0, proposedText.length() + 1, XMLEditorPluginImageHelper.getInstance().getImage(imagePath), //$NON-NLS-1$
-						NLS.bind(XMLUIMessages.End_with_, (new Object[]{proposedText})),
-						null, null, XMLRelevanceConstants.R_END_TAG);
-		}
-
-		return p;
-	}
-
-
-	/**
-	 * A convenience method for getting the closing proposal given the
-	 * contents (IndexedRegion) of a tag that is started, but possibly not
-	 * ended
-	 * 
-	 * @param viewer
-	 *            the text viewer
-	 * @param documentPosition
-	 *            the cursor position in the viewer
-	 * @param indexedNode
-	 *            the contents of the tag that is started but possibly not
-	 *            ended
-	 * @param parentTagName
-	 *            the tag on which you are checkin for an ending tag
-	 * @param imagePath
-	 *            content assist relative image path
-	 * @return ICompletionProposal
-	 */
-	public static ICompletionProposal computeXMLEndTagProposal(ITextViewer viewer, int documentPosition, IndexedRegion indexedNode, String parentTagName, String imagePath) {
-		ICompletionProposal p = null;
-
-		// check if tag is closed
-		boolean hasEndTag = true;
-		IDOMNode xnode = null;
-		String tagName = ""; //$NON-NLS-1$
-		if (indexedNode instanceof IDOMNode) {
-			xnode = ((IDOMNode) indexedNode);
-			// it's ended already...
-			if (xnode.getEndStructuredDocumentRegion() != null)
-				return null;
-			IDOMNode styleNode = null;
-			if (!xnode.getNodeName().equalsIgnoreCase(parentTagName))
-				styleNode = (IDOMNode) xnode.getParentNode();
-			if (styleNode != null) {
-				tagName = styleNode.getNodeName();
-				hasEndTag = (styleNode.getEndStructuredDocumentRegion() != null);
-			}
-		}
-
-		// it's closed, don't add close tag proposal
-		if (!hasEndTag) {
-
-			// create appropriate close tag text
-			String proposedText = "</" + tagName; //$NON-NLS-1$
-			String viewerText = viewer.getTextWidget().getText();
-			if (viewerText.length() >= documentPosition && viewerText.length() >= 2 && documentPosition >= 2) {
-				String last2chars = viewerText.substring(documentPosition - 2, documentPosition);
-				if (last2chars.endsWith("</")) //$NON-NLS-1$
-					proposedText = tagName;
-				else if (last2chars.endsWith("<")) //$NON-NLS-1$
-					proposedText = "/" + tagName; //$NON-NLS-1$
-			}
-
-			// create proposal
-			p = new CustomCompletionProposal(proposedText + ">", //$NON-NLS-1$
-						documentPosition, 0, proposedText.length() + 1, XMLEditorPluginImageHelper.getInstance().getImage(imagePath), //$NON-NLS-1$
-						NLS.bind(XMLUIMessages.End_with_, (new Object[]{proposedText})),
-						null, null, XMLRelevanceConstants.R_END_TAG);
-		}
-		return p;
-	}
-
-	private static String getMetaScriptType(Document doc) {
-		// Can not just do a Document.getElementsByTagName(String) as this
-		// needs
-		// to be relatively fast.
-		List metas = new ArrayList();
-		// check for META tags under the Document
-		Node html = null;
-		Node head = null;
-		Node child = null;
-		// ----------------------------------------------------------------------
-		// (pa) 20021217
-		// cmvc defect 235554
-		// performance enhancement: using child.getNextSibling() rather than
-		// nodeList(item) for O(n) vs. O(n*n)
-		// ----------------------------------------------------------------------
-
-		for (child = doc.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (child.getNodeType() != Node.ELEMENT_NODE)
-				continue;
-			if (child.getNodeName().equalsIgnoreCase(META))
-				metas.add(child);
-			else if (child.getNodeName().equalsIgnoreCase(HTML))
-				html = child;
-		}
-		// NodeList children = doc.getChildNodes();
-		// for(int i = 0; i < children.getLength(); i++) {
-		// child = children.item(i);
-		// if(child.getNodeType() != Node.ELEMENT_NODE)
-		// continue;
-		// if(child.getNodeName().equalsIgnoreCase(META))
-		// metas.add(child);
-		// else if(child.getNodeName().equalsIgnoreCase(HTML))
-		// html = child;
-		// }
-
-		// check for META tags under HEAD
-		if (html != null) {
-			for (child = html.getFirstChild(); child != null && head == null; child = child.getNextSibling()) {
-				if (child.getNodeType() != Node.ELEMENT_NODE)
-					continue;
-				if (child.getNodeName().equalsIgnoreCase(HEAD))
-					head = child;
-			}
-			// children = html.getChildNodes();
-			// for(int i = 0; i < children.getLength() && head == null; i++) {
-			// child = children.item(i);
-			// if(child.getNodeType() != Node.ELEMENT_NODE)
-			// continue;
-			// if(child.getNodeName().equalsIgnoreCase(HEAD))
-			// head = child;
-			// }
-		}
-
-		if (head != null) {
-			for (head.getFirstChild(); child != null; child = child.getNextSibling()) {
-				if (child.getNodeType() != Node.ELEMENT_NODE)
-					continue;
-				if (child.getNodeName().equalsIgnoreCase(META))
-					metas.add(child);
-			}
-			// children = head.getChildNodes();
-			// for(int i = 0 ; i < children.getLength(); i++) {
-			// child = children.item(i);
-			// if(child.getNodeType() != Node.ELEMENT_NODE)
-			// continue;
-			// if(child.getNodeName().equalsIgnoreCase(META))
-			// metas.add(child);
-			// }
-		}
-
-		return getMetaScriptType(metas);
-	}
-
-	private static String getMetaScriptType(List metaNodeList) {
-		Node meta = null;
-		NamedNodeMap attributes = null;
-		boolean httpEquiv = false;
-		String contentScriptType = null;
-
-		for (int i = metaNodeList.size() - 1; i >= 0; i--) {
-			meta = (Node) metaNodeList.get(i);
-			attributes = meta.getAttributes();
-			httpEquiv = false;
-			contentScriptType = null;
-			for (int j = 0; j < attributes.getLength(); j++) {
-				if (attributes.item(j).getNodeName().equalsIgnoreCase(HTTP_EQUIV)) {
-					httpEquiv = attributes.item(j).getNodeValue().equalsIgnoreCase(CONTENT_SCRIPT_TYPE);
-				}
-				else if (attributes.item(j).getNodeName().equalsIgnoreCase(CONTENT)) {
-					contentScriptType = attributes.item(j).getNodeValue();
-				}
-			}
-			if (httpEquiv && contentScriptType != null)
-				return contentScriptType;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the scripting language the scriptNode is in Currently returns
-	 * javascript unless some unknown type or language is specified. Then the
-	 * unknown type/language is returned
-	 * 
-	 * @param scriptNode
-	 */
-	public static String getScriptLanguage(Node scriptNode) {
-		Node attr = null;
-
-		boolean specified = false;
-		// try to find a scripting adapter for 'type'
-		if ((scriptNode == null) || (scriptNode.getAttributes() == null))
-			return null;
-
-		attr = scriptNode.getAttributes().getNamedItem("type");//$NON-NLS-1$
-		if (attr != null) {
-			specified = true;
-			String type = attr.getNodeValue();
-			return lookupScriptType(type);
-		}
-		// now try to find a scripting adapter for 'language' (deprecated by
-		// HTML specifications)
-		attr = scriptNode.getAttributes().getNamedItem("language");//$NON-NLS-1$
-		if (attr != null) {
-			specified = true;
-			String language = attr.getNodeValue();
-			return lookupScriptLanguage(language);
-		}
-		// check if one is specified by a META tag at the root level or inside
-		// of HEAD
-		String type = null;
-		if (!specified)
-			type = getMetaScriptType(scriptNode.getOwnerDocument());
-		if (type != null) {
-			specified = true;
-			return lookupScriptType(type);
-		}
-		// return default
-		if (!specified)
-			return ScriptLanguageKeys.JAVASCRIPT;
-		return null;
-	}
-
-	/**
-	 * Tells you if the flatnode is the %> delimiter
-	 * 
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	public static boolean isJSPCloseDelimiter(IStructuredDocumentRegion fn) {
-		if (fn == null)
-			return false;
-		return isJSPCloseDelimiter(fn.getType());
-	}
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	public static boolean isJSPCloseDelimiter(String type) {
-		if (type == null)
-			return false;
-		return (type.equals(DOMJSPRegionContextsPrivateCopy.JSP_CLOSE) || type.equals(DOMRegionContext.XML_TAG_CLOSE));
-	}
-
-	/**
-	 * Tells you if the flatnode is the JSP region <%%>, <%=%>, <%!%>
-	 * 
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	public static boolean isJSPDelimiter(IStructuredDocumentRegion fn) {
-		boolean isDelimiter = false;
-		String type = fn.getType();
-		if (type != null) {
-			isDelimiter = isJSPDelimiter(type);
-		}
-		return isDelimiter;
-	}
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	public static boolean isJSPDelimiter(String type) {
-		if (type == null)
-			return false;
-		return (isJSPOpenDelimiter(type) || isJSPCloseDelimiter(type));
-	}
-
-	/**
-	 * Tells you if the flatnode is <%, <%=, or <%! ISSUE: this is a bit of
-	 * hidden JSP knowledge that was implemented this way for expedency.
-	 * Should be evolved in future to depend on "nestedContext".
-	 */
-	public static boolean isJSPOpenDelimiter(IStructuredDocumentRegion fn) {
-		if (fn == null)
-			return false;
-		return isJSPOpenDelimiter(fn.getType());
-	}
-
-    /**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	public static boolean isJSPOpenDelimiter(String type) {
-		if (type == null)
-			return false;
-		return (type.equals(DOMJSPRegionContextsPrivateCopy.JSP_SCRIPTLET_OPEN) || type.equals(DOMJSPRegionContextsPrivateCopy.JSP_DECLARATION_OPEN) || type.equals(DOMJSPRegionContextsPrivateCopy.JSP_EXPRESSION_OPEN));
-	}
-
-	/**
-	 * Tells you if the flatnode is the <jsp:scriptlet>, <jsp:expression>, or
-	 * <jsp:declaration>tag
-	 * 
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	public static boolean isXMLJSPDelimiter(IStructuredDocumentRegion fn) {
-		boolean isDelimiter = false;
-		if (fn != null && fn instanceof ITextRegionContainer) {
-			Object[] regions = ((ITextRegionContainer) fn).getRegions().toArray();
-			ITextRegion temp = null;
-			String regionText = ""; //$NON-NLS-1$
-			for (int i = 0; i < regions.length; i++) {
-				temp = (ITextRegion) regions[i];
-				if (temp.getType() == DOMRegionContext.XML_TAG_NAME) {
-					regionText = fn.getText(temp);
-					if (regionText.equalsIgnoreCase("jsp:scriptlet") || regionText.equalsIgnoreCase("jsp:expression") || regionText.equalsIgnoreCase("jsp:declaration")) //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						isDelimiter = true;
-				}
-			}
-		}
-		return isDelimiter;
-	}
-
-	/**
-	 * Returns "javascript" if language attribute is some form of javascript,
-	 * "java" if language attribute is some form of java. Otherwise, just
-	 * returns type.
-	 * 
-	 * @param language
-	 */
-	public static String lookupScriptLanguage(String language) {
-		for (int i = 0; i < ScriptLanguageKeys.JAVASCRIPT_LANGUAGE_KEYS.length; i++) {
-			if (ScriptLanguageKeys.JAVASCRIPT_LANGUAGE_KEYS[i].equalsIgnoreCase(language))
-				return ScriptLanguageKeys.JAVASCRIPT;
-		}
-		for (int i = 0; i < ScriptLanguageKeys.JAVA_LANGUAGE_KEYS.length; i++) {
-			if (ScriptLanguageKeys.JAVA_LANGUAGE_KEYS[i].equalsIgnoreCase(language))
-				return ScriptLanguageKeys.JAVA;
-		}
-		return language;
-	}
-
-	/**
-	 * Returns "javascript" if type (used in <script type="xxx"> is actually
-	 * javascript type. Otherwise, just returns type
-	 * 
-	 * @param type
-	 */
-	public static String lookupScriptType(String type) {
-		for (int i = 0; i < ScriptLanguageKeys.JAVASCRIPT_MIME_TYPE_KEYS.length; i++)
-			if (ScriptLanguageKeys.JAVASCRIPT_MIME_TYPE_KEYS[i].equalsIgnoreCase(type))
-				return ScriptLanguageKeys.JAVASCRIPT;
-		return type;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentModelGenerator.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentModelGenerator.java
deleted file mode 100644
index c3c87f3..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLContentModelGenerator.java
+++ /dev/null
@@ -1,135 +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.wst.xml.ui.internal.contentassist;
-
-
-
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Node;
-
-
-public class XMLContentModelGenerator extends AbstractContentModelGenerator {
-
-	/**
-	 * ISSUE: this is a bit of hidden JSP knowledge that was implemented this
-	 * way for expedency. Should be evolved in future to depend on
-	 * "nestedContext".
-	 */
-	private class DOMJSPRegionContextsPrivateCopy {
-		private static final String JSP_DIRECTIVE_OPEN = "JSP_DIRECTIVE_OPEN"; //$NON-NLS-1$
-	}
-
-	/**
-	 * XMLContentModelGenerator constructor comment.
-	 */
-	public XMLContentModelGenerator() {
-		super();
-	}
-
-	public void generateAttribute(CMAttributeDeclaration attrDecl, StringBuffer buffer) {
-		if (attrDecl == null || buffer == null)
-			return;
-		int usage = attrDecl.getUsage();
-		if (usage == CMAttributeDeclaration.REQUIRED) {
-			buffer.append(" "); //$NON-NLS-1$
-			generateRequiredAttribute(null, attrDecl, buffer); // todo pass
-			// ownerNode as
-			// 1st param
-		}
-		return;
-	}
-
-	protected void generateEndTag(String tagName, Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer) {
-		if (elementDecl == null)
-			return;
-		if (elementDecl.getContentType() != CMElementDeclaration.EMPTY)
-			buffer.append("</" + tagName + ">");//$NON-NLS-2$//$NON-NLS-1$
-		return;
-	}
-
-	public void generateRequiredAttribute(Node ownerNode, CMAttributeDeclaration attrDecl, StringBuffer buffer) {
-		if (attrDecl == null || buffer == null)
-			return;
-
-		// attribute name
-		String attributeName = getRequiredName(ownerNode, attrDecl);
-		CMDataType attrType = attrDecl.getAttrType();
-		// = sign
-		buffer.append(attributeName + "=\""); //$NON-NLS-1$
-		// attribute value
-		if (attrType != null) {
-			// insert any value that is implied
-			if (attrType.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_NONE && attrType.getImpliedValue() != null) {
-				buffer.append(attrType.getImpliedValue());
-			}
-			// otherwise, if an enumerated list of values exists, use the
-			// first value
-			else if (attrType.getEnumeratedValues() != null && attrType.getEnumeratedValues().length > 0) {
-				buffer.append(attrType.getEnumeratedValues()[0]);
-			}
-		}
-		buffer.append("\""); //$NON-NLS-1$
-		return;
-	}
-
-	protected void generateStartTag(String tagName, Node parentNode, CMElementDeclaration elementDecl, StringBuffer buffer) {
-		if (elementDecl == null || buffer == null)
-			return;
-		buffer.append("<" + tagName);//$NON-NLS-1$
-		generateAttributes(elementDecl, buffer);
-		buffer.append(getStartTagClose(parentNode, elementDecl));
-		return;
-	}
-
-	public int getMinimalStartTagLength(Node node, CMElementDeclaration elementDecl) {
-		if (elementDecl == null)
-			return 0;
-		if (requiresAttributes(elementDecl)) {
-			return getRequiredName(node, elementDecl).length() + 2; // < +
-			// name +
-			// space
-		}
-		else {
-			return 1 + getRequiredName(node, elementDecl).length() + getStartTagClose(node, elementDecl).length(); // < +
-			// name
-			// +
-			// appropriate
-			// close
-		}
-	}
-
-	protected String getOtherClose(Node notATagNode) {
-		if (notATagNode instanceof IDOMNode) {
-			IStructuredDocumentRegion node = ((IDOMNode) notATagNode).getStartStructuredDocumentRegion();
-			if (node != null && node.getNumberOfRegions() > 1 && node.getRegions().get(0).getType().equals(DOMJSPRegionContextsPrivateCopy.JSP_DIRECTIVE_OPEN)) {
-				return "%>"; //$NON-NLS-1$
-			}
-		}
-		return null;
-	}
-
-	public String getStartTagClose(Node parentNode, CMElementDeclaration elementDecl) {
-		String other = getOtherClose(parentNode);
-		if (other != null)
-			return other;
-		if (elementDecl == null)
-			return ">";//$NON-NLS-1$
-		if (elementDecl.getContentType() == CMElementDeclaration.EMPTY)
-			return "/>"; //$NON-NLS-1$
-		return ">"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLRelevanceConstants.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLRelevanceConstants.java
deleted file mode 100644
index 1ac3554..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLRelevanceConstants.java
+++ /dev/null
@@ -1,52 +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.wst.xml.ui.internal.contentassist;
-
-import org.eclipse.wst.sse.ui.internal.contentassist.IRelevanceConstants;
-
-
-
-/**
- * some relevance constants for content assist higher relevance means it shows
- * up higher on the list
- */
-public interface XMLRelevanceConstants extends IRelevanceConstants {
-
-	int R_CDATA = 400;
-	int R_CLOSE_TAG = 1500;
-
-	int R_COMMENT = 100;
-
-	// moved this above macros
-	int R_DOCTYPE = 600;
-	int R_END_TAG = 1400;
-	int R_END_TAG_NAME = 1100;
-	int R_ENTITY = 1000;
-	int R_JSP = 500;
-
-	int R_JSP_ATTRIBUTE_VALUE = 700;
-
-	// (pa) make these the same relevance so proposals are same order for V501
-	int R_MACRO = 500;
-
-	// add this onto "required" attrs, elements, etc to bubble them up on
-	// sorting...
-	// CMVC 246618
-	int R_REQUIRED = 10;
-	int R_TAG_INSERTION = 500;
-    int R_STRICTLY_VALID_TAG_INSERTION = 600;
-	int R_TAG_NAME = 1200;
-	int R_XML_ATTRIBUTE_NAME = 900;
-	int R_XML_ATTRIBUTE_VALUE = 800;
-	int R_XML_DECLARATION = 1300;
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLTemplateCompletionProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLTemplateCompletionProcessor.java
deleted file mode 100644
index b102d82..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentassist/XMLTemplateCompletionProcessor.java
+++ /dev/null
@@ -1,167 +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.wst.xml.ui.internal.contentassist;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.templates.ContextTypeRegistry;
-import org.eclipse.jface.text.templates.Template;
-import org.eclipse.jface.text.templates.TemplateCompletionProcessor;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.jface.text.templates.TemplateContextType;
-import org.eclipse.jface.text.templates.TemplateException;
-import org.eclipse.jface.text.templates.TemplateProposal;
-import org.eclipse.jface.text.templates.persistence.TemplateStore;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-
-
-/**
- * Completion processor for XML Templates. Most of the work is already done by
- * the XML Content Assist processor, so by the time the
- * XMLTemplateCompletionProcessor is asked for content assist proposals, the
- * XML content assist processor has already set the context type for
- * templates.
- */
-class XMLTemplateCompletionProcessor extends TemplateCompletionProcessor {
-	private static final class ProposalComparator implements Comparator {
-		public int compare(Object o1, Object o2) {
-			return ((TemplateProposal) o2).getRelevance() - ((TemplateProposal) o1).getRelevance();
-		}
-	}
-
-	private static final Comparator fgProposalComparator = new ProposalComparator();
-	private String fContextTypeId = null;
-
-	/*
-	 * Copied from super class except instead of calling createContext(viewer,
-	 * region) call createContext(viewer, region, offset) instead
-	 */
-	public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
-
-		ITextSelection selection = (ITextSelection) viewer.getSelectionProvider().getSelection();
-
-		// adjust offset to end of normalized selection
-		if (selection.getOffset() == offset)
-			offset = selection.getOffset() + selection.getLength();
-
-		String prefix = extractPrefix(viewer, offset);
-		Region region = new Region(offset - prefix.length(), prefix.length());
-		TemplateContext context = createContext(viewer, region, offset);
-		if (context == null)
-			return new ICompletionProposal[0];
-
-		// name of the selection variables {line, word}_selection
-		context.setVariable("selection", selection.getText()); //$NON-NLS-1$
-
-		Template[] templates = getTemplates(context.getContextType().getId());
-
-		List matches = new ArrayList();
-		for (int i = 0; i < templates.length; i++) {
-			Template template = templates[i];
-			try {
-				context.getContextType().validate(template.getPattern());
-			}
-			catch (TemplateException e) {
-				continue;
-			}
-			if (template.matches(prefix, context.getContextType().getId()))
-				matches.add(createProposal(template, context, (IRegion) region, getRelevance(template, prefix)));
-		}
-
-		Collections.sort(matches, fgProposalComparator);
-
-		return (ICompletionProposal[]) matches.toArray(new ICompletionProposal[matches.size()]);
-	}
-
-	/**
-	 * Creates a concrete template context for the given region in the
-	 * document. This involves finding out which context type is valid at the
-	 * given location, and then creating a context of this type. The default
-	 * implementation returns a <code>SmartReplaceTemplateContext</code> for
-	 * the context type at the given location. This takes the offset at which
-	 * content assist was invoked into consideration.
-	 * 
-	 * @param viewer
-	 *            the viewer for which the context is created
-	 * @param region
-	 *            the region into <code>document</code> for which the
-	 *            context is created
-	 * @param offset
-	 *            the original offset where content assist was invoked
-	 * @return a template context that can handle template insertion at the
-	 *         given location, or <code>null</code>
-	 */
-	private TemplateContext createContext(ITextViewer viewer, IRegion region, int offset) {
-		// pretty much same code as super.createContext except create
-		// SmartReplaceTemplateContext
-		TemplateContextType contextType = getContextType(viewer, region);
-		if (contextType != null) {
-			IDocument document = viewer.getDocument();
-			return new ReplaceNameTemplateContext(contextType, document, region.getOffset(), region.getLength(), offset);
-		}
-		return null;
-	}
-
-	protected ICompletionProposal createProposal(Template template, TemplateContext context, IRegion region, int relevance) {
-		return new CustomTemplateProposal(template, context, region, getImage(template), relevance);
-	}
-
-	protected TemplateContextType getContextType(ITextViewer viewer, IRegion region) {
-		TemplateContextType type = null;
-
-		ContextTypeRegistry registry = getTemplateContextRegistry();
-		if (registry != null)
-			type = registry.getContextType(fContextTypeId);
-
-		return type;
-	}
-
-	protected Image getImage(Template template) {
-		// just return the same image for now
-		return XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TAG_MACRO);
-	}
-
-	private ContextTypeRegistry getTemplateContextRegistry() {
-		return XMLUIPlugin.getDefault().getTemplateContextRegistry();
-	}
-
-	protected Template[] getTemplates(String contextTypeId) {
-		Template templates[] = null;
-
-		TemplateStore store = getTemplateStore();
-		if (store != null)
-			templates = store.getTemplates(contextTypeId);
-
-		return templates;
-	}
-
-	private TemplateStore getTemplateStore() {
-		return XMLUIPlugin.getDefault().getTemplateStore();
-	}
-
-	void setContextType(String contextTypeId) {
-		fContextTypeId = contextTypeId;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapter.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapter.java
deleted file mode 100644
index 02e4c46..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapter.java
+++ /dev/null
@@ -1,246 +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.wst.xml.ui.internal.contentoutline;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.xml.ui.internal.editor.CMImageUtil;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-import org.w3c.dom.Node;
-
-/**
- * Adapts a DOM node to a JFace viewer.
- */
-public class JFaceNodeAdapter implements IJFaceNodeAdapter {
-
-	final static Class ADAPTER_KEY = IJFaceNodeAdapter.class;
-
-	/**
-	 * debug .option
-	 */
-	private static final boolean DEBUG = getDebugValue();
-
-	private static boolean getDebugValue() {
-		String value = Platform.getDebugOption("org.eclipse.wst.sse.ui/debug/outline"); //$NON-NLS-1$
-		boolean result = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-		return result;
-	}
-
-	JFaceNodeAdapterFactory fAdapterFactory;
-	private RefreshStructureJob fRefreshJob = null;
-
-	public JFaceNodeAdapter(JFaceNodeAdapterFactory adapterFactory) {
-		super();
-		this.fAdapterFactory = adapterFactory;
-	}
-
-	protected Image createImage(Object object) {
-		Image image = null;
-		Node node = (Node) object;
-		switch (node.getNodeType()) {
-			case Node.ELEMENT_NODE : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ELEMENT);
-				break;
-			}
-			case Node.ATTRIBUTE_NODE : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE);
-				break;
-			}
-			case Node.TEXT_NODE : { // actually, TEXT should never be seen in
-				// the tree
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ELEMENT);
-				break;
-			}
-			case Node.CDATA_SECTION_NODE : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_CDATASECTION);
-				break;
-			}
-			case Node.ENTITY_REFERENCE_NODE :
-			case Node.ENTITY_NODE : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ENTITY);
-				break;
-			}
-			case Node.PROCESSING_INSTRUCTION_NODE : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_PROCESSINGINSTRUCTION);
-				break;
-			}
-			case Node.COMMENT_NODE : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_COMMENT);
-				break;
-			}
-			case Node.DOCUMENT_TYPE_NODE : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_DOCTYPE);
-				break;
-			}
-			case Node.NOTATION_NODE : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_NOTATION);
-				break;
-			}
-			default : {
-				image = createXMLImageDescriptor(XMLEditorPluginImages.IMG_OBJ_ELEMENT);
-				break;
-			}
-		}
-		return image;
-	}
-
-	protected Image createXMLImageDescriptor(String imageResourceName) {
-		return XMLEditorPluginImageHelper.getInstance().getImage(imageResourceName);
-	}
-
-	public Object[] getChildren(Object object) {
-
-		// (pa) 20021217
-		// cmvc defect 235554
-		// performance enhancement: using child.getNextSibling() rather than
-		// nodeList(item) for O(n) vs. O(n*n)
-		//
-		Node node = (Node) object;
-		ArrayList v = new ArrayList();
-		for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
-			Node n = child;
-			if (n.getNodeType() != Node.TEXT_NODE)
-				v.add(n);
-		}
-		return v.toArray();
-	}
-
-	/**
-	 * Returns an enumeration with the elements belonging to the passed
-	 * element. These are the top level items in a list, tree, table, etc...
-	 */
-	public Object[] getElements(Object node) {
-		return getChildren(node);
-	}
-
-	/**
-	 * Fetches the label image specific to this object instance.
-	 */
-	public Image getLabelImage(Object node) {
-		Image image = CMImageUtil.getImage(CMImageUtil.getDeclaration((Node) node));
-		if (image == null && JFaceResources.getImageRegistry() != null) {
-			ImageRegistry imageRegistry = JFaceResources.getImageRegistry();
-			String nodeName = getNodeName(node);
-			image = imageRegistry.get(nodeName);
-			if (image == null) {
-				image = createImage(node);
-				if (image != null)
-					imageRegistry.put(nodeName, image);
-			}
-		}
-		return image;
-	}
-
-	/**
-	 * Fetches the label text specific to this object instance.
-	 */
-	public String getLabelText(Object node) {
-		return getNodeName(node);
-	}
-
-	private String getNodeName(Object object) {
-		StringBuffer nodeName = new StringBuffer();
-		Node node = (Node) object;
-		nodeName.append(node.getNodeName());
-
-		if (node.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
-			nodeName.insert(0, "DOCTYPE:"); //$NON-NLS-1$
-		}
-		return nodeName.toString();
-	}
-
-
-	public Object getParent(Object object) {
-		Node node = (Node) object;
-		return node.getParentNode();
-	}
-
-	private synchronized RefreshStructureJob getRefreshJob() {
-		if (fRefreshJob == null)
-			fRefreshJob = new RefreshStructureJob();
-		return fRefreshJob;
-	}
-
-
-	public boolean hasChildren(Object object) {
-		// (pa) 20021217
-		// cmvc defect 235554 > use child.getNextSibling() instead of
-		// nodeList(item) for O(n) vs. O(n*n)
-		Node node = (Node) object;
-		for (Node child = node.getFirstChild(); child != null; child = child.getNextSibling()) {
-			if (child.getNodeType() != Node.TEXT_NODE)
-				return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Allowing the INodeAdapter to compare itself against the type allows it
-	 * to return true in more than one case.
-	 */
-	public boolean isAdapterForType(Object type) {
-		if (type == null) {
-			return false;
-		}
-		return type.equals(ADAPTER_KEY);
-	}
-
-	/**
-	 * Called by the object being adapter (the notifier) when something has
-	 * changed.
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// future_TODO: the 'uijobs' used in this method were added to solve
-		// threading problems when the dom
-		// is updated in the background while the editor is open. They may be
-		// a bit overkill and not that useful.
-		// (That is, may be be worthy of job manager management). If they are
-		// found to be important enough to leave in,
-		// there's probably some optimization that can be done.
-		if (notifier instanceof Node) {
-			Collection listeners = fAdapterFactory.getListeners();
-			Iterator iterator = listeners.iterator();
-
-			while (iterator.hasNext()) {
-				Object listener = iterator.next();
-				// https://bugs.eclipse.org/bugs/show_bug.cgi?id=90637
-				// if (notifier instanceof Node && (listener instanceof
-				// StructuredViewer) && (eventType ==
-				// INodeNotifier.STRUCTURE_CHANGED || (eventType ==
-				// INodeNotifier.CHANGE && changedFeature == null))) {
-				if ((listener instanceof StructuredViewer) && (eventType == INodeNotifier.STRUCTURE_CHANGED || eventType == INodeNotifier.CONTENT_CHANGED || (eventType == INodeNotifier.CHANGE))) {
-					if (DEBUG) {
-						System.out.println("JFaceNodeAdapter notified on event type > " + eventType); //$NON-NLS-1$
-					}
-
-					// refresh on structural and "unknown" changes
-					StructuredViewer structuredViewer = (StructuredViewer) listener;
-					// https://w3.opensource.ibm.com/bugzilla/show_bug.cgi?id=5230
-					if (structuredViewer.getControl() != null) {
-						getRefreshJob().refresh(structuredViewer, (Node) notifier);
-					}
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapterFactory.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapterFactory.java
deleted file mode 100644
index 8ee8b42..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeAdapterFactory.java
+++ /dev/null
@@ -1,173 +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.wst.xml.ui.internal.contentoutline;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapterFactory;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManagerListener;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-
-/**
- * An adapter factory to create JFaceNodeAdapters. Use this adapter factory
- * with a JFaceAdapterContentProvider to display DOM nodes in a tree.
- */
-public class JFaceNodeAdapterFactory extends AbstractAdapterFactory implements IJFaceNodeAdapterFactory {
-	public class CMDocumentManagerListenerImpl implements CMDocumentManagerListener {
-		private static final int UPDATE_DELAY = 200;
-
-		public void cacheCleared(CMDocumentCache cache) {
-			// nothing to do
-		}
-
-		public void cacheUpdated(CMDocumentCache cache, final String uri, int oldStatus, int newStatus, CMDocument cmDocument) {
-			if (newStatus == CMDocumentCache.STATUS_LOADED || newStatus == CMDocumentCache.STATUS_ERROR) {
-				refreshViewers();
-			}
-		}
-
-		public void propertyChanged(CMDocumentManager cmDocumentManager, String propertyName) {
-			if (cmDocumentManager.getPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD)) {
-				refreshViewers();
-			}
-		}
-
-		private void refreshViewers() {
-			Object[] listeners = getListeners().toArray();
-			for (int i = 0; i < listeners.length; i++) {
-				if (listeners[i] instanceof StructuredViewer) {
-					final StructuredViewer viewer = (StructuredViewer) listeners[i];
-					Job refresh = new UIJob(XMLUIMessages.refreshoutline_0) {
-						public IStatus runInUIThread(IProgressMonitor monitor) {
-							Control refreshControl = viewer.getControl();
-							if (refreshControl != null && !refreshControl.isDisposed()) {
-								viewer.refresh(true);
-							}
-							return Status.OK_STATUS;
-						}
-					};
-					refresh.setSystem(true);
-					refresh.setPriority(Job.SHORT);
-					refresh.schedule(UPDATE_DELAY);
-				}
-				else if (listeners[i] instanceof Viewer) {
-					final Viewer viewer = (Viewer) listeners[i];
-					Job refresh = new UIJob(XMLUIMessages.refreshoutline_0) {
-						public IStatus runInUIThread(IProgressMonitor monitor) {
-							Control refreshControl = viewer.getControl();
-							if (refreshControl != null && !refreshControl.isDisposed()) {
-								viewer.refresh();
-							}
-							return Status.OK_STATUS;
-						}
-					};
-					refresh.setSystem(true);
-					refresh.setPriority(Job.SHORT);
-					refresh.schedule(UPDATE_DELAY);
-				}
-			}
-		}
-	}
-
-	private CMDocumentManager cmDocumentManager;
-	private CMDocumentManagerListenerImpl fCMDocumentManagerListener = null;
-	/**
-	 * This keeps track of all the listeners.
-	 */
-	private Set fListeners = new HashSet();
-
-	protected INodeAdapter singletonAdapter;
-
-	public JFaceNodeAdapterFactory() {
-		this(IJFaceNodeAdapter.class, true);
-	}
-
-	public JFaceNodeAdapterFactory(Object adapterKey, boolean registerAdapters) {
-		super(adapterKey, registerAdapters);
-	}
-
-	public synchronized void addListener(Object listener) {
-		fListeners.add(listener);
-	}
-
-	public INodeAdapterFactory copy() {
-		return new JFaceNodeAdapterFactory(getAdapterKey(), isShouldRegisterAdapter());
-	}
-
-	/**
-	 * Create a new JFace adapter for the DOM node passed in
-	 */
-	protected INodeAdapter createAdapter(INodeNotifier node) {
-		if (singletonAdapter == null) {
-			// create the JFaceNodeAdapter
-			singletonAdapter = new JFaceNodeAdapter(this);
-			initAdapter(singletonAdapter, node);
-		}
-		return singletonAdapter;
-	}
-
-
-	/**
-	 * returns "copy" so no one can modify our list. It is a shallow copy.
-	 */
-	public synchronized Collection getListeners() {
-		return new ArrayList(fListeners);
-	}
-
-	protected void initAdapter(INodeAdapter adapter, INodeNotifier node) {
-		// register for CMDocumentManager events
-		ModelQueryAdapter mqadapter = (ModelQueryAdapter) node.getAdapterFor(ModelQueryAdapter.class);
-		if (mqadapter != null) {
-			ModelQuery mquery = mqadapter.getModelQuery();
-			if (mquery != null && mquery.getCMDocumentManager() != null) {
-				cmDocumentManager = mquery.getCMDocumentManager();
-				fCMDocumentManagerListener = new CMDocumentManagerListenerImpl();
-				cmDocumentManager.addListener(fCMDocumentManagerListener);
-			}
-		}
-	}
-
-	public void release() {
-		// deregister from CMDocumentManager events
-		if (cmDocumentManager != null && fCMDocumentManagerListener != null) {
-			cmDocumentManager.removeListener(fCMDocumentManagerListener);
-		}
-		fListeners.clear();
-	}
-
-	public synchronized void removeListener(Object listener) {
-		fListeners.remove(listener);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeContentProvider.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeContentProvider.java
deleted file mode 100644
index 7327b15..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeContentProvider.java
+++ /dev/null
@@ -1,114 +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.wst.xml.ui.internal.contentoutline;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapterFactory;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-
-
-/**
- * An ITreeContentProvider for a TreeViewers used to display DOM nodes. This
- * content provider takes an adapter factory to create JFace adapters for the
- * nodes in the tree.
- */
-public class JFaceNodeContentProvider implements ITreeContentProvider {
-
-	public JFaceNodeContentProvider() {
-		super();
-	}
-
-	/**
-	 * The visual part that is using this content provider is about to be
-	 * disposed. Deallocate all allocated SWT resources.
-	 */
-	public void dispose() {
-	}
-
-	/**
-	 * Returns the JFace adapter for the specified object.
-	 * 
-	 * @param adaptable
-	 *            java.lang.Object The object to get the adapter for
-	 */
-	protected IJFaceNodeAdapter getAdapter(Object adaptable) {
-		if (adaptable instanceof INodeNotifier) {
-			INodeAdapter adapter = ((INodeNotifier) adaptable).getAdapterFor(IJFaceNodeAdapter.class);
-			if (adapter instanceof IJFaceNodeAdapter)
-				return (IJFaceNodeAdapter) adapter;
-		}
-		return null;
-	}
-
-	public Object[] getChildren(Object object) {
-		IJFaceNodeAdapter adapter = getAdapter(object);
-
-		if (adapter != null)
-			return adapter.getChildren(object);
-
-		return new Object[0];
-	}
-
-	public Object[] getElements(Object object) {
-		// The root is usually an instance of an XMLStructuredModel in
-		// which case we want to extract the document.
-		Object topNode = object;
-		if (object instanceof IDOMModel)
-			topNode = ((IDOMModel) object).getDocument();
-
-		IJFaceNodeAdapter adapter = getAdapter(topNode);
-
-		if (adapter != null)
-			return adapter.getElements(topNode);
-
-		return new Object[0];
-	}
-
-	public Object getParent(Object object) {
-		IJFaceNodeAdapter adapter = getAdapter(object);
-
-		if (adapter != null)
-			return adapter.getParent(object);
-
-		return null;
-	}
-
-	public boolean hasChildren(Object object) {
-		IJFaceNodeAdapter adapter = getAdapter(object);
-
-		if (adapter != null)
-			return adapter.hasChildren(object);
-
-		return false;
-	}
-
-	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		if (oldInput != null && oldInput instanceof IStructuredModel) {
-			IJFaceNodeAdapterFactory factory = (IJFaceNodeAdapterFactory) ((IStructuredModel) oldInput).getFactoryRegistry().getFactoryFor(IJFaceNodeAdapter.class);
-			if (factory != null) {
-				factory.removeListener(viewer);
-			}
-		}
-		if (newInput != null && newInput instanceof IStructuredModel) {
-			IJFaceNodeAdapterFactory factory = (IJFaceNodeAdapterFactory) ((IStructuredModel) newInput).getFactoryRegistry().getFactoryFor(IJFaceNodeAdapter.class);
-			if (factory != null) {
-				factory.addListener(viewer);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeLabelProvider.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeLabelProvider.java
deleted file mode 100644
index 7472df9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/JFaceNodeLabelProvider.java
+++ /dev/null
@@ -1,74 +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.wst.xml.ui.internal.contentoutline;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-
-/**
- * A label provider backed by JFaceNodeAdapters.
- */
-public class JFaceNodeLabelProvider extends LabelProvider {
-	/**
-	 * JFaceNodeLabelProvider constructor comment.
-	 */
-	public JFaceNodeLabelProvider() {
-		super();
-	}
-
-	/**
-	 * Returns the JFace adapter for the specified object.
-	 * 
-	 * @param adaptable
-	 *            java.lang.Object The object to get the adapter for
-	 */
-	protected IJFaceNodeAdapter getAdapter(Object adaptable) {
-		if (adaptable instanceof INodeNotifier) {
-			INodeAdapter adapter = ((INodeNotifier) adaptable).getAdapterFor(IJFaceNodeAdapter.class);
-			if (adapter instanceof IJFaceNodeAdapter)
-				return (IJFaceNodeAdapter) adapter;
-		}
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-	 */
-	public Image getImage(Object element) {
-		return getAdapter(element).getLabelImage(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-	 */
-	public String getText(Object element) {
-		return getAdapter(element).getLabelText(element);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
-	 *      java.lang.String)
-	 */
-	public boolean isLabelProperty(Object element, String property) {
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/RefreshStructureJob.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/RefreshStructureJob.java
deleted file mode 100644
index 1f6309e..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/RefreshStructureJob.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.contentoutline;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * This job holds a queue of updates (affected nodes) for multiple structured
- * viewers. When a new request comes in, the current run is cancelled, the new
- * request is added to the queue, then the job is re-scheduled. Support for
- * multiple structured viewers is required because refresh updates are usually
- * triggered by model changes, and the model may be visible in more than one
- * viewer.
- * 
- * @author pavery
- */
-class RefreshStructureJob extends Job {
-
-	/** debug flag */
-	static final boolean DEBUG;
-	private static final long UPDATE_DELAY = 250;
-	static {
-		String value = Platform.getDebugOption("org.eclipse.wst.sse.ui/debug/refreshStructure"); //$NON-NLS-1$
-		DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$
-	}
-	/** List of refresh requests (Nodes) */
-	private final List fRequests;
-	/** the structured viewers */
-	List fViewers = new ArrayList(3);
-
-	public RefreshStructureJob() {
-		super(XMLUIMessages.refreshoutline_0); //$NON-NLS-1$
-		setPriority(Job.LONG);
-		setSystem(true);
-		fRequests = new ArrayList(2);
-	}
-
-	private synchronized void addRequest(Node newNodeRequest) {
-		/*
-		 * note: the caller must NOT pass in null node request (which, since
-		 * private method, we do not need to gaurd against here, as long 
-		 * as we gaurd against it in calling method.
-		 */
-		int size = fRequests.size();
-		for (int i = 0; i < size; i++) {
-			Node existingNodeRequest = (Node) fRequests.get(i);
-			/*
-			 * https://bugs.eclipse.org/bugs/show_bug.cgi?id=157427 If we
-			 * already have a request which equals the new request, discard
-			 * the new request
-			 */
-			if (existingNodeRequest.equals(newNodeRequest))
-				return;
-			/*
-			 * If we already have a request which contains the new request,
-			 * discard the new request
-			 */
-			if (contains(existingNodeRequest, newNodeRequest))
-				return;
-			/*
-			 * If new request contains any existing requests, replace it with
-			 * new request. ISSUE: technically, we should replace ALL
-			 * contained, existing requests (such as if many siblings already
-			 * que'd up when their common parent is then requested, but, I'm
-			 * not sure if that occurs much, in practice, or if there's an
-			 * algorithm to quickly find them all. Actually, I guess we could
-			 * just go through the _rest_ of the list (i+1 to size) and remove
-			 * any that are contained by new request ... in future :) .
-			 */
-			if (contains(newNodeRequest, existingNodeRequest)) {
-				fRequests.set(i, newNodeRequest);
-				return;
-			}
-		}
-		/*
-		 * If we get to here, either from existing request list being zero
-		 * length, or no exisitng requests "matched" new request, then add the
-		 * new request.
-		 */
-		fRequests.add(newNodeRequest);
-	}
-
-	private synchronized void addViewer(StructuredViewer viewer) {
-		if (!fViewers.contains(viewer)) {
-			fViewers.add(viewer);
-		}
-	}
-
-	/**
-	 * Simple hierarchical containment relationship. Note, this method returns
-	 * "false" if the two nodes are equal!
-	 * 
-	 * @param root
-	 * @param possible
-	 * @return if the root is parent of possible, return true, otherwise
-	 *         return false
-	 */
-	private boolean contains(Node root, Node possible) {
-		if (DEBUG) {
-			System.out.println("=============================================================================================================="); //$NON-NLS-1$
-			System.out.println("recursive call w/ root: " + root.getNodeName() + " and possible: " + possible); //$NON-NLS-1$ //$NON-NLS-2$
-			System.out.println("--------------------------------------------------------------------------------------------------------------"); //$NON-NLS-1$
-		}
-
-		// the following checks are important
-		// #document node will break the algorithm otherwise
-
-		// can't contain the child if it's null
-		if (root == null) {
-			if (DEBUG)
-				System.out.println("returning false: root is null"); //$NON-NLS-1$
-			return false;
-		}
-		// nothing can be parent of Document node
-		if (possible instanceof Document) {
-			if (DEBUG)
-				System.out.println("returning false: possible is Document node"); //$NON-NLS-1$
-			return false;
-		}
-		// document contains everything
-		if (root instanceof Document) {
-			if (DEBUG)
-				System.out.println("returning true: root is Document node"); //$NON-NLS-1$
-			return true;
-		}
-
-		// check parentage
-		Node current = possible;
-		// loop parents
-		while (current != null && current.getNodeType() != Node.DOCUMENT_NODE) {
-			// found it
-			if (root.equals(current)) {
-				if (DEBUG)
-					System.out.println("   !!! found: " + possible.getNodeName() + " in subelement of: " + root.getNodeName()); //$NON-NLS-1$ //$NON-NLS-2$
-				return true;
-			}
-			current = current.getParentNode();
-		}
-		// never found it
-		return false;
-	}
-
-	/**
-	 * Refresh must be on UI thread because it's on a SWT widget.
-	 * 
-	 * @param node
-	 */
-	private void doRefresh(final Node node, final StructuredViewer[] viewers) {
-		final Display display = PlatformUI.getWorkbench().getDisplay();
-		display.asyncExec(new Runnable() {
-			public void run() {
-				if (DEBUG)
-					System.out.println("refresh on: [" + node.getNodeName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$
-
-				for (int i = 0; i < viewers.length; i++) {
-					if (!viewers[i].getControl().isDisposed()) {
-						if (node.getNodeType() == Node.DOCUMENT_NODE) {
-							viewers[i].refresh(true);
-						}
-						else {
-							viewers[i].refresh(node, true);
-						}
-					}
-					else {
-						if (DEBUG)
-							System.out.println("   !!! skipped refreshing disposed viewer: " + viewers[i]); //$NON-NLS-1$
-					}
-				}
-			}
-		});
-	}
-
-	/**
-	 * This method also synchronized because it accesses the fRequests queue
-	 * and fViewers list
-	 * 
-	 * @return an array containing and array of the currently requested Nodes
-	 *         to refresh and the viewers in which to refresh them
-	 */
-	private synchronized Object[] getRequests() {
-		Node[] toRefresh = (Node[]) fRequests.toArray(new Node[fRequests.size()]);
-		fRequests.clear();
-
-		StructuredViewer[] viewers = (StructuredViewer[]) fViewers.toArray(new StructuredViewer[fViewers.size()]);
-		fViewers.clear();
-
-		return new Object[]{toRefresh, viewers};
-	}
-
-	/**
-	 * Invoke a refresh on the viewer on the given node.
-	 * 
-	 * @param node
-	 */
-	public void refresh(StructuredViewer viewer, Node node) {
-		if (node == null)
-			return;
-
-		addViewer(viewer);
-		addRequest(node);
-		schedule(UPDATE_DELAY);
-	}
-
-	protected IStatus run(IProgressMonitor monitor) {
-		IStatus status = Status.OK_STATUS;
-		try {
-			// Retrieve BOTH viewers and Nodes on one block
-			Object[] requests = getRequests();
-			Node[] nodes = (Node[]) requests[0];
-			StructuredViewer[] viewers = (StructuredViewer[]) requests[1];
-
-			for (int i = 0; i < nodes.length; i++) {
-				if (monitor.isCanceled())
-					throw new OperationCanceledException();
-				doRefresh(nodes[i], viewers);
-			}
-		}
-		finally {
-			monitor.done();
-		}
-		return status;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/XMLNodeActionManager.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/XMLNodeActionManager.java
deleted file mode 100644
index 4b3b00f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/contentoutline/XMLNodeActionManager.java
+++ /dev/null
@@ -1,52 +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.wst.xml.ui.internal.contentoutline;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
-import org.eclipse.wst.xml.ui.internal.actions.AbstractNodeActionManager;
-import org.w3c.dom.Node;
-
-
-public class XMLNodeActionManager extends AbstractNodeActionManager {
-	public XMLNodeActionManager(IStructuredModel model, Viewer viewer) {
-		super(model, ModelQueryUtil.getModelQuery(model), viewer);
-	}
-
-	public void reformat(Node newElement, boolean deep) {
-		try {
-			// tell the model that we are about to make a big model change
-			fModel.aboutToChangeModel();
-
-			// format selected node
-			IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
-			formatProcessor.formatNode(newElement);
-		} finally {
-			// tell the model that we are done with the big model change
-			fModel.changedModel();
-		}
-	}
-
-	public void setModel(IStructuredModel newModel) {
-		fModel = newModel;
-		setModelQuery(ModelQueryUtil.getModelQuery(newModel));
-	}
-
-	protected void setModelQuery(ModelQuery newModelQuery) {
-		modelQuery = newModelQuery;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/CorrectionAssistantProviderXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/CorrectionAssistantProviderXML.java
deleted file mode 100644
index d287aab..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/CorrectionAssistantProviderXML.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.correction;
-
-import org.eclipse.jface.text.contentassist.ContentAssistant;
-import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
-import org.eclipse.jface.text.contentassist.IContentAssistant;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.ui.internal.correction.CorrectionAssistantProvider;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-
-/**
- * Correction assistant for XML
- */
-public class CorrectionAssistantProviderXML extends CorrectionAssistantProvider {
-
-	public IContentAssistant getCorrectionAssistant(ISourceViewer sourceViewer) {
-		IContentAssistant ca = null;
-
-		if (sourceViewer != null) {
-			ContentAssistant assistant = new ContentAssistant();
-
-			if (sourceViewer != null) {
-				IContentAssistProcessor correctionProcessor = new CorrectionProcessorXML(sourceViewer);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_DEFAULT);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_CDATA);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_COMMENT);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_DECLARATION);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.XML_PI);
-				assistant.setContentAssistProcessor(correctionProcessor, IXMLPartitions.DTD_SUBSET);
-			}
-			ca = assistant;
-		}
-
-		return ca;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/CorrectionProcessorXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/CorrectionProcessorXML.java
deleted file mode 100644
index 3234825..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/CorrectionProcessorXML.java
+++ /dev/null
@@ -1,42 +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.wst.xml.ui.internal.correction;
-
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.wst.sse.ui.internal.correction.IQuickAssistProcessor;
-import org.eclipse.wst.sse.ui.internal.correction.IQuickFixProcessor;
-import org.eclipse.wst.sse.ui.internal.correction.StructuredCorrectionProcessor;
-
-
-public class CorrectionProcessorXML extends StructuredCorrectionProcessor {
-	protected IQuickAssistProcessor fQuickAssistProcessor;
-	protected IQuickFixProcessor fQuickFixProcessor;
-
-	public CorrectionProcessorXML(ISourceViewer sourceViewer) {
-		super(sourceViewer);
-	}
-
-	protected IQuickAssistProcessor getQuickAssistProcessor() {
-		if (fQuickAssistProcessor == null)
-			fQuickAssistProcessor = new QuickAssistProcessorXML();
-
-		return fQuickAssistProcessor;
-	}
-
-	protected IQuickFixProcessor getQuickFixProcessor() {
-		if (fQuickFixProcessor == null)
-			fQuickFixProcessor = new QuickFixProcessorXML();
-
-		return fQuickFixProcessor;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/InsertRequiredAttrsQuickAssistProposal.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/InsertRequiredAttrsQuickAssistProposal.java
deleted file mode 100644
index 3ea211f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/InsertRequiredAttrsQuickAssistProposal.java
+++ /dev/null
@@ -1,179 +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.wst.xml.ui.internal.correction;
-
-import java.util.List;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposalExtension2;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-
-public class InsertRequiredAttrsQuickAssistProposal implements ICompletionProposal, ICompletionProposalExtension2 {
-	private final List fRequiredAttrs;
-
-	/**
-	 * @param requiredAttrs
-	 */
-	public InsertRequiredAttrsQuickAssistProposal(List requiredAttrs) {
-		fRequiredAttrs = requiredAttrs;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#apply(org.eclipse.jface.text.IDocument)
-	 */
-	public void apply(IDocument document) {
-		// not implemented?
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#apply(org.eclipse.jface.text.ITextViewer,
-	 *      char, int, int)
-	 */
-	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-		IDOMNode node = (IDOMNode) ContentAssistUtils.getNodeAt((StructuredTextViewer) viewer, offset);
-		IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-		int index = startStructuredDocumentRegion.getEndOffset();
-		ITextRegion lastRegion = startStructuredDocumentRegion.getLastRegion();
-		if (lastRegion.getType() == DOMRegionContext.XML_TAG_CLOSE) {
-			index--;
-			lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1);
-		}
-		else if (lastRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-			index = index - 2;
-			lastRegion = startStructuredDocumentRegion.getRegionAtCharacterOffset(index - 1);
-		}
-		MultiTextEdit multiTextEdit = new MultiTextEdit();
-		try {
-			for (int i = 0; i < fRequiredAttrs.size(); i++) {
-				CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) fRequiredAttrs.get(i);
-				String requiredAttributeName = attrDecl.getAttrName();
-				String defaultValue = attrDecl.getDefaultValue();
-				if (defaultValue == null)
-					defaultValue = ""; //$NON-NLS-1$
-				String nameAndDefaultValue = " "; //$NON-NLS-1$
-				if (i == 0 && lastRegion.getLength() > lastRegion.getTextLength())
-					nameAndDefaultValue = ""; //$NON-NLS-1$
-				nameAndDefaultValue += requiredAttributeName + "=\"" + defaultValue + "\""; //$NON-NLS-1$//$NON-NLS-2$
-				multiTextEdit.addChild(new InsertEdit(index, nameAndDefaultValue));
-				// BUG3381: MultiTextEdit applies all child TextEdit's basing
-				// on offsets
-				// in the document before the first TextEdit, not after each
-				// child TextEdit. Therefore, do not need to advance the
-				// index.
-				// index += nameAndDefaultValue.length();
-			}
-			multiTextEdit.apply(viewer.getDocument());
-		}
-		catch (BadLocationException e) {
-			// log, for now, unless we find there's reasons why we get some
-			// here.
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getAdditionalProposalInfo()
-	 */
-	public String getAdditionalProposalInfo() {
-		return XMLUIMessages.InsertRequiredAttrsQuickAssistProposal_0; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getContextInformation()
-	 */
-	public IContextInformation getContextInformation() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getDisplayString()
-	 */
-	public String getDisplayString() {
-		return XMLUIMessages.InsertRequiredAttrsQuickAssistProposal_1; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getImage()
-	 */
-	public Image getImage() {
-		// return JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_LOCAL);
-		return XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ADD_CORRECTION);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getSelection(org.eclipse.jface.text.IDocument)
-	 */
-	public Point getSelection(IDocument document) {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#selected(org.eclipse.jface.text.ITextViewer,
-	 *      boolean)
-	 */
-	public void selected(ITextViewer viewer, boolean smartToggle) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#unselected(org.eclipse.jface.text.ITextViewer)
-	 */
-	public void unselected(ITextViewer viewer) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#validate(org.eclipse.jface.text.IDocument,
-	 *      int, org.eclipse.jface.text.DocumentEvent)
-	 */
-	public boolean validate(IDocument document, int offset, DocumentEvent event) {
-		return false;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/ProblemIDsXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/ProblemIDsXML.java
deleted file mode 100644
index 4d0008b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/ProblemIDsXML.java
+++ /dev/null
@@ -1,31 +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.wst.xml.ui.internal.correction;
-
-public interface ProblemIDsXML {
-	int AttrsInEndTag = 3;
-	int AttrValueNotQuoted = 13;
-	int EmptyTag = 1;
-	int InvalidAttrValue = 11;
-	int MissingAttrValue = 4;
-	int MissingClosingBracket = 14;
-	int MissingEndTag = 2;
-	int MissingRequiredAttr = 12;
-	int NamespaceInPI = 8;
-	int NoAttrValue = 5;
-	int SpacesBeforePI = 7;
-	int SpacesBeforeTagName = 6;
-	int Unclassified = 0;
-	int UnknownAttr = 10;
-	int UnknownElement = 9;
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/QuickAssistProcessorXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/QuickAssistProcessorXML.java
deleted file mode 100644
index 51fd960..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/QuickAssistProcessorXML.java
+++ /dev/null
@@ -1,169 +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.wst.xml.ui.internal.correction;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.correction.IQuickAssistProcessor;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-
-public class QuickAssistProcessorXML implements IQuickAssistProcessor {
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.correction.IQuickAssistProcessor#canAssist(org.eclipse.wst.sse.core.text.IStructuredDocument,
-	 *      int)
-	 */
-	public boolean canAssist(StructuredTextViewer viewer, int offset) {
-		return true;
-	}
-
-	/**
-	 * @param proposals
-	 * @param viewer
-	 * @param offset
-	 */
-	protected void getInsertRequiredAttrs(ArrayList proposals, StructuredTextViewer viewer, int offset) {
-		IDOMNode node = (IDOMNode) ContentAssistUtils.getNodeAt(viewer, offset);
-		if (node != null && node.getNodeType() == Node.ELEMENT_NODE) {
-			IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-			if (startStructuredDocumentRegion != null && startStructuredDocumentRegion.containsOffset(offset)) {
-				IDOMNode cursorNode = (IDOMNode) ContentAssistUtils.getNodeAt(viewer, offset);
-				List requiredAttrs = getRequiredAttrs(cursorNode);
-				if (requiredAttrs.size() > 0) {
-					NamedNodeMap currentAttrs = node.getAttributes();
-					List insertAttrs = new ArrayList();
-					if (currentAttrs.getLength() == 0)
-						insertAttrs.addAll(requiredAttrs);
-					else {
-						for (int i = 0; i < requiredAttrs.size(); i++) {
-							String requiredAttrName = ((CMAttributeDeclaration) requiredAttrs.get(i)).getAttrName();
-							boolean found = false;
-							for (int j = 0; j < currentAttrs.getLength(); j++) {
-								String currentAttrName = currentAttrs.item(j).getNodeName();
-								if (requiredAttrName.compareToIgnoreCase(currentAttrName) == 0) {
-									found = true;
-									break;
-								}
-							}
-							if (!found)
-								insertAttrs.add(requiredAttrs.get(i));
-						}
-					}
-					if (insertAttrs.size() > 0)
-						proposals.add(new InsertRequiredAttrsQuickAssistProposal(insertAttrs));
-				}
-			}
-		}
-	}
-
-	/**
-	 * @param proposals
-	 * @param viewer
-	 * @param offset
-	 */
-	protected void getLocalRenameQuickAssistProposal(ArrayList proposals, StructuredTextViewer viewer, int offset) {
-		IDOMNode node = (IDOMNode) ContentAssistUtils.getNodeAt(viewer, offset);
-		IStructuredDocumentRegion startStructuredDocumentRegion = node == null ? null : node.getStartStructuredDocumentRegion();
-		IStructuredDocumentRegion endStructuredDocumentRegion = node == null ? null : node.getEndStructuredDocumentRegion();
-
-		ITextRegion region = null;
-		int regionTextEndOffset = 0;
-		if (startStructuredDocumentRegion != null && startStructuredDocumentRegion.containsOffset(offset)) {
-			region = startStructuredDocumentRegion.getRegionAtCharacterOffset(offset);
-			regionTextEndOffset = startStructuredDocumentRegion.getTextEndOffset(region);
-		} else if (endStructuredDocumentRegion != null && endStructuredDocumentRegion.containsOffset(offset)) {
-			region = endStructuredDocumentRegion.getRegionAtCharacterOffset(offset);
-			regionTextEndOffset = endStructuredDocumentRegion.getTextEndOffset(region);
-		}
-
-		if (region != null && (region.getType() == DOMRegionContext.XML_TAG_NAME || region.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) && offset <= regionTextEndOffset)
-			proposals.add(new RenameInFileQuickAssistProposal());
-	}
-
-	protected ModelQuery getModelQuery(Node node) {
-		if (node.getNodeType() == Node.DOCUMENT_NODE) {
-			return ModelQueryUtil.getModelQuery((Document) node);
-		} else {
-			return ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.correction.IQuickAssistProcessor#getProposals(org.eclipse.wst.sse.core.text.IStructuredDocument,
-	 *      int)
-	 */
-	public ICompletionProposal[] getProposals(StructuredTextViewer viewer, int offset) throws CoreException {
-		ArrayList proposals = new ArrayList();
-
-		getLocalRenameQuickAssistProposal(proposals, viewer, offset);
-		getSurroundWithNewElementQuickAssistProposal(proposals, viewer, offset);
-		getInsertRequiredAttrs(proposals, viewer, offset);
-
-		return (ICompletionProposal[]) proposals.toArray(new ICompletionProposal[proposals.size()]);
-	}
-
-	protected List getRequiredAttrs(Node node) {
-		List result = new ArrayList();
-
-		ModelQuery modelQuery = getModelQuery(node);
-		if (modelQuery != null) {
-			CMElementDeclaration elementDecl = modelQuery.getCMElementDeclaration((Element) node);
-			if (elementDecl != null) {
-				CMNamedNodeMap attrMap = elementDecl.getAttributes();
-				Iterator it = attrMap.iterator();
-				CMAttributeDeclaration attr = null;
-				while (it.hasNext()) {
-					attr = (CMAttributeDeclaration) it.next();
-					if (attr.getUsage() == CMAttributeDeclaration.REQUIRED) {
-						result.add(attr);
-					}
-				}
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * @param proposals
-	 * @param viewer
-	 * @param offset
-	 */
-	protected void getSurroundWithNewElementQuickAssistProposal(ArrayList proposals, StructuredTextViewer viewer, int offset) {
-		IDOMNode node = (IDOMNode) ContentAssistUtils.getNodeAt(viewer, offset);
-		if (node != null)
-			proposals.add(new SurroundWithNewElementQuickAssistProposal());
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/QuickFixProcessorXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/QuickFixProcessorXML.java
deleted file mode 100644
index 6e65a97..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/QuickFixProcessorXML.java
+++ /dev/null
@@ -1,147 +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.wst.xml.ui.internal.correction;
-
-import java.util.ArrayList;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jface.text.contentassist.CompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.ui.internal.correction.IQuickFixProcessor;
-import org.eclipse.wst.sse.ui.internal.reconcile.TemporaryAnnotation;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-
-public class QuickFixProcessorXML implements IQuickFixProcessor {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.correction.IQuickFixProcessor#canFix(int)
-	 */
-	public boolean canFix(Annotation annotation) {
-		boolean result = false;
-
-		if (annotation instanceof TemporaryAnnotation) {
-			TemporaryAnnotation tempAnnotation = (TemporaryAnnotation) annotation;
-			int problemID = tempAnnotation.getProblemID();
-			switch (problemID) {
-				case ProblemIDsXML.EmptyTag :
-				case ProblemIDsXML.MissingEndTag :
-				case ProblemIDsXML.AttrsInEndTag :
-				case ProblemIDsXML.MissingAttrValue :
-				case ProblemIDsXML.NoAttrValue :
-				case ProblemIDsXML.SpacesBeforeTagName :
-				case ProblemIDsXML.SpacesBeforePI :
-				case ProblemIDsXML.NamespaceInPI :
-				case ProblemIDsXML.UnknownElement :
-				case ProblemIDsXML.UnknownAttr :
-				case ProblemIDsXML.InvalidAttrValue :
-				case ProblemIDsXML.MissingRequiredAttr :
-				case ProblemIDsXML.AttrValueNotQuoted :
-				case ProblemIDsXML.MissingClosingBracket :
-					result = true;
-			}
-		}
-
-		return result;
-	}
-
-	public Image getImage() {
-		//return
-		// JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);
-		return XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_CORRECTION_CHANGE);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.correction.IQuickFixProcessor#getProposals(org.eclipse.wst.sse.ui.internal.reconcile.TemporaryAnnotation)
-	 */
-	public ICompletionProposal[] getProposals(Annotation annotation) throws CoreException {
-		ArrayList proposals = new ArrayList();
-
-		if (annotation instanceof TemporaryAnnotation) {
-			TemporaryAnnotation tempAnnotation = (TemporaryAnnotation) annotation;
-			int problemID = tempAnnotation.getProblemID();
-			switch (problemID) {
-				case ProblemIDsXML.EmptyTag :
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_0, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				case ProblemIDsXML.MissingEndTag :
-					String tagName = (String) ((Object[]) tempAnnotation.getAdditionalFixInfo())[0];
-					String tagClose = (String) ((Object[]) tempAnnotation.getAdditionalFixInfo())[1];
-					int tagCloseOffset = ((Integer) ((Object[]) tempAnnotation.getAdditionalFixInfo())[2]).intValue();
-					int startTagEndOffset = ((Integer) ((Object[]) tempAnnotation.getAdditionalFixInfo())[3]).intValue();
-					int firstChildStartOffset = ((Integer) ((Object[]) tempAnnotation.getAdditionalFixInfo())[4]).intValue();
-					int endOffset = ((Integer) ((Object[]) tempAnnotation.getAdditionalFixInfo())[5]).intValue();
-					proposals.add(new CompletionProposal(tagClose, tagCloseOffset, 0, 0, getImage(), XMLUIMessages.QuickFixProcessorXML_1, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), startTagEndOffset - tempAnnotation.getPosition().getOffset(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_2, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					proposals.add(new CompletionProposal("</" + tagName + ">", firstChildStartOffset, 0, 0, getImage(), XMLUIMessages.QuickFixProcessorXML_3, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					proposals.add(new CompletionProposal("</" + tagName + ">", endOffset, 0, 0, getImage(), XMLUIMessages.QuickFixProcessorXML_4, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					break;
-				case ProblemIDsXML.AttrsInEndTag :
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_5, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				case ProblemIDsXML.MissingAttrValue :
-					String defaultAttrValue = (String) ((Object[]) tempAnnotation.getAdditionalFixInfo())[0];
-					int insertOffset = ((Integer) ((Object[]) tempAnnotation.getAdditionalFixInfo())[1]).intValue();
-					proposals.add(new CompletionProposal("\"" + defaultAttrValue + "\"", tempAnnotation.getPosition().getOffset() + tempAnnotation.getPosition().getLength() + insertOffset, 0, defaultAttrValue.length() + 2, getImage(), XMLUIMessages.QuickFixProcessorXML_6, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_7, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				case ProblemIDsXML.NoAttrValue :
-					defaultAttrValue = (String) tempAnnotation.getAdditionalFixInfo();
-					proposals.add(new CompletionProposal("=\"" + defaultAttrValue + "\"", tempAnnotation.getPosition().getOffset() + tempAnnotation.getPosition().getLength(), 0, defaultAttrValue.length() + 3, getImage(), XMLUIMessages.QuickFixProcessorXML_6, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_7, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				case ProblemIDsXML.SpacesBeforeTagName :
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_8, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				case ProblemIDsXML.SpacesBeforePI :
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_9, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				case ProblemIDsXML.NamespaceInPI :
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_10, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				case ProblemIDsXML.UnknownElement :
-					proposals.add(new RemoveUnknownElementQuickFixProposal(tempAnnotation.getAdditionalFixInfo(), getImage(), XMLUIMessages.QuickFixProcessorXML_11)); //$NON-NLS-1$
-					proposals.add(new RenameInFileQuickAssistProposal());
-					break;
-				case ProblemIDsXML.UnknownAttr :
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_7, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					proposals.add(new RenameInFileQuickAssistProposal());
-					break;
-				case ProblemIDsXML.InvalidAttrValue :
-					proposals.add(new CompletionProposal("", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), 0, getImage(), XMLUIMessages.QuickFixProcessorXML_12, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				case ProblemIDsXML.MissingRequiredAttr :
-					String requiredAttr = (String) ((Object[]) tempAnnotation.getAdditionalFixInfo())[0];
-					insertOffset = ((Integer) ((Object[]) tempAnnotation.getAdditionalFixInfo())[1]).intValue();
-					proposals.add(new CompletionProposal(requiredAttr, tempAnnotation.getPosition().getOffset() + insertOffset, 0, requiredAttr.length(), getImage(), XMLUIMessages.QuickFixProcessorXML_13, null, "")); //$NON-NLS-1$ //$NON-NLS-2$
-					break;
-				case ProblemIDsXML.AttrValueNotQuoted :
-					String attrValue = (String) tempAnnotation.getAdditionalFixInfo();
-					proposals.add(new CompletionProposal("\"" + attrValue + "\"", tempAnnotation.getPosition().getOffset(), tempAnnotation.getPosition().getLength(), attrValue.length() + 2, getImage(), XMLUIMessages.QuickFixProcessorXML_14, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					break;
-				case ProblemIDsXML.MissingClosingBracket :
-					proposals.add(new CompletionProposal(">", tempAnnotation.getPosition().getOffset() + tempAnnotation.getPosition().getLength(), 0, 1, getImage(), XMLUIMessages.QuickFixProcessorXML_15, null, "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					break;
-			}
-		}
-
-		return (ICompletionProposal[]) proposals.toArray(new ICompletionProposal[proposals.size()]);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/RemoveUnknownElementQuickFixProposal.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/RemoveUnknownElementQuickFixProposal.java
deleted file mode 100644
index 7dac576..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/RemoveUnknownElementQuickFixProposal.java
+++ /dev/null
@@ -1,161 +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.wst.xml.ui.internal.correction;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposalExtension2;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.text.edits.DeleteEdit;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-public class RemoveUnknownElementQuickFixProposal implements ICompletionProposal, ICompletionProposalExtension2 {
-	private Object fAdditionalFixInfo = null;
-	private String fDisplayString;
-	private Image fImage;
-	private Point fSelection; // initialized by apply()
-
-	public RemoveUnknownElementQuickFixProposal(Object additionalFixInfo, Image image, String displayString) {
-		fAdditionalFixInfo = additionalFixInfo;
-		fImage = image;
-		fDisplayString = displayString;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#apply(org.eclipse.jface.text.IDocument)
-	 */
-	public void apply(IDocument document) {
-		// not implemented?
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#apply(org.eclipse.jface.text.ITextViewer,
-	 *      char, int, int)
-	 */
-	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-		int startTagOffset = ((Integer) ((Object[]) fAdditionalFixInfo)[0]).intValue();
-		int startTagLength = ((Integer) ((Object[]) fAdditionalFixInfo)[1]).intValue();
-		int endTagOffset = ((Integer) ((Object[]) fAdditionalFixInfo)[2]).intValue();
-		int endTagLength = ((Integer) ((Object[]) fAdditionalFixInfo)[3]).intValue();
-
-		MultiTextEdit multiTextEdit = new MultiTextEdit();
-		if (endTagOffset != -1) {
-			multiTextEdit.addChild(new DeleteEdit(endTagOffset, endTagLength));
-			fSelection = new Point(endTagOffset, 0);
-		}
-		if (startTagOffset != -1) {
-			multiTextEdit.addChild(new DeleteEdit(startTagOffset, startTagLength));
-			fSelection = new Point(startTagOffset, 0);
-		}
-
-		try {
-			multiTextEdit.apply(viewer.getDocument());
-		}
-		catch (MalformedTreeException e) {
-			// log for now, unless find reasons not to.
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-		catch (BadLocationException e) {
-			// log for now, unless find reasons not to.
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getAdditionalProposalInfo()
-	 */
-	public String getAdditionalProposalInfo() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getContextInformation()
-	 */
-	public IContextInformation getContextInformation() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getDisplayString()
-	 */
-	public String getDisplayString() {
-		if (fDisplayString == null)
-			fDisplayString = XMLUIMessages.QuickFixProcessorXML_11; //$NON-NLS-1$
-
-		return fDisplayString;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getImage()
-	 */
-	public Image getImage() {
-		return fImage;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getSelection(org.eclipse.jface.text.IDocument)
-	 */
-	public Point getSelection(IDocument document) {
-		return fSelection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#selected(org.eclipse.jface.text.ITextViewer,
-	 *      boolean)
-	 */
-	public void selected(ITextViewer viewer, boolean smartToggle) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#unselected(org.eclipse.jface.text.ITextViewer)
-	 */
-	public void unselected(ITextViewer viewer) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#validate(org.eclipse.jface.text.IDocument,
-	 *      int, org.eclipse.jface.text.DocumentEvent)
-	 */
-	public boolean validate(IDocument document, int offset, DocumentEvent event) {
-		return false;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/RenameInFileQuickAssistProposal.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/RenameInFileQuickAssistProposal.java
deleted file mode 100644
index e2d8f6d..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/RenameInFileQuickAssistProposal.java
+++ /dev/null
@@ -1,183 +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.wst.xml.ui.internal.correction;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.contentassist.ICompletionProposal;
-import org.eclipse.jface.text.contentassist.ICompletionProposalExtension2;
-import org.eclipse.jface.text.contentassist.IContextInformation;
-import org.eclipse.jface.text.link.LinkedModeModel;
-import org.eclipse.jface.text.link.LinkedModeUI;
-import org.eclipse.jface.text.link.LinkedPosition;
-import org.eclipse.jface.text.link.LinkedPositionGroup;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.ui.texteditor.link.EditorLinkedModeUI;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-
-public class RenameInFileQuickAssistProposal implements ICompletionProposal, ICompletionProposalExtension2 {
-	protected IRegion fSelectedRegion; // initialized by apply()
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#apply(org.eclipse.jface.text.IDocument)
-	 */
-	public void apply(IDocument document) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#apply(org.eclipse.jface.text.ITextViewer,
-	 *      char, int, int)
-	 */
-	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-		IDocument document = viewer.getDocument();
-		LinkedPositionGroup group = new LinkedPositionGroup();
-		try {
-			if (viewer instanceof StructuredTextViewer) {
-				IDOMNode node = (IDOMNode) ContentAssistUtils.getNodeAt((StructuredTextViewer) viewer, offset);
-				IStructuredDocumentRegion startStructuredDocumentRegion = node.getStartStructuredDocumentRegion();
-				ITextRegion region = (startStructuredDocumentRegion == null) ? null : startStructuredDocumentRegion.getRegionAtCharacterOffset(offset);
-				if (region != null) {
-					group.addPosition(new LinkedPosition(document, startStructuredDocumentRegion.getStartOffset() + region.getStart(), region.getTextLength(), 0));
-
-					if (region.getType() == DOMRegionContext.XML_TAG_NAME && node.getEndStructuredDocumentRegion() != null) {
-						region = node.getEndStructuredDocumentRegion().getRegions().get(1);
-						if (region != null)
-							group.addPosition(new LinkedPosition(document, node.getEndStructuredDocumentRegion().getStartOffset() + region.getStart(), region.getTextLength(), 1));
-					}
-				} else {
-					IStructuredDocumentRegion endStructuredDocumentRegion = node.getEndStructuredDocumentRegion();
-					region = (endStructuredDocumentRegion == null) ? null : endStructuredDocumentRegion.getRegionAtCharacterOffset(offset);
-					if (region != null) {
-						if (region.getType() == DOMRegionContext.XML_TAG_NAME && node.getStartStructuredDocumentRegion() != null) {
-							ITextRegion startTagNameRegion = node.getStartStructuredDocumentRegion().getRegions().get(1);
-							if (region != null) {
-								group.addPosition(new LinkedPosition(document, node.getStartStructuredDocumentRegion().getStartOffset() + startTagNameRegion.getStart(), startTagNameRegion.getTextLength(), 0));
-								group.addPosition(new LinkedPosition(document, endStructuredDocumentRegion.getStartOffset() + region.getStart(), region.getTextLength(), 1));
-							}
-						} else
-							group.addPosition(new LinkedPosition(document, endStructuredDocumentRegion.getStartOffset() + region.getStart(), region.getTextLength(), 0));
-					}
-				}
-
-				// TODO CompletionProposalPopup#insertProposal() calls
-				// IRewriteTarget.beginCompoundChange()
-				//      which disables redraw in ITextViewer. Workaround for now.
-				((StructuredTextViewer) viewer).setRedraw(true);
-			}
-
-			LinkedModeModel linkedModeModel = new LinkedModeModel();
-			linkedModeModel.addGroup(group);
-			linkedModeModel.forceInstall();
-
-			LinkedModeUI ui = new EditorLinkedModeUI(linkedModeModel, viewer);
-			ui.setExitPosition(viewer, offset, 0, LinkedPositionGroup.NO_STOP);
-			ui.enter();
-
-			fSelectedRegion = ui.getSelectedRegion();
-		} catch (BadLocationException e) {
-			// log for now, unless find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getAdditionalProposalInfo()
-	 */
-	public String getAdditionalProposalInfo() {
-		return XMLUIMessages.RenameInFileQuickAssistProposal_0; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getContextInformation()
-	 */
-	public IContextInformation getContextInformation() {
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getDisplayString()
-	 */
-	public String getDisplayString() {
-		return XMLUIMessages.RenameInFileQuickAssistProposal_1; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getImage()
-	 */
-	public Image getImage() {
-		// return JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_LOCAL);
-		return XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_LOCAL_VARIABLE);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getSelection(org.eclipse.jface.text.IDocument)
-	 */
-	public Point getSelection(IDocument document) {
-		return new Point(fSelectedRegion.getOffset(), fSelectedRegion.getLength());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#selected(org.eclipse.jface.text.ITextViewer,
-	 *      boolean)
-	 */
-	public void selected(ITextViewer viewer, boolean smartToggle) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#unselected(org.eclipse.jface.text.ITextViewer)
-	 */
-	public void unselected(ITextViewer viewer) {
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#validate(org.eclipse.jface.text.IDocument,
-	 *      int, org.eclipse.jface.text.DocumentEvent)
-	 */
-	public boolean validate(IDocument document, int offset, DocumentEvent event) {
-		return false;
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/SurroundWithNewElementQuickAssistProposal.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/SurroundWithNewElementQuickAssistProposal.java
deleted file mode 100644
index 1208222..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/correction/SurroundWithNewElementQuickAssistProposal.java
+++ /dev/null
@@ -1,109 +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.wst.xml.ui.internal.correction;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.text.edits.InsertEdit;
-import org.eclipse.text.edits.MalformedTreeException;
-import org.eclipse.text.edits.MultiTextEdit;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-import org.w3c.dom.Node;
-
-public class SurroundWithNewElementQuickAssistProposal extends RenameInFileQuickAssistProposal {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposalExtension2#apply(org.eclipse.jface.text.ITextViewer,
-	 *      char, int, int)
-	 */
-	public void apply(ITextViewer viewer, char trigger, int stateMask, int offset) {
-		try {
-			int startTagOffset = offset;
-			int endTagOffset = offset + viewer.getSelectedRange().y;
-
-			// surround the node if no selection
-			if (startTagOffset == endTagOffset) {
-				IDOMNode cursorNode = (IDOMNode) ContentAssistUtils.getNodeAt((StructuredTextViewer) viewer, offset);
-				// use parent node if text node is empty
-				if (cursorNode.getNodeType() == Node.TEXT_NODE && cursorNode.getNodeValue().trim().length() == 0)
-					cursorNode = (IDOMNode) cursorNode.getParentNode();
-
-				startTagOffset = cursorNode.getStartOffset();
-				endTagOffset = cursorNode.getEndOffset();
-			}
-
-			// insert new element
-			MultiTextEdit multiTextEdit = new MultiTextEdit();
-			// element tag name cannot be DBCS, do not translate "<element>"
-			// and "</element>"
-			multiTextEdit.addChild(new InsertEdit(startTagOffset, "<element>")); //$NON-NLS-1$
-			multiTextEdit.addChild(new InsertEdit(endTagOffset, "</element>")); //$NON-NLS-1$
-			multiTextEdit.apply(viewer.getDocument());
-
-			// get new element node
-			IDOMNode newElementNode = (IDOMNode) ContentAssistUtils.getNodeAt((StructuredTextViewer) viewer, startTagOffset);
-
-			// format new element
-			IStructuredFormatProcessor formatProcessor = new FormatProcessorXML();
-			formatProcessor.formatNode(newElementNode);
-
-			// rename new element
-			super.apply(viewer, trigger, stateMask, newElementNode.getStartOffset() + 1);
-		} catch (MalformedTreeException e) {
-			// log for now, unless find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		} catch (BadLocationException e) {
-			// log for now, unless find reason not to
-			Logger.log(Logger.INFO, e.getMessage());
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getAdditionalProposalInfo()
-	 */
-	public String getAdditionalProposalInfo() {
-		return XMLUIMessages.SurroundWithNewElementQuickAssistProposal_0; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getDisplayString()
-	 */
-	public String getDisplayString() {
-		return XMLUIMessages.SurroundWithNewElementQuickAssistProposal_1; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.contentassist.ICompletionProposal#getImage()
-	 */
-	public Image getImage() {
-		// return JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_LOCAL);
-		return XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_ADD_CORRECTION);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditAttributeDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditAttributeDialog.java
deleted file mode 100644
index bb44a52..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditAttributeDialog.java
+++ /dev/null
@@ -1,170 +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.wst.xml.ui.internal.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.Color;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.util.XMLCommonUIContextIds;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-
-public class EditAttributeDialog extends Dialog implements ModifyListener {
-	protected Attr attribute;
-	protected String attributeName;
-	protected Text attributeNameField;
-	protected String attributeValue;
-	protected Text attributeValueField;
-	protected Label errorMessageLabel;
-	protected Button okButton;
-	protected Element ownerElement;
-
-	public EditAttributeDialog(Shell parentShell, Element ownerElement, Attr attribute) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.ownerElement = ownerElement;
-		this.attribute = attribute;
-	}
-
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			attributeName = getModelValue(attributeNameField.getText());
-			attributeValue = attributeValueField.getText();
-		}
-		super.buttonPressed(buttonId);
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	protected Control createContents(Composite parent) {
-		Control control = super.createContents(parent);
-		attributeNameField.forceFocus();
-		attributeNameField.selectAll();
-		updateErrorMessage();
-		return control;
-	}
-
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(dialogArea, XMLCommonUIContextIds.XCUI_ATTRIBUTE_DIALOG);
-
-		Composite composite = new Composite(dialogArea, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-
-		//
-		// Style convenience constants
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Label attributeNameLabel = new Label(composite, SWT.NONE);
-		attributeNameLabel.setText(XMLUIMessages._UI_LABEL_NAME_COLON); //$NON-NLS-1$
-
-		attributeNameField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 300;
-		attributeNameField.setLayoutData(gd);
-		attributeNameField.setText(getDisplayValue(attribute != null ? attribute.getName() : "")); //$NON-NLS-1$
-		attributeNameField.addModifyListener(this);
-
-		Label attributeValueLabel = new Label(composite, SWT.NONE);
-		attributeValueLabel.setText(XMLUIMessages._UI_LABEL_VALUE_COLON); //$NON-NLS-1$
-
-		String value = attribute != null ? attribute.getValue() : ""; //$NON-NLS-1$
-		int style = SWT.SINGLE | SWT.BORDER;
-		if (value.indexOf("\n") != -1) { //$NON-NLS-1$
-			style = SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL;
-		}
-
-		attributeValueField = new Text(composite, style);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 300;
-		attributeValueField.setLayoutData(gd);
-		attributeValueField.setText(getDisplayValue(attribute != null ? attribute.getValue() : "")); //$NON-NLS-1$
-
-		// error message
-		errorMessageLabel = new Label(composite, SWT.WRAP);
-		errorMessageLabel.setText(XMLUIMessages.error_message_goes_here); //$NON-NLS-1$
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 200;
-		gd.heightHint = Math.max(30, errorMessageLabel.computeSize(0, 0, false).y * 2);
-		gd.horizontalSpan = 2;
-		errorMessageLabel.setLayoutData(gd);
-		Color color = new Color(errorMessageLabel.getDisplay(), 200, 0, 0);
-		errorMessageLabel.setForeground(color);
-
-		return dialogArea;
-	}
-
-	public String getAttributeName() {
-		return attributeName;
-	}
-
-	public String getAttributeValue() {
-		return attributeValue;
-	}
-
-	protected String getDisplayValue(String string) {
-		return string != null ? string : ""; //$NON-NLS-1$
-	}
-
-	protected String getModelValue(String string) {
-		String result = null;
-		if (string != null && string.trim().length() > 0) {
-			result = string;
-		}
-		return result;
-	}
-
-	public void modifyText(ModifyEvent e) {
-		updateErrorMessage();
-	}
-
-	protected void updateErrorMessage() {
-		String errorMessage = null;
-		String name = attributeNameField.getText().trim();
-		if (name.length() > 0) {
-			Attr matchingAttribute = ownerElement.getAttributeNode(name);
-			if (matchingAttribute != null && matchingAttribute != attribute) {
-				errorMessage = XMLUIMessages._ERROR_XML_ATTRIBUTE_ALREADY_EXISTS; //$NON-NLS-1$
-			} else {
-				// TODO get checkName from Model
-				//errorMessage = ValidateHelper.checkXMLName(name);
-			}
-		} else {
-			errorMessage = ""; //$NON-NLS-1$
-		}
-
-		errorMessageLabel.setText(errorMessage != null ? errorMessage : ""); //$NON-NLS-1$
-		errorMessageLabel.getParent().layout();
-		okButton.setEnabled(errorMessage == null);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditDoctypeDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditDoctypeDialog.java
deleted file mode 100644
index 3f67ed5..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditDoctypeDialog.java
+++ /dev/null
@@ -1,234 +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.wst.xml.ui.internal.dialogs;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-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.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.util.XMLCommonUIContextIds;
-import org.w3c.dom.DocumentType;
-
-public class EditDoctypeDialog extends Dialog {
-	protected boolean computeSystemId;
-	protected String[] doctypeData;
-	protected boolean errorChecking;
-	protected Label errorMessageLabel;
-	protected Button okButton;
-	protected Button publicIdBrowseButton;
-	protected Text publicIdField;
-	protected IPath resourceLocation;
-	protected Text rootElementNameField;
-	protected Button systemIdBrowseButton;
-	protected Text systemIdField;
-
-	public EditDoctypeDialog(Shell parentShell, DocumentType doctype) {
-		this(parentShell, doctype.getName(), doctype.getPublicId(), doctype.getSystemId());
-	}
-
-	public EditDoctypeDialog(Shell parentShell, String name, String publicId, String systemId) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		doctypeData = new String[3];
-		doctypeData[0] = name;
-		doctypeData[1] = publicId;
-		doctypeData[2] = systemId;
-	}
-
-	protected void buttonPressed(int buttonId) {
-		doctypeData[0] = getModelValue(rootElementNameField.getText());
-		doctypeData[1] = getModelValue(publicIdField.getText());
-		doctypeData[2] = getModelValue(systemIdField.getText());
-		super.buttonPressed(buttonId);
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-
-	protected Control createContents(Composite parent) {
-		Control control = super.createContents(parent);
-		updateErrorMessage();
-		return control;
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogControl = (Composite) super.createDialogArea(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(dialogControl, XMLCommonUIContextIds.XCUI_DOCTYPE_DIALOG);
-
-		Composite composite = new Composite(dialogControl, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-
-		ModifyListener modifyListener = new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				if (e.widget == systemIdField) {
-					computeSystemId = false;
-				}
-				updateErrorMessage();
-			}
-		};
-
-		// row 1
-		//
-		Label rootElementNameLabel = new Label(composite, SWT.NONE);
-		rootElementNameLabel.setText(XMLUIMessages._UI_LABEL_ROOT_ELEMENT_NAME_COLON); //$NON-NLS-1$
-
-		rootElementNameField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(rootElementNameField, XMLCommonUIContextIds.XCUI_DOCTYPE_ROOT);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 200;
-		rootElementNameField.setLayoutData(gd);
-		rootElementNameField.setText(getDisplayValue(doctypeData[0]));
-		rootElementNameField.addModifyListener(modifyListener);
-
-		Label placeHolder = new Label(composite, SWT.NONE);
-		placeHolder.setLayoutData(new GridData());
-
-		// row 2
-		//
-		Label publicIdLabel = new Label(composite, SWT.NONE);
-		publicIdLabel.setText(XMLUIMessages._UI_LABEL_PUBLIC_ID_COLON); //$NON-NLS-1$
-
-		publicIdField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(publicIdField, XMLCommonUIContextIds.XCUI_DOCTYPE_PUBLIC);
-		publicIdField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		publicIdField.setText(getDisplayValue(doctypeData[1]));
-
-		SelectionListener selectionListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				EditEntityHelper helper = new EditEntityHelper();
-				if (e.widget == publicIdBrowseButton) {
-					helper.performBrowseForPublicId(getShell(), publicIdField, computeSystemId ? systemIdField : null);
-				}
-				else if (e.widget == systemIdBrowseButton) {
-					helper.performBrowseForSystemId(getShell(), systemIdField, resourceLocation);
-				}
-			}
-		};
-
-		publicIdBrowseButton = new Button(composite, SWT.NONE);
-		publicIdBrowseButton.setText(XMLUIMessages._UI_LABEL_BROWSE); //$NON-NLS-1$
-		publicIdBrowseButton.addSelectionListener(selectionListener);
-
-		// row 3
-		Label systemIdLabel = new Label(composite, SWT.NONE);
-		systemIdLabel.setText(XMLUIMessages._UI_LABEL_SYSTEM_ID_COLON); //$NON-NLS-1$
-
-		systemIdField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(systemIdField, XMLCommonUIContextIds.XCUI_DOCTYPE_SYSTEM);
-		systemIdField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		systemIdField.setText(getDisplayValue(doctypeData[2]));
-		systemIdField.addModifyListener(modifyListener);
-
-
-		systemIdBrowseButton = new Button(composite, SWT.NONE);
-		systemIdBrowseButton.setText(XMLUIMessages._UI_LABEL_BROWSE); //$NON-NLS-1$
-		systemIdBrowseButton.addSelectionListener(selectionListener);
-
-		// error message
-		errorMessageLabel = new Label(dialogControl, SWT.NONE);
-		errorMessageLabel.setText(""); //$NON-NLS-1$
-		errorMessageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		Color color = new Color(errorMessageLabel.getDisplay(), 200, 0, 0);
-		errorMessageLabel.setForeground(color);
-
-		return dialogControl;
-	}
-
-
-	protected Label createMessageArea(Composite composite) {
-		Label label = new Label(composite, SWT.NONE);
-		// label.setText(message);
-		return label;
-	}
-
-
-	protected String getDisplayValue(String string) {
-		return string != null ? string : ""; //$NON-NLS-1$
-	}
-
-	public boolean getErrorChecking() {
-		return errorChecking;
-	}
-
-
-	protected String getModelValue(String string) {
-		String result = null;
-		if (string != null && string.trim().length() > 0) {
-			result = string;
-		}
-		return result;
-	}
-
-	public String getName() {
-		return doctypeData[0];
-	}
-
-	public String getPublicId() {
-		return doctypeData[1];
-	}
-
-	public String getSystemId() {
-		return doctypeData[2];
-	}
-
-	public void setComputeSystemId(boolean computeSystemId) {
-		this.computeSystemId = computeSystemId;
-	}
-
-	public void setErrorChecking(boolean errorChecking) {
-		this.errorChecking = errorChecking;
-	}
-
-	public void setResourceLocation(IPath path) {
-		resourceLocation = path;
-	}
-
-	public void updateErrorMessage() {
-		if (errorChecking) {
-			String errorMessage = null;
-			if (getModelValue(systemIdField.getText()) == null) {
-				errorMessage = XMLUIMessages._UI_WARNING_SYSTEM_ID_MUST_BE_SPECIFIED; //$NON-NLS-1$
-			}
-			else if (getModelValue(rootElementNameField.getText()) == null) {
-				errorMessage = XMLUIMessages._UI_WARNING_ROOT_ELEMENT_MUST_BE_SPECIFIED; //$NON-NLS-1$
-			}
-
-			errorMessageLabel.setText(errorMessage != null ? errorMessage : ""); //$NON-NLS-1$
-			okButton.setEnabled(errorMessage == null);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditElementDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditElementDialog.java
deleted file mode 100644
index 4e6098a..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditElementDialog.java
+++ /dev/null
@@ -1,143 +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.wst.xml.ui.internal.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.graphics.Color;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.core.internal.provisional.NameValidator;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.util.XMLCommonUIContextIds;
-import org.w3c.dom.Element;
-
-public class EditElementDialog extends Dialog implements ModifyListener {
-	protected Element element;
-	protected String elementName;
-	protected Text elementNameField;
-	protected Label errorMessageLabel;
-	protected Button okButton;
-
-	public EditElementDialog(Shell parentShell, Element element) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.element = element;
-	}
-
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			elementName = getModelValue(elementNameField.getText());
-		}
-		super.buttonPressed(buttonId);
-	}
-
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	protected Control createContents(Composite parent) {
-		Control control = super.createContents(parent);
-		elementNameField.forceFocus();
-		elementNameField.selectAll();
-		updateErrorMessage();
-		return control;
-	}
-
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(dialogArea, XMLCommonUIContextIds.XCUI_ELEMENT_DIALOG);
-
-		Composite composite = new Composite(dialogArea, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		Label elementNameLabel = new Label(composite, SWT.NONE);
-		elementNameLabel.setText(XMLUIMessages._UI_LABEL_ELEMENT_NAME); //$NON-NLS-1$
-
-		elementNameField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 200;
-		elementNameField.setLayoutData(gd);
-		elementNameField.setText(getDisplayValue(element != null ? element.getNodeName() : "")); //$NON-NLS-1$
-		elementNameField.addModifyListener(this);
-
-		// error message
-		errorMessageLabel = new Label(composite, SWT.NONE);
-		errorMessageLabel.setText(XMLUIMessages.error_message_goes_here); //$NON-NLS-1$
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		errorMessageLabel.setLayoutData(gd);
-		Color color = new Color(errorMessageLabel.getDisplay(), 200, 0, 0);
-		errorMessageLabel.setForeground(color);
-
-		return dialogArea;
-	}
-
-	protected String getDisplayValue(String string) {
-		return string != null ? string : ""; //$NON-NLS-1$
-	}
-
-	public String getElementName() {
-		return elementName;
-	}
-
-	protected String getModelValue(String string) {
-		String result = null;
-		if (string != null && string.trim().length() > 0) {
-			result = string;
-		}
-		return result;
-	}
-
-	public void modifyText(ModifyEvent e) {
-		updateErrorMessage();
-	}
-
-	protected void updateErrorMessage() {
-		String errorMessage = null;
-		String name = elementNameField.getText();
-		//		String name = elementNameField.getText().trim();
-		if (name.length() > 0) {
-			// TODO use checkName from model level
-			//errorMessage = ValidateHelper.checkXMLName(name);
-			if (!NameValidator.isValid(name)) {
-				errorMessage = XMLUIMessages._UI_INVALID_NAME;
-			}
-		} else {
-			errorMessage = ""; //$NON-NLS-1$
-		}
-
-		errorMessageLabel.setText(errorMessage != null ? errorMessage : ""); //$NON-NLS-1$
-		okButton.setEnabled(errorMessage == null);
-	}
-}
-
-
-
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditEntityHelper.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditEntityHelper.java
deleted file mode 100644
index 4fbec45..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditEntityHelper.java
+++ /dev/null
@@ -1,71 +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.wst.xml.ui.internal.dialogs;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-public class EditEntityHelper {
-
-	public void performBrowseForPublicId(Shell parentShell, Text publicIdField) {
-		performBrowseForPublicId(parentShell, publicIdField, null);
-	}
-
-	public void performBrowseForPublicId(Shell parentShell, Text publicIdField, Text systemIdField) {
-		String[] extensions = {"dtd", "txt"}; //$NON-NLS-1$ //$NON-NLS-2$
-		SelectXMLCatalogIdDialog dialog = new SelectXMLCatalogIdDialog(parentShell, extensions);
-		dialog.create();
-		dialog.getShell().setText(XMLUIMessages._UI_LABEL_SELECT_XML_CATALOG_ENTRY); //$NON-NLS-1$
-		dialog.setBlockOnOpen(true);
-		dialog.open();
-		if (dialog.getReturnCode() == Window.OK) {
-			String id = dialog.getId();
-			if (id != null) {
-				publicIdField.setText(id);
-				if (systemIdField != null && dialog.getSystemId() != null) {
-					systemIdField.setText(dialog.getSystemId());
-				}
-			}
-		}
-	}
-
-	public void performBrowseForSystemId(Shell parentShell, Text systemIdField, IPath resourceLocation) {
-		String[] extensions = {"dtd"}; //$NON-NLS-1$
-		SelectFileOrXMLCatalogIdDialog dialog = new SelectFileOrXMLCatalogIdDialog(parentShell, extensions, ICatalogEntry.ENTRY_TYPE_SYSTEM);
-		dialog.create();
-		dialog.getShell().setText(XMLUIMessages._UI_LABEL_SPECIFY_SYSTEM_ID); //$NON-NLS-1$
-		dialog.setBlockOnOpen(true);
-		dialog.open();
-		if (dialog.getReturnCode() == Window.OK) {
-			String id = dialog.getId();
-			IFile file = dialog.getFile();
-			if (id != null) {
-				systemIdField.setText(id);
-			} else if (file != null) {
-				String uri = null;
-				if (resourceLocation != null) {
-					uri = URIHelper.getRelativeURI(file.getLocation(), resourceLocation);
-				} else {
-					uri = file.getLocation().toOSString();
-				}
-				systemIdField.setText(uri);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditNamespaceInfoDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditNamespaceInfoDialog.java
deleted file mode 100644
index b6f16c5..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditNamespaceInfoDialog.java
+++ /dev/null
@@ -1,255 +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.wst.xml.ui.internal.dialogs;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.window.Window;
-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.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.ContentModelManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.util.XMLCommonUIContextIds;
-
-public class EditNamespaceInfoDialog extends Dialog {
-
-	public static EditNamespaceInfoDialog invokeDialog(Shell shell, String title, NamespaceInfo info, IPath resourceLocation) {
-		EditNamespaceInfoDialog dialog = new EditNamespaceInfoDialog(shell, info);
-		dialog.create();
-		dialog.getShell().setText(title);
-		dialog.setBlockOnOpen(true);
-		dialog.setResourceLocation(resourceLocation);
-		dialog.open();
-		return dialog;
-	}
-
-	protected Button browseButton;
-	protected String errorMessage;
-
-	protected Label errorMessageLabel;
-	protected NamespaceInfo fInfo;
-	protected Text locationHintField;
-
-	protected Button okButton;
-	protected Text prefixField;
-	protected IPath resourceLocation;
-	protected Text uriField;
-
-	public EditNamespaceInfoDialog(Shell parentShell, NamespaceInfo info) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.fInfo = info;
-	}
-
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			fInfo.uri = uriField.getText();
-			fInfo.prefix = prefixField.getText();
-			fInfo.locationHint = locationHintField.getText();
-		}
-		super.buttonPressed(buttonId);
-	}
-
-	protected void computeErrorMessage() {
-		errorMessage = null;
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		okButton.setEnabled(false);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-		updateWidgets();
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogsubArea = (Composite) super.createDialogArea(parent);
-               PlatformUI.getWorkbench().getHelpSystem().setHelp(dialogsubArea, XMLCommonUIContextIds.XCUI_NAMESPACE_DIALOG);
-
-		Composite composite = new Composite(dialogsubArea, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 3;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 350;
-		composite.setLayoutData(gd);
-
-		ModifyListener modifyListener = new ModifyListener() {
-			public void modifyText(ModifyEvent e) {
-				updateWidgets();
-			}
-		};
-
-
-		// row 1
-		//
-		Label uriLabel = new Label(composite, SWT.NONE);
-		uriLabel.setText(XMLUIMessages._UI_LABEL_NAMESPACE_NAME_COLON); //$NON-NLS-1$
-
-		uriField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.grabExcessHorizontalSpace = true;
-		uriField.setLayoutData(gd);
-		uriField.setText(getDisplayValue(fInfo.uri));
-		uriField.addModifyListener(modifyListener);
-		uriField.setEnabled(fInfo.getProperty("uri-readOnly") == null); //$NON-NLS-1$
-
-		// never read
-               Label placeHolder1 = new Label(composite, SWT.NONE);
-               placeHolder1.setText(""); //$NON-NLS-1$
-
-		// row 2
-		//
-		Label prefixLabel = new Label(composite, SWT.NONE);
-		prefixLabel.setText(XMLUIMessages._UI_LABEL_PREFIX_COLON); //$NON-NLS-1$
-
-		prefixField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.grabExcessHorizontalSpace = true;
-		prefixField.setLayoutData(gd);
-		prefixField.setText(getDisplayValue(fInfo.prefix));
-		prefixField.addModifyListener(modifyListener);
-		prefixField.setEnabled(fInfo.getProperty("prefix-readOnly") == null); //$NON-NLS-1$
-
-		// never read
-                Label placeHolder2 = new Label(composite, SWT.NONE);
-                placeHolder2.setText(""); //$NON-NLS-1$
-
-		// row 3
-		//
-		Label locationHintLabel = new Label(composite, SWT.NONE);
-		locationHintLabel.setText(XMLUIMessages._UI_LABEL_LOCATION_HINT_COLON); //$NON-NLS-1$
-
-		locationHintField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.grabExcessHorizontalSpace = true;
-		locationHintField.setLayoutData(gd);
-		locationHintField.setText(getDisplayValue(fInfo.locationHint));
-		locationHintField.addModifyListener(modifyListener);
-		locationHintField.setEnabled(fInfo.getProperty("locationHint-readOnly") == null); //$NON-NLS-1$
-
-		SelectionListener selectionListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				performBrowse();
-			}
-		};
-
-		browseButton = new Button(composite, SWT.NONE);
-		browseButton.setText(XMLUIMessages._UI_LABEL_BROWSE); //$NON-NLS-1$
-		browseButton.addSelectionListener(selectionListener);
-		browseButton.setEnabled(locationHintField.getEnabled());
-
-		// error message
-		errorMessageLabel = new Label(dialogsubArea, SWT.NONE);
-		errorMessageLabel.setText(XMLUIMessages.error_message_goes_here); //$NON-NLS-1$
-		errorMessageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		Color color = new Color(errorMessageLabel.getDisplay(), 200, 0, 0);
-		errorMessageLabel.setForeground(color);
-
-		return dialogsubArea;
-	}
-
-	protected String getDisplayValue(String string) {
-		return string != null ? string : ""; //$NON-NLS-1$
-	}
-
-	protected void performBrowse() {
-		String[] extensions = {".xsd"}; //$NON-NLS-1$
-		SelectFileOrXMLCatalogIdDialog dialog = new SelectFileOrXMLCatalogIdDialog(getShell(), extensions);
-		dialog.create();
-		dialog.getShell().setText(XMLUIMessages._UI_LABEL_SELECT_FILE); //$NON-NLS-1$
-		dialog.setBlockOnOpen(true);
-		dialog.open();
-
-		if (dialog.getReturnCode() == Window.OK) {
-			String grammarURI = null;
-			IFile file = dialog.getFile();
-			String id = dialog.getId();
-			if (file != null) {
-				String uri = null;
-				if (resourceLocation != null) {
-					uri = URIHelper.getRelativeURI(file.getLocation(), resourceLocation);
-					grammarURI = file.getLocation().toOSString();
-				}
-				else {
-					uri = file.getLocation().toOSString();
-					grammarURI = uri;
-				}
-				locationHintField.setText(uri);
-			}
-			else if (id != null) {
-				locationHintField.setText(id);
-				URIResolver resolver = URIResolverPlugin.createResolver();
-				grammarURI = resolver.resolve(null, id, id);
-			}
-
-
-			CMDocument document = ContentModelManager.getInstance().createCMDocument(grammarURI, "xsd"); //$NON-NLS-1$
-			List namespaceInfoList = (List) document.getProperty("http://org.eclipse.wst/cm/properties/namespaceInfo"); //$NON-NLS-1$
-			NamespaceInfo info = (NamespaceInfo) namespaceInfoList.get(0);
-			if (uriField.getText().trim().length() == 0 && info.uri != null) {
-				uriField.setText(info.uri);
-			}
-			if (prefixField.getText().trim().length() == 0 && info.prefix != null) {
-				prefixField.setText(info.prefix);
-			}
-		}
-	}
-
-	public void setResourceLocation(IPath path) {
-		resourceLocation = path;
-	}
-
-	protected void updateErrorMessageLabel() {
-		errorMessageLabel.setText(errorMessage != null ? errorMessage : ""); //$NON-NLS-1$
-	}
-
-	protected void updateOKButtonState() {
-		if (okButton != null) {
-			if (uriField.getText().trim().length() == 0 && prefixField.getText().trim().length() == 0 && locationHintField.getText().trim().length() == 0)
-				okButton.setEnabled(false);
-			else
-				okButton.setEnabled(errorMessage == null);
-		}
-	}
-
-	protected void updateWidgets() {
-		computeErrorMessage();
-		updateErrorMessageLabel();
-		updateOKButtonState();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditProcessingInstructionDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditProcessingInstructionDialog.java
deleted file mode 100644
index 4b3fe66..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditProcessingInstructionDialog.java
+++ /dev/null
@@ -1,119 +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.wst.xml.ui.internal.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.util.XMLCommonUIContextIds;
-import org.w3c.dom.ProcessingInstruction;
-
-public class EditProcessingInstructionDialog extends Dialog {
-	protected String data;
-	protected Text dataField;
-	protected String target;
-	protected Text targetField;
-
-	public EditProcessingInstructionDialog(Shell parentShell, ProcessingInstruction pi) {
-		this(parentShell, pi.getTarget(), pi.getData());
-	}
-
-	public EditProcessingInstructionDialog(Shell parentShell, String target, String data) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.target = target;
-		this.data = data;
-	}
-
-	protected void buttonPressed(int buttonId) {
-		target = getModelValue(targetField.getText());
-		data = getModelValue(dataField.getText());
-		super.buttonPressed(buttonId);
-	}
- 
-	protected void createButtonsForButtonBar(Composite parent) {
-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea1 = (Composite) super.createDialogArea(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(dialogArea1, XMLCommonUIContextIds.XCUI_PROCESSING_DIALOG);
-
-		Composite composite = new Composite(dialogArea1, SWT.NONE);
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		layout.marginWidth = 0;
-		composite.setLayout(layout);
-		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.widthHint = 250;
-
-		Label targetLabel = new Label(composite, SWT.NONE);
-		targetLabel.setText(XMLUIMessages._UI_LABEL_TARGET_COLON); //$NON-NLS-1$
-
-		targetField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		targetField.setLayoutData(gd);
-		targetField.setText(getDisplayValue(target));
-
-		Label dataLabel = new Label(composite, SWT.NONE);
-		dataLabel.setText(XMLUIMessages._UI_LABEL_DATA_COLON); //$NON-NLS-1$
-
-		dataField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-		dataField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		dataField.setText(getDisplayValue(data));
-
-		return dialogArea1;
-	}
-
-	protected Label createMessageArea(Composite composite) {
-		Label label = new Label(composite, SWT.NONE);
-		//label.setText(message);
-		return label;
-	}
-
-	public String getData() {
-		return data;
-	}
-
-	protected String getDisplayValue(String string) {
-		return string != null ? string : ""; //$NON-NLS-1$
-	}
-
-	protected String getModelValue(String string) {
-		String result = null;
-		if (string != null && string.trim().length() > 0) {
-			result = string;
-		}
-		return result;
-	}
-
-
-	public String getTarget() {
-		return target;
-	}
-}
-
-
-
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditSchemaInfoDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditSchemaInfoDialog.java
deleted file mode 100644
index 01aefdc..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/EditSchemaInfoDialog.java
+++ /dev/null
@@ -1,80 +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.wst.xml.ui.internal.dialogs;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.nsedit.CommonEditNamespacesDialog;
-import org.eclipse.wst.xml.ui.internal.util.XMLCommonUIContextIds;
-
-public class EditSchemaInfoDialog extends Dialog implements UpdateListener {
-	// protected NamespaceInfoTable namespaceInfoTable;
-	protected Label errorMessageLabel;
-	protected List namespaceInfoList;
-	protected IPath resourceLocation;
-
-	public EditSchemaInfoDialog(Shell parentShell, IPath resourceLocation) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.resourceLocation = resourceLocation;
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(dialogArea, XMLCommonUIContextIds.XCUI_SCHEMA_INFO_DIALOG);
-		
-		CommonEditNamespacesDialog editNamespacesControl = new CommonEditNamespacesDialog(dialogArea, resourceLocation, XMLUIMessages._UI_NAMESPACE_DECLARATIONS, false, true); //$NON-NLS-1$
-		editNamespacesControl.setNamespaceInfoList(namespaceInfoList);
-
-		editNamespacesControl.updateErrorMessage(namespaceInfoList);
-
-		return dialogArea;
-	}
-
-	protected Control getDialogArea(Composite parent) {
-		return super.createDialogArea(parent);
-	}
-
-	public List getNamespaceInfoList() {
-		return namespaceInfoList;
-	}
-
-	public void setNamespaceInfoList(List list) {
-		namespaceInfoList = list;
-	}
-
-	public void updateErrorMessage(List namespaceInfoList) {
-		NamespaceInfoErrorHelper helper = new NamespaceInfoErrorHelper();
-		String errorMessage = helper.computeErrorMessage(namespaceInfoList, null);
-		errorMessageLabel.setText(errorMessage != null ? errorMessage : ""); //$NON-NLS-1$
-	}
-
-	public void updateOccured(Object object, Object arg) {
-		updateErrorMessage((List) arg);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/NamespaceInfoErrorHelper.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/NamespaceInfoErrorHelper.java
deleted file mode 100644
index ae360c3..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/NamespaceInfoErrorHelper.java
+++ /dev/null
@@ -1,99 +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.wst.xml.ui.internal.dialogs;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceInfoManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-public class NamespaceInfoErrorHelper {
-
-	protected List errorList;
-
-	public NamespaceInfoErrorHelper() {
-	}
-
-	public String computeErrorMessage(List namespaceInfoList, URIResolver idResolver) {
-		String result = null;
-		Hashtable prefixTable = new Hashtable();
-		Hashtable uriTable = new Hashtable();
-		for (Iterator iterator = namespaceInfoList.iterator(); iterator.hasNext();) {
-			NamespaceInfo nsInfo = (NamespaceInfo) iterator.next();
-			nsInfo.normalize();
-
-			String urikey = nsInfo.uri != null ? nsInfo.uri : ""; //$NON-NLS-1$
-			NamespaceInfo nsInfo2 = null;
-			if ((nsInfo2 = (NamespaceInfo) uriTable.get(urikey)) != null) {
-				if (nsInfo.uri != null && nsInfo.uri.equals(nsInfo2.uri)) {
-					result = XMLUIMessages._UI_WARNING_MORE_THAN_ONE_NS_WITH_NAME + "'" + nsInfo.uri + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-				} else {
-					result = XMLUIMessages._UI_WARNING_MORE_THAN_ONE_NS_WITHOUT_NAME; //$NON-NLS-1$
-				}
-				break;
-			} else {
-				uriTable.put(urikey, nsInfo);
-			}
-
-			if (nsInfo.uri != null) {
-				String key = nsInfo.prefix != null ? nsInfo.prefix : ""; //$NON-NLS-1$
-				if (prefixTable.get(key) != null) {
-					if (nsInfo.prefix != null) {
-						result = XMLUIMessages._UI_WARNING_MORE_THAN_ONE_NS_WITH_PREFIX + "'" + nsInfo.prefix + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						break;
-					} else {
-						result = XMLUIMessages._UI_WARNING_MORE_THAN_ONE_NS_WITHOUT_PREFIX; //$NON-NLS-1$
-						break;
-					}
-				} else {
-					prefixTable.put(key, nsInfo);
-				}
-
-				if (nsInfo.locationHint != null && idResolver != null) {
-					String grammarURI = idResolver.resolve(null, nsInfo.locationHint, nsInfo.locationHint);
-					if (!URIHelper.isReadableURI(grammarURI, false)) {
-						result = XMLUIMessages._UI_WARNING_SCHEMA_CAN_NOT_BE_LOCATED + " '" + nsInfo.locationHint + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-						break;
-					}
-				}
-				if (idResolver != null && nsInfo.locationHint == null && !nsInfo.uri.equals(DOMNamespaceInfoManager.XSI_URI)) {
-					result = XMLUIMessages._UI_WARNING_LOCATION_HINT_NOT_SPECIFIED + " '" + nsInfo.uri + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				}
-			} else {
-				if (nsInfo.prefix != null) {
-					result = XMLUIMessages._UI_WARNING_NAMESPACE_NAME_NOT_SPECIFIED + " '" + nsInfo.prefix + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				}
-			}
-		}
-		// additional tests
-		if (result == null) {
-			for (Iterator iterator = namespaceInfoList.iterator(); iterator.hasNext();) {
-				NamespaceInfo nsInfo = (NamespaceInfo) iterator.next();
-				nsInfo.normalize();
-				if (nsInfo.uri != null && nsInfo.isPrefixRequired && nsInfo.prefix == null) {
-					result = XMLUIMessages._UI_WARNING_PREFIX_NOT_SPECIFIED + " '" + nsInfo.uri + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-					break;
-				}
-			}
-		}
-
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/NamespaceInfoTable.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/NamespaceInfoTable.java
deleted file mode 100644
index e2830e5..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/NamespaceInfoTable.java
+++ /dev/null
@@ -1,391 +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.wst.xml.ui.internal.dialogs;
-
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-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.Group;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-public class NamespaceInfoTable extends Composite {
-
-	/**
-	 * NamespaceInfoTableLabelProvider
-	 */
-	protected class NamespaceInfoTableLabelProvider implements ITableLabelProvider, IStructuredContentProvider {
-
-		public void addListener(ILabelProviderListener listener) {
-		}
-
-		public void dispose() {
-		}
-
-		public Image getColumnImage(Object object, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object object, int column) {
-			NamespaceInfo info = (NamespaceInfo) object;
-			String result = null;
-			switch (column) {
-				case 0 : {
-					result = info.uri;
-					break;
-				}
-				case 1 : {
-					result = info.prefix;
-					break;
-				}
-				case 2 : {
-					result = info.locationHint;
-					break;
-				}
-			}
-			result = result != null ? result : ""; //$NON-NLS-1$
-			if (result.equals("")) { //$NON-NLS-1$
-				switch (column) {
-					case 0 : {
-						result = XMLUIMessages._UI_NO_NAMESPACE_NAME; //$NON-NLS-1$
-						break;
-					}
-					case 1 : {
-						result = XMLUIMessages._UI_NO_PREFIX; //$NON-NLS-1$
-						break;
-					}
-				}
-			}
-			return result;
-		}
-
-		 String getDefaultPrefix() {
-			String defaultPrefix = "p"; //$NON-NLS-1$
-			if (namespaceInfoList == null)
-				return defaultPrefix;
-			Vector v = new Vector();
-			for (int i = 0; i < namespaceInfoList.size(); i++) {
-				NamespaceInfo nsinfo = (NamespaceInfo) namespaceInfoList.get(i);
-				if (nsinfo.prefix != null)
-					v.addElement(nsinfo.prefix);
-			}
-			if (v.contains(defaultPrefix)) {
-				String s = defaultPrefix;
-				for (int j = 0; v.contains(s); j++) {
-					s = defaultPrefix + Integer.toString(j);
-				}
-				return s;
-			} else
-				return defaultPrefix;
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return namespaceInfoList.toArray();
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public boolean isDeleted(Object element) {
-			return false;
-		}
-
-		public boolean isLabelProperty(Object object, Object property) {
-			return false;
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-		}
-	}
-
-	protected static final String LOCATION_HINT = XMLUIMessages._UI_LABEL_LOCATION_HINT; //$NON-NLS-1$
-	protected static final String NAMESPACE_URI = XMLUIMessages._UI_LABEL_NAMESPACE_NAME; //$NON-NLS-1$
-	protected static final String PREFIX = XMLUIMessages._UI_LABEL_PREFIX; //$NON-NLS-1$
-	protected Button deleteButton;
-	protected boolean dummyRowsRemoved = false;
-	protected Button editButton;
-	protected List namespaceInfoList = new Vector();
-	protected Button newButton;
-	protected NamespaceInfoTableLabelProvider provider;
-	protected IPath resourceLocation;
-	protected TableViewer tableViewer;
-	protected UpdateListener updateListener;
-	protected int visibleRows = -1;
-
-	public NamespaceInfoTable(Composite parent) {
-		this(parent, -1, -1, -1);
-	}
-
-	public NamespaceInfoTable(Composite parent, int visibleRows) {
-		this(parent, -1, -1, visibleRows);
-	}
-
-	public NamespaceInfoTable(Composite parent, int widthHint, int heightHint) {
-		this(parent, widthHint, heightHint, -1);
-	}
-
-	public NamespaceInfoTable(Composite parent, int widthHint, int heightHint, int visibleRows) {
-		super(parent, SWT.NONE);
-		setLayout(createGridLayout());
-		setLayoutData(new GridData(GridData.FILL_BOTH));
-		Group namespaceInfoGroup = new Group(this, SWT.NONE);
-		namespaceInfoGroup.setText(XMLUIMessages._UI_LABEL_XML_SCHEMA_INFORMATION); //$NON-NLS-1$
-		namespaceInfoGroup.setLayout(new GridLayout());
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		if (widthHint != -1) {
-			gd.widthHint = widthHint;
-		}
-		if (heightHint != -1) {
-			gd.heightHint = heightHint;
-		}
-		namespaceInfoGroup.setLayoutData(gd);
-		//WorkbenchHelp.setHelp(namespaceInfoGroup, new
-		// ControlContextComputer(namespaceInfoGroup,
-		// XMLBuilderContextIds.XMLC_NAMESPACE_GROUP));
-		String[] titleArray = {NAMESPACE_URI, PREFIX, LOCATION_HINT};
-		tableViewer = new TableViewer(namespaceInfoGroup, SWT.FULL_SELECTION);
-		provider = new NamespaceInfoTableLabelProvider();
-		tableViewer.setContentProvider(provider);
-		tableViewer.setLabelProvider(provider);
-		tableViewer.setColumnProperties(titleArray);
-		Table table = tableViewer.getTable();
-		table.setHeaderVisible(true);
-		table.setLayoutData(new GridData(GridData.FILL_BOTH));
-		int[] widthArray = {50, 20, 30};
-		TableLayout layout = new TableLayout();
-		for (int i = 0; i < titleArray.length; i++) {
-			TableColumn column = new TableColumn(table, i);
-			column.setText(titleArray[i]);
-			column.setAlignment(SWT.LEFT);
-			layout.addColumnData(new ColumnWeightData(widthArray[i], true));
-		}
-		this.visibleRows = visibleRows;
-		for (int i = 0; i < visibleRows; i++) {
-			TableItem item = new TableItem(table, SWT.NONE);
-			item.setText("#######"); //$NON-NLS-1$
-		}
-		table.setLayout(layout);
-		CellEditor[] cellEditors = new CellEditor[titleArray.length];
-		cellEditors[1] = new TextCellEditor(table);
-		cellEditors[2] = new TextCellEditor(table);
-		tableViewer.setCellEditors(cellEditors);
-		MouseAdapter mouseAdapter = new MouseAdapter() {
-			public void mouseDoubleClick(MouseEvent e) {
-				if (tableViewer.getTable().getItem(new Point(e.x, e.y)) != null) {
-					performEdit();
-				}
-			}
-		};
-		table.addMouseListener(mouseAdapter);
-		createButtons(namespaceInfoGroup);
-		ISelectionChangedListener selectionChangedListener = new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateButtonEnabledState();
-			}
-		};
-		tableViewer.addSelectionChangedListener(selectionChangedListener);
-	}
-
-	protected void createButtons(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 2;
-		gridLayout.marginHeight = 0;
-		gridLayout.marginWidth = 0;
-		composite.setLayout(gridLayout);
-		Button hiddenButton = new Button(composite, SWT.NONE);
-		hiddenButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		hiddenButton.setVisible(false);
-		hiddenButton.setEnabled(false);
-		SelectionListener selectionListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (e.widget == newButton) {
-					performNew();
-				} else if (e.widget == editButton) {
-					performEdit();
-				} else if (e.widget == deleteButton) {
-					performDelete();
-				}
-			}
-		};
-		// create a composite to hold the three buttons
-		Composite buttonComposite = new Composite(composite, SWT.NONE);
-		buttonComposite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		GridLayout buttonGridLayout = new GridLayout();
-		buttonGridLayout.numColumns = 3;
-		buttonGridLayout.makeColumnsEqualWidth = true;
-		buttonComposite.setLayout(buttonGridLayout);
-		// add the New button
-		//
-		newButton = new Button(buttonComposite, SWT.NONE);
-		newButton.setText(XMLUIMessages._UI_BUTTON_NEW); //$NON-NLS-1$
-		newButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		newButton.addSelectionListener(selectionListener);
-		// add the Edit button
-		//
-		editButton = new Button(buttonComposite, SWT.NONE);
-		editButton.setText(XMLUIMessages._UI_BUTTON_EDIT); //$NON-NLS-1$
-		editButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		editButton.addSelectionListener(selectionListener);
-		// add the Delete button
-		//
-		deleteButton = new Button(buttonComposite, SWT.NONE);
-		deleteButton.setText(XMLUIMessages._UI_BUTTON_DELETE); //$NON-NLS-1$
-		deleteButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		deleteButton.addSelectionListener(selectionListener);
-	}
-
-	public GridLayout createGridLayout() {
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.marginWidth = 0;
-		gridLayout.horizontalSpacing = 0;
-		return gridLayout;
-	}
-
-	public List getNamespaceInfoList() {
-		return namespaceInfoList;
-	}
-
-	protected NamespaceInfo getTargetNamespaceInfo() {
-		return (namespaceInfoList != null && namespaceInfoList.size() > 0) ? (NamespaceInfo) namespaceInfoList.get(0) : null;
-	}
-
-	protected EditNamespaceInfoDialog invokeDialog(String title, NamespaceInfo info) {
-		Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		EditNamespaceInfoDialog dialog = new EditNamespaceInfoDialog(shell, info);
-		dialog.create();
-		dialog.getShell().setText(title);
-		dialog.setBlockOnOpen(true);
-		dialog.setResourceLocation(resourceLocation);
-		dialog.open();
-		return dialog;
-	}
-
-	protected void performDelayedUpdate() {
-		Runnable delayedUpdate = new Runnable() {
-			public void run() {
-				update();
-			}
-		};
-		getDisplay().asyncExec(delayedUpdate);
-		if (updateListener != null) {
-			updateListener.updateOccured(this, namespaceInfoList);
-		}
-	}
-
-	public void performDelete() {
-		ISelection selection = tableViewer.getSelection();
-		Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-		if (selectedObject != null) {
-			namespaceInfoList.remove(selectedObject);
-			performDelayedUpdate();
-		}
-	}
-
-	public void performEdit() {
-		ISelection selection = tableViewer.getSelection();
-		Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-		if (selectedObject instanceof NamespaceInfo) {
-			invokeDialog(XMLUIMessages._UI_LABEL_NEW_NAMESPACE_INFORMATION, (NamespaceInfo) selectedObject); //$NON-NLS-1$
-			performDelayedUpdate();
-		}
-	}
-
-	public void performNew() {
-		NamespaceInfo info = new NamespaceInfo();
-		EditNamespaceInfoDialog dialog = invokeDialog(XMLUIMessages._UI_LABEL_NEW_NAMESPACE_INFORMATION, info); //$NON-NLS-1$
-		if (dialog.getReturnCode() == Window.OK) {
-			namespaceInfoList.add(info);
-			performDelayedUpdate();
-		}
-	}
-
-	public void setNamespaceInfoList(List namespaceInfoList) {
-		this.namespaceInfoList = namespaceInfoList;
-		update();
-	}
-
-	public void setResourceLocation(IPath resourceLocation) {
-		this.resourceLocation = resourceLocation;
-	}
-
-	public void setUpdateListener(UpdateListener updateListener) {
-		this.updateListener = updateListener;
-	}
-
-	public void update() {
-		updateHelper(namespaceInfoList);
-	}
-
-	public void updateButtonEnabledState() {
-		ISelection selection = tableViewer.getSelection();
-		Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-		NamespaceInfo info = (NamespaceInfo) selectedObject;
-		editButton.setEnabled(info != null);
-		deleteButton.setEnabled(info != null && info.getProperty("unremovable") == null); //$NON-NLS-1$
-	}
-
-	public void updateHelper(List namespaceInfoList) {
-		if (visibleRows != -1 && !dummyRowsRemoved) {
-			dummyRowsRemoved = true;
-			tableViewer.getTable().removeAll();
-		}
-		ISelection selection = tableViewer.getSelection();
-		tableViewer.setInput(namespaceInfoList);
-		if (selection.isEmpty()) {
-			if (namespaceInfoList.size() > 0) {
-				tableViewer.setSelection(new StructuredSelection(namespaceInfoList.get(0)));
-			}
-		} else {
-			tableViewer.setSelection(selection);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectFileOrXMLCatalogIdDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectFileOrXMLCatalogIdDialog.java
deleted file mode 100644
index edfc968..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectFileOrXMLCatalogIdDialog.java
+++ /dev/null
@@ -1,87 +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.wst.xml.ui.internal.dialogs;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-
-
-public class SelectFileOrXMLCatalogIdDialog extends Dialog {
-	protected int catalogEntryType;
-	protected String[] extensions;
-	protected IFile file;
-	protected String id;
-	protected Button okButton;
-	protected SelectFileOrXMLCatalogIdPanel panel;
-
-	public SelectFileOrXMLCatalogIdDialog(Shell parentShell, String[] extensions) {
-		this(parentShell, extensions, 0);
-	}
-
-	public SelectFileOrXMLCatalogIdDialog(Shell parentShell, String[] extensions, int catalogEntryType) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.extensions = extensions;
-		this.catalogEntryType = catalogEntryType;
-	}
-
-
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			file = panel.getFile();
-			id = panel.getXMLCatalogId();
-		}
-		super.buttonPressed(buttonId);
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		okButton.setEnabled(false);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-
-		panel = new SelectFileOrXMLCatalogIdPanel(dialogArea);
-		panel.setCatalogEntryType(catalogEntryType);
-		panel.setFilterExtensions(extensions);
-		panel.setVisibleHelper(true);
-		SelectFileOrXMLCatalogIdPanel.Listener listener = new SelectFileOrXMLCatalogIdPanel.Listener() {
-			public void completionStateChanged() {
-				updateButtonState();
-			}
-		};
-		panel.setListener(listener);
-
-		return dialogArea;
-	}
-
-	public IFile getFile() {
-		return file;
-	}
-
-	public String getId() {
-		return id;
-	}
-
-	protected void updateButtonState() {
-		okButton.setEnabled(panel.getFile() != null || panel.getXMLCatalogId() != null);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectFileOrXMLCatalogIdPanel.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectFileOrXMLCatalogIdPanel.java
deleted file mode 100644
index dd354ec..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectFileOrXMLCatalogIdPanel.java
+++ /dev/null
@@ -1,180 +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.wst.xml.ui.internal.dialogs;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Control;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.wst.common.ui.internal.viewers.SelectSingleFileView;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-
-public class SelectFileOrXMLCatalogIdPanel extends Composite implements SelectionListener {
-
-	/**
-	 * TODO: Change the name of this interface; "Listener" is used by SWT.
-	 */
-	public interface Listener {
-		void completionStateChanged();
-	}
-
-	protected class MySelectSingleFileView extends SelectSingleFileView implements SelectSingleFileView.Listener {
-		protected Control control;
-
-		public MySelectSingleFileView(Composite parent) {
-			super(null, true);
-			//String[] ext = {".dtd"};
-			//addFilterExtensions(ext);
-			control = createControl(parent);
-			control.setLayoutData(new GridData(GridData.FILL_BOTH));
-			MySelectSingleFileView.this.setListener(this);
-		}
-
-		public Control getControl() {
-			return control;
-		}
-
-		public void setControlComplete(boolean isComplete) {
-			updateCompletionStateChange();
-		}
-
-		public void setVisibleHelper(boolean isVisible) {
-			super.setVisibleHelper(isVisible);
-		}
-	}
-
-	protected Listener listener;
-	protected PageBook pageBook;
-
-	protected Button[] radioButton;
-	protected MySelectSingleFileView selectSingleFileView;
-	protected SelectXMLCatalogIdPanel selectXMLCatalogIdPanel;
-
-	public SelectFileOrXMLCatalogIdPanel(Composite parent) {
-		super(parent, SWT.NONE);
-
-		// container group
-		setLayout(new GridLayout());
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		gd.heightHint = 400;
-		gd.widthHint = 400;
-		setLayoutData(gd);
-
-		radioButton = new Button[2];
-		radioButton[0] = new Button(this, SWT.RADIO);
-		radioButton[0].setText(XMLUIMessages._UI_RADIO_BUTTON_SELECT_FROM_WORKSPACE); //$NON-NLS-1$
-		radioButton[0].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		radioButton[0].setSelection(true);
-		radioButton[0].addSelectionListener(this);
-
-		radioButton[1] = new Button(this, SWT.RADIO);
-		radioButton[1].setText(XMLUIMessages._UI_RADIO_BUTTON_SELECT_FROM_CATALOG); //$NON-NLS-1$
-		radioButton[1].setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		radioButton[1].addSelectionListener(this);
-
-		pageBook = new PageBook(this, SWT.NONE);
-		pageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		selectSingleFileView = new MySelectSingleFileView(pageBook);
-
-		ICatalog xmlCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-		selectXMLCatalogIdPanel = new SelectXMLCatalogIdPanel(pageBook, xmlCatalog);
-		selectXMLCatalogIdPanel.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateCompletionStateChange();
-			}
-		});
-		pageBook.showPage(selectSingleFileView.getControl());
-	}
-
-	public IFile getFile() {
-		IFile result = null;
-		if (radioButton[0].getSelection()) {
-			result = selectSingleFileView.getFile();
-		}
-		return result;
-	}
-
-	public ICatalogEntry getXMLCatalogEntry() {
-		ICatalogEntry result = null;
-		if (radioButton[1].getSelection()) {
-			result = selectXMLCatalogIdPanel.getXMLCatalogEntry();
-		}
-		return result;
-	}
-
-	public String getXMLCatalogId() {
-		String result = null;
-		if (radioButton[1].getSelection()) {
-			result = selectXMLCatalogIdPanel.getId();
-		}
-		return result;
-	}
-
-	public String getXMLCatalogURI() {
-		String result = null;
-		if (radioButton[1].getSelection()) {
-			result = selectXMLCatalogIdPanel.getURI();
-		}
-		return result;
-	}
-
-	public void setCatalogEntryType(int catalogEntryType) {
-		selectXMLCatalogIdPanel.setCatalogEntryType(catalogEntryType);
-	}
-
-	public void setFilterExtensions(String[] filterExtensions) {
-		selectSingleFileView.resetFilters();
-		selectSingleFileView.addFilterExtensions(filterExtensions);
-
-		selectXMLCatalogIdPanel.getTableViewer().setFilterExtensions(filterExtensions);
-	}
-
-	public void setListener(Listener listener) {
-		this.listener = listener;
-	}
-
-	public void setVisibleHelper(boolean isVisible) {
-		selectSingleFileView.setVisibleHelper(isVisible);
-	}
-
-	public void updateCompletionStateChange() {
-		if (listener != null) {
-			listener.completionStateChanged();
-		}
-	}
-
-	public void widgetDefaultSelected(SelectionEvent e) {
-	}
-
-	public void widgetSelected(SelectionEvent e) {
-		if (e.widget == radioButton[0]) {
-			pageBook.showPage(selectSingleFileView.getControl());
-		} else {
-			pageBook.showPage(selectXMLCatalogIdPanel);
-		}
-		updateCompletionStateChange();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectXMLCatalogIdDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectXMLCatalogIdDialog.java
deleted file mode 100644
index 9bea443..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectXMLCatalogIdDialog.java
+++ /dev/null
@@ -1,112 +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.wst.xml.ui.internal.dialogs;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.ui.internal.util.XMLCommonUIContextIds;
-
-
-
-
-public class SelectXMLCatalogIdDialog extends Dialog {
-	protected String[] extensions;
-	protected Button okButton;
-	protected SelectXMLCatalogIdPanel panel;
-	protected String publicId;
-	protected String systemId;
-
-	public SelectXMLCatalogIdDialog(Shell parentShell, String[] extensions) {
-		super(parentShell);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.extensions = extensions;
-	}
-
-
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			ISelection selection = panel.getTableViewer().getSelection();
-			Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-
-			if (selectedObject instanceof ICatalogEntry) {
-				ICatalogEntry mappingInfo = (ICatalogEntry) selectedObject;
-				publicId = mappingInfo.getKey();
-				systemId = computeDefaultSystemId(mappingInfo);
-			}
-		}
-		super.buttonPressed(buttonId);
-	}
-
-	protected String computeDefaultSystemId(ICatalogEntry mappingInfo) {
-		String result = mappingInfo.getAttributeValue(ICatalogEntry.ATTR_WEB_URL);
-		if (result == null && mappingInfo.getURI() != null) {
-			int index = mappingInfo.getURI().lastIndexOf("/"); //$NON-NLS-1$
-			String lastSegment = index != -1 ? mappingInfo.getURI().substring(index + 1) : mappingInfo.getURI();
-			result = lastSegment;
-		}
-		return result;
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		okButton.setEnabled(false);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(dialogArea, XMLCommonUIContextIds.XCUI_CATALOG_DIALOG);
-
-		ICatalog xmlCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-		panel = new SelectXMLCatalogIdPanel(dialogArea, xmlCatalog);
-
-		ISelectionChangedListener listener = new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateButtonState();
-			}
-		};
-		panel.getTableViewer().setFilterExtensions(extensions);
-		panel.getTableViewer().addSelectionChangedListener(listener);
-		return dialogArea;
-	}
-
-
-
-	public String getId() {
-		return publicId;
-	}
-
-	public String getSystemId() {
-		return systemId;
-	}
-
-	protected void updateButtonState() {
-		ISelection selection = panel.getTableViewer().getSelection();
-		okButton.setEnabled(!selection.isEmpty());
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectXMLCatalogIdPanel.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectXMLCatalogIdPanel.java
deleted file mode 100644
index 80ed9bd..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/SelectXMLCatalogIdPanel.java
+++ /dev/null
@@ -1,150 +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.wst.xml.ui.internal.dialogs;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-
-public class SelectXMLCatalogIdPanel extends Composite {
-	protected int catalogEntryType;
-	protected boolean doTableSizeHack = false;
-
-	protected XMLCatalogTableViewer tableViewer;
-	protected ICatalog fXmlCatalog;
-
-	public SelectXMLCatalogIdPanel(Composite parent, ICatalog xmlCatalog) {
-		super(parent, SWT.NONE);
-		this.fXmlCatalog = xmlCatalog;
-
-		GridLayout gridLayout = new GridLayout();
-		this.setLayout(gridLayout);
-		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-		gd.heightHint = 200;
-		gd.widthHint = 700;
-		this.setLayoutData(gd);
-
-		Label label = new Label(this, SWT.NONE);
-		label.setText(XMLUIMessages._UI_LABEL_XML_CATALOG_COLON); //$NON-NLS-1$
-
-		tableViewer = createTableViewer(this);
-		tableViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-		tableViewer.setInput("dummy"); //$NON-NLS-1$
-	}
-
-	protected XMLCatalogTableViewer createTableViewer(Composite parent) {
-		String headings[] = new String[2];
-		headings[0] = XMLUIMessages._UI_LABEL_KEY; //$NON-NLS-1$
-		headings[1] = XMLUIMessages._UI_LABEL_URI; //$NON-NLS-1$
-
-		XMLCatalogTableViewer theTableViewer = new XMLCatalogTableViewer(parent, headings) {
-
-			protected void addXMLCatalogEntries(List list, ICatalogEntry[] entries) {
-				for (int i=0; i < entries.length; i++) {
-					ICatalogEntry entry = entries[i];
-					if (catalogEntryType == 0) {
-						list.add(entry);
-					} else if (catalogEntryType == entry.getEntryType()) {
-						list.add(entry);
-					}
-				}
-			}
-
-			public Collection getXMLCatalogEntries() {
-				List result = null;
-
-				if (fXmlCatalog == null || doTableSizeHack) {
-					// this lets us create a table with an initial height of
-					// 10 rows
-					// otherwise we get stuck with 0 row heigh table... that's
-					// too small
-					doTableSizeHack = false;
-					result = new Vector();
-					for (int i = 0; i < 6; i++) {
-						result.add(""); //$NON-NLS-1$
-					}
-				} else {
-					result = new Vector();
-					 INextCatalog[] nextCatalogs = fXmlCatalog.getNextCatalogs();
-				        for (int i = 0; i < nextCatalogs.length; i++)
-				        {
-				            INextCatalog catalog = nextCatalogs[i];
-				            ICatalog referencedCatalog = catalog.getReferencedCatalog();
-				            if (referencedCatalog != null)
-				            {
-				                if (XMLCorePlugin.SYSTEM_CATALOG_ID
-				                        .equals(referencedCatalog.getId()))
-				                {
-				                    ICatalog systemCatalog = referencedCatalog;
-				                    addXMLCatalogEntries(result, systemCatalog.getCatalogEntries());
-				                    
-				                } else if (XMLCorePlugin.USER_CATALOG_ID
-				                        .equals(referencedCatalog.getId()))
-				                {
-				                	ICatalog userCatalog = referencedCatalog;
-				                    addXMLCatalogEntries(result, userCatalog.getCatalogEntries());
-				   				 
-				                }
-				            }
-				        }
-				}
-				return result;
-			}
-		};
-		return theTableViewer;
-	}
-
-
-	public String getId() {
-		ICatalogEntry entry = getXMLCatalogEntry();
-		return entry != null ? entry.getKey() : null;
-	}
-
-	public XMLCatalogTableViewer getTableViewer() {
-		return tableViewer;
-	}
-
-	public String getURI() {
-		ICatalogEntry entry = getXMLCatalogEntry();
-		return entry != null ? entry.getURI() : null;
-	}
-
-	public ICatalogEntry getXMLCatalogEntry() {
-		ICatalogEntry result = null;
-		ISelection selection = tableViewer.getSelection();
-		Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-		if (selectedObject instanceof ICatalogEntry) {
-			result = (ICatalogEntry) selectedObject;
-		}
-		return result;
-	}
-
-	public void setCatalogEntryType(int catalogEntryType) {
-		this.catalogEntryType = catalogEntryType;
-		tableViewer.refresh();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/UpdateListener.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/UpdateListener.java
deleted file mode 100644
index 37970cf..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/UpdateListener.java
+++ /dev/null
@@ -1,20 +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.wst.xml.ui.internal.dialogs;
-
-public interface UpdateListener {
-
-	public void updateOccured(Object object, Object arg);
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/XMLCatalogTableViewer.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/XMLCatalogTableViewer.java
deleted file mode 100644
index c80e455..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dialogs/XMLCatalogTableViewer.java
+++ /dev/null
@@ -1,198 +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.wst.xml.ui.internal.dialogs;
-
-import com.ibm.icu.text.Collator;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Comparator;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-
-
-public class XMLCatalogTableViewer extends TableViewer {
-
-
-	public class CatalogEntryContentProvider implements IStructuredContentProvider {
-
-		public void dispose() {
-		}
-
-		public Object[] getElements(Object element) {
-			Object[] array = getXMLCatalogEntries().toArray();
-			Comparator comparator = new Comparator() {
-				public int compare(Object o1, Object o2) {
-					int result = 0;
-					if (o1 instanceof ICatalogEntry && o2 instanceof ICatalogEntry) {
-						ICatalogEntry mappingInfo1 = (ICatalogEntry) o1;
-						ICatalogEntry mappingInfo2 = (ICatalogEntry) o2;
-						result = Collator.getInstance().compare(mappingInfo1.getKey(), mappingInfo2.getKey());
-					}
-					return result;
-				}
-			};
-			Arrays.sort(array, comparator);
-			return array;
-		}
-
-		public void inputChanged(Viewer viewer, Object old, Object newobj) {
-		}
-
-		public boolean isDeleted(Object object) {
-			return false;
-		}
-	}
-
-	public class CatalogEntryLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		public Image getColumnImage(Object object, int columnIndex) {
-			Image result = null;
-			if (columnIndex == 0) {
-				Image base = null;
-				if (object instanceof ICatalogEntry) {
-					ICatalogEntry catalogEntry = (ICatalogEntry) object;
-					String uri = catalogEntry.getURI();
-					if (uri.endsWith("dtd")) { //$NON-NLS-1$
-						base = dtdFileImage;
-					} else if (uri.endsWith("xsd")) { //$NON-NLS-1$
-						base = xsdFileImage;
-					} else {
-						base = unknownFileImage;
-					}
-
-					if (base != null) {
-						if (URIHelper.isReadableURI(uri, false)) {
-							result = base;
-						} else {
-							//TODO... SSE port
-							result = base;//imageFactory.createCompositeImage(base,
-							// errorImage,
-							// ImageFactory.BOTTOM_LEFT);
-						}
-					}
-				}
-			}
-			return result;
-		}
-
-		public String getColumnText(Object object, int columnIndex) {
-			String result = null;
-			if (object instanceof ICatalogEntry) {
-				ICatalogEntry catalogEntry = (ICatalogEntry) object;
-				result = columnIndex == 0 ? catalogEntry.getKey() : catalogEntry.getURI();
-				result = URIHelper.removePlatformResourceProtocol(result);
-			}
-			return result != null ? result : ""; //$NON-NLS-1$
-		}
-	}
-
-
-	class XMLCatalogTableViewerFilter extends ViewerFilter {
-		protected String[] extensions;
-
-		public XMLCatalogTableViewerFilter(String[] extensions) {
-			this.extensions = extensions;
-		}
-
-		public boolean isFilterProperty(Object element, Object property) {
-			return false;
-		}
-
-		public boolean select(Viewer viewer, Object parent, Object element) {
-			boolean result = false;
-			if (element instanceof ICatalogEntry) {
-				ICatalogEntry catalogEntry = (ICatalogEntry) element;
-				for (int i = 0; i < extensions.length; i++) {
-					if (catalogEntry.getURI().endsWith(extensions[i])) {
-						result = true;
-						break;
-					}
-				}
-			}
-			return result;
-		}
-	}
-
-	protected static Image dtdFileImage = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_DTDFILE);
-
-	protected static String ERROR_STATE_KEY = "errorstatekey"; //$NON-NLS-1$
-	protected static Image errorImage = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OVR_ERROR);
-
-	protected static Image unknownFileImage = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TXTEXT);
-	protected static Image xsdFileImage = XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_XSDFILE);
-
-	//protected ImageFactory imageFactory = new ImageFactory();
-
-	public XMLCatalogTableViewer(Composite parent, String[] columnProperties) {
-		super(parent, SWT.FULL_SELECTION);
-
-		Table table = getTable();
-		table.setLinesVisible(true);
-		table.setHeaderVisible(true);
-		table.setLinesVisible(true);
-
-		TableLayout layout = new TableLayout();
-		for (int i = 0; i < columnProperties.length; i++) {
-			TableColumn column = new TableColumn(table, i);
-			column.setText(columnProperties[i]);
-			column.setAlignment(SWT.LEFT);
-			layout.addColumnData(new ColumnWeightData(50, true));
-		}
-		table.setLayout(layout);
-		table.setLinesVisible(false);
-
-		setColumnProperties(columnProperties);
-
-		setContentProvider(new CatalogEntryContentProvider());
-		setLabelProvider(new CatalogEntryLabelProvider());
-	}
-
-	public Collection getXMLCatalogEntries() {
-		return null;
-	}
-
-
-	public void menuAboutToShow(IMenuManager menuManager) {
-		Action action = new Action("hello") { //$NON-NLS-1$
-			public void run() {
-				System.out.println("run!"); //$NON-NLS-1$
-			}
-		};
-		menuManager.add(action);
-	}
-
-	public void setFilterExtensions(String[] extensions) {
-		resetFilters();
-		addFilter(new XMLCatalogTableViewerFilter(extensions));
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dnd/DragNodeCommand.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dnd/DragNodeCommand.java
deleted file mode 100644
index e24391f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dnd/DragNodeCommand.java
+++ /dev/null
@@ -1,265 +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.wst.xml.ui.internal.dnd;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.wst.common.ui.internal.dnd.DefaultDragAndDropCommand;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class DragNodeCommand extends DefaultDragAndDropCommand {
-	private List fSelections;
-	private TreeViewer fTreeViewer;
-	
-	public DragNodeCommand(Object target, float location, int operations, int operation, Collection sources, TreeViewer treeViewer) {
-		super(target, location, operations, operation, sources);
-		fTreeViewer = treeViewer;
-		fSelections = new ArrayList();
-	}
-
-	private void beginModelChange(Node node, boolean batchUpdate) {
-		IStructuredModel structuredModel = getStructuredModel(node);
-		if (structuredModel != null) {
-			String undoDesc = new String();
-			if (getOperation() == DND.DROP_MOVE) {
-				undoDesc = XMLUIMessages.DragNodeCommand_0;
-			} else if (getOperation() == DND.DROP_COPY) {
-				undoDesc = XMLUIMessages.DragNodeCommand_1;
-			}
-			
-			structuredModel.beginRecording(this, undoDesc);
-			if (batchUpdate) {
-				//  structuredModel.aboutToChangeModel();
-			}
-		}
-	}
-
-	public boolean canExecute() {
-		return executeHelper(true);
-	}
-
-	private boolean doModify(Node source, Node parentNode, Node refChild, boolean testOnly) {
-		boolean result = false;
-		if (source.getNodeType() == Node.ATTRIBUTE_NODE) {
-			Attr sourceAttribute = (Attr) source;
-			Element sourceAttributeOwnerElement = sourceAttribute.getOwnerElement();
-			if (parentNode.getNodeType() == Node.ELEMENT_NODE && sourceAttributeOwnerElement != parentNode) {
-				result = true;
-				if (!testOnly) {
-					try {
-						if(getOperation() == DND.DROP_MOVE) {
-							Element targetElement = (Element) parentNode;
-							sourceAttributeOwnerElement.removeAttributeNode(sourceAttribute);
-							targetElement.getAttributes().setNamedItem(sourceAttribute);
-							fSelections.add(sourceAttribute);
-						}
-						else if (getOperation() == DND.DROP_COPY) {
-							Attr cloneAttribute = (Attr) sourceAttribute.cloneNode(false);						
-							Element targetElement = (Element) parentNode;
-							targetElement.getAttributes().setNamedItem(cloneAttribute);
-							fSelections.add(cloneAttribute);
-						}
-					}
-					catch (Exception e) {
-					}
-				}
-			}
-		}
-		else {
-			if ((parentNode.getNodeType() == Node.ELEMENT_NODE || parentNode.getNodeType() == Node.DOCUMENT_NODE) && 
-				!(refChild instanceof Attr)) {
-				result = true;
-
-				if (!testOnly) {
-					if (isAncestor(source, parentNode)) {
-						//System.out.println("can not perform this drag drop operation.... todo... pop up dialog");
-					}
-					else {
-						// defect 221055 this test is required or else the node will
-						// be removed from the tree and the insert will fail
-						if (source != refChild) {
-							if(getOperation() == DND.DROP_MOVE) {
-								source.getParentNode().removeChild(source);
-								parentNode.insertBefore(source, refChild);
-								fSelections.add(source);
-							}
-							else if (getOperation() == DND.DROP_COPY) {
-								Node nodeClone = source.cloneNode(true);
-								parentNode.insertBefore(nodeClone, refChild);
-								fSelections.add(nodeClone);
-							}
-						}
-					}
-				}
-			}
-		}
-		return result;
-	}
-	
-	private void endModelChange(Node node, boolean batchUpdate) {
-		IStructuredModel structuredModel = getStructuredModel(node);
-		if (structuredModel != null) {
-			structuredModel.endRecording(this);
-			if (batchUpdate) {
-				//  structuredModel.changedModel();
-			}
-		}
-	}
-
-	public void execute() {
-		executeHelper(false);
-		
-		// Make our selection if the treeViewer != null
-		if (fTreeViewer != null) {
-			StructuredSelection structuredSelection = new StructuredSelection(fSelections);
-			fTreeViewer.setSelection(structuredSelection);
-		}
-	}
-
-	private boolean executeHelper(boolean testOnly) {
-		boolean result = true;
-		if (target instanceof Node) {
-			Node targetNode = (Node) target;
-			Node parentNode = getParentForDropPosition(targetNode);
-			Node refChild = getRefChild(targetNode);
-
-			Vector sourcesList = new Vector();
-			sourcesList.addAll(sources);
-
-			removeMemberDescendants(sourcesList);
-			boolean performBatchUpdate = sourcesList.size() > 5;
-
-			if (!testOnly) {
-				beginModelChange(targetNode, performBatchUpdate);
-			}
-			for (Iterator i = sourcesList.iterator(); i.hasNext();) {
-				Object source = i.next();
-				if (source instanceof Node) {
-					if (!(refChild == null && targetNode instanceof Attr)) {
-						result = doModify((Node) source, parentNode, refChild, testOnly);
-					} else {
-						result = false;
-					}
-					if (!result) {
-						break;
-					}
-				}
-			}
-			if (!testOnly) {
-				endModelChange(targetNode, performBatchUpdate);
-			}
-		} else {
-			result = false;
-		}
-		return result;
-	}
-
-
-	public int getFeedback() {
-		int result = DND.FEEDBACK_SELECT;
-		if (location > 0.75) {
-			result = DND.FEEDBACK_INSERT_AFTER;
-		} else if (location < 0.25) {
-			result = DND.FEEDBACK_INSERT_BEFORE;
-		}
-		return result;
-	}
-
-	private Node getParentForDropPosition(Node node) {
-		Node result = null;
-
-		int feedback = getFeedback();
-		if (feedback == DND.FEEDBACK_SELECT) {
-			result = node;
-		} else {
-			result = getParentOrOwner(node);
-		}
-		return result;
-	}
-
-
-	private Node getParentOrOwner(Node node) {
-		return (node.getNodeType() == Node.ATTRIBUTE_NODE) ? ((Attr) node).getOwnerElement() : node.getParentNode();
-	}
-
-
-	private Node getRefChild(Node node) {
-		Node result = null;
-
-		int feedback = getFeedback();
-
-		if (feedback == DND.FEEDBACK_INSERT_BEFORE) {
-			result = node;
-		} else if (feedback == DND.FEEDBACK_INSERT_AFTER) {
-			result = node.getNextSibling();
-		}
-		return result;
-	}
-
-	private IStructuredModel getStructuredModel (Node node) {
-		IStructuredModel result = null;
-		if (node instanceof IDOMNode) {
-			result = ((IDOMNode) node).getModel();
-		}
-		return result;
-	}
-
-	// returns true if a is an ancestore of b
-	//
-	private boolean isAncestor(Node a, Node b) {
-		boolean result = false;
-		for (Node parent = b; parent != null; parent = parent.getParentNode()) {
-			if (parent == a) {
-				result = true;
-				break;
-			}
-		}
-		return result;
-	}
-
-
-	/**
-	 * This method removes members of the list that have ancestors that are
-	 * also members of the list.
-	 */
-	private void removeMemberDescendants(List list) {
-		Hashtable table = new Hashtable();
-		for (Iterator i = list.iterator(); i.hasNext();) {
-			Object node = i.next();
-			table.put(node, node);
-		}
-
-		for (int i = list.size() - 1; i >= 0; i--) {
-			Node node = (Node) list.get(i);
-			for (Node parent = getParentOrOwner(node); parent != null; parent = getParentOrOwner(parent)) {
-				if (table.get(parent) != null) {
-					list.remove(i);
-					break;
-				}
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dnd/XMLDragAndDropManager.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dnd/XMLDragAndDropManager.java
deleted file mode 100644
index aca6ee6..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/dnd/XMLDragAndDropManager.java
+++ /dev/null
@@ -1,54 +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.wst.xml.ui.internal.dnd;
-
-import java.util.Collection;
-
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.wst.common.ui.internal.dnd.DragAndDropCommand;
-import org.eclipse.wst.common.ui.internal.dnd.DragAndDropManager;
-import org.eclipse.wst.common.ui.internal.dnd.ObjectTransfer;
-import org.eclipse.wst.common.ui.internal.dnd.ViewerDragAdapter;
-import org.eclipse.wst.common.ui.internal.dnd.ViewerDropAdapter;
-import org.w3c.dom.Node;
-
-public class XMLDragAndDropManager implements DragAndDropManager {
-	private TreeViewer fViewer;
-	
-	public static void addDragAndDropSupport(TreeViewer viewer) {
-		int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
-		Transfer[] transfers = new Transfer[]{ObjectTransfer.getInstance()};
-		viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
-		viewer.addDropSupport(dndOperations, transfers, new ViewerDropAdapter(viewer, new XMLDragAndDropManager(viewer)));
-	}
-
-	public XMLDragAndDropManager() {
-		super();
-	}
-	
-	public XMLDragAndDropManager(TreeViewer viewer) {
-		fViewer = viewer;
-	}
-
-	public DragAndDropCommand createCommand(Object target, float location, int operations, int operation, Collection source) {
-		DragAndDropCommand result = null;
-		if (target instanceof Node) {
-			result = new DragNodeCommand(target, location, operations, operation, source, fViewer);
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/doubleclick/XMLDoubleClickStrategy.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/doubleclick/XMLDoubleClickStrategy.java
deleted file mode 100644
index 24f7560..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/doubleclick/XMLDoubleClickStrategy.java
+++ /dev/null
@@ -1,285 +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.wst.xml.ui.internal.doubleclick;
-
-import org.eclipse.jface.text.DefaultTextDoubleClickStrategy;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.w3c.dom.Node;
-
-
-public class XMLDoubleClickStrategy extends DefaultTextDoubleClickStrategy {
-	protected static final char DOUBLE_QUOTE = '\"';
-	protected static final char SINGLE_QUOTE = '\'';
-	protected static final char SPACE = ' ';
-	protected int fCaretPosition = -1;
-	protected int fDoubleClickCount = 0;
-	protected Node fNode = null;
-	protected IStructuredDocumentRegion fStructuredDocumentRegion = null;
-	protected String fStructuredDocumentRegionText = ""; //$NON-NLS-1$
-	protected IStructuredModel fStructuredModel = null;
-	protected StructuredTextViewer fStructuredTextViewer;
-	protected ITextRegion fTextRegion = null;
-
-	public void doubleClicked(ITextViewer textViewer) {
-		if (textViewer instanceof StructuredTextViewer) {
-			fStructuredTextViewer = (StructuredTextViewer) textViewer;
-			try {
-				fStructuredModel = StructuredModelManager.getModelManager().getExistingModelForRead(fStructuredTextViewer.getDocument());
-
-				if (fStructuredModel != null) {
-					int caretPosition = textViewer.getSelectedRange().x;
-					if (caretPosition < 0)
-						return;
-
-					fNode = (Node) fStructuredModel.getIndexedRegion(caretPosition);
-					if (fNode == null)
-						return;
-
-					updateDoubleClickCount(caretPosition);
-					updateStructuredDocumentRegion();
-					updateTextRegion();
-
-					if (fNode.getNodeType() == Node.TEXT_NODE)
-						processTextDoubleClicked();
-					else
-						processElementDoubleClicked();
-				}
-			} finally {
-				if (fStructuredModel != null)
-					fStructuredModel.releaseFromRead();
-			}
-		}
-	}
-
-	protected Point getWord(String string, int cursor) {
-		if (string == null)
-			return null;
-
-		int wordStart = 0;
-		int wordEnd = string.length();
-
-		wordStart = string.lastIndexOf(SPACE, cursor - 1);
-		int temp = string.lastIndexOf(SINGLE_QUOTE, cursor - 1);
-		wordStart = Math.max(wordStart, temp);
-		temp = string.lastIndexOf(DOUBLE_QUOTE, cursor - 1);
-		wordStart = Math.max(wordStart, temp);
-		if (wordStart == -1)
-			wordStart = cursor;
-		else
-			wordStart++;
-
-		wordEnd = string.indexOf(SPACE, cursor);
-		if (wordEnd == -1)
-			wordEnd = string.length();
-		temp = string.indexOf(SINGLE_QUOTE, cursor);
-		if (temp == -1)
-			temp = string.length();
-		wordEnd = Math.min(wordEnd, temp);
-		temp = string.indexOf(DOUBLE_QUOTE, cursor);
-		if (temp == -1)
-			temp = string.length();
-		wordEnd = Math.min(wordEnd, temp);
-		if (wordEnd == string.length())
-			wordEnd = cursor;
-
-		if ((wordStart == wordEnd) && !isQuoted(string)) {
-			wordStart = 0;
-			wordEnd = string.length();
-		}
-
-		return new Point(wordStart, wordEnd);
-	}
-
-	protected boolean isQuoted(String string) {
-		if ((string == null) || (string.length() < 2))
-			return false;
-
-		int lastIndex = string.length() - 1;
-		char firstChar = string.charAt(0);
-		char lastChar = string.charAt(lastIndex);
-
-		return (((firstChar == SINGLE_QUOTE) && (lastChar == SINGLE_QUOTE)) || ((firstChar == DOUBLE_QUOTE) && (lastChar == DOUBLE_QUOTE)));
-	}
-
-	protected void processElementAttrEqualsDoubleClicked2Times() {
-		int prevRegionOffset = fStructuredDocumentRegion.getStartOffset(fTextRegion) - 1;
-		ITextRegion prevRegion = fStructuredDocumentRegion.getRegionAtCharacterOffset(prevRegionOffset);
-		int nextRegionOffset = fStructuredDocumentRegion.getEndOffset(fTextRegion);
-		ITextRegion nextRegion = fStructuredDocumentRegion.getRegionAtCharacterOffset(nextRegionOffset);
-
-		if ((prevRegion != null) && (prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) && (nextRegion != null) && (nextRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)) {
-			fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(prevRegion), nextRegion.getTextEnd() - prevRegion.getStart());
-		}
-	}
-
-	protected void processElementAttrNameDoubleClicked2Times() {
-		int nextRegionOffset = fStructuredDocumentRegion.getEndOffset(fTextRegion);
-		ITextRegion nextRegion = fStructuredDocumentRegion.getRegionAtCharacterOffset(nextRegionOffset);
-
-		if (nextRegion != null) {
-			nextRegionOffset = fStructuredDocumentRegion.getEndOffset(nextRegion);
-			nextRegion = fStructuredDocumentRegion.getRegionAtCharacterOffset(nextRegionOffset);
-			if ((nextRegion != null) && (nextRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)) {
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(fTextRegion), nextRegion.getTextEnd() - fTextRegion.getStart());
-			} else {
-				// attribute has no value
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart(), fStructuredDocumentRegion.getLength());
-				fDoubleClickCount = 0;
-			}
-		}
-	}
-
-	protected void processElementAttrValueDoubleClicked() {
-		String regionText = fStructuredDocumentRegion.getText(fTextRegion);
-
-		if (fDoubleClickCount == 1) {
-			Point word = getWord(regionText, fCaretPosition - fStructuredDocumentRegion.getStartOffset(fTextRegion));
-			if (word.x == word.y) { // no word found; select whole region
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(fTextRegion), regionText.length());
-				fDoubleClickCount++;
-			} else
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(fTextRegion) + word.x, word.y - word.x);
-		} else if (fDoubleClickCount == 2) {
-			if (isQuoted(regionText)) {
-				// ==> // Point word = getWord(regionText, fCaretPosition -
-				// fStructuredDocumentRegion.getStartOffset(fTextRegion));
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(fTextRegion), regionText.length());
-			} else
-				processElementAttrValueDoubleClicked2Times();
-		} else if (fDoubleClickCount == 3) {
-			if (isQuoted(regionText))
-				processElementAttrValueDoubleClicked2Times();
-			else {
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart(), fStructuredDocumentRegion.getLength());
-				fDoubleClickCount = 0;
-			}
-		} else { // fDoubleClickCount == 4
-			fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart(), fStructuredDocumentRegion.getLength());
-			fDoubleClickCount = 0;
-		}
-	}
-
-	protected void processElementAttrValueDoubleClicked2Times() {
-		int prevRegionOffset = fStructuredDocumentRegion.getStartOffset(fTextRegion) - 1;
-		ITextRegion prevRegion = fStructuredDocumentRegion.getRegionAtCharacterOffset(prevRegionOffset);
-
-		if (prevRegion != null) {
-			prevRegionOffset = fStructuredDocumentRegion.getStartOffset(prevRegion) - 1;
-			prevRegion = fStructuredDocumentRegion.getRegionAtCharacterOffset(prevRegionOffset);
-			if ((prevRegion != null) && (prevRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(prevRegion), fTextRegion.getTextEnd() - prevRegion.getStart());
-			}
-		}
-	}
-
-	protected void processElementDoubleClicked() {
-		if (fTextRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-			processElementAttrValueDoubleClicked(); // special handling for
-		// XML_TAG_ATTRIBUTE_VALUE
-		else {
-			if (fDoubleClickCount == 1) {
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart() + fTextRegion.getStart(), fTextRegion.getTextLength());
-			} else if (fDoubleClickCount == 2) {
-				if (fTextRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-					processElementAttrNameDoubleClicked2Times();
-				else if (fTextRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS)
-					processElementAttrEqualsDoubleClicked2Times();
-				else {
-					fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart(), fStructuredDocumentRegion.getLength());
-					fDoubleClickCount = 0;
-				}
-			} else { // fDoubleClickCount == 3
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart(), fStructuredDocumentRegion.getLength());
-				fDoubleClickCount = 0;
-			}
-		}
-	}
-
-	protected void processTextDoubleClicked() {
-		if (fDoubleClickCount == 1) {
-			super.doubleClicked(fStructuredTextViewer);
-
-			Point selectedRange = fStructuredTextViewer.getSelectedRange();
-			if ((selectedRange.x == fStructuredDocumentRegion.getStartOffset(fTextRegion)) && (selectedRange.y == fTextRegion.getTextLength()))
-				// only one word in region, skip one level of double click
-				// selection
-				fDoubleClickCount++;
-		} else if (fDoubleClickCount == 2) {
-			if (fTextRegion.getType() == DOMRegionContext.UNDEFINED) {
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart(), fStructuredDocumentRegion.getLength());
-				fDoubleClickCount = 0;
-			} else {
-				if (isQuoted(fStructuredDocumentRegion.getFullText(fTextRegion)))
-					fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(fTextRegion) + 1, fTextRegion.getTextLength() - 2);
-				else
-					fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(fTextRegion), fTextRegion.getTextLength());
-			}
-		} else {
-			if ((fDoubleClickCount == 3) && isQuoted(fStructuredDocumentRegion.getFullText(fTextRegion)))
-				fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStartOffset(fTextRegion), fTextRegion.getTextLength());
-			else {
-				if ((fDoubleClickCount == 3) && isQuoted(fStructuredDocumentRegionText))
-					fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart() + 1, fStructuredDocumentRegion.getLength() - 2);
-				else {
-					fStructuredTextViewer.setSelectedRange(fStructuredDocumentRegion.getStart(), fStructuredDocumentRegion.getLength());
-					fDoubleClickCount = 0;
-				}
-			}
-		}
-	}
-
-	public void setModel(IStructuredModel structuredModel) {
-		fStructuredModel = structuredModel;
-	}
-
-	protected void updateDoubleClickCount(int caretPosition) {
-		if (fCaretPosition == caretPosition) {
-			if (fStructuredDocumentRegion != null)
-				fDoubleClickCount++;
-			else
-				fDoubleClickCount = 1;
-		} else {
-			fCaretPosition = caretPosition;
-			fDoubleClickCount = 1;
-		}
-	}
-
-	protected void updateStructuredDocumentRegion() {
-		fStructuredDocumentRegion = fStructuredModel.getStructuredDocument().getRegionAtCharacterOffset(fCaretPosition);
-		if (fStructuredDocumentRegion != null)
-			fStructuredDocumentRegionText = fStructuredDocumentRegion.getText();
-		else
-			fStructuredDocumentRegionText = ""; //$NON-NLS-1$
-	}
-
-	protected void updateTextRegion() {
-		if (fStructuredDocumentRegion != null) {
-			fTextRegion = fStructuredDocumentRegion.getRegionAtCharacterOffset(fCaretPosition);
-			// if fTextRegion is null, it means we are at just past the last
-			// fStructuredDocumentRegion,
-			// at the very end of the document, so we'll use the last text
-			// region in the document
-			if (fTextRegion == null) {
-				fTextRegion = fStructuredDocumentRegion.getRegionAtCharacterOffset(fCaretPosition - 1);
-			}
-		} else
-			fTextRegion = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/CMImageUtil.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/CMImageUtil.java
deleted file mode 100644
index e106190..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/CMImageUtil.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.editor;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * @author nsd
- */
-public class CMImageUtil {
-
-	public static CMNode getDeclaration(Node node) {
-		CMNode decl = null;
-		ModelQuery mq = null;
-		switch (node.getNodeType()) {
-			case Node.ATTRIBUTE_NODE : {
-				mq = ModelQueryUtil.getModelQuery(((Attr) node).getOwnerDocument());
-				decl = mq.getCMAttributeDeclaration((Attr) node);
-			}
-				break;
-			case Node.ELEMENT_NODE : {
-				mq = ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-				decl = mq.getCMElementDeclaration((Element) node);
-			}
-				break;
-		}
-		return decl;
-	}
-
-	public static Image getImage(CMNode cmnode) {
-		if (cmnode == null)
-			return null;
-		Image image = null;
-		ImageDescriptor descriptor = getImageDescriptor(cmnode);
-		if (descriptor != null) {
-			image = descriptor.createImage(false);
-		}
-		return image;
-	}
-
-	public static ImageDescriptor getImageDescriptor(CMNode cmnode) {
-		if (cmnode == null)
-			return null;
-		// cache CM-specified images with the XML UI plugin
-		String imageURLString = (String) cmnode.getProperty("small-icon"); //$NON-NLS-1$
-		ImageDescriptor descriptor = null;
-		if (imageURLString != null && imageURLString.length() > 0) {
-			descriptor = XMLUIPlugin.getInstance().getImageRegistry()
-					.getDescriptor(imageURLString);
-			if (descriptor == null) {
-				try {
-					URL imageURL = new URL(imageURLString);
-					URLConnection connection = imageURL.openConnection();
-					connection.setUseCaches(false);
-					ImageData data = new ImageData(connection.getInputStream());
-					descriptor = ImageDescriptor.createFromImageData(data);
-					XMLUIPlugin.getInstance().getImageRegistry().put(
-							imageURLString, descriptor);
-				} catch (MalformedURLException e) {
-					descriptor = null;
-				} catch (IOException e) {
-					descriptor = null;
-				}
-			}
-		}
-		return descriptor;
-	}
-
-	/**
-	 * 
-	 */
-	private CMImageUtil() {
-		super();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/IHelpContextIds.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/IHelpContextIds.java
deleted file mode 100644
index 9fbec68..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/IHelpContextIds.java
+++ /dev/null
@@ -1,45 +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.wst.xml.ui.internal.editor;
-
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-/**
- * Help context ids for the XML Source Editor.
- * <p>
- * This interface contains constants only; it is not intended to be
- * implemented.
- * </p>
- * 
- */
-public interface IHelpContextIds {
-	// org.eclipse.wst.xml.ui.
-	public static final String PREFIX = XMLUIPlugin.ID + "."; //$NON-NLS-1$
-
-	// figured out on the fly
-	// // XML Source page editor
-	// public static final String XML_SOURCEVIEW_HELPID =
-	// ContentTypeIdForXML.ContentTypeID_XML +"_source_HelpId"; //$NON-NLS-1$
-
-	// XML Files Preference page
-	public static final String XML_PREFWEBX_FILES_HELPID = PREFIX + "webx0060"; //$NON-NLS-1$
-	// XML Source Preference page
-	public static final String XML_PREFWEBX_SOURCE_HELPID = PREFIX + "webx0061"; //$NON-NLS-1$
-	// XML Styles Preference page
-	public static final String XML_PREFWEBX_STYLES_HELPID = PREFIX + "webx0062"; //$NON-NLS-1$
-	// XML Templates Preference page
-	public static final String XML_PREFWEBX_TEMPLATES_HELPID = PREFIX + "webx0063"; //$NON-NLS-1$
-
-	// XML Cleanup dialog
-	public static final String CLEANUP_XML_HELPID = PREFIX + "xmlm1200"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/XMLEditorPluginImageHelper.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/XMLEditorPluginImageHelper.java
deleted file mode 100644
index 32338df..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/XMLEditorPluginImageHelper.java
+++ /dev/null
@@ -1,155 +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.wst.xml.ui.internal.editor;
-
-import java.util.HashMap;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-
-/**
- * Helper class to handle images provided by this plug-in.
- * 
- * NOTE: For internal use only. For images used externally, please use the
- * Shared***ImageHelper class instead.
- * 
- * @author amywu
- */
-public class XMLEditorPluginImageHelper {
-	private static XMLEditorPluginImageHelper instance = null;
-
-	/**
-	 * Gets the instance.
-	 * 
-	 * @return Returns a XMLEditorPluginImageHelper
-	 */
-	public synchronized static XMLEditorPluginImageHelper getInstance() {
-		if (instance == null)
-			instance = new XMLEditorPluginImageHelper();
-		return instance;
-	}
-
-	//	 save a descriptor for each image
-	private HashMap fImageDescRegistry = null;
-	private final String PLUGINID = XMLUIPlugin.ID;
-
-	/**
-	 * Creates an image from the given resource and adds the image to the
-	 * image registry.
-	 * 
-	 * @param resource
-	 * @return Image
-	 */
-	private Image createImage(String resource) {
-		ImageDescriptor desc = getImageDescriptor(resource);
-		Image image = null;
-
-		if (desc != null) {
-			image = desc.createImage();
-			// dont add the missing image descriptor image to the image
-			// registry
-			if (!desc.equals(ImageDescriptor.getMissingImageDescriptor()))
-				getImageRegistry().put(resource, image);
-		}
-		return image;
-	}
-
-	/**
-	 * Creates an image descriptor from the given imageFilePath and adds the
-	 * image descriptor to the image descriptor registry. If an image
-	 * descriptor could not be created, the default "missing" image descriptor
-	 * is returned but not added to the image descriptor registry.
-	 * 
-	 * @param imageFilePath
-	 * @return ImageDescriptor image descriptor for imageFilePath or default
-	 *         "missing" image descriptor if resource could not be found
-	 */
-	private ImageDescriptor createImageDescriptor(String imageFilePath) {
-		ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(PLUGINID, imageFilePath);
-		if (imageDescriptor != null) {
-			getImageDescriptorRegistry().put(imageFilePath, imageDescriptor);
-		} else {
-			imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
-		}
-
-		return imageDescriptor;
-	}
-
-	/**
-	 * Retrieves the image associated with resource from the image registry.
-	 * If the image cannot be retrieved, attempt to find and load the image at
-	 * the location specified in resource.
-	 * 
-	 * @param resource
-	 *            the image to retrieve
-	 * @return Image the image associated with resource or null if one could
-	 *         not be found
-	 */
-	public Image getImage(String resource) {
-		Image image = getImageRegistry().get(resource);
-		if (image == null) {
-			// create an image
-			image = createImage(resource);
-		}
-		return image;
-	}
-
-	/**
-	 * Retrieves the image descriptor associated with resource from the image
-	 * descriptor registry. If the image descriptor cannot be retrieved,
-	 * attempt to find and load the image descriptor at the location specified
-	 * in resource.
-	 * 
-	 * @param resource
-	 *            the image descriptor to retrieve
-	 * @return ImageDescriptor the image descriptor assocated with resource or
-	 *         the default "missing" image descriptor if one could not be
-	 *         found
-	 */
-	public ImageDescriptor getImageDescriptor(String resource) {
-		ImageDescriptor imageDescriptor = null;
-		Object o = getImageDescriptorRegistry().get(resource);
-		if (o == null) {
-			//create a descriptor
-			imageDescriptor = createImageDescriptor(resource);
-		} else {
-			imageDescriptor = (ImageDescriptor) o;
-		}
-		return imageDescriptor;
-	}
-
-	/**
-	 * Returns the image descriptor registry for this plugin.
-	 * 
-	 * @return HashMap - image descriptor registry for this plugin
-	 */
-	private HashMap getImageDescriptorRegistry() {
-		if (fImageDescRegistry == null)
-			fImageDescRegistry = new HashMap();
-		return fImageDescRegistry;
-	}
-
-	/**
-	 * Returns the image registry for this plugin.
-	 * 
-	 * @return ImageRegistry - image registry for this plugin
-	 */
-	private ImageRegistry getImageRegistry() {
-		return JFaceResources.getImageRegistry();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/XMLEditorPluginImages.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/XMLEditorPluginImages.java
deleted file mode 100644
index fbb4ad7..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/editor/XMLEditorPluginImages.java
+++ /dev/null
@@ -1,55 +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.wst.xml.ui.internal.editor;
-
-/**
- * Bundle of most images used by the XML Source Editor plug-in.
- */
-public class XMLEditorPluginImages {
-
-	public static final String IMG_DTOOL_CONSTRAINOFF = "icons/full/dtool16/constrainoff.gif"; //$NON-NLS-1$
-	public static final String IMG_DTOOL_CONSTRAINON = "icons/full/dtool16/constrainon.gif"; //$NON-NLS-1$
-	public static final String IMG_DTOOL_RLDGRMR = "icons/full/dtool16/rldgrmr.gif"; //$NON-NLS-1$
-	public static final String IMG_DTOOL_VALIDATE = "icons/full/dtool16/validate.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_CONSTRAINOFF = "icons/full/etool16/constrainoff.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_CONSTRAINON = "icons/full/etool16/constrainon.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_RLDGRMR = "icons/full/etool16/rldgrmr.gif"; //$NON-NLS-1$
-	public static final String IMG_ETOOL_VALIDATE = "icons/full/etool16/validate.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_ADD_CORRECTION = "icons/full/obj16/add_correction.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_ATT_REQ_OBJ = "icons/full/obj16/att_req_obj.gif"; //$NON-NLS-1$
-
-	public static final String IMG_OBJ_ATTRIBUTE = "icons/full/obj16/attribute_obj.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_CDATASECTION = "icons/full/obj16/cdatasection.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_COMMENT = "icons/full/obj16/comment_obj.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_CORRECTION_CHANGE = "icons/full/obj16/correction_change.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_DOCTYPE = "icons/full/obj16/doctype.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_DTDFILE = "icons/full/obj16/dtdfile.gif"; //$NON-NLS-1$	
-	public static final String IMG_OBJ_ELEMENT = "icons/full/obj16/element_obj.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_ENTITY = "icons/full/obj16/entity.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_ENTITY_REFERENCE = "icons/full/obj16/entity_reference.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_ENUM = "icons/full/obj16/enum.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_LOCAL_VARIABLE = "icons/full/obj16/localvariable_obj.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_NOTATION = "icons/full/obj16/notation.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_PROCESSINGINSTRUCTION = "icons/full/obj16/proinst_obj.gif"; //$NON-NLS-1$
-    public static final String IMG_OBJ_TAG_GENERIC = "icons/full/obj16/tag-generic.gif"; //$NON-NLS-1$
-    public static final String IMG_OBJ_TAG_GENERIC_DEEMPHASIZED = "icons/full/obj16/tag-generic-deemphasized.gif"; //$NON-NLS-1$    
-    public static final String IMG_OBJ_TAG_GENERIC_EMPHASIZED = "icons/full/obj16/tag-generic-emphasized.gif"; //$NON-NLS-1$        
-	public static final String IMG_OBJ_TAG_MACRO = "icons/full/obj16/tag-macro.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_TXTEXT = "icons/full/obj16/text.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_WARNING_OBJ = "icons/full/obj16/warning_obj.gif"; //$NON-NLS-1$
-	public static final String IMG_OBJ_XSDFILE = "icons/full/obj16/XSDFile.gif"; //$NON-NLS-1$
-
-	public static final String IMG_OVR_ERROR = "icons/full/ovr16/error_ovr.gif"; //$NON-NLS-1$
-	public static final String IMG_OVR_STALE_ERROR = "icons/full/ovr16/stale_error_ovr.gif"; //$NON-NLS-1$
-	public static final String IMG_OVR_WARN = "icons/full/ovr16/warn_ovr.gif"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/ExternalFileEditorInput.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/ExternalFileEditorInput.java
deleted file mode 100644
index 18e86fb..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/ExternalFileEditorInput.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.eclipse.wst.xml.ui.internal.hyperlink;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IPathEditorInput;
-import org.eclipse.ui.IPersistableElement;
-import org.eclipse.ui.editors.text.ILocationProvider;
-import org.eclipse.ui.model.IWorkbenchAdapter;
-
-/**
- * EditorInput for external files. Copied from
- * org.eclipse.ui.internal.editors.text.JavaFileEditorInput
- */
-class ExternalFileEditorInput implements IEditorInput, ILocationProvider {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-	
-	/**
-	 * The workbench adapter which simply provides the label.
-	 */
-	private class WorkbenchAdapter implements IWorkbenchAdapter {
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getChildren(java.lang.Object)
-		 */
-		public Object[] getChildren(Object o) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
-		 */
-		public ImageDescriptor getImageDescriptor(Object object) {
-			return null;
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
-		 */
-		public String getLabel(Object o) {
-			return ((ExternalFileEditorInput) o).getName();
-		}
-
-		/*
-		 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
-		 */
-		public Object getParent(Object o) {
-			return null;
-		}
-	}
-
-	private File fFile;
-	private WorkbenchAdapter fWorkbenchAdapter = new WorkbenchAdapter();
-
-	public ExternalFileEditorInput(File file) {
-		super();
-		fFile = file;
-		fWorkbenchAdapter = new WorkbenchAdapter();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#exists()
-	 */
-	public boolean exists() {
-		return fFile.exists();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
-	 */
-	public ImageDescriptor getImageDescriptor() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getName()
-	 */
-	public String getName() {
-		return fFile.getName();
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getPersistable()
-	 */
-	public IPersistableElement getPersistable() {
-		return null;
-	}
-
-	/*
-	 * @see org.eclipse.ui.IEditorInput#getToolTipText()
-	 */
-	public String getToolTipText() {
-		return fFile.getAbsolutePath();
-	}
-
-	/*
-	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
-	 */
-	public Object getAdapter(Class adapter) {
-		if (ILocationProvider.class.equals(adapter))
-			return this;
-		if (IWorkbenchAdapter.class.equals(adapter))
-			return fWorkbenchAdapter;
-		return Platform.getAdapterManager().getAdapter(this, adapter);
-	}
-
-	/*
-	 * @see org.eclipse.ui.editors.text.ILocationProvider#getPath(java.lang.Object)
-	 */
-	public IPath getPath(Object element) {
-		if (element instanceof ExternalFileEditorInput) {
-			ExternalFileEditorInput input = (ExternalFileEditorInput) element;
-			return Path.fromOSString(input.fFile.getAbsolutePath());
-		}
-		return null;
-	}
-	
-    /*
-     * @see org.eclipse.ui.IPathEditorInput#getPath()
-     * @since 3.1
-     */
-    public IPath getPath() {
-        return Path.fromOSString(fFile.getAbsolutePath());
-    }
-
-	/*
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object o) {
-		if (o == this)
-			return true;
-
-		if (o instanceof ExternalFileEditorInput) {
-			ExternalFileEditorInput input = (ExternalFileEditorInput) o;
-			return fFile.equals(input.fFile);
-		}
-		
-        if (o instanceof IPathEditorInput) {
-            IPathEditorInput input= (IPathEditorInput)o;
-            return getPath().equals(input.getPath());
-        }
-
-		return false;
-	}
-
-	/*
-	 * @see java.lang.Object#hashCode()
-	 */
-	public int hashCode() {
-		return fFile.hashCode();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/ExternalFileHyperlink.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/ExternalFileHyperlink.java
deleted file mode 100644
index f96a072..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/ExternalFileHyperlink.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package org.eclipse.wst.xml.ui.internal.hyperlink;
-
-import java.io.File;
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.wst.xml.ui.internal.Logger;
-
-/**
- * Hyperlink for external files.
- */
-class ExternalFileHyperlink implements IHyperlink {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-	
-	private IRegion fHyperlinkRegion;
-	private File fHyperlinkFile;
-
-	public ExternalFileHyperlink(IRegion region, File file) {
-		fHyperlinkFile = file;
-		fHyperlinkRegion = region;
-	}
-	
-	public IRegion getHyperlinkRegion() {
-		return fHyperlinkRegion;
-	}
-
-	public String getTypeLabel() {
-		return null;
-	}
-
-	public String getHyperlinkText() {
-		return null;
-	}
-
-	public void open() {
-		if (fHyperlinkFile != null) {
-			IEditorInput input = new ExternalFileEditorInput(fHyperlinkFile);
-			IEditorDescriptor descriptor;
-			try {
-				descriptor = IDE.getEditorDescriptor(input.getName(), true);
-				if (descriptor != null) {
-					IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-					IDE.openEditor(page, input, descriptor.getId(), true);
-				}
-			}
-			catch (PartInitException e) {
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/WorkspaceFileHyperlink.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/WorkspaceFileHyperlink.java
deleted file mode 100644
index 23fe9cb..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/WorkspaceFileHyperlink.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package org.eclipse.wst.xml.ui.internal.hyperlink;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.wst.xml.ui.internal.Logger;
-
-/**
- * Hyperlink for files within the workspace. (As long as there is an IFile,
- * this can be used) Opens the default editor for the file.
- */
-class WorkspaceFileHyperlink implements IHyperlink {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-
-	private IRegion fRegion;
-	private IFile fFile;
-	private IRegion fHighlightRange;
-
-	public WorkspaceFileHyperlink(IRegion region, IFile file) {
-		fRegion = region;
-		fFile = file;
-	}
-
-	public WorkspaceFileHyperlink(IRegion region, IFile file, IRegion range) {
-		fRegion = region;
-		fFile = file;
-		fHighlightRange = range;
-	}
-
-	public IRegion getHyperlinkRegion() {
-		return fRegion;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getTypeLabel()
-	 */
-	public String getTypeLabel() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.hyperlink.IHyperlink#getHyperlinkText()
-	 */
-	public String getHyperlinkText() {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	public void open() {
-		if (fFile != null && fFile.exists()) {
-			try {
-				IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
-				IEditorPart editor = IDE.openEditor(page, fFile, true);
-				// highlight range in editor if possible
-				if (fHighlightRange != null && editor instanceof ITextEditor) {
-					((ITextEditor) editor).setHighlightRange(fHighlightRange.getOffset(), fHighlightRange.getLength(), true);
-				}
-			}
-			catch (PartInitException pie) {
-				Logger.log(Logger.WARNING_DEBUG, pie.getMessage(), pie);
-			}
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/XMLHyperlinkDetector.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/XMLHyperlinkDetector.java
deleted file mode 100644
index 1c95953..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/hyperlink/XMLHyperlinkDetector.java
+++ /dev/null
@@ -1,503 +0,0 @@
-package org.eclipse.wst.xml.ui.internal.hyperlink;
-
-import java.io.File;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.hyperlink.URLHyperlink;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DocumentType;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * Detects hyperlinks in XML tags. Includes detection in DOCTYPE and attribute
- * values. Resolves references to schemas, dtds, etc using the Common URI
- * Resolver.
- * 
- */
-public class XMLHyperlinkDetector implements IHyperlinkDetector {
-	// copies of this class exist in:
-	// org.eclipse.wst.xml.ui.internal.hyperlink
-	// org.eclipse.wst.html.ui.internal.hyperlink
-	// org.eclipse.jst.jsp.ui.internal.hyperlink
-
-	private final String HTTP_PROTOCOL = "http://";//$NON-NLS-1$
-	private final String NO_NAMESPACE_SCHEMA_LOCATION = "noNamespaceSchemaLocation"; //$NON-NLS-1$
-	private final String SCHEMA_LOCATION = "schemaLocation"; //$NON-NLS-1$
-	private final String XMLNS = "xmlns"; //$NON-NLS-1$
-	private final String XSI_NAMESPACE_URI = "http://www.w3.org/2001/XMLSchema-instance"; //$NON-NLS-1$
-
-	/**
-	 * Create the appropriate hyperlink
-	 * 
-	 * @param uriString
-	 * @param hyperlinkRegion
-	 * @return IHyperlink
-	 */
-	private IHyperlink createHyperlink(String uriString, IRegion hyperlinkRegion, IDocument document, Node node) {
-		IHyperlink link = null;
-
-		if (isHttp(uriString)) {
-			link = new URLHyperlink(hyperlinkRegion, uriString);
-		}
-		else {
-			// try to locate the file in the workspace
-			File systemFile = getFileFromUriString(uriString);
-			if (systemFile != null) {
-				String systemPath = systemFile.getPath();
-				IFile file = getFile(systemPath);
-				if (file != null) {
-					// this is a WorkspaceFileHyperlink since file exists in
-					// workspace
-					link = new WorkspaceFileHyperlink(hyperlinkRegion, file);
-				}
-				else {
-					// this is an ExternalFileHyperlink since file does not
-					// exist in workspace
-					link = new ExternalFileHyperlink(hyperlinkRegion, systemFile);
-				}
-			}
-		}
-		return link;
-	}
-
-	public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks) {
-		// for now, only capable of creating 1 hyperlink
-		List hyperlinks = new ArrayList(0);
-
-		if (region != null && textViewer != null) {
-			IDocument document = textViewer.getDocument();
-			Node currentNode = getCurrentNode(document, region.getOffset());
-			if (currentNode != null) {
-				String uriString = null;
-				if (currentNode.getNodeType() == Node.DOCUMENT_TYPE_NODE) {
-					// doctype nodes
-					uriString = getURIString(currentNode, document);
-				}
-				else if (currentNode.getNodeType() == Node.ELEMENT_NODE) {
-					// element nodes
-					Attr currentAttr = getCurrentAttrNode(currentNode, region.getOffset());
-					if (currentAttr != null) {
-						// try to find link for current attribute
-						// resolve attribute value
-						uriString = getURIString(currentAttr, document);
-						// verify validity of uri string
-						if (uriString == null || !isValidURI(uriString))
-							// reset current attribute
-							currentAttr = null;
-					}
-					if (currentAttr == null) {
-						// try to find a linkable attribute within element
-						currentAttr = getLinkableAttr((Element) currentNode);
-						if (currentAttr != null) {
-							uriString = getURIString(currentAttr, document);
-						}
-					}
-					currentNode = currentAttr;
-				}
-				// try to create hyperlink from information gathered
-				if (uriString != null && currentNode != null && isValidURI(uriString)) {
-					IRegion hyperlinkRegion = getHyperlinkRegion(currentNode);
-					IHyperlink hyperlink = createHyperlink(uriString, hyperlinkRegion, document, currentNode);
-					if (hyperlink != null) {
-						hyperlinks.add(hyperlink);
-					}
-				}
-			}
-		}
-		if (hyperlinks.size() == 0)
-			return null;
-		return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]);
-	}
-
-	/**
-	 * Get the base location from the current model (local file system)
-	 */
-	private String getBaseLocation(IDocument document) {
-		String baseLoc = null;
-
-		// get the base location from the current model
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			if (sModel != null) {
-				IPath location = new Path(sModel.getBaseLocation());
-				if (location.toFile().exists()) {
-					baseLoc = location.toString();
-				}
-				else {
-					if (location.segmentCount() > 1)
-						baseLoc = ResourcesPlugin.getWorkspace().getRoot().getFile(location).getLocation().toString();
-					else
-						baseLoc = ResourcesPlugin.getWorkspace().getRoot().getLocation().append(location).toString();
-				}
-			}
-		}
-		finally {
-			if (sModel != null) {
-				sModel.releaseFromRead();
-			}
-		}
-		return baseLoc;
-	}
-
-	/**
-	 * Get the CMElementDeclaration for an element
-	 * 
-	 * @param element
-	 * @return CMElementDeclaration
-	 */
-	private CMElementDeclaration getCMElementDeclaration(Element element) {
-		CMElementDeclaration ed = null;
-
-		ModelQuery mq = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-		if (mq != null) {
-			ed = mq.getCMElementDeclaration(element);
-		}
-		return ed;
-	}
-
-	/**
-	 * Returns the attribute node within node at offset
-	 * 
-	 * @param node
-	 * @param offset
-	 * @return Attr
-	 */
-	private Attr getCurrentAttrNode(Node node, int offset) {
-		if ((node instanceof IndexedRegion) && ((IndexedRegion) node).contains(offset) && (node.hasAttributes())) {
-			NamedNodeMap attrs = node.getAttributes();
-			// go through each attribute in node and if attribute contains
-			// offset, return that attribute
-			for (int i = 0; i < attrs.getLength(); ++i) {
-				// assumption that if parent node is of type IndexedRegion,
-				// then its attributes will also be of type IndexedRegion
-				IndexedRegion attRegion = (IndexedRegion) attrs.item(i);
-				if (attRegion.contains(offset)) {
-					return (Attr) attrs.item(i);
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the node the cursor is currently on in the document. null if no
-	 * node is selected
-	 * 
-	 * @param offset
-	 * @return Node either element, doctype, text, or null
-	 */
-	private Node getCurrentNode(IDocument document, int offset) {
-		// get the current node at the offset (returns either: element,
-		// doctype, text)
-		IndexedRegion inode = null;
-		IStructuredModel sModel = null;
-		try {
-			sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-			inode = sModel.getIndexedRegion(offset);
-			if (inode == null)
-				inode = sModel.getIndexedRegion(offset - 1);
-		}
-		finally {
-			if (sModel != null)
-				sModel.releaseFromRead();
-		}
-
-		if (inode instanceof Node) {
-			return (Node) inode;
-		}
-		return null;
-	}
-
-	/**
-	 * Returns an IFile from the given uri if possible, null if cannot find
-	 * file from uri.
-	 * 
-	 * @param fileString
-	 *            file system path
-	 * @return returns IFile if fileString exists in the workspace
-	 */
-	private IFile getFile(String fileString) {
-		IFile file = null;
-
-		if (fileString != null) {
-			IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocation(new Path(fileString));
-			for (int i = 0; i < files.length && file == null; i++)
-				if (files[i].exists())
-					file = files[i];
-		}
-
-		return file;
-	}
-
-	/**
-	 * Create a file from the given uri string
-	 * 
-	 * @param uriString -
-	 *            assumes uriString is not http://
-	 * @return File created from uriString if possible, null otherwise
-	 */
-	private File getFileFromUriString(String uriString) {
-		File file = null;
-		try {
-			// first just try to create a file directly from uriString as
-			// default in case create file from uri does not work
-			file = new File(uriString);
-
-			// try to create file from uri
-			URI uri = new URI(uriString);
-			file = new File(uri);
-		}
-		catch (Exception e) {
-			// if exception is thrown while trying to create File just ignore
-			// and file will be null
-		}
-		return file;
-	}
-
-	private IRegion getHyperlinkRegion(Node node) {
-		IRegion hyperRegion = null;
-
-		if (node != null) {
-			short nodeType = node.getNodeType();
-			if (nodeType == Node.DOCUMENT_TYPE_NODE) {
-				// handle doc type node
-				IDOMNode docNode = (IDOMNode) node;
-				hyperRegion = new Region(docNode.getStartOffset(), docNode.getEndOffset() - docNode.getStartOffset());
-			}
-			else if (nodeType == Node.ATTRIBUTE_NODE) {
-				// handle attribute nodes
-				IDOMAttr att = (IDOMAttr) node;
-				// do not include quotes in attribute value region
-				int regOffset = att.getValueRegionStartOffset();
-				ITextRegion valueRegion = att.getValueRegion();
-				if (valueRegion != null) {
-					int regLength = valueRegion.getTextLength();
-					String attValue = att.getValueRegionText();
-					if (StringUtils.isQuoted(attValue)) {
-						++regOffset;
-						regLength = regLength - 2;
-					}
-					hyperRegion = new Region(regOffset, regLength);
-				}
-			}
-		}
-		return hyperRegion;
-	}
-
-	/**
-	 * Attempts to find an attribute within element that is openable.
-	 * 
-	 * @param element -
-	 *            cannot be null
-	 * @return Attr attribute that can be used for open on, null if no
-	 *         attribute could be found
-	 */
-	private Attr getLinkableAttr(Element element) {
-		CMElementDeclaration ed = getCMElementDeclaration(element);
-		// get the list of attributes for this node
-		NamedNodeMap attrs = element.getAttributes();
-		for (int i = 0; i < attrs.getLength(); ++i) {
-			// check if this attribute is "openOn-able"
-			Attr att = (Attr) attrs.item(i);
-			if (isLinkableAttr(att, ed)) {
-				return att;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Find the location hint for the given namespaceURI if it exists
-	 * 
-	 * @param elementNode -
-	 *            cannot be null
-	 * @param namespaceURI -
-	 *            cannot be null
-	 * @return location hint (systemId) if it was found, null otherwise
-	 */
-	private String getLocationHint(Element elementNode, String namespaceURI) {
-		Attr schemaLocNode = elementNode.getAttributeNodeNS(XSI_NAMESPACE_URI, SCHEMA_LOCATION);
-		if (schemaLocNode != null) {
-			StringTokenizer st = new StringTokenizer(schemaLocNode.getValue());
-			while (st.hasMoreTokens()) {
-				String publicId = st.hasMoreTokens() ? st.nextToken() : null;
-				String systemId = st.hasMoreTokens() ? st.nextToken() : null;
-				// found location hint
-				if (namespaceURI.equalsIgnoreCase(publicId))
-					return systemId;
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Returns the URI string
-	 * 
-	 * @param node -
-	 *            assumes not null
-	 */
-	private String getURIString(Node node, IDocument document) {
-		String resolvedURI = null;
-		// need the base location, publicId, and systemId for URIResolver
-		String baseLoc = null;
-		String publicId = null;
-		String systemId = null;
-
-		short nodeType = node.getNodeType();
-		// handle doc type node
-		if (nodeType == Node.DOCUMENT_TYPE_NODE) {
-			baseLoc = getBaseLocation(document);
-			publicId = ((DocumentType) node).getPublicId();
-			systemId = ((DocumentType) node).getSystemId();
-		}
-		else if (nodeType == Node.ATTRIBUTE_NODE) {
-			// handle attribute node
-			Attr attrNode = (Attr) node;
-			String attrName = attrNode.getName();
-			String attrValue = attrNode.getValue();
-			attrValue = StringUtils.strip(attrValue);
-			if (attrValue != null && attrValue.length() > 0) {
-				baseLoc = getBaseLocation(document);
-				
-				// handle schemaLocation attribute
-				String prefix = DOMNamespaceHelper.getPrefix(attrName);
-				String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attrName);
-				if ((XMLNS.equals(prefix)) || (XMLNS.equals(unprefixedName))) {
-					publicId = attrValue;
-					systemId = getLocationHint(attrNode.getOwnerElement(), publicId);
-					if (systemId == null) {
-						systemId = attrValue;
-					}
-				}
-				else if ((XSI_NAMESPACE_URI.equals(DOMNamespaceHelper.getNamespaceURI(attrNode))) && (SCHEMA_LOCATION.equals(unprefixedName))) {
-					// for now just use the first pair
-					// need to look into being more precise
-					StringTokenizer st = new StringTokenizer(attrValue);
-					publicId = st.hasMoreTokens() ? st.nextToken() : null;
-					systemId = st.hasMoreTokens() ? st.nextToken() : null;
-					// else check if xmlns publicId = value
-				}
-				else {
-					systemId = attrValue;
-				}
-			}
-		}
-
-		resolvedURI = resolveURI(baseLoc, publicId, systemId);
-		return resolvedURI;
-	}
-
-	/**
-	 * Returns true if this uriString is an http string
-	 * 
-	 * @param uriString
-	 * @return true if uriString is http string, false otherwise
-	 */
-	private boolean isHttp(String uriString) {
-		boolean isHttp = false;
-		if (uriString != null) {
-			String tempString = uriString.toLowerCase();
-			if (tempString.startsWith(HTTP_PROTOCOL))
-				isHttp = true;
-		}
-		return isHttp;
-	}
-
-	/**
-	 * Checks to see if the given attribute is openable. Attribute is openable
-	 * if it is a namespace declaration attribute or if the attribute value is
-	 * of type URI.
-	 * 
-	 * @param attr
-	 *            cannot be null
-	 * @param cmElement
-	 *            CMElementDeclaration associated with the attribute (can be
-	 *            null)
-	 * @return true if this attribute is "openOn-able" false otherwise
-	 */
-	private boolean isLinkableAttr(Attr attr, CMElementDeclaration cmElement) {
-		String attrName = attr.getName();
-		String prefix = DOMNamespaceHelper.getPrefix(attrName);
-		String unprefixedName = DOMNamespaceHelper.getUnprefixedName(attrName);
-		// determine if attribute is namespace declaration
-		if ((XMLNS.equals(prefix)) || (XMLNS.equals(unprefixedName)))
-			return true;
-
-		// determine if attribute contains schema location
-		if ((XSI_NAMESPACE_URI.equals(DOMNamespaceHelper.getNamespaceURI(attr))) && ((SCHEMA_LOCATION.equals(unprefixedName)) || (NO_NAMESPACE_SCHEMA_LOCATION.equals(unprefixedName))))
-			return true;
-
-		// determine if attribute value is of type URI
-		if (cmElement != null) {
-			CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) cmElement.getAttributes().getNamedItem(attrName);
-			if ((attrDecl != null) && (attrDecl.getAttrType() != null) && (CMDataType.URI.equals(attrDecl.getAttrType().getDataTypeName()))) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Checks whether the given uriString is really pointing to a file
-	 * 
-	 * @param uriString
-	 * @return boolean
-	 */
-	private boolean isValidURI(String uriString) {
-		boolean isValid = false;
-
-		if (isHttp(uriString))
-			isValid = true;
-		else {
-			File file = getFileFromUriString(uriString);
-			if (file != null)
-				isValid = file.isFile();
-		}
-		return isValid;
-	}
-
-	/**
-	 * Resolves the given URI information
-	 * 
-	 * @param baseLocation
-	 * @param publicId
-	 * @param systemId
-	 * @return String resolved uri.
-	 */
-	private String resolveURI(String baseLocation, String publicId, String systemId) {
-		// dont resolve if there's nothing to resolve
-		if ((baseLocation == null) && (publicId == null) && (systemId == null))
-			return null;
-		return URIResolverPlugin.createResolver().resolve(baseLocation, publicId, systemId);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesControl.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesControl.java
deleted file mode 100644
index e45bc98..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesControl.java
+++ /dev/null
@@ -1,265 +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.wst.xml.ui.internal.nsedit;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.TableItem;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.dialogs.SelectFileOrXMLCatalogIdDialog;
-
-public class CommonAddNamespacesControl extends Composite implements SelectionListener {
-
-	class EditNamespaceControl extends Composite {
-		protected Button browseButton;
-		Text locationHintField;
-		Text prefixField;
-		Text uriField;
-
-		//protected NamespaceInfo info;
-
-		public EditNamespaceControl(Composite parent) {
-			super(parent, SWT.NONE); //BORDER);
-			setLayout(new GridLayout());
-			setLayoutData(new GridData(GridData.FILL_BOTH));
-
-			Label label = new Label(this, SWT.NONE);
-			label.setText(XMLUIMessages._UI_ENTER_REQ_PREFIX_AND_NAMESPACE); //$NON-NLS-1$
-
-			Composite composite = new Composite(this, SWT.NONE);
-			GridLayout layout = new GridLayout();
-			layout.numColumns = 3;
-			layout.marginWidth = 0;
-			layout.verticalSpacing = 1;
-			composite.setLayout(layout);
-
-			GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-			gd.widthHint = 350;
-			composite.setLayoutData(gd);
-
-			// row 1
-			//
-			Label prefixLabel = new Label(composite, SWT.NONE);
-			prefixLabel.setText(XMLUIMessages._UI_LABEL_PREFIX_COLON); //$NON-NLS-1$
-
-			prefixField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-			prefixField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			//prefixField.setText(getDisplayValue(info.prefix));
-			//prefixField.addModifyListener(modifyListener);
-			//prefixField.setEnabled(info.getProperty("prefix-readOnly") ==
-			// null);
-			new Label(composite, SWT.NONE);
-
-			// row 2
-			//
-			Label uriLabel = new Label(composite, SWT.NONE);
-			uriLabel.setText(XMLUIMessages._UI_LABEL_NAMESPACE_NAME_COLON); //$NON-NLS-1$
-
-			uriField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-			uriField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			//uriField.setText(getDisplayValue(info.uri));
-			//uriField.addModifyListener(modifyListener);
-			//uriField.setEnabled(info.getProperty("uri-readOnly") == null);
-
-			new Label(composite, SWT.NONE);
-
-			// row 3
-			//
-			Label locationHintLabel = new Label(composite, SWT.NONE);
-			locationHintLabel.setText(XMLUIMessages._UI_LABEL_LOCATION_HINT_COLON); //$NON-NLS-1$
-
-			locationHintField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-			locationHintField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-			//locationHintField.setText(getDisplayValue(info.locationHint));
-			//locationHintField.addModifyListener(modifyListener);
-			//locationHintField.setEnabled(info.getProperty("locationHint-readOnly")
-			// == null);
-
-			SelectionListener selectionListener = new SelectionAdapter() {
-				public void widgetSelected(SelectionEvent e) {
-					performBrowse();
-				}
-			};
-
-			browseButton = new Button(composite, SWT.NONE);
-			browseButton.setText(XMLUIMessages._UI_LABEL_BROWSE); //$NON-NLS-1$
-			browseButton.addSelectionListener(selectionListener);
-			browseButton.setEnabled(locationHintField.getEnabled());
-		}
-
-		protected void performBrowse() {
-			String[] extensions = {".xsd"}; //$NON-NLS-1$
-			SelectFileOrXMLCatalogIdDialog dialog = new SelectFileOrXMLCatalogIdDialog(getShell(), extensions);
-			dialog.create();
-			dialog.getShell().setText(XMLUIMessages._UI_LABEL_SELECT_FILE); //$NON-NLS-1$
-			dialog.setBlockOnOpen(true);
-			dialog.open();
-
-			if (dialog.getReturnCode() == Window.OK) {
-				//String grammarURI = null;
-				IFile file = dialog.getFile();
-				String id = dialog.getId();
-				if (file != null) {
-					String uri = null;
-					if (resourceLocation != null) {
-						uri = URIHelper.getRelativeURI(file.getLocation(), resourceLocation);
-						//grammarURI = file.getLocation().toOSString();
-					} else {
-						uri = file.getLocation().toOSString();
-						//grammarURI = uri;
-					}
-					locationHintField.setText(uri);
-				} else if (id != null) {
-					locationHintField.setText(id);
-					//URIResolver resolver = 
-						URIResolverPlugin.createResolver();
-					//grammarURI = resolver.resolve(null, id, id);
-				}
-
-				try {
-					//TODO CMDocument document =
-					// CMDocumentBuilderRegistry.getInstance().buildCMDocument(grammarURI);
-					//				 List namespaceInfoList =
-					// (List)document.getProperty("http://org.eclipse.wst/cm/properties/namespaceInfo");
-					//				 NamespaceInfo info =
-					// (NamespaceInfo)namespaceInfoList.get(0);
-					//				 if (uriField.getText().trim().length() == 0 && info.uri
-					// != null)
-					//				 {
-					//					 uriField.setText(info.uri);
-					//				 }
-					//				 if (prefixField.getText().trim().length() == 0 &&
-					// info.prefix != null)
-					//				 {
-					//					 prefixField.setText(info.prefix);
-					//				 }
-				} catch (Exception e) {
-				}
-			}
-		}
-	}
-
-	protected Button deleteButton;
-	protected Button editButton;
-	protected EditNamespaceControl editNamespaceControl;
-	protected int heightHint = 250;
-	protected List namespaceInfoList = new ArrayList();
-	protected Button newButton;
-	protected PageBook pageBook;
-	protected Button radio1;
-	protected Button radio2;
-	protected IPath resourceLocation;
-	protected Composite tableSection;
-	protected CommonNamespaceInfoTable tableViewer;
-	protected int widthHint = 500;
-
-
-	public CommonAddNamespacesControl(Composite parent, int style, IPath resourceLocation) {
-		super(parent, style);
-		this.resourceLocation = resourceLocation;
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		if (widthHint != -1) {
-			gd.widthHint = widthHint;
-		}
-		if (heightHint != -1) {
-			gd.heightHint = heightHint;
-		}
-		setLayoutData(gd);
-		setLayout(new GridLayout());
-
-		radio1 = new Button(this, SWT.RADIO);
-		radio1.setText(XMLUIMessages._UI_SELECT_REGISTERED_NAMESPACES); //$NON-NLS-1$
-		radio1.addSelectionListener(this);
-
-		radio2 = new Button(this, SWT.RADIO);
-		radio2.setText(XMLUIMessages._UI_SPECIFY_NEW_NAMESPACE); //$NON-NLS-1$
-		radio2.addSelectionListener(this);
-
-		Label separator = new Label(this, SWT.SEPARATOR | SWT.HORIZONTAL);
-		separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		//Group namespaceInfoGroup = new Group(this, SWT.NONE);
-		//namespaceInfoGroup.setText("Namespace Declarations");
-		// //XMLCommonUIPlugin.getInstance().getString("_UI_LABEL_XML_SCHEMA_INFORMATION"));
-		//namespaceInfoGroup.setLayout(new GridLayout(2, false));
-		//namespaceInfoGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
-		pageBook = new PageBook(this, SWT.NONE);
-		pageBook.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		tableSection = new Composite(pageBook, SWT.NONE);
-		tableSection.setLayout(new GridLayout());
-		Label label = new Label(tableSection, SWT.NONE);
-		label.setText(XMLUIMessages._UI_SELECT_NAMESPACE_TO_ADD); //$NON-NLS-1$
-
-		tableViewer = new CommonNamespaceInfoTable(tableSection, SWT.CHECK, 6);
-		editNamespaceControl = new EditNamespaceControl(pageBook);
-		pageBook.showPage(tableSection);
-
-		tableViewer.setInput(namespaceInfoList);
-	}
-
-
-
-	public List getNamespaceInfoList() {
-		List list = new ArrayList();
-		if (radio1.getSelection()) {
-			TableItem[] items = tableViewer.getTable().getItems();
-			for (int i = 0; i < items.length; i++) {
-				TableItem item = items[i];
-				if (item.getChecked()) {
-					list.add(item.getData());
-				}
-			}
-		} else {
-			NamespaceInfo info = new NamespaceInfo();
-			info.prefix = editNamespaceControl.prefixField.getText();
-			info.uri = editNamespaceControl.uriField.getText();
-			info.locationHint = editNamespaceControl.locationHintField.getText();
-			list.add(info);
-		}
-		return list;
-	}
-
-	public void setNamespaceInfoList(List list) {
-		namespaceInfoList = list;
-		tableViewer.setInput(namespaceInfoList);
-	}
-
-	public void widgetDefaultSelected(SelectionEvent e) {
-	}
-
-	public void widgetSelected(SelectionEvent e) {
-		if (e.widget == radio1) {
-			pageBook.showPage(tableSection);
-		} else if (e.widget == radio2) {
-			pageBook.showPage(editNamespaceControl);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesDialog.java
deleted file mode 100644
index b084aea..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonAddNamespacesDialog.java
+++ /dev/null
@@ -1,210 +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.wst.xml.ui.internal.nsedit;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-
-
-
-public class CommonAddNamespacesDialog extends Dialog {
-	protected CommonAddNamespacesControl addNamespacesControl;
-	protected List existingNamespaces;
-	protected List namespaceInfoList;
-	protected Button okButton;
-	protected HashMap preferredPrefixTable = new HashMap();
-	protected IPath resourceLocation;
-	protected String title;
-
-	public CommonAddNamespacesDialog(Shell parentShell, String title, IPath resourceLocation, List existingNamespaces) {
-		super(parentShell);
-		this.resourceLocation = resourceLocation;
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		this.title = title;
-		this.existingNamespaces = existingNamespaces;
-		preferredPrefixTable.put("http://schemas.xmlsoap.org/wsdl/", "wsdl"); //$NON-NLS-1$ //$NON-NLS-2$
-		preferredPrefixTable.put("http://schemas.xmlsoap.org/wsdl/soap/", "soap"); //$NON-NLS-1$ //$NON-NLS-2$
-		preferredPrefixTable.put("http://schemas.xmlsoap.org/wsdl/http/", "http"); //$NON-NLS-1$ //$NON-NLS-2$
-		preferredPrefixTable.put("http://schemas.xmlsoap.org/wsdl/mime/", "mime"); //$NON-NLS-1$ //$NON-NLS-2$
-		preferredPrefixTable.put("http://schemas.xmlsoap.org/soap/encoding/", "soapenc"); //$NON-NLS-1$ //$NON-NLS-2$
-		preferredPrefixTable.put("http://schemas.xmlsoap.org/soap/envelope/", "soapenv"); //$NON-NLS-1$ //$NON-NLS-2$
-		preferredPrefixTable.put("http://www.w3.org/2001/XMLSchema-instance", "xsi"); //$NON-NLS-1$ //$NON-NLS-2$
-		preferredPrefixTable.put("http://www.w3.org/2001/XMLSchema", "xsd"); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	protected void addBuiltInNamespaces(List list) {
-		String xsiNamespace = "http://www.w3.org/2001/XMLSchema-instance"; //$NON-NLS-1$
-		String xsdNamespace = "http://www.w3.org/2001/XMLSchema"; //$NON-NLS-1$
-		if (!isAlreadyDeclared(xsiNamespace)) {
-			list.add(new NamespaceInfo("http://www.w3.org/2001/XMLSchema-instance", "xsi", null)); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		if (!isAlreadyDeclared(xsdNamespace)) {
-			list.add(new NamespaceInfo("http://www.w3.org/2001/XMLSchema", "xsd", null)); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-
-	protected void addCatalogMapToList(ICatalog catalog, List list) {
-		ICatalogEntry[] entries = catalog.getCatalogEntries();
-		for ( int i = 0; i < entries.length; i++) {
-			ICatalogEntry entry = entries[i];
-			if (entry.getEntryType() == ICatalogEntry.ENTRY_TYPE_PUBLIC && entry.getURI().endsWith(".xsd")) { //$NON-NLS-1$
-				if (!isAlreadyDeclared(entry.getKey())) {
-					NamespaceInfo namespaceInfo = new NamespaceInfo(entry.getKey(), "xx", null); //$NON-NLS-1$
-					list.add(namespaceInfo);
-				}
-			}
-		}
-	}
-
-	protected void buttonPressed(int buttonId) {
-		if (buttonId == IDialogConstants.OK_ID) {
-			namespaceInfoList = addNamespacesControl.getNamespaceInfoList();
-		}
-		super.buttonPressed(buttonId);
-	}
-
-	public void computeAddablePrefixes(List addableList, List exisitingList) {
-		HashMap map = new HashMap();
-		for (Iterator i = exisitingList.iterator(); i.hasNext();) {
-			NamespaceInfo info = (NamespaceInfo) i.next();
-			if (info.prefix != null) {
-				map.put(info.prefix, info);
-			}
-		}
-		for (Iterator i = addableList.iterator(); i.hasNext();) {
-			NamespaceInfo info = (NamespaceInfo) i.next();
-			if (info.uri != null) {
-				String prefix = (String) preferredPrefixTable.get(info.uri);
-				info.prefix = getUniquePrefix(map, prefix, info.uri);
-				map.put(info.prefix, info);
-			}
-		}
-	}
-
-	public int createAndOpen() {
-		create();
-		getShell().setText(title);
-		Rectangle r = getShell().getBounds();
-		getShell().setBounds(r.x + 80, r.y + 80, r.width, r.height);
-		setBlockOnOpen(true);
-		return open();
-	}
-
-	protected void createButtonsForButtonBar(Composite parent) {
-		okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-		createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-	}
-
-	protected Control createContents(Composite parent) {
-		Control control = super.createContents(parent);
-		return control;
-	}
-
-
-
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		addNamespacesControl = new CommonAddNamespacesControl(dialogArea, SWT.NONE, resourceLocation);
-		List list = new ArrayList();
-
-		addBuiltInNamespaces(list);
-		ICatalog defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-		INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs();
-        for (int i = 0; i < nextCatalogs.length; i++)
-        {
-            INextCatalog catalog = nextCatalogs[i];
-            ICatalog referencedCatalog = catalog.getReferencedCatalog();
-            if (referencedCatalog != null)
-            {
-                if (XMLCorePlugin.USER_CATALOG_ID
-                        .equals(referencedCatalog.getId()))
-                {
-                	ICatalog userCatalog = referencedCatalog;
-                	addCatalogMapToList(userCatalog, list);
-
-                } else if (XMLCorePlugin.SYSTEM_CATALOG_ID
-                        .equals(referencedCatalog.getId()))
-                {
-                	ICatalog systemCatalog = referencedCatalog;
-            		addCatalogMapToList(systemCatalog, list);
-                }
-            }
-        }
-	
-		computeAddablePrefixes(list, existingNamespaces);
-
-		addNamespacesControl.setNamespaceInfoList(list);
-		return dialogArea;
-	}
-
-	public List getNamespaceInfoList() {
-		return namespaceInfoList;
-	}
-
-	protected String getPreferredPrefix(String namespaceURI) {
-		return (String) preferredPrefixTable.get(namespaceURI);
-	}
-
-	private String getUniquePrefix(HashMap prefixMap, String prefix, String uri) {
-		if (prefix == null) {
-			int lastIndex = uri.lastIndexOf('/');
-			if (lastIndex == uri.length() - 1) {
-				uri = uri.substring(0, lastIndex);
-				lastIndex = uri.lastIndexOf('/');
-			}
-			prefix = uri.substring(lastIndex + 1);
-			if (prefix.length() > 20 || prefix.indexOf(':') != -1) {
-				prefix = null;
-			}
-		}
-		if (prefix == null) {
-			prefix = "p"; //$NON-NLS-1$
-		}
-		if (prefixMap.get(prefix) != null) {
-			String base = prefix;
-			for (int count = 0; prefixMap.get(prefix) != null; count++) {
-				prefix = base + count;
-			}
-		}
-		return prefix;
-	}
-
-	protected boolean isAlreadyDeclared(String namespaceURI) {
-		boolean result = false;
-		for (Iterator i = existingNamespaces.iterator(); i.hasNext();) {
-			NamespaceInfo namespaceInfo = (NamespaceInfo) i.next();
-			if (namespaceURI.equals(namespaceInfo.uri)) {
-				result = true;
-				break;
-			}
-		}
-		return result;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonEditNamespacesDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonEditNamespacesDialog.java
deleted file mode 100644
index dc0d9c3..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonEditNamespacesDialog.java
+++ /dev/null
@@ -1,319 +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.wst.xml.ui.internal.nsedit;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-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.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.dialogs.EditNamespaceInfoDialog;
-import org.eclipse.wst.xml.ui.internal.dialogs.NamespaceInfoErrorHelper;
-
-public class CommonEditNamespacesDialog {
-	protected Composite commonComposite;
-	protected Button deleteButton;
-	protected Button editButton;
-
-	protected Label errorMessageLabel;
-	protected int heightHint = 250;
-	protected List namespaceInfoList = new ArrayList();
-
-	protected Button newButton;
-	protected IPath resourceLocation;
-
-	private boolean showLocationText = false;
-	protected String tableLabel = ""; //$NON-NLS-1$
-	protected CommonNamespaceInfoTable tableViewer;
-
-	protected Composite topComposite;
-	protected boolean useGroup;
-	protected int widthHint = 500;
-
-	public CommonEditNamespacesDialog(Composite parent, IPath resourceLocation, String stringTableLabel) {
-		this(parent, resourceLocation, stringTableLabel, false, false);
-	}
-
-	public CommonEditNamespacesDialog(Composite parent, IPath resourceLocation, String stringTableLabel, boolean useGroup, boolean showLocText) {
-		this.resourceLocation = resourceLocation;
-		tableLabel = stringTableLabel;
-		this.useGroup = useGroup;
-		showLocationText = showLocText;
-
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		if (widthHint != -1) {
-			gd.widthHint = widthHint;
-		}
-		if (heightHint != -1) {
-			gd.heightHint = heightHint;
-		}
-
-		// Set GridData and GridLayout for the parent Composite
-		parent.setLayoutData(gd);
-		parent.setLayout(new GridLayout());
-
-		// Create the top Composite
-		topComposite = new Composite(parent, SWT.NONE);
-		GridData topData = new GridData(GridData.FILL_HORIZONTAL);
-		topData.heightHint = 0;
-		topComposite.setLayoutData(topData);
-		topComposite.setLayout(new GridLayout());
-
-		// Create the 'common'/middle Composite
-		if (useGroup) {
-			commonComposite = new Group(parent, SWT.NONE);
-		} else {
-			commonComposite = new Composite(parent, SWT.NONE);
-		}
-		commonComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-		commonComposite.setLayout(new GridLayout(3, false));
-
-		// Add the error Message Label
-		errorMessageLabel = new Label(parent, SWT.NONE);
-		errorMessageLabel.setLayoutData(createHorizontalFill());
-		Color color = new Color(errorMessageLabel.getDisplay(), 200, 0, 0);
-		errorMessageLabel.setForeground(color);
-
-		createControlArea();
-	}
-
-
-	protected void createButtons(Composite parent) {
-		Composite composite = new Composite(parent, SWT.NONE);
-		composite.setLayoutData(new GridData(GridData.FILL_VERTICAL));
-		GridLayout gridLayout = new GridLayout();
-		gridLayout.numColumns = 1;
-		gridLayout.marginHeight = 0;
-		gridLayout.marginWidth = 0;
-		composite.setLayout(gridLayout);
-
-		SelectionListener selectionListener = new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				if (e.widget == newButton) {
-					performNew();
-				} else if (e.widget == editButton) {
-					performEdit();
-				} else if (e.widget == deleteButton) {
-					performDelete();
-				}
-			}
-		};
-
-		// create a composite to hold the three buttons
-		Composite buttonComposite = new Composite(composite, SWT.NONE);
-		buttonComposite.setLayoutData(createHorizontalFill());
-		GridLayout buttonGridLayout = new GridLayout();
-		//buttonGridLayout.numColumns = 3;
-		//buttonGridLayout.makeColumnsEqualWidth = true;
-		buttonComposite.setLayout(buttonGridLayout);
-
-		// add the New button
-		//
-		newButton = new Button(buttonComposite, SWT.NONE);
-		//newButton.setText(" " +
-		// XMLCommonUIPlugin.getInstance().getString("_UI_BUTTON_NEW") + " ");
-		newButton.setText("   " + XMLUIMessages.CommonEditNamespacesDialog_0 + "   "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		newButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); //ViewUtility.createHorizontalFill());
-		newButton.addSelectionListener(selectionListener);
-
-		// add the Edit button
-		//
-		//gd = new GridData();
-		//gd.horizontalAlignment = gd.FILL;
-		//gd.grabExcessHorizontalSpace = true;
-
-		editButton = new Button(buttonComposite, SWT.NONE);
-		editButton.setText(XMLUIMessages._UI_BUTTON_EDIT); //$NON-NLS-1$
-		editButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); //ViewUtility.createHorizontalFill());
-		editButton.addSelectionListener(selectionListener);
-
-		// add the Delete button
-		//
-		//gd = new GridData();
-		//gd.horizontalAlignment = gd.FILL;
-		//gd.grabExcessHorizontalSpace = true;
-
-		deleteButton = new Button(buttonComposite, SWT.NONE);
-		deleteButton.setText(XMLUIMessages._UI_BUTTON_DELETE); //$NON-NLS-1$
-		deleteButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); //ViewUtility.createHorizontalFill());
-		deleteButton.addSelectionListener(selectionListener);
-	}
-
-	private void createControlArea() {
-		if (useGroup) {
-			((Group) commonComposite).setText(tableLabel);
-		} else {
-			Label label = new Label(commonComposite, SWT.NONE);
-			label.setText(tableLabel);
-			label.setLayoutData(createGridData(false, 3));
-		}
-
-		tableViewer = new CommonNamespaceInfoTable(commonComposite, 6, showLocationText);
-		tableViewer.getControl().setLayoutData(createGridData(true, 2));
-		createButtons(commonComposite);
-
-		tableViewer.setInput(namespaceInfoList);
-		updateButtonEnabledState();
-		ISelectionChangedListener selectionChangedListener = new ISelectionChangedListener() {
-			public void selectionChanged(SelectionChangedEvent event) {
-				updateButtonEnabledState();
-			}
-		};
-		tableViewer.addSelectionChangedListener(selectionChangedListener);
-	}
-
-	protected GridData createGridData(boolean both, int span) {
-		GridData gd = new GridData(both ? GridData.FILL_BOTH : GridData.FILL_HORIZONTAL);
-		gd.horizontalSpan = 2;
-		return gd;
-	}
-
-	private GridData createHorizontalFill() {
-		GridData gd = new GridData();
-		gd.horizontalAlignment = GridData.FILL;
-		gd.grabExcessHorizontalSpace = true;
-		return gd;
-	}
-
-
-
-	public NamespaceInfo getNamespaceInfo(String namespace) {
-		NamespaceInfo result = null;
-		for (Iterator i = namespaceInfoList.iterator(); i.hasNext();) {
-			NamespaceInfo info = (NamespaceInfo) i.next();
-			if (info.uri != null && info.uri.equals(namespace)) {
-				result = info;
-				break;
-			}
-		}
-		return result;
-	}
-
-	protected Object getSelection(ISelection selection) {
-		if (selection == null) {
-			return null;
-		} // end of if ()
-
-		Object result = null;
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection es = (IStructuredSelection) selection;
-			Iterator i = es.iterator();
-			if (i.hasNext()) {
-				result = i.next();
-			}
-		}
-		return result;
-	}
-
-	/*
-	 * Use the returned Composite to add content above the 'common contents'.
-	 * Note: The GridData for the returned Composite has a heightHint = 0.
-	 * This means when using the returned Composite, the GridData must be
-	 * reset, else the Composite and it's contents will not appear.
-	 */
-	protected Composite getTopComposite() {
-		return topComposite;
-	}
-
-	protected EditNamespaceInfoDialog invokeDialog(String title, NamespaceInfo info) {
-		Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		EditNamespaceInfoDialog dialog = new EditNamespaceInfoDialog(shell, info);
-		dialog.create();
-		dialog.getShell().setText(title);
-		dialog.setBlockOnOpen(true);
-		dialog.setResourceLocation(resourceLocation);
-		dialog.open();
-		return dialog;
-	}
-
-	protected void performDelayedUpdate() {
-		tableViewer.refresh();
-		/*
-		 * Runnable delayedUpdate = new Runnable() { public void run() {
-		 * tableViewer.refresh(); } };
-		 * Display.getCurrent().asyncExec(delayedUpdate);
-		 */
-		//if (updateListener != null)
-		//{
-		//  updateListener.updateOccured(this, namespaceInfoList);
-		//}
-	}
-
-	public void performDelete() {
-		ISelection selection = tableViewer.getSelection();
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-			namespaceInfoList.removeAll(structuredSelection.toList());
-			updateErrorMessage(namespaceInfoList);
-			performDelayedUpdate();
-		}
-	}
-
-	public void performEdit() {
-		Object selection = getSelection(tableViewer.getSelection());
-		if (selection != null) {
-			invokeDialog(XMLUIMessages._UI_LABEL_NEW_NAMESPACE_INFORMATION, (NamespaceInfo) selection); //$NON-NLS-1$
-			updateErrorMessage(namespaceInfoList);
-			performDelayedUpdate();
-		}
-	}
-
-	public void performNew() {
-		Shell shell = XMLUIPlugin.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		CommonAddNamespacesDialog dialog = new CommonAddNamespacesDialog(shell, XMLUIMessages._UI_ADD_NAMESPACE_DECLARATIONS, resourceLocation, namespaceInfoList); //$NON-NLS-1$
-		dialog.createAndOpen();
-		if (dialog.getReturnCode() == Window.OK) {
-			namespaceInfoList.addAll(dialog.getNamespaceInfoList());
-			updateErrorMessage(namespaceInfoList);
-			performDelayedUpdate();
-		}
-	}
-
-	public void setNamespaceInfoList(List list) {
-		namespaceInfoList = list;
-		tableViewer.setInput(namespaceInfoList);
-	}
-
-	public void updateButtonEnabledState() {
-		Object selection = getSelection(tableViewer.getSelection());
-		NamespaceInfo info = (NamespaceInfo) selection;
-		editButton.setEnabled(info != null);
-		deleteButton.setEnabled(info != null && info.getProperty("unremovable") == null); //$NON-NLS-1$
-	}
-
-	public void updateErrorMessage(List namespaceInfoList) {
-		NamespaceInfoErrorHelper helper = new NamespaceInfoErrorHelper();
-		String errorMessage = helper.computeErrorMessage(namespaceInfoList, null);
-		errorMessageLabel.setText(errorMessage != null ? errorMessage : ""); //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonEditNamespacesTargetFieldDialog.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonEditNamespacesTargetFieldDialog.java
deleted file mode 100644
index fbae406..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonEditNamespacesTargetFieldDialog.java
+++ /dev/null
@@ -1,104 +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.wst.xml.ui.internal.nsedit;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/*
- * This class is an extension of CommonEditNamespacesDialog. This class adds
- * the target namespaces dialog field.
- */
-public class CommonEditNamespacesTargetFieldDialog extends CommonEditNamespacesDialog {
-
-	class TargetNamespaceModifyListener implements ModifyListener {
-		public void modifyText(ModifyEvent e) {
-			String oldTargetNamespace = targetNamespace;
-			targetNamespace = targetNamespaceField.getText();
-			updateTargetNamespaceAndNamespaceInfo(oldTargetNamespace, targetNamespace);
-		}
-	}
-
-	protected String targetNamespace;
-	protected Text targetNamespaceField;
-
-	public CommonEditNamespacesTargetFieldDialog(Composite parent, IPath resourceLocation1) {
-		super(parent, resourceLocation1, XMLUIMessages._UI_NAMESPACE_DECLARATIONS); //$NON-NLS-1$
-
-		Composite targetComp = getTopComposite();
-		targetComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-		GridData gd = new GridData(GridData.FILL_BOTH);
-		Label targetNamespaceLabel = new Label(targetComp, SWT.NONE);
-		targetNamespaceLabel.setLayoutData(gd);
-		targetNamespaceLabel.setText(XMLUIMessages._UI_TARGET_NAMESPACE); //$NON-NLS-1$
-
-		targetNamespaceField = new Text(targetComp, SWT.BORDER);
-		targetNamespaceField.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		targetNamespaceField.addModifyListener(new TargetNamespaceModifyListener());
-
-		// createControlArea();
-	}
-
-	public String getTargetNamespace() {
-		return targetNamespace;
-	}
-
-	public void performEdit() {
-		Object selection = getSelection(tableViewer.getSelection());
-		if (selection != null) {
-			boolean editTargetNamespace = false;
-			NamespaceInfo nsInfo = (NamespaceInfo) selection;
-			if (getTargetNamespace().equals(nsInfo.uri)) {
-				editTargetNamespace = true;
-			}
-
-			invokeDialog(XMLUIMessages._UI_LABEL_NEW_NAMESPACE_INFORMATION, nsInfo); //$NON-NLS-1$
-			updateErrorMessage(namespaceInfoList);
-			performDelayedUpdate();
-
-			if (editTargetNamespace) {
-				targetNamespaceField.setText(nsInfo.uri);
-			}
-		}
-	}
-
-	public void setTargetNamespace(String theTargetNamespace) {
-		targetNamespace = theTargetNamespace != null ? theTargetNamespace : ""; //$NON-NLS-1$
-		targetNamespaceField.setText(targetNamespace);
-		// updateTargetNamespaceAndNamespaceInfo(targetNamespace);
-	}
-
-	void updateTargetNamespaceAndNamespaceInfo(String oldTargetNamespace, String newTargetNamespace) {
-		NamespaceInfo info = getNamespaceInfo(newTargetNamespace);
-		if (info == null) {
-			info = getNamespaceInfo(oldTargetNamespace);
-			if (info == null) {
-				info = new NamespaceInfo(newTargetNamespace, "tns", null); //$NON-NLS-1$
-				namespaceInfoList.add(info);
-			}
-			else {
-				info.uri = targetNamespace;
-			}
-		}
-		tableViewer.refresh();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonNamespaceInfoTable.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonNamespaceInfoTable.java
deleted file mode 100644
index ebb373a..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/nsedit/CommonNamespaceInfoTable.java
+++ /dev/null
@@ -1,340 +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.wst.xml.ui.internal.nsedit;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-public class CommonNamespaceInfoTable extends TableViewer {
-
-	/**
-	 * NamespaceInfoTableLabelProvider
-	 */
-	protected class Provider extends LabelProvider implements ITableLabelProvider, IStructuredContentProvider {
-		Viewer viewer;
-
-		public Image getColumnImage(Object object, int columnIndex) {
-			Image result = null;
-			int columnCode = getColumnCode(columnIndex);
-			if (columnCode == COLUMN_LOCATION_HINT) {
-				NamespaceInfo info = (NamespaceInfo) object;
-				if (info.locationHint == null || info.locationHint.trim().equals("")) { //$NON-NLS-1$
-					// Comment this out until we solve the alignment/(space
-					// for image being allocated
-					// to prefix column) ......
-					//          result =
-					// XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_WARNING_OBJ);
-				}
-			}
-
-			return result;
-		}
-
-		public String getColumnText(Object object, int column) {
-			NamespaceInfo info = (NamespaceInfo) object;
-			String result = null;
-			int columnCode = getColumnCode(column);
-			switch (columnCode) {
-				case COLUMN_PREFIX : {
-					result = info.prefix;
-					break;
-				}
-				case COLUMN_NAMESPACE_URI : {
-					result = info.uri;
-					break;
-				}
-				case COLUMN_CHECKBOX : {
-					result = ""; //info.locationHint; //$NON-NLS-1$
-					break;
-				}
-				case COLUMN_LOCATION_HINT : {
-					result = info.locationHint;
-					break;
-				}
-			}
-			result = result != null ? result : ""; //$NON-NLS-1$
-			if (result.equals("")) { //$NON-NLS-1$
-				switch (columnCode) {
-					case COLUMN_PREFIX : {
-						result = XMLUIMessages._UI_NO_PREFIX; //$NON-NLS-1$
-						break;
-					}
-					case COLUMN_NAMESPACE_URI : {
-						result = XMLUIMessages._UI_NO_NAMESPACE_NAME; //$NON-NLS-1$
-						break;
-					}
-				}
-			}
-			return result;
-		}
-
-		public Object[] getElements(Object inputElement) {
-			List list = (List) viewer.getInput();
-			return list != null ? list.toArray() : null;
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-			this.viewer = viewer;
-		}
-	}
-
-	class TableItemChecker extends MouseAdapter {
-		public void mouseDown(MouseEvent e) {
-			TableItem item = getTable().getItem(new Point(e.x, e.y));
-			if (item != null) {
-				Object obj = item.getData();
-				if (obj != null) {
-					NamespaceInfo info = (NamespaceInfo) obj;
-					TableColumn col = getTable().getColumn(0);
-					if (e.x < col.getWidth()) // if the point falls within the
-					// Select column then perform
-					// check/uncheck
-					{
-						String currentState = (String) info.getProperty("checked"); //$NON-NLS-1$
-						System.out.println("currentState" + currentState); //$NON-NLS-1$
-						if (currentState == null || currentState.equals("false")) //$NON-NLS-1$
-						{
-							info.setProperty("checked", "true"); //$NON-NLS-1$ //$NON-NLS-2$
-						} else {
-							info.setProperty("checked", "false"); //$NON-NLS-1$ //$NON-NLS-2$
-						}
-						refresh();
-					}
-				}
-			}
-		}
-	}
-
-	protected static final int COLUMN_CHECKBOX = 1;
-	protected static final int COLUMN_LOCATION_HINT = 4;
-	protected static final int COLUMN_NAMESPACE_URI = 2;
-	protected static final int COLUMN_PREFIX = 3;
-
-	protected static final String LABEL_CHECKBOX = ""; //$NON-NLS-1$
-	protected static final String LABEL_LOCATION_HINT = XMLUIMessages._UI_LABEL_LOCATION_HINT; //$NON-NLS-1$
-	protected static final String LABEL_NAMESPACE_URI = XMLUIMessages._UI_LABEL_NAMESPACE_NAME; //$NON-NLS-1$
-	protected static final String LABEL_PREFIX = XMLUIMessages._UI_LABEL_PREFIX; //$NON-NLS-1$
-	protected List checkedList = new ArrayList();
-
-	//protected List namespaceInfoList = new ArrayList();
-	protected int[] columnIndexMap;
-	protected boolean showCheckBoxes = true;
-	private boolean showLocationText = false;
-
-	private Table table;
-	protected int visibleRows = -1;
-
-	public CommonNamespaceInfoTable(Composite parent, int visibleRows) {
-		this(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER, visibleRows, false);
-	}
-
-	//protected CellEditor getCellEditor(int column)
-	// {
-	//  return (column == COLUMN_CHECKBOX) ? checkBoxCellEditor :
-	// textCellEditor;
-	// }
-
-	public CommonNamespaceInfoTable(Composite parent, int visibleRows, boolean showLocationText) {
-		this(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER, visibleRows, showLocationText);
-	}
-
-	public CommonNamespaceInfoTable(Composite parent, int style, int visibleRows) {
-		this(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER | style, visibleRows, false);
-	}
-
-	public CommonNamespaceInfoTable(Composite parent, int style, int visibleRows, boolean showLocationText) {
-		super(new Table(parent, style));
-		getTable().setLinesVisible(true);
-		this.showCheckBoxes = (style & SWT.CHECK) != 0;
-		columnIndexMap = createColumnIndexMap();
-		this.showLocationText = showLocationText;
-
-		Provider provider = new Provider();
-		setContentProvider(provider);
-		setLabelProvider(provider);
-
-		String[] columnPropertiesArray = createColumnPropertiesArray();
-		setColumnProperties(columnPropertiesArray);
-
-		table = getTable();
-		table.setHeaderVisible(true);
-		table.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-		TableLayout layout = new TableLayout();
-
-		for (int i = 0; i < columnPropertiesArray.length; i++) {
-			TableColumn column = new TableColumn(table, i);
-			if ((columnPropertiesArray[i]).equals(LABEL_LOCATION_HINT)) {
-				if (showLocationText) {
-					column.setText(columnPropertiesArray[i]);
-				} else {
-					// Comment this out until we solve the alignment/(space
-					// for image being allocated
-					// to prefix column) ......
-					//          	column.setImage(XMLEditorPluginImageHelper.getInstance().getImage(XMLEditorPluginImages.IMG_OBJ_TXTEXT));
-				}
-			} else {
-				column.setText(columnPropertiesArray[i]);
-			}
-			column.setAlignment(SWT.LEFT);
-			layout.addColumnData(new ColumnWeightData(getColumnWidth(i), true));
-		}
-		table.setLayout(layout);
-
-		this.visibleRows = visibleRows;
-		//for (int i = 0; i < visibleRows; i++)
-		// {
-		//  TableItem item = new TableItem(table, SWT.NONE);
-		//  item.setText("#######");
-		//}
-		//checkBoxCellEditor = new NamespaceInfoCheckboxCellEditor(table);
-		//textCellEditor = new TextCellEditor(table);
-
-		/*
-		 * CellEditor[] cellEditors = new
-		 * CellEditor[columnPropertiesArray.length]; for (int i = 0; i <
-		 * columnPropertiesArray.length; i++) { cellEditors[i] =
-		 * getCellEditor(i); } setCellEditors(cellEditors);
-		 */
-		//if (showCheckBoxes)
-		//{
-		//  getTable().addMouseListener(new TableItemChecker());
-		//}
-	}
-
-	//protected CellEditor checkBoxCellEditor;
-	//protected CellEditor textCellEditor;
-
-	protected int[] createColumnIndexMap() {
-		int[] result = new int[showCheckBoxes ? 4 : 3];
-		int i = 0;
-		if (showCheckBoxes) {
-			result[i++] = COLUMN_CHECKBOX;
-		}
-		result[i++] = COLUMN_PREFIX;
-		result[i++] = COLUMN_NAMESPACE_URI;
-		if (!showCheckBoxes) {
-			result[i++] = COLUMN_LOCATION_HINT;
-		}
-		return result;
-	}
-
-	protected String[] createColumnPropertiesArray() {
-		String[] result = new String[3];
-		int i = 0;
-		if (showCheckBoxes) {
-			result[i++] = LABEL_CHECKBOX;
-		}
-		result[i++] = LABEL_PREFIX;
-		result[i++] = LABEL_NAMESPACE_URI;
-		if (!showCheckBoxes) {
-			result[i++] = LABEL_LOCATION_HINT;
-		}
-		return result;
-	}
-
-	protected int getColumnCode(int column) {
-		int result = 0;
-		if (column < columnIndexMap.length) {
-			result = columnIndexMap[column];
-		}
-		return result;
-	}
-
-	protected int getColumnWidth(int column) {
-		int result = 0;
-		switch (getColumnCode(column)) {
-			case COLUMN_PREFIX : {
-				result = 5;
-				break;
-			}
-			case COLUMN_NAMESPACE_URI : {
-				// Size columns differently when location hint text label is
-				// displayed
-				if (showLocationText) {
-					result = 10;
-				} else {
-					result = 20;
-				}
-				break;
-			}
-			case COLUMN_CHECKBOX : {
-				result = 1; //info.locationHint;
-				break;
-			}
-			case COLUMN_LOCATION_HINT : {
-				// Size columns differently when location hint text label is
-				// displayed
-				if (showLocationText) {
-					result = 10;
-				} else {
-					result = 2;
-				}
-				break;
-			}
-		}
-		return result;
-	}
-	/*
-	 * protected class NamespaceInfoCellModifier implements ICellModifier {
-	 * public NamespaceInfoCellModifier() { }
-	 * 
-	 * public boolean canModify(Object element, String property) { if
-	 * (property.equals(LABEL_CHECKBOX)) { return true; } else if
-	 * (property.equals(LABEL_PREFIX)) { return true; } return false; }
-	 * 
-	 * public Object getValue(Object element, String property) { int column =
-	 * 0; if (property.equals(LABEL_CHECKBOX)) { column = 0; } else if
-	 * (property.equals(LABEL_PREFIX)) { column = 1; } else if
-	 * (property.equals(LABEL_NAMESPACE_URI)) { column = 2; }
-	 * 
-	 * //if (element instanceof TableElement) //{ // return
-	 * provider.getColumnText(element, column); //} //else //{ // return null; // }
-	 * return "hello"; }
-	 * 
-	 * public void modify(Object element, String property, Object value) { } }
-	 * 
-	 * protected class NamespaceInfoCheckboxCellEditor extends
-	 * CheckboxCellEditor implements MouseListener { public
-	 * NamespaceInfoCheckboxCellEditor(Composite parent) { super(parent); }
-	 * 
-	 * protected void doSetValue(Object value) { }
-	 * 
-	 * public void activate() { super.activate(); deactivate();
-	 * Display.getCurrent().getFocusControl().redraw(); }
-	 * 
-	 * public void mouseDown(MouseEvent e) { if (getTable().getItem(new
-	 * Point(e.x, e.y)) != null) { } } public void mouseDoubleClick(MouseEvent
-	 * e) { } public void mouseUp(MouseEvent e) { } }
-	 */
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/EncodingSettings.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/EncodingSettings.java
deleted file mode 100644
index 54e4f39..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/EncodingSettings.java
+++ /dev/null
@@ -1,356 +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.wst.xml.ui.internal.preferences;
-
-import java.util.Vector;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/**
- * EncodingSettings is a composite that can be used to display the set of
- * encoding values that are available to the user. The list of encoding values
- * is based off the SupportedJavaEncoding class. As the user selects an
- * encoding from the combo box, the readonly field below it changes to show
- * the IANA tag for that particular encoding description. The labels for the
- * widgets are configurable and the initial value to display to the user can
- * be set using the setIANATag(). The currently selected entry's IANA tag can
- * be retrieved with getIANATag(). Entries displayed to the user can be added
- * and removed.
- */
-public class EncodingSettings extends Composite {
-
-	private class ComboListener implements ModifyListener {
-		public void modifyText(ModifyEvent e) {
-			int i = encodingCombo.getSelectionIndex();
-			if (i >= 0 && i < ianaVector.size())
-				ianaText.setText((String) (ianaVector.elementAt(encodingCombo.getSelectionIndex())));
-		}
-	}
-
-	private static String ENCODING_LABEL = XMLUIMessages.EncodingSettings_1; //$NON-NLS-1$
-
-	private static String IANA_LABEL = XMLUIMessages.EncodingSettings_0; //$NON-NLS-1$
-
-	private ModifyListener comboListener = new ComboListener();
-	protected Combo encodingCombo;
-	protected Label encodingLabel, ianaLabel;
-	protected Text ianaText;
-	protected Vector ianaVector;
-
-	/**
-	 * Method EncodingSettings.
-	 * 
-	 * @param parent
-	 */
-	public EncodingSettings(Composite parent) {
-		super(parent, SWT.NONE);
-		init(IANA_LABEL, ENCODING_LABEL);
-	}
-
-	/**
-	 * Method EncodingSettings.
-	 * 
-	 * @param parent
-	 * @param encodingLabel -
-	 *            text label to use beside the locale sensitive description of
-	 *            the currently selected encoding
-	 */
-	public EncodingSettings(Composite parent, String encodingLabel) {
-		super(parent, SWT.NONE);
-		init(IANA_LABEL, encodingLabel);
-	}
-
-	/**
-	 * Method EncodingSettings.
-	 * 
-	 * @param parent
-	 * @param ianaLabel =
-	 *            text label to use beside the display only IANA field
-	 * @param encodingLabel -
-	 *            text label to use beside the locale sensitive description of
-	 *            the currently selected encoding
-	 */
-	public EncodingSettings(Composite parent, String ianaLabel, String encodingLabel) {
-		super(parent, SWT.NONE);
-		init(ianaLabel, encodingLabel);
-	}
-
-	/**
-	 * Method addEntry. Add an entry to the end of the Encoding Combobox
-	 * 
-	 * @param description -
-	 *            encoding description to display
-	 * @param ianaTag -
-	 *            IANA tag for the description
-	 */
-	public void addEntry(String description, String ianaTag) {
-		encodingCombo.add(description);
-		ianaVector.add(ianaTag);
-	}
-
-	/**
-	 * Method addEntry. Add an entry to the Encoding Combobox at index index
-	 * 
-	 * @param description -
-	 *            encoding description to display
-	 * @param ianaTag -
-	 *            IANA tag for the description
-	 * @param index -
-	 *            index into the combo to add to
-	 */
-	public void addEntry(String description, String ianaTag, int index) {
-		if (index == ianaVector.size()) {
-			// just add to the end
-			addEntry(description, ianaTag);
-			return;
-		}
-
-		if (0 <= index && index < ianaVector.size()) {
-			encodingCombo.add(description, index);
-			ianaVector.add(index, ianaTag);
-		}
-	}
-
-	protected Combo createComboBox(Composite parent, boolean isReadOnly) {
-		int style = isReadOnly == true ? SWT.READ_ONLY : SWT.DROP_DOWN;
-
-		Combo combo = new Combo(parent, style);
-
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		combo.setLayoutData(data);
-		return combo;
-	}
-
-	/**
-	 * Helper method for creating labels.
-	 */
-	protected Label createLabel(Composite parent, String text) {
-		Label label = new Label(parent, SWT.LEFT);
-		label.setText(text);
-
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		label.setLayoutData(data);
-		return label;
-	}
-
-	protected Text createTextField(Composite parent, int width) {
-		Text text = new Text(parent, SWT.SINGLE | SWT.READ_ONLY);
-
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		data.widthHint = width;
-		text.setLayoutData(data);
-
-		return text;
-	}
-
-	/**
-	 * @see org.eclipse.swt.widgets.Widget#dispose()
-	 */
-	public void dispose() {
-		encodingCombo.removeModifyListener(comboListener);
-		super.dispose();
-	}
-
-	private void fillCombo() {
-		try {
-			String[] ianaTags = CommonCharsetNames.getCommonCharsetNames();
-			int totalNum = ianaTags.length;
-			for (int i = 0; i < totalNum; i++) {
-				String iana = ianaTags[i];
-				String enc = CommonCharsetNames.getDisplayString(iana);
-
-				if (enc != null) {
-					encodingCombo.add(enc);
-				} else {
-					Logger.log(Logger.WARNING, "CommonCharsetNames.getDisplayString(" + iana + ") returned null"); //$NON-NLS-1$ //$NON-NLS-2$
-					encodingCombo.add(iana);
-				}
-				ianaVector.add(iana);
-			}
-		} catch (Exception e) {
-			//e.printStackTrace();
-			//MessageDialog.openError(getShell(), "Resource exception",
-			// "Unable to obtain encoding strings. Check resource file");
-			//XMLEncodingPlugin.getPlugin().getMsgLogger().write(e.toString());
-			//XMLEncodingPlugin.getPlugin().getMsgLogger().writeCurrentThread();
-			Logger.log(Logger.ERROR, "Exception", e); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * <code>getEncoding</code> Get the descriptive encoding name that was
-	 * selected.
-	 * 
-	 * @return a <code>String</code> value
-	 */
-	public String getEncoding() {
-		return encodingCombo.getText();
-	}
-
-	/**
-	 * Method getEncodingCombo. Returns the combo used to display the encoding
-	 * descriptions.
-	 * 
-	 * @return Combo
-	 */
-	public Combo getEncodingCombo() {
-		return encodingCombo;
-	}
-
-	/**
-	 * <code>getIANATag</code> Get the IANA tag equivalent of the selected
-	 * descriptive encoding name
-	 * 
-	 * @return a <code>String</code> value
-	 */
-	public String getIANATag() {
-		int i = encodingCombo.getSelectionIndex();
-		if (i >= 0) {
-			return (String) (ianaVector.elementAt(i));
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	protected void init(String ianaLabelStr, String encodingLabelStr) {
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 2;
-		setLayout(layout);
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		setLayoutData(data);
-
-		encodingLabel = createLabel(this, encodingLabelStr);
-		encodingCombo = createComboBox(this, true);
-		ianaLabel = createLabel(this, ianaLabelStr);
-		ianaText = createTextField(this, 20);
-		ianaVector = new Vector();
-
-		fillCombo();
-		resetToDefaultEncoding();
-		encodingCombo.addModifyListener(comboListener);
-	}
-
-	/**
-	 * <code>isEncodingInList</code> Checks whether the encoding name is in
-	 * the combo
-	 * 
-	 * @param enc
-	 *            a <code>string</code> value. The encoding name.
-	 * @return a <code>boolean</code> value. TRUE if encoding is in list.
-	 *         FALSE if encoding is not in list.
-	 */
-	public boolean isEncodingInList(String enc) {
-		int i = encodingCombo.indexOf(enc);
-		if (i >= 0) {
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * <code>isIANATagInList</code> Checks whether the IANA tag is in the
-	 * combo
-	 * 
-	 * @param ianaTag
-	 *            a <code>string</code> value. The IANA tag.
-	 * @return a <code>boolean</code> value. TRUE if tag is in list. FALSE
-	 *         if tag is not in list.
-	 */
-	public boolean isIANATagInList(String ianaTag) {
-		int i = ianaVector.indexOf(ianaTag);
-		if (i >= 0) {
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Method removeEntry. Removes both the description and the IANA tag at
-	 * the specified index
-	 * 
-	 * @param index
-	 */
-	public void removeEntry(int index) {
-		if (0 <= index && index < ianaVector.size()) {
-			encodingCombo.remove(index);
-			ianaVector.remove(index);
-		}
-	}
-
-	/**
-	 * Method resetToDefaultEncoding. Reset the control to the default
-	 * encoding. Currently UTF-8
-	 */
-	public void resetToDefaultEncoding() {
-		String defaultIANATag = "UTF-8"; //$NON-NLS-1$
-		ianaText.setText(defaultIANATag);
-		setIANATag(defaultIANATag);
-	}
-
-	/**
-	 * Method setEnabled. Enable/disable the EncodingSettings composite.
-	 * 
-	 * @param enabled
-	 */
-	public void setEnabled(boolean enabled) {
-		encodingCombo.setEnabled(enabled);
-		encodingLabel.setEnabled(enabled);
-		ianaLabel.setEnabled(enabled);
-		ianaText.setEnabled(enabled);
-	}
-
-	/**
-	 * <code>setEncoding</code> Set the selection in the combo to the
-	 * descriptive encoding name.
-	 * 
-	 * @param enc
-	 *            a <code>string</code> value. Note this is not the IANA
-	 *            tag.
-	 */
-	public void setEncoding(String enc) {
-		encodingCombo.setText(enc);
-		encodingCombo.select(encodingCombo.indexOf(enc));
-	}
-
-	/**
-	 * <code>setIANATag</code> Set the IANA tag for the combo
-	 * 
-	 * @param ianaTag
-	 *            a <code>string</code> value. The IANA tag.
-	 */
-	public void setIANATag(String ianaTag) {
-		int i = ianaVector.indexOf(ianaTag);
-		if (i >= 0) {
-			encodingCombo.select(i);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/WorkbenchDefaultEncodingSettings.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/WorkbenchDefaultEncodingSettings.java
deleted file mode 100644
index 7596b1a..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/WorkbenchDefaultEncodingSettings.java
+++ /dev/null
@@ -1,137 +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.wst.xml.ui.internal.preferences;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.swt.SWT;
-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.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.sse.core.internal.encoding.CommonCharsetNames;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/**
- * WorkbenchDefaultEncodingSettings is an extension of EncodingSettings. This
- * composite contains EncodingSettings for users to select the encoding they
- * desire as well as a checkbox for users to select to use the default
- * workbench encoding instead.
- * 
- * @see org.eclipse.wst.xml.ui.internal.preferences.EncodingSettings
- */
-public class WorkbenchDefaultEncodingSettings extends Composite {
-
-	private final static int INDENT = 15;
-	private static final String WORKBENCH_DEFAULT = ""; //$NON-NLS-1$
-	private EncodingSettings fEncodingSettings;
-	private String fNonDefaultIANA = null;
-	private Button fUseDefaultButton;
-
-	public WorkbenchDefaultEncodingSettings(Composite parent) {
-		super(parent, SWT.NONE);
-		createControls();
-	}
-
-	private void createControls() {
-		GridLayout layout = new GridLayout();
-		layout.numColumns = 1;
-		layout.marginWidth = 0;
-		setLayout(layout);
-		GridData data = new GridData();
-		data.verticalAlignment = GridData.FILL;
-		data.horizontalAlignment = GridData.FILL;
-		data.grabExcessHorizontalSpace = true;
-		setLayoutData(data);
-
-		Composite defaultEncodingComposite = new Composite(this, SWT.NONE);
-		layout = new GridLayout();
-		layout.marginWidth = 0;
-		layout.marginHeight = 0;
-		data = new GridData(GridData.FILL_BOTH);
-		defaultEncodingComposite.setLayout(layout);
-		defaultEncodingComposite.setLayoutData(data);
-
-		fUseDefaultButton = new Button(defaultEncodingComposite, SWT.CHECK);
-		fUseDefaultButton.setText(XMLUIMessages.WorkbenchDefaultEncodingSettings_0); //$NON-NLS-1$
-
-		fUseDefaultButton.addSelectionListener(new SelectionAdapter() {
-			public void widgetSelected(SelectionEvent e) {
-				handleUseDefaultButtonSelected();
-			}
-		});
-
-		fEncodingSettings = new EncodingSettings(this);
-		((GridLayout) fEncodingSettings.getLayout()).marginWidth = 0;
-		((GridData) fEncodingSettings.getLayoutData()).horizontalIndent = INDENT;
-
-	}
-
-	private Combo getEncodingCombo() {
-		return fEncodingSettings.getEncodingCombo();
-	}
-
-	/**
-	 * <code>getIANATag</code> Get the IANA tag equivalent of the selected
-	 * descriptive encoding name. Returns empty string if using workbench
-	 * encoding.
-	 * 
-	 * @return a <code>String</code> value
-	 */
-	public String getIANATag() {
-		if (!isDefault())
-			return fEncodingSettings.getIANATag();
-		return WORKBENCH_DEFAULT;
-	}
-
-	private String getWorkbenchEncoding() {
-		return ResourcesPlugin.getEncoding();
-	}
-
-	void handleUseDefaultButtonSelected() {
-		if (fUseDefaultButton.getSelection()) {
-			fNonDefaultIANA = fEncodingSettings.getIANATag();
-			String workbenchValue = getWorkbenchEncoding();
-			workbenchValue = CommonCharsetNames.getIanaPreferredCharsetName(workbenchValue);
-			fEncodingSettings.setIANATag(workbenchValue);
-		} else if (fNonDefaultIANA != null) {
-			fEncodingSettings.setIANATag(fNonDefaultIANA);
-		}
-		getEncodingCombo().setEnabled(!fUseDefaultButton.getSelection());
-		fEncodingSettings.setEnabled(!fUseDefaultButton.getSelection());
-	}
-
-	private boolean isDefault() {
-		return fUseDefaultButton.getSelection();
-	}
-
-	/**
-	 * <code>setEncoding</code> Set the selection in the combo to the
-	 * descriptive encoding name. Selects use workbench encoding if ianaTag is
-	 * null or empty string.
-	 * 
-	 */
-	public void setIANATag(String ianaTag) {
-		if (ianaTag == null || ianaTag.equals(WORKBENCH_DEFAULT)) {
-			fUseDefaultButton.setSelection(true);
-			handleUseDefaultButtonSelected();
-		} else {
-			fUseDefaultButton.setSelection(false);
-			handleUseDefaultButtonSelected();
-			if (!isDefault())
-				fEncodingSettings.setIANATag(ianaTag);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLColorPage.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLColorPage.java
deleted file mode 100644
index 99d9353..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLColorPage.java
+++ /dev/null
@@ -1,223 +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.wst.xml.ui.internal.preferences;
-
-import java.util.ArrayList;
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.Iterator;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore;
-import org.eclipse.wst.sse.ui.internal.preferences.OverlayPreferenceStore.OverlayKey;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractColorPage;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.StyledTextColorPicker;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-public class XMLColorPage extends AbstractColorPage {
-
-	protected Control createContents(Composite parent) {
-		Composite pageComponent = createComposite(parent, 1);
-		((GridData) pageComponent.getLayoutData()).horizontalAlignment = GridData.HORIZONTAL_ALIGN_FILL;
-
-		super.createContents(pageComponent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(pageComponent, IHelpContextIds.XML_PREFWEBX_STYLES_HELPID);
-		return pageComponent;
-	}
-
-	/**
-	 * Set up all the style preference keys in the overlay store
-	 */
-	protected OverlayKey[] createOverlayStoreKeys() {
-		ArrayList overlayKeys = new ArrayList();
-
-		ArrayList styleList = new ArrayList();
-		initStyleList(styleList);
-		Iterator i = styleList.iterator();
-		while (i.hasNext()) {
-			overlayKeys.add(new OverlayPreferenceStore.OverlayKey(OverlayPreferenceStore.STRING, (String) i.next()));
-		}
-
-		OverlayPreferenceStore.OverlayKey[] keys = new OverlayPreferenceStore.OverlayKey[overlayKeys.size()];
-		overlayKeys.toArray(keys);
-		return keys;
-	}
-
-	protected IPreferenceStore doGetPreferenceStore() {
-		return XMLUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	public String getSampleText() {
-		return XMLUIMessages.Sample_XML_doc; //$NON-NLS-1$ = "<?xml version=\"1.0\"?>\n<?customProcessingInstruction\n\tXML processor specific\n\tcontent ?>\n<!DOCTYPE colors\n\tPUBLIC \"//IBM/XML/COLORS/\" \"colors.dtd\">\n<colors>\n\t<!-- begin color definitions -->\n\t<color name=\"plaintext\" foreground=\"#000000\"\n\t\tbackground=\"#D4D0C8\"/>\n\t<color name=\"bold\" foreground=\"#000000\"\n\t\tbackground=\"#B3ACA0\">\n\t<![CDATA[<123456789>]]>\n\tNormal text content.\n\t<color name=\"inverse\" foreground=\"#F0F0F0\"\n\t\tbackground=\"#D4D0C8\"/>\n\n</colors>\n";
-	}
-
-	protected void initCommonContextStyleMap(Dictionary contextStyleMap) {
-
-		contextStyleMap.put(DOMRegionContext.XML_COMMENT_OPEN, IStyleConstantsXML.COMMENT_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_COMMENT_TEXT, IStyleConstantsXML.COMMENT_TEXT);
-		contextStyleMap.put(DOMRegionContext.XML_COMMENT_CLOSE, IStyleConstantsXML.COMMENT_BORDER);
-
-		contextStyleMap.put(DOMRegionContext.XML_TAG_OPEN, IStyleConstantsXML.TAG_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_END_TAG_OPEN, IStyleConstantsXML.TAG_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_TAG_NAME, IStyleConstantsXML.TAG_NAME);
-		contextStyleMap.put(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, IStyleConstantsXML.TAG_ATTRIBUTE_NAME);
-		contextStyleMap.put(DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE, IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-		contextStyleMap.put(DOMRegionContext.XML_TAG_CLOSE, IStyleConstantsXML.TAG_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_EMPTY_TAG_CLOSE, IStyleConstantsXML.TAG_BORDER);
-
-		contextStyleMap.put(DOMRegionContext.XML_DECLARATION_OPEN, IStyleConstantsXML.DECL_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_DECLARATION_CLOSE, IStyleConstantsXML.DECL_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_ELEMENT_DECLARATION, IStyleConstantsXML.DECL_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_ELEMENT_DECL_CLOSE, IStyleConstantsXML.DECL_BORDER);
-
-		contextStyleMap.put(DOMRegionContext.XML_CONTENT, IStyleConstantsXML.XML_CONTENT);
-	}
-
-	protected void initCommonDescriptions(Dictionary descriptions) {
-
-		// create descriptions for hilighting types
-		descriptions.put(IStyleConstantsXML.COMMENT_BORDER, XMLUIMessages.Comment_Delimiters_UI_); //$NON-NLS-1$ = "Comment Delimiters"
-		descriptions.put(IStyleConstantsXML.COMMENT_TEXT, XMLUIMessages.Comment_Content_UI_); //$NON-NLS-1$ = "Comment Content"
-		descriptions.put(IStyleConstantsXML.TAG_BORDER, XMLUIMessages.Tag_Delimiters_UI_); //$NON-NLS-1$ = "Tag Delimiters"
-		descriptions.put(IStyleConstantsXML.TAG_NAME, XMLUIMessages.Tag_Names_UI_); //$NON-NLS-1$ = "Tag Names"
-		descriptions.put(IStyleConstantsXML.TAG_ATTRIBUTE_NAME, XMLUIMessages.Attribute_Names_UI_); //$NON-NLS-1$ = "Attribute Names"
-		descriptions.put(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE, XMLUIMessages.Attribute_Values_UI_); //$NON-NLS-1$ = "Attribute Values"
-		descriptions.put(IStyleConstantsXML.DECL_BORDER, XMLUIMessages.Declaration_Delimiters_UI_); //$NON-NLS-1$ = "Declaration Delimiters"
-		descriptions.put(IStyleConstantsXML.XML_CONTENT, XMLUIMessages.Content_UI_); //$NON-NLS-1$ = "Content"
-	}
-
-	protected void initCommonStyleList(ArrayList list) {
-
-		//list.add(IStyleConstantsXML.CDATA_BORDER);
-		//list.add(IStyleConstantsXML.CDATA_TEXT);
-		//list.add(IStyleConstantsXML.PI_BORDER);
-		//list.add(IStyleConstantsXML.PI_CONTENT);
-
-		list.add(IStyleConstantsXML.TAG_BORDER);
-		list.add(IStyleConstantsXML.TAG_NAME);
-		list.add(IStyleConstantsXML.TAG_ATTRIBUTE_NAME);
-		list.add(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-		list.add(IStyleConstantsXML.COMMENT_BORDER);
-		list.add(IStyleConstantsXML.COMMENT_TEXT);
-		list.add(IStyleConstantsXML.DECL_BORDER);
-		list.add(IStyleConstantsXML.XML_CONTENT);
-	}
-
-	protected void initContextStyleMap(Dictionary contextStyleMap) {
-
-		initCommonContextStyleMap(contextStyleMap);
-		initDocTypeContextStyleMap(contextStyleMap);
-		contextStyleMap.put(DOMRegionContext.XML_CDATA_OPEN, IStyleConstantsXML.CDATA_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_CDATA_TEXT, IStyleConstantsXML.CDATA_TEXT);
-		contextStyleMap.put(DOMRegionContext.XML_CDATA_CLOSE, IStyleConstantsXML.CDATA_BORDER);
-
-		contextStyleMap.put(DOMRegionContext.XML_PI_OPEN, IStyleConstantsXML.PI_BORDER);
-		contextStyleMap.put(DOMRegionContext.XML_PI_CONTENT, IStyleConstantsXML.PI_CONTENT);
-		contextStyleMap.put(DOMRegionContext.XML_PI_CLOSE, IStyleConstantsXML.PI_BORDER);
-
-	}
-
-	protected void initDescriptions(Dictionary descriptions) {
-
-		initCommonDescriptions(descriptions);
-		initDocTypeDescriptions(descriptions);
-		descriptions.put(IStyleConstantsXML.CDATA_BORDER, XMLUIMessages.CDATA_Delimiters_UI_); //$NON-NLS-1$ = "CDATA Delimiters"
-		descriptions.put(IStyleConstantsXML.CDATA_TEXT, XMLUIMessages.CDATA_Content_UI_); //$NON-NLS-1$ = "CDATA Content"
-		descriptions.put(IStyleConstantsXML.PI_BORDER, XMLUIMessages.Processing_Instruction_Del_UI_); //$NON-NLS-1$ = "Processing Instruction Delimiters"
-		descriptions.put(IStyleConstantsXML.PI_CONTENT, XMLUIMessages.Processing_Instruction_Con_UI__UI_); //$NON-NLS-1$ = "Processing Instruction Content"
-	}
-
-	protected void initDocTypeContextStyleMap(Dictionary contextStyleMap) {
-
-		contextStyleMap.put(DOMRegionContext.XML_ELEMENT_DECL_NAME, IStyleConstantsXML.DOCTYPE_NAME);
-		contextStyleMap.put(DOMRegionContext.XML_DOCTYPE_DECLARATION, IStyleConstantsXML.TAG_NAME);
-		contextStyleMap.put(DOMRegionContext.XML_DOCTYPE_DECLARATION_CLOSE, IStyleConstantsXML.DECL_BORDER);
-
-		contextStyleMap.put(DOMRegionContext.XML_DOCTYPE_NAME, IStyleConstantsXML.DOCTYPE_NAME);
-		contextStyleMap.put(DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_PUBLIC, IStyleConstantsXML.DOCTYPE_EXTERNAL_ID);
-		contextStyleMap.put(DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_PUBREF, IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF);
-		contextStyleMap.put(DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_SYSTEM, IStyleConstantsXML.DOCTYPE_EXTERNAL_ID);
-		contextStyleMap.put(DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_SYSREF, IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF);
-	}
-
-	protected void initDocTypeDescriptions(Dictionary descriptions) {
-
-		// create descriptions for hilighting types for DOCTYPE related items
-		descriptions.put(IStyleConstantsXML.DOCTYPE_NAME, XMLUIMessages.DOCTYPE_Name_UI_); //$NON-NLS-1$ = "DOCTYPE Name"
-		descriptions.put(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID, XMLUIMessages.DOCTYPE_SYSTEM_PUBLIC_Keyw_UI_); //$NON-NLS-1$ = "DOCTYPE SYSTEM/PUBLIC Keyword"
-		descriptions.put(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF, XMLUIMessages.DOCTYPE_Public_Reference_UI_); //$NON-NLS-1$ = "DOCTYPE Public Reference"
-		descriptions.put(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF, XMLUIMessages.DOCTYPE_System_Reference_UI_); //$NON-NLS-1$ = "DOCTYPE System Reference"
-	}
-
-	protected void initDocTypeStyleList(ArrayList list) {
-
-		list.add(IStyleConstantsXML.DOCTYPE_NAME);
-		list.add(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID);
-		list.add(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF);
-		list.add(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF);
-	}
-
-	protected void initStyleList(ArrayList list) {
-		initCommonStyleList(list);
-		initDocTypeStyleList(list);
-		list.add(IStyleConstantsXML.CDATA_BORDER);
-		list.add(IStyleConstantsXML.CDATA_TEXT);
-		list.add(IStyleConstantsXML.PI_BORDER);
-		list.add(IStyleConstantsXML.PI_CONTENT);
-	}
-
-	public boolean performOk() {
-		// required since the superclass *removes* existing preferences before
-		// saving its own
-		super.performOk();
-
-		SSEUIPlugin.getDefault().savePluginPreferences();
-		return true;
-	}
-
-	protected void setupPicker(StyledTextColorPicker picker) {
-		IModelManager mmanager = StructuredModelManager.getModelManager();
-		picker.setParser(mmanager.createStructuredDocumentFor(ContentTypeIdForXML.ContentTypeID_XML).getParser());
-
-		Dictionary descriptions = new Hashtable();
-		initDescriptions(descriptions);
-
-		Dictionary contextStyleMap = new Hashtable();
-		initContextStyleMap(contextStyleMap);
-
-		ArrayList styleList = new ArrayList();
-		initStyleList(styleList);
-
-		picker.setContextStyleMap(contextStyleMap);
-		picker.setDescriptions(descriptions);
-		picker.setStyleList(styleList);
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.AbstractColorPage#savePreferences()
-	 */
-	protected void savePreferences() {
-		XMLUIPlugin.getDefault().savePluginPreferences();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLFilesPreferencePage.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLFilesPreferencePage.java
deleted file mode 100644
index e571669..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLFilesPreferencePage.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.preferences;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.core.runtime.content.IContentType;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractPreferencePage;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds;
-
-public class XMLFilesPreferencePage extends AbstractPreferencePage {
-	protected EncodingSettings fEncodingSettings = null;
-
-	protected Combo fEndOfLineCode = null;
-	private Vector fEOLCodes = null;
-	private Text fDefaultSuffix = null;
-	private List fValidExtensions = null;
-	private Button fWarnNoGrammar = null;
-
-	protected Control createContents(Composite parent) {
-		Composite composite = (Composite) super.createContents(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.XML_PREFWEBX_FILES_HELPID);
-		createContentsForCreatingOrSavingGroup(composite);
-		createContentsForCreatingGroup(composite);
-		createContentsForValidatingGroup(composite);
-
-		setSize(composite);
-		loadPreferences();
-
-		return composite;
-	}
-
-	protected void createContentsForCreatingGroup(Composite parent) {
-		Group creatingGroup = createGroup(parent, 2);
-		creatingGroup.setText(XMLUIMessages.Creating_files);
-
-		// Default extension for New file Wizard
-		createLabel(creatingGroup, XMLUIMessages.XMLFilesPreferencePage_ExtensionLabel);
-		fDefaultSuffix = createTextField(creatingGroup);
-		fDefaultSuffix.addModifyListener(this);
-
-		Label label = createLabel(creatingGroup, XMLUIMessages.Encoding_desc);
-		((GridData) label.getLayoutData()).horizontalSpan = 2;
-		fEncodingSettings = new EncodingSettings(creatingGroup, XMLUIMessages.Encoding);
-		((GridData) fEncodingSettings.getLayoutData()).horizontalSpan = 2;
-	}
-
-	protected void createContentsForCreatingOrSavingGroup(Composite parent) {
-		Group creatingOrSavingGroup = createGroup(parent, 2);
-		creatingOrSavingGroup.setText(XMLUIMessages.Creating_or_saving_files);
-
-		Label label = createLabel(creatingOrSavingGroup, XMLUIMessages.End_of_line_code_desc);
-		((GridData) label.getLayoutData()).horizontalSpan = 2;
-		((GridData) label.getLayoutData()).grabExcessHorizontalSpace = true;
-
-		createLabel(creatingOrSavingGroup, XMLUIMessages.End_of_line_code);
-		fEndOfLineCode = createDropDownBox(creatingOrSavingGroup);
-		populateLineDelimiters();
-	}
-
-	protected void createContentsForValidatingGroup(Composite parent) {
-		Group validatingGroup = createGroup(parent, 2);
-		validatingGroup.setText(XMLUIMessages.Validating_files);
-
-		if (fWarnNoGrammar == null) {
-			fWarnNoGrammar = createCheckBox(validatingGroup, XMLUIMessages.Warn_no_grammar_specified);
-		}
-	}
-
-	public void dispose() {
-		fDefaultSuffix.removeModifyListener(this);
-		super.dispose();
-	}
-
-	protected void doSavePreferenceStore() {
-		XMLCorePlugin.getDefault().savePluginPreferences(); // model
-	}
-
-	/**
-	 * Get content type associated with this new file wizard
-	 * 
-	 * @return IContentType
-	 */
-	protected IContentType getContentType() {
-		return Platform.getContentTypeManager().getContentType(ContentTypeIdForXML.ContentTypeID_XML);
-	}
-
-	/**
-	 * Get list of valid extensions
-	 * 
-	 * @return List
-	 */
-	private List getValidExtensions() {
-		if (fValidExtensions == null) {
-			IContentType type = getContentType();
-			fValidExtensions = new ArrayList(Arrays.asList(type.getFileSpecs(IContentType.FILE_EXTENSION_SPEC)));
-		}
-		return fValidExtensions;
-	}
-
-	/**
-	 * Return the currently selected line delimiter preference
-	 * 
-	 * @return a line delimiter constant from CommonEncodingPreferenceNames
-	 */
-	private String getCurrentEOLCode() {
-		int i = fEndOfLineCode.getSelectionIndex();
-		if (i >= 0) {
-			return (String) (fEOLCodes.elementAt(i));
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.preferences.ui.AbstractPreferencePage#getModelPreferences()
-	 */
-	protected Preferences getModelPreferences() {
-		return XMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	protected void initializeValues() {
-		initializeValuesForCreatingOrSavingGroup();
-		initializeValuesForCreatingGroup();
-		initializeValuesForValidatingGroup();
-	}
-
-	protected void initializeValuesForCreatingGroup() {
-		String suffix = getModelPreferences().getString(XMLCorePreferenceNames.DEFAULT_EXTENSION);
-		fDefaultSuffix.setText(suffix);
-
-		String encoding = getModelPreferences().getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-
-		fEncodingSettings.setIANATag(encoding);
-	}
-
-	protected void initializeValuesForCreatingOrSavingGroup() {
-		String endOfLineCode = getModelPreferences().getString(CommonEncodingPreferenceNames.END_OF_LINE_CODE);
-
-		if (endOfLineCode.length() > 0)
-			setCurrentEOLCode(endOfLineCode);
-		else
-			setCurrentEOLCode(CommonEncodingPreferenceNames.NO_TRANSLATION);
-	}
-
-	protected void initializeValuesForValidatingGroup() {
-		boolean warnNoGrammarButtonSelected = getModelPreferences().getBoolean(XMLCorePreferenceNames.WARN_NO_GRAMMAR);
-
-
-		if (fWarnNoGrammar != null) {
-			fWarnNoGrammar.setSelection(warnNoGrammarButtonSelected);
-		}
-	}
-
-	protected void performDefaults() {
-		performDefaultsForCreatingOrSavingGroup();
-		performDefaultsForCreatingGroup();
-		performDefaultsForValidatingGroup();
-
-		super.performDefaults();
-	}
-
-	protected void performDefaultsForCreatingGroup() {
-		String suffix = getModelPreferences().getDefaultString(XMLCorePreferenceNames.DEFAULT_EXTENSION);
-		fDefaultSuffix.setText(suffix);
-
-		String encoding = getModelPreferences().getDefaultString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-
-		fEncodingSettings.setIANATag(encoding);
-		// fEncodingSettings.resetToDefaultEncoding();
-	}
-
-	protected void performDefaultsForCreatingOrSavingGroup() {
-		String endOfLineCode = getModelPreferences().getDefaultString(CommonEncodingPreferenceNames.END_OF_LINE_CODE);
-
-		if (endOfLineCode.length() > 0)
-			setCurrentEOLCode(endOfLineCode);
-		else
-			setCurrentEOLCode(CommonEncodingPreferenceNames.NO_TRANSLATION);
-	}
-
-	protected void performDefaultsForValidatingGroup() {
-		boolean warnNoGrammarButtonSelected = getModelPreferences().getDefaultBoolean(XMLCorePreferenceNames.WARN_NO_GRAMMAR);
-
-		if (fWarnNoGrammar != null) {
-			fWarnNoGrammar.setSelection(warnNoGrammarButtonSelected);
-		}
-	}
-
-	public boolean performOk() {
-		boolean result = super.performOk();
-
-		doSavePreferenceStore();
-
-		return result;
-	}
-
-	/**
-	 * Populates the vector containing the line delimiter to display string
-	 * mapping and the combobox displaying line delimiters
-	 */
-	private void populateLineDelimiters() {
-		fEOLCodes = new Vector();
-		fEndOfLineCode.add(XMLUIMessages.EOL_Unix);
-		fEOLCodes.add(CommonEncodingPreferenceNames.LF);
-
-		fEndOfLineCode.add(XMLUIMessages.EOL_Mac);
-		fEOLCodes.add(CommonEncodingPreferenceNames.CR);
-
-		fEndOfLineCode.add(XMLUIMessages.EOL_Windows);
-		fEOLCodes.add(CommonEncodingPreferenceNames.CRLF);
-
-		fEndOfLineCode.add(XMLUIMessages.EOL_NoTranslation);
-		fEOLCodes.add(CommonEncodingPreferenceNames.NO_TRANSLATION);
-	}
-
-	/**
-	 * Select the line delimiter in the eol combobox
-	 * 
-	 */
-	private void setCurrentEOLCode(String eolCode) {
-		// Clear the current selection.
-		fEndOfLineCode.clearSelection();
-		fEndOfLineCode.deselectAll();
-
-		int i = fEOLCodes.indexOf(eolCode);
-		if (i >= 0) {
-			fEndOfLineCode.select(i);
-		}
-	}
-
-	protected void storeValues() {
-		storeValuesForCreatingOrSavingGroup();
-		storeValuesForCreatingGroup();
-		storeValuesForValidatingGroup();
-	}
-
-	protected void storeValuesForCreatingGroup() {
-		String suffix = fDefaultSuffix.getText();
-		getModelPreferences().setValue(XMLCorePreferenceNames.DEFAULT_EXTENSION, suffix);
-
-		getModelPreferences().setValue(CommonEncodingPreferenceNames.OUTPUT_CODESET, fEncodingSettings.getIANATag());
-	}
-
-	protected void storeValuesForCreatingOrSavingGroup() {
-		String eolCode = getCurrentEOLCode();
-		getModelPreferences().setValue(CommonEncodingPreferenceNames.END_OF_LINE_CODE, eolCode);
-	}
-
-	protected void storeValuesForValidatingGroup() {
-		if (fWarnNoGrammar != null) {
-			boolean warnNoGrammarButtonSelected = fWarnNoGrammar.getSelection();
-			getModelPreferences().setValue(XMLCorePreferenceNames.WARN_NO_GRAMMAR, warnNoGrammarButtonSelected);
-		}
-	}
-
-	protected void validateValues() {
-		boolean isValid = false;
-		Iterator i = getValidExtensions().iterator();
-		while (i.hasNext() && !isValid) {
-			String extension = (String) i.next();
-			isValid = extension.equalsIgnoreCase(fDefaultSuffix.getText());
-		}
-
-		if (!isValid) {
-			setErrorMessage(NLS.bind(XMLUIMessages.XMLFilesPreferencePage_ExtensionError, getValidExtensions().toString()));
-			setValid(false);
-		}
-		else {
-			setErrorMessage(null);
-			setValid(true);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java
deleted file mode 100644
index b611e44..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLSourcePreferencePage.java
+++ /dev/null
@@ -1,353 +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.wst.xml.ui.internal.preferences;
-
-import java.util.Vector;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Spinner;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.AbstractPreferencePage;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.preferences.XMLCorePreferenceNames;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds;
-
-public class XMLSourcePreferencePage extends AbstractPreferencePage implements ModifyListener, SelectionListener, IWorkbenchPreferencePage {
-	private final int MIN_INDENTATION_SIZE = 0;
-	private final int MAX_INDENTATION_SIZE = 16;
-
-	// Content Assist
-	protected Button fAutoPropose;
-	protected Label fAutoProposeLabel;
-	protected Text fAutoProposeText;
-	private Combo fSuggestionStrategyCombo;
-	private Vector fSuggestionStrategies = null;
-	protected Button fClearAllBlankLines;
-
-	// Formatting
-	protected Label fLineWidthLabel;
-	protected Text fLineWidthText;
-	protected Button fSplitMultiAttrs;
-	private Button fIndentUsingTabs;
-	private Button fIndentUsingSpaces;
-	private Spinner fIndentationSize;
-
-	// grammar constraints
-	protected Button fUseInferredGrammar;
-
-	protected Control createContents(Composite parent) {
-		Composite composite = (Composite) super.createContents(parent);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, IHelpContextIds.XML_PREFWEBX_SOURCE_HELPID);
-
-		createContentsForFormattingGroup(composite);
-		createContentsForContentAssistGroup(composite);
-		createContentsForGrammarConstraintsGroup(composite);
-		setSize(composite);
-		loadPreferences();
-
-		return composite;
-	}
-
-	protected void createContentsForContentAssistGroup(Composite parent) {
-		Group contentAssistGroup = createGroup(parent, 2);
-		contentAssistGroup.setText(XMLUIMessages.Content_assist_UI_);
-
-		fAutoPropose = createCheckBox(contentAssistGroup, XMLUIMessages.Automatically_make_suggest_UI_);
-		((GridData) fAutoPropose.getLayoutData()).horizontalSpan = 2;
-		fAutoPropose.addSelectionListener(this);
-
-		fAutoProposeLabel = createLabel(contentAssistGroup, XMLUIMessages.Prompt_when_these_characte_UI_);
-		fAutoProposeText = createTextField(contentAssistGroup);
-
-		createLabel(contentAssistGroup, XMLUIMessages.Suggestion_Strategy);
-		fSuggestionStrategyCombo = new Combo(contentAssistGroup, SWT.READ_ONLY);
-		fSuggestionStrategies = new Vector();
-		fSuggestionStrategyCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		fSuggestionStrategyCombo.add(XMLUIMessages.Suggestion_Strategy_Lax);
-		fSuggestionStrategies.add(XMLUIPreferenceNames.SUGGESTION_STRATEGY_VALUE_LAX);
-		fSuggestionStrategyCombo.add(XMLUIMessages.Suggestion_Strategy_Strict);
-		fSuggestionStrategies.add(XMLUIPreferenceNames.SUGGESTION_STRATEGY_VALUE_STRICT);
-	}
-
-	protected void createContentsForFormattingGroup(Composite parent) {
-		Group formattingGroup = createGroup(parent, 2);
-		formattingGroup.setText(XMLUIMessages.Formatting_UI_);
-
-		fLineWidthLabel = createLabel(formattingGroup, XMLUIMessages.Line_width__UI_);
-		fLineWidthText = new Text(formattingGroup, SWT.SINGLE | SWT.BORDER);
-		GridData gData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.BEGINNING);
-		gData.widthHint = 25;
-		fLineWidthText.setLayoutData(gData);
-		fLineWidthText.addModifyListener(this);
-
-		fSplitMultiAttrs = createCheckBox(formattingGroup, XMLUIMessages.Split_multiple_attributes);
-		((GridData) fSplitMultiAttrs.getLayoutData()).horizontalSpan = 2;
-		fClearAllBlankLines = createCheckBox(formattingGroup, XMLUIMessages.Clear_all_blank_lines_UI_);
-		((GridData) fClearAllBlankLines.getLayoutData()).horizontalSpan = 2;
-
-		fIndentUsingTabs = createRadioButton(formattingGroup, XMLUIMessages.Indent_using_tabs);
-		((GridData) fIndentUsingTabs.getLayoutData()).horizontalSpan = 2;
-
-		fIndentUsingSpaces = createRadioButton(formattingGroup, XMLUIMessages.Indent_using_spaces);
-		((GridData) fIndentUsingSpaces.getLayoutData()).horizontalSpan = 2;
-
-		createLabel(formattingGroup, XMLUIMessages.Indentation_size);
-		fIndentationSize = new Spinner(formattingGroup, SWT.READ_ONLY | SWT.BORDER);
-		GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		fIndentationSize.setLayoutData(gd);
-		fIndentationSize.setToolTipText(XMLUIMessages.Indentation_size_tip);
-		fIndentationSize.setMinimum(MIN_INDENTATION_SIZE);
-		fIndentationSize.setMaximum(MAX_INDENTATION_SIZE);
-		fIndentationSize.setIncrement(1);
-		fIndentationSize.setPageIncrement(4);
-		fIndentationSize.addModifyListener(this);
-	}
-
-	protected void createContentsForGrammarConstraintsGroup(Composite parent) {
-		Group grammarConstraintsGroup = createGroup(parent, 1);
-		grammarConstraintsGroup.setText(XMLUIMessages.Grammar_Constraints);
-		grammarConstraintsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
-
-		fUseInferredGrammar = createCheckBox(grammarConstraintsGroup, XMLUIMessages.Use_inferred_grammar_in_absence_of);
-	}
-
-	protected IPreferenceStore doGetPreferenceStore() {
-		return XMLUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	protected void doSavePreferenceStore() {
-		XMLUIPlugin.getDefault().savePluginPreferences(); // editor
-		XMLCorePlugin.getDefault().savePluginPreferences(); // model
-	}
-
-	protected void enableValues() {
-		if (fAutoPropose != null) {
-			if (fAutoPropose.getSelection()) {
-				fAutoProposeLabel.setEnabled(true);
-				fAutoProposeText.setEnabled(true);
-			}
-			else {
-				fAutoProposeLabel.setEnabled(false);
-				fAutoProposeText.setEnabled(false);
-			}
-		}
-	}
-
-	protected Preferences getModelPreferences() {
-		return XMLCorePlugin.getDefault().getPluginPreferences();
-	}
-
-	/**
-	 * Return the currently selected suggestion strategy preference
-	 * 
-	 * @return a suggestion strategy constant from XMLUIPreferenceNames
-	 */
-	private String getCurrentSuggestionStrategy() {
-		int i = fSuggestionStrategyCombo.getSelectionIndex();
-		if (i >= 0) {
-			return (String) (fSuggestionStrategies.elementAt(i));
-		}
-		return ""; //$NON-NLS-1$
-	}
-
-	protected void initializeValues() {
-		initializeValuesForFormattingGroup();
-		initializeValuesForContentAssistGroup();
-		initializeValuesForGrammarConstraintsGroup();
-	}
-
-	protected void initializeValuesForContentAssistGroup() {
-		// Content Assist
-		fAutoPropose.setSelection(getPreferenceStore().getBoolean(XMLUIPreferenceNames.AUTO_PROPOSE));
-		fAutoProposeText.setText(getPreferenceStore().getString(XMLUIPreferenceNames.AUTO_PROPOSE_CODE));
-		String suggestionStrategy = getPreferenceStore().getString(XMLUIPreferenceNames.SUGGESTION_STRATEGY);
-		if (suggestionStrategy.length() > 0)
-			setCurrentSuggestionStrategy(suggestionStrategy);
-		else
-			setCurrentSuggestionStrategy(XMLUIPreferenceNames.SUGGESTION_STRATEGY_VALUE_LAX);
-	}
-
-	protected void initializeValuesForFormattingGroup() {
-		// Formatting
-		fLineWidthText.setText(getModelPreferences().getString(XMLCorePreferenceNames.LINE_WIDTH));
-		fSplitMultiAttrs.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
-		fClearAllBlankLines.setSelection(getModelPreferences().getBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-		if (XMLCorePreferenceNames.TAB.equals(getModelPreferences().getString(XMLCorePreferenceNames.INDENTATION_CHAR))) {
-			fIndentUsingTabs.setSelection(true);
-			fIndentUsingSpaces.setSelection(false);
-		}
-		else {
-			fIndentUsingSpaces.setSelection(true);
-			fIndentUsingTabs.setSelection(false);
-		}
-
-		fIndentationSize.setSelection(getModelPreferences().getInt(XMLCorePreferenceNames.INDENTATION_SIZE));
-	}
-
-	protected void initializeValuesForGrammarConstraintsGroup() {
-		fUseInferredGrammar.setSelection(getPreferenceStore().getBoolean(XMLUIPreferenceNames.USE_INFERRED_GRAMMAR));
-	}
-
-	protected void performDefaults() {
-		performDefaultsForFormattingGroup();
-		performDefaultsForContentAssistGroup();
-		performDefaultsForGrammarConstraintsGroup();
-
-		validateValues();
-		enableValues();
-
-		super.performDefaults();
-	}
-
-	protected void performDefaultsForContentAssistGroup() {
-		// Content Assist
-		fAutoPropose.setSelection(getPreferenceStore().getDefaultBoolean(XMLUIPreferenceNames.AUTO_PROPOSE));
-		fAutoProposeText.setText(getPreferenceStore().getDefaultString(XMLUIPreferenceNames.AUTO_PROPOSE_CODE));
-		String suggestionStrategy = getPreferenceStore().getDefaultString(XMLUIPreferenceNames.SUGGESTION_STRATEGY);
-		if (suggestionStrategy.length() > 0)
-			setCurrentSuggestionStrategy(suggestionStrategy);
-		else
-			setCurrentSuggestionStrategy(XMLUIPreferenceNames.SUGGESTION_STRATEGY_VALUE_LAX);
-	}
-
-	protected void performDefaultsForFormattingGroup() {
-		// Formatting
-		fLineWidthText.setText(getModelPreferences().getDefaultString(XMLCorePreferenceNames.LINE_WIDTH));
-		fSplitMultiAttrs.setSelection(getModelPreferences().getDefaultBoolean(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS));
-		fClearAllBlankLines.setSelection(getModelPreferences().getDefaultBoolean(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES));
-
-		if (XMLCorePreferenceNames.TAB.equals(getModelPreferences().getDefaultString(XMLCorePreferenceNames.INDENTATION_CHAR))) {
-			fIndentUsingTabs.setSelection(true);
-			fIndentUsingSpaces.setSelection(false);
-		}
-		else {
-			fIndentUsingSpaces.setSelection(true);
-			fIndentUsingTabs.setSelection(false);
-		}
-		fIndentationSize.setSelection(getModelPreferences().getDefaultInt(XMLCorePreferenceNames.INDENTATION_SIZE));
-	}
-
-	protected void performDefaultsForGrammarConstraintsGroup() {
-		fUseInferredGrammar.setSelection(getPreferenceStore().getDefaultBoolean(XMLUIPreferenceNames.USE_INFERRED_GRAMMAR));
-	}
-
-	public boolean performOk() {
-		boolean result = super.performOk();
-
-		doSavePreferenceStore();
-
-		return result;
-	}
-
-	/**
-	 * Set a suggestion strategy in suggestion strategy combo box
-	 * 
-	 * @param strategy
-	 */
-	private void setCurrentSuggestionStrategy(String strategy) {
-		// Clear the current selection.
-		fSuggestionStrategyCombo.clearSelection();
-		fSuggestionStrategyCombo.deselectAll();
-
-		int i = fSuggestionStrategies.indexOf(strategy);
-		if (i >= 0) {
-			fSuggestionStrategyCombo.select(i);
-		}
-	}
-
-	protected void storeValues() {
-		storeValuesForFormattingGroup();
-		storeValuesForContentAssistGroup();
-		storeValuesForGrammarConstraintsGroup();
-	}
-
-	protected void storeValuesForContentAssistGroup() {
-		// Content Assist
-		getPreferenceStore().setValue(XMLUIPreferenceNames.AUTO_PROPOSE, fAutoPropose.getSelection());
-		getPreferenceStore().setValue(XMLUIPreferenceNames.AUTO_PROPOSE_CODE, fAutoProposeText.getText());
-		getPreferenceStore().setValue(XMLUIPreferenceNames.SUGGESTION_STRATEGY, getCurrentSuggestionStrategy());
-	}
-
-	protected void storeValuesForFormattingGroup() {
-		// Formatting
-		getModelPreferences().setValue(XMLCorePreferenceNames.LINE_WIDTH, fLineWidthText.getText());
-		getModelPreferences().setValue(XMLCorePreferenceNames.SPLIT_MULTI_ATTRS, fSplitMultiAttrs.getSelection());
-		getModelPreferences().setValue(XMLCorePreferenceNames.CLEAR_ALL_BLANK_LINES, fClearAllBlankLines.getSelection());
-
-		if (fIndentUsingTabs.getSelection()) {
-			getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.TAB);
-		}
-		else {
-			getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_CHAR, XMLCorePreferenceNames.SPACE);
-		}
-		getModelPreferences().setValue(XMLCorePreferenceNames.INDENTATION_SIZE, fIndentationSize.getSelection());
-	}
-
-	protected void storeValuesForGrammarConstraintsGroup() {
-		getPreferenceStore().setValue(XMLUIPreferenceNames.USE_INFERRED_GRAMMAR, fUseInferredGrammar.getSelection());
-	}
-
-	protected void validateValues() {
-		boolean isError = false;
-		String widthText = null;
-
-		if (fLineWidthText != null) {
-			try {
-				widthText = fLineWidthText.getText();
-				int formattingLineWidth = Integer.parseInt(widthText);
-				if ((formattingLineWidth < WIDTH_VALIDATION_LOWER_LIMIT) || (formattingLineWidth > WIDTH_VALIDATION_UPPER_LIMIT))
-					throw new NumberFormatException();
-			}
-			catch (NumberFormatException nfexc) {
-				setInvalidInputMessage(widthText);
-				setValid(false);
-				isError = true;
-			}
-		}
-
-		int indentSize = 0;
-		if (fIndentationSize != null) {
-			try {
-				indentSize = fIndentationSize.getSelection();
-				if ((indentSize < MIN_INDENTATION_SIZE) || (indentSize > MAX_INDENTATION_SIZE))
-					throw new NumberFormatException();
-			}
-			catch (NumberFormatException nfexc) {
-				setInvalidInputMessage(Integer.toString(indentSize));
-				setValid(false);
-				isError = true;
-			}
-		}
-
-		if (!isError) {
-			setErrorMessage(null);
-			setValid(true);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLTemplatePreferencePage.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLTemplatePreferencePage.java
deleted file mode 100644
index fbc1cf3..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLTemplatePreferencePage.java
+++ /dev/null
@@ -1,67 +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.wst.xml.ui.internal.preferences;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.texteditor.templates.TemplatePreferencePage;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.editor.IHelpContextIds;
-
-
-/**
- * Preference page for XML templates
- */
-public class XMLTemplatePreferencePage extends TemplatePreferencePage {
-
-	public XMLTemplatePreferencePage() {
-		XMLUIPlugin xmlEditorPlugin = XMLUIPlugin.getDefault();
-
-		setPreferenceStore(xmlEditorPlugin.getPreferenceStore());
-		setTemplateStore(xmlEditorPlugin.getTemplateStore());
-		setContextTypeRegistry(xmlEditorPlugin.getTemplateContextRegistry());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite ancestor) {
-		Control c = super.createContents(ancestor);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(c, IHelpContextIds.XML_PREFWEBX_TEMPLATES_HELPID);
-		return c;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.texteditor.templates.TemplatePreferencePage#isShowFormatterSetting()
-	 */
-	protected boolean isShowFormatterSetting() {
-		// template formatting has not been implemented
-		return false;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		boolean ok = super.performOk();
-		XMLUIPlugin.getDefault().savePluginPreferences();
-		return ok;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLUIPreferenceInitializer.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLUIPreferenceInitializer.java
deleted file mode 100644
index fd41d76..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLUIPreferenceInitializer.java
+++ /dev/null
@@ -1,105 +0,0 @@
-package org.eclipse.wst.xml.ui.internal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.wst.sse.ui.internal.preferences.ui.ColorHelper;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.style.IStyleConstantsXML;
-
-/**
- * Sets default values for XML UI preferences
- */
-public class XMLUIPreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IPreferenceStore store = XMLUIPlugin.getDefault().getPreferenceStore();
-		
-		store.setDefault(XMLUIPreferenceNames.AUTO_PROPOSE, true);
-		store.setDefault(XMLUIPreferenceNames.AUTO_PROPOSE_CODE, "<"); //$NON-NLS-1$
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=140946
-        store.setDefault(XMLUIPreferenceNames.SUGGESTION_STRATEGY, XMLUIPreferenceNames.SUGGESTION_STRATEGY_VALUE_STRICT);
-		store.setDefault(
-					XMLUIPreferenceNames.USE_INFERRED_GRAMMAR, true);
-
-		// XML Style Preferences
-		String NOBACKGROUNDBOLD = " | null | false"; //$NON-NLS-1$
-		String styleValue = ColorHelper.getColorString(127, 0, 127)
-				+ NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_NAME, styleValue);
-
-		styleValue = ColorHelper.getColorString(42, 0, 255) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE, styleValue);
-
-		styleValue = "null" + NOBACKGROUNDBOLD; //$NON-NLS-1$
-		store.setDefault(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS, styleValue); // specified
-		// value
-		// is
-		// black;
-		// leaving
-		// as
-		// widget
-		// default
-
-		styleValue = ColorHelper.getColorString(63, 95, 191) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.COMMENT_BORDER, styleValue);
-		store.setDefault(IStyleConstantsXML.COMMENT_TEXT, styleValue);
-
-		styleValue = ColorHelper.getColorString(0, 128, 128) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.DECL_BORDER, styleValue);
-
-		styleValue = ColorHelper.getColorString(0, 0, 128) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.DOCTYPE_NAME, styleValue);
-		store.setDefault(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF,
-				styleValue);
-
-		styleValue = ColorHelper.getColorString(128, 128, 128)
-				+ NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID, styleValue);
-
-		styleValue = ColorHelper.getColorString(63, 127, 95) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF,
-				styleValue);
-
-		styleValue = "null" + NOBACKGROUNDBOLD; //$NON-NLS-1$
-		store.setDefault(IStyleConstantsXML.XML_CONTENT, styleValue); // specified
-		// value
-		// is
-		// black;
-		// leaving
-		// as
-		// widget
-		// default
-
-		styleValue = ColorHelper.getColorString(0, 128, 128) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_BORDER, styleValue);
-
-		styleValue = ColorHelper.getColorString(63, 127, 127)
-				+ NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.TAG_NAME, styleValue);
-
-		styleValue = ColorHelper.getColorString(0, 128, 128) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.PI_BORDER, styleValue);
-
-		styleValue = "null" + NOBACKGROUNDBOLD; //$NON-NLS-1$
-		store.setDefault(IStyleConstantsXML.PI_CONTENT, styleValue); // specified
-		// value
-		// is
-		// black;
-		// leaving
-		// as
-		// widget
-		// default
-
-		styleValue = ColorHelper.getColorString(0, 128, 128) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.CDATA_BORDER, styleValue);
-
-		styleValue = ColorHelper.getColorString(0, 0, 0) + NOBACKGROUNDBOLD;
-		store.setDefault(IStyleConstantsXML.CDATA_TEXT, styleValue);
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLUIPreferenceNames.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLUIPreferenceNames.java
deleted file mode 100644
index 7269308..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/preferences/XMLUIPreferenceNames.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.preferences;
-
-/**
- * Preference keys for XML UI
- */
-public class XMLUIPreferenceNames {
-  
-    public final static String SUGGESTION_STRATEGY_VALUE_LAX = "Lax";	//$NON-NLS-1$
-    public final static String SUGGESTION_STRATEGY_VALUE_STRICT = "Strict";	  //$NON-NLS-1$
-	/**
-	 * A named preference that controls if code assist gets auto activated.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String AUTO_PROPOSE = getAutoProposeKey();
-
-	private static String getAutoProposeKey() {
-		return "autoPropose";//$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that holds the characters that auto activate code
-	 * assist.
-	 * <p>
-	 * Value is of type <code>String</code>. All characters that trigger
-	 * auto code assist.
-	 * </p>
-	 */
-	public static final String AUTO_PROPOSE_CODE = getAutoProposeCodeKey();
-
-	private static String getAutoProposeCodeKey() {
-		return "autoProposeCode";//$NON-NLS-1$
-	}
-
-	/**
-	 * The key to store customized templates.
-	 * <p>
-	 * Value is of type <code>String</code>.
-	 * </p>
-	 */
-	public static final String TEMPLATES_KEY = getTemplatesKey();
-
-	private static String getTemplatesKey() {
-		return "org.eclipse.wst.sse.ui.custom_templates"; //$NON-NLS-1$
-	}
-
-	/**
-	 * A named preference that controls whether or grammar should be inferred
-	 * or not.
-	 * <p>
-	 * Value is of type <code>Boolean</code>.
-	 * </p>
-	 */
-	public static final String USE_INFERRED_GRAMMAR = getUseInferredGrammarKey();
-
-	private static String getUseInferredGrammarKey() {
-		return "useInferredGrammar"; //$NON-NLS-1$
-	}
-    
-    /**
-     * A named preference that holds the characters that auto activate code
-     * assist.
-     * <p>
-     * Value is of type <code>String</code>. All characters that trigger
-     * auto code assist.
-     * </p>
-     */
-    public static final String SUGGESTION_STRATEGY = getSuggestionStrategeyKey();
-
-    private static String getSuggestionStrategeyKey() {
-        return "suggestionStrategy";//$NON-NLS-1$
-    }    
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionAnnotationModelChanges.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionAnnotationModelChanges.java
deleted file mode 100644
index 7d415f9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionAnnotationModelChanges.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.projection;
-
-import java.util.Map;
-
-import org.eclipse.jface.text.source.Annotation;
-import org.w3c.dom.Node;
-
-/**
- * Contains a set of projection model additions/deletions/modifications
- */
-class ProjectionAnnotationModelChanges {
-	// copies of this class located in:
-	// org.eclipse.wst.xml.ui.internal.projection
-	// org.eclipse.wst.css.ui.internal.projection
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-	private Node fNode;
-	private Annotation[] fDeletions;
-	private Map fAdditions;
-	private Annotation[] fModifications;
-
-	public ProjectionAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications) {
-		fNode = node;
-		fDeletions = deletions;
-		fAdditions = additions;
-		fModifications = modifications;
-	}
-
-	public Map getAdditions() {
-		return fAdditions;
-	}
-
-	public Annotation[] getDeletions() {
-		return fDeletions;
-	}
-
-	public Annotation[] getModifications() {
-		return fModifications;
-	}
-
-	public Node getNode() {
-		return fNode;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionModelNodeAdapterFactoryXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionModelNodeAdapterFactoryXML.java
deleted file mode 100644
index 96cba42..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionModelNodeAdapterFactoryXML.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.projection;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.jface.text.source.Annotation;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.wst.sse.core.internal.provisional.AbstractAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.w3c.dom.Node;
-
-public class ProjectionModelNodeAdapterFactoryXML extends AbstractAdapterFactory {
-	/**
-	 * List of projection viewers currently associated with this projection
-	 * model node adapter factory.
-	 */
-	private HashMap fProjectionViewers;
-
-	public ProjectionModelNodeAdapterFactoryXML() {
-		super(ProjectionModelNodeAdapterXML.class, true);
-	}
-
-	protected INodeAdapter createAdapter(INodeNotifier target) {
-		ProjectionModelNodeAdapterXML adapter = null;
-
-		// create adapter for every element tag
-		if ((isActive()) && (target instanceof Node) && ((Node) target).getNodeType() == Node.ELEMENT_NODE) {
-			adapter = new ProjectionModelNodeAdapterXML(this);
-			adapter.updateAdapter((Node) target);
-		}
-
-		return adapter;
-	}
-
-	/**
-	 * Return true if this factory is currently actively managing projection
-	 * 
-	 * @return
-	 */
-	boolean isActive() {
-		return (fProjectionViewers != null && !fProjectionViewers.isEmpty());
-	}
-
-	/**
-	 * Updates projection annotation model if document is not in flux.
-	 * Otherwise, queues up the changes to be applied when document is ready.
-	 * 
-	 * @param node
-	 * @param deletions
-	 * @param additions
-	 * @param modifications
-	 */
-	void queueAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications) {
-		queueAnnotationModelChanges(node, deletions, additions, modifications, null);
-	}
-
-	/**
-	 * Updates projection annotation model for a specific projection viewer if
-	 * document is not in flux. Otherwise, queues up the changes to be applied
-	 * when document is ready.
-	 * 
-	 * @param node
-	 * @param deletions
-	 * @param additions
-	 * @param modifications
-	 * @param viewer
-	 */
-	void queueAnnotationModelChanges(Node node, Annotation[] deletions, Map additions, Annotation[] modifications, ProjectionViewer viewer) {
-		// create a change object for latest change and add to queue
-		ProjectionAnnotationModelChanges newChange = new ProjectionAnnotationModelChanges(node, deletions, additions, modifications);
-		if (fProjectionViewers != null) {
-			if (viewer != null) {
-				ProjectionViewerInformation info = (ProjectionViewerInformation) fProjectionViewers.get(viewer);
-				if (info != null) {
-					info.queueAnnotationModelChanges(newChange);
-				}
-			}
-			else {
-				Iterator infos = fProjectionViewers.values().iterator();
-				while (infos.hasNext()) {
-					ProjectionViewerInformation info = (ProjectionViewerInformation) infos.next();
-					info.queueAnnotationModelChanges(newChange);
-				}
-			}
-		}
-	}
-
-	public void release() {
-		// go through every projectionviewer and call
-		// removeProjectionViewer(viewer);
-		if (fProjectionViewers != null) {
-			Iterator infos = fProjectionViewers.values().iterator();
-			while (infos.hasNext()) {
-				ProjectionViewerInformation info = (ProjectionViewerInformation) infos.next();
-				info.dispose();
-				infos.remove();
-			}
-			fProjectionViewers = null;
-		}
-		super.release();
-	}
-
-	/**
-	 * Adds viewer to list of projection viewers this factory is associated
-	 * with
-	 * 
-	 * @param viewer -
-	 *            assumes viewer's document and projection annotation model
-	 *            are not null
-	 */
-	void addProjectionViewer(ProjectionViewer viewer) {
-		// remove old entry if it exists
-		removeProjectionViewer(viewer);
-
-		if (fProjectionViewers == null) {
-			fProjectionViewers = new HashMap();
-		}
-
-		// create new object containing projection viewer and its info
-		ProjectionViewerInformation info = new ProjectionViewerInformation(viewer);
-		fProjectionViewers.put(viewer, info);
-		info.initialize();
-	}
-
-	/**
-	 * Removes the given viewer from the list of projection viewers this
-	 * factor is associated with
-	 * 
-	 * @param viewer
-	 */
-	void removeProjectionViewer(ProjectionViewer viewer) {
-		if (fProjectionViewers != null) {
-			// remove entry from list of viewers
-			ProjectionViewerInformation info = (ProjectionViewerInformation) fProjectionViewers.remove(viewer);
-			if (info != null) {
-				info.dispose();
-			}
-			// if removing last projection viewer, clear out everything
-			if (fProjectionViewers.isEmpty()) {
-				fProjectionViewers = null;
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionModelNodeAdapterXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionModelNodeAdapterXML.java
deleted file mode 100644
index 62026bc..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionModelNodeAdapterXML.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.projection;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.Position;
-import org.eclipse.jface.text.source.projection.ProjectionAnnotation;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.swt.graphics.FontMetrics;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Canvas;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.w3c.dom.Node;
-
-/**
- * Updates projection annotation model with projection annotations for this
- * adapter node's children
- */
-public class ProjectionModelNodeAdapterXML implements INodeAdapter {
-	private final static boolean debugProjectionPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.xml.ui/projectionperf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private class TagProjectionAnnotation extends ProjectionAnnotation {
-		private boolean fIsVisible = false; /* workaround for BUG85874 */
-		private Node fNode;
-
-		public TagProjectionAnnotation(Node node, boolean isCollapsed) {
-			super(isCollapsed);
-			fNode = node;
-		}
-
-		public Node getNode() {
-			return fNode;
-		}
-
-		public void setNode(Node node) {
-			fNode = node;
-		}
-
-		/**
-		 * Does not paint hidden annotations. Annotations are hidden when they
-		 * only span one line.
-		 * 
-		 * @see ProjectionAnnotation#paint(org.eclipse.swt.graphics.GC,
-		 *      org.eclipse.swt.widgets.Canvas,
-		 *      org.eclipse.swt.graphics.Rectangle)
-		 */
-		public void paint(GC gc, Canvas canvas, Rectangle rectangle) {
-			/* workaround for BUG85874 */
-			/*
-			 * only need to check annotations that are expanded because hidden
-			 * annotations should never have been given the chance to
-			 * collapse.
-			 */
-			if (!isCollapsed()) {
-				// working with rectangle, so line height
-				FontMetrics metrics = gc.getFontMetrics();
-				if (metrics != null) {
-					// do not draw annotations that only span one line and
-					// mark them as not visible
-					if ((rectangle.height / metrics.getHeight()) <= 1) {
-						fIsVisible = false;
-						return;
-					}
-				}
-			}
-			fIsVisible = true;
-			super.paint(gc, canvas, rectangle);
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.text.source.projection.ProjectionAnnotation#markCollapsed()
-		 */
-		public void markCollapsed() {
-			/* workaround for BUG85874 */
-			// do not mark collapsed if annotation is not visible
-			if (fIsVisible)
-				super.markCollapsed();
-		}
-	}
-
-	ProjectionModelNodeAdapterFactoryXML fAdapterFactory;
-	private Map fTagAnnotations = new HashMap();
-
-	public ProjectionModelNodeAdapterXML(ProjectionModelNodeAdapterFactoryXML factory) {
-		fAdapterFactory = factory;
-	}
-
-	/**
-	 * Create a projection position from the given node. Able to get
-	 * projection position if node isNodeProjectable.
-	 * 
-	 * @param node
-	 * @return null if no projection position possible, a Position otherwise
-	 */
-	private Position createProjectionPosition(Node node) {
-		Position pos = null;
-		if (isNodeProjectable(node) && node instanceof IndexedRegion) {
-			// IDocument document =
-			// fAdapterFactory.getProjectionViewer().getDocument();
-			// if (document != null) {
-			IndexedRegion inode = (IndexedRegion) node;
-			int start = inode.getStartOffset();
-			int end = inode.getEndOffset();
-			if (start >= 0 && start < end) {
-				// region-based
-				// extra line when collapsed, but no region increase when add
-				// newline
-				pos = new Position(start, end - start);
-				// try {
-				// // line-based
-				// // extra line when collapsed, but no region increase when
-				// add newline
-				// IRegion startLineRegion =
-				// document.getLineInformationOfOffset(start);
-				// IRegion endLineRegion =
-				// document.getLineInformationOfOffset(end);
-				// int startOffset = startLineRegion.getOffset();
-				// int endOffset = endLineRegion.getOffset() +
-				// endLineRegion.getLength();
-				// if (endOffset > startOffset) {
-				// pos = new Position(startOffset, endOffset - startOffset);
-				// }
-
-				// // line-based
-				// // no extra line when collapsed, but region increase when
-				// add newline
-				// int startLine = document.getLineOfOffset(start);
-				// int endLine = document.getLineOfOffset(end);
-				// if (endLine + 1 < document.getNumberOfLines()) {
-				// int offset = document.getLineOffset(startLine);
-				// int endOffset = document.getLineOffset(endLine + 1);
-				// pos = new Position(offset, endOffset - offset);
-				// }
-				// }
-				// catch (BadLocationException x) {
-				// Logger.log(Logger.WARNING_DEBUG, null, x);
-				// }
-			}
-			// }
-		}
-		return pos;
-	}
-
-	/**
-	 * Find TagProjectionAnnotation for node in the current list of projection
-	 * annotations for this adapter
-	 * 
-	 * @param node
-	 * @return TagProjectionAnnotation
-	 */
-	private TagProjectionAnnotation getExistingAnnotation(Node node) {
-		TagProjectionAnnotation anno = null;
-
-		if ((node != null) && (!fTagAnnotations.isEmpty())) {
-			Iterator it = fTagAnnotations.keySet().iterator();
-			while (it.hasNext() && anno == null) {
-				TagProjectionAnnotation a = (TagProjectionAnnotation) it.next();
-				Node n = a.getNode();
-				if (node.equals(n)) {
-					anno = a;
-				}
-			}
-		}
-		return anno;
-	}
-
-	public boolean isAdapterForType(Object type) {
-		return type == ProjectionModelNodeAdapterXML.class;
-	}
-
-	/**
-	 * Returns true if node is a node type able to fold
-	 * 
-	 * @param node
-	 * @return boolean true if node is projectable, false otherwise
-	 */
-	private boolean isNodeProjectable(Node node) {
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			return true;
-		}
-		return false;
-	}
-
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-		// check if folding is even enabled, if not, just ignore notifyChanged
-		// events
-		if (!fAdapterFactory.isActive()) {
-			return;
-		}
-
-		if ((eventType == INodeNotifier.STRUCTURE_CHANGED) && (notifier instanceof Node)) {
-			updateAdapter((Node) notifier);
-		}
-	}
-
-	/**
-	 * Update the projection annotation of all the nodes that are children of
-	 * node
-	 * 
-	 * @param node
-	 */
-	void updateAdapter(Node node) {
-		updateAdapter(node, null);
-	}
-
-	/**
-	 * Update the projection annotation of all the nodes that are children of
-	 * node and adds all projection annotations to viewer (for newly added
-	 * viewers)
-	 * 
-	 * @param node
-	 * @param viewer
-	 */
-	void updateAdapter(Node node, ProjectionViewer viewer) {
-		long start = System.currentTimeMillis();
-
-		Map additions = new HashMap();
-		Map projectionAnnotations = new HashMap();
-
-		// go through immediate child nodes and figure out projection
-		// model annotations
-		if (node != null) {
-			Node childNode = node.getFirstChild();
-			while (childNode != null) {
-				Position newPos = createProjectionPosition(childNode);
-				if (newPos != null) {
-					TagProjectionAnnotation newAnnotation = new TagProjectionAnnotation(childNode, false);
-					TagProjectionAnnotation existing = getExistingAnnotation(childNode);
-					if (existing == null) {
-						// add to map containing all annotations for this
-						// adapter
-						projectionAnnotations.put(newAnnotation, newPos);
-						// add to map containing annotations to add
-						additions.put(newAnnotation, newPos);
-					}
-					else {
-						// add to map containing all annotations for this
-						// adapter
-						projectionAnnotations.put(existing, newPos);
-						// remove from map containing annotations to delete
-						fTagAnnotations.remove(existing);
-					}
-				}
-				childNode = childNode.getNextSibling();
-			}
-
-			// in the end, want to delete anything leftover in old list, add
-			// everything in additions, and update everything in
-			// projectionAnnotations
-			ProjectionAnnotation[] oldList = null;
-			if (!fTagAnnotations.isEmpty()) {
-				oldList = (ProjectionAnnotation[]) fTagAnnotations.keySet().toArray(new ProjectionAnnotation[0]);
-			}
-			ProjectionAnnotation[] modifyList = null;
-			if (!projectionAnnotations.isEmpty()) {
-				modifyList = (ProjectionAnnotation[]) projectionAnnotations.keySet().toArray(new ProjectionAnnotation[0]);
-			}
-
-			// specifically add all annotations to viewer
-			if (viewer != null && !projectionAnnotations.isEmpty()) {
-				fAdapterFactory.queueAnnotationModelChanges(node, null, projectionAnnotations, null, viewer);
-			}
-
-			// only update when there is something to update
-			if ((oldList != null && oldList.length > 0) || (!additions.isEmpty()) || (modifyList != null && modifyList.length > 0))
-				fAdapterFactory.queueAnnotationModelChanges(node, oldList, additions, modifyList);
-		}
-
-		// save new list of annotations
-		fTagAnnotations = projectionAnnotations;
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			String nodeName = node != null ? node.getNodeName() : "null"; //$NON-NLS-1$
-			System.out.println("ProjectionModelNodeAdapterXML.updateAdapter (" + nodeName + "):" + (end - start)); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionViewerInformation.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionViewerInformation.java
deleted file mode 100644
index c20c119..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/ProjectionViewerInformation.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.projection;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IDocumentExtension;
-import org.eclipse.jface.text.IDocumentListener;
-import org.eclipse.jface.text.source.projection.ProjectionAnnotationModel;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.wst.xml.ui.internal.Logger;
-
-/**
- * Contains information about a projection viewer and also manages updating
- * the viewer's projection annotation model
- */
-class ProjectionViewerInformation {
-	// copies of this class located in:
-	// org.eclipse.wst.xml.ui.internal.projection
-	// org.eclipse.wst.css.ui.internal.projection
-	// org.eclipse.wst.html.ui.internal.projection
-	// org.eclipse.jst.jsp.ui.internal.projection
-
-	/**
-	 * Listens to document to be aware of when to update the projection
-	 * annotation model.
-	 */
-	private class DocumentListener implements IDocumentListener {
-		private ProjectionViewerInformation fInfo;
-
-		public DocumentListener(ProjectionViewerInformation info) {
-			fInfo = info;
-		}
-
-		public void documentAboutToBeChanged(DocumentEvent event) {
-			IDocument document = event.getDocument();
-			if (fInfo.getDocument() == document) {
-				fInfo.setIsDocumentChanging(true);
-			}
-		}
-
-		public void documentChanged(DocumentEvent event) {
-			// register a post notification replace so that projection
-			// annotation model will be updated after all documentChanged
-			// listeners have been notified
-			IDocument document = event.getDocument();
-			if (document instanceof IDocumentExtension && fInfo.getDocument() == document) {
-				if (fInfo.hasChangesQueued())
-					((IDocumentExtension) document).registerPostNotificationReplace(this, new PostDocumentChangedListener(fInfo));
-			}
-		}
-	}
-
-	/**
-	 * Essentially a post document changed listener because it is called after
-	 * documentchanged has been fired.
-	 */
-	private class PostDocumentChangedListener implements IDocumentExtension.IReplace {
-		private ProjectionViewerInformation fInfo;
-
-		public PostDocumentChangedListener(ProjectionViewerInformation info) {
-			fInfo = info;
-		}
-
-		public void perform(IDocument document, IDocumentListener owner) {
-			fInfo.applyAnnotationModelChanges();
-			fInfo.setIsDocumentChanging(false);
-		}
-	}
-
-	/**
-	 * Projection annotation model current associated with this projection
-	 * viewer
-	 */
-	private ProjectionAnnotationModel fProjectionAnnotationModel;
-	/**
-	 * Document currently associated with this projection viewer
-	 */
-	private IDocument fDocument;
-	/**
-	 * Listener to fProjectionViewer's document
-	 */
-	private IDocumentListener fDocumentListener;
-	/**
-	 * Indicates whether or not document is in the middle of changing
-	 */
-	private boolean fIsDocumentChanging = false;
-	/**
-	 * List of projection annotation model changes that need to be applied
-	 */
-	private List fQueuedAnnotationChanges;
-
-	public ProjectionViewerInformation(ProjectionViewer viewer) {
-		fDocument = viewer.getDocument();
-		fProjectionAnnotationModel = viewer.getProjectionAnnotationModel();
-	}
-
-	IDocument getDocument() {
-		return fDocument;
-	}
-
-	private List getQueuedAnnotationChanges() {
-		if (fQueuedAnnotationChanges == null) {
-			fQueuedAnnotationChanges = new ArrayList();
-		}
-		return fQueuedAnnotationChanges;
-	}
-
-	void setIsDocumentChanging(boolean changing) {
-		fIsDocumentChanging = changing;
-	}
-
-	private boolean isDocumentChanging() {
-		return fIsDocumentChanging;
-	}
-
-	/**
-	 * Applies the pending projection annotation model changes to the
-	 * projection annotation model.
-	 */
-	void applyAnnotationModelChanges() {
-		List queuedChanges = getQueuedAnnotationChanges();
-		// go through all the pending annotation changes and apply
-		// them to
-		// the projection annotation model
-		while (!queuedChanges.isEmpty()) {
-			ProjectionAnnotationModelChanges changes = (ProjectionAnnotationModelChanges) queuedChanges.remove(0);
-			try {
-				fProjectionAnnotationModel.modifyAnnotations(changes.getDeletions(), changes.getAdditions(), changes.getModifications());
-			}
-			catch (Exception e) {
-				// if anything goes wrong, log it be continue
-				Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-			}
-		}
-	}
-
-	/**
-	 * Returns true if there are annotation changes queued up, false otherwise
-	 * 
-	 * @return boolean
-	 */
-	boolean hasChangesQueued() {
-		return !getQueuedAnnotationChanges().isEmpty();
-	}
-
-	/**
-	 * Updates projection annotation model if document is not in flux.
-	 * Otherwise, queues up the changes to be applied when document is ready.
-	 */
-	public void queueAnnotationModelChanges(ProjectionAnnotationModelChanges newChange) {
-		/*
-		 * future_TODO: maybe improve by checking if annotation projection
-		 * model change already exists for node. if so, throw out old change.
-		 */
-		getQueuedAnnotationChanges().add(newChange);
-
-		// if document isn't changing, go ahead and apply it
-		if (!isDocumentChanging()) {
-			applyAnnotationModelChanges();
-		}
-	}
-
-	public void initialize() {
-		// add document listener
-		if (fDocumentListener == null) {
-			fDocumentListener = new DocumentListener(this);
-		}
-		getDocument().addDocumentListener(fDocumentListener);
-	}
-
-	public void dispose() {
-		// remove document listener
-		if (fDocumentListener != null) {
-			getDocument().removeDocumentListener(fDocumentListener);
-		}
-
-		// clear out list of queued changes since it may no longer
-		// be accurate
-		if (fQueuedAnnotationChanges != null) {
-			fQueuedAnnotationChanges.clear();
-			fQueuedAnnotationChanges = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/StructuredTextFoldingProviderXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/StructuredTextFoldingProviderXML.java
deleted file mode 100644
index 4ac69d0..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/projection/StructuredTextFoldingProviderXML.java
+++ /dev/null
@@ -1,324 +0,0 @@
-package org.eclipse.wst.xml.ui.internal.projection;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextInputListener;
-import org.eclipse.jface.text.source.projection.IProjectionListener;
-import org.eclipse.jface.text.source.projection.ProjectionViewer;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.PropagatingAdapter;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.internal.projection.IStructuredTextFoldingProvider;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * Updates the projection model of a structured model for XML.
- */
-public class StructuredTextFoldingProviderXML implements IStructuredTextFoldingProvider, IProjectionListener, ITextInputListener {
-	private final static boolean debugProjectionPerf = "true".equalsIgnoreCase(Platform.getDebugOption("org.eclipse.wst.xml.ui/projectionperf")); //$NON-NLS-1$ //$NON-NLS-2$
-
-	private IDocument fDocument;
-	private ProjectionViewer fViewer;
-	private boolean fProjectionNeedsToBeEnabled = false;
-	/**
-	 * Maximum number of child nodes to add adapters to (limit for performance
-	 * sake)
-	 */
-	private final int MAX_CHILDREN = 10;
-	/**
-	 * Maximum number of sibling nodes to add adapters to (limit for
-	 * performance sake)
-	 */
-	private final int MAX_SIBLINGS = 1000;
-
-	/**
-	 * Adds an adapter to node and its children
-	 * 
-	 * @param node
-	 * @param childLevel
-	 */
-	private void addAdapterToNodeAndChildren(Node node, int childLevel) {
-		// stop adding initial adapters MAX_CHILDREN levels deep for
-		// performance sake
-		if (node instanceof INodeNotifier && childLevel < MAX_CHILDREN) {
-			INodeNotifier notifier = (INodeNotifier) node;
-
-			// try and get the adapter for the current node and update the
-			// adapter with projection information
-			ProjectionModelNodeAdapterXML adapter = (ProjectionModelNodeAdapterXML) notifier.getExistingAdapter(ProjectionModelNodeAdapterXML.class);
-			if (adapter != null) {
-				adapter.updateAdapter(node, fViewer);
-			}
-			else {
-				// just call getadapter so the adapter is created and
-				// automatically initialized
-				notifier.getAdapterFor(ProjectionModelNodeAdapterXML.class);
-			}
-			int siblingLevel = 0;
-			Node nextChild = node.getFirstChild();
-			while (nextChild != null && siblingLevel < MAX_SIBLINGS) {
-				Node childNode = nextChild;
-				nextChild = childNode.getNextSibling();
-
-				addAdapterToNodeAndChildren(childNode, childLevel + 1);
-			}
-		}
-	}
-
-	/**
-	 * Goes through every node and adds an adapter onto each for tracking
-	 * purposes
-	 */
-	private void addAllAdapters() {
-		long start = System.currentTimeMillis();
-
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					int startOffset = 0;
-					IndexedRegion startNode = sModel.getIndexedRegion(startOffset);
-					if (startNode instanceof Node) {
-						int siblingLevel = 0;
-						Node nextSibling = (Node) startNode;
-						while (nextSibling != null && siblingLevel < MAX_SIBLINGS) {
-							Node currentNode = nextSibling;
-							nextSibling = currentNode.getNextSibling();
-
-							addAdapterToNodeAndChildren(currentNode, 0);
-							++siblingLevel;
-						}
-					}
-				}
-			}
-			finally {
-				if (sModel != null) {
-					sModel.releaseFromRead();
-				}
-			}
-		}
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderXML.addAllAdapters: " + (end - start)); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Get the ProjectionModelNodeAdapterFactoryXML to use with this provider.
-	 * 
-	 * @return ProjectionModelNodeAdapterFactoryXML
-	 */
-	private ProjectionModelNodeAdapterFactoryXML getAdapterFactory(boolean createIfNeeded) {
-		long start = System.currentTimeMillis();
-
-		ProjectionModelNodeAdapterFactoryXML factory = null;
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					FactoryRegistry factoryRegistry = sModel.getFactoryRegistry();
-
-					// getting the projectionmodelnodeadapter for the first
-					// time
-					// so do some initializing
-					if (!factoryRegistry.contains(ProjectionModelNodeAdapterXML.class) && createIfNeeded) {
-						ProjectionModelNodeAdapterFactoryXML newFactory = new ProjectionModelNodeAdapterFactoryXML();
-
-						// add factory to factory registry
-						factoryRegistry.addFactory(newFactory);
-
-						// add factory to propogating adapter
-						IDOMModel domModel = (IDOMModel) sModel;
-						Document document = domModel.getDocument();
-						PropagatingAdapter propagatingAdapter = (PropagatingAdapter) ((INodeNotifier) document).getAdapterFor(PropagatingAdapter.class);
-						if (propagatingAdapter != null) {
-							propagatingAdapter.addAdaptOnCreateFactory(newFactory);
-						}
-					}
-
-					// try and get the factory
-					factory = (ProjectionModelNodeAdapterFactoryXML) factoryRegistry.getFactoryFor(ProjectionModelNodeAdapterXML.class);
-				}
-			}
-			finally {
-				if (sModel != null)
-					sModel.releaseFromRead();
-			}
-		}
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderXML.getAdapterFactory: " + (end - start)); //$NON-NLS-1$
-		}
-		return factory;
-	}
-
-	/**
-	 * Initialize this provider with the correct document. Assumes projection
-	 * is enabled. (otherwise, only install would have been called)
-	 */
-	public void initialize() {
-		if (!isInstalled())
-			return;
-
-		// clear out old info
-		projectionDisabled();
-
-		fDocument = fViewer.getDocument();
-
-		// set projection viewer on new document's adapter factory
-		if (fViewer.getProjectionAnnotationModel() != null) {
-			ProjectionModelNodeAdapterFactoryXML factory = getAdapterFactory(true);
-			if (factory != null) {
-				factory.addProjectionViewer(fViewer);
-			}
-
-			addAllAdapters();
-		}
-		fProjectionNeedsToBeEnabled = false;
-	}
-
-	/**
-	 * Associate a ProjectionViewer with this IStructuredTextFoldingProvider
-	 * 
-	 * @param viewer -
-	 *            assumes not null
-	 */
-	public void install(ProjectionViewer viewer) {
-		// uninstall before trying to install new viewer
-		if (isInstalled()) {
-			uninstall();
-		}
-		fViewer = viewer;
-		fViewer.addProjectionListener(this);
-		fViewer.addTextInputListener(this);
-	}
-
-	private boolean isInstalled() {
-		return fViewer != null;
-	}
-
-	public void projectionDisabled() {
-		ProjectionModelNodeAdapterFactoryXML factory = getAdapterFactory(false);
-		if (factory != null) {
-			factory.removeProjectionViewer(fViewer);
-		}
-
-		// clear out all annotations
-		if (fViewer.getProjectionAnnotationModel() != null)
-			fViewer.getProjectionAnnotationModel().removeAllAnnotations();
-
-		removeAllAdapters();
-
-		fDocument = null;
-		fProjectionNeedsToBeEnabled = false;
-	}
-
-	public void projectionEnabled() {
-		initialize();
-	}
-
-	/**
-	 * Removes an adapter from node and its children
-	 * 
-	 * @param node
-	 * @param level
-	 */
-	private void removeAdapterFromNodeAndChildren(Node node, int level) {
-		if (node instanceof INodeNotifier) {
-			INodeNotifier notifier = (INodeNotifier) node;
-
-			// try and get the adapter for the current node and remove it
-			INodeAdapter adapter = notifier.getExistingAdapter(ProjectionModelNodeAdapterXML.class);
-			if (adapter != null) {
-				notifier.removeAdapter(adapter);
-			}
-
-			Node nextChild = node.getFirstChild();
-			while (nextChild != null) {
-				Node childNode = nextChild;
-				nextChild = childNode.getNextSibling();
-
-				removeAdapterFromNodeAndChildren(childNode, level + 1);
-			}
-		}
-	}
-
-	/**
-	 * Goes through every node and removes adapter from each for cleanup
-	 * purposes
-	 */
-	private void removeAllAdapters() {
-		long start = System.currentTimeMillis();
-
-		if (fDocument != null) {
-			IStructuredModel sModel = null;
-			try {
-				sModel = StructuredModelManager.getModelManager().getExistingModelForRead(fDocument);
-				if (sModel != null) {
-					int startOffset = 0;
-					IndexedRegion startNode = sModel.getIndexedRegion(startOffset);
-					if (startNode instanceof Node) {
-						Node nextSibling = (Node) startNode;
-						while (nextSibling != null) {
-							Node currentNode = nextSibling;
-							nextSibling = currentNode.getNextSibling();
-
-							removeAdapterFromNodeAndChildren(currentNode, 0);
-						}
-					}
-				}
-			}
-			finally {
-				if (sModel != null) {
-					sModel.releaseFromRead();
-				}
-			}
-		}
-
-		if (debugProjectionPerf) {
-			long end = System.currentTimeMillis();
-			System.out.println("StructuredTextFoldingProviderXML.removeAllAdapters: " + (end - start)); //$NON-NLS-1$
-		}
-	}
-
-	public void inputDocumentAboutToBeChanged(IDocument oldInput, IDocument newInput) {
-		// if folding is enabled and new document is going to be a totally
-		// different document, disable projection
-		if (fDocument != null && fDocument != newInput) {
-			// disable projection and disconnect everything
-			projectionDisabled();
-			fProjectionNeedsToBeEnabled = true;
-		}
-	}
-
-	public void inputDocumentChanged(IDocument oldInput, IDocument newInput) {
-		// if projection was previously enabled before input document changed
-		// and new document is different than old document
-		if (fProjectionNeedsToBeEnabled && fDocument == null && newInput != null) {
-			projectionEnabled();
-			fProjectionNeedsToBeEnabled = false;
-		}
-	}
-
-	/**
-	 * Disconnect this IStructuredTextFoldingProvider from projection viewer
-	 */
-	public void uninstall() {
-		if (isInstalled()) {
-			projectionDisabled();
-
-			fViewer.removeProjectionListener(this);
-			fViewer.removeTextInputListener(this);
-			fViewer = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/EnumeratedStringPropertyDescriptor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/EnumeratedStringPropertyDescriptor.java
deleted file mode 100644
index e302240..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/EnumeratedStringPropertyDescriptor.java
+++ /dev/null
@@ -1,69 +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.wst.xml.ui.internal.properties;
-
-
-
-import java.util.Arrays;
-
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.views.properties.PropertyDescriptor;
-
-/**
- * This class should be used for properties which require a combo box cell
- * editor and whose values consist of a list of enumerated strings.
- */
-public class EnumeratedStringPropertyDescriptor extends PropertyDescriptor {
-	protected StringComboBoxCellEditor fEditor;
-	protected Composite fParent;
-
-	/**
-	 * The enumerated possible values for the described property
-	 */
-	protected String fValues[] = null;
-
-	public EnumeratedStringPropertyDescriptor(Object id, String newDisplayName, String[] valuesArray) {
-		super(id, newDisplayName);
-		setDescription((String) id);
-		fValues = valuesArray;
-	}
-
-	/**
-	 * Creates and returns a new cell editor for editing this property.
-	 * Returns <code>null</code> if the property is not editable.
-	 * 
-	 * @param parent
-	 *            the parent widget for the cell editor
-	 * @return the cell editor for this property, or <code>null</code> if
-	 *         this property cannot be edited
-	 */
-	public CellEditor createPropertyEditor(Composite parent) {
-		// Check to see if we already have a Cell Editor with a valid Control
-		// under the given parent.
-		// If any of that's not true, create and return a new Cell Editor
-		if (fEditor == null || fEditor.getControl() == null || fEditor.getControl().isDisposed() || parent != fParent)
-			fEditor = new StringComboBoxCellEditor(parent, fValues);
-		fParent = parent;
-		return fEditor;
-	}
-
-	public void updateValues(String newValues[]) {
-		if (Arrays.equals(fValues, newValues))
-			return;
-		fValues = newValues;
-		if (fEditor != null) {
-			fEditor.setItems(newValues);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/StringComboBoxCellEditor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/StringComboBoxCellEditor.java
deleted file mode 100644
index 05f4788..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/StringComboBoxCellEditor.java
+++ /dev/null
@@ -1,111 +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.wst.xml.ui.internal.properties;
-
-
-
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.sse.ui.internal.Logger;
-
-
-/**
- * An extended ComboBoxCellEditor that selects and returns Strings
- */
-
-public class StringComboBoxCellEditor extends ComboBoxCellEditor {
-	private boolean fSettingValue = false;
-
-	/**
-	 *  
-	 */
-	public StringComboBoxCellEditor() {
-		super();
-	}
-
-	/**
-	 * @param parent
-	 * @param items
-	 */
-	public StringComboBoxCellEditor(Composite parent, String[] items) {
-		super(parent, items);
-	}
-
-	/**
-	 * @param parent
-	 * @param items
-	 * @param style
-	 */
-	public StringComboBoxCellEditor(Composite parent, String[] items, int style) {
-		super(parent, items, style);
-	}
-
-	protected Object doGetValue() {
-		// otherwise limits to set of valid values
-		Object index = super.doGetValue();
-		int selection = -1;
-		if (index instanceof Integer)
-			selection = ((Integer) index).intValue();
-		if (selection >= 0)
-			return getItems()[selection];
-		else if (getControl() instanceof CCombo) {
-			// retrieve the actual text as the list of valid items doesn't
-			// contain the value
-			return ((CCombo) getControl()).getText();
-		}
-		return null;
-	}
-
-	protected void doSetValue(Object value) {
-		if (fSettingValue)
-			return;
-		fSettingValue = true;
-		if (value instanceof Integer) {
-			super.doSetValue(value);
-		} else {
-			String stringValue = value.toString();
-			int selection = -1;
-			for (int i = 0; i < getItems().length; i++)
-				if (getItems()[i].equals(stringValue))
-					selection = i;
-			if (selection >= 0)
-				super.doSetValue(new Integer(selection));
-			else {
-				super.doSetValue(new Integer(-1));
-				if (getControl() instanceof CCombo && !stringValue.equals(((CCombo) getControl()).getText())) {
-					// update the Text widget
-					((CCombo) getControl()).setText(stringValue);
-				}
-			}
-		}
-		fSettingValue = false;
-	}
-
-	public void setItems(String[] newItems) {
-		if (getControl() == null || getControl().isDisposed()) {
-			Logger.log(Logger.ERROR, "Attempted to update item list for disposed cell editor"); //$NON-NLS-1$
-			return;
-		}
-
-		// keep selection if possible
-		Object previousSelectedValue = getValue();
-		super.setItems(newItems);
-		if (previousSelectedValue != null && getControl() instanceof CCombo) {
-			for (int i = 0; i < newItems.length; i++) {
-				if (newItems[i].equals(previousSelectedValue))
-					setValue(previousSelectedValue);
-			}
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/XMLPropertySource.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/XMLPropertySource.java
deleted file mode 100644
index 27f94c0..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/properties/XMLPropertySource.java
+++ /dev/null
@@ -1,738 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.properties;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Stack;
-
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.IPropertyDescriptor;
-import org.eclipse.ui.views.properties.IPropertySheetEntry;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySource2;
-import org.eclipse.ui.views.properties.TextPropertyDescriptor;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.views.properties.IPropertySourceExtension;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.document.DocumentTypeAdapter;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * An IPropertySource implementation for a JFace viewer used to display
- * properties of DOM nodes.
- */
-public class XMLPropertySource implements IPropertySource, IPropertySourceExtension, IPropertySource2 {
-	protected final static String CATEGORY_ATTRIBUTES = XMLUIMessages.XMLPropertySourceAdapter_0; //$NON-NLS-1$
-
-	private static final boolean fSetExpertFilter = false;
-
-	/**
-	 * derive categories from CMDataTypes; disabled until display strings can
-	 * be planned
-	 */
-	private final static boolean fShouldDeriveCategories = false;
-
-	private final static boolean fSortEnumeratedValues = true;
-
-	/**
-	 * Note: we want the default fCaseSensitive to be true, but, to avoid
-	 * meaningless double initialization, we leave default here, and set in
-	 * constructor only.
-	 */
-	private boolean fCaseSensitive;
-	private IPropertyDescriptor[] fDescriptors = null;
-	private Node fNode = null;
-
-	private Stack fValuesBeingSet = new Stack();
-
-	public XMLPropertySource(INodeNotifier target) {
-		super();
-		fNode = initNode(target);
-		fCaseSensitive = initCaseSensitive(fNode);
-
-	}
-
-	/** seperate method just to isolate error processing */
-	private Node initNode(INodeNotifier target) {
-		Node node = null;
-		if (target instanceof Node) {
-			node = (Node) target;
-		}
-		else {
-			throw new IllegalArgumentException("XMLPropertySource is only for Nodes"); //$NON-NLS-1$
-		}
-		return node;
-	}
-
-	private boolean initCaseSensitive(Node node) {
-		// almost all tags are case senstive, except that old HTML
-		boolean caseSensitive = true;
-		DocumentTypeAdapter adapter = null;
-		if (node instanceof IDOMNode) {
-			adapter = getDocTypeFromDOMNode(node);
-		}
-		if (adapter != null) {
-			caseSensitive = (adapter.getTagNameCase() == DocumentTypeAdapter.STRICT_CASE);
-		}
-		return caseSensitive;
-	}
-
-	/**
-	 * by "internal spec" the DOCTYPE adapter is only available from Document
-	 * Node
-	 * 
-	 * @return {@link DocumentTypeAdapter}
-	 */
-	private DocumentTypeAdapter getDocTypeFromDOMNode(Node node) {
-		DocumentTypeAdapter adapter = null;
-		Document ownerDocument = node.getOwnerDocument();
-		if (ownerDocument == null) {
-			// if ownerDocument is null, then fNode must be the Document Node
-			// [old, old comment]
-			// hmmmm, guess not. See
-			// https://bugs.eclipse.org/bugs/show_bug.cgi?id=130233
-			// guess this is used for many INodeNotifiers, not just XML.
-			// (and DTD's use IDOMNode? ... that doesn't sound quite right
-			// ... but, maybe a separate issue).
-			if (node instanceof Document) {
-				ownerDocument = (Document) node;
-			}
-		}
-		if(ownerDocument != null) {
-			adapter = (DocumentTypeAdapter) ((INodeNotifier) ownerDocument).getAdapterFor(DocumentTypeAdapter.class);
-		}
-
-		return adapter;
-	}
-
-	private String[] _getValidFixedStrings(CMAttributeDeclaration attrDecl, CMDataType helper) {
-		String attributeName = attrDecl.getAttrName();
-		List values = new ArrayList(1);
-		String impliedValue = helper.getImpliedValue();
-		if (impliedValue != null)
-			values.add(impliedValue);
-		boolean checkIfCurrentValueIsIncluded = (fNode.getAttributes() != null && fNode.getAttributes().getNamedItem(attributeName) != null && fNode.getAttributes().getNamedItem(attributeName).getNodeValue() != null);
-		if (checkIfCurrentValueIsIncluded) {
-			String currentValue = null;
-			currentValue = fNode.getAttributes().getNamedItem(attributeName).getNodeValue();
-			if (!currentValue.equals(impliedValue))
-				values.add(currentValue);
-		}
-		String[] validStrings = new String[values.size()];
-		validStrings = (String[]) values.toArray(validStrings);
-		return validStrings;
-	}
-
-	private String[] _getValidStrings(CMAttributeDeclaration attrDecl, CMDataType valuesHelper) {
-		String attributeName = attrDecl.getAttrName();
-		List values = new ArrayList(1);
-		boolean currentValueKnown = false;
-		boolean checkIfCurrentValueIsKnown = (fNode.getAttributes() != null && fNode.getAttributes().getNamedItem(attributeName) != null && fNode.getAttributes().getNamedItem(attributeName).getNodeValue() != null);
-		String currentValue = null;
-		if (checkIfCurrentValueIsKnown)
-			currentValue = fNode.getAttributes().getNamedItem(attributeName).getNodeValue();
-
-		if (valuesHelper.getImpliedValueKind() == CMDataType.IMPLIED_VALUE_FIXED && valuesHelper.getImpliedValue() != null) {
-			// FIXED value
-			currentValueKnown = currentValue != null && valuesHelper.getImpliedValue().equals(currentValue);
-			values.add(valuesHelper.getImpliedValue());
-		}
-		else {
-			// ENUMERATED values
-			String[] valueStrings = null;
-			// valueStrings = valuesHelper.getEnumeratedValues();
-			ModelQuery modelQuery = ModelQueryUtil.getModelQuery(fNode.getOwnerDocument());
-			if (modelQuery != null && fNode.getNodeType() == Node.ELEMENT_NODE) {
-				valueStrings = modelQuery.getPossibleDataTypeValues((Element) fNode, attrDecl);
-			}
-			else {
-				valueStrings = attrDecl.getAttrType().getEnumeratedValues();
-			}
-			if (valueStrings != null) {
-				for (int i = 0; i < valueStrings.length; i++) {
-					if (checkIfCurrentValueIsKnown && valueStrings[i].equals(currentValue))
-						currentValueKnown = true;
-					values.add(valueStrings[i]);
-				}
-			}
-		}
-		if (valuesHelper.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_NONE && valuesHelper.getImpliedValue() != null) {
-			if (!values.contains(valuesHelper.getImpliedValue()))
-				values.add(valuesHelper.getImpliedValue());
-		}
-
-		if (checkIfCurrentValueIsKnown && !currentValueKnown && currentValue != null && currentValue.length() > 0)
-			values.add(currentValue);
-		String[] validStrings = new String[values.size()];
-		validStrings = (String[]) values.toArray(validStrings);
-		return validStrings;
-	}
-
-	private IPropertyDescriptor createDefaultPropertyDescriptor(String attributeName) {
-		return createDefaultPropertyDescriptor(attributeName, false);
-	}
-
-	private IPropertyDescriptor createDefaultPropertyDescriptor(String attributeName, boolean hideOnFilter) {
-		// The descriptor class used here is also used in
-		// updatePropertyDescriptors()
-		TextPropertyDescriptor descriptor = new TextPropertyDescriptor(attributeName, attributeName);
-		descriptor.setCategory(getCategory(null));
-		descriptor.setDescription(attributeName);
-		if (hideOnFilter && fSetExpertFilter)
-			descriptor.setFilterFlags(new String[]{IPropertySheetEntry.FILTER_ID_EXPERT});
-		return descriptor;
-	}
-
-	/**
-	 * Creates a property descriptor for an attribute with ENUMERATED values -
-	 * if the value does not exist, an editable combo box is returned - if the
-	 * value exists but is not one in the enumerated list of value, a combo
-	 * box featuring the current and correct values is returned - if the value
-	 * exists and it is a valid value, a combo box featuring the correct
-	 * values with the current one visible is returned
-	 */
-	private IPropertyDescriptor createEnumeratedPropertyDescriptor(CMAttributeDeclaration attrDecl, CMDataType valuesHelper) {
-		// the displayName MUST be set
-		EnumeratedStringPropertyDescriptor descriptor = new EnumeratedStringPropertyDescriptor(attrDecl.getAttrName(), attrDecl.getAttrName(), _getValidStrings(attrDecl, valuesHelper));
-		descriptor.setCategory(getCategory(attrDecl));
-		descriptor.setDescription(attrDecl.getAttrName());
-		if (attrDecl.getUsage() != CMAttributeDeclaration.REQUIRED && fSetExpertFilter)
-			descriptor.setFilterFlags(new String[]{IPropertySheetEntry.FILTER_ID_EXPERT});
-		return descriptor;
-	}
-
-	/**
-	 * Creates a property descriptor for an attribute with a FIXED value - if
-	 * the value does not exist, an editable combo box is returned - if the
-	 * value exists but is not the fixed/default value, a combo box featuring
-	 * the current and correct value is returned - if the value exists and it
-	 * is the fixed/default value, no cell editor is provided "locking" the
-	 * value in
-	 */
-	private IPropertyDescriptor createFixedPropertyDescriptor(CMAttributeDeclaration attrDecl, CMDataType helper) {
-		// the displayName MUST be set
-		EnumeratedStringPropertyDescriptor descriptor = new EnumeratedStringPropertyDescriptor(attrDecl.getNodeName(), attrDecl.getNodeName(), _getValidFixedStrings(attrDecl, helper));
-		descriptor.setCategory(getCategory(attrDecl));
-		descriptor.setDescription(attrDecl.getAttrName());
-		return descriptor;
-	}
-
-	protected IPropertyDescriptor createPropertyDescriptor(CMAttributeDeclaration attrDecl) {
-		IPropertyDescriptor descriptor = null;
-		CMDataType attrType = attrDecl.getAttrType();
-
-		if (attrType != null) {
-			// handle declarations that provide FIXED/ENUMERATED values
-			if (attrType.getEnumeratedValues() != null && attrType.getEnumeratedValues().length > 0) {
-				descriptor = createEnumeratedPropertyDescriptor(attrDecl, attrType);
-			}
-			else if ((attrDecl.getUsage() == CMAttributeDeclaration.FIXED || attrType.getImpliedValueKind() == CMDataType.IMPLIED_VALUE_FIXED) && attrType.getImpliedValue() != null) {
-				descriptor = createFixedPropertyDescriptor(attrDecl, attrType);
-			}
-			else {
-				// plain text
-				descriptor = createTextPropertyDescriptor(attrDecl);
-			}
-		}
-		else {
-			// no extra information given
-			descriptor = createTextPropertyDescriptor(attrDecl);
-		}
-		return descriptor;
-	}
-
-	/**
-	 * Returns the current collection of property descriptors.
-	 * 
-	 * @return all valid descriptors.
-	 */
-	private IPropertyDescriptor[] createPropertyDescriptors() {
-		CMNamedNodeMap attrMap = null;
-		CMElementDeclaration ed = getDeclaration();
-		if (ed != null) {
-			attrMap = ed.getAttributes();
-		}
-
-		List descriptorList = new ArrayList();
-		List names = new ArrayList();
-		IPropertyDescriptor descriptor;
-
-		CMAttributeDeclaration attrDecl = null;
-
-		// add descriptors for existing attributes
-		NamedNodeMap attributes = fNode.getAttributes();
-		if (attributes != null) {
-			for (int i = 0; i < attributes.getLength(); i++) {
-				Attr attr = (Attr) attributes.item(i);
-				// if metainfo is present for this attribute, use the
-				// CMAttributeDeclaration to derive a descriptor
-				if (attrMap != null) {
-					String attrName = attr.getName();
-					if (fCaseSensitive)
-						attrDecl = (CMAttributeDeclaration) attrMap.getNamedItem(attrName);
-					else {
-						attrDecl = null;
-						for (int j = 0; j < attrMap.getLength(); j++) {
-							if (!fCaseSensitive && attrMap.item(j).getNodeName().equalsIgnoreCase(attrName)) {
-								attrDecl = (CMAttributeDeclaration) attrMap.item(j);
-								break;
-							}
-						}
-					}
-				}
-				// be consistent: if there's metainfo, use *that* as the
-				// descriptor ID
-				if (attrDecl != null) {
-					descriptor = createPropertyDescriptor(attrDecl);
-					if (descriptor != null)
-						names.add(attrDecl.getNodeName());
-				}
-				else {
-					descriptor = createDefaultPropertyDescriptor(attr.getName());
-					if (descriptor != null)
-						names.add(attr.getName());
-				}
-				if (descriptor != null)
-					descriptorList.add(descriptor);
-			}
-		}
-
-		// add descriptors from the metainfo that are not yet listed
-		if (attrMap != null) {
-			for (int i = 0; i < attrMap.getLength(); i++) {
-				attrDecl = (CMAttributeDeclaration) attrMap.item(i);
-				if (!names.contains(attrDecl.getAttrName())) {
-					IPropertyDescriptor holdDescriptor = createPropertyDescriptor(attrDecl);
-					if (holdDescriptor != null) {
-						descriptorList.add(holdDescriptor);
-					}
-				}
-			}
-		}
-
-		IPropertyDescriptor[] descriptors = new IPropertyDescriptor[descriptorList.size()];
-		for (int i = 0; i < descriptors.length; i++)
-			descriptors[i] = (IPropertyDescriptor) descriptorList.get(i);
-		return descriptors;
-	}
-
-	private IPropertyDescriptor createTextPropertyDescriptor(CMAttributeDeclaration attrDecl) {
-		TextPropertyDescriptor descriptor = new TextPropertyDescriptor(attrDecl.getAttrName(), attrDecl.getAttrName());
-		descriptor.setCategory(getCategory(attrDecl));
-		descriptor.setDescription(attrDecl.getAttrName());
-		if (attrDecl.getUsage() != CMAttributeDeclaration.REQUIRED && fSetExpertFilter)
-			descriptor.setFilterFlags(new String[]{IPropertySheetEntry.FILTER_ID_EXPERT});
-		return descriptor;
-	}
-
-	private String getCategory(CMAttributeDeclaration attrDecl) {
-		if (attrDecl != null) {
-			if (attrDecl.supports("category")) { //$NON-NLS-1$
-				return (String) attrDecl.getProperty("category"); //$NON-NLS-1$
-			}
-			if (fShouldDeriveCategories && attrDecl.getAttrType() != null && attrDecl.getAttrType().getNodeName() != null && attrDecl.getAttrType().getNodeName().length() > 0) {
-				return attrDecl.getAttrType().getDataTypeName();
-			}
-		}
-		return CATEGORY_ATTRIBUTES;
-	}
-
-	private CMElementDeclaration getDeclaration() {
-		if (fNode == null || fNode.getNodeType() != Node.ELEMENT_NODE)
-			return null;
-		ModelQuery modelQuery = ModelQueryUtil.getModelQuery(fNode.getOwnerDocument());
-		if (modelQuery != null) {
-			return modelQuery.getCMElementDeclaration((Element) fNode);
-		}
-		return null;
-	}
-
-	private Display getDisplay() {
-
-		return PlatformUI.getWorkbench().getDisplay();
-	}
-
-	/**
-	 * Returns a value for this Node that can be editted in a property sheet.
-	 * 
-	 * @return a value that can be editted
-	 */
-	public Object getEditableValue() {
-		return null;
-	}
-
-	/**
-	 * Returns the current collection of property descriptors.
-	 * 
-	 * @return all valid descriptors.
-	 */
-	public final IPropertyDescriptor[] getPropertyDescriptors() {
-		if (fDescriptors == null || fDescriptors.length == 0) {
-			fDescriptors = createPropertyDescriptors();
-		}
-		else {
-			updatePropertyDescriptors();
-		}
-		return fDescriptors;
-	}
-
-	/**
-	 * Returns the current value for the named property.
-	 * 
-	 */
-	public Object getPropertyValue(Object nameObject) {
-		String name = nameObject.toString();
-		String returnedValue = null;
-		NamedNodeMap attrMap = fNode.getAttributes();
-		if (attrMap != null) {
-			Node attribute = attrMap.getNamedItem(name);
-			if (attribute != null) {
-				if (attribute instanceof IDOMNode)
-					returnedValue = ((IDOMNode) attribute).getValueSource();
-				else
-					returnedValue = attribute.getNodeValue();
-			}
-		}
-		if (returnedValue == null)
-			returnedValue = ""; //$NON-NLS-1$
-		return returnedValue;
-	}
-
-	private String[] getValidValues(CMAttributeDeclaration attrDecl) {
-		if (attrDecl == null)
-			return new String[0];
-
-		String[] validValues = null;
-		CMDataType attrType = attrDecl.getAttrType();
-		if (attrType != null) {
-			validValues = _getValidStrings(attrDecl, attrType);
-			if (fSortEnumeratedValues)
-				Arrays.sort(validValues);
-		}
-		if (validValues == null)
-			validValues = new String[0];
-		return validValues;
-	}
-
-	public boolean isPropertyRemovable(Object id) {
-		return true;
-	}
-
-	public boolean isPropertyResettable(Object id) {
-		boolean resettable = false;
-		String property = id.toString();
-		CMNamedNodeMap attrDecls = null;
-
-		CMElementDeclaration ed = getDeclaration();
-		if (ed != null) {
-			attrDecls = ed.getAttributes();
-		}
-
-		if (attrDecls != null) {
-			CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) attrDecls.getNamedItem(property);
-			if (attrDecl != null) {
-				if (attrDecl.getAttrType() != null) {
-					CMDataType helper = attrDecl.getAttrType();
-					if (helper.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_NONE && helper.getImpliedValue() != null) {
-						resettable = true;
-					}
-				}
-			}
-		}
-		return resettable;
-	}
-
-	/**
-	 * Returns whether the property value has changed from the default.
-	 * 
-	 * @return <code>true</code> if the value of the specified property has
-	 *         changed from its original default value; <code>false</code>
-	 *         otherwise.
-	 */
-	public boolean isPropertySet(Object propertyObject) {
-		String property = propertyObject.toString();
-
-		NamedNodeMap attrMap = fNode.getAttributes();
-		if (attrMap != null)
-			return attrMap.getNamedItem(property) != null;
-		return false;
-	}
-
-	/**
-	 * Remove the given attribute from the Node
-	 * 
-	 * @param propertyObject
-	 */
-	public void removeProperty(Object propertyObject) {
-		NamedNodeMap attrMap = fNode.getAttributes();
-		if (attrMap != null) {
-			Node attribute = attrMap.getNamedItem(propertyObject.toString());
-			if (attribute != null) {
-				try {
-					attrMap.removeNamedItem(propertyObject.toString());
-				}
-				catch (DOMException e) {
-					if (e.code != DOMException.INVALID_MODIFICATION_ERR) {
-						Logger.logException(e);
-					}
-				}
-			}
-		}
-	}
-
-	/**
-	 * Resets the specified property's value to its default value.
-	 * 
-	 */
-	public void resetPropertyValue(Object propertyObject) {
-		String property = propertyObject.toString();
-		CMNamedNodeMap attrDecls = null;
-
-		CMElementDeclaration ed = getDeclaration();
-		if (ed != null) {
-			attrDecls = ed.getAttributes();
-		}
-
-		NamedNodeMap attrMap = fNode.getAttributes();
-		if (attrDecls != null) {
-			CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) attrDecls.getNamedItem(property);
-			String defValue = null;
-			if (attrDecl != null) {
-				if (attrDecl.getAttrType() != null) {
-					CMDataType helper = attrDecl.getAttrType();
-					if (helper.getImpliedValueKind() != CMDataType.IMPLIED_VALUE_NONE && helper.getImpliedValue() != null)
-						defValue = helper.getImpliedValue();
-				}
-			}
-			if (defValue != null && defValue.length() > 0) {
-				((Attr) attrMap.getNamedItem(property)).setValue(defValue);
-			}
-			else {
-				attrMap.removeNamedItem(property);
-			}
-		}
-		else {
-			attrMap.removeNamedItem(property);
-		}
-	}
-
-	/**
-	 * Sets the named property to the given value.
-	 * 
-	 */
-	public void setPropertyValue(Object nameObject, Object value) {
-		// Avoid cycling - can happen if a closing cell editor causes a
-		// refresh
-		// on the PropertySheet page and the setInput again asks the editor to
-		// close; besides, why apply the same value twice?
-		if (!fValuesBeingSet.isEmpty() && fValuesBeingSet.peek() == nameObject)
-			return;
-		fValuesBeingSet.push(nameObject);
-		String name = nameObject.toString();
-		String valueString = null;
-		if (value != null)
-			valueString = value.toString();
-		NamedNodeMap attrMap = fNode.getAttributes();
-		try {
-			if (attrMap != null) {
-				Attr attr = (Attr) attrMap.getNamedItem(name);
-				if (attr != null) {
-					// EXISTING VALUE
-					// potential out of control loop if updating the value
-					// triggers a viewer update, forcing the
-					// active cell editor to save its value and causing the
-					// loop to continue
-					if (attr.getValue() == null || !attr.getValue().equals(valueString)) {
-						if (attr instanceof IDOMNode)
-							((IDOMNode) attr).setValueSource(valueString);
-						else
-							attr.setValue(valueString);
-					}
-				}
-				else {
-					// NEW(?) value
-					if (value != null) { // never create an empty attribute
-						Attr newAttr = fNode.getOwnerDocument().createAttribute(name);
-						if (newAttr instanceof IDOMNode)
-							((IDOMNode) newAttr).setValueSource(valueString);
-						else
-							newAttr.setValue(valueString);
-						attrMap.setNamedItem(newAttr);
-					}
-				}
-			}
-			else {
-				if (fNode instanceof Element) {
-					((Element) fNode).setAttribute(name, valueString);
-				}
-			}
-		}
-		catch (DOMException e) {
-			Display d = getDisplay();
-			if (d != null)
-				d.beep();
-		}
-		fValuesBeingSet.pop();
-	}
-
-	protected void updatePropertyDescriptors() {
-		if (fDescriptors == null || fDescriptors.length == 0)
-			// Nothing to update
-			return;
-
-		// List of all names encountered in the tag and defined by the element
-		List declaredNames = new ArrayList();
-		// New descriptor list that will become fDescriptors after all
-		// processing is done
-		List descriptors = new ArrayList();
-		// Names of the descriptors in the above List
-		List descriptorNames = new ArrayList();
-
-		// Update any descriptors derived from the metainfo
-		CMElementDeclaration ed = getDeclaration();
-		CMNamedNodeMap attrMap = null;
-		if (ed != null) {
-			attrMap = ed.getAttributes();
-		}
-		// Update exiting descriptors; not added to the final list here
-		if (attrMap != null) {
-			// Update existing descriptor types based on metainfo
-			CMAttributeDeclaration attrDecl = null;
-			for (int i = 0; i < attrMap.getLength(); i++) {
-				attrDecl = (CMAttributeDeclaration) attrMap.item(i);
-				String attrName = attrDecl.getAttrName();
-				if (!declaredNames.contains(attrName)) {
-					declaredNames.add(attrName);
-				}
-				for (int j = 0; j < fDescriptors.length; j++) {
-					boolean sameName = (fCaseSensitive && fDescriptors[j].getId().equals(attrDecl.getNodeName())) || (!fCaseSensitive && attrDecl.getNodeName().equals(fDescriptors[j].getId().toString()));
-					if (sameName) {
-						String[] validValues = getValidValues(attrDecl);
-						// Update the descriptor for this
-						// CMAttributeDeclaration (only enumerated values get
-						// updated for now)
-						if (fDescriptors[j] instanceof EnumeratedStringPropertyDescriptor) {
-							((EnumeratedStringPropertyDescriptor) fDescriptors[j]).updateValues(validValues);
-						}
-						// Replace with better descriptor
-						else if (validValues != null && validValues.length > 0) {
-							fDescriptors[j] = createPropertyDescriptor(attrDecl);
-						}
-					}
-				}
-			}
-		}
-		else {
-			// Update existing descriptors based on not having any metainfo
-			for (int j = 0; j < fDescriptors.length; j++) {
-				// Replace with basic descriptor
-				if (!(fDescriptors[j] instanceof TextPropertyDescriptor)) {
-					fDescriptors[j] = createDefaultPropertyDescriptor((String) fDescriptors[j].getId());
-				}
-			}
-		}
-
-		NamedNodeMap attributes = fNode.getAttributes();
-
-		// Remove descriptors for attributes that aren't present AND aren't
-		// known through metainfo,
-		// do this by only reusing existing descriptors for attributes that
-		// are present or declared
-		for (int i = 0; i < fDescriptors.length; i++) {
-			if (fDescriptors[i] != null) {
-				String descriptorName = fDescriptors[i].getId().toString();
-				if ((declaredNames.contains(descriptorName) || (attributes.getNamedItem(descriptorName) != null)) && !descriptorNames.contains(descriptorName)) {
-					descriptorNames.add(descriptorName);
-					descriptors.add(fDescriptors[i]);
-				}
-			}
-		}
-
-		// Add descriptors for declared attributes that don't already have one
-		if (attrMap != null) {
-			// Update existing descriptor types based on metainfo
-			CMAttributeDeclaration attrDecl = null;
-			for (int i = 0; i < attrMap.getLength(); i++) {
-				attrDecl = (CMAttributeDeclaration) attrMap.item(i);
-				String attrName = attrDecl.getAttrName();
-				if (fCaseSensitive) {
-					if (!descriptorNames.contains(attrName)) {
-						IPropertyDescriptor descriptor = createPropertyDescriptor(attrDecl);
-						if (descriptor != null) {
-							descriptorNames.add(attrName);
-							descriptors.add(descriptor);
-						}
-					}
-				}
-				else {
-					boolean exists = false;
-					for (int j = 0; j < descriptorNames.size(); j++)
-						exists = (descriptorNames.get(j).toString().equalsIgnoreCase(attrName)) || exists;
-					if (!exists) {
-						descriptorNames.add(attrName);
-						IPropertyDescriptor descriptor = createPropertyDescriptor(attrDecl);
-						if (descriptor != null) {
-							descriptorNames.add(attrName);
-							descriptors.add(descriptor);
-						}
-					}
-				}
-			}
-		}
-
-		// Add descriptors for existing attributes that don't already have one
-		if (attributes != null) {
-			for (int i = 0; i < attributes.getLength(); i++) {
-				Attr attr = (Attr) attributes.item(i);
-				String attrName = attr.getName();
-				if (fCaseSensitive) {
-					if (!descriptorNames.contains(attrName)) {
-						descriptorNames.add(attrName);
-						descriptors.add(createDefaultPropertyDescriptor(attrName));
-					}
-				}
-				else {
-					boolean exists = false;
-					for (int j = 0; j < descriptorNames.size(); j++)
-						exists = (descriptorNames.get(j).toString().equalsIgnoreCase(attrName)) || exists;
-					if (!exists) {
-						descriptorNames.add(attrName);
-						descriptors.add(createDefaultPropertyDescriptor(attrName));
-					}
-				}
-			}
-		}
-
-		// Update fDescriptors
-		IPropertyDescriptor[] newDescriptors = new IPropertyDescriptor[descriptors.size()];
-		for (int i = 0; i < newDescriptors.length; i++)
-			newDescriptors[i] = (IPropertyDescriptor) descriptors.get(i);
-		fDescriptors = newDescriptors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/provisional/IDOMSourceEditingTextTools.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/provisional/IDOMSourceEditingTextTools.java
deleted file mode 100644
index a018b08..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/provisional/IDOMSourceEditingTextTools.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.provisional;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.NodeLocation;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-public interface IDOMSourceEditingTextTools extends ISourceEditingTextTools {
-	/**
-	 * Returns a W3C DOM document
-	 * 
-	 * @return Document object or <code>null</code> if corresponding
-	 *         document does not exist
-	 */
-	Document getDOMDocument();
-
-	/**
-	 * Returns the W3C DOM Node at the given offset
-	 * 
-	 * @param offset
-	 *            the offset within the IDocument
-	 * @return a Node at that location, if one is present
-	 * 
-	 * @throws BadLocationException
-	 *             for invalid offsets
-	 */
-	Node getNode(int offset) throws BadLocationException;
-
-	/**
-	 * Returns a NodeLocation object describing the position information of
-	 * the Node's start and end tags.
-	 * 
-	 * @param node
-	 * @return The NodeLocation for this Node, null for unsupported Node
-	 *         instances.
-	 */
-	NodeLocation getNodeLocation(Node node);
-
-	/**
-	 * Returns the current server-side page language for the Document of the
-	 * given Node.
-	 * 
-	 * @return The server-side page language for this nodem null for Nodes
-	 *         within unsupported Documents.
-	 */
-	String getPageLanguage(Node node);
-
-	/**
-	 * Returns start offset of given Node.
-	 * 
-	 * @param node
-	 *            w3c <code>Node</code> object to check
-	 * @return the start offset or -1 for unsupported Nodes
-	 */
-	int getStartOffset(Node node);
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/provisional/XMLSourceEditingTextTools.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/provisional/XMLSourceEditingTextTools.java
deleted file mode 100644
index 099ccc9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/provisional/XMLSourceEditingTextTools.java
+++ /dev/null
@@ -1,176 +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.wst.xml.ui.internal.provisional;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.ISourceEditingTextTools;
-import org.eclipse.wst.sse.ui.internal.provisional.extensions.breakpoint.NodeLocation;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-
-/**
- * Implements ISourceEditingTextTools interface
- */
-public class XMLSourceEditingTextTools implements IDOMSourceEditingTextTools, INodeAdapter {
-
-	protected class NodeLocationImpl implements NodeLocation {
-		private IDOMNode node;
-
-		public NodeLocationImpl(IDOMNode xmlnode) {
-			super();
-			node = xmlnode;
-		}
-
-		public int getEndTagEndOffset() {
-			if (node.getEndStructuredDocumentRegion() != null)
-				return node.getEndStructuredDocumentRegion().getEndOffset();
-			return -1;
-		}
-
-		public int getEndTagStartOffset() {
-			if (node.getEndStructuredDocumentRegion() != null)
-				return node.getEndStructuredDocumentRegion().getStartOffset();
-			return -1;
-		}
-
-		public int getStartTagEndOffset() {
-			if (node.getStartStructuredDocumentRegion() != null)
-				return node.getStartStructuredDocumentRegion().getEndOffset();
-			return -1;
-		}
-
-		public int getStartTagStartOffset() {
-			if (node.getStartStructuredDocumentRegion() != null)
-				return node.getStartStructuredDocumentRegion().getStartOffset();
-			return -1;
-		}
-	}
-
-	StructuredTextEditor fTextEditor = null;
-
-	public int getCaretOffset() {
-		StructuredTextViewer stv = fTextEditor.getTextViewer();
-		if (stv != null && stv.getTextWidget() != null && !stv.getTextWidget().isDisposed()) {
-			return stv.widgetOffset2ModelOffset(stv.getTextWidget().getCaretOffset());
-		}
-		return 0;
-	}
-
-	public IDocument getDocument() {
-		return fTextEditor.getDocumentProvider().getDocument(fTextEditor.getEditorInput());
-	}
-
-	public Document getDOMDocument() {
-		return (Document) fTextEditor.getModel().getAdapter(Document.class);
-	}
-
-	/*
-	 * If similar function is needed, composite it around the text editor's
-	 * instance. Removed also because it returns an alread-released model
-	 * 
-	 * public Document getDOMDocument(IMarker marker) { if (marker == null)
-	 * return null;
-	 * 
-	 * IResource res = marker.getResource(); if (res == null || !(res
-	 * instanceof IFile)) return null;
-	 * 
-	 * IModelManager mm = StructuredModelManager.getModelManager();
-	 * IStructuredModel model = null; try { model =
-	 * mm.getExistingModelForRead((IFile) res); if (model == null || !(model
-	 * instanceof IDOMModel)) return null;
-	 * 
-	 * return ((IDOMModel) model).getDocument(); } finally { if (model !=
-	 * null) model.releaseFromRead(); } }
-	 */
-
-	public IEditorPart getEditorPart() {
-		return fTextEditor.getEditorPart();
-	}
-
-	public Node getNode(int offset) throws BadLocationException {
-		Node node = null;
-		if (0 <= offset && offset <= getDocument().getLength()) {
-			node = (Node) fTextEditor.getModel().getIndexedRegion(offset);
-		}
-		else {
-			throw new BadLocationException();
-		}
-		return node;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.extensions.SourceEditingTextTools#getNodeLocation(org.w3c.dom.Node)
-	 */
-	public NodeLocation getNodeLocation(Node node) {
-		if (node.getNodeType() == Node.ELEMENT_NODE && node instanceof IDOMNode)
-			return new NodeLocationImpl((IDOMNode) node);
-		return null;
-	}
-
-	public String getPageLanguage(Node node) {
-		return ""; //$NON-NLS-1$
-	}
-
-	public ITextSelection getSelection() {
-		return (ITextSelection) fTextEditor.getSelectionProvider().getSelection();
-	}
-
-	/**
-	 * IExtendedMarkupEditor method
-	 */
-	// public List getSelectedNodes() {
-	// ViewerSelectionManager vsm = getViewerSelectionManager();
-	// return (vsm != null) ? vsm.getSelectedNodes() : null;
-	// }
-	public int getStartOffset(Node node) {
-		if (node == null || !(node instanceof IDOMText))
-			return -1;
-
-		IStructuredDocumentRegion fnode = ((IDOMText) node).getFirstStructuredDocumentRegion();
-		return fnode.getStartOffset();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.core.INodeAdapter#isAdapterForType(java.lang.Object)
-	 */
-	public boolean isAdapterForType(Object type) {
-		return ISourceEditingTextTools.class.equals(type);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.core.core.INodeAdapter#notifyChanged(org.eclipse.wst.sse.core.core.INodeNotifier,
-	 *      int, java.lang.Object, java.lang.Object, java.lang.Object, int)
-	 */
-	public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-	}
-
-	public void setTextEditor(StructuredTextEditor editor) {
-		fTextEditor = editor;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/registry/AdapterFactoryProviderForXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/registry/AdapterFactoryProviderForXML.java
deleted file mode 100644
index 09b9df1..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/registry/AdapterFactoryProviderForXML.java
+++ /dev/null
@@ -1,88 +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.wst.xml.ui.internal.registry;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.wst.sse.core.internal.ltk.modelhandler.IDocumentTypeHandler;
-import org.eclipse.wst.sse.core.internal.model.FactoryRegistry;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapterFactory;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.util.Assert;
-import org.eclipse.wst.sse.ui.internal.contentoutline.IJFaceNodeAdapter;
-import org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelhandler.ModelHandlerForXML;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.ui.internal.DOMObserver;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeAdapterFactory;
-import org.eclipse.wst.xml.ui.internal.preferences.XMLUIPreferenceNames;
-
-/**
- *  
- */
-public class AdapterFactoryProviderForXML implements AdapterFactoryProvider {
-
-	/*
-	 * @see AdapterFactoryProvider#addAdapterFactories(IStructuredModel)
-	 */
-	public void addAdapterFactories(IStructuredModel structuredModel) {
-
-		// add the normal content based factories to model's registry
-		addContentBasedFactories(structuredModel);
-	}
-
-	protected void addContentBasedFactories(IStructuredModel structuredModel) {
-		FactoryRegistry factoryRegistry = structuredModel.getFactoryRegistry();
-		Assert.isNotNull(factoryRegistry, "Program Error: client caller must ensure model has factory registry"); //$NON-NLS-1$
-		INodeAdapterFactory factory = null;
-
-		factory = factoryRegistry.getFactoryFor(IJFaceNodeAdapter.class);
-		if (factory == null) {
-			factory = new JFaceNodeAdapterFactory();
-			factoryRegistry.addFactory(factory);
-		}
-
-		// cs... added for inferred grammar support
-		//
-		if (structuredModel != null) {
-			ModelQuery modelQuery = ModelQueryUtil.getModelQuery(structuredModel);
-			if (modelQuery != null) {
-				CMDocumentManager documentManager = modelQuery.getCMDocumentManager();
-				if (documentManager != null) {
-					IPreferenceStore store = XMLUIPlugin.getDefault().getPreferenceStore();
-					boolean useInferredGrammar = (store != null) ? store.getBoolean(XMLUIPreferenceNames.USE_INFERRED_GRAMMAR) : true;
-
-					documentManager.setPropertyEnabled(CMDocumentManager.PROPERTY_ASYNC_LOAD, true);
-					documentManager.setPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD, false);
-					documentManager.setPropertyEnabled(CMDocumentManager.PROPERTY_USE_CACHED_RESOLVED_URI, true);
-					DOMObserver domObserver = new DOMObserver(structuredModel);
-					domObserver.setGrammarInferenceEnabled(useInferredGrammar);
-					domObserver.init();
-				}
-			}
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.wst.sse.ui.internal.provisional.registry.AdapterFactoryProvider#isFor(org.eclipse.wst.sse.core.internal.ltk.modelhandler.IDocumentTypeHandler)
-	 */
-	public boolean isFor(IDocumentTypeHandler contentTypeDescription) {
-		return (contentTypeDescription instanceof ModelHandlerForXML);
-	}
-
-	public void reinitializeFactories(IStructuredModel structuredModel) {
-		// nothing to do, since no embedded type
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/search/XMLFindOccurrencesActionDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/search/XMLFindOccurrencesActionDelegate.java
deleted file mode 100644
index 84f2ec9..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/search/XMLFindOccurrencesActionDelegate.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.search;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesActionDelegate;
-
-/**
- * Sets up FindOccurrencesActionDelegate for xml find occurrences processors
- */
-public class XMLFindOccurrencesActionDelegate extends FindOccurrencesActionDelegate {
-	private List fProcessors;
-
-	protected List getProcessors() {
-		if (fProcessors == null) {
-			fProcessors = new ArrayList();
-			XMLFindOccurrencesProcessor htmlProcessor = new XMLFindOccurrencesProcessor();
-			fProcessors.add(htmlProcessor);
-		}
-		return fProcessors;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/search/XMLFindOccurrencesProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/search/XMLFindOccurrencesProcessor.java
deleted file mode 100644
index be90c39..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/search/XMLFindOccurrencesProcessor.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.search;
-
-import org.eclipse.wst.sse.ui.internal.search.FindOccurrencesProcessor;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.core.text.IXMLPartitions;
-
-/**
- * Configures a FindOccurrencesProcessor with XML partitions and regions
- */
-public class XMLFindOccurrencesProcessor extends FindOccurrencesProcessor {
-
-	protected String[] getPartitionTypes() {
-		return new String[]{IXMLPartitions.XML_DEFAULT};
-	}
-
-	protected String[] getRegionTypes() {
-		return new String[]{DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_NAME, DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE};
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectEnclosingXMLActionDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectEnclosingXMLActionDelegate.java
deleted file mode 100644
index 4efac6b..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectEnclosingXMLActionDelegate.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.selection;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.Region;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.internal.selection.StructuredSelectActionDelegate;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.w3c.dom.Node;
-
-public class StructuredSelectEnclosingXMLActionDelegate extends StructuredSelectActionDelegate {
-
-	protected IndexedRegion getCursorIndexedRegion(IDocument document, ITextSelection textSelection) {
-		IndexedRegion indexedRegion = null;
-		
-		indexedRegion = getIndexedRegion(document, textSelection.getOffset());
-
-		return indexedRegion;
-	}
-
-	protected Region getNewSelectionRegion(IndexedRegion indexedRegion, ITextSelection textSelection) {
-		Region newRegion = null;
-		if (indexedRegion instanceof Node) {
-			Node cursorNode = (Node) indexedRegion;
-
-			// use parent node for empty text node
-			if (cursorNode.getNodeType() == Node.TEXT_NODE && cursorNode.getNodeValue().trim().length() == 0) {
-				cursorNode = cursorNode.getParentNode();
-
-				if (cursorNode instanceof IndexedRegion)
-					indexedRegion = (IndexedRegion) cursorNode;
-			}
-
-			Region cursorNodeRegion = new Region(indexedRegion.getStartOffset(), indexedRegion.getEndOffset() - indexedRegion.getStartOffset());
-
-			if (cursorNodeRegion.getOffset() >= textSelection.getOffset() && cursorNodeRegion.getOffset() <= textSelection.getOffset() + textSelection.getLength() && cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() >= textSelection.getOffset() && cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() <= textSelection.getOffset() + textSelection.getLength()) {
-				Node newNode = cursorNode.getParentNode();
-
-				if (newNode instanceof IndexedRegion) {
-					IndexedRegion newIndexedRegion = (IndexedRegion) newNode;
-					newRegion = new Region(newIndexedRegion.getStartOffset(), newIndexedRegion.getEndOffset() - newIndexedRegion.getStartOffset());
-				}
-			}
-			else
-				newRegion = cursorNodeRegion;
-		}
-		return newRegion;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(XMLUIMessages.StructureSelectEnclosing_label);
-			action.setToolTipText(XMLUIMessages.StructureSelectEnclosing_tooltip);
-			action.setDescription(XMLUIMessages.StructureSelectEnclosing_description);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectNextXMLActionDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectNextXMLActionDelegate.java
deleted file mode 100644
index 25b385d..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectNextXMLActionDelegate.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.selection;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.internal.selection.StructuredSelectActionDelegate;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.w3c.dom.Node;
-
-public class StructuredSelectNextXMLActionDelegate extends StructuredSelectActionDelegate {
-
-	protected IndexedRegion getCursorIndexedRegion(IDocument document, ITextSelection textSelection) {
-		int offset = textSelection.getOffset() + textSelection.getLength() - 1;
-		if (offset < 0)
-			offset = 0;
-
-		IndexedRegion indexedRegion = null;
-
-		indexedRegion = getIndexedRegion(document, offset);
-
-		return indexedRegion;
-	}
-
-	protected Region getNewSelectionRegion(IndexedRegion indexedRegion, ITextSelection textSelection) {
-		Region newRegion = null;
-		if (indexedRegion instanceof Node) {
-			Node cursorNode = (Node) indexedRegion;
-
-			// use parent node for empty text node
-			if (cursorNode.getNodeType() == Node.TEXT_NODE && cursorNode.getNodeValue().trim().length() == 0) {
-				cursorNode = cursorNode.getParentNode();
-
-				if (cursorNode instanceof IndexedRegion)
-					indexedRegion = (IndexedRegion) cursorNode;
-			}
-
-			Region cursorNodeRegion = new Region(indexedRegion.getStartOffset(), indexedRegion.getEndOffset() - indexedRegion.getStartOffset());
-			int currentOffset = textSelection.getOffset();
-			int currentEndOffset = currentOffset + textSelection.getLength();
-			if (cursorNodeRegion.getOffset() >= currentOffset && cursorNodeRegion.getOffset() <= currentEndOffset && cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() >= currentOffset && cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() <= currentEndOffset) {
-				newRegion = getNewSelectionRegion2(indexedRegion, textSelection);
-			}
-			else
-				newRegion = cursorNodeRegion;
-		}
-		return newRegion;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(XMLUIMessages.StructureSelectNext_label);
-			action.setToolTipText(XMLUIMessages.StructureSelectNext_tooltip);
-			action.setDescription(XMLUIMessages.StructureSelectNext_description);
-		}
-	}
-
-	/**
-	 * This method was separated out from getNewSelectionRegion2 because the
-	 * code in here is allowed to be called recursively.
-	 * 
-	 * @param indexedRegion
-	 * @param textSelection
-	 * @return new region to select or null if none
-	 */
-	private Region getNewSelectionRegion2(IndexedRegion indexedRegion, ITextSelection textSelection) {
-		Region newRegion = null;
-		if (indexedRegion instanceof Node) {
-			Node node = (Node) indexedRegion;
-			Node newNode = node.getNextSibling();
-			if (newNode == null) {
-				newNode = node.getParentNode();
-
-				if (newNode instanceof IndexedRegion) {
-					IndexedRegion newIndexedRegion = (IndexedRegion) newNode;
-					newRegion = new Region(newIndexedRegion.getStartOffset(), newIndexedRegion.getEndOffset() - newIndexedRegion.getStartOffset());
-				}
-			}
-			else {
-				if (newNode instanceof IndexedRegion) {
-					IndexedRegion newIndexedRegion = (IndexedRegion) newNode;
-					newRegion = new Region(textSelection.getOffset(), newIndexedRegion.getEndOffset() - textSelection.getOffset());
-
-					if (newNode.getNodeType() == Node.TEXT_NODE)
-						newRegion = getNewSelectionRegion2(newIndexedRegion, new TextSelection(newRegion.getOffset(), newRegion.getLength()));
-				}
-			}
-		}
-		return newRegion;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectPreviousXMLActionDelegate.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectPreviousXMLActionDelegate.java
deleted file mode 100644
index 52b2062..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/selection/StructuredSelectPreviousXMLActionDelegate.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.selection;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.TextSelection;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.internal.selection.StructuredSelectActionDelegate;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.w3c.dom.Node;
-
-public class StructuredSelectPreviousXMLActionDelegate extends StructuredSelectActionDelegate {
-
-	protected IndexedRegion getCursorIndexedRegion(IDocument document, ITextSelection textSelection) {
-		IndexedRegion indexedRegion = null;
-
-		indexedRegion = getIndexedRegion(document, textSelection.getOffset());
-
-		return indexedRegion;
-	}
-
-	protected Region getNewSelectionRegion(IndexedRegion indexedRegion, ITextSelection textSelection) {
-		Region newRegion = null;
-		if (indexedRegion instanceof Node) {
-			Node cursorNode = (Node) indexedRegion;
-
-			// use parent node for empty text node
-			if (cursorNode.getNodeType() == Node.TEXT_NODE && cursorNode.getNodeValue().trim().length() == 0) {
-				cursorNode = cursorNode.getParentNode();
-
-				if (cursorNode instanceof IndexedRegion)
-					indexedRegion = (IndexedRegion) cursorNode;
-			}
-
-			Region cursorNodeRegion = new Region(indexedRegion.getStartOffset(), indexedRegion.getEndOffset() - indexedRegion.getStartOffset());
-
-			if (cursorNodeRegion.getOffset() >= textSelection.getOffset() && cursorNodeRegion.getOffset() <= textSelection.getOffset() + textSelection.getLength() && cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() >= textSelection.getOffset() && cursorNodeRegion.getOffset() + cursorNodeRegion.getLength() <= textSelection.getOffset() + textSelection.getLength()) {
-				Node newNode = cursorNode.getPreviousSibling();
-				if (newNode == null) {
-					newNode = cursorNode.getParentNode();
-
-					if (newNode instanceof IndexedRegion) {
-						IndexedRegion newIndexedRegion = (IndexedRegion) newNode;
-						newRegion = new Region(newIndexedRegion.getStartOffset(), newIndexedRegion.getEndOffset() - newIndexedRegion.getStartOffset());
-					}
-				}
-				else {
-					if (newNode instanceof IndexedRegion) {
-						IndexedRegion newIndexedRegion = (IndexedRegion) newNode;
-						newRegion = new Region(newIndexedRegion.getStartOffset(), textSelection.getOffset() + textSelection.getLength() - newIndexedRegion.getStartOffset());
-
-						if (newNode.getNodeType() == Node.TEXT_NODE)
-							newRegion = getNewSelectionRegion(newIndexedRegion, new TextSelection(newRegion.getOffset(), newRegion.getLength()));
-					}
-				}
-
-			}
-			else
-				newRegion = cursorNodeRegion;
-		}
-		return newRegion;
-	}
-
-	public void init(IAction action) {
-		if (action != null) {
-			action.setText(XMLUIMessages.StructureSelectPrevious_label);
-			action.setToolTipText(XMLUIMessages.StructureSelectPrevious_tooltip);
-			action.setDescription(XMLUIMessages.StructureSelectPrevious_description);
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/style/IStyleConstantsXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/style/IStyleConstantsXML.java
deleted file mode 100644
index c14086f..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/style/IStyleConstantsXML.java
+++ /dev/null
@@ -1,41 +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.wst.xml.ui.internal.style;
-
-/**
- * Contains the symbolic name of styles used by LineStyleProvider,
- * ColorManager, and any others who may be interested
- */
-public interface IStyleConstantsXML {
-	public static final String BACKGROUND = "background"; //$NON-NLS-1$
-	public static final String CDATA_BORDER = "cdataBorder";//$NON-NLS-1$
-	public static final String CDATA_TEXT = "cdataText";//$NON-NLS-1$
-	public static final String COMMENT_BORDER = "commentBorder";//$NON-NLS-1$
-	public static final String COMMENT_TEXT = "commentText";//$NON-NLS-1$
-	public static final String DECL_BORDER = "declBoder";//$NON-NLS-1$
-	public static final String DOCTYPE_EXTERNAL_ID = "doctypeExternalId";//$NON-NLS-1$
-	public static final String DOCTYPE_EXTERNAL_ID_PUBREF = "doctypeExternalPubref";//$NON-NLS-1$
-	public static final String DOCTYPE_EXTERNAL_ID_SYSREF = "doctypeExtrenalSysref";//$NON-NLS-1$
-	public static final String DOCTYPE_NAME = "doctypeName";//$NON-NLS-1$
-
-	public static final String FOREGROUND = "foreground"; //$NON-NLS-1$
-	public static final String PI_BORDER = "piBorder";//$NON-NLS-1$
-	public static final String PI_CONTENT = "piContent";//$NON-NLS-1$
-
-	public static final String TAG_ATTRIBUTE_EQUALS = "tagAttributeEquals"; //$NON-NLS-1$
-	public static final String TAG_ATTRIBUTE_NAME = "tagAttributeName";//$NON-NLS-1$
-	public static final String TAG_ATTRIBUTE_VALUE = "tagAttributeValue";//$NON-NLS-1$
-	public static final String TAG_BORDER = "tagBorder";//$NON-NLS-1$
-	public static final String TAG_NAME = "tagName";//$NON-NLS-1$
-	public static final String XML_CONTENT = "xmlContent";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/style/LineStyleProviderForXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/style/LineStyleProviderForXML.java
deleted file mode 100644
index a56a635..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/style/LineStyleProviderForXML.java
+++ /dev/null
@@ -1,170 +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.wst.xml.ui.internal.style;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.text.TextAttribute;
-import org.eclipse.jface.util.PropertyChangeEvent;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.ui.internal.provisional.style.AbstractLineStyleProvider;
-import org.eclipse.wst.sse.ui.internal.provisional.style.LineStyleProvider;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-public class LineStyleProviderForXML extends AbstractLineStyleProvider implements LineStyleProvider {
-	public LineStyleProviderForXML() {
-		super();
-	}
-
-	protected TextAttribute getAttributeFor(ITextRegion region) {
-		/**
-		 * a method to centralize all the "format rules" for regions
-		 * specifically associated for how to "open" the region.
-		 */
-		// not sure why this is coming through null, but just to catch it
-		if (region == null) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.CDATA_TEXT);
-		}
-		String type = region.getType();
-		if ((type == DOMRegionContext.XML_CONTENT) || (type == DOMRegionContext.XML_DOCTYPE_INTERNAL_SUBSET)) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.XML_CONTENT);
-		} else if ((type == DOMRegionContext.XML_TAG_OPEN) || (type == DOMRegionContext.XML_END_TAG_OPEN) || (type == DOMRegionContext.XML_TAG_CLOSE) || (type == DOMRegionContext.XML_EMPTY_TAG_CLOSE)) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_BORDER);
-		} else if ((type == DOMRegionContext.XML_CDATA_OPEN) || (type == DOMRegionContext.XML_CDATA_CLOSE)) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.CDATA_BORDER);
-		} else if (type == DOMRegionContext.XML_CDATA_TEXT) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.CDATA_TEXT);
-		} else if (type == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_ATTRIBUTE_NAME);
-		} else if (type == DOMRegionContext.XML_DOCTYPE_DECLARATION) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_NAME);
-		} else if (type == DOMRegionContext.XML_TAG_NAME) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_NAME);
-		} else if ((type == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-		} else if (type == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS);
-		} else if ((type == DOMRegionContext.XML_COMMENT_OPEN) || (type == DOMRegionContext.XML_COMMENT_CLOSE)) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.COMMENT_BORDER);
-		} else if (type == DOMRegionContext.XML_COMMENT_TEXT) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.COMMENT_TEXT);
-		} else if (type == DOMRegionContext.XML_DOCTYPE_NAME) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.DOCTYPE_NAME);
-		} else if (type == DOMRegionContext.XML_PI_CONTENT) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.PI_CONTENT);
-		} else if ((type == DOMRegionContext.XML_PI_OPEN) || (type == DOMRegionContext.XML_PI_CLOSE)) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.PI_BORDER);
-		} else if ((type == DOMRegionContext.XML_DECLARATION_OPEN) || (type == DOMRegionContext.XML_DECLARATION_CLOSE)) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.DECL_BORDER);
-		} else if (type == DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_SYSREF) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF);
-		} else if (type == DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_PUBREF) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF);
-		} else if (type == DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_PUBLIC || type == DOMRegionContext.XML_DOCTYPE_EXTERNAL_ID_SYSTEM) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID);
-		} else if (type == DOMRegionContext.UNDEFINED) {
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.CDATA_TEXT);
-		} else if (type == DOMRegionContext.WHITE_SPACE) {
-			// white space is normall not on its own ... but when it is, we'll
-			// treat as content
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.XML_CONTENT);
-		} else if ((type == DOMRegionContext.XML_CHAR_REFERENCE) || (type == DOMRegionContext.XML_ENTITY_REFERENCE) || (type == DOMRegionContext.XML_PE_REFERENCE)) {
-			// we may want to character and entity references to have it own
-			// color in future,
-			// but for now, we'll make attribute value
-			return (TextAttribute) getTextAttributes().get(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-		} else {
-			// default, return null to signal "not handled"
-			// in which case, other factories should be tried
-			return null;
-		}
-	}
-
-	protected IPreferenceStore getColorPreferences() {
-		return XMLUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	protected void handlePropertyChange(PropertyChangeEvent event) {
-		String styleKey = null;
-
-		if (event != null) {
-			String prefKey = event.getProperty();
-			// check if preference changed is a style preference
-			if (IStyleConstantsXML.TAG_NAME.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_NAME;
-			} else if (IStyleConstantsXML.TAG_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_BORDER;
-			} else if (IStyleConstantsXML.TAG_ATTRIBUTE_NAME.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_NAME;
-			} else if (IStyleConstantsXML.TAG_ATTRIBUTE_VALUE.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_VALUE;
-			} else if (IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS;
-			} else if (IStyleConstantsXML.COMMENT_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.COMMENT_BORDER;
-			} else if (IStyleConstantsXML.COMMENT_TEXT.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.COMMENT_TEXT;
-			} else if (IStyleConstantsXML.CDATA_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.CDATA_BORDER;
-			} else if (IStyleConstantsXML.CDATA_TEXT.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.CDATA_TEXT;
-			} else if (IStyleConstantsXML.DECL_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DECL_BORDER;
-			} else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID;
-			} else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF;
-			} else if (IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF;
-			} else if (IStyleConstantsXML.DOCTYPE_NAME.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.DOCTYPE_NAME;
-			} else if (IStyleConstantsXML.PI_CONTENT.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.PI_CONTENT;
-			} else if (IStyleConstantsXML.PI_BORDER.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.PI_BORDER;
-			} else if (IStyleConstantsXML.XML_CONTENT.equals(prefKey)) {
-				styleKey = IStyleConstantsXML.XML_CONTENT;
-			}
-		}
-
-		if (styleKey != null) {
-			// overwrite style preference with new value
-			addTextAttribute(styleKey);
-			super.handlePropertyChange(event);
-		}
-	}
-
-	/**
-	 * Loads text attributes into map. Make sure map is cleared before calling
-	 * this.
-	 */
-	protected void loadColors() {
-		addTextAttribute(IStyleConstantsXML.TAG_NAME);
-		addTextAttribute(IStyleConstantsXML.TAG_BORDER);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_NAME);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_VALUE);
-		addTextAttribute(IStyleConstantsXML.TAG_ATTRIBUTE_EQUALS);
-		addTextAttribute(IStyleConstantsXML.COMMENT_BORDER);
-		addTextAttribute(IStyleConstantsXML.COMMENT_TEXT);
-		addTextAttribute(IStyleConstantsXML.CDATA_BORDER);
-		addTextAttribute(IStyleConstantsXML.CDATA_TEXT);
-		addTextAttribute(IStyleConstantsXML.DECL_BORDER);
-		addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID);
-		addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_PUBREF);
-		addTextAttribute(IStyleConstantsXML.DOCTYPE_EXTERNAL_ID_SYSREF);
-		addTextAttribute(IStyleConstantsXML.DOCTYPE_NAME);
-		addTextAttribute(IStyleConstantsXML.PI_CONTENT);
-		addTextAttribute(IStyleConstantsXML.PI_BORDER);
-		addTextAttribute(IStyleConstantsXML.XML_CONTENT);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/MarkupTagInfoProvider.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/MarkupTagInfoProvider.java
deleted file mode 100644
index 5b553d8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/MarkupTagInfoProvider.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.taginfo;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocumentation;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDescriptionBuilder;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-/**
- * Provides basic tag information such as element/attribute name, data type,
- * and tag info/documentation for CMNodes. Uses HTML to enhance presentation.
- */
-public class MarkupTagInfoProvider {
-	protected final static String BOLD_END = "</b>"; //$NON-NLS-1$
-	protected final static String BOLD_START = "<b>"; //$NON-NLS-1$
-	protected final static String HEADING_END = "</h5>"; //$NON-NLS-1$
-	protected final static String HEADING_START = "<h5>"; //$NON-NLS-1$
-	protected final static String LIST_BEGIN = "<ul>"; //$NON-NLS-1$
-	protected final static String LIST_ELEMENT = "<li>"; //$NON-NLS-1$
-	protected final static String NEW_LINE = "<dl>"; //$NON-NLS-1$
-	protected final static String PARAGRAPH_END = "</p>"; //$NON-NLS-1$
-	protected final static String PARAGRAPH_START = "<p>"; //$NON-NLS-1$
-	protected final static String SPACE = " "; //$NON-NLS-1$
-
-	/**
-	 * Returns basic tag information for display given a CMNode
-	 *  
-	 * @return String
-	 */
-	public String getInfo(CMNode node) {
-		if (node == null)
-			return null;
-		StringBuffer sb = new StringBuffer();
-		// we assume that if there is tagInfo present, only display tagInfo
-		printTagInfo(sb, node);
-
-		// no tagInfo present, so try to display tag description
-		if (sb.length() == 0) {
-			printDescription(sb, node);
-		}
-
-		// no tag description present either, so display default info
-		if (sb.length() == 0) {
-			printDefaultInfo(node, sb);
-		}
-
-		return sb.toString();
-	}
-
-	/**
-	 * Adds dataType's data type information, including enumerated type values
-	 * to string buffer, sb
-	 * 
-	 */
-	protected void printDataTypeInfo(StringBuffer sb, CMDataType dataType) {
-		String dataTypeName = dataType.getNodeName();
-		if ((dataTypeName != null) && (dataTypeName.length() > 0)) {
-			sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Data_Type____4 + SPACE + BOLD_END);
-			sb.append(dataTypeName);
-			sb.append(PARAGRAPH_END);
-		}
-		String[] enumeratedValue = dataType.getEnumeratedValues();
-		if (enumeratedValue != null && enumeratedValue.length > 0) {
-			sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Enumerated_Values____5 + SPACE + BOLD_END);
-			sb.append(LIST_BEGIN);
-			for (int i = 0; i < enumeratedValue.length; i++) {
-				sb.append(LIST_ELEMENT + enumeratedValue[i]);
-			}
-			sb.append(PARAGRAPH_END);
-		}
-	}
-
-	/**
-	 * Adds the default info (element name, content model, data type) of
-	 * CMNode to the string buffer, sb
-	 * 
-	 */
-	protected void printDefaultInfo(CMNode node, StringBuffer sb) {
-		{
-
-			if (node.getNodeType() == CMNode.ELEMENT_DECLARATION) {
-				CMElementDeclaration ed = (CMElementDeclaration) node;
-				sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Element____1 + SPACE + BOLD_END);
-				sb.append(node.getNodeName());
-				sb.append(PARAGRAPH_END);
-				printDocumentation(sb, node);
-				if (ed.getContentType() == CMElementDeclaration.PCDATA) {
-					CMDataType dataType = ed.getDataType();
-					if (dataType != null) {
-						printDataTypeInfo(sb, dataType);
-					}
-				} else {
-					CMDescriptionBuilder builder = new CMDescriptionBuilder();
-					String description = builder.buildDescription(node);
-					if ((description != null) && (description.length() > 0)) {
-						sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Content_Model____2 + SPACE + BOLD_END);
-						sb.append(description + PARAGRAPH_END);
-					}
-				}
-			} else if (node.getNodeType() == CMNode.ATTRIBUTE_DECLARATION) {
-				CMAttributeDeclaration ad = (CMAttributeDeclaration) node;
-				sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Attribute____3 + SPACE + BOLD_END);
-				sb.append(node.getNodeName());
-				sb.append(PARAGRAPH_END);
-				printDocumentation(sb, node);
-				CMDataType dataType = ad.getAttrType();
-				if (dataType != null) {
-					printDataTypeInfo(sb, dataType);
-				}
-			} else if (node.getNodeType() == CMNode.DATA_TYPE) {
-				sb.append(PARAGRAPH_START + BOLD_START + XMLUIMessages.Data_Type____4 + SPACE + BOLD_END);
-				sb.append(node.getNodeName());
-				sb.append(PARAGRAPH_END);
-				printDocumentation(sb, node);
-			}
-		}
-	}
-
-	/**
-	 * Adds the description property of the CMNode to the string buffer, sb
-	 * 
-	 */
-	protected void printDescription(StringBuffer sb, CMNode node) {
-		String tagInfo = (String) node.getProperty("description"); //$NON-NLS-1$
-		if (tagInfo != null) {
-			sb.append(PARAGRAPH_START + tagInfo.trim() + PARAGRAPH_END);
-		}
-	}
-
-	/**
-	 * Adds the tag documentation property of the CMNode to the string buffer,
-	 * sb
-	 * 
-	 */
-	protected void printDocumentation(StringBuffer sb, CMNode node) {
-		CMNodeList nodeList = (CMNodeList) node.getProperty("documentation"); //$NON-NLS-1$
-		if ((nodeList != null) && (nodeList.getLength() > 0)) {
-			for (int i = 0; i < nodeList.getLength(); i++) {
-				CMDocumentation documentation = (CMDocumentation) nodeList.item(i);
-				String doc = documentation.getValue();
-				if (doc != null) {
-					sb.append(PARAGRAPH_START + doc.trim() + PARAGRAPH_END);
-				}
-			}
-			sb.append(NEW_LINE);
-		}
-	}
-
-	/**
-	 * Adds the tag info property of the CMNode to the string buffer, sb
-	 * 
-	 */
-	protected void printTagInfo(StringBuffer sb, CMNode node) {
-		String tagInfo = (String) node.getProperty("tagInfo"); //$NON-NLS-1$
-		if (tagInfo != null) {
-			sb.append(PARAGRAPH_START + tagInfo.trim() + PARAGRAPH_END);
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLInformationProvider.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLInformationProvider.java
deleted file mode 100644
index 3dfee20..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLInformationProvider.java
+++ /dev/null
@@ -1,66 +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.wst.xml.ui.internal.taginfo;
-
-
-
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.information.IInformationProvider;
-import org.eclipse.jface.text.information.IInformationProviderExtension;
-import org.eclipse.wst.sse.ui.internal.SSEUIPlugin;
-
-/**
- * Provides context information for XML tags (Shows tooltip description)
- * 
- * @author amywu
- */
-public class XMLInformationProvider implements IInformationProvider, IInformationProviderExtension {
-
-	private ITextHover fTextHover = null;
-
-	public XMLInformationProvider() {
-		fTextHover = SSEUIPlugin.getDefault().getTextHoverManager().createBestMatchHover(new XMLTagInfoHoverProcessor());
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getInformation(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public String getInformation(ITextViewer textViewer, IRegion subject) {
-		return (String) getInformation2(textViewer, subject);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProviderExtension#getInformation2(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public Object getInformation2(ITextViewer textViewer, IRegion subject) {
-		return fTextHover.getHoverInfo(textViewer, subject);
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.information.IInformationProvider#getSubject(org.eclipse.jface.text.ITextViewer,
-	 *      int)
-	 */
-	public IRegion getSubject(ITextViewer textViewer, int offset) {
-		return fTextHover.getHoverRegion(textViewer, offset);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLTagInfoHoverProcessor.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLTagInfoHoverProcessor.java
deleted file mode 100644
index 937bafa..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/taginfo/XMLTagInfoHoverProcessor.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.taginfo;
-
-
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextHover;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.core.internal.util.Debug;
-import org.eclipse.wst.sse.ui.internal.StructuredTextViewer;
-import org.eclipse.wst.sse.ui.internal.contentassist.ContentAssistUtils;
-import org.eclipse.wst.sse.ui.internal.taginfo.AbstractHoverProcessor;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceHelper;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-/**
- * Provides hover help documentation for xml tags
- * 
- * @see org.eclipse.jface.text.ITextHover
- */
-public class XMLTagInfoHoverProcessor extends AbstractHoverProcessor {
-	protected MarkupTagInfoProvider fInfoProvider = null;
-
-	/**
-	 * Constructor for XMLTextHoverProcessor.
-	 */
-	public XMLTagInfoHoverProcessor() {
-		// nothing
-	}
-
-	/**
-	 * Retreives documentation to display in the hover help popup.
-	 * 
-	 * @return String any documentation information to display
-	 *         <code>null</code> if there is nothing to display.
-	 * 
-	 */
-	protected String computeHoverHelp(ITextViewer textViewer, int documentPosition) {
-		String result = null;
-
-		IndexedRegion treeNode = ContentAssistUtils.getNodeAt((StructuredTextViewer) textViewer, documentPosition);
-		if (treeNode == null)
-			return null;
-		Node node = (Node) treeNode;
-
-		while (node != null && node.getNodeType() == Node.TEXT_NODE && node.getParentNode() != null)
-			node = node.getParentNode();
-		IDOMNode parentNode = (IDOMNode) node;
-
-		IStructuredDocumentRegion flatNode = ((IStructuredDocument) textViewer.getDocument()).getRegionAtCharacterOffset(documentPosition);
-		if (flatNode != null) {
-			ITextRegion region = flatNode.getRegionAtCharacterOffset(documentPosition);
-			if (region != null) {
-				result = computeRegionHelp(treeNode, parentNode, flatNode, region);
-			}
-		}
-
-		return result;
-	}
-
-	/**
-	 * Computes the hoverhelp based on region
-	 * 
-	 * @return String hoverhelp
-	 */
-	protected String computeRegionHelp(IndexedRegion treeNode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		String result = null;
-		if (region == null)
-			return null;
-		String regionType = region.getType();
-		if (regionType == DOMRegionContext.XML_TAG_NAME)
-			result = computeTagNameHelp((IDOMNode) treeNode, parentNode, flatNode, region);
-		else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-			result = computeTagAttNameHelp((IDOMNode) treeNode, parentNode, flatNode, region);
-		else if (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-			result = computeTagAttValueHelp((IDOMNode) treeNode, parentNode, flatNode, region);
-		return result;
-	}
-
-	/**
-	 * Computes the hover help for the attribute name
-	 */
-	protected String computeTagAttNameHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		CMElementDeclaration elementDecl = getCMElementDeclaration(xmlnode);
-		String attName = flatNode.getText(region);
-		CMAttributeDeclaration attDecl = getCMAttributeDeclaration(elementDecl, attName);
-		return getAdditionalInfo(elementDecl, attDecl);
-	}
-
-	/**
-	 * Computes the hover help for the attribute value (this is the same as
-	 * the attribute name's help)
-	 */
-	protected String computeTagAttValueHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		CMElementDeclaration elementDecl = getCMElementDeclaration(xmlnode);
-		ITextRegion attrNameRegion = getAttrNameRegion(xmlnode, region);
-
-		String attName = flatNode.getText(attrNameRegion);
-		CMAttributeDeclaration attDecl = getCMAttributeDeclaration(elementDecl, attName);
-		return getAdditionalInfo(elementDecl, attDecl);
-	}
-
-	/**
-	 * Computes the hover help for the tag name
-	 */
-	protected String computeTagNameHelp(IDOMNode xmlnode, IDOMNode parentNode, IStructuredDocumentRegion flatNode, ITextRegion region) {
-		CMElementDeclaration elementDecl = getCMElementDeclaration(xmlnode);
-		CMElementDeclaration pelementDecl = getCMElementDeclaration(parentNode);
-		return getAdditionalInfo(pelementDecl, elementDecl);
-	}
-
-	/**
-	 * Retreives cmnode's documentation to display in the hover help popup. If
-	 * no documentation exists for cmnode, try displaying parentOrOwner's
-	 * documentation
-	 * 
-	 * @return String any documentation information to display for cmnode.
-	 *         <code>null</code> if there is nothing to display.
-	 */
-	protected String getAdditionalInfo(CMNode parentOrOwner, CMNode cmnode) {
-		String addlInfo = null;
-
-		if (cmnode == null) {
-			if (Debug.displayWarnings) {
-				new IllegalArgumentException("Null declaration!").printStackTrace(); //$NON-NLS-1$
-			}
-			return null;
-		}
-
-		addlInfo = getInfoProvider().getInfo(cmnode);
-		if (addlInfo == null && parentOrOwner != null)
-			addlInfo = getInfoProvider().getInfo(parentOrOwner);
-		return addlInfo;
-	}
-
-	/**
-	 * Find the region of the attribute name for the given attribute value
-	 * region
-	 * 
-	 */
-	protected ITextRegion getAttrNameRegion(IDOMNode node, ITextRegion region) {
-		// Find the attribute name for which this position should have a value
-		IStructuredDocumentRegion open = node.getFirstStructuredDocumentRegion();
-		ITextRegionList openRegions = open.getRegions();
-		int i = openRegions.indexOf(region);
-		if (i < 0)
-			return null;
-		ITextRegion nameRegion = null;
-		while (i >= 0) {
-			nameRegion = openRegions.get(i--);
-			if (nameRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)
-				break;
-		}
-		return nameRegion;
-	}
-
-	/**
-	 * Retreives CMAttributeDeclaration indicated by attribute name within
-	 * elementDecl
-	 */
-	protected CMAttributeDeclaration getCMAttributeDeclaration(CMElementDeclaration elementDecl, String attName) {
-		CMAttributeDeclaration attrDecl = null;
-
-		if (elementDecl != null) {
-			CMNamedNodeMap attributes = elementDecl.getAttributes();
-			String noprefixName = DOMNamespaceHelper.getUnprefixedName(attName);
-			if (attributes != null) {
-				attrDecl = (CMAttributeDeclaration) attributes.getNamedItem(noprefixName);
-				if (attrDecl == null) {
-					attrDecl = (CMAttributeDeclaration) attributes.getNamedItem(attName);
-				}
-			}
-		}
-		return attrDecl;
-	}
-
-	/**
-	 * Retreives CMElementDeclaration for given node
-	 * 
-	 * @return CMElementDeclaration - CMElementDeclaration of node or
-	 *         <code>null</code> if not possible
-	 */
-	protected CMElementDeclaration getCMElementDeclaration(Node node) {
-		CMElementDeclaration result = null;
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			ModelQuery modelQuery = ModelQueryUtil.getModelQuery(node.getOwnerDocument());
-			if (modelQuery != null)
-				result = modelQuery.getCMElementDeclaration((Element) node);
-		}
-		return result;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer,
-	 *      org.eclipse.jface.text.IRegion)
-	 */
-	public String getHoverInfo(ITextViewer viewer, IRegion hoverRegion) {
-		if ((hoverRegion == null) || (viewer == null) || (viewer.getDocument() == null))
-			return null;
-
-		String displayText = null;
-		int documentOffset = hoverRegion.getOffset();
-		displayText = computeHoverHelp(viewer, documentOffset);
-
-		return displayText;
-	}
-
-	/**
-	 * Returns the region to hover the text over based on the offset.
-	 * 
-	 * @param textViewer
-	 * @param offset
-	 * 
-	 * @return IRegion region to hover over if offset is within tag name,
-	 *         attribute name, or attribute value and if offset is not over
-	 *         invalid whitespace. otherwise, returns <code>null</code>
-	 * 
-	 * @see ITextHover#getHoverRegion(ITextViewer, int)
-	 */
-	public IRegion getHoverRegion(ITextViewer textViewer, int offset) {
-		if ((textViewer == null) || (textViewer.getDocument() == null))
-			return null;
-
-		IStructuredDocumentRegion flatNode = ((IStructuredDocument) textViewer.getDocument()).getRegionAtCharacterOffset(offset);
-		ITextRegion region = null;
-
-		if (flatNode != null) {
-			region = flatNode.getRegionAtCharacterOffset(offset);
-		}
-
-		if (region != null) {
-			// only supply hoverhelp for tag name, attribute name, or
-			// attribute value
-			String regionType = region.getType();
-			if ((regionType == DOMRegionContext.XML_TAG_NAME) || (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) || (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)) {
-				try {
-					// check if we are at whitespace before or after line
-					IRegion line = textViewer.getDocument().getLineInformationOfOffset(offset);
-					if ((offset > (line.getOffset())) && (offset < (line.getOffset() + line.getLength()))) {
-						// check if we are in region's trailing whitespace
-						// (whitespace after relevant info)
-						if (offset < flatNode.getTextEndOffset(region)) {
-							return new Region(flatNode.getStartOffset(region), region.getTextLength());
-						}
-					}
-				}
-				catch (BadLocationException e) {
-					Logger.logException(e);
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * @deprecated if enabled flag is false, dont call getHoverRegion in the
-	 *             first place if true, use getHoverRegion(ITextViewer, int)
-	 */
-	public IRegion getHoverRegion(ITextViewer textViewer, int offset, boolean enabled) {
-		if ((!enabled) || (textViewer == null) || (textViewer.getDocument() == null))
-			return null;
-
-		IStructuredDocumentRegion flatNode = ((IStructuredDocument) textViewer.getDocument()).getRegionAtCharacterOffset(offset);
-		ITextRegion region = null;
-
-		if (flatNode != null) {
-			region = flatNode.getRegionAtCharacterOffset(offset);
-		}
-
-		if (region != null) {
-			// only supply hoverhelp for tag name, attribute name, or
-			// attribute value
-			String regionType = region.getType();
-			if ((regionType == DOMRegionContext.XML_TAG_NAME) || (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME) || (regionType == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)) {
-				try {
-					// check if we are at whitespace before or after line
-					IRegion line = textViewer.getDocument().getLineInformationOfOffset(offset);
-					if ((offset > (line.getOffset())) && (offset < (line.getOffset() + line.getLength()))) {
-						// check if we are in region's trailing whitespace
-						// (whitespace after relevant info)
-						if (offset < flatNode.getTextEndOffset(region)) {
-							return new Region(flatNode.getStartOffset(region), region.getTextLength());
-						}
-					}
-				}
-				catch (BadLocationException e) {
-					Logger.logException(e);
-				}
-			}
-		}
-		return null;
-	}
-
-	/**
-	 * Gets the infoProvider.
-	 * 
-	 * @return Returns fInfoProvider and if fInfoProvider was
-	 *         <code>null</code> set fInfoProvider to DefaultInfoProvider
-	 */
-	public MarkupTagInfoProvider getInfoProvider() {
-		if (fInfoProvider == null) {
-			fInfoProvider = new MarkupTagInfoProvider();
-		}
-		return fInfoProvider;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/EncodingTemplateVariableResolverXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/EncodingTemplateVariableResolverXML.java
deleted file mode 100644
index 079b042..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/EncodingTemplateVariableResolverXML.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.templates;
-
-import org.eclipse.jface.text.templates.SimpleTemplateVariableResolver;
-import org.eclipse.jface.text.templates.TemplateContext;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-
-
-public class EncodingTemplateVariableResolverXML extends SimpleTemplateVariableResolver {
-	private static final String ENCODING_TYPE = getEncodingType();
-
-	private static String getEncodingType() {
-		return "encoding"; //$NON-NLS-1$
-	}
-
-	/**
-	 * Creates a new encoding variable
-	 */
-	public EncodingTemplateVariableResolverXML() {
-		super(ENCODING_TYPE, XMLUIMessages.Creating_files_encoding);
-	}
-
-	protected String resolve(TemplateContext context) {
-		return XMLCorePlugin.getDefault().getPluginPreferences().getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/TemplateContextTypeIdsXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/TemplateContextTypeIdsXML.java
deleted file mode 100644
index 07b2f78..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/TemplateContextTypeIdsXML.java
+++ /dev/null
@@ -1,50 +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.wst.xml.ui.internal.templates;
-
-public class TemplateContextTypeIdsXML {
-
-	public static final String ALL = getAll();
-
-	public static final String ATTRIBUTE = getAttribute();
-
-	public static final String ATTRIBUTE_VALUE = getAttributeValue();
-
-	public static final String NEW = getNew();
-
-	public static final String TAG = getTag();
-
-	private static String getAll() {
-		return getPrefix() + "_all"; //$NON-NLS-1$
-	}
-
-	private static String getAttribute() {
-		return getPrefix() + "_attribute"; //$NON-NLS-1$
-	}
-
-	private static String getAttributeValue() {
-		return getPrefix() + "_attribute_value"; //$NON-NLS-1$
-	}
-
-	private static String getNew() {
-		return getPrefix() + "_new"; //$NON-NLS-1$
-	}
-
-	private static String getPrefix() {
-		return "xml"; //$NON-NLS-1$
-	}
-
-	private static String getTag() {
-		return getPrefix() + "_tag"; //$NON-NLS-1$
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/TemplateContextTypeXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/TemplateContextTypeXML.java
deleted file mode 100644
index 43ccf20..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/templates/TemplateContextTypeXML.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.internal.templates;
-
-import org.eclipse.jface.text.templates.GlobalTemplateVariables;
-import org.eclipse.jface.text.templates.TemplateContextType;
-
-/**
- * Base class for XML template context types. Templates of this context type
- * apply to any place within XML content type.
- */
-public class TemplateContextTypeXML extends TemplateContextType {
-
-	public TemplateContextTypeXML() {
-		super();
-		addResolver(new GlobalTemplateVariables.Cursor());
-		addResolver(new GlobalTemplateVariables.Date());
-		addResolver(new GlobalTemplateVariables.Dollar());
-		addResolver(new GlobalTemplateVariables.LineSelection());
-		addResolver(new GlobalTemplateVariables.Time());
-		addResolver(new GlobalTemplateVariables.User());
-		addResolver(new GlobalTemplateVariables.WordSelection());
-		addResolver(new GlobalTemplateVariables.Year());
-		addResolver(new EncodingTemplateVariableResolverXML());
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/text/XMLDocumentRegionEdgeMatcher.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/text/XMLDocumentRegionEdgeMatcher.java
deleted file mode 100644
index 75b33d8..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/text/XMLDocumentRegionEdgeMatcher.java
+++ /dev/null
@@ -1,25 +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.wst.xml.ui.internal.text;
-
-import org.eclipse.wst.sse.ui.internal.text.DocumentRegionEdgeMatcher;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-
-
-public class XMLDocumentRegionEdgeMatcher extends DocumentRegionEdgeMatcher {
-
-
-	public XMLDocumentRegionEdgeMatcher() {
-		super(new String[]{DOMRegionContext.XML_TAG_NAME, DOMRegionContext.XML_COMMENT_TEXT, DOMRegionContext.XML_CDATA_TEXT, DOMRegionContext.XML_PI_OPEN, DOMRegionContext.XML_PI_CONTENT}, null);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/SharedXMLEditorPluginImageHelper.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/SharedXMLEditorPluginImageHelper.java
deleted file mode 100644
index f3d932c..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/SharedXMLEditorPluginImageHelper.java
+++ /dev/null
@@ -1,72 +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.wst.xml.ui.internal.util;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImageHelper;
-import org.eclipse.wst.xml.ui.internal.editor.XMLEditorPluginImages;
-
-
-public class SharedXMLEditorPluginImageHelper {
-	public static final String IMG_DTOOL_CONSTRAINOFF = XMLEditorPluginImages.IMG_DTOOL_CONSTRAINOFF;
-	public static final String IMG_DTOOL_CONSTRAINON = XMLEditorPluginImages.IMG_DTOOL_CONSTRAINON;
-	public static final String IMG_DTOOL_RLDGRMR = XMLEditorPluginImages.IMG_DTOOL_RLDGRMR;
-	public static final String IMG_DTOOL_VALIDATE = XMLEditorPluginImages.IMG_DTOOL_VALIDATE;
-	public static final String IMG_ETOOL_CONSTRAINOFF = XMLEditorPluginImages.IMG_ETOOL_CONSTRAINOFF;
-	public static final String IMG_ETOOL_CONSTRAINON = XMLEditorPluginImages.IMG_ETOOL_CONSTRAINON;
-	public static final String IMG_ETOOL_RLDGRMR = XMLEditorPluginImages.IMG_ETOOL_RLDGRMR;
-	public static final String IMG_ETOOL_VALIDATE = XMLEditorPluginImages.IMG_ETOOL_VALIDATE;
-	public static final String IMG_OBJ_ATTRIBUTE = XMLEditorPluginImages.IMG_OBJ_ATTRIBUTE;
-	public static final String IMG_OBJ_CDATASECTION = XMLEditorPluginImages.IMG_OBJ_CDATASECTION;
-	public static final String IMG_OBJ_COMMENT = XMLEditorPluginImages.IMG_OBJ_COMMENT;
-	public static final String IMG_OBJ_DOCTYPE = XMLEditorPluginImages.IMG_OBJ_DOCTYPE;
-	public static final String IMG_OBJ_ELEMENT = XMLEditorPluginImages.IMG_OBJ_ELEMENT;
-	public static final String IMG_OBJ_ENTITY = XMLEditorPluginImages.IMG_OBJ_ENTITY;
-	public static final String IMG_OBJ_ENTITY_REFERENCE = XMLEditorPluginImages.IMG_OBJ_ENTITY_REFERENCE;
-	public static final String IMG_OBJ_NOTATION = XMLEditorPluginImages.IMG_OBJ_NOTATION;
-	public static final String IMG_OBJ_PROCESSINGINSTRUCTION = XMLEditorPluginImages.IMG_OBJ_PROCESSINGINSTRUCTION;
-	public static final String IMG_OBJ_TAG_GENERIC = XMLEditorPluginImages.IMG_OBJ_TAG_GENERIC;
-	public static final String IMG_OBJ_TAG_MACRO = XMLEditorPluginImages.IMG_OBJ_TAG_MACRO;
-	public static final String IMG_OBJ_TXTEXT = XMLEditorPluginImages.IMG_OBJ_TXTEXT;
-
-	/**
-	 * Retrieves the specified image from the xml source editor plugin's image
-	 * registry. Note: The returned <code>Image</code> is managed by the
-	 * workbench; clients must <b>not </b> dispose of the returned image.
-	 * 
-	 * @param symbolicName
-	 *            the symbolic name of the image; there are constants declared
-	 *            in this class for build-in images that come with the xml
-	 *            source editor
-	 * @return the image, or <code>null</code> if not found
-	 */
-	public static Image getImage(String symbolicName) {
-		return XMLEditorPluginImageHelper.getInstance().getImage(symbolicName);
-	}
-
-	/**
-	 * Retrieves the image descriptor for specified image from the xml source
-	 * editor plugin's image registry. Unlike <code>Image</code>s, image
-	 * descriptors themselves do not need to be disposed.
-	 * 
-	 * @param symbolicName
-	 *            the symbolic name of the image; there are constants declared
-	 *            in this interface for build-in images that come with the xml
-	 *            source editor
-	 * @return the image descriptor, or <code>null</code> if not found
-	 */
-	public static ImageDescriptor getImageDescriptor(String symbolicName) {
-		return XMLEditorPluginImageHelper.getInstance().getImageDescriptor(symbolicName);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/XMLCommonResources.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/XMLCommonResources.java
deleted file mode 100644
index 83f41f7..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/XMLCommonResources.java
+++ /dev/null
@@ -1,93 +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.wst.xml.ui.internal.util;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-
-/**
- * @deprecated use XMLUIPlugin.getResourceString() instead
- */
-/**
- * This class exists temporarily until the properties files can be
- * re-organized and the various resource references can be updated
- */
-public class XMLCommonResources {
-	protected static XMLCommonResources instance;
-
-	public synchronized static XMLCommonResources getInstance() {
-		if (instance == null)
-			instance = new XMLCommonResources(XMLUIPlugin.getDefault());
-		return instance;
-	}
-
-	private XMLUIPlugin editorPlugin;
-
-	private ResourceBundle resourceBundle;
-
-	public XMLCommonResources(XMLUIPlugin editorPlugin) {
-		instance = this;
-		this.editorPlugin = editorPlugin;
-		try {
-			resourceBundle = ResourceBundle.getBundle("org.eclipse.wst.xml.ui.internal.XMLUIPluginResources"); //$NON-NLS-1$
-		} catch (MissingResourceException exception) {
-			//TODO... log an error message
-			//B2BUtilPlugin.getPlugin().getMsgLogger().write(B2BUtilPlugin.getGUIString("_WARN_PLUGIN_PROPERTIES_MISSING")
-			// + descriptor.getLabel());
-			resourceBundle = null;
-		}
-	}
-
-	 ImageDescriptor _getImageDescriptor(String iconName) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin(XMLUIPlugin.ID, iconName);
-	}
-
-
-	public ResourceBundle getResourceBundle() {
-		return resourceBundle;
-	}
-
-	/**
-	 * This gets the string resource.
-	 */
-	public String getString(String key) {
-		return getResourceBundle().getString(key);
-	}
-
-	/**
-	 * This gets the string resource and does one substitution.
-	 */
-	public String getString(String key, Object s1) {
-		return MessageFormat.format(getString(key), new Object[]{s1});
-	}
-
-	/**
-	 * This gets the string resource and does two substitutions.
-	 */
-	public String getString(String key, Object s1, Object s2) {
-		return MessageFormat.format(getString(key), new Object[]{s1, s2});
-	}
-
-	public IWorkbench getWorkbench() {
-		return editorPlugin.getWorkbench();
-	}
-	/*
-	 * public ImageFactory getImageFactory() { return imageFactory; }
-	 */
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/XMLCommonUIContextIds.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/XMLCommonUIContextIds.java
deleted file mode 100644
index 832cfca..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/util/XMLCommonUIContextIds.java
+++ /dev/null
@@ -1,51 +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.wst.xml.ui.internal.util;
-
-/**
- * Context help id constants.
- */
-public interface XMLCommonUIContextIds {
-	public static final String PLUGIN_NAME = "org.eclipse.wst.xml.ui"; //$NON-NLS-1$
-
-	/* CONTEXT_ID xcui0500 for Edit Attribute Instruction Dialog */
-	public static final String XCUI_ATTRIBUTE_DIALOG = PLUGIN_NAME + ".xcui0500"; //$NON-NLS-1$
-
-	/* CONTEXT_ID xcui0400 for Select XML Catalog ID Dialog */
-	public static final String XCUI_CATALOG_DIALOG = PLUGIN_NAME + ".xcui0400"; //$NON-NLS-1$
-
-	/* CONTEXT_IDs for XML Common UI use xcuixxx context IDs */
-
-	/* CONTEXT_ID xcui0010 for Edit Doctype Dialog */
-	public static final String XCUI_DOCTYPE_DIALOG = PLUGIN_NAME + ".xcui0010"; //$NON-NLS-1$
-	/* CONTEXT_ID xcui0030 for Public ID Text Edit */
-	public static final String XCUI_DOCTYPE_PUBLIC = PLUGIN_NAME + ".xcui0030"; //$NON-NLS-1$
-	/* CONTEXT_ID xcui0020 for Root Element Name Text Edit */
-	public static final String XCUI_DOCTYPE_ROOT = PLUGIN_NAME + ".xcui0020"; //$NON-NLS-1$
-	/* CONTEXT_ID xcui0040 for System ID Text Edit */
-	public static final String XCUI_DOCTYPE_SYSTEM = PLUGIN_NAME + ".xcui0050"; //$NON-NLS-1$
-
-	/* CONTEXT_ID xcui0300 for Edit Element Instruction Dialog */
-	public static final String XCUI_ELEMENT_DIALOG = PLUGIN_NAME + ".xcui0600"; //$NON-NLS-1$
-
-	/* CONTEXT_ID xcui0200 for Edit Namespace Dialog */
-	public static final String XCUI_NAMESPACE_DIALOG = PLUGIN_NAME + ".xcui0200"; //$NON-NLS-1$
-
-	/* CONTEXT_ID xcui0300 for Edit Processing Instruction Dialog */
-	public static final String XCUI_PROCESSING_DIALOG = PLUGIN_NAME + ".xcui0300"; //$NON-NLS-1$
-
-	/* CONTEXT_ID xcui0100 for Edit Schema Information Dialog */
-	public static final String XCUI_SCHEMA_INFO_DIALOG = PLUGIN_NAME + ".xcui0100"; //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/DelegatingSourceValidator.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/DelegatingSourceValidator.java
deleted file mode 100644
index b6bd222..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/DelegatingSourceValidator.java
+++ /dev/null
@@ -1,566 +0,0 @@
-package org.eclipse.wst.xml.ui.internal.validation;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.validation.internal.core.IMessageAccess;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IProjectValidationContext;
-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;
-import org.eclipse.wst.validation.internal.provisional.core.IValidatorJob;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMText;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * A DelegatingReconcileValidator calls its delegate validator to get a list
- * of validation error IMessages. Using information in this IMessage the
- * DelegatingReconcileValidator updates the IMessage with an offset and length
- * to give a good range to be "squiggled" and adds the messages to the
- * IReporter
- * 
- * @author Mark Hutchinson
- * 
- */
-public abstract class DelegatingSourceValidator implements IValidator {
-	// the selection strategies:
-	protected static final String ALL_ATTRIBUTES = "ALL_ATTRIBUTES"; //$NON-NLS-1$
-	protected static final String ATTRIBUTE_NAME = "ATTRIBUTE_NAME"; //$NON-NLS-1$
-	protected static final String ATTRIBUTE_VALUE = "ATTRIBUTE_VALUE"; //$NON-NLS-1$
-	protected static final String START_TAG = "START_TAG"; //$NON-NLS-1$
-	protected static final String TEXT = "TEXT"; //$NON-NLS-1$
-	protected static final String FIRST_NON_WHITESPACE_TEXT = "FIRST_NON_WHITESPACE_TEXT"; //$NON-NLS-1$
-	protected static final String TEXT_ENTITY_REFERENCE = "TEXT_ENTITY_REFERENCE"; //$NON-NLS-1$
-	protected static final String VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE = "VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE"; //$NON-NLS-1$
-	
-  /**
-   * This constant specifies the attribute name that specifies the side of the 'start tag'
-   * that the validator has used to report an error.  A validator may choose to report a message
-   * at the left (the start of the start tag)or at the right (the end of the start tag).
-   * When this attribute is not specified error ERROR_SIDE_LEFT is the default.
-   */
-	protected static final String ERROR_SIDE = "ERROR_SIDE"; //$NON-NLS-1$
-	
-  /**
-   * When the ERROR_SIDE attribute specifies the ERROR_SIDE_LEFT value it is assumed
-   * that the message specifies a location to the left of the start tag
-   */
-	protected static final String ERROR_SIDE_LEFT = "ERROR_SIDE_LEFT"; //$NON-NLS-1$	
-	
-  /**
-   * When the ERROR_SIDE attribute specifies the ERROR_SIDE_RIGHT value it is assumed
-   * that the message specifies a location to the right of the start tag
-   */	
-	protected static final String ERROR_SIDE_RIGHT = "ERROR_SIDE_RIGHT"; //$NON-NLS-1$	
-	
-	protected static final String COLUMN_NUMBER_ATTRIBUTE = "columnNumber"; //$NON-NLS-1$
-	protected static final String SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE = "squiggleSelectionStrategy"; //$NON-NLS-1$
-	protected static final String SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE = "squiggleNameOrValue"; //$NON-NLS-1$
-
-	public DelegatingSourceValidator() {
-		super(); // constructor
-	}
-
-	public void cleanup(IReporter arg0) { // don't need to implement
-	}
-
-	// My Implementation of IHelper
-	class MyHelper implements IProjectValidationContext {
-		InputStream inputStream;
-
-		IFile file;
-
-		public MyHelper(InputStream inputStream, IFile file) {
-			this.inputStream = inputStream;
-			this.file = file;
-		}
-
-		public int getBuildKind() {
-			return 0;
-		}
-
-		public Object loadModel(String symbolicName, Object[] parms) {
-			if (symbolicName.equals("getFile")) { //$NON-NLS-1$
-				return file;
-			}
-			return null;
-		}
-
-		public Object loadModel(String symbolicName) {
-			if (symbolicName.equals("inputStream")) { //$NON-NLS-1$
-				return inputStream;
-			}
-			return null;
-		}
-
-		public String[] getURIs() {
-			if (file != null)
-				return new String[]{file.getFullPath().toString()};
-			return new String[0];
-		}
-
-		public IProject getProject() {
-			if (file != null) {
-				return file.getProject();
-			}
-			return null;
-		}
-	}
-
-	// My Implementation of IReporter
-	class MyReporter implements IReporter {
-		List list = new ArrayList();
-
-		public MyReporter() {
-			super();
-		}
-
-		public void addMessage(IValidator origin, IMessage message) {
-			list.add(message);
-		}
-
-		public void displaySubtask(IValidator validator, IMessage message) {
-			/* do not need to implement */
-		}
-
-		public IMessageAccess getMessageAccess() {
-			return null;
-		}
-
-		public boolean isCancelled() {
-			return false;
-		}
-
-		public void removeAllMessages(IValidator origin, Object object) { // do
-			/* do not need to implement */
-		}
-
-		public void removeAllMessages(IValidator origin) {
-			/* do not need to implement */
-		}
-
-		public void removeMessageSubset(IValidator validator, Object obj, String groupName) {// do
-			/* do not need to implement */
-		}
-
-		public List getMessages() {
-			return list;
-		}
-	}
-
-	protected abstract IValidator getDelegateValidator();
-
-	/**
-	 * Calls a delegate validator getting and updates it's list of
-	 * ValidationMessages with a good squiggle offset and length.
-	 * 
-	 * @param helper
-	 *            loads an object.
-	 * @param reporter
-	 *            Is an instance of an IReporter interface, which is used for
-	 *            interaction with the user.
-	 */
-	public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
-		String[] delta = helper.getURIs();
-		if (delta.length > 0) {
-			// get the file, model and document:
-			IFile file = getFile(delta[0]);
-			IDOMModel xmlModel = getModelForResource(file);
-			try {
-				IDOMDocument document = xmlModel.getDocument();
-
-				// store the text in a byte array; make a full copy to ease
-				// any threading problems
-				byte[] byteArray;
-				try {
-					byteArray = xmlModel.getStructuredDocument().get().getBytes("UTF-8");
-				} catch (UnsupportedEncodingException e) {
-					// Not likely to happen
-					byteArray = xmlModel.getStructuredDocument().get().getBytes();
-				}
-
-				if (isDelegateValidatorEnabled(file)) {
-					IValidator validator = getDelegateValidator();
-					if (validator != null) {
-						// Validate the file:
-						IValidationContext vHelper = new MyHelper(new ByteArrayInputStream(byteArray), file);
-						MyReporter vReporter = new MyReporter();
-						if (validator instanceof IValidatorJob) {
-							((IValidatorJob) validator).validateInJob(vHelper, vReporter);
-						}
-						else {
-							validator.validate(vHelper, vReporter);
-						}
-						List messages = vReporter.list;
-
-						// set the offset and length
-						updateValidationMessages(messages, document, reporter);
-					}
-				}
-			}
-
-
-			finally {
-				if (xmlModel != null)
-					xmlModel.releaseFromRead();
-			}
-		}
-	}
-
-	/**
-	 * iterates through the messages and calculates a "better" offset and
-	 * length
-	 * 
-	 * @param messages -
-	 *            a List of IMessages
-	 * @param document -
-	 *            the document
-	 * @param reporter -
-	 *            the reporter the messages are to be added to
-	 */
-	protected void updateValidationMessages(List messages, IDOMDocument document, IReporter reporter) {
-		for (int i = 0; i < messages.size(); i++) {
-			IMessage message = (IMessage) messages.get(i);
-			try {
-				if (message.getAttribute(COLUMN_NUMBER_ATTRIBUTE) != null) {
-					int column = ((Integer) message.getAttribute(COLUMN_NUMBER_ATTRIBUTE)).intValue();
-					String selectionStrategy = (String) message.getAttribute(SQUIGGLE_SELECTION_STRATEGY_ATTRIBUTE);
-					String nameOrValue = (String) message.getAttribute(SQUIGGLE_NAME_OR_VALUE_ATTRIBUTE);
-
-					// convert the line and Column numbers to an offset:
-					int start = document.getStructuredDocument().getLineOffset(message.getLineNumber() - 1) + column - 1;
-
-					// calculate the "better" start and end offset:
-					int[] result = computeStartAndEndLocation(start, selectionStrategy, getErrorSide(message), nameOrValue, document);
-					if (result != null) {
-						message.setOffset(result[0]);
-						message.setLength(result[1] - result[0]);
-						reporter.addMessage(this, message);
-					}
-				}
-			}
-			catch (BadLocationException e) { // this exception should not
-				// occur - it is thrown if
-				// trying to convert an
-				// invalid line number to and
-				// offset
-			}
-
-		}
-	}
-
-	/**
-	 * @param delta
-	 *            the IFileDelta containing the file name to get
-	 * @return the IFile
-	 */
-	public IFile getFile(String delta) {
-		IResource res = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(delta));
-		return res instanceof IFile ? (IFile) res : null;
-	}
-
-	/**
-	 * 
-	 * @param file
-	 *            the file to get the model for
-	 * @return the file's XMLModel
-	 */
-	protected IDOMModel getModelForResource(IFile file) {
-		IStructuredModel model = null;
-		IModelManager manager = StructuredModelManager.getModelManager();
-
-		try {
-			model = manager.getModelForRead(file);
-			// TODO.. HTML validator tries again to get a model a 2nd way
-		}
-		catch (Exception e) {
-			// e.printStackTrace();
-		}
-
-		return model instanceof IDOMModel ? (IDOMModel) model : null;
-	}
-
-  /**
-   * @deprecated use computeStartEndLocation(int startOffset, String errorMessage, String selectionStrategy, boolean leftError, String nameOrValue, IDOMDocument document) {
-   *
-   */
-  protected int[] computeStartEndLocation(int startOffset, String errorMessage, String selectionStrategy, String nameOrValue, IDOMDocument document) 
-  {
-    return computeStartAndEndLocation(startOffset, selectionStrategy, ERROR_SIDE_RIGHT, nameOrValue, document);
-  }  
-  
-	/**
-	 * Calculates the "better" offsets.
-	 * @param startOffset -
-	 *            the offset given by Xerces
-	 * @param errorMessage -
-	 *            the Xerces error Message
-	 * @param selectionStrategy -
-	 *            the selectionStrategy
-	 * @param document -
-	 *            the document
-	 * @return int[] - position 0 has the start offset of the squiggle range,
-	 *         position 1 has the endOffset
-	 */
-	/*
-	 * The way the offsets is calculated is: - find the indexed region
-	 * (element) closest to the given offset - if we are between two elements,
-	 * choosing left or right element will depend on parameter 'errorSide' 
-	 * - based on the selectionStrategy choose the underlining strategy 
-	 *  (eg START_TAG means underline the start tag of that element) 
-	 * - use information from nameOrValue and the DOM to
-	 * get better offsets
-	 * 
-	 */
-	protected int[] computeStartAndEndLocation(int startOffset, String selectionStrategy, String errorSide, String nameOrValue, IDOMDocument document) {
-		try {
-			int startEndPositions[] = new int[2];
-
-			IndexedRegion region = document.getModel().getIndexedRegion(startOffset);
-			IndexedRegion prevRegion = document.getModel().getIndexedRegion(startOffset - 1);
-
-			if (prevRegion != region) {
-				// if between two regions we use the 'errorSide' to understand which
-				// element is applicable.  if we know the error has been reported to the
-				// right of the tag, then we can assume we need to step back to the previous
-				// region to land at the 'correct location.  Otherwise assume we're
-				// exactly where we need to be.				
-				if (ERROR_SIDE_LEFT.equals(errorSide))
-				{
-				  region = prevRegion;
-				}  
-			}
-
-			// initialize start and end positions to be the start positions
-			// this means if the
-			// special case is not taken care of below the start and end
-			// offset are set to be
-			// the start of the region where the error was
-			if (region != null) {
-				startEndPositions[0] = region.getStartOffset();
-				startEndPositions[1] = startEndPositions[0];
-			}
-			else { // this will message will not get added to the IReporter
-				// since the length is 0
-				startEndPositions[0] = 0;
-				startEndPositions[1] = 0;
-			}
-			if (region instanceof Node) {
-				Node node = (Node) region;
-
-				if (START_TAG.equals(selectionStrategy)) {// then we want to
-					// underline the opening tag
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						IDOMElement element = (IDOMElement) node;
-						startEndPositions[0] = element.getStartOffset() + 1;
-						startEndPositions[1] = startEndPositions[0] + element.getTagName().length();
-					}
-				}
-				else if (ATTRIBUTE_NAME.equals(selectionStrategy)) { // in
-					// underline the attribute's name
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						IDOMElement element = (IDOMElement) node;
-						IDOMNode attributeNode = (IDOMNode) (element.getAttributeNode(nameOrValue));
-						if (attributeNode != null) {
-							startEndPositions[0] = attributeNode.getStartOffset();
-							startEndPositions[1] = attributeNode.getStartOffset() + nameOrValue.length();
-						}
-					}
-				}
-				else if (ATTRIBUTE_VALUE.equals(selectionStrategy)) {
-					// underline the attribute's value
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						IDOMElement element = (IDOMElement) node;
-						IDOMAttr attributeNode = (IDOMAttr) (element.getAttributeNode(nameOrValue));
-						if (attributeNode != null) {
-							startEndPositions[0] = attributeNode.getValueRegionStartOffset();
-							startEndPositions[1] = startEndPositions[0] + attributeNode.getValueRegionText().length();
-						}
-					}
-				}
-				else if (ALL_ATTRIBUTES.equals(selectionStrategy)) {
-					// underline all attributes
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						IDOMElement element = (IDOMElement) node;
-						NamedNodeMap attributes = element.getAttributes();
-						if (attributes != null) {
-							IDOMNode first = (IDOMNode) attributes.item(0);
-							IDOMNode last = (IDOMNode) attributes.item(attributes.getLength() - 1);
-							if (first != null && last != null) {
-								startEndPositions[0] = first.getStartOffset();
-								startEndPositions[1] = last.getEndOffset();
-							}
-						}
-					}
-				}
-				else if (TEXT.equals(selectionStrategy)) {
-					// underline the text between the tags
-					if (node.getNodeType() == Node.TEXT_NODE) {
-						IDOMText textNode = (IDOMText) node;
-						int start = textNode.getStartOffset();
-						String value = textNode.getNodeValue();
-						int index = 0;
-						char curChar = value.charAt(index);
-						// here we are finding start offset by skipping over
-						// whitespace:
-						while (curChar == '\n' || curChar == '\t' || curChar == '\r' || curChar == ' ') {
-							curChar = value.charAt(index);
-							index++;
-						}
-						if (index > 0) {
-							index--;
-
-						}
-						start = start + index;
-						startEndPositions[0] = start + index;
-						startEndPositions[1] = start + value.trim().length();
-					}
-					else if (node.getNodeType() == Node.ELEMENT_NODE) {
-						IDOMElement element = (IDOMElement) node;
-						Node child = element.getFirstChild();
-						if (child instanceof IDOMNode) {
-							IDOMNode xmlChild = ((IDOMNode) child);
-							startEndPositions[0] = xmlChild.getStartOffset();
-							startEndPositions[1] = xmlChild.getEndOffset();
-						}
-					}
-				}
-				else if (FIRST_NON_WHITESPACE_TEXT.equals(selectionStrategy)) {
-					// search through all child nodes and return range of
-					// first non-whitespace
-					// text node
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						NodeList nodes = node.getChildNodes();
-						for (int i = 0; i < nodes.getLength(); i++) {
-							Node currentNode = nodes.item(i);
-							if (currentNode.getNodeType() == Node.TEXT_NODE) {
-								// TODO (Trung) I don't think we should call getNodeValue(), trim(), length() repeatedly.
-								// This is inefficient, to improve use local variables to store values.
-								IDOMText textNode = (IDOMText) currentNode;
-								if (textNode.getNodeValue().trim().length() > 0) {
-									String value = textNode.getNodeValue();
-									int index = 0;
-									int start = textNode.getStartOffset();
-									char curChar = value.charAt(index);
-									// here we are finding start offset by
-									// skipping over whitespace:
-									while (curChar == '\n' || curChar == '\t' || curChar == '\r' || curChar == ' ') {
-										curChar = value.charAt(index);
-										index++;
-									}
-									if (index > 0) {
-										index--;
-
-									}
-									start = start + index;
-									startEndPositions[0] = start;
-									startEndPositions[1] = start + value.trim().length();
-									break;
-								}
-							}
-
-						}
-					}
-				}
-
-				else if (TEXT_ENTITY_REFERENCE.equals(selectionStrategy)) {
-					if (node.getNodeType() == Node.ENTITY_REFERENCE_NODE) {
-						startEndPositions[0] = region.getStartOffset();
-						startEndPositions[1] = region.getEndOffset();
-					}
-					else if (node.getNodeType() == Node.ELEMENT_NODE) {
-						/*
-						 * In this case the undeclared entity might be in one
-						 * of the attribute values. Search through the
-						 * attributes to find the range of the undeclared
-						 * entity.
-						 */
-						String entity = "&" + nameOrValue + ";"; //$NON-NLS-1$ //$NON-NLS-2$
-						NamedNodeMap attributes = node.getAttributes();
-						for (int i = 0; i < attributes.getLength(); i++) {
-							IDOMAttr attr = (IDOMAttr) attributes.item(i);
-							String nodeValue = attr.getNodeValue();
-							int index = nodeValue.indexOf(entity);
-							if (index != -1) {
-								startEndPositions[0] = attr.getValueRegionStartOffset() + index + 1;
-								startEndPositions[1] = startEndPositions[0] + entity.length();
-							}
-						}
-					}
-
-				}
-				else if (VALUE_OF_ATTRIBUTE_WITH_GIVEN_VALUE.equals(selectionStrategy)) {
-					// TODO (Trung) do we really need this strategy ?
-					// If we know the name of the name of the attribute, we can retrieve its value.
-					// Hence, we can incoperate this strategy with ATTRIBUTE_VALUE ?
-					if (node.getNodeType() == Node.ELEMENT_NODE) {
-						// here we will search through all attributes for the
-						// one with the
-						// with the value we want:
-						// TODO (Trung) I see a potential problem here.
-						// What happens when there is another attribute having the same value
-						// with this attribute's buggy value ?
-						// Need to solve when time permits.
-						NamedNodeMap attributes = node.getAttributes();
-						for (int i = 0; i < attributes.getLength(); i++) {
-							IDOMAttr attr = (IDOMAttr) attributes.item(i);
-							String nodeValue = attr.getNodeValue().trim();
-							if (nodeValue.equals(nameOrValue)) {
-								startEndPositions[0] = attr.getValueRegionStartOffset() + 1;
-								startEndPositions[1] = startEndPositions[0] + nodeValue.length();
-								break;
-							}
-						}
-					}
-				}
-			}
-			return startEndPositions;
-		}
-		// catch (Exception e) { // e.printStackTrace();
-		// }
-		finally {
-		}
-		// return null;
-	}
-
-	/**
-	 * Returns true if delegate validator is enabled based on Validation
-	 * preferences
-	 * 
-	 * @param file
-	 * @return false if delegate validator is not enabled based on Validatoin
-	 *         preferences, true otherwise
-	 */
-	protected boolean isDelegateValidatorEnabled(IFile file) {
-		return true;
-	}
-	
-  protected String getErrorSide(IMessage message)
-  {
-    // note that if the ERROR_SIDE is unspecified we return the default value ERROR_SIDE_LEFT    
-    Object value = message.getAttribute(ERROR_SIDE);
-    return ERROR_SIDE_RIGHT.equals(value) ? ERROR_SIDE_RIGHT : ERROR_SIDE_LEFT;
-  }	
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/DelegatingSourceValidatorForXML.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/DelegatingSourceValidatorForXML.java
deleted file mode 100644
index cde9107..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/DelegatingSourceValidatorForXML.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xml.ui.internal.validation;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.validation.internal.ConfigurationManager;
-import org.eclipse.wst.validation.internal.ProjectConfiguration;
-import org.eclipse.wst.validation.internal.ValidationRegistryReader;
-import org.eclipse.wst.validation.internal.ValidatorMetaData;
-import org.eclipse.wst.validation.internal.provisional.ValidationFactory;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-import org.eclipse.wst.xml.ui.internal.Logger;
-
-/**
- * @author Mark Hutchinson
- * 
- */
-public class DelegatingSourceValidatorForXML extends DelegatingSourceValidator {
-	private final static String VALIDATOR_CLASS = "org.eclipse.wst.xml.core.internal.validation.eclipse.Validator"; //$NON-NLS-1$
-
-	public DelegatingSourceValidatorForXML() {
-		super();
-	}
-
-	protected IValidator getDelegateValidator() {
-		IValidator result = null;
-		try {
-			result = ValidationFactory.instance.getValidator(VALIDATOR_CLASS);
-		}
-		catch (InstantiationException e) {
-			Logger.logException(e);
-		}
-		return result;
-	}
-
-	protected boolean isDelegateValidatorEnabled(IFile file) {
-		boolean enabled = true;
-		try {
-			ProjectConfiguration configuration = ConfigurationManager.getManager().getProjectConfiguration(file.getProject());
-			ValidatorMetaData vmd = ValidationRegistryReader.getReader().getValidatorMetaData(VALIDATOR_CLASS);
-			if (configuration.isBuildEnabled(vmd) || configuration.isManualEnabled(vmd))
-				enabled = true;
-			else
-				enabled = false;
-		}
-		catch (InvocationTargetException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-		return enabled;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/MarkupValidator.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/MarkupValidator.java
deleted file mode 100644
index 2283a18..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/internal/validation/MarkupValidator.java
+++ /dev/null
@@ -1,649 +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.wst.xml.ui.internal.validation;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegionList;
-import org.eclipse.wst.sse.ui.internal.reconcile.AbstractStructuredTextReconcilingStrategy;
-import org.eclipse.wst.sse.ui.internal.reconcile.ReconcileAnnotationKey;
-import org.eclipse.wst.sse.ui.internal.reconcile.TemporaryAnnotation;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.AnnotationInfo;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.ISourceValidator;
-import org.eclipse.wst.sse.ui.internal.reconcile.validator.IncrementalReporter;
-import org.eclipse.wst.validation.internal.core.ValidationException;
-import org.eclipse.wst.validation.internal.operations.LocalizedMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-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;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.core.internal.regions.DOMRegionContext;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.correction.ProblemIDsXML;
-import org.w3c.dom.Node;
-
-/**
- * Basic XML syntax checking step.
- * Only used as ISourceValidator at the momment
- * 
- * @author pavery
- */
-public class MarkupValidator implements IValidator, ISourceValidator {
-	private String DQUOTE = "\""; //$NON-NLS-1$
-
-	protected String SEVERITY_ATTR_MISSING_VALUE = TemporaryAnnotation.ANNOT_ERROR;
-	protected String SEVERITY_ATTR_NO_VALUE = TemporaryAnnotation.ANNOT_ERROR;
-	// severities for the problems discoverable by this reconciler; possibly
-	// user configurable later
-	protected String SEVERITY_GENERIC_ILLFORMED_SYNTAX = TemporaryAnnotation.ANNOT_WARNING;
-	protected String SEVERITY_STRUCTURE = TemporaryAnnotation.ANNOT_ERROR;
-	protected String SEVERITY_SYNTAX_ERROR = TemporaryAnnotation.ANNOT_ERROR;
-	// used for attribute quote checking
-	private String SQUOTE = "'"; //$NON-NLS-1$
-
-	private IDocument fDocument;
-
-	private void addAttributeError(String messageText, String attributeValueText, int start, int length, int problemId, IStructuredDocumentRegion sdRegion,  IReporter reporter) {
-        
-        if (sdRegion.isDeleted())
-            return;
-        
-        int lineNo = getLineNumber(start);
-        LocalizedMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-        message.setOffset(start);
-        message.setLength(length);
-        message.setLineNo(lineNo);
-        
-        AnnotationInfo info = new AnnotationInfo(message, problemId, attributeValueText);
-        ((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-	}
-
-	private void checkAttributesInEndTag(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-        
-        if(structuredDocumentRegion.isDeleted())
-            return;
-        
-		ITextRegionList textRegions = structuredDocumentRegion.getRegions();
-		int errorCount = 0;
-		int start = structuredDocumentRegion.getEndOffset();
-		int end = structuredDocumentRegion.getEndOffset();
-		for (int i = 0; i < textRegions.size() && errorCount < AbstractStructuredTextReconcilingStrategy.ELEMENT_ERROR_LIMIT && !structuredDocumentRegion.isDeleted(); i++) {
-			ITextRegion textRegion = textRegions.get(i);
-			if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS || textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				if (start > structuredDocumentRegion.getStartOffset(textRegion))
-					start = structuredDocumentRegion.getStartOffset(textRegion);
-				end = structuredDocumentRegion.getEndOffset(textRegion);
-				errorCount++;
-			}
-		}
-		// create one error for all attributes in the end tag
-		if (errorCount > 0) {
-			// Position p = new Position(start, end - start);
-			String messageText = XMLUIMessages.End_tag_has_attributes;
-			LocalizedMessage message = new LocalizedMessage(IMessage.NORMAL_SEVERITY, messageText);
-			message.setOffset(start);
-			message.setLength(end - start);
-			message.setLineNo(getLineNumber(start));
-			
-			AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.AttrsInEndTag, null);
-			((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-		}
-	}
-
-
-	private void checkClosingBracket(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-        
-        if(structuredDocumentRegion.isDeleted())
-            return;
-        
-		ITextRegionList regions = structuredDocumentRegion.getRegions();
-		ITextRegion r = null;
-		boolean closed = false;
-		for (int i = 0; i < regions.size()  && !structuredDocumentRegion.isDeleted(); i++) {
-			r = regions.get(i);
-			if (r.getType() == DOMRegionContext.XML_TAG_CLOSE || r.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE)
-				closed = true;
-		}
-		if (!closed) {
-
-			String messageText = XMLUIMessages.ReconcileStepForMarkup_6;
-
-			int start = structuredDocumentRegion.getStartOffset();
-			int length = structuredDocumentRegion.getText().trim().length();
-			int lineNo = getLineNumber(start);
-			
-			LocalizedMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-			message.setOffset(start);
-			message.setLength(length);
-			message.setLineNo(lineNo);
-			
-			AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.MissingClosingBracket, null);
-			((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-		}
-	}
-
-	private void checkEmptyTag(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-        
-        if(structuredDocumentRegion.isDeleted())
-            return;
-        
-		// navigate to name
-		ITextRegionList regions = structuredDocumentRegion.getRegions();
-		if (regions.size() == 2) {
-			// missing name region
-			if (regions.get(0).getType() == DOMRegionContext.XML_TAG_OPEN && regions.get(1).getType() == DOMRegionContext.XML_TAG_CLOSE) {
-				String messageText = XMLUIMessages.ReconcileStepForMarkup_3;
-				int start = structuredDocumentRegion.getStartOffset();
-				int length = structuredDocumentRegion.getLength();
-				int lineNo = getLineNumber(start);
-				
-				LocalizedMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-				message.setOffset(start);
-				message.setLength(length);
-				message.setLineNo(lineNo);
-				
-				AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.EmptyTag, null);
-				((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-			}
-		}
-	}
-
-	private int getLineNumber(int start) {
-		int lineNo = -1;
-		try {
-			lineNo = getDocument().getLineOfOffset(start);
-		}
-		catch (BadLocationException e) {
-			Logger.logException(e);
-		}
-		return lineNo;
-	}
-
-	private void checkForAttributeValue(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-        
-        if(structuredDocumentRegion.isDeleted())
-            return;
-        
-		// check for attributes without a value
-		// track the attribute/equals/value sequence using a state of 0, 1 ,2
-		// representing the name, =, and value, respectively
-		int attrState = 0;
-		ITextRegionList textRegions = structuredDocumentRegion.getRegions();
-		// ReconcileAnnotationKey key = createKey(structuredDocumentRegion, getScope());
-		
-		int errorCount = 0;
-		for (int i = 0; i < textRegions.size() && errorCount < AbstractStructuredTextReconcilingStrategy.ELEMENT_ERROR_LIMIT; i++) {
-			ITextRegion textRegion = textRegions.get(i);
-			if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_NAME || isTagCloseTextRegion(textRegion)) {
-				// dangling name and '='
-				if (attrState == 2 && i >= 2) {
-					// create annotation
-					ITextRegion nameRegion = textRegions.get(i - 2);
-					Object[] args = {structuredDocumentRegion.getText(nameRegion)};
-					String messageText = NLS.bind(XMLUIMessages.Attribute__is_missing_a_value, args);
-					
-					int start = structuredDocumentRegion.getStartOffset(nameRegion);
-					int end = structuredDocumentRegion.getEndOffset();
-					int lineNo = getLineNumber(start);
-					int textLength = structuredDocumentRegion.getText(nameRegion).trim().length();
-					
-					LocalizedMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-					message.setOffset(start);
-					message.setLength(textLength);
-					message.setLineNo(lineNo);
-					
-					// quick fix info
-					ITextRegion equalsRegion = textRegions.get(i - 2 + 1);
-					int insertOffset = structuredDocumentRegion.getTextEndOffset(equalsRegion) - end;
-					Object[] additionalFixInfo = {structuredDocumentRegion.getText(nameRegion), new Integer(insertOffset)};
-					
-					AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.MissingAttrValue, additionalFixInfo);
-					
-					((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-					
-					// annotation.setAdditionalFixInfo(additionalFixInfo);
-					//results.add(annotation);
-					errorCount++;
-				}
-				// name but no '=' (XML only)
-				else if (attrState == 1 && i >= 1) {
-					// create annotation
-					ITextRegion previousRegion = textRegions.get(i - 1);
-					Object[] args = {structuredDocumentRegion.getText(previousRegion)};
-					String messageText = NLS.bind(XMLUIMessages.Attribute__has_no_value, args);
-					int start = structuredDocumentRegion.getStartOffset(previousRegion);
-					int textLength = structuredDocumentRegion.getText(previousRegion).trim().length();
-					int lineNo = getLineNumber(start);
-					
-					LocalizedMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-					message.setOffset(start);
-					message.setLength(textLength);
-					message.setLineNo(lineNo);
-					
-					AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.NoAttrValue, structuredDocumentRegion.getText(previousRegion));
-			
-					((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-					
-					errorCount++;
-				}
-				attrState = 1;
-			} else if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
-				attrState = 2;
-			} else if (textRegion.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
-				attrState = 0;
-			}
-		}
-
-	}
-
-	private void checkForSpaceBeforeName(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-        
-        if(structuredDocumentRegion.isDeleted())
-            return;
-        
-		String sdRegionText = structuredDocumentRegion.getFullText();
-		if (sdRegionText.startsWith(" ")) { //$NON-NLS-1$
-			IStructuredDocumentRegion prev = structuredDocumentRegion.getPrevious();
-			if (prev != null) {
-				// this is possibly the case of "< tag"
-				if (prev.getRegions().size() == 1 && isStartTag(prev)) {
-					// add the error for preceding space in tag name
-					String messageText = XMLUIMessages.ReconcileStepForMarkup_2;
-					int start = structuredDocumentRegion.getStartOffset();
-					// find length of whitespace
-					int length = sdRegionText.trim().equals("") ? sdRegionText.length() : sdRegionText.indexOf(sdRegionText.trim()); //$NON-NLS-1$
-					
-					LocalizedMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-					message.setOffset(start);
-					message.setLength(length);
-					message.setLineNo(getLineNumber(start));
-					
-					AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.SpacesBeforeTagName, null);
-					((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-				}
-			}
-		}
-	}
-
-	private void checkNoNamespaceInPI(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-        
-        if(structuredDocumentRegion.isDeleted())
-            return;
-        
-		// navigate to name
-		ITextRegionList regions = structuredDocumentRegion.getRegions();
-		ITextRegion r = null;
-		int errorCount = 0;
-		for (int i = 0; i < regions.size() && errorCount < AbstractStructuredTextReconcilingStrategy.ELEMENT_ERROR_LIMIT && !structuredDocumentRegion.isDeleted(); i++) {
-			r = regions.get(i);
-			if (r.getType() == DOMRegionContext.XML_TAG_NAME) {
-				String piText = structuredDocumentRegion.getText(r);
-				int index = piText.indexOf(":"); //$NON-NLS-1$
-				if (index != -1) {
-					String messageText = XMLUIMessages.ReconcileStepForMarkup_4;
-					int start = structuredDocumentRegion.getStartOffset(r) + index;
-					int length = piText.trim().length() - index;
-					
-					LocalizedMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-					message.setOffset(start);
-					message.setLength(length);
-					message.setLineNo(getLineNumber(start));
-					
-					AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.NamespaceInPI, null);
-					((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-
-					errorCount++;
-				}
-			}
-		}
-	}
-
-	private void checkQuotesForAttributeValues(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-		ITextRegionList regions = structuredDocumentRegion.getRegions();
-		ITextRegion r = null;
-		String attrValueText = ""; //$NON-NLS-1$
-		int errorCount = 0;
-		for (int i = 0; i < regions.size() && errorCount < AbstractStructuredTextReconcilingStrategy.ELEMENT_ERROR_LIMIT; i++) {
-			r = regions.get(i);
-			if (r.getType() != DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE)
-				continue;
-
-			attrValueText = structuredDocumentRegion.getText(r);
-			// attribute value includes quotes in the string
-			// split up attribute value on quotes
-			/*
-			 * WORKAROUND till
-			 * http://dev.icu-project.org/cgi-bin/icu-bugs/incoming?findid=5207
-			 * is fixed. (Also see BUG143628)
-			 */
-
-			java.util.StringTokenizer st = new java.util.StringTokenizer(attrValueText, "\"'", true); //$NON-NLS-1$
-			int size = st.countTokens();
-			// get the pieces of the attribute value
-			String one = "", two = ""; //$NON-NLS-1$ //$NON-NLS-2$
-			if (size > 0)
-				one = st.nextToken();
-			if (size > 1)
-				two = st.nextToken();
-			if (size > 2) {
-				// should be handled by parsing...
-				// as in we can't have an attribute value like: <element
-				// attr="a"b"c"/>
-				// and <element attr='a"b"c' /> is legal
-				continue;
-			}
-
-
-			if (size == 1) {
-				if (one.equals(DQUOTE) || one.equals(SQUOTE)) {
-					// missing closing quote
-					String message = XMLUIMessages.ReconcileStepForMarkup_0;
-					addAttributeError(message, attrValueText, structuredDocumentRegion.getStartOffset(r), attrValueText.trim().length(), ProblemIDsXML.Unclassified, structuredDocumentRegion, reporter);
-					errorCount++;
-				} else {
-					// missing both
-					String message = XMLUIMessages.ReconcileStepForMarkup_1;
-					addAttributeError(message, attrValueText, structuredDocumentRegion.getStartOffset(r), attrValueText.trim().length(), ProblemIDsXML.AttrValueNotQuoted, structuredDocumentRegion, reporter);
-					errorCount++;
-				}
-			} else if (size == 2) {
-				if (one.equals(SQUOTE) && !two.equals(SQUOTE) || one.equals(DQUOTE) && !two.equals(DQUOTE)) {
-					// missing closing quote
-					String message = XMLUIMessages.ReconcileStepForMarkup_0;
-					addAttributeError(message, attrValueText, structuredDocumentRegion.getStartOffset(r), attrValueText.trim().length(), ProblemIDsXML.Unclassified, structuredDocumentRegion, reporter);
-					errorCount++;
-				}
-			}
-		}
-		// end of region for loop
-	}
-
-	private void checkStartEndTagPairs(IStructuredDocumentRegion sdRegion, IReporter reporter) {
-        
-        if(sdRegion.isDeleted())
-            return;
-        
-		// check start/end tag pairs
-		IDOMNode xmlNode = getXMLNode(sdRegion);
-        
-        if(xmlNode == null)
-            return;
-        
-		boolean selfClosed = false;
-		String tagName = null;
-		int length = 0;
-
-		if (xmlNode.isContainer()) {
-			IStructuredDocumentRegion endRegion = xmlNode.getEndStructuredDocumentRegion();
-			if (endRegion == null) {
-                IStructuredDocumentRegion startRegion = xmlNode.getStartStructuredDocumentRegion();
-                if(!startRegion.isDeleted()) {
-    				// analyze the tag (check self closing)
-    				ITextRegionList regions = startRegion.getRegions();
-    				ITextRegion r = null;
-    				for (int i = 0; i < regions.size(); i++) {
-    					r = regions.get(i);
-    					if (r.getType() == DOMRegionContext.XML_TAG_OPEN || r.getType() == DOMRegionContext.XML_TAG_CLOSE) {
-    						length++;
-    					} else if (r.getType() == DOMRegionContext.XML_TAG_NAME) {
-    						tagName = sdRegion.getText(r);
-    						length += tagName.length();
-    					} else if (r.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE) {
-    						selfClosed = true;
-    					}
-    				}
-    
-    				if (!selfClosed && tagName != null) {
-    					Object[] args = {tagName};
-    					String messageText = NLS.bind(XMLUIMessages.Missing_end_tag_, args);
-    
-    					int start = sdRegion.getStart();
-    					int lineNumber = getLineNumber(start);
-    					
-    					//SEVERITY_STRUCTURE == IMessage.HIGH_SEVERITY
-    					IMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-    					message.setOffset(start);
-    					message.setLength(length);
-    					message.setLineNo(lineNumber);
-    					
-    					if(reporter instanceof IncrementalReporter) {
-    						
-        					Object[] additionalFixInfo = getStartEndFixInfo(xmlNode, tagName, r);
-        					
-        					AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.MissingEndTag, additionalFixInfo);
-        					//annotation.setAdditionalFixInfo(additionalFixInfo);
-        					((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-    					}
-    					else {
-    						reporter.addMessage(this, message);
-    					}
-    				}
-    			}
-            }
-
-		}
-	}
-
-	private Object[] getStartEndFixInfo(IDOMNode xmlNode, String tagName, ITextRegion r) {
-		// quick fix info
-		String tagClose = "/>"; //$NON-NLS-1$
-		int tagCloseOffset = xmlNode.getFirstStructuredDocumentRegion().getEndOffset();
-		if (r != null && r.getType() == DOMRegionContext.XML_TAG_CLOSE) {
-			tagClose = "/"; //$NON-NLS-1$
-			tagCloseOffset--;
-		}
-		IDOMNode firstChild = (IDOMNode) xmlNode.getFirstChild();
-		while (firstChild != null && firstChild.getNodeType() == Node.TEXT_NODE) {
-			firstChild = (IDOMNode) firstChild.getNextSibling();
-		}
-		int endOffset = xmlNode.getEndOffset();
-		int firstChildStartOffset = firstChild == null ? endOffset : firstChild.getStartOffset();
-		Object[] additionalFixInfo = {tagName, tagClose, new Integer(tagCloseOffset), new Integer(xmlNode.getFirstStructuredDocumentRegion().getEndOffset()), // startTagEndOffset
-					new Integer(firstChildStartOffset), // firstChildStartOffset
-					new Integer(endOffset)}; // endOffset
-		return additionalFixInfo;
-	}
-
-	private void checkStartingSpaceForPI(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-        
-        if(structuredDocumentRegion.isDeleted())
-            return;
-        
-		IStructuredDocumentRegion prev = structuredDocumentRegion.getPrevious();
-		if (prev != null && !prev.isDeleted()) {
-			String prevText = prev.getFullText();
-			if (prev.getType() == DOMRegionContext.XML_CONTENT && prevText.endsWith(" ")) { //$NON-NLS-1$
-				String messageText = XMLUIMessages.ReconcileStepForMarkup_5;
-				int start = prev.getStartOffset();
-				int length = prev.getLength();
-				
-				LocalizedMessage message = new LocalizedMessage(IMessage.HIGH_SEVERITY, messageText);
-				message.setOffset(start);
-				message.setLength(length);
-				message.setLineNo(getLineNumber(start));
-				
-				AnnotationInfo info = new AnnotationInfo(message, ProblemIDsXML.SpacesBeforePI, null);
-				((IncrementalReporter)reporter).addAnnotationInfo(this, info);
-				
-//				Position p = new Position(start, length);
-//				
-//				ReconcileAnnotationKey key = createKey(structuredDocumentRegion, getScope());
-//				TemporaryAnnotation annotation = new TemporaryAnnotation(p, SEVERITY_SYNTAX_ERROR, message, key, ProblemIDsXML.SpacesBeforePI);
-//				results.add(annotation);
-			}
-		}
-	}
-
-	public int getScope() {
-		return ReconcileAnnotationKey.PARTIAL;
-	}
-
-	private IDOMNode getXMLNode(IStructuredDocumentRegion sdRegion) {
-        
-        if(sdRegion == null)
-            return null;
-        
-		IStructuredModel xModel = null;
-		IDOMNode xmlNode = null;
-		// get/release models should always be in a try/finally block
-		try {
-			xModel = StructuredModelManager.getModelManager().getExistingModelForRead(getDocument());
-			// xModel is sometime null, when closing editor, for example
-			if (xModel != null) {
-				xmlNode = (IDOMNode) xModel.getIndexedRegion(sdRegion.getStart());
-			}
-		} finally {
-			if (xModel != null) {
-				xModel.releaseFromRead();
-			}
-		}
-		return xmlNode;
-	}
-
-	/**
-	 * Determines whether the IStructuredDocumentRegion is a XML "end tag"
-	 * since they're not allowed to have attribute ITextRegions
-	 * 
-	 * @param structuredDocumentRegion
-	 */
-	private boolean isEndTag(IStructuredDocumentRegion structuredDocumentRegion) {
-		if (structuredDocumentRegion == null || structuredDocumentRegion.isDeleted())
-			return false;
-		return structuredDocumentRegion.getFirstRegion().getType() == DOMRegionContext.XML_END_TAG_OPEN;
-	}
-
-	/**
-	 * Determines if the IStructuredDocumentRegion is an XML Processing
-	 * Instruction
-	 * 
-	 * @param structuredDocumentRegion
-	 * 
-	 */
-	private boolean isPI(IStructuredDocumentRegion structuredDocumentRegion) {
-        if (structuredDocumentRegion == null || structuredDocumentRegion.isDeleted())
-            return false;
-		return structuredDocumentRegion.getFirstRegion().getType() == DOMRegionContext.XML_PI_OPEN;
-	}
-
-	/**
-	 * Determines whether the IStructuredDocumentRegion is a XML "start tag"
-	 * since they need to be checked for proper XML attribute region sequences
-	 * 
-	 * @param structuredDocumentRegion
-	 * 
-	 */
-	private boolean isStartTag(IStructuredDocumentRegion structuredDocumentRegion) {
-		if (structuredDocumentRegion == null || structuredDocumentRegion.isDeleted())
-			return false;
-		return structuredDocumentRegion.getFirstRegion().getType() == DOMRegionContext.XML_TAG_OPEN;
-	}
-
-	// Because we check the "proper" closing separately from attribute
-	// sequencing, we need to know what's
-	// an appropriate close.
-	private boolean isTagCloseTextRegion(ITextRegion textRegion) {
-		return textRegion.getType() == DOMRegionContext.XML_TAG_CLOSE || textRegion.getType() == DOMRegionContext.XML_EMPTY_TAG_CLOSE;
-	}
-
-	/**
-	 * Determines if the IStructuredDocumentRegion is XML Content
-	 * 
-	 * @param structuredDocumentRegion
-	 * 
-	 */
-	private boolean isXMLContent(IStructuredDocumentRegion structuredDocumentRegion) {
-        if(structuredDocumentRegion == null || structuredDocumentRegion.isDeleted())
-            return false;
-		return structuredDocumentRegion.getFirstRegion().getType() == DOMRegionContext.XML_CONTENT;
-	}
-
-	private void setDocument(IDocument doc){
-		fDocument = doc;
-	}
-	private IDocument getDocument() {
-		return fDocument;
-	}
-	
-	public void connect(IDocument document) {
-		setDocument(document);
-	}
-
-	public void disconnect(IDocument document) {
-		// nothing to do	
-	}
-
-	public void validate(IRegion dirtyRegion, IValidationContext helper, IReporter reporter) {
-		if(getDocument() == null)
-			return;
-		if(!(reporter instanceof IncrementalReporter))
-			return;
-		if(!(getDocument() instanceof IStructuredDocument))
-			return;
-
-		// remove old messages
-		reporter.removeAllMessages(this);
-		
-		IStructuredDocumentRegion[] regions = ((IStructuredDocument)fDocument).getStructuredDocumentRegions(dirtyRegion.getOffset(), dirtyRegion.getLength());
-		for (int i = 0; i < regions.length; i++) {
-			validate(regions[i], reporter);
-		}
-	}
-	
-	public void validate(IStructuredDocumentRegion structuredDocumentRegion, IReporter reporter) {
-
-		if (structuredDocumentRegion == null)
-			return;
-		
-		if (isStartTag(structuredDocumentRegion)) {
-			// check for attributes without a value
-			checkForAttributeValue(structuredDocumentRegion, reporter);
-			// check if started tag is ended
-			checkStartEndTagPairs(structuredDocumentRegion, reporter);		
-			// check empty tag <>
-			checkEmptyTag(structuredDocumentRegion, reporter);
-			// check that each attribute has quotes
-			checkQuotesForAttributeValues(structuredDocumentRegion, reporter);
-			// check that the closing '>' is there
-			checkClosingBracket(structuredDocumentRegion, reporter);
-		} else if (isEndTag(structuredDocumentRegion)) {
-			checkAttributesInEndTag(structuredDocumentRegion, reporter);
-			// check that the closing '>' is there
-			checkClosingBracket(structuredDocumentRegion, reporter);
-		} else if (isPI(structuredDocumentRegion)) {
-			// check validity of processing instruction
-			checkStartingSpaceForPI(structuredDocumentRegion, reporter);
-			checkNoNamespaceInPI(structuredDocumentRegion, reporter);
-		} else if (isXMLContent(structuredDocumentRegion)) {
-			checkForSpaceBeforeName(structuredDocumentRegion, reporter);
-		}
-	}
-
-	public void cleanup(IReporter reporter) {
-		// TODO Auto-generated method stub
-		
-	}
-
-	public void validate(IValidationContext helper, IReporter reporter) throws ValidationException {
-		// TODO Auto-generated method stub
-		
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/views/contentoutline/XMLContentOutlineConfiguration.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/views/contentoutline/XMLContentOutlineConfiguration.java
deleted file mode 100644
index b4be68a..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/views/contentoutline/XMLContentOutlineConfiguration.java
+++ /dev/null
@@ -1,521 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.wst.xml.ui.views.contentoutline;
-
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.util.LocalSelectionTransfer;
-import org.eclipse.jface.util.SafeRunnable;
-import org.eclipse.jface.util.TransferDragSourceListener;
-import org.eclipse.jface.util.TransferDropTargetListener;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.dnd.DND;
-import org.eclipse.swt.dnd.DragSourceEvent;
-import org.eclipse.swt.dnd.DropTargetEvent;
-import org.eclipse.swt.dnd.Transfer;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.sse.ui.internal.IReleasable;
-import org.eclipse.wst.sse.ui.internal.contentoutline.PropertyChangeUpdateAction;
-import org.eclipse.wst.sse.ui.internal.contentoutline.PropertyChangeUpdateActionContributionItem;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImageHelper;
-import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImages;
-import org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.XMLUIPlugin;
-import org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeContentProvider;
-import org.eclipse.wst.xml.ui.internal.contentoutline.JFaceNodeLabelProvider;
-import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
-import org.eclipse.wst.xml.ui.internal.dnd.DragNodeCommand;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * Outline Configuration for generic XML support, expects that the viewer's
- * input will be the DOM Model.
- * 
- * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration
- * @since 1.0
- */
-public class XMLContentOutlineConfiguration extends ContentOutlineConfiguration {
-	private class ActionManagerMenuListener implements IMenuListener, IReleasable {
-		private XMLNodeActionManager fActionManager;
-		private TreeViewer fTreeViewer;
-
-		public ActionManagerMenuListener(TreeViewer viewer) {
-			fTreeViewer = viewer;
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.action.IMenuListener#menuAboutToShow(org.eclipse.jface.action.IMenuManager)
-		 */
-		public void menuAboutToShow(IMenuManager manager) {
-			if (fActionManager == null) {
-				fActionManager = createNodeActionManager(fTreeViewer);
-			}
-			fActionManager.fillContextMenu(manager, fTreeViewer.getSelection());
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.ui.internal.IReleasable#release()
-		 */
-		public void release() {
-			fTreeViewer = null;
-			if (fActionManager != null) {
-				fActionManager.setModel(null);
-			}
-		}
-	}
-
-	private class AttributeShowingLabelProvider extends JFaceNodeLabelProvider {
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-		 */
-		public String getText(Object o) {
-			StringBuffer text = new StringBuffer(super.getText(o));
-			if (o instanceof Node) {
-				Node node = (Node) o;
-				if (node.getNodeType() == Node.ELEMENT_NODE && fShowAttributes) {
-					// https://bugs.eclipse.org/bugs/show_bug.cgi?id=88444
-					if (node.hasAttributes()) {
-						Element element = (Element) node;
-						NamedNodeMap attributes = element.getAttributes();
-						Node idTypedAttribute = null;
-						Node requiredAttribute = null;
-						boolean hasId = false;
-						boolean hasName = false;
-						Node shownAttribute = null;
-
-						// try to get content model element
-						// declaration
-						CMElementDeclaration elementDecl = null;
-						ModelQuery mq = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-						if (mq != null) {
-							elementDecl = mq.getCMElementDeclaration(element);
-						}
-						// find an attribute of type (or just named)
-						// ID
-						if (elementDecl != null) {
-							int i = 0;
-							while (i < attributes.getLength() && idTypedAttribute == null) {
-								Node attr = attributes.item(i);
-								String attrName = attr.getNodeName();
-								CMAttributeDeclaration attrDecl = (CMAttributeDeclaration) elementDecl.getAttributes().getNamedItem(attrName);
-								if (attrDecl != null) {
-									if ((attrDecl.getAttrType() != null) && (CMDataType.ID.equals(attrDecl.getAttrType().getDataTypeName()))) {
-										idTypedAttribute = attr;
-									}
-									else if (attrDecl.getUsage() == CMAttributeDeclaration.REQUIRED && requiredAttribute == null) {
-										// as a backup, keep tabs on
-										// any required
-										// attributes
-										requiredAttribute = attr;
-									}
-									else {
-										hasId = hasId || attrName.equals("id"); //$NON-NLS-1$
-										hasName = hasName || attrName.equals("name"); //$NON-NLS-1$
-									}
-								}
-								++i;
-							}
-						}
-
-						/*
-						 * If no suitable attribute was found, try using a
-						 * required attribute, if none, then prefer "id" or
-						 * "name", otherwise just use first attribute
-						 */
-						if (idTypedAttribute != null) {
-							shownAttribute = idTypedAttribute;
-						}
-						else if (requiredAttribute != null) {
-							shownAttribute = requiredAttribute;
-						}
-						else if (hasId) {
-							shownAttribute = attributes.getNamedItem("id"); //$NON-NLS-1$
-						}
-						else if (hasName) {
-							shownAttribute = attributes.getNamedItem("name"); //$NON-NLS-1$
-						}
-						if (shownAttribute == null) {
-							shownAttribute = attributes.item(0);
-						}
-
-						// display the attribute and value (without quotes)
-						String attributeName = shownAttribute.getNodeName();
-						if (attributeName != null && attributeName.length() > 0) {
-							text.append(" " + attributeName); //$NON-NLS-1$
-							String attributeValue = shownAttribute.getNodeValue();
-							if (attributeValue != null && attributeValue.length() > 0) {
-								text.append("=" + StringUtils.strip(attributeValue)); //$NON-NLS-1$
-							}
-						}
-					}
-				}
-			}
-			return text.toString();
-		}
-	}
-
-	/**
-	 * Toggle action for whether or not to display element's first attribute
-	 */
-	private class ToggleShowAttributeAction extends PropertyChangeUpdateAction {
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=88444
-		private TreeViewer fTreeViewer;
-
-		public ToggleShowAttributeAction(IPreferenceStore store, String preference, TreeViewer treeViewer) {
-			super(XMLUIMessages.XMLContentOutlineConfiguration_0, store, preference, true);
-			setToolTipText(getText());
-			// images needed
-			// setDisabledImageDescriptor(SYNCED_D);
-			// (nsd) temporarily re-use Properties view image
-			setImageDescriptor(EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_OBJ_PROP_PS));
-			fTreeViewer = treeViewer;
-			update();
-		}
-
-		/*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.ui.texteditor.IUpdate#update()
-		 */
-		public void update() {
-			super.update();
-			fShowAttributes = isChecked();
-
-			// notify the configuration of the change
-			enableShowAttributes(fShowAttributes, fTreeViewer);
-
-			// refresh the outline view
-			fTreeViewer.refresh(true);
-		}
-	}
-
-	private IContentProvider fContentProvider = null;
-
-	private ActionManagerMenuListener fContextMenuFiller = null;
-
-	private ILabelProvider fLabelProvider = null;
-
-	boolean fShowAttributes = false;
-
-	private TransferDragSourceListener[] fTransferDragSourceListeners;
-	private TransferDropTargetListener[] fTransferDropTargetListeners;
-
-	/*
-	 * Preference key for Show Attributes
-	 */
-	private final String OUTLINE_SHOW_ATTRIBUTE_PREF = "outline-show-attribute-editor"; //$NON-NLS-1$
-
-	/**
-	 * Create new instance of XMLContentOutlineConfiguration
-	 */
-	public XMLContentOutlineConfiguration() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#createMenuContributions(org.eclipse.jface.viewers.TreeViewer)
-	 */
-	protected IContributionItem[] createMenuContributions(TreeViewer viewer) {
-		IContributionItem[] items;
-		// https://bugs.eclipse.org/bugs/show_bug.cgi?id=88444
-		IContributionItem showAttributeItem = new PropertyChangeUpdateActionContributionItem(new ToggleShowAttributeAction(getPreferenceStore(), OUTLINE_SHOW_ATTRIBUTE_PREF, viewer));
-		items = super.createMenuContributions(viewer);
-		if (items == null) {
-			items = new IContributionItem[]{showAttributeItem};
-		}
-		else {
-			IContributionItem[] combinedItems = new IContributionItem[items.length + 1];
-			System.arraycopy(items, 0, combinedItems, 0, items.length);
-			combinedItems[items.length] = showAttributeItem;
-			items = combinedItems;
-		}
-		return items;
-	}
-
-	/**
-	 * Returns the NodeActionManager to use for the given treeViewer.
-	 * <p>
-	 * Not API. May be removed in the future.
-	 * </p>
-	 * 
-	 * @param treeViewer
-	 *            the TreeViewer associated with this configuration
-	 * @return a node action manager for use with this tree viewer
-	 */
-	protected XMLNodeActionManager createNodeActionManager(TreeViewer treeViewer) {
-		return new XMLNodeActionManager((IStructuredModel) treeViewer.getInput(), treeViewer);
-	}
-
-	/**
-	 * Notifies this configuration that the flag that indicates whether or not
-	 * to show attribute values in the tree viewer has changed. The tree
-	 * viewer is automatically refreshed afterwards to update the labels.
-	 * 
-	 * Clients should not call this method, but rather should react to it.
-	 * 
-	 * @param showAttributes
-	 *            flag indicating whether or not to show attribute values in
-	 *            the tree viewer
-	 * @param treeViewer
-	 *            the TreeViewer associated with this configuration
-	 */
-	protected void enableShowAttributes(boolean showAttributes, TreeViewer treeViewer) {
-		// nothing by default
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#getContentProvider(org.eclipse.jface.viewers.TreeViewer)
-	 */
-	public IContentProvider getContentProvider(TreeViewer viewer) {
-		if (fContentProvider == null) {
-			fContentProvider = new JFaceNodeContentProvider();
-		}
-		return fContentProvider;
-	}
-
-	private Object getFilteredNode(Object object) {
-		if (object instanceof Node) {
-			Node node = (Node) object;
-
-			// replace attribute node in selection with its parent
-			if (node.getNodeType() == Node.ATTRIBUTE_NODE)
-				node = ((Attr) node).getOwnerElement();
-			// replace TextNode in selection with its parent
-			else if (node.getNodeType() == Node.TEXT_NODE)
-				node = node.getParentNode();
-			return node;
-		}
-		return object;
-	}
-
-	private Object[] getFilteredNodes(Object[] filteredNodes) {
-		for (int i = 0; i < filteredNodes.length; i++) {
-			filteredNodes[i] = getFilteredNode(filteredNodes[i]);
-		}
-		return filteredNodes;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#getLabelProvider(org.eclipse.jface.viewers.TreeViewer)
-	 */
-	public ILabelProvider getLabelProvider(TreeViewer viewer) {
-		if (fLabelProvider == null) {
-			fLabelProvider = new AttributeShowingLabelProvider();
-		}
-		return fLabelProvider;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#getMenuListener(org.eclipse.jface.viewers.TreeViewer)
-	 */
-	public IMenuListener getMenuListener(TreeViewer viewer) {
-		if (fContextMenuFiller == null) {
-			fContextMenuFiller = new ActionManagerMenuListener(viewer);
-		}
-		return fContextMenuFiller;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#getPreferenceStore()
-	 */
-	protected IPreferenceStore getPreferenceStore() {
-		return XMLUIPlugin.getDefault().getPreferenceStore();
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#getSelection(org.eclipse.jface.viewers.TreeViewer,
-	 *      org.eclipse.jface.viewers.ISelection)
-	 */
-	public ISelection getSelection(TreeViewer viewer, ISelection selection) {
-		ISelection filteredSelection = selection;
-		if (selection instanceof IStructuredSelection) {
-			Object[] filteredNodes = getFilteredNodes(((IStructuredSelection) selection).toArray());
-			filteredSelection = new StructuredSelection(filteredNodes);
-		}
-		return filteredSelection;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#getTransferDragSourceListeners(org.eclipse.jface.viewers.TreeViewer)
-	 */
-	public TransferDragSourceListener[] getTransferDragSourceListeners(final TreeViewer treeViewer) {
-		if (fTransferDragSourceListeners == null) {
-			fTransferDragSourceListeners = new TransferDragSourceListener[]{new TransferDragSourceListener() {
-
-				public void dragFinished(DragSourceEvent event) {
-					LocalSelectionTransfer.getTransfer().setSelection(null);
-				}
-
-				public void dragSetData(DragSourceEvent event) {
-				}
-
-				public void dragStart(DragSourceEvent event) {
-					LocalSelectionTransfer.getTransfer().setSelection(treeViewer.getSelection());
-				}
-
-				public Transfer getTransfer() {
-					return LocalSelectionTransfer.getTransfer();
-				}
-			}};
-		}
-
-		return fTransferDragSourceListeners;
-	}
-	 
-	 /*
-		 * (non-Javadoc)
-		 * 
-		 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#getTransferDropTargetListeners(org.eclipse.jface.viewers.TreeViewer)
-		 */
-	public TransferDropTargetListener[] getTransferDropTargetListeners(final TreeViewer treeViewer) {
-		if (fTransferDropTargetListeners == null) {
-			fTransferDropTargetListeners = new TransferDropTargetListener[]{new TransferDropTargetListener() {
-				public void dragEnter(DropTargetEvent event) {
-				}
-
-				public void dragLeave(DropTargetEvent event) {
-				}
-
-				public void dragOperationChanged(DropTargetEvent event) {
-				}
-
-				public void dragOver(DropTargetEvent event) {
-					event.feedback = DND.FEEDBACK_SELECT;
-					float feedbackFloat = getHeightInItem(event);
-					if (feedbackFloat > 0.75) {
-						event.feedback = DND.FEEDBACK_INSERT_AFTER;
-					}
-					else if (feedbackFloat < 0.25) {
-						event.feedback = DND.FEEDBACK_INSERT_BEFORE;
-					}
-					event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL;
-				}
-
-				public void drop(DropTargetEvent event) {
-					if (event.operations != DND.DROP_NONE && LocalSelectionTransfer.getTransfer().getSelection() != null && !LocalSelectionTransfer.getTransfer().getSelection().isEmpty()) {
-						IStructuredSelection selection = (IStructuredSelection) LocalSelectionTransfer.getTransfer().getSelection();
-						if (selection != null && !selection.isEmpty() && event.item != null && event.item.getData() != null) {
-							/*
-							 * the command uses these numbers instead of the
-							 * feedback constants (even though it converts in
-							 * the other direction as well)
-							 */
-							float feedbackFloat = getHeightInItem(event);
-
-							final DragNodeCommand command = new DragNodeCommand(event.item.getData(), feedbackFloat, event.operations, event.detail, selection.toList(), treeViewer);
-							if (command != null && command.canExecute()) {
-								SafeRunnable.run(new SafeRunnable() {
-									public void run() throws Exception {
-										command.execute();
-									}
-								});
-							}
-						}
-					}
-				}
-
-				public void dropAccept(DropTargetEvent event) {
-				}
-
-				private float getHeightInItem(DropTargetEvent event) {
-					if (event.item == null)
-						return .5f;
-					if (event.item instanceof TreeItem) {
-						TreeItem treeItem = (TreeItem) event.item;
-						Control control = treeItem.getParent();
-						Point point = control.toControl(new Point(event.x, event.y));
-						Rectangle bounds = treeItem.getBounds();
-						return (float) (point.y - bounds.y) / (float) bounds.height;
-					}
-					else if (event.item instanceof TableItem) {
-						TableItem tableItem = (TableItem) event.item;
-						Control control = tableItem.getParent();
-						Point point = control.toControl(new Point(event.x, event.y));
-						Rectangle bounds = tableItem.getBounds(0);
-						return (float) (point.y - bounds.y) / (float) bounds.height;
-					}
-					else {
-						return 0.0F;
-					}
-				}
-
-				public Transfer getTransfer() {
-					return LocalSelectionTransfer.getTransfer();
-				}
-
-				public boolean isEnabled(DropTargetEvent event) {
-					return getTransfer().isSupportedType(event.currentDataType);
-				}
-			}};
-		}
-		return fTransferDropTargetListeners;
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.wst.sse.ui.views.contentoutline.ContentOutlineConfiguration#unconfigure(org.eclipse.jface.viewers.TreeViewer)
-	 */
-	public void unconfigure(TreeViewer viewer) {
-		super.unconfigure(viewer);
-		fTransferDragSourceListeners = null;
-		fTransferDropTargetListeners = null;
-		if (fContextMenuFiller != null) {
-			fContextMenuFiller.release();
-			fContextMenuFiller = null;
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/views/properties/XMLPropertySheetConfiguration.java b/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/views/properties/XMLPropertySheetConfiguration.java
deleted file mode 100644
index b578055..0000000
--- a/bundles/org.eclipse.wst.xml.ui/src/org/eclipse/wst/xml/ui/views/properties/XMLPropertySheetConfiguration.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xml.ui.views.properties;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.progress.UIJob;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.ui.views.properties.IPropertySource;
-import org.eclipse.ui.views.properties.IPropertySourceProvider;
-import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManagerListener;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.properties.XMLPropertySource;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/**
- * Configuration for property sheet page which shows XML content.
- * 
- * @see org.eclipse.wst.sse.ui.views.properties.PropertySheetConfiguration
- * @since 1.0
- */
-public class XMLPropertySheetConfiguration extends PropertySheetConfiguration {
-	private class CMDocumentManagerListenerImpl implements CMDocumentManagerListener {
-		public void cacheCleared(CMDocumentCache cache) {
-			// nothing to do
-		}
-
-		public void cacheUpdated(CMDocumentCache cache, final String uri, int oldStatus, int newStatus, CMDocument cmDocument) {
-			if (newStatus == CMDocumentCache.STATUS_LOADED || newStatus == CMDocumentCache.STATUS_ERROR) {
-				refreshPages();
-			}
-		}
-
-		public void propertyChanged(CMDocumentManager cmDocumentManager, String propertyName) {
-			if (cmDocumentManager.getPropertyEnabled(CMDocumentManager.PROPERTY_AUTO_LOAD)) {
-				refreshPages();
-			}
-		}
-
-		private void refreshPages() {
-			getPropertiesRefreshJob().addPropertySheetPage(fPropertySheetPage);
-			getPropertiesRefreshJob().schedule(PropertiesRefreshJob.UPDATE_DELAY);
-		}
-	}
-
-	private class PropertiesRefreshJob extends UIJob {
-		public static final int UPDATE_DELAY = 200;
-
-		private Set propertySheetPages = null;
-
-		public PropertiesRefreshJob() {
-			super(XMLUIMessages.JFaceNodeAdapter_1);
-			setSystem(true);
-			setPriority(Job.SHORT);
-			propertySheetPages = new HashSet(1);
-		}
-
-		void addPropertySheetPage(IPropertySheetPage page) {
-			propertySheetPages.add(page);
-			schedule(UPDATE_DELAY);
-		}
-
-		public IStatus runInUIThread(IProgressMonitor monitor) {
-			Object[] pages = propertySheetPages.toArray();
-			propertySheetPages.clear();
-
-			for (int i = 0; i < pages.length; i++) {
-				PropertySheetPage page = (PropertySheetPage) pages[i];
-				if (page.getControl() != null && !page.getControl().isDisposed()) {
-					page.refresh();
-				}
-			}
-
-			return Status.OK_STATUS;
-		}
-	}
-
-	private class XMLPropertySheetRefreshAdapter implements INodeAdapter {
-		public boolean isAdapterForType(Object type) {
-			return false;
-		}
-
-		public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) {
-			if (fPropertySheetPage != null) {
-				getPropertiesRefreshJob().addPropertySheetPage(fPropertySheetPage);
-			}
-		}
-	}
-
-	private class XMLPropertySourceProvider implements IPropertySourceProvider {
-		private IPropertySource fPropertySource = null;
-		private INodeNotifier fSource = null;
-
-		public IPropertySource getPropertySource(Object object) {
-			if (fSource != null && object.equals(fSource)) {
-				return fPropertySource;
-			}
-
-			if (object instanceof IDOMNode) {
-				fSource = (INodeNotifier) object;
-				fPropertySource = (IPropertySource) fSource.getAdapterFor(IPropertySource.class);
-				if (fPropertySource == null) {
-					fPropertySource = new XMLPropertySource((INodeNotifier) object);
-				}
-			}
-			else {
-				fSource = null;
-				fPropertySource = null;
-			}
-			return fPropertySource;
-		}
-	}
-
-	private CMDocumentManagerListenerImpl fCMDocumentManagerListener = new CMDocumentManagerListenerImpl();
-	private PropertiesRefreshJob fPropertiesRefreshJob = null;
-	IPropertySheetPage fPropertySheetPage = null;
-	private IPropertySourceProvider fPropertySourceProvider = null;
-	private INodeAdapter fRefreshAdapter = new XMLPropertySheetRefreshAdapter();
-	private CMDocumentManager[] fSelectedCMDocumentManagers = new CMDocumentManager[0];
-	private INodeNotifier[] fSelectedNotifiers = new INodeNotifier[0];
-
-
-	/**
-	 * Create new instance of XMLPropertySheetConfiguration
-	 */
-	public XMLPropertySheetConfiguration() {
-		// Must have empty constructor to createExecutableExtension
-		super();
-	}
-
-	public ISelection getInputSelection(IWorkbenchPart selectingPart, ISelection selection) {
-		if (fSelectedNotifiers != null) {
-			for (int i = 0; i < fSelectedNotifiers.length; i++) {
-				fSelectedNotifiers[i].removeAdapter(fRefreshAdapter);
-			}
-			fSelectedNotifiers = null;
-		}
-		for (int i = 0; i < fSelectedCMDocumentManagers.length; i++) {
-			fSelectedCMDocumentManagers[i].removeListener(fCMDocumentManagerListener);
-		}
-
-		ISelection preferredSelection = selection;
-		if (selection instanceof IStructuredSelection) {
-			IStructuredSelection structuredSel = (IStructuredSelection) selection;
-
-			/*
-			 * On Attr nodes, select the owner Element. On Text nodes, select
-			 * the parent Element.
-			 */
-			Object[] selectedObjects = new Object[structuredSel.size()];
-			System.arraycopy(structuredSel.toArray(), 0, selectedObjects, 0, selectedObjects.length);
-			for (int i = 0; i < selectedObjects.length; i++) {
-				Object inode = selectedObjects[i];
-				if (inode instanceof Node) {
-					Node node = (Node) inode;
-					// replace Attribute Node with its owner
-					Node parentNode = node.getParentNode();
-					if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
-						Element ownerElement = ((Attr) node).getOwnerElement();
-						selectedObjects[i] = ownerElement;
-					}
-					// replace Text Node with its parent
-					else if ((node.getNodeType() == Node.TEXT_NODE || (node.getNodeType() == Node.CDATA_SECTION_NODE)) && parentNode != null) {
-						selectedObjects[i] = parentNode;
-					}
-				}
-			}
-
-			if (selectedObjects.length > 0) {
-				Set managers = new HashSet(1);
-				Set selectedNotifiers = new HashSet(1);
-
-				for (int i = 0; i < selectedObjects.length; i++) {
-					if (selectedObjects[i] instanceof Node) {
-						ModelQuery query = ModelQueryUtil.getModelQuery(((Node) selectedObjects[i]).getOwnerDocument());
-						if (query != null) {
-							CMDocumentManager mgr = query.getCMDocumentManager();
-							if (mgr != null) {
-								managers.add(mgr);
-								mgr.addListener(fCMDocumentManagerListener);
-							}
-						}
-					}
-					/*
-					 * Add UI refresh adapters and remember notifiers for
-					 * later removal
-					 */
-					if (selectedObjects[i] instanceof INodeNotifier) {
-						selectedNotifiers.add(selectedObjects[i]);
-						((INodeNotifier) selectedObjects[i]).addAdapter(fRefreshAdapter);
-					}
-				}
-				fSelectedCMDocumentManagers = (CMDocumentManager[]) managers.toArray(new CMDocumentManager[managers.size()]);
-				fSelectedNotifiers = (INodeNotifier[]) selectedNotifiers.toArray(new INodeNotifier[selectedNotifiers.size()]);
-			}
-
-
-			preferredSelection = new StructuredSelection(selectedObjects);
-		}
-		return preferredSelection;
-	}
-
-	PropertiesRefreshJob getPropertiesRefreshJob() {
-		if (fPropertiesRefreshJob == null) {
-			fPropertiesRefreshJob = new PropertiesRefreshJob();
-		}
-		return fPropertiesRefreshJob;
-	}
-
-	public IPropertySourceProvider getPropertySourceProvider(IPropertySheetPage page) {
-		if (fPropertySourceProvider == null) {
-			fPropertySheetPage = page;
-			fPropertySourceProvider = new XMLPropertySourceProvider();
-		}
-		return fPropertySourceProvider;
-	}
-
-
-	public void unconfigure() {
-		super.unconfigure();
-		for (int i = 0; i < fSelectedCMDocumentManagers.length; i++) {
-			fSelectedCMDocumentManagers[i].removeListener(fCMDocumentManagerListener);
-		}
-		fPropertySheetPage = null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xml.ui/templates/xmldefault-templates.properties b/bundles/org.eclipse.wst.xml.ui/templates/xmldefault-templates.properties
deleted file mode 100644
index 731aef7..0000000
--- a/bundles/org.eclipse.wst.xml.ui/templates/xmldefault-templates.properties
+++ /dev/null
@@ -1,18 +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
-#     
-###############################################################################
-Templates.comment.name=comment
-Templates.comment.desc=xml comment
-Templates.xmldeclaration.name=xml declaration
-Templates.xmldeclaration.desc=xml declaration
-Templates.xslpi.name=XSL processing instruction
-Templates.xslpi.desc=XSL processing instruction
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xml.ui/templates/xmldefault-templates.xml b/bundles/org.eclipse.wst.xml.ui/templates/xmldefault-templates.xml
deleted file mode 100644
index 027d206..0000000
--- a/bundles/org.eclipse.wst.xml.ui/templates/xmldefault-templates.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<templates>
-<template name="%Templates.xmldeclaration.name" description="%Templates.xmldeclaration.desc" id="org.eclipse.wst.xml.ui.internal.templates.xmldeclaration" context="xml_new" enabled="true">&lt;?xml version="1.0" encoding="${encoding}"?&gt;</template>
-<template name="%Templates.comment.name" description="%Templates.comment.desc" id="org.eclipse.wst.xml.ui.internal.templates.comment" context="xml_tag" enabled="true">&lt;!-- ${cursor} --&gt;</template>
-<template name="%Templates.xslpi.name" description="%Templates.xslpi.desc" id="org.eclipse.wst.xml.ui.internal.templates.xslpi" context="xml_tag" enabled="true">&lt;?xml-stylesheet type="text/xsl" href="${cursor}"?&gt;</template>
-
-</templates>
diff --git a/bundles/org.eclipse.wst.xsd.core/.classpath b/bundles/org.eclipse.wst.xsd.core/.classpath
deleted file mode 100644
index b23b03f..0000000
--- a/bundles/org.eclipse.wst.xsd.core/.classpath
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src-contentmodel/"/>
-	<classpathentry kind="src" path="src-validation/"/>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/bundles/org.eclipse.wst.xsd.core/.cvsignore b/bundles/org.eclipse.wst.xsd.core/.cvsignore
deleted file mode 100644
index 33dd7de..0000000
--- a/bundles/org.eclipse.wst.xsd.core/.cvsignore
+++ /dev/null
@@ -1,6 +0,0 @@
-bin
-temp.folder
-build.xml
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.wst.xsd.core/.project b/bundles/org.eclipse.wst.xsd.core/.project
deleted file mode 100644
index a95f8ef..0000000
--- a/bundles/org.eclipse.wst.xsd.core/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.xsd.core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.core.prefs b/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index f9bd082..0000000
--- a/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,59 +0,0 @@
-#Mon Jan 30 23:39:29 EST 2006
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-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.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-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=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=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.rawTypeReference=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=error
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.3
diff --git a/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.ui.prefs b/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 83ee912..0000000
--- a/bundles/org.eclipse.wst.xsd.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Mon Jan 30 23:28:33 EST 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
deleted file mode 100644
index ea09baa..0000000
--- a/bundles/org.eclipse.wst.xsd.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %_UI_PLUGIN_NAME
-Bundle-SymbolicName: org.eclipse.wst.xsd.core; singleton:=true
-Bundle-Version: 1.1.101.qualifier
-Bundle-Activator: org.eclipse.wst.xsd.core.internal.XSDCorePlugin
-Bundle-Vendor: %Bundle-Vendor.0
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.xsd.contentmodel.internal;x-internal:=true,
- org.eclipse.wst.xsd.contentmodel.internal.util;x-internal:=true,
- org.eclipse.wst.xsd.core.internal;x-friends:="org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xsd.core.internal.preferences;x-friends:="org.eclipse.wst.xsd.ui",
- org.eclipse.wst.xsd.core.internal.validation,
- org.eclipse.wst.xsd.core.internal.validation.eclipse
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.emf.ecore;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.xsd;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.apache.xerces;bundle-version="[2.8.0,2.9.0)"
-Eclipse-LazyStart: true
-
diff --git a/bundles/org.eclipse.wst.xsd.core/about.html b/bundles/org.eclipse.wst.xsd.core/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/bundles/org.eclipse.wst.xsd.core/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" 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 ("Redistributor") 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 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.wst.xsd.core/build.properties b/bundles/org.eclipse.wst.xsd.core/build.properties
deleted file mode 100644
index ba1ba95..0000000
--- a/bundles/org.eclipse.wst.xsd.core/build.properties
+++ /dev/null
@@ -1,22 +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
-#     
-###############################################################################
-bin.includes = META-INF/,\
-               plugin.xml,\
-               plugin.properties,\
-               .,\
-               about.html
-jars.compile.order = .
-src.includes = build.properties
-output.. = bin/
-source.. = src-contentmodel/,\
-           src-validation/,\
-           src/
diff --git a/bundles/org.eclipse.wst.xsd.core/plugin.properties b/bundles/org.eclipse.wst.xsd.core/plugin.properties
deleted file mode 100644
index 31c32c9..0000000
--- a/bundles/org.eclipse.wst.xsd.core/plugin.properties
+++ /dev/null
@@ -1,22 +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
-###############################################################################
-! Properties file for component: XML Schema Validator
-
-!
-! Plugin
-!
-_UI_PLUGIN_NAME                           = XSD Core Plugin
-XSD_Content_Type=XSD
-
-_UI_XML_SCHEMA_VALIDATOR                  = XML Schema Validator
-_UI_XERCES_VALIDATOR_DELEGATE       	  = Xerces-based XML Schema Validator
-
-Bundle-Vendor.0 = Eclipse.org
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.core/plugin.xml b/bundles/org.eclipse.wst.xsd.core/plugin.xml
deleted file mode 100644
index 5baf01f..0000000
--- a/bundles/org.eclipse.wst.xsd.core/plugin.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-	<extension point="org.eclipse.core.runtime.contentTypes">
-		<content-type
-			priority="high"
-			name="%XSD_Content_Type"
-			id="xsdsource"
-			base-type="org.eclipse.core.runtime.xml"
-			default-charset="UTF-8"
-			file-extensions="xsd" />
-	</extension>
-
-	<extension point="org.eclipse.wst.xml.core.documentFactories">
-		<factory
-			type="xsd"
-			class="org.eclipse.wst.xsd.contentmodel.internal.CMDocumentFactoryXSD">
-		</factory>
-	</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
-         async="true"
-         class="org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator"
-         enabled="true"
-         fullBuild="true"
-         incremental="true">
-			</run>
-       <!-- <markerId markerIdValue="org.eclipse.xsd.diagnostic"/>-->
-		</validator>
-	</extension>
-
-	<extension
-       point="org.eclipse.wst.validation.validatorDelegates">
-    	<delegate
-        	class="org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator"
-			name="%_UI_XERCES_VALIDATOR_DELEGATE"
-        	target="org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator"/>
-	 </extension>
-	 
-	 <!-- initialize xml core preferences -->
-	<extension point="org.eclipse.core.runtime.preferences">
-		<initializer
-			class="org.eclipse.wst.xsd.core.internal.preferences.XSDCorePreferenceInitializer" />
-	</extension>
-
-</plugin>
diff --git a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/CMDocumentFactoryXSD.java b/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/CMDocumentFactoryXSD.java
deleted file mode 100644
index 8c189d7..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/CMDocumentFactoryXSD.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.contentmodel.internal;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.factory.CMDocumentFactory;
-
-/**
- *  This builder handles building .dtd / .xsd grammar files
- */
-public class CMDocumentFactoryXSD implements CMDocumentFactory
-{
-  public static final String XSD_FILE_TYPE = "XSD";
-
-  public CMDocumentFactoryXSD() 
-  {  
-    // here we call init on the XSD and DTD packages to avoid strange initialization bugs
-    //
-    org.eclipse.xsd.impl.XSDPackageImpl.init();
-    org.eclipse.xsd.impl.XSDPackageImpl.eINSTANCE.getXSDFactory();  
-  }
-
- 
-  public CMDocument createCMDocument(String uri)
-  {                  	
-    CMDocument result = null;
-    try
-    {                                
-        result = XSDImpl.buildCMDocument(uri);     
-    }
-    catch (Exception e)
-    {
-    	e.printStackTrace();
-    }
-    return result;  
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/CMNodeImpl.java b/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/CMNodeImpl.java
deleted file mode 100644
index 3f8a653..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/CMNodeImpl.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.contentmodel.internal;
-
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-
-public abstract class CMNodeImpl extends AdapterImpl implements CMNode
-{
-  protected static final String PROPERTY_DOCUMENTATION = "documentation";
-  protected static final String PROPERTY_DOCUMENTATION_SOURCE = "documentationSource";
-  protected static final String PROPERTY_DOCUMENTATION_LANGUAGE = "documentationLanguage";
-  protected static final String PROPERTY_MOF_NOTIFIER = "key";
-  protected static final String PROPERTY_DEFINITION_INFO = "http://org.eclipse.wst/cm/properties/definitionInfo";
-  protected static final String PROPERTY_DEFINITION = "http://org.eclipse.wst/cm/properties/definition";
-
-  public abstract Object getKey();
-
-  public boolean supports(String propertyName)
-  {
-    return propertyName.equals(PROPERTY_MOF_NOTIFIER);
-  }
-
-  public Object getProperty(String propertyName)
-  {
-    return null;
-  }
-
-  public void setProperty(String propertyName, Object object)
-  {
-	  //no propertyes supported? 
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDCMManager.java b/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDCMManager.java
deleted file mode 100644
index 796f45c..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDCMManager.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.contentmodel.internal;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Plugin;
-
-public class XSDCMManager extends Plugin 
-{
-  private static XSDCMManager instance;
-  
-  public XSDCMManager() 
-  {
-    super();
-  }
-  
-  public static XSDCMManager getInstance() {
-    if (instance == null) {
-      instance = new XSDCMManager();
-    }
-    return instance;
-  }
-
-
-  public void startup() throws CoreException 
-  {
-    XSDTypeUtil.initialize();
-    //ContentModelManager.getInstance().setInferredGrammarFactory(new InferredGrammarFactoryImpl());
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDImpl.java b/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDImpl.java
deleted file mode 100644
index 7c0668c..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDImpl.java
+++ /dev/null
@@ -1,2861 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.contentmodel.internal;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.resource.impl.URIConverterImpl;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAnyElement;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMContent;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocumentation;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNamespace;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList;
-import org.eclipse.wst.xml.core.internal.contentmodel.annotation.AnnotationMap;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMAttributeDeclarationImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMDataTypeImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMDocumentImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMEntityDeclarationImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMGroupImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNamedNodeMapImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.basic.CMNodeListImpl;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDescriptionBuilder;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xsd.contentmodel.internal.util.XSDSchemaLocatorAdapterFactory;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDAttributeUseCategory;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDConstraint;
-import org.eclipse.xsd.XSDContentTypeCategory;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDEnumerationFacet;
-import org.eclipse.xsd.XSDForm;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaContent;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.impl.XSDSchemaImpl;
-import org.eclipse.xsd.util.XSDConstants;
-import org.eclipse.xsd.util.XSDResourceImpl;
-import org.eclipse.xsd.util.XSDSwitch;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-
-/**
- * Utility class to build cmnodes from XML Schema nodes. The XML Schema model is
- * found in the org.eclipse.xsd plugin.
- * 
- * TODO: getNamespaceURI()currently always returns '##any'.
- */
-public class XSDImpl
-{
-  /*
-   * properties common to all cmnodes the following properties defined in
-   * CMNodeImpl class: PROPERTY_DOCUMENTATION PROPERTY_DOCUMENTATION_SOURCE
-   * PROPERTY_DOCUMENTATION_LANGUAGE PROPERTY_MOF_NOTIFIER
-   * PROPERTY_DEFINITION_INFO PROPERTY_DEFINITION
-   * 
-   * the following properties defined in this class, XSDImpl:
-   * PROPERTY_CMDOCUMENT PROPERTY_USES_LOCAL_ELEMENT_DECLARATIONS
-   * PROPERTY_IS_NAME_SPACE_AWARE PROPERTY_NS_PREFIX_QUALIFICATION
-   * PROPERTY_NILLABLE PROPERTY_SPEC
-   */
-  public static final String PROPERTY_CMDOCUMENT = "CMDocument";
-  public static final String PROPERTY_USES_LOCAL_ELEMENT_DECLARATIONS = "http://org.eclipse.wst/cm/properties/usesLocalElementDeclarations";
-  public static final String PROPERTY_IS_NAME_SPACE_AWARE = "http://org.eclipse.wst/cm/properties/isNameSpaceAware";
-  public static final String PROPERTY_NS_PREFIX_QUALIFICATION = "http://org.eclipse.wst/cm/properties/nsPrefixQualification";
-  public static final String PROPERTY_NILLABLE = "http://org.eclipse.wst/cm/properties/nillable";
-  public static final String PROPERTY_SPEC = "spec";
-  /*
-   * properties common to all CMDocument nodes: PROPERTY_TARGET_NAMESPACE_URI
-   * PROPERTY_IMPORTED_NAMESPACE_INFO PROPERTY_NAMESPACE_INFO
-   * PROPERTY_ELEMENT_FORM_DEFAULT PROPERTY_ANNOTATION_MAP
-   */
-  public static final String PROPERTY_TARGET_NAMESPACE_URI = "http://org.eclipse.wst/cm/properties/targetNamespaceURI";
-  public static final String PROPERTY_IMPORTED_NAMESPACE_INFO = "http://org.eclipse.wst/cm/properties/importedNamespaceInfo";
-  public static final String PROPERTY_NAMESPACE_INFO = "http://org.eclipse.wst/cm/properties/namespaceInfo";
-  public static final String PROPERTY_ELEMENT_FORM_DEFAULT = "http://org.eclipse.wst/cm/properties/elementFormDefault";
-  public static final String PROPERTY_ANNOTATION_MAP = "annotationMap";
-  /*
-   * properties common to all CMElementDeclaration nodes: PROPERTY_XSITYPES
-   * PROPERTY_DERIVED_ELEMENT_DECLARATION PROPERTY_SUBSTITUTION_GROUP
-   * PROPERTY_ABSTRACT
-   */
-  public static final String PROPERTY_XSITYPES = "XSITypes";
-  public static final String PROPERTY_DERIVED_ELEMENT_DECLARATION = "DerivedElementDeclaration";
-  public static final String PROPERTY_SUBSTITUTION_GROUP = "SubstitutionGroup";
-  public static final String PROPERTY_ABSTRACT = "Abstract";
-  /**
-   * Definition info for element declarations.
-   */
-  public static final String DEFINITION_INFO_GLOBAL = "global";
-  public static final String DEFINITION_INFO_LOCAL = "local";
-  public static final String XML_LANG_ATTRIBUTE = "xml:lang";
-  public static final String PLATFORM_PROTOCOL = "platform:";
-  protected static XSDAdapterFactoryImpl xsdAdapterFactoryImpl = new XSDAdapterFactoryImpl();
-  protected static XSIDocument xsiDocument = new XSIDocument();
-
-  /**
-   * Given uri for an XML Schema document, parse the document and build
-   * corresponding CMDocument node.
-   * 
-   * @param uri -
-   *          the uri for an XML Schema document
-   * @param grammarErrorChecking -
-   *          grammar error checking flag
-   * @param errorList -
-   *          the resulting error list
-   * @return the corresponding CMDocument node.
-   * @deprecated -- use buildCMDocument(String uri)
-   */
-  public static CMDocument buildCMDocument(String uri, int grammarErrorChecking, List errorList)
-  {
-    return buildCMDocument(uri);
-  }
-
-  /**
-   * Given uri for an XML Schema document, parse the document and build
-   * corresponding CMDocument node.
-   * 
-   * @param uri -
-   *          the uri for an XML Schema document
-   * @return the corresponding CMDocument node.
-   */
-  public static CMDocument buildCMDocument(String uri)
-  {
-    CMDocument cmDocument = null;
-    XSDSchema xsdSchema = buildXSDModel(uri);
-    if (xsdSchema != null)
-    {
-      cmDocument = (CMDocument) getAdapter(xsdSchema);
-    }
-    return cmDocument;
-  }
-
-  /**
-   * Given uri for an XML Schema document, parse the document and build
-   * corresponding CMDocument node.
-   * 
-   * @param uri -
-   *          the uri for an XML Schema document
-   * @return the corresponding CMDocument node.
-   */
-  public static XSDSchema buildXSDModel(String uriString)
-  {
-    XSDSchema xsdSchema = null;
- 
-    try
-    {
-      // if XML Schema for Schema is requested, get it through schema model 
-      if (uriString.endsWith("2001/XMLSchema.xsd"))
-      {
-      	xsdSchema = XSDSchemaImpl.getSchemaForSchema(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);			
-      }
-      else
-      { 	
-        ResourceSet resourceSet = new ResourceSetImpl();
-        //resourceSet.getAdapterFactories().add(new XSDSchemaLocationResolverAdapterFactory());
-        resourceSet.getAdapterFactories().add(new XSDSchemaLocatorAdapterFactory());
-          
-        URI uri = createURI(uriString);   
-        
-        // CS : bug 113537 ensure we perform physical resolution before opening a stream for the resource
-        //
-        String physicalLocation = URIResolverPlugin.createResolver().resolvePhysicalLocation("", "", uriString);       
-        InputStream inputStream = resourceSet.getURIConverter().createInputStream(URI.createURI(physicalLocation));
-        XSDResourceImpl resource = (XSDResourceImpl)resourceSet.createResource(URI.createURI("*.xsd"));
-        resource.setURI(uri);
-        resource.load(inputStream, null);         
-        xsdSchema = resource.getSchema();      
-      }
-    }
-    catch (Exception e)
-    {
-    }
-    return xsdSchema;
-  }
-  
-  // TODO ... looks like we can remove this class?
-  //
-  static class InternalURIConverter extends URIConverterImpl
-  {
-    protected InputStream createURLInputStream(URI uri) throws IOException
-    {
-      if ("http".equals(uri.scheme()))
-      {
-        String theURI = uri.toString();
-        String mapped = URIResolverPlugin.createResolver().resolve(theURI, theURI, theURI);
-        if (mapped != null)
-        {
-          uri = createURI(mapped);
-        }
-      }
-      return super.createURLInputStream(uri);
-    }
-  }
-
-  /**
-   * Returns an appropriate URI based on a uri string.
-   * 
-   * @param uriString -
-   *          a uri string.
-   * @return an appropriate URI based on a uri string.
-   */
-  public static URI createURI(String uriString)
-  {
-    if (hasProtocol(uriString))
-      return URI.createURI(uriString);
-    else
-      return URI.createFileURI(uriString);
-  }
-
-  private static boolean hasProtocol(String uri)
-  {
-    boolean result = false;
-    if (uri != null)
-    {
-      int index = uri.indexOf(":");
-      if (index != -1 && index > 2) // assume protocol with be length 3 so that
-                                    // the'C' in 'C:/' is not interpreted as a
-                                    // protocol
-      {
-        result = true;
-      }
-    }
-    return result;
-  }
-
-  /**
-   * Returns true if string begins with platform protocol.
-   * 
-   * @param uriString -
-   *          a uri string.
-   * @return true if string begins with platform protocol.
-   */
-  public static boolean withPlatformProtocol(String uriString)
-  {
-    return uriString.startsWith(PLATFORM_PROTOCOL);
-  }
-
-  /**
-   * Returns the value of the 'Min Occurs' attribute. The default value is "1".
-   * 
-   * @param component -
-   *          a concrete component.
-   * @return the value of the 'Min Occurs' attribute.
-   */
-  public static int getMinOccurs(XSDConcreteComponent component)
-  {
-    int minOccur = 1;
-    if (component != null)
-    {
-      Object o = component.getContainer();
-      if (o instanceof XSDParticle)
-      {
-        if (((XSDParticle) o).isSetMinOccurs())
-        {
-          try
-          {
-            minOccur = ((XSDParticle) o).getMinOccurs();
-          }
-          catch (Exception e)
-          {
-            minOccur = 1;
-          }
-        }
-      }
-    }
-    return minOccur;
-  }
-
-  /**
-   * Returns the value of the 'Max Occurs' attribute. The default value is "1".
-   * 
-   * @param component -
-   *          a concrete component.
-   * @return the value of the 'Max Occurs' attribute.
-   */
-  public static int getMaxOccurs(XSDConcreteComponent component)
-  {
-    int maxOccur = 1;
-    if (component != null)
-    {
-      Object o = component.getContainer();
-      if (o instanceof XSDParticle)
-      {
-        if (((XSDParticle) o).isSetMaxOccurs())
-        {
-          try
-          {
-            maxOccur = ((XSDParticle) o).getMaxOccurs();
-          }
-          catch (Exception e)
-          {
-            maxOccur = 1;
-          }
-        }
-      }
-    }
-    return maxOccur;
-  }
-
-  /**
-   * Returns the enumerated values for the given type.
-   * 
-   * @param type -
-   *          a type definition.
-   * @return the enumerated values for the given type.
-   */
-  private final static String TYPE_NAME_BOOLEAN = "boolean"; //$NON-NLS-1$
-  private final static String TYPE_VALUE_TRUE = "true"; //$NON-NLS-1$
-  private final static String TYPE_VALUE_FALSE= "false"; //$NON-NLS-1$  
-  
-  public static String[] getEnumeratedValuesForType(XSDTypeDefinition type)
-  {
-    List result = new ArrayList();
-    if (type instanceof XSDSimpleTypeDefinition)
-    {         
-      if (TYPE_NAME_BOOLEAN.equals(type.getName()) && type.getSchema().getSchemaForSchema() == type.getSchema())
-      {
-        result.add(TYPE_VALUE_TRUE);
-        result.add(TYPE_VALUE_FALSE);
-      } 
-      else
-      {        
-        List enumerationFacets = ((XSDSimpleTypeDefinition) type).getEnumerationFacets();
-        for (Iterator i = enumerationFacets.iterator(); i.hasNext();)
-        {
-          XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) i.next();
-          List values = enumFacet.getValue();
-          for (Iterator j = values.iterator(); j.hasNext();)
-          {
-            Object o = j.next();
-            if (o != null)
-            {
-              result.add(o.toString());
-            }  
-          }
-        }
-      }
-    }  
-    String[] array = new String[result.size()];
-    result.toArray(array);
-    return array;
-  }
-
-  /**
-   * Return a list of documentation elements from the given annotation. Working
-   * with documentation elements requires dropping down into the DOM model.
-   * 
-   * @param annotation -
-   *          an XSDAnnotation node.
-   * @return a list of documentation elements.
-   */
-  public static CMNodeList getDocumentations(XSDAnnotation annotation)
-  {
-    CMNodeListImpl documentations = new CMNodeListImpl();
-    if (annotation != null)
-    {
-      List documentationsElements = annotation.getUserInformation();
-      for (Iterator i = documentationsElements.iterator(); i.hasNext();)
-      {
-        documentations.getList().add(new DocumentationImpl((Element) i.next()));
-      }
-    }
-    return documentations;
-  }
-
-  /**
-   * Adapted from public static List findTypesDerivedFrom(XSDSchema schema,
-   * String namespace, String localName) in class XSDSchemaQueryTools found in
-   * org.eclipse.xsd plugin.
-   * 
-   * Find typeDefinitions that derive from a given type.
-   * 
-   * @param type
-   *          the type derived from
-   * @return List of any XSDTypeDefinitions found
-   */
-  public static List findTypesDerivedFrom(XSDTypeDefinition type)
-  {
-    ArrayList typesDerivedFrom = new ArrayList();
-    if (type != null)
-    {
-      XSDSchema schema = type.getSchema();
-      String localName = type.getName();
-      if ((null != schema) && (null != localName))
-      {
-        String namespace = schema.getTargetNamespace();
-        // A handy convenience method quickly gets all
-        // typeDefinitions within our schema; note that
-        // whether or not this returns types in included,
-        // imported, or redefined schemas is subject to change
-        List typedefs = schema.getTypeDefinitions();
-        for (Iterator iter = typedefs.iterator(); iter.hasNext();)
-        {
-          XSDTypeDefinition typedef = (XSDTypeDefinition) iter.next();
-          if (typedef instanceof XSDComplexTypeDefinition)
-          {
-            // Walk the baseTypes from this typedef seeing if any
-            // of them match the requested one
-            if (isTypeDerivedFrom(typedef, namespace, localName))
-            {
-              // We found it, return the original one and continue
-              typesDerivedFrom.add(typedef);
-              continue;
-            }
-          }
-        }
-      }
-    }
-    return typesDerivedFrom;
-  }
-
-  /**
-   * Adapted from protected static boolean isTypeDerivedFrom(XSDTypeDefinition
-   * typedef, String namespace, String localName) in class XSDSchemaQueryTools
-   * found in org.eclipse.xsd plugin.
-   * 
-   * Recursive worker method to find typeDefinitions that derive from a named
-   * type.
-   * 
-   * @see #findTypesDerivedFrom(XSDSchema, String, String)
-   * @param typeDef
-   *          to see if it's derived from
-   * @param namespace
-   *          for the type derived from
-   * @param localName
-   *          for the type derived from
-   * @return true if it is; false otherwise
-   */
-  protected static boolean isTypeDerivedFrom(XSDTypeDefinition typedef, String namespace, String localName)
-  {
-    // Walk the baseTypes from this typedef seeing if any
-    // of them match the requested one
-    XSDTypeDefinition baseType = typedef.getBaseType();
-    if (baseType == null)
-   	{
-      // typedef is a root type like xsd:anyType, so it has no base
-      return false;
-    }
-    // As this convenience method if our parameters match
-    if (baseType.hasNameAndTargetNamespace(localName, namespace))
-    {
-      return true;
-    }
-    XSDTypeDefinition rootType = typedef.getRootType();
-    if (rootType == baseType)
-    {
-      // If we've hit the root, we aren't derived from it
-      return false;
-    }
-    else
-    {
-      // Otherwise continue to traverse upwards
-      return isTypeDerivedFrom(baseType, namespace, localName);
-    }
-  }
-
-  /**
-   * Returns the corresponding cmnode of the specified XML Schema node.
-   * 
-   * @param target -
-   *          an XML Schema node
-   * @return the corresponding cmnode.
-   */
-  public static CMNode getAdapter(Notifier o)
-  {
-    return (CMNode) xsdAdapterFactoryImpl.adapt(o);
-  }
-
-  /**
-   * Adapted from public String getPrefix(String ns, boolean withColon) in class
-   * TypesHelper found in org.eclipse.wst.xsd.editor plugin.
-   * 
-   * @param schema -
-   *          the relevant schema
-   * @param ns -
-   *          the relevant namespace
-   */
-  public static String getPrefix(XSDSchema schema, String ns)
-  {
-    String key = "";
-    if ((schema != null) && (ns != null))
-    {
-      Map map = schema.getQNamePrefixToNamespaceMap();
-      Iterator iter = map.keySet().iterator();
-      while (iter.hasNext())
-      {
-        Object keyObj = iter.next();
-        Object value = map.get(keyObj);
-        if (value != null && value.toString().equals(ns))
-        {
-          if (keyObj != null)
-          {
-            key = keyObj.toString();
-          }
-          else
-          {
-            key = "";
-          }
-          break;
-        }
-      }
-    }
-    return key;
-  }
-  /**
-   * The Factory for the XSD adapter model. It provides a create method for each
-   * non-abstract class of the model.
-   */
-  public static class XSDAdapterFactoryImpl extends AdapterFactoryImpl
-  {
-    public Adapter createAdapter(Notifier target)
-    {
-      XSDSwitch xsdSwitch = new XSDSwitch()
-      {
-        public Object caseXSDWildcard(XSDWildcard object)
-        {
-          return new XSDWildcardAdapter(object);
-        }
-
-        public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition object)
-        {
-          return new XSDModelGroupDefinitionAdapter(object);
-        }
-
-        public Object caseXSDAttributeUse(XSDAttributeUse object)
-        {
-          return new XSDAttributeUseAdapter(object);
-        }
-
-        public Object caseXSDElementDeclaration(XSDElementDeclaration object)
-        {
-          return new XSDElementDeclarationAdapter(object);
-        }
-
-        public Object caseXSDModelGroup(XSDModelGroup object)
-        {
-          return new XSDModelGroupAdapter(object);
-        }
-
-        public Object caseXSDSchema(XSDSchema object)
-        {
-          return new XSDSchemaAdapter(object);
-        }
-      };
-      Object o = xsdSwitch.doSwitch((EObject) target);
-      Adapter result = null;
-      if (o instanceof Adapter)
-      {
-        result = (Adapter) o;
-      }
-      else
-      {
-        Thread.dumpStack();
-      }
-      return result;
-    }
-
-    public Adapter adapt(Notifier target)
-    {
-      return adapt(target, this);
-    }
-  }
-  /**
-   * XSDBaseAdapter -- an abstract base node in the model. All other model nodes
-   * are derived from it.
-   */
-  public static abstract class XSDBaseAdapter extends CMNodeImpl
-  {
-    protected CMNodeListImpl documentation = new CMNodeListImpl();
-
-    /**
-     * Returns the name of the node. The default value is an empty string value.
-     * All derived classes must override this method if they do not want the
-     * default value.
-     * 
-     * @return the name of the node.
-     */
-    public String getNodeName()
-    {
-      return "";
-    }
-
-    /**
-     * Returns true of the given factory is the factory for this XSD adapter
-     * model.
-     * 
-     * @param type -
-     *          a factory
-     * @return true if the type is the adapter factory for this model.
-     */
-    public boolean isAdapterForType(Object type)
-    {
-      return type == xsdAdapterFactoryImpl;
-    }
-
-    /**
-     * Returns true if the property is supported for this class.
-     * 
-     * @param propertyName -
-     *          name of a property
-     * @return true if the property is supported.
-     */
-    public boolean supports(String propertyName)
-    {
-      return propertyName.equals(PROPERTY_NS_PREFIX_QUALIFICATION) || propertyName.equals(PROPERTY_NILLABLE) || propertyName.equals(PROPERTY_USES_LOCAL_ELEMENT_DECLARATIONS)
-          || propertyName.equals(PROPERTY_DOCUMENTATION) || propertyName.equals(PROPERTY_DOCUMENTATION_SOURCE) || propertyName.equals(PROPERTY_DOCUMENTATION_LANGUAGE)
-          || propertyName.equals(PROPERTY_MOF_NOTIFIER) || propertyName.equals(PROPERTY_DEFINITION_INFO) || propertyName.equals(PROPERTY_DEFINITION) || propertyName.equals(PROPERTY_CMDOCUMENT)
-          || propertyName.equals(PROPERTY_IS_NAME_SPACE_AWARE) || propertyName.equals(PROPERTY_SPEC) || super.supports(propertyName);
-    }
-
-    /**
-     * Returns the value of the 'Nillable' attribute. This represents the
-     * nillable infoset property. The default value is false. All derived
-     * classes must override this method if they do not want the default value.
-     * 
-     * @return the value of the 'Nillable' attribute.
-     */
-    public boolean isNillable()
-    {
-      return false;
-    }
-
-    /**
-     * Returns the cmdocument that is the owner of this cmnode. The default
-     * value is null; All derived classes must override this method if they do
-     * not want the default value.
-     * 
-     * @return the cmdocument corresponding to this cmnode.
-     */
-    public CMDocument getCMDocument()
-    {
-      return null;
-    }
-
-    /**
-     * Return a list of documentation elements. The default value is an empty
-     * CMNodeList; All derived classes must override this method if they do not
-     * want the default value.
-     * 
-     * @return a list of documentation elements.
-     */
-    protected CMNodeList getDocumentation()
-    {
-      return documentation;
-    }
-
-    /**
-     * Returns the property value for the property name. Returns null if the
-     * property is not supported.
-     * 
-     * @param propertyName -
-     *          name of a property
-     * @return the property value for the property name.
-     */
-    public Object getProperty(String propertyName)
-    {
-      Object result = null;
-      if (propertyName.equals(PROPERTY_CMDOCUMENT))
-      {
-        result = getCMDocument();
-      }
-      else if (propertyName.equals(PROPERTY_DOCUMENTATION))
-      {
-        result = getDocumentation();
-      }
-      else if (propertyName.equals(PROPERTY_USES_LOCAL_ELEMENT_DECLARATIONS))
-      {
-        result = Boolean.TRUE;
-      }
-      else if (propertyName.equals(PROPERTY_IS_NAME_SPACE_AWARE))
-      {
-        result = Boolean.TRUE;
-      }
-      else if (propertyName.equals(PROPERTY_NS_PREFIX_QUALIFICATION))
-      {
-        result = getNSPrefixQualification();
-      }
-      else if (propertyName.equals(PROPERTY_NILLABLE))
-      {
-        result = isNillable() ? xsiDocument.nilAttribute : null;
-      }
-      else if (propertyName.equals(PROPERTY_MOF_NOTIFIER))
-      {
-        result = getKey();
-      }
-      else if (propertyName.equals(PROPERTY_SPEC))
-      {
-        result = getSpec();
-      }
-      else
-      {
-        result = super.getProperty(propertyName);
-        {
-          CMDocument cmDocument = getCMDocument();
-          if (cmDocument instanceof XSDSchemaAdapter)
-          {
-            AnnotationMap map = ((XSDSchemaAdapter) cmDocument).annotationMap;
-            if (map != null)
-            {
-              String spec = getSpec();
-              if (spec != null)
-              {
-                result = map.getProperty(getSpec(), propertyName);
-              }
-            }
-          }
-        }
-      }
-      return result;
-    }
-       
-
-
-    /*
-     * Returns the value of the form [attribute] which affects the target
-     * namespace of locally scoped features. The default value is null. All
-     * derived classes must override this method if they do not want the default
-     * value. @return the value of the form [attribute].
-     */
-    public Object getNSPrefixQualification()
-    {
-      return null;
-    }
-
-    /**
-     * Returns a general XPath expression for the node.
-     * 
-     * @return a general XPath expression for the node.
-     */
-    public String getSpec()
-    {
-      return "//" + getNodeName();
-    }
-  }
-  /**
-   * XSDSchemaAdapter implements CMDocument. A representation of the model
-   * object 'Schema'.
-   */
-  public static class XSDSchemaAdapter extends XSDBaseAdapter implements CMDocument
-  {
-    protected XSDSchema xsdSchema;
-    protected CMNamedNodeMapImpl namedNodeMap;
-    protected CMNamedNodeMapImpl entityNodeMap;
-    protected AnnotationMap annotationMap = new AnnotationMap();
-    protected Hashtable substitutionGroupTable;
-
-    /**
-     * Constructor.
-     * 
-     * @param xsdSchema -
-     *          the schema node.
-     */
-    public XSDSchemaAdapter(XSDSchema xsdSchema)
-    {
-      this.xsdSchema = xsdSchema;
-    }
-
-    /**
-     * Returns the key for this cmnode which is the corresponding XML Schema
-     * node.
-     * 
-     * @return the key for this cmnode.
-     */
-    public Object getKey()
-    {
-      return xsdSchema;
-    }
-
-    /**
-     * Returns the filename.
-     * 
-     * @return the filename.
-     */
-    public String getNodeName()
-    {
-      // See buildCMDocument() above.
-      return xsdSchema.getSchemaLocation();
-    }
-
-    /**
-     * Returns true if the property is supported for this class.
-     * 
-     * @param propertyName -
-     *          name of a property
-     * @return true if the property is supported.
-     */
-    public boolean supports(String propertyName)
-    {
-      return propertyName.equals(PROPERTY_TARGET_NAMESPACE_URI) || propertyName.equals(PROPERTY_IMPORTED_NAMESPACE_INFO) || propertyName.equals(PROPERTY_NAMESPACE_INFO)
-          || propertyName.equals(PROPERTY_ELEMENT_FORM_DEFAULT) || propertyName.equals(PROPERTY_ANNOTATION_MAP) || super.supports(propertyName);
-    }
-
-    /**
-     * Returns true if a prefix is globally required for elements.
-     * 
-     * @param xsdSchema -
-     *          the corresponding schema node.
-     * @return true if a prefix is globally required for elements.
-     */
-    protected boolean isPrefixRequired(XSDSchema xsdSchema)
-    {
-      boolean result = true;
-      if (xsdSchema.isSetElementFormDefault())
-        result = !(xsdSchema.getElementFormDefault().getValue() == XSDForm.QUALIFIED);
-      return result;
-    }
-
-    /**
-     * Returns the property value for the property name. Returns null if the
-     * property is not supported.
-     * 
-     * @param propertyName -
-     *          name of a property
-     * @return the property value for the property name.
-     */
-    public Object getProperty(String propertyName)
-    {
-      Object result = null;
-      if (propertyName.equals(PROPERTY_TARGET_NAMESPACE_URI))
-      {
-        result = xsdSchema.getTargetNamespace();
-      }
-      else if (propertyName.equals(PROPERTY_IMPORTED_NAMESPACE_INFO))
-      {
-        List list = new Vector();
-        getImportedNamespaceInfo(xsdSchema, list);
-        result = list;
-      }
-      else if (propertyName.equals(PROPERTY_NAMESPACE_INFO))
-      {
-        List list = new Vector();
-        NamespaceInfo info = new NamespaceInfo();
-        info.uri = xsdSchema.getTargetNamespace();
-        info.prefix = getPrefix(xsdSchema, info.uri);
-        info.locationHint = null; // note that this locationHint info is null
-                                  // for the root xsd file
-        info.isPrefixRequired = isPrefixRequired(xsdSchema);
-        list.add(info);
-        getImportedNamespaceInfo(xsdSchema, list);
-        result = list;
-      }
-      else if (propertyName.equals(PROPERTY_ELEMENT_FORM_DEFAULT))
-      {
-        result = xsdSchema.getElementFormDefault().getName();
-      }
-      else if (propertyName.equals(PROPERTY_ANNOTATION_MAP))
-      {
-        result = annotationMap;
-      }
-      else if (propertyName.equals("allElements"))
-      {
-        result = getAllElements();
-      }  
-      else if (propertyName.startsWith("getElementForType#"))
-      {
-        int index = propertyName.indexOf("#");
-        String typeName = propertyName.substring(index + 1, propertyName.length());
-        //
-        //
-        XSDTypeDefinition td = xsdSchema.resolveTypeDefinition(typeName);
-        if (td != null)
-        {
-          LocalElementVisitor localElementVisitor = new LocalElementVisitor();
-          localElementVisitor.visitTypeDefinition(td);
-          result = localElementVisitor.getCMNamedNodeMap();
-        }
-      }
-      else
-      {
-        result = super.getProperty(propertyName);
-      }
-      return result;
-    }
-
-    /**
-     * Gather information on namespaces used in external references.
-     * 
-     * @param theXSDSchema -
-     *          the corresponding schema node
-     * @param list -
-     *          the list of imported namespaces.
-     */
-    public void getImportedNamespaceInfo(XSDSchema theXSDSchema, List list)
-    {
-      for (Iterator iterator = theXSDSchema.getContents().iterator(); iterator.hasNext();)
-      {
-        XSDSchemaContent content = (XSDSchemaContent) iterator.next();
-        if (content instanceof XSDImport)
-        {
-          XSDImport xImport = (XSDImport) content;
-          XSDSchema importedXSDSchema = xImport.getResolvedSchema();
-          NamespaceInfo info = new NamespaceInfo();
-          info.uri = xImport.getNamespace();
-          info.prefix = getPrefix(importedXSDSchema, info.uri);
-          info.locationHint = xImport.getSchemaLocation();
-          if (importedXSDSchema != null)
-          {
-            info.isPrefixRequired = isPrefixRequired(importedXSDSchema);
-          }
-          list.add(info);
-        }
-      }
-    }
-
-    /**
-     * Returns set of named (top-level) element declarations for this schema
-     * node.
-     * 
-     * @return a set of named (top-level) element declarations.
-     */
-    public CMNamedNodeMap getElements()
-    {
-      if (namedNodeMap == null)
-      {
-        namedNodeMap = new CMNamedNodeMapImpl();
-        
-        // Note that if we call xsdSchema.getElementDeclarations()
-        // we get 'more' elements than we really want since we also
-        // get 'imported' elements.  Below we test to ensure the elements
-        // actually have the same target namespace as the schema.
-        String targetNamespace = xsdSchema.getTargetNamespace();
-        for (Iterator i = xsdSchema.getElementDeclarations().iterator(); i.hasNext();)
-        {
-          XSDElementDeclaration ed = (XSDElementDeclaration) i.next();
-          if (targetNamespace != null ? targetNamespace.equals(ed.getTargetNamespace()) : ed.getTargetNamespace() == null)
-          {
-            XSDElementDeclarationAdapter adapter = (XSDElementDeclarationAdapter) getAdapter(ed);
-            namedNodeMap.getHashtable().put(adapter.getNodeName(), adapter);
-          }
-        }
-      }
-      return namedNodeMap;
-    }
-
-    /**
-     * Returns the built-in entity declarations.
-     * 
-     * @return the built-in entity declarations.
-     */
-    public CMNamedNodeMap getEntities()
-    {
-      if (entityNodeMap == null)
-      {
-        entityNodeMap = new CMNamedNodeMapImpl();
-        // add the built in entity declarations
-        entityNodeMap.getHashtable().put("amp", new CMEntityDeclarationImpl("amp", "&"));
-        entityNodeMap.getHashtable().put("lt", new CMEntityDeclarationImpl("lt", "<"));
-        entityNodeMap.getHashtable().put("gt", new CMEntityDeclarationImpl("gt", ">"));
-        entityNodeMap.getHashtable().put("quot", new CMEntityDeclarationImpl("quot", "\""));
-        entityNodeMap.getHashtable().put("apos", new CMEntityDeclarationImpl("apos", "'"));
-      }
-      return entityNodeMap;
-    }
-
-    /**
-     * Returns the type of the node. The types are defined in CMNode class
-     * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-     * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-     * DOCUMENTATION).
-     * 
-     * @return the type of this node.
-     */
-    public int getNodeType()
-    {
-      return DOCUMENT;
-    }
-
-    /*
-     * Returns null. !!! Why are we not implementing this???? @return null.
-     */
-    public CMNamespace getNamespace()
-    {
-      return null;
-    }
-
-    /**
-     * Returns this.
-     * 
-     * @return this.
-     */
-    public CMDocument getCMDocument()
-    {
-      return this;
-    }
-    
-    public CMNamedNodeMap getAllElements()
-    {
-      CMNamedNodeMapImpl map = new CMNamedNodeMapImpl();
-      for (Iterator i = getElements().iterator(); i.hasNext(); )
-      {
-        CMElementDeclaration ed = (CMElementDeclaration)i.next();
-        map.put(ed);           
-        addLocalElementDefinitions(map, ed);              
-      }     
-      return map;
-    }
-    
-    protected void addLocalElementDefinitions(CMNamedNodeMapImpl map, CMElementDeclaration parentElementDeclaration)
-    {
-      CMNamedNodeMap localElementMap = parentElementDeclaration.getLocalElements();
-      for (Iterator i = localElementMap.iterator(); i.hasNext(); )
-      {
-        CMElementDeclaration ed = (CMElementDeclaration)i.next();
-        if (map.getNamedItem(ed.getNodeName()) == null)
-        {  
-          map.put(ed);        
-          addLocalElementDefinitions(map, ed);
-        }  
-      }               
-    }
-  }
-  /**
-   * XSDAttributeUseAdapter implements CMAttributeDeclaration. A representation
-   * of the model object 'Attribute Use'.
-   */
-  public static class XSDAttributeUseAdapter extends XSDBaseAdapter implements CMAttributeDeclaration
-  {
-    // provides access to the XML Schema node
-    protected XSDAttributeUse xsdAttributeUse;
-    // provides access to the type of the attribute
-    protected CMDataType dataType = new DataTypeImpl();
-
-    /**
-     * Constructor.
-     * 
-     * @param xsdAttributeUse -
-     *          the XML Schema node.
-     */
-    public XSDAttributeUseAdapter(XSDAttributeUse xsdAttributeUse)
-    {
-      this.xsdAttributeUse = xsdAttributeUse;
-    }
-
-    /**
-     * Returns the key for this cmnode which is the corresponding XML Schema
-     * node.
-     * 
-     * @return the key for this cmnode.
-     */
-    public Object getKey()
-    {
-      return xsdAttributeUse;
-    }
-
-    /**
-     * Returns a general XPath expression for the node.
-     * 
-     * @return a general XPath expression for the node.
-     */
-    public String getSpec()
-    {
-      return "//@" + getAttrName();
-    }
-
-    /**
-     * Returns the type of the node. The types are defined in CMNode class
-     * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-     * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-     * DOCUMENTATION).
-     * 
-     * @return the type of this node.
-     */
-    public int getNodeType()
-    {
-      return ATTRIBUTE_DECLARATION;
-    }
-
-    /**
-     * Returns the name of the node. Similar to getAttrName().
-     * 
-     * @return the name of the node.
-     */
-    public String getNodeName()
-    {
-      return getAttrName();
-    }
-
-    /**
-     * getEnumAttr method
-     * 
-     * @return java.util.Enumeration
-     * @deprecated -- to be replaced in future with additional CMDataType
-     *             methods (currently found on CMDataTypeHelper)
-     */
-    public Enumeration getEnumAttr()
-    {
-      return Collections.enumeration(Collections.EMPTY_LIST);
-    }
-
-    /**
-     * Returns the name of this attribute. Similar to getNodeName().
-     * 
-     * @return the name of this attribute.
-     */
-    public String getAttrName()
-    {
-      return xsdAttributeUse.getAttributeDeclaration().getName();
-    }
-
-    /**
-     * Returns the type of the attribute.
-     * 
-     * @return the type of the attribute.
-     */
-    public CMDataType getAttrType()
-    {
-      return dataType;
-    }
-
-    /**
-     * Returns the value of the default or fixed constraint.
-     * 
-     * @return the value of the default or fixed constraint.
-     */
-    public String getDefaultValue()
-    {
-      return dataType.getImpliedValue();
-    }
-
-    /**
-     * Returns the usage constraint for this attribute. The usages are defined
-     * in CMAttributeDeclaration class (OPTIONAL, REQUIRED, FIXED or
-     * PROHIBITED).
-     * 
-     * @return the usage constraint for this attribute.
-     */
-    public int getUsage()
-    {
-      int useKind = OPTIONAL;
-      switch (xsdAttributeUse.getUse().getValue())
-      {
-        case XSDAttributeUseCategory.OPTIONAL : {
-          useKind = OPTIONAL;
-          break;
-        }
-        case XSDAttributeUseCategory.PROHIBITED : {
-          useKind = PROHIBITED;
-          break;
-        }
-        case XSDAttributeUseCategory.REQUIRED : {
-          useKind = REQUIRED;
-          break;
-        }
-      }
-      return useKind;
-    }
-
-    /*
-     * Returns the value of the form [attribute] which affects the target
-     * namespace of locally scoped features. If the form is not set on this
-     * attribute, then see if there is a globally defined default. @return the
-     * value of the form [attribute].
-     */
-    public Object getNSPrefixQualification()
-    {
-      String form = null;
-      if (xsdAttributeUse.getContent() != xsdAttributeUse.getAttributeDeclaration())
-      {
-      	form =  "qualified";
-      }	
-      else if (xsdAttributeUse.getContent().isSetForm())
-      {
-        form = xsdAttributeUse.getContent().getForm().getName();
-      }
-      else
-      {
-        XSDSchema schema = xsdAttributeUse.getSchema();
-        if (schema != null)
-          form = schema.getAttributeFormDefault().getName();
-      }
-      return form;
-    }
-
-    /**
-     * Return a list of documentation elements.
-     * 
-     * @return a list of documentation elements.
-     */
-    protected CMNodeList getDocumentation()
-    {
-      XSDAnnotation annotation = xsdAttributeUse.getAttributeDeclaration().getAnnotation();
-      return getDocumentations(annotation);
-    }
-
-    /**
-     * Returns the cmdocument that is the owner of this cmnode.
-     * 
-     * @return the cmdocument corresponding to this cmnode.
-     */
-    public CMDocument getCMDocument()
-    {
-      return (CMDocument) getAdapter(xsdAttributeUse.getSchema());
-    }
-    /**
-     * XSDAttributeUseAdapter.DataTypeImpl An inner class to hold type
-     * information for this attribute.
-     */
-    public class DataTypeImpl implements CMDataType
-    {
-      /**
-       * Returns the type of the node. The types are defined in CMNode class
-       * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-       * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-       * DOCUMENTATION).
-       * 
-       * @return the type of this node.
-       */
-      public int getNodeType()
-      {
-        return CMNode.DATA_TYPE;
-      }
-
-      /**
-       * Returns the name of the attribute type. Same as getDataTypeName().
-       * 
-       * @return the name of the attribute type.
-       */
-      public String getNodeName()
-      {
-        return getDataTypeName();
-      }
-
-      /**
-       * Returns false. This class does not support any properties.
-       * 
-       * @param propertyName -
-       *          name of a property
-       * @return false.
-       */
-      public boolean supports(String propertyName)
-      {
-        return false;
-      }
-
-      /**
-       * Returns null. This class does not support any properties.
-       * 
-       * @param propertyName -
-       *          name of a property
-       * @return null.
-       */
-      public Object getProperty(String propertyName)
-      {
-        return null;
-      }
-
-      /**
-       * Returns the name of the attribute type. Same as getNodeName().
-       * 
-       * @return the name of the attribute type.
-       */
-      public String getDataTypeName()
-      {
-        XSDSimpleTypeDefinition sc = xsdAttributeUse.getAttributeDeclaration().getTypeDefinition();
-        String typeName = sc.getName();
-        return typeName != null ? typeName : "string";
-      }
-
-      /**
-       * Returns the kind of constraint: none, default or fixed. The kinds are
-       * defined in CMDataType class (IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED or
-       * IMPLIED_VALUE_DEFAULT).
-       * 
-       * @return the kind of constraint: none, default or fixed.
-       */
-      public int getImpliedValueKind()
-      {
-        int result = IMPLIED_VALUE_NONE;
-        if (xsdAttributeUse.isSetConstraint())
-        {
-          if (xsdAttributeUse.getConstraint().getValue() == XSDConstraint.DEFAULT)
-            result = IMPLIED_VALUE_DEFAULT;
-          else if (xsdAttributeUse.getConstraint().getValue() == XSDConstraint.FIXED)
-            result = IMPLIED_VALUE_FIXED;
-        }
-        return result;
-      }
-
-      /**
-       * Returns the value of the default or fixed constraint.
-       * 
-       * @return the value of the default or fixed constraint.
-       */
-      public String getImpliedValue()
-      {
-        String result = null;
-        if (xsdAttributeUse.isSetConstraint())
-        {
-          result = xsdAttributeUse.getLexicalValue();
-        }
-        return result;
-      }
-
-      /**
-       * Returns the enumerated values for the attribute type.
-       * 
-       * @return the enumerated values for the attribute type.
-       */
-      public String[] getEnumeratedValues()
-      {
-        return getEnumeratedValuesForType(getXSDType());
-      }
-
-      /**
-       * Generate a valid value for the attribute based on its type.
-       * 
-       * @return a valid value for the attribute based on its type.
-       */
-      public String generateInstanceValue()
-      {
-        XSDAttributeDeclaration attr = xsdAttributeUse.getAttributeDeclaration();
-        return XSDTypeUtil.getInstanceValue(attr.getResolvedAttributeDeclaration().getTypeDefinition());
-      }
-
-      /**
-       * Returns the corresponding XML Schema type definition.
-       * 
-       * @return the corresponding XML Schema type definition.
-       */
-      protected XSDTypeDefinition getXSDType()
-      {
-        XSDAttributeDeclaration attr = xsdAttributeUse.getAttributeDeclaration();
-        return attr.getResolvedAttributeDeclaration().getTypeDefinition();
-      }
-    }
-  }
-  /**
-   * ElementDeclarationBaseImpl implements CMElementDeclaration. This is the
-   * base class for XSDElementDeclaration and DerivedElementDeclarationImpl.
-   * 
-   * Abstract methods in this class are: public abstract Object getKey(); public
-   * abstract Object getNSPrefixQualification(); public abstract
-   * XSDElementDeclaration getXSDElementDeclaration(); public abstract
-   * XSDTypeDefinition getXSDType(); public abstract List getXSITypes(); public
-   * abstract CMElementDeclaration getDerivedElementDeclaration(String
-   * uriQualifiedTypeName); public abstract CMNode getDefinition(); public
-   * abstract String getDefinitionInfo(); public abstract CMNodeListImpl
-   * getSubstitutionGroup();
-   */
-  public static abstract class ElementDeclarationBaseImpl extends XSDBaseAdapter implements CMElementDeclaration
-  {
-    protected CMDataType dataType = new DataTypeImpl();
-    protected CMNamedNodeMap namedNodeMap;
-
-    /**
-     * Returns corresponding XML Schema element declaration.
-     * 
-     * @return corresponding XML Schema element declaration.
-     */
-    protected abstract XSDElementDeclaration getXSDElementDeclaration();
-
-    /**
-     * Returns corresponding XML Schema element declaration.
-     * 
-     * @return corresponding XML Schema element declaration.
-     */
-    protected abstract XSDElementDeclaration getResolvedXSDElementDeclaration();
-
-    /**
-     * Returns the type of the node. The types are defined in CMNode class
-     * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-     * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-     * DOCUMENTATION).
-     * 
-     * @return the type of this node.
-     */
-    public int getNodeType()
-    {
-      return ELEMENT_DECLARATION;
-    }
-
-    /**
-     * Returns the name of the node. The same as getElementName().
-     * 
-     * @return the name of the node.
-     */
-    public String getNodeName()
-    {
-      return getElementName();
-    }
-
-    /**
-     * Returns the name of this element. The same as getNodeName().
-     * 
-     * @return the name of this element.
-     */
-    public String getElementName()
-    {
-      String result = getResolvedXSDElementDeclaration().getName();
-      return result != null ? result : "";
-    }
-
-    /**
-     * Returns true if the property is supported for this class.
-     * 
-     * @param propertyName -
-     *          name of a property
-     * @return true if the property is supported.
-     */
-    public boolean supports(String propertyName)
-    {
-      return propertyName.equals(PROPERTY_XSITYPES) || propertyName.equals(PROPERTY_DERIVED_ELEMENT_DECLARATION) || propertyName.equals(PROPERTY_SUBSTITUTION_GROUP)
-          || propertyName.equals(PROPERTY_ABSTRACT) || super.supports(propertyName);
-    }
-
-    /**
-     * Returns the key for this cmnode which is the corresponding XML Schema
-     * node.
-     * 
-     * @return the key for this cmnode.
-     */
-    public abstract Object getKey();
-
-    /**
-     * Returns the set of attributes defined for this element.
-     * 
-     * @return the set of attributes defined for this element.
-     */
-    public CMNamedNodeMap getAttributes()
-    {
-      CMNamedNodeMapImpl map = new CMNamedNodeMapImpl();
-      XSDTypeDefinition td = getXSDType();
-      getAttributes(map, td);
-      addXSITypeAttribute(map);
-      return map;
-    }
-
-    /**
-     * Gather the set of attributes defined for this element.
-     * 
-     * @param map -
-     *          used for returning the set of attributes.
-     * @param xsdTypeDefinition -
-     *          the type definition for this element.
-     */
-    public void getAttributes(CMNamedNodeMapImpl map, XSDTypeDefinition xsdTypeDefinition)
-    {
-      if (xsdTypeDefinition instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition) xsdTypeDefinition;
-        for (Iterator i = ctd.getAttributeUses().iterator(); i.hasNext();)
-        {
-          XSDAttributeUse xsdAttributeUse = (XSDAttributeUse) i.next();
-          XSDAttributeUseAdapter adapter = (XSDAttributeUseAdapter) getAdapter(xsdAttributeUse);
-          if (adapter != null && adapter.getNodeName() != null)
-          {
-            map.getHashtable().put(adapter.getNodeName(), adapter);
-          }
-        }
-      }
-    }
-
-    /**
-     * Returns the content for this element.
-     * 
-     * @return the content for this element.
-     */
-    public CMContent getContent()
-    {
-      CMContent result = null;
-      XSDTypeDefinition td = getXSDType();
-      if (td instanceof XSDComplexTypeDefinition)
-      {
-        DerivedChildVisitor dcv = new DerivedChildVisitor(td);
-        dcv.visitTypeDefinition(td);
-        CMNodeList nodeList = dcv.getChildNodeList();
-        if (nodeList.getLength() > 1)
-        {
-          result = new CMGroupImpl(nodeList, CMGroup.SEQUENCE);
-        }
-        else if (nodeList.getLength() > 0)
-        {
-          result = (CMContent) nodeList.item(0);
-        }
-      }
-      return result;
-    }
-
-    /**
-     * Returns the content type of this element. The content type is defined in
-     * CMElementDeclaration (ANY, EMPTY, ELEMENT, MIXED, PCDATA or CDATA).
-     * 
-     * @return the content type of this element.
-     */
-    public int getContentType()
-    {
-      int contentType = EMPTY;
-      XSDTypeDefinition td = getXSDType();
-      if (td instanceof XSDSimpleTypeDefinition)
-      {
-        String typeName = td.getName();
-        if (typeName != null && typeName.equals("anyType"))
-        {
-          contentType = ANY;
-        }
-        else
-        {
-          contentType = PCDATA;
-        }
-      }
-      else if (td instanceof XSDComplexTypeDefinition)
-      {
-        XSDContentTypeCategory category = ((XSDComplexTypeDefinition) td).getContentTypeCategory();
-        if (category != null)
-        {
-          switch (category.getValue())
-          {
-            case XSDContentTypeCategory.ELEMENT_ONLY :
-              contentType = ELEMENT;
-              break;
-            case XSDContentTypeCategory.EMPTY :
-              contentType = EMPTY;
-              break;
-            case XSDContentTypeCategory.MIXED :
-              contentType = MIXED;
-              break;
-            case XSDContentTypeCategory.SIMPLE :
-              contentType = PCDATA;
-              break;
-          }
-        }
-      }
-      return contentType;
-    }
-
-    /**
-     * Returns the name of the element type.
-     * 
-     * @return the name of the element type.
-     */
-    public CMDataType getDataType()
-    {
-      CMDataType result = null;
-      int contentType = getContentType();
-      boolean hasDataType = contentType == PCDATA || contentType == MIXED;
-      if (hasDataType)
-      {
-        result = dataType;
-      }
-      return result;
-    }
-
-    /**
-     * Returns the value of 'Min Occurs' attribute. The default value is "1".
-     * 
-     * @return the value of the 'Min Occurs' attribute.
-     */
-    public int getMinOccur()
-    {
-      return getMinOccurs(getXSDElementDeclaration());
-    }
-
-    /**
-     * Returns the value of the 'Max Occurs' attribute. The default value is
-     * "1".
-     * 
-     * @return the value of the 'Max Occurs' attribute.
-     */
-    public int getMaxOccur()
-    {
-      return getMaxOccurs(getXSDElementDeclaration());
-    }
-
-    /**
-     * Returns the referenced element declaration if this is an element
-     * reference. Otherwise it returns itself.
-     * 
-     * @return an element declaration.
-     */
-    protected abstract CMNode getDefinition();
-
-    /**
-     * Returns a string indicating whether the element declaration is global or
-     * local. Returns null if this is an element reference.
-     * 
-     * @return a string indicating whether the element declaration is global or
-     *         local.
-     */
-    protected abstract String getDefinitionInfo();
-
-    /**
-     * Returns the elements local to this element declaration.
-     * 
-     * @return the elements local to this element declaration.
-     */
-    public CMNamedNodeMap getLocalElements()
-    {
-      if (namedNodeMap == null)
-      {
-        LocalElementVisitor localElementVisitor = new LocalElementVisitor();
-        localElementVisitor.visitTypeDefinition(getXSDType());
-        namedNodeMap = localElementVisitor.getCMNamedNodeMap();
-      }
-      return namedNodeMap;
-    }
-
-    /**
-     * Returns the property value for the property name. Returns null if the
-     * property is not supported.
-     * 
-     * @param propertyName -
-     *          name of a property
-     * @return the property value for the property name.
-     */
-    public Object getProperty(String propertyName)
-    {
-      Object result = null;
-      if (propertyName.equals(PROPERTY_DEFINITION_INFO))
-      {
-        result = getDefinitionInfo();
-      }
-      else if (propertyName.equals(PROPERTY_DEFINITION))
-      {
-        result = getDefinition();
-      }
-      else if (propertyName.equals(PROPERTY_XSITYPES))
-      {
-        result = getXSITypes();
-      }
-      else if (propertyName.startsWith(PROPERTY_DERIVED_ELEMENT_DECLARATION))
-      {
-        int index = propertyName.indexOf("=");
-        if (index != -1)
-        {
-          String uriQualifiedTypeName = propertyName.substring(index + 1);
-          result = getDerivedElementDeclaration(uriQualifiedTypeName);
-        }
-      }
-      else if (propertyName.equals(PROPERTY_SUBSTITUTION_GROUP))
-      {
-        return getSubstitutionGroup();
-      }
-      else if (propertyName.equals(PROPERTY_ABSTRACT))
-      {
-        return getAbstract();
-      }
-      else
-      {
-        result = super.getProperty(propertyName);
-      }
-      return result;
-    }
-
-    /**
-     * Returns the value of the 'Nillable' attribute. This represents the
-     * nillable infoset property. The default value is false.
-     * 
-     * @return the value of the 'Nillable' attribute.
-     */
-    public boolean isNillable()
-    {
-      if (getXSDElementDeclaration().isSetNillable())
-        return getXSDElementDeclaration().isNillable();
-      else
-        return false;
-    }
-
-    /**
-     * Returns whether the element is 'Abstract'.
-     * 
-     * @return true if the element is 'Abstract'.
-     */
-    public Boolean getAbstract()
-    {
-      boolean result = getResolvedXSDElementDeclaration().isAbstract();
-      // TODO... how do we handle elements with abstract type's ?
-      return result ? Boolean.TRUE : Boolean.FALSE;
-    }
-
-    /**
-     * Returns a list of documentation elements.
-     * 
-     * @return a list of documentation elements.
-     */
-    protected CMNodeList getDocumentation()
-    {
-      XSDAnnotation annotation = getXSDElementDeclaration().getAnnotation();
-      return getDocumentations(annotation);
-    }
-
-    /**
-     * Returns the corresponding XML Schema type definition.
-     * 
-     * @return the corresponding XML Schema type definition.
-     */
-    protected abstract XSDTypeDefinition getXSDType();
-
-    /**
-     * Returns a list of type names.
-     * 
-     * @return a list of type names.
-     */
-    protected abstract List getXSITypes();
-
-    /**
-     * Return the element declaration corresponding to the given uri qualified
-     * type name.
-     * 
-     * @param uriQualifiedTypeName -
-     *          a uri qualified type name
-     * @return corresponding element declaration.
-     */
-    protected abstract CMElementDeclaration getDerivedElementDeclaration(String uriQualifiedTypeName);
-
-    /**
-     * Returns a list of documentation elements.
-     * 
-     * @return a list of documentation elements.
-     */
-    protected void addXSITypeAttribute(CMNamedNodeMapImpl map)
-    {
-      List list = getXSITypes();
-      int listSize = list.size();
-      if (listSize > 1)
-      {
-        CMDataType dataType = new CMDataTypeImpl("typeNames", (String) null);
-        CMAttributeDeclarationImpl attribute = new CMAttributeDeclarationImpl("type", CMAttributeDeclaration.OPTIONAL, dataType);
-        attribute.setCMDocument(xsiDocument);
-        attribute.setPrefixQualification(true);
-        attribute.setXSITypes(list);
-        map.getHashtable().put(attribute.getNodeName(), attribute);
-      }
-    }
-
-    /**
-     * Returns the cmdocument that is the owner of this cmnode.
-     * 
-     * @return the cmdocument corresponding to this cmnode.
-     */
-    public CMDocument getCMDocument()
-    {      
-      XSDSchema schema = getResolvedXSDElementDeclaration().getSchema();
-      if (schema == null)
-        return null;
-      else  
-        return (CMDocument) getAdapter(schema);
-    }
-
-    /**
-     * Returns the substitution group for this element. The group consists of:
-     * 1. the element declaration itself 2. and any element declaration that has
-     * a {substitution group affiliation} in the group
-     * 
-     * @return the substitution group for this element.
-     */
-    protected abstract CMNodeListImpl getSubstitutionGroup();
-    /*
-     * XSDElementDeclarationAdapter.DataTypeImpl An inner class to hold type
-     * information for this element.
-     */
-    public class DataTypeImpl implements CMDataType
-    {
-      /**
-       * Returns the type of the node. The types are defined in CMNode class
-       * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-       * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-       * DOCUMENTATION).
-       * 
-       * @return the type of this node.
-       */
-      public int getNodeType()
-      {
-        return CMNode.DATA_TYPE;
-      }
-
-      /**
-       * Returns the name of the element type. Same as getDataTypeName().
-       * 
-       * @return the name of the element type.
-       */
-      public String getNodeName()
-      {
-        return getDataTypeName();
-      }
-
-      /**
-       * Returns false. This class does not support any properties.
-       * 
-       * @param propertyName -
-       *          name of a property
-       * @return false.
-       */
-      public boolean supports(String propertyName)
-      {
-        return false;
-      }
-
-      /**
-       * Returns null. This class does not support any properties.
-       * 
-       * @param propertyName -
-       *          name of a property
-       * @return null.
-       */
-      public Object getProperty(String propertyName)
-      {
-        return null;
-      }
-
-      /**
-       * Returns the name of the element type. Same as getNodeName().
-       * 
-       * @return the name of the element type.
-       */
-      public String getDataTypeName()
-      {
-        String typeName = null;
-        XSDSimpleTypeDefinition std = getXSDType().getSimpleType();
-        if (std != null)
-          typeName = std.getName();
-        return typeName != null ? typeName : "string";
-      }
-
-      /**
-       * Returns the kind of constraint: none, default or fixed. The kinds are
-       * defined in CMDataType class (IMPLIED_VALUE_NONE, IMPLIED_VALUE_FIXED or
-       * IMPLIED_VALUE_DEFAULT).
-       * 
-       * @return the kind of constraint: none, default or fixed.
-       */
-      public int getImpliedValueKind()
-      {
-        int result = IMPLIED_VALUE_NONE;
-        if (getXSDElementDeclaration().isSetConstraint())
-        {
-          if (getXSDElementDeclaration().getConstraint().getValue() == XSDConstraint.DEFAULT)
-            result = IMPLIED_VALUE_DEFAULT;
-          else if (getXSDElementDeclaration().getConstraint().getValue() == XSDConstraint.FIXED)
-            result = IMPLIED_VALUE_FIXED;
-        }
-        return result;
-      }
-
-      /**
-       * Returns the value of the default or fixed constraint.
-       * 
-       * @return the value of the default or fixed constraint.
-       */
-      public String getImpliedValue()
-      {
-        String result = null;
-        if (getXSDElementDeclaration().isSetConstraint())
-        {
-          result = getXSDElementDeclaration().getLexicalValue();
-        }
-        return result;
-      }
-
-      /**
-       * Returns the enumerated values for the attribute type.
-       * 
-       * @return the enumerated values for the attribute type.
-       */
-      public String[] getEnumeratedValues()
-      {
-        return getEnumeratedValuesForType(getXSDType());
-      }
-
-      public String generateInstanceValue()
-      {
-        return XSDTypeUtil.getInstanceValue(getXSDType());
-      }
-
-      /**
-       * Returns the cmdocument that is the owner of this cmnode.
-       * 
-       * @return the cmdocument corresponding to this cmnode.
-       */
-      public CMDocument getCMDocument()
-      {
-        return (CMDocument) getAdapter(getXSDElementDeclaration().getSchema());
-      }
-    }
-  }
-  /**
-   * XSDElementDeclarationAdapter implements CMElementDeclaration. A
-   * representation of the model object 'Element Declaration'.
-   */
-  public static class XSDElementDeclarationAdapter extends ElementDeclarationBaseImpl
-  {
-    protected List derivedElementDeclarations = null;
-    protected List xsiTypes = null;
-    protected XSDElementDeclaration xsdElementDeclaration;
-    protected CMNodeListImpl substitutionGroup;
-
-    /**
-     * Constructor.
-     * 
-     * @param xsdElementDeclaration -
-     *          the XML Schema node.
-     */
-    public XSDElementDeclarationAdapter(XSDElementDeclaration xsdElementDeclaration)
-    {
-      this.xsdElementDeclaration = xsdElementDeclaration;
-    }
-
-    /**
-     * Returns corresponding XML Schema element declaration.
-     * 
-     * @return corresponding XML Schema element declaration.
-     */
-    protected XSDElementDeclaration getXSDElementDeclaration()
-    {
-      return xsdElementDeclaration;
-    }
-
-    /**
-     * Returns corresponding XML Schema element declaration.
-     * 
-     * @return corresponding XML Schema element declaration.
-     */
-    protected XSDElementDeclaration getResolvedXSDElementDeclaration()
-    {
-      return xsdElementDeclaration.getResolvedElementDeclaration();
-    }
-
-    /**
-     * Returns the key for this cmnode which is the corresponding XML Schema
-     * node.
-     * 
-     * @return the key for this cmnode.
-     */
-    public Object getKey()
-    {
-      return xsdElementDeclaration;
-    }
-
-    /**
-     * Returns the referenced element declaration if this is an element
-     * reference. Otherwise it returns itself.
-     * 
-     * @return an element declaration.
-     */
-    public CMNode getDefinition()
-    {
-      return getAdapter(xsdElementDeclaration.getResolvedElementDeclaration());
-    }
-
-    /**
-     * Returns a string indicating whether the element declaration is global or
-     * local. Returns null if this is an element reference.
-     * 
-     * @return a string indicating whether the element declaration is global or
-     *         local.
-     */
-    protected String getDefinitionInfo()
-    {
-      if (xsdElementDeclaration.isElementDeclarationReference())
-        return null;
-      else if (xsdElementDeclaration.isGlobal())
-        return DEFINITION_INFO_GLOBAL;
-      else
-        return DEFINITION_INFO_LOCAL;
-    }
-
-    public Object getNSPrefixQualification()
-    {
-      String form = null;
-      if (xsdElementDeclaration.isElementDeclarationReference())
-      {
-        form = "qualified";
-      }
-      else
-      {
-        if (xsdElementDeclaration.isSetForm())
-        {
-          form = xsdElementDeclaration.getForm().getName();
-        }
-        else
-        {
-          XSDSchema schema = xsdElementDeclaration.getSchema();
-          if (schema != null)
-            form = schema.getElementFormDefault().getName();
-        }
-      }
-      return form;
-    }
-
-    /**
-     * Returns the corresponding XML Schema type definition.
-     * 
-     * @return the corresponding XML Schema type definition.
-     */
-    protected XSDTypeDefinition getXSDType()
-    {
-      return xsdElementDeclaration.getResolvedElementDeclaration().getTypeDefinition();
-    }
-
-    /**
-     * Returns a list of type names.
-     * 
-     * @return a list of type names.
-     */
-    protected List getXSITypes()
-    {
-      if (xsiTypes == null)
-      {
-        computeDerivedTypeInfo();
-      }
-      return xsiTypes;
-    }
-
-    protected void computeDerivedTypeInfo()
-    {
-      xsiTypes = new Vector();
-      derivedElementDeclarations = new Vector();
-      computeDerivedTypeInfoHelper(getXSDType(), xsiTypes, derivedElementDeclarations);
-    }
-
-    protected void computeDerivedTypeInfoHelper(XSDTypeDefinition type, List typeNameList, List edList)
-    {
-      if (type instanceof XSDComplexTypeDefinition)
-      {
-        List derivedTypes = findTypesDerivedFrom(type);
-        ArrayList inclusiveDerivedTypes = new ArrayList();
-        inclusiveDerivedTypes.add(type);
-        if ((derivedTypes != null) && (derivedTypes.size() > 0))
-        {
-          inclusiveDerivedTypes.addAll(derivedTypes);
-        }
-        for (Iterator i = inclusiveDerivedTypes.iterator(); i.hasNext();)
-        {
-          XSDTypeDefinition derivedType = (XSDTypeDefinition) i.next();
-          XSDSchema schema = derivedType.getSchema();
-          if (schema != null)
-          {
-            String uri = schema.getTargetNamespace();
-            String name = derivedType.getName();
-            if (name != null)
-            {
-              name = uri != null ? ("[" + uri + "]" + name) : name;
-              typeNameList.add(name);
-              DerivedElementDeclarationImpl ed = new DerivedElementDeclarationImpl(this, derivedType, name);
-              edList.add(ed);
-            }
-          }
-        }
-      }
-    }
-
-    /**
-     * Return the element declaration corresponding to the given uri qualified
-     * type name.
-     * 
-     * @param uriQualifiedTypeName -
-     *          a uri qualified type name
-     * @return corresponding element declaration.
-     */
-    protected CMElementDeclaration getDerivedElementDeclaration(String uriQualifiedTypeName)
-    {
-      CMElementDeclaration result = null;
-      if (derivedElementDeclarations == null)
-      {
-        computeDerivedTypeInfo();
-      }
-      for (Iterator i = derivedElementDeclarations.iterator(); i.hasNext();)
-      {
-        DerivedElementDeclarationImpl ed = (DerivedElementDeclarationImpl) i.next();
-        if ((ed != null) && (ed.uriQualifiedTypeName != null))
-        {
-          if (ed.uriQualifiedTypeName.equals(uriQualifiedTypeName))
-          {
-            result = ed;
-            break;
-          }
-        }
-      }
-      return result;
-    }
-
-    /**
-     * Returns the substitution group for this element. The group consists of:
-     * 1. the element declaration itself 2. and any element declaration that has
-     * a {substitution group affiliation} in the group
-     * 
-     * @return the substitution group for this element.
-     */
-    protected CMNodeListImpl getSubstitutionGroup()
-    {
-      if (substitutionGroup == null)
-      {
-        substitutionGroup = new CMNodeListImpl();
-        List sgroup = getResolvedXSDElementDeclaration().getSubstitutionGroup();
-        for (Iterator i = sgroup.iterator(); i.hasNext();)
-        {
-          XSDElementDeclaration ed = (XSDElementDeclaration) i.next();  
-          substitutionGroup.add(getAdapter(ed));
-        }
-      }
-      return substitutionGroup;
-    }
-  }
-  /**
-   * DerivedElementDeclarationImpl extends ElementDeclarationBaseImpl
-   *  
-   */
-  public static class DerivedElementDeclarationImpl extends ElementDeclarationBaseImpl
-  {
-    protected XSDElementDeclarationAdapter owner;
-    protected XSDTypeDefinition xsdType;
-    public String uriQualifiedTypeName;
-
-    /**
-     * Constructor.
-     * 
-     * @param owner -
-     * @param xsdType -
-     * @param uriQualifiedTypeName -
-     */
-    public DerivedElementDeclarationImpl(XSDElementDeclarationAdapter owner, XSDTypeDefinition xsdType, String uriQualifiedTypeName)
-    {
-      this.owner = owner;
-      this.xsdType = xsdType;
-      this.uriQualifiedTypeName = uriQualifiedTypeName;
-    }
-
-    /**
-     * Returns corresponding XML Schema element declaration.
-     * 
-     * @return corresponding XML Schema element declaration.
-     */
-    protected XSDElementDeclaration getXSDElementDeclaration()
-    {
-      return (XSDElementDeclaration) owner.getKey();
-    }
-
-    /**
-     * Returns corresponding XML Schema element declaration.
-     * 
-     * @return corresponding XML Schema element declaration.
-     */
-    protected XSDElementDeclaration getResolvedXSDElementDeclaration()
-    {
-      return ((XSDElementDeclaration) owner.getKey()).getResolvedElementDeclaration();
-    }
-
-    /**
-     * Returns the key for this cmnode which is the corresponding XML Schema
-     * node.
-     * 
-     * @return the key for this cmnode.
-     */
-    public Object getKey()
-    {
-      return owner.getKey();
-    }
-
-    /**
-     * Returns the corresponding XML Schema type definition.
-     * 
-     * @return the corresponding XML Schema type definition.
-     */
-    protected XSDTypeDefinition getXSDType()
-    {
-      return xsdType;
-    }
-
-    /**
-     * Returns a list of type names.
-     * 
-     * @return a list of type names.
-     */
-    protected List getXSITypes()
-    {
-      return owner.getXSITypes();
-    }
-
-    /**
-     * Return the element declaration corresponding to the given uri qualified
-     * type name.
-     * 
-     * @param uriQualifiedTypeName -
-     *          a uri qualified type name
-     * @return corresponding element declaration.
-     */
-    protected CMElementDeclaration getDerivedElementDeclaration(String uriQualifiedTypeName)
-    {
-      return owner.getDerivedElementDeclaration(uriQualifiedTypeName);
-    }
-
-    /**
-     * Returns the referenced element declaration if this is an element
-     * reference. Otherwise it returns itself.
-     * 
-     * @return an element declaration.
-     */
-    protected CMNode getDefinition()
-    {
-      return this;
-    }
-
-    /**
-     * Returns a string indicating whether the element declaration is global or
-     * local. Returns null if this is an element reference.
-     * 
-     * @return a string indicating whether the element declaration is global or
-     *         local.
-     */
-    protected String getDefinitionInfo()
-    {
-      return owner.getDefinitionInfo();
-    }
-
-    /*
-     * Returns the value of the form [attribute] which affects the target
-     * namespace of locally scoped features. @return the value of the form
-     * [attribute].
-     */
-    public Object getNSPrefixQualification()
-    {
-      return owner.getNSPrefixQualification();
-    }
-
-    /**
-     * Returns the substitution group for this element. The group consists of:
-     * 1. the element declaration itself 2. and any element declaration that has
-     * a {substitution group affiliation} in the group
-     * 
-     * @return the substitution group for this element.
-     */
-    protected CMNodeListImpl getSubstitutionGroup()
-    {
-      return owner.getSubstitutionGroup();
-    }
-  }
-  /**
-   * XSDWildcardAdapter
-   */
-  public static class XSDWildcardAdapter extends XSDBaseAdapter implements CMAnyElement
-  {
-    protected XSDWildcard xsdWildcard;
-
-    public XSDWildcardAdapter(XSDWildcard xsdWildcard)
-    {
-      this.xsdWildcard = xsdWildcard;
-    }
-
-    /**
-     * Returns the key for this cmnode which is the corresponding XML Schema
-     * node.
-     * 
-     * @return the key for this cmnode.
-     */
-    public Object getKey()
-    {
-      return xsdWildcard;
-    }
-
-    /**
-     * Returns the type of the node. The types are defined in CMNode class
-     * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-     * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-     * DOCUMENTATION).
-     * 
-     * @return the type of this node.
-     */
-    public int getNodeType()
-    {
-      return ANY_ELEMENT;
-    }
-
-    /**
-     * Returns the name of the node. The default value is an empty string value.
-     * All derived classes must override this method if they do not want the
-     * default value.
-     * 
-     * @return the name of the node.
-     */
-    public String getNodeName()
-    {
-      return "any";
-    }
-
-    public String getNamespaceURI()
-    {
-      String uri = xsdWildcard.getElement().getAttribute(XSDConstants.NAMESPACE_ATTRIBUTE);
-      return (uri != null && uri.length() > 0) ? uri : "##any";
-    }
-
-    /**
-     * Returns the value of 'Min Occurs' attribute. The default value is "1".
-     * 
-     * @return the value of the 'Min Occurs' attribute.
-     */
-    public int getMinOccur()
-    {
-      return getMinOccurs(xsdWildcard);
-    }
-
-    /**
-     * Returns the value of the 'Max Occurs' attribute. The default value is
-     * "1".
-     * 
-     * @return the value of the 'Max Occurs' attribute.
-     */
-    public int getMaxOccur()
-    {
-      return getMaxOccurs(xsdWildcard);
-    }
-
-    /**
-     * Returns the cmdocument that is the owner of this cmnode.
-     * 
-     * @return the cmdocument corresponding to this cmnode.
-     */
-    public CMDocument getCMDocument()
-    {
-      return (CMDocument) getAdapter(xsdWildcard.getSchema());
-    }
-
-    /**
-     * Returns a list of documentation elements.
-     * 
-     * @return a list of documentation elements.
-     */
-    protected CMNodeList getDocumentation()
-    {
-      XSDAnnotation annotation = xsdWildcard.getAnnotation();
-      return getDocumentations(annotation);
-    }
-  }
-  /**
-   * XSDModelGroupAdapter
-   */
-  public static class XSDModelGroupAdapter extends XSDBaseAdapter implements CMGroup
-  {
-    protected XSDModelGroup xsdModelGroup;
-
-    public XSDModelGroupAdapter()
-    {
-    }
-
-    public XSDModelGroupAdapter(XSDModelGroup xsdModelGroup)
-    {
-      this.xsdModelGroup = xsdModelGroup;
-    }
-
-    /**
-     * Returns the type of the node. The types are defined in CMNode class
-     * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-     * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-     * DOCUMENTATION).
-     * 
-     * @return the type of this node.
-     */
-    public int getNodeType()
-    {
-      return GROUP;
-    }
-
-    /**
-     * Returns the key for this cmnode which is the corresponding XML Schema
-     * node.
-     * 
-     * @return the key for this cmnode.
-     */
-    public Object getKey()
-    {
-      return xsdModelGroup;
-    }
-
-    /**
-     * Returns a list of the children of this group.
-     * 
-     * @return a list of the children of this group.
-     */
-    public CMNodeList getChildNodes()
-    {
-      CMNodeListImpl nodeList = new CMNodeListImpl();
-      if (xsdModelGroup != null)
-      {
-        for (Iterator i = xsdModelGroup.getParticles().iterator(); i.hasNext();)
-        {
-          XSDParticle particle = (XSDParticle) i.next();
-          XSDParticleContent content = particle.getContent();
-          CMNode adapter = getAdapter(content);
-          if (adapter != null)
-          {
-            nodeList.getList().add(adapter);
-          }
-        }
-      }
-      return nodeList;
-    }
-
-    /**
-     * Returns the name of the node. The default value is an empty string value.
-     * All derived classes must override this method if they do not want the
-     * default value.
-     * 
-     * @return the name of the node.
-     */
-    public String getNodeName()
-    {
-      CMDescriptionBuilder descriptionBuilder = new CMDescriptionBuilder();
-      return descriptionBuilder.buildDescription(this);
-    }
-
-    /**
-     * Returns the value of 'Min Occurs' attribute. The default value is "1".
-     * 
-     * @return the value of the 'Min Occurs' attribute.
-     */
-    public int getMinOccur()
-    {
-      return getMinOccurs(xsdModelGroup);
-    }
-
-    /**
-     * Returns the value of the 'Max Occurs' attribute. The default value is
-     * "1".
-     * 
-     * @return the value of the 'Max Occurs' attribute.
-     */
-    public int getMaxOccur()
-    {
-      return getMaxOccurs(xsdModelGroup);
-    }
-
-    /**
-     * Return operator of this group -- CHOICE, SEQUENCE or ALL value.
-     * 
-     * @return the operator of this group.
-     */
-    public int getOperator()
-    {
-      int result = 0;
-      //todo... handle ALONE case by checkig if child count == 1
-      if (xsdModelGroup != null)
-      {
-        switch (xsdModelGroup.getCompositor().getValue())
-        {
-          case XSDCompositor.CHOICE : {
-            result = CHOICE;
-            break;
-          }
-          case XSDCompositor.SEQUENCE : {
-            result = SEQUENCE;
-            break;
-          }
-          case XSDCompositor.ALL : {
-            result = ALL;
-            break;
-          }
-        }
-      }
-      return result;
-    }
-
-    /**
-     * Returns a list of documentation elements.
-     * 
-     * @return a list of documentation elements.
-     */
-    protected CMNodeList getDocumentation()
-    {
-      XSDAnnotation annotation = xsdModelGroup.getAnnotation();
-      return getDocumentations(annotation);
-    }
-
-    /**
-     * Returns the cmdocument that is the owner of this cmnode.
-     * 
-     * @return the cmdocument corresponding to this cmnode.
-     */
-    public CMDocument getCMDocument()
-    {
-      return (CMDocument) getAdapter(xsdModelGroup.getSchema());
-    }
-  }
-  /**
-   * XSDModelGroupDefinitionAdapter
-   */
-  public static class XSDModelGroupDefinitionAdapter extends XSDBaseAdapter implements CMGroup
-  {
-    protected XSDModelGroupDefinition xsdModelGroupDefinition;
-
-    public XSDModelGroupDefinitionAdapter(XSDModelGroupDefinition xsdModelGroupDefinition)
-    {
-      this.xsdModelGroupDefinition = xsdModelGroupDefinition;
-    }
-
-    /**
-     * Returns the type of the node. The types are defined in CMNode class
-     * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-     * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-     * DOCUMENTATION).
-     * 
-     * @return the type of this node.
-     */
-    public int getNodeType()
-    {
-      return GROUP;
-    }
-
-    /**
-     * Returns the key for this cmnode which is the corresponding XML Schema
-     * node.
-     * 
-     * @return the key for this cmnode.
-     */
-    public Object getKey()
-    {
-      return xsdModelGroupDefinition;
-    }
-
-    /**
-     * Returns a list of the children of this group.
-     * 
-     * @return a list of the children of this group.
-     */
-    public CMNodeList getChildNodes()
-    {
-      CMNodeListImpl nodeList = new CMNodeListImpl();
-      XSDModelGroup modelGroup = xsdModelGroupDefinition.getResolvedModelGroupDefinition().getModelGroup();
-      if (modelGroup != null)
-      {
-        CMNode adapter = getAdapter(modelGroup);
-        nodeList.add(adapter);
-      }
-      return nodeList;
-    }
-
-    /**
-     * Returns the name of the node. The default value is an empty string value.
-     * All derived classes must override this method if they do not want the
-     * default value.
-     * 
-     * @return the name of the node.
-     */
-    public String getNodeName()
-    {
-      CMDescriptionBuilder descriptionBuilder = new CMDescriptionBuilder();
-      return descriptionBuilder.buildDescription(this);
-    }
-
-    /**
-     * Returns the value of 'Min Occurs' attribute. The default value is "1".
-     * 
-     * @return the value of the 'Min Occurs' attribute.
-     */
-    public int getMinOccur()
-    {
-      return getMinOccurs(xsdModelGroupDefinition);
-    }
-
-    /**
-     * Returns the value of the 'Max Occurs' attribute. The default value is
-     * "1".
-     * 
-     * @return the value of the 'Max Occurs' attribute.
-     */
-    public int getMaxOccur()
-    {
-      return getMaxOccurs(xsdModelGroupDefinition);
-    }
-
-    /**
-     * Return operator of this group -- CHOICE, SEQUENCE or ALL value.
-     * 
-     * @return the operator of this group.
-     */
-    public int getOperator()
-    {
-      return XSDCompositor.SEQUENCE;
-    }
-
-    /**
-     * Returns a list of documentation elements.
-     * 
-     * @return a list of documentation elements.
-     */
-    protected CMNodeList getDocumentation()
-    {
-      XSDAnnotation annotation = xsdModelGroupDefinition.getAnnotation();
-      return getDocumentations(annotation);
-    }
-
-    /**
-     * Returns the cmdocument that is the owner of this cmnode.
-     * 
-     * @return the cmdocument corresponding to this cmnode.
-     */
-    public CMDocument getCMDocument()
-    {
-      return (CMDocument) getAdapter(xsdModelGroupDefinition.getSchema());
-    }
-  }
-  /**
-   * DocumentationImpl implements CMDocumentation. A representation of the
-   * documentation element part of the 'User Information' feature. Working with
-   * the documentation element requires dropping down into the DOM model.
-   */
-  public static class DocumentationImpl implements CMDocumentation
-  {
-    protected Element documentation;
-
-    /**
-     * Constructor.
-     * 
-     * @param documentation -
-     *          a documentation element.
-     */
-    public DocumentationImpl(Element documentation)
-    {
-      this.documentation = documentation;
-    }
-
-    /**
-     * Returns the type of the node. The types are defined in CMNode class
-     * (ANY_ELEMENT, ATTRIBUTE_DECLARATION, DATA_TYPE, DOCUMENT,
-     * ELEMENT_DECLARATION, ENTITY_DECLARATION, GROUP, NAME_SPACE or
-     * DOCUMENTATION).
-     * 
-     * @return the type of this node.
-     */
-    public int getNodeType()
-    {
-      return DOCUMENTATION;
-    }
-
-    /**
-     * Returns an empty string value.
-     * 
-     * @return an empty string value.
-     */
-    public String getNodeName()
-    {
-      return "";
-    }
-
-    /**
-     * Returns false. This class does not support any properties.
-     * 
-     * @param propertyName -
-     *          name of a property
-     * @return false.
-     */
-    public boolean supports(String propertyName)
-    {
-      return false;
-    }
-
-    /**
-     * Returns null. This class does not support any properties.
-     * 
-     * @param propertyName -
-     *          name of a property
-     * @return null.
-     */
-    public Object getProperty(String propertyName)
-    {
-      return null;
-    }
-
-    /**
-     * Returns the content of the documentation element.
-     * 
-     * @return the content of the documentation element.
-     */
-    public String getValue()
-    {
-      String content = "";
-      boolean contentFound = false;
-      NodeList nodes = documentation.getChildNodes();
-      for (int i = 0; i < nodes.getLength(); i++)
-      {
-        Node node = nodes.item(i);
-        if (node instanceof Text)
-        {
-          contentFound = true;
-          content += node.getNodeValue();
-        }
-      }
-      return contentFound ? content : null;
-    }
-
-    /**
-     * Returns the xml:lang attribute value of the documentation element.
-     * 
-     * @return the xml:lang attribute value of the documentation element.
-     */
-    public String getLanguage()
-    {
-      return documentation.hasAttributeNS(XSDConstants.XML_NAMESPACE_URI_1998, XML_LANG_ATTRIBUTE) ? documentation.getAttributeNS(XSDConstants.XML_NAMESPACE_URI_1998, XML_LANG_ATTRIBUTE) : null;
-    }
-
-    /**
-     * Returns the source attribute value of the documentation element.
-     * 
-     * @return the source attribute value of the documentation element.
-     */
-    public String getSource()
-    {
-      return documentation.hasAttributeNS(null, XSDConstants.SOURCE_ATTRIBUTE) ? documentation.getAttributeNS(null, XSDConstants.SOURCE_ATTRIBUTE) : null;
-    }
-  }
-  /**
-   * XSIDocument extends CMDocumentImpl. This class is used to hold those
-   * attributes that are for direct use in any XML documents. These attributes
-   * are in a different namespace, which has the namespace name
-   * http://www.w3.org/2001/XMLSchema-instance. Attributes in this namespace
-   * include: xsi:type xsi:nil xsi:schemaLocation xsi:noNamespaceSchemaLocation
-   */
-  public static class XSIDocument extends CMDocumentImpl
-  {
-    public CMAttributeDeclarationImpl nilAttribute;
-
-    /**
-     * Constructor. Creates the 'xsi:nil'
-     */
-    public XSIDocument()
-    {
-      super(XSDConstants.SCHEMA_INSTANCE_URI_2001);
-      // create the 'nill' attribute
-      String[] values = {"false", "true"};
-      nilAttribute = new CMAttributeDeclarationImpl("nil", CMAttributeDeclaration.REQUIRED, new CMDataTypeImpl("boolean", values));
-      nilAttribute.setPrefixQualification(true);
-      nilAttribute.setCMDocument(this);
-    }
-  }
-  /**
-   * Note this XSD model visitor differs from the XSD model visitor in
-   * org.eclipse.wst.xsd.editor plugin. In visitModelGroup method we call
-   * getParticles() instead of getContents(). This gathers all of the content of
-   * a derived type.
-   */
-  public static class XSDCMVisitor extends XSDVisitor
-  {
-    public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
-    {
-      XSDParticle ctd = type.getComplexType();
-      if (ctd != null)
-        visitParticle(ctd);
-    }
-
-    public void visitModelGroup(XSDModelGroup modelGroup)
-    {
-      if (modelGroup.getParticles() != null)
-      {
-        for (Iterator iterator = modelGroup.getParticles().iterator(); iterator.hasNext();)
-        {
-          XSDParticle particle = (XSDParticle) iterator.next();
-          visitParticle(particle);
-        }
-      }
-    }
-
-    public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDef)
-    {
-      XSDModelGroup modelGroup = modelGroupDef.getResolvedModelGroupDefinition().getModelGroup();
-      if (modelGroup != null)
-      {
-        visitModelGroup(modelGroup);
-      }
-    }
-  }
-  /**
-   * A visitor class that walks the xsd model and computes the list of children
-   * that belong to the initially visited element type.
-   */
-  public static class DerivedChildVisitor extends XSDCMVisitor
-  {
-    protected CMNodeListImpl childNodeList = new CMNodeListImpl();
-    protected List baseTypeList = new Vector();
-    Object root;
-
-    DerivedChildVisitor(Object root)
-    {
-      this.root = root;
-    }
-
-    public CMNodeListImpl getChildNodeList()
-    {
-      return childNodeList;
-    }
-
-    public void visitWildcard(XSDWildcard wildcard)
-    {
-      childNodeList.getList().add(getAdapter(wildcard));
-    }
-
-    public void visitElementDeclaration(XSDElementDeclaration element)
-    {
-      childNodeList.getList().add(getAdapter(element));
-    }
-
-    public void visitModelGroup(XSDModelGroup modelGroup)
-    {
-      childNodeList.getList().add(getAdapter(modelGroup));
-    }
-
-    public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDefinition)
-    {
-      childNodeList.getList().add(getAdapter(modelGroupDefinition));
-    }
-  }
-  /**
-   * A visitor class that gathers all of the elements within a type definition.
-   */
-  public static class LocalElementVisitor extends XSDCMVisitor
-  {
-    protected CMNamedNodeMapImpl namedNodeMap = new CMNamedNodeMapImpl();
-    protected List baseTypeList = new Vector();
-
-    public void visitElementDeclaration(XSDElementDeclaration element)
-    {
-      XSDElementDeclarationAdapter adapter = (XSDElementDeclarationAdapter) getAdapter(element);
-      namedNodeMap.getHashtable().put(adapter.getNodeName(), adapter);
-    }
-
-    public CMNamedNodeMap getCMNamedNodeMap()
-    {
-      return namedNodeMap;
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDTypeUtil.java b/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDTypeUtil.java
deleted file mode 100644
index 3946868..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDTypeUtil.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.contentmodel.internal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-/**
- * Helper class to generate valid values for built-in simple types.
- */
-
-public class XSDTypeUtil
-{
-  protected static Map defaultValue = new HashMap();
-
-  public static void initialize()
-  {
-    defaultValue.put("anySimpleType", null);
-    defaultValue.put("anyType", null);
-    defaultValue.put("anyURI", "http://tempuri.org");
-    defaultValue.put("base64Binary", "0");
-    defaultValue.put("boolean", "true");
-    defaultValue.put("byte", "0");
-    defaultValue.put("date", "2001-01-01");
-    defaultValue.put("dateTime", "2001-12-31T12:00:00");
-    defaultValue.put("decimal", "0.0");
-    defaultValue.put("double", "0.0");
-    defaultValue.put("duration", "P1D");
-    defaultValue.put("ENTITY", "entity");
-    defaultValue.put("ENTITIES", "entities");
-    defaultValue.put("float", "0.0");
-    defaultValue.put("gDay", "---01");
-    defaultValue.put("gMonth", "--01--");
-    defaultValue.put("gMonthDay", "--01-01");
-    defaultValue.put("gYear", "2001");
-    defaultValue.put("gYearMonth", "2001-01");
-    defaultValue.put("hexBinary", "0F00");
-    defaultValue.put("ID", null);
-    defaultValue.put("IDREF", null);
-    defaultValue.put("IDREFS", null);
-    defaultValue.put("int", "0");
-    defaultValue.put("integer", "0");
-    defaultValue.put("language", "EN");
-    defaultValue.put("long", "0");
-    defaultValue.put("Name", "Name");
-    defaultValue.put("NCName", "NCName");
-    defaultValue.put("negativeInteger", "-1");
-    defaultValue.put("NMTOKEN", "NMTOKEN");
-    defaultValue.put("NMTOKENS", "NMTOKENS");
-    defaultValue.put("nonNegativeInteger", "0");
-    defaultValue.put("nonPositiveInteger", "0");
-    defaultValue.put("normalizedString", null);
-    defaultValue.put("NOTATION", "NOTATION");
-    defaultValue.put("positiveInteger", "1");
-    defaultValue.put("QName", "QName");
-    defaultValue.put("short", "0");
-    defaultValue.put("string", null);
-    defaultValue.put("time", "12:00:00");
-    defaultValue.put("token", "token");
-    defaultValue.put("unsignedByte", "0");
-    defaultValue.put("unsignedInt", "0");
-    defaultValue.put("unsignedLong", "0");
-    defaultValue.put("unsignedShort", "0");
-  }
-
-
-  /*
-   * Returns true if the type is built-in.
-   * @param type - an XSDTypeDefinition object.
-   * @return true if the type is built-in.
-   */
-  public static boolean isBuiltIn(XSDTypeDefinition type)
-  { 
-    boolean result = false;
-    if (type instanceof XSDSimpleTypeDefinition)
-    {
-      String name = type.getName();
-      if (name != null)
-      {
-        return  defaultValue.containsKey(name); 
-      }
-    }
-    return result;
-  }
-
-
-  /**
-   * Returns a valid default value for the simple type.
-   * @param type - a simple built-in type.
-   * @return a valid default value for the simple type.
-   */
-  public static String getInstanceValue(XSDTypeDefinition type)
-  {
-    if (type != null)
-    {
-      if (isBuiltIn(type))
-      {
-        String nameID = type.getName();
-        return (String)defaultValue.get(nameID);
-      }
-      else
-      {
-        XSDTypeDefinition basetype = type.getBaseType();
-        if (basetype != type) return getInstanceValue(basetype);
-      }
-    }
-    return null;
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDVisitor.java b/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDVisitor.java
deleted file mode 100644
index f40e1a4..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/XSDVisitor.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.contentmodel.internal;
-
-import java.util.Iterator;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-public class XSDVisitor
-{
-  public XSDVisitor()
-  {
-  }
-  
-  protected XSDSchema schema;
-  
-  public void visitSchema(XSDSchema schema)
-  {
-    this.schema = schema;
-    for (Iterator iterator = schema.getAttributeDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeDeclaration attr = (XSDAttributeDeclaration) iterator.next();
-      visitAttributeDeclaration(attr);
-    }
-    for (Iterator iterator = schema.getTypeDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDTypeDefinition type = (XSDTypeDefinition) iterator.next();
-      visitTypeDefinition(type);
-    }
-    for (Iterator iterator = schema.getElementDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDElementDeclaration element = (XSDElementDeclaration) iterator.next();
-      visitElementDeclaration(element);
-    }
-    for (Iterator iterator = schema.getIdentityConstraintDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDIdentityConstraintDefinition identityConstraint = (XSDIdentityConstraintDefinition) iterator.next();
-      visitIdentityConstraintDefinition(identityConstraint);
-    }
-    for (Iterator iterator = schema.getModelGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDModelGroupDefinition modelGroup = (XSDModelGroupDefinition) iterator.next();
-      visitModelGroupDefinition(modelGroup);
-    }
-    for (Iterator iterator = schema.getAttributeGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeGroupDefinition attributeGroup = (XSDAttributeGroupDefinition) iterator.next();
-      visitAttributeGroupDefinition(attributeGroup);
-    }
-    for (Iterator iterator = schema.getNotationDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDNotationDeclaration element = (XSDNotationDeclaration) iterator.next();
-      visitNotationDeclaration(element);
-    }
-    
-  }
-  
-  public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-  {
-  }
-  
-  public void visitTypeDefinition(XSDTypeDefinition type)
-  {
-    if (type instanceof XSDSimpleTypeDefinition)
-    {
-      visitSimpleTypeDefinition((XSDSimpleTypeDefinition)type);
-    }
-    else if (type instanceof XSDComplexTypeDefinition)
-    {
-      visitComplexTypeDefinition((XSDComplexTypeDefinition)type);
-    }
-  }
-  
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (element.isElementDeclarationReference())
-    {
-    }
-    else if (element.getAnonymousTypeDefinition() != null)
-    {
-      visitTypeDefinition(element.getAnonymousTypeDefinition());
-    }
-  }
-  
-  public void visitIdentityConstraintDefinition(XSDIdentityConstraintDefinition identityConstraint)
-  {
-  }
-  
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDef)
-  {
-    if (!modelGroupDef.isModelGroupDefinitionReference())
-    {
-      if (modelGroupDef.getModelGroup() != null)
-      {
-        visitModelGroup(modelGroupDef.getModelGroup());
-      }
-    }
-  }
-  
-  public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-  {
-  }
-  
-  public void visitNotationDeclaration(XSDNotationDeclaration notation)
-  {
-  }
-  
-  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
-  {
-  }
-  
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    if (type.getContentType() != null)
-    {
-      XSDComplexTypeContent complexContent = type.getContentType();
-      if (complexContent instanceof XSDSimpleTypeDefinition)
-      {
-        visitSimpleTypeDefinition((XSDSimpleTypeDefinition)complexContent);
-      }
-      else if (complexContent instanceof XSDParticle)
-      {
-        visitParticle((XSDParticle) complexContent);
-      }
-    }
-  }
-  
-  public void visitParticle(XSDParticle particle)
-  {
-    visitParticleContent(particle.getContent());
-  }
-  
-  public void visitParticleContent(XSDParticleContent particleContent)
-  {
-    if (particleContent instanceof XSDModelGroupDefinition)
-    {
-      visitModelGroupDefinition((XSDModelGroupDefinition) particleContent);
-    }
-    else if (particleContent instanceof XSDModelGroup)
-    {
-      visitModelGroup((XSDModelGroup)particleContent);
-    }
-    else if (particleContent instanceof XSDElementDeclaration)
-    {
-      visitElementDeclaration((XSDElementDeclaration)particleContent);
-    }
-    else if (particleContent instanceof XSDWildcard)
-    {
-      visitWildcard((XSDWildcard)particleContent);
-    }
-  }
-  
-  public void visitModelGroup(XSDModelGroup modelGroup)
-  {
-    if (modelGroup.getContents() != null)
-    {
-      for (Iterator iterator = modelGroup.getContents().iterator(); iterator.hasNext();)
-      {
-        XSDParticle particle = (XSDParticle) iterator.next();
-        visitParticle(particle);
-      }
-    }
-  }
-  
-  public void visitWildcard(XSDWildcard wildcard)
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/util/XSDSchemaLocatorAdapterFactory.java b/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/util/XSDSchemaLocatorAdapterFactory.java
deleted file mode 100644
index cba5df1..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/util/XSDSchemaLocatorAdapterFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.contentmodel.internal.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-import org.eclipse.xsd.util.XSDSchemaLocator;
-
-public class XSDSchemaLocatorAdapterFactory extends AdapterFactoryImpl
-{
-    protected XSDSchemaLocatorImpl schemaLocator = new XSDSchemaLocatorImpl();
-
-    public boolean isFactoryForType(Object type)
-    {
-      return type == XSDSchemaLocator.class;
-    }
-
-    public Adapter adaptNew(Notifier target, Object type)
-    {
-      return schemaLocator;
-    }
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/util/XSDSchemaLocatorImpl.java b/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/util/XSDSchemaLocatorImpl.java
deleted file mode 100644
index a8422b7..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-contentmodel/org/eclipse/wst/xsd/contentmodel/internal/util/XSDSchemaLocatorImpl.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.contentmodel.internal.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDResourceImpl;
-import org.eclipse.xsd.util.XSDSchemaLocator;
-
-public class XSDSchemaLocatorImpl extends AdapterImpl implements XSDSchemaLocator
-{
-    /**
-     * @see org.eclipse.xsd.util.XSDSchemaLocator#locateSchema(org.eclipse.xsd.XSDSchema,
-     *      java.lang.String, java.lang.String, java.lang.String)
-     */
-    public XSDSchema locateSchema(XSDSchema xsdSchema, String namespaceURI, String rawSchemaLocationURI, String resolvedSchemaLocationURI)
-    {
-      XSDSchema result = null;
-      String baseLocation = xsdSchema.getSchemaLocation();      
-      String resolvedURI = URIResolverPlugin.createResolver().resolve(baseLocation, namespaceURI, rawSchemaLocationURI); 
-      if (resolvedURI == null) 
-      {
-        resolvedURI = resolvedSchemaLocationURI;       
-      }
-      try
-      {        
-        ResourceSet resourceSet = xsdSchema.eResource().getResourceSet();
-        URI uri = URI.createURI(resolvedURI);
-        Resource r = resourceSet.getResource(uri, false); 
-        XSDResourceImpl resolvedResource = null;
-        if (r instanceof XSDResourceImpl)
-        {
-          resolvedResource = (XSDResourceImpl)r;
-        }
-        else        
-        {  
-          String physicalLocation = URIResolverPlugin.createResolver().resolvePhysicalLocation(baseLocation, namespaceURI, resolvedURI);     
-          InputStream inputStream = resourceSet.getURIConverter().createInputStream(URI.createURI(physicalLocation));
-          resolvedResource = (XSDResourceImpl)resourceSet.createResource(URI.createURI("*.xsd"));
-          resolvedResource.setURI(uri);
-          resolvedResource.load(inputStream, null);           
-        }
-
-        result = resolvedResource.getSchema();
-      }
-      catch (IOException exception)
-      {
-        // It is generally not an error to fail to resolve.
-        // If a resource is actually created, 
-        // which happens only when we can create an input stream,
-        // then it's an error if it's not a good schema
-      }
-      return result;
-    }
-
-    public boolean isAdatperForType(Object type)
-    {
-      return type == XSDSchemaLocator.class;
-    }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationConfiguration.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationConfiguration.java
deleted file mode 100644
index 3fb8279..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationConfiguration.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.core.internal.validation;
-
-/**
- * An XSD validation configuration allows setting specific configuration
- * information for a WTP XSD validation run. Any features and properties
- * set on this configuration should not be confused with those from
- * parsers such as Xerces. (This object does not by default wrap features
- * and properties from specific parsers.)
- */
-public class XSDValidationConfiguration 
-{
-  public static String HONOUR_ALL_SCHEMA_LOCATIONS = "HONOUR_ALL_SCHEMA_LOCATIONS"; //$NON-NLS-1$
-  private boolean honour_all_schema_locations = false;
-  
-  /**
-   * Set a feature of this configuration.
-   * 
-   * @param feature
-   * 		The feature to set.
-   * @param value
-   * 		The value to set for the feature.
-   * @throws 
-   * 		An exception is thrown if the feature is not recognized.
-   */
-  public void setFeature(String feature, boolean value) throws Exception
-  {
-	if(HONOUR_ALL_SCHEMA_LOCATIONS.equals(feature))
-	  honour_all_schema_locations = value;
-	else
-	  throw new Exception("Feature not recognized."); //$NON-NLS-1$
-	
-  }
-  
-  
-  /**
-   * Get the value for a given feature. If the feature is not defined
-   * this method will throw an exception.
-   * 
-   * @param feature
-   * 		The feature for which to retrieve the value.
-   * @return
-   * 		The feature's value, true or false.
-   * @throws 
-   * 		An exception is thrown if the feature is not recognized.
-   */
-  public boolean getFeature(String feature) throws Exception
-  {
-	if(HONOUR_ALL_SCHEMA_LOCATIONS.equals(feature))
-	  return honour_all_schema_locations;
-	
-	throw new Exception("Feature not recognized."); //$NON-NLS-1$
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationMessages.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationMessages.java
deleted file mode 100644
index 701f2bc..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidationMessages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2005 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 - Initial API and implementation
- * 
- */
-package org.eclipse.wst.xsd.core.internal.validation;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * Strings used by XSD Validation
- */
-public class XSDValidationMessages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.wst.xsd.core.internal.validation.xsdvalidation";//$NON-NLS-1$
-
-	public static String Message_XSD_validation_message_ui;
-
-	static {
-		// load message values from bundle file
-		NLS.initializeMessages(BUNDLE_NAME, XSDValidationMessages.class);
-	}
-
-	private XSDValidationMessages() {
-		// cannot create new instance
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidator.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidator.java
deleted file mode 100644
index 1e5376e..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/XSDValidator.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core.internal.validation;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.apache.xerces.impl.Constants;
-import org.apache.xerces.parsers.XMLGrammarPreparser;
-import org.apache.xerces.util.XMLGrammarPoolImpl;
-import org.apache.xerces.xni.XMLResourceIdentifier;
-import org.apache.xerces.xni.XNIException;
-import org.apache.xerces.xni.grammars.XMLGrammarDescription;
-import org.apache.xerces.xni.parser.XMLEntityResolver;
-import org.apache.xerces.xni.parser.XMLErrorHandler;
-import org.apache.xerces.xni.parser.XMLInputSource;
-import org.apache.xerces.xni.parser.XMLParseException;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver;
-import org.eclipse.wst.xml.core.internal.validation.XMLValidator;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationInfo;
-import org.eclipse.wst.xml.core.internal.validation.core.ValidationReport;
-import org.w3c.dom.DOMError;
-
-/**
- * The XSDValidator will validate XSD files.
- */
-public class XSDValidator
-{
-  protected URIResolver uriresolver = null;
-
-  public ValidationReport validate(String uri)
-  {
-    return validate(uri, null);
-  }
-  
-  public ValidationReport validate(String uri, InputStream inputStream)
-  {
-	return validate(uri, null, null);
-  }
-  
-  /**
-   * Validate the XSD file specified by the URI.
-   * 
-   * @param uri
-   * 		The URI of the XSD file to validate.
-   * @param inputStream 
-   * 		An input stream representing the XSD file to validate.
-   * @param configuration
-   * 		A configuration for this validation run.
-   */
-  public ValidationReport validate(String uri, InputStream inputStream, XSDValidationConfiguration configuration)
-  {
-	if(configuration == null)
-	{
-	  configuration = new XSDValidationConfiguration();
-	}
-	ValidationInfo valinfo = new ValidationInfo(uri);
-	XSDErrorHandler errorHandler = new XSDErrorHandler(valinfo);
-	try
-	{
-	  XMLGrammarPreparser grammarPreparser = new XMLGrammarPreparser();
-	  grammarPreparser.registerPreparser(XMLGrammarDescription.XML_SCHEMA,null/*schemaLoader*/);
-		  
-	  grammarPreparser.setProperty(Constants.XERCES_PROPERTY_PREFIX + Constants.XMLGRAMMAR_POOL_PROPERTY, new XMLGrammarPoolImpl());
-	  grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE, false);
-      grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.NAMESPACES_FEATURE, true);
-      grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.NAMESPACE_PREFIXES_FEATURE, true);
-	  grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.VALIDATION_FEATURE, true);
-	  grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_VALIDATION_FEATURE, true);
-      grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_FULL_CHECKING, false);
-	  grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.EXTERNAL_GENERAL_ENTITIES_FEATURE, true);
-	  grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.EXTERNAL_PARAMETER_ENTITIES_FEATURE, true);
-	  grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + Constants.WARN_ON_DUPLICATE_ATTDEF_FEATURE, true);
-	     
-	  if(configuration.getFeature(XSDValidationConfiguration.HONOUR_ALL_SCHEMA_LOCATIONS))
-	  {
-	    try
-	    {
-	      grammarPreparser.setFeature(Constants.XERCES_FEATURE_PREFIX + "honour-all-schemaLocations", true);
-	    }
-        catch (Exception e)
-	    {
-	      // catch the exception and ignore
-	    }
-	  }
-	      
-	  grammarPreparser.setErrorHandler(errorHandler);
-	  if (uriresolver != null)
-	  {
-	    XSDEntityResolver resolver = new XSDEntityResolver(uriresolver, uri);
-	    if (resolver != null)
-	    {
-	      grammarPreparser.setEntityResolver(resolver);
-	    }
-	  }
-
-	  try
-	  {
-	  	XMLInputSource is = new XMLInputSource(null, uri, uri, inputStream, null);
-	    grammarPreparser.getLoader(XMLGrammarDescription.XML_SCHEMA);
-		grammarPreparser.preparseGrammar(XMLGrammarDescription.XML_SCHEMA,is);
-	  }
-	  catch (Exception e)
-	  {
-	    //parser will return null pointer exception if the document is structurally invalid
-		//TODO: log error message
-		//System.out.println(e);
-      }
-	}
-	catch (Exception e)
-	{
-      // TODO: log error.
-	  //System.out.println(e);
-	}
-	return valinfo;
-  }
-
-  /**
-   * Set the URI resolver to use with XSD validation.
-   * 
-   * @param uriresolver
-   *          The URI resolver to use.
-   */
-  public void setURIResolver(URIResolver uriresolver)
-  {
-    this.uriresolver = uriresolver;
-  }
-
-  /**
-   * The XSDErrorHandler handle Xerces parsing errors and puts the errors
-   * into the given ValidationInfo object.
-   */
-  protected class XSDErrorHandler implements XMLErrorHandler
-  {
-	  
-    private final ValidationInfo valinfo;
-
-    public XSDErrorHandler(ValidationInfo valinfo)
-    {
-      this.valinfo = valinfo;
-    }
-    
-    /**
-     * Add a validation message with the given severity.
-     * 
-     * @param errorKey The Xerces error key.
-     * @param exception The exception that contains the information about the message.
-     * @param severity The severity of the validation message.
-     */
-    protected void addValidationMessage(String errorKey, XMLParseException exception, int severity)
-    { 
-      String systemId = exception.getExpandedSystemId();
-      if (systemId != null)
-      {
-        if (severity == DOMError.SEVERITY_WARNING)
-        {
-          valinfo.addWarning(exception.getLocalizedMessage(), exception.getLineNumber(), exception.getColumnNumber(), systemId);
-        }
-        else
-        {
-          valinfo.addError(exception.getLocalizedMessage(), exception.getLineNumber(), exception.getColumnNumber(), systemId, errorKey, null);
-        }
-      }
-    }
-
-    /* (non-Javadoc)
-     * @see org.apache.xerces.xni.parser.XMLErrorHandler#warning(java.lang.String, java.lang.String, org.apache.xerces.xni.parser.XMLParseException)
-     */
-    public void warning(String domain, String key, XMLParseException exception) throws XNIException
-	{
-    	addValidationMessage(key, exception, DOMError.SEVERITY_WARNING);
-	}
-
-    /* (non-Javadoc)
-     * @see org.apache.xerces.xni.parser.XMLErrorHandler#error(java.lang.String, java.lang.String, org.apache.xerces.xni.parser.XMLParseException)
-     */
-    public void error(String domain, String key, XMLParseException exception) throws XNIException
-    {
-    	addValidationMessage(key, exception, DOMError.SEVERITY_ERROR);
-	}
-
-    /* (non-Javadoc)
-     * @see org.apache.xerces.xni.parser.XMLErrorHandler#fatalError(java.lang.String, java.lang.String, org.apache.xerces.xni.parser.XMLParseException)
-     */
-    public void fatalError(String domain, String key, XMLParseException exception) throws XNIException
-	{
-    	addValidationMessage(key, exception, DOMError.SEVERITY_FATAL_ERROR);
-	}
-  }
-
-  /**
-   * The XSDEntityResolver wraps an idresolver to provide entity resolution to
-   * the XSD validator.
-   */
-  protected class XSDEntityResolver implements XMLEntityResolver
-  {
-    private URIResolver uriresolver = null;
-
-    /**
-     * Constructor.
-     * 
-     * @param idresolver
-     *          The idresolver this entity resolver wraps.
-     * @param baselocation The base location to resolve with.
-     */
-    public XSDEntityResolver(URIResolver uriresolver, String baselocation)
-    {
-      this.uriresolver = uriresolver;
-    }
-    
-    /* (non-Javadoc)
-     * @see org.apache.xerces.xni.parser.XMLEntityResolver#resolveEntity(org.apache.xerces.xni.XMLResourceIdentifier)
-     */
-    public XMLInputSource resolveEntity(XMLResourceIdentifier resourceIdentifier) throws XNIException, IOException
-    {
-      String literalSystemId = resourceIdentifier.getLiteralSystemId();
-      if(literalSystemId != null)
-      {
-    	resourceIdentifier.setLiteralSystemId(literalSystemId.replace('\\','/'));
-      }
-        // TODO cs: In revision 1.1 we explicitly opened a stream to ensure
-        // file I/O problems produced messages. I've remove this fudge for now
-        // since I can't seem to reproduce the problem it was intended to fix.
-        // I'm hoping the newer Xerces code base has fixed this problem and the fudge is defunct.
-        return XMLValidator._internalResolveEntity(uriresolver, resourceIdentifier);
-      
-    }
-  }   
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/Validator.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/Validator.java
deleted file mode 100644
index 1bcb951..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/Validator.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core.internal.validation.eclipse;
-
-import java.io.InputStream;
-import java.util.HashMap;
-
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator;
-import org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext;
-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.core.internal.XSDCorePlugin;
-import org.eclipse.wst.xsd.core.internal.preferences.XSDCorePreferenceNames;
-import org.eclipse.wst.xsd.core.internal.validation.XSDValidationConfiguration;
-import org.eclipse.wst.xsd.core.internal.validation.XSDValidationMessages;
-
-public class Validator extends AbstractNestedValidator
-{
-  protected HashMap xsdConfigurations = new HashMap();
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#setupValidation(org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  protected void setupValidation(NestedValidatorContext context) 
-  {
-	XSDValidationConfiguration configuration = new XSDValidationConfiguration();
-	boolean honourAllSchemaLocations = XSDCorePlugin.getDefault().getPluginPreferences().getBoolean(XSDCorePreferenceNames.HONOUR_ALL_SCHEMA_LOCATIONS);
-	try
-	{
-	  configuration.setFeature(XSDValidationConfiguration.HONOUR_ALL_SCHEMA_LOCATIONS, honourAllSchemaLocations);
-	}
-	catch(Exception e)
-	{
-	  // Unable to set the honour all schema locations option. Do nothing.
-	}
-	xsdConfigurations.put(context, configuration);
-	
-	super.setupValidation(context);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#teardownValidation(org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  protected void teardownValidation(NestedValidatorContext context) 
-  {
-	xsdConfigurations.remove(context);
-	
-	super.teardownValidation(context);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#getValidatorName()
-   */
-  protected String getValidatorName() 
-  {
-	return XSDValidationMessages.Message_XSD_validation_message_ui;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#validate(java.lang.String, java.io.InputStream, org.eclipse.wst.xml.core.internal.validation.core.NestedValidatorContext)
-   */
-  public ValidationReport validate(String uri, InputStream inputstream, NestedValidatorContext context)
-  {  
-	XSDValidator validator = XSDValidator.getInstance();
-	
-	XSDValidationConfiguration configuration = (XSDValidationConfiguration)xsdConfigurations.get(context);
-
-	ValidationReport valreport = null;
-	
-	valreport = validator.validate(uri, inputstream, configuration);
-		        
-	return valreport;
-  }
-	  
-  /**
-   * Store additional information in the message parameters. For XSD validation there
-   * are three additional pieces of information to store:
-   * 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
-   * 
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#addInfoToMessage(org.eclipse.wst.xml.core.internal.validation.core.ValidationMessage, org.eclipse.wst.validation.internal.provisional.core.IMessage)
-   */
-  protected void addInfoToMessage(ValidationMessage validationMessage, IMessage message)
-  { 
-	String key = validationMessage.getKey();
-	if(key != null)
-	{
-	  XSDMessageInfoHelper messageInfoHelper = new XSDMessageInfoHelper();
-	  String[] messageInfo = messageInfoHelper.createMessageInfo(key, validationMessage.getMessage());
-
-	  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]);
-	}
-  }
-
-  /*
-   * (non-Javadoc)
-   * @see org.eclipse.wst.xml.core.internal.validation.core.AbstractNestedValidator#getValidatorID()
-   */
-  protected String getValidatorID()
-  {
-    // Because this class is used as a delegate, return the id of the validator
-    // which delegates to this class.
-
-    return XSDDelegatingValidator.class.getName();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDDelegatingValidator.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDDelegatingValidator.java
deleted file mode 100644
index 3f615ba..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDDelegatingValidator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.core.internal.validation.eclipse;
-
-import org.eclipse.wst.validation.internal.delegates.DelegatingValidator;
-
-/**
- * This class provides a unique name (class name) which the validation framework
- * will use to identify the XSD validator. The actual delegating validator
- * functionality is provided by the base class. The actual validation
- * functionality is provided by the delegates registered with this class as
- * their target.
- */
-public class XSDDelegatingValidator extends DelegatingValidator
-{
-  /**
-   * Default constructor.
-   */
-  public XSDDelegatingValidator()
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java
deleted file mode 100644
index 1016583..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDMessageInfoHelper.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.core.internal.validation.eclipse;
-
-
-/**
- * The XSDMessageInfoHelper creates a string with the
- */
-public class XSDMessageInfoHelper
-{
-  public XSDMessageInfoHelper()
-  { super();
-  }
-
-  public String[] createMessageInfo(String errorKey, String errorMessage)
-  { 
-    //Now map the error key to what we would want to underline:
-    String nameOrValue = "";
-    String selectionStrategy = "";
-    if(errorKey != null)
-    {
-      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;    
-  }
-
-  /**
-   * 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)
-   * 
-   * @param s
-   * 		The string to extract the value from.
-   */
-  protected 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.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDValidator.java b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDValidator.java
deleted file mode 100644
index 7eb1ba6..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/eclipse/XSDValidator.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.core.internal.validation.eclipse;
-
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-
-
-/**
- * An XSD validator specific to Eclipse. This validator will wrap the internal
- * XSD validator an provide automatic URI resolution support.
- * Using this class is equivalent to using the internal XSD validator and registering
- * the URI resolver from the URI resolution framework.
- */
-public class XSDValidator extends org.eclipse.wst.xsd.core.internal.validation.XSDValidator
-{
-  private static XSDValidator instance = 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()
-  {
-    this.setURIResolver(URIResolverPlugin.createResolver());
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/xsdvalidation.properties b/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/xsdvalidation.properties
deleted file mode 100644
index fa7bbfb..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src-validation/org/eclipse/wst/xsd/core/internal/validation/xsdvalidation.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 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
-###############################################################################
-# validation strings
-Message_XSD_validation_message_ui=XML Schema Validator validating {0}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/XSDCorePlugin.java b/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/XSDCorePlugin.java
deleted file mode 100644
index 7b30f26..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/XSDCorePlugin.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
-* Copyright (c) 2004, 2005 IBM Corporation and others.
-* All rights reserved. This program and the accompanying materials
-* are made available under the terms of the Eclipse Public License v1.0
-* which accompanies this distribution, and is available at
-* http://www.eclipse.org/legal/epl-v10.html
-* 
-* Contributors:
-*     IBM Corporation - Initial API and implementation
-*******************************************************************************/
-package org.eclipse.wst.xsd.core.internal;
-
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.wst.xsd.contentmodel.internal.XSDCMManager;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class XSDCorePlugin extends Plugin {
-	//The shared instance.
-	private static XSDCorePlugin plugin;
-	
-	/**
-	 * The constructor.
-	 */
-	public XSDCorePlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-    XSDCMManager.getInstance().startup();
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static XSDCorePlugin getDefault() {
-		return plugin;
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/preferences/XSDCorePreferenceInitializer.java b/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/preferences/XSDCorePreferenceInitializer.java
deleted file mode 100644
index 475e3a1..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/preferences/XSDCorePreferenceInitializer.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.core.internal.preferences;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.wst.xsd.core.internal.XSDCorePlugin;
-
-/**
- * Sets default values for XSD Core preferences
- */
-public class XSDCorePreferenceInitializer extends AbstractPreferenceInitializer {
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences()
-	 */
-	public void initializeDefaultPreferences() {
-		IEclipsePreferences node = new DefaultScope().getNode(XSDCorePlugin.getDefault().getBundle().getSymbolicName());
-		
-		// Validation preferences.
-		node.putBoolean(XSDCorePreferenceNames.HONOUR_ALL_SCHEMA_LOCATIONS, false);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/preferences/XSDCorePreferenceNames.java b/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/preferences/XSDCorePreferenceNames.java
deleted file mode 100644
index c37d0cc..0000000
--- a/bundles/org.eclipse.wst.xsd.core/src/org/eclipse/wst/xsd/core/internal/preferences/XSDCorePreferenceNames.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.core.internal.preferences;
-
-/**
- * Common preference keys used by XSD core
- */
-public class XSDCorePreferenceNames {
-	private XSDCorePreferenceNames() {
-		// empty private constructor so users cannot instantiate class
-	}
-	/**
-	 * Indicates whether or not all schema locations should be honoured
-	 * during XSD validation.
-	 * <p>
-	 * Value is of type <code>boolean</code>.<br />
-	 * Possible values: {TRUE, FALSE}
-	 * </p>
-	 * 
-	 */
-	public static final String HONOUR_ALL_SCHEMA_LOCATIONS = "honourAllSchemaLocations";//$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/.classpath b/bundles/org.eclipse.wst.xsd.ui/.classpath
deleted file mode 100644
index 94a7bc7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.classpath
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-    <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="src"
-        path="src-search" />
-    <classpathentry
-        kind="con"
-        path="org.eclipse.jdt.launching.JRE_CONTAINER" />
-    <classpathentry
-        path="org.eclipse.pde.core.requiredPlugins"
-        kind="con">
-        <accessrules>
-            <accessrule
-                kind="accessible"
-                pattern="org/eclipse/wst/**" />
-        </accessrules>
-    </classpathentry>
-    <classpathentry
-        kind="output"
-        path="bin" />
-</classpath>
diff --git a/bundles/org.eclipse.wst.xsd.ui/.cvsignore b/bundles/org.eclipse.wst.xsd.ui/.cvsignore
deleted file mode 100644
index 6500e4d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-bin
-xsdeditor.jar
-build.xml
-temp.folder
-org.eclipse.wst.xsd.ui_1.0.0.jar
-@dot
-src.zip
-javaCompiler...args
diff --git a/bundles/org.eclipse.wst.xsd.ui/.project b/bundles/org.eclipse.wst.xsd.ui/.project
deleted file mode 100644
index aab3824..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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.core.resources.prefs b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index afa5c91..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-encoding/<project>=ISO-8859-1
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
deleted file mode 100644
index fbc430f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,80 +0,0 @@
-#Sat Aug 19 16:31:43 EDT 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=ignore

-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.annotationSuperInterface=warning

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

-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore

-org.eclipse.jdt.core.compiler.problem.deprecation=ignore

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

-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled

-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning

-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning

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

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

-org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore

-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error

-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error

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

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

-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore

-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error

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

-org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled

-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=error

-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore

-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.missingOverrideAnnotation=ignore

-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error

-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error

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

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

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

-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error

-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled

-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error

-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled

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

-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=ignore

-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning

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

-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning

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

-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error

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

-org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation=warning

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore

-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled

-org.eclipse.jdt.core.compiler.problem.unusedImport=error

-org.eclipse.jdt.core.compiler.problem.unusedLabel=error

-org.eclipse.jdt.core.compiler.problem.unusedLocal=error

-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=error

-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning

-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
deleted file mode 100644
index 301c7ad..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Apr 17 01:48:39 EDT 2006
-eclipse.preferences.version=1
-internal.default.compliance=default
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<templates/>
diff --git a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
deleted file mode 100644
index c59368c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Apr 04 03:36:32 EDT 2006
-eclipse.preferences.version=1
-org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
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
deleted file mode 100644
index 061cd53..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,16 +0,0 @@
-#Mon Apr 17 02:01:33 EDT 2006

-compilers.incompatible-environment=0

-compilers.p.build=0

-compilers.p.deprecated=1

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

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

-compilers.p.not-externalized-att=0

-compilers.p.unknown-attribute=0

-compilers.p.unknown-class=0

-compilers.p.unknown-element=0

-compilers.p.unknown-resource=0

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

-compilers.p.unresolved-import=0

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

-compilers.use-project=true

-eclipse.preferences.version=1

diff --git a/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index a0074ba..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,91 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %_UI_PLUGIN_NAME
-Bundle-SymbolicName: org.eclipse.wst.xsd.ui; singleton:=true
-Bundle-Version: 1.1.105.qualifier
-Bundle-Activator: org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin
-Bundle-Vendor: %Bundle-Vendor.0
-Bundle-Localization: plugin
-Export-Package: org.eclipse.wst.xsd.ui.internal.actions,
- org.eclipse.wst.xsd.ui.internal.adapters,
- org.eclipse.wst.xsd.ui.internal.adt.actions,
- org.eclipse.wst.xsd.ui.internal.adt.design,
- org.eclipse.wst.xsd.ui.internal.adt.design.directedit,
- org.eclipse.wst.xsd.ui.internal.adt.design.editparts,
- org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model,
- org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies,
- org.eclipse.wst.xsd.ui.internal.adt.design.figures,
- org.eclipse.wst.xsd.ui.internal.adt.edit,
- org.eclipse.wst.xsd.ui.internal.adt.editor,
- org.eclipse.wst.xsd.ui.internal.adt.facade,
- org.eclipse.wst.xsd.ui.internal.adt.outline,
- org.eclipse.wst.xsd.ui.internal.adt.properties,
- org.eclipse.wst.xsd.ui.internal.adt.typeviz,
- org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures,
- org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.layouts,
- org.eclipse.wst.xsd.ui.internal.commands,
- org.eclipse.wst.xsd.ui.internal.common.actions,
- org.eclipse.wst.xsd.ui.internal.common.commands,
- org.eclipse.wst.xsd.ui.internal.common.properties.providers,
- org.eclipse.wst.xsd.ui.internal.common.properties.sections,
- org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo,
- org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom,
- org.eclipse.wst.xsd.ui.internal.common.util,
- org.eclipse.wst.xsd.ui.internal.design.editparts,
- org.eclipse.wst.xsd.ui.internal.design.editparts.model,
- org.eclipse.wst.xsd.ui.internal.design.editpolicies,
- org.eclipse.wst.xsd.ui.internal.design.figures,
- org.eclipse.wst.xsd.ui.internal.design.layouts,
- org.eclipse.wst.xsd.ui.internal.dialogs,
- org.eclipse.wst.xsd.ui.internal.editor,
- org.eclipse.wst.xsd.ui.internal.editor.icons,
- org.eclipse.wst.xsd.ui.internal.editor.search,
- org.eclipse.wst.xsd.ui.internal.navigation,
- org.eclipse.wst.xsd.ui.internal.nsedit;x-internal:=true,
- org.eclipse.wst.xsd.ui.internal.preferences,
- 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.utils,
- 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;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.wst.common.uriresolver;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.sse.ui;bundle-version="[1.0.101,1.1.0)",
- org.eclipse.wst.sse.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.common.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.xml.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.wst.xml.ui;bundle-version="[1.0.100,1.1.0)",
- org.eclipse.wst.common.ui;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.jface.text;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.xsd;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.gef;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.draw2d;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.xsd;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.jface;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ui.editors;bundle-version="[3.2.0,3.3.0)",
- org.eclipse.ui.workbench.texteditor;bundle-version="[3.2.0,3.4.0)",
- org.eclipse.ui;bundle-version="[3.2.0,3.4.0)",
- org.eclipse.ui.views;bundle-version="[3.2.0,3.4.0)",
- org.eclipse.ui.ide;bundle-version="[3.2.0,3.4.0)",
- org.eclipse.emf.ecore.edit;bundle-version="[2.2.0,2.3.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.xsd.edit;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.emf.edit;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.emf.edit.ui;bundle-version="[2.2.0,3.0.0)",
- org.eclipse.wst.validation;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.ltk.core.refactoring;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.ltk.ui.refactoring;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.wst.xsd.core;bundle-version="[1.1.0,1.2.0)",
- org.eclipse.search;bundle-version="[3.2.0,4.0.0)",
- com.ibm.icu;bundle-version="[3.4.4,3.5.0)"
-Eclipse-LazyStart: true
diff --git a/bundles/org.eclipse.wst.xsd.ui/about.html b/bundles/org.eclipse.wst.xsd.ui/about.html
deleted file mode 100644
index 4ec5989..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/about.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!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">
-
-<H3>About This Content</H3>
-
-<P>May 2, 2006</P>
-
-<H3>License</H3>
-
-<P>The Eclipse Foundation makes available all content in this plug-in 
-("Content"). Unless otherwise indicated below, the Content is provided to you 
-under the terms and conditions of the Eclipse Public License Version 1.0 
-("EPL"). A copy of the EPL is available at
-<A href="http://www.eclipse.org/org/documents/epl-v10.php">http://www.eclipse.org/org/documents/epl-v10.php</A>. 
-For purposes of the EPL, "Program" 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 ("Redistributor") 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 
-and such source code may be obtained at
-<A href="http://www.eclipse.org/">http://www.eclipse.org/</A>.</P>
-
-</BODY>
-</HTML>
diff --git a/bundles/org.eclipse.wst.xsd.ui/build.properties b/bundles/org.eclipse.wst.xsd.ui/build.properties
deleted file mode 100644
index 856249a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/build.properties
+++ /dev/null
@@ -1,25 +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
-###############################################################################
-source.. = 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
deleted file mode 100644
index 294443a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/component.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?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
deleted file mode 100644
index 3900f1b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/XSDFile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/blank.gif b/bundles/org.eclipse.wst.xsd.ui/icons/blank.gif
deleted file mode 100644
index 1936e21..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/blank.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/browsebutton.gif b/bundles/org.eclipse.wst.xsd.ui/icons/browsebutton.gif
deleted file mode 100644
index 13dae59..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/browsebutton.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/collapse_attr.gif b/bundles/org.eclipse.wst.xsd.ui/icons/collapse_attr.gif
deleted file mode 100644
index b872bee..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/collapse_attr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/delete_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/delete_obj.gif
deleted file mode 100644
index b6922ac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/delete_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/dlcl16/schemaview_co.gif b/bundles/org.eclipse.wst.xsd.ui/icons/dlcl16/schemaview_co.gif
deleted file mode 100644
index 5b67950..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/dlcl16/schemaview_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/dlcl16/showproperties_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/dlcl16/showproperties_obj.gif
deleted file mode 100644
index d94ff10..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/dlcl16/showproperties_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/dtool16/help_contents.gif b/bundles/org.eclipse.wst.xsd.ui/icons/dtool16/help_contents.gif
deleted file mode 100644
index 74bf617..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/dtool16/help_contents.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/dtool16/showproperties_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/dtool16/showproperties_obj.gif
deleted file mode 100644
index d94ff10..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/dtool16/showproperties_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/elcl16/schemaview_co.gif b/bundles/org.eclipse.wst.xsd.ui/icons/elcl16/schemaview_co.gif
deleted file mode 100644
index f2d7f1b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/elcl16/schemaview_co.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/elcl16/showproperties_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/elcl16/showproperties_obj.gif
deleted file mode 100644
index 1dc19a3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/elcl16/showproperties_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/etool16/help_contents.gif b/bundles/org.eclipse.wst.xsd.ui/icons/etool16/help_contents.gif
deleted file mode 100644
index 9d70301..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/etool16/help_contents.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/etool16/showproperties_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/etool16/showproperties_obj.gif
deleted file mode 100644
index 1dc19a3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/etool16/showproperties_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/expand_attr.gif b/bundles/org.eclipse.wst.xsd.ui/icons/expand_attr.gif
deleted file mode 100644
index 5c287e9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/expand_attr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/filter.gif b/bundles/org.eclipse.wst.xsd.ui/icons/filter.gif
deleted file mode 100644
index 6fe6f0e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/filter.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAnyAttributedis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAnyAttributedis.gif
deleted file mode 100644
index 2440a24..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAnyAttributedis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAnydis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAnydis.gif
deleted file mode 100644
index 44da751..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAnydis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroup.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroup.gif
deleted file mode 100644
index 5a8df73..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupRef.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupRef.gif
deleted file mode 100644
index b2c1db9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupRefdis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupRefdis.gif
deleted file mode 100644
index 79dc58f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupRefdis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupdis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupdis.gif
deleted file mode 100644
index 1e81677..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeGroupdis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeRefdis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeRefdis.gif
deleted file mode 100644
index f80af50..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributeRefdis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributedis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributedis.gif
deleted file mode 100644
index 121d192..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDAttributedis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexContent.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexContent.gif
deleted file mode 100644
index b90c12e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexContent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexType.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexType.gif
deleted file mode 100644
index 878b94f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexType.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexTypedis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexTypedis.gif
deleted file mode 100644
index 36d1b3e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDComplexTypedis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDElementRefdis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDElementRefdis.gif
deleted file mode 100644
index 40bd3aa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDElementRefdis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDElementdis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDElementdis.gif
deleted file mode 100644
index 7b56868..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDElementdis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroup.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroup.gif
deleted file mode 100644
index 462c2d4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupRef.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupRef.gif
deleted file mode 100644
index 068987b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupRefdis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupRefdis.gif
deleted file mode 100644
index e217e9b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupRefdis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupdis.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupdis.gif
deleted file mode 100644
index 98df7f4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDGroupdis.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDSimpleContent.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDSimpleContent.gif
deleted file mode 100644
index 2ae812c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/XSDSimpleContent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/all_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/all_obj.gif
deleted file mode 100644
index da37fba..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/all_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/alldis_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/alldis_obj.gif
deleted file mode 100644
index 6f5484c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/alldis_obj.gif
+++ /dev/null
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
deleted file mode 100644
index 9bfb682..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/annotationsheader.gif
+++ /dev/null
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
deleted file mode 100644
index 78092ff..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributegroupsheader.gif
+++ /dev/null
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
deleted file mode 100644
index 9254879..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/attributesheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/choice_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/choice_obj.gif
deleted file mode 100644
index 8af583f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/choice_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/choicedis_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/choicedis_obj.gif
deleted file mode 100644
index 7ecc4ff..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/choicedis_obj.gif
+++ /dev/null
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
deleted file mode 100644
index 6000cb8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/directivesheader.gif
+++ /dev/null
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
deleted file mode 100644
index 26f7206..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/elementsheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/error_marker.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/error_marker.gif
deleted file mode 100644
index 61e1e25..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/error_marker.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/extnsn_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/extnsn_obj.gif
deleted file mode 100644
index c24a95f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/extnsn_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/extnsndis_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/extnsndis_obj.gif
deleted file mode 100644
index 843cd0e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/extnsndis_obj.gif
+++ /dev/null
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
deleted file mode 100644
index 7ca11cd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/groupsheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/index.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/index.gif
deleted file mode 100644
index 5bf9ac0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/index.gif
+++ /dev/null
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
deleted file mode 100644
index e05c645..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/notationsheader.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/sequence_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/sequence_obj.gif
deleted file mode 100644
index 16b8612..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/sequence_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/sequencedis_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/sequencedis_obj.gif
deleted file mode 100644
index fd972de..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/sequencedis_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/simpletype_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/simpletype_obj.gif
deleted file mode 100644
index 2e74430..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/simpletype_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/simpletypedis_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/simpletypedis_obj.gif
deleted file mode 100644
index 320973e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/simpletypedis_obj.gif
+++ /dev/null
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
deleted file mode 100644
index 0b518c6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_list_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_listdis_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_listdis_obj.gif
deleted file mode 100644
index b83825c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_listdis_obj.gif
+++ /dev/null
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
deleted file mode 100644
index d6a9afd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrict_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrictdis_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrictdis_obj.gif
deleted file mode 100644
index 2b67663..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_restrictdis_obj.gif
+++ /dev/null
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
deleted file mode 100644
index 6613149..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_union_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_uniondis_obj.gif b/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_uniondis_obj.gif
deleted file mode 100644
index 717203b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/smpl_uniondis_obj.gif
+++ /dev/null
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
deleted file mode 100644
index 3267542..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/obj16/typesheader.gif
+++ /dev/null
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
deleted file mode 100644
index 1931f92..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/attributeoverlay.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/extnsn_ovr.gif b/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/extnsn_ovr.gif
deleted file mode 100644
index f34420b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/extnsn_ovr.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/extnsndis_ovr.gif b/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/extnsndis_ovr.gif
deleted file mode 100644
index 94eb768..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/extnsndis_ovr.gif
+++ /dev/null
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
deleted file mode 100644
index d455c2b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/icons/ovr16/textoverlay.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/plugin.properties b/bundles/org.eclipse.wst.xsd.ui/plugin.properties
deleted file mode 100644
index f367680..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/plugin.properties
+++ /dev/null
@@ -1,848 +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
-###############################################################################
-! 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
-
-!
-!======================================================================================
-! 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         = Does not exist.
-_ERROR_LABEL_INVALID_PREFIX     = 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  = {0} is the current schema. A schema cannot include itself. Reset to the last valid schema.
-
-_ERROR_XSD_GENERATION                = Error generating XML schema
-_ERROR_NO_CONTAINER                  = No folder selected
-_ERROR_NO_FILE_NAME                  = No file name provided
-_ERROR_FILENAME_MUST_END_XSD         = The file name must end in .xsd
-
-
-!
-! For schema that has too many errors, an extended message. 
-!
-_ERROR_DIALOG_XML_SCHEMA_INVALID_TEXT  = 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    = 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 = Cannot open XML Schema editor
-
-_ERROR_LABEL_PREFIX_EXISTS     = Prefix already exists
-
-_ERROR_REMOVE_LOCAL_SIMPLETYPE  = Remove local simple type from extension
-
-_WARN_INVALID_TARGET_NAMESPACE = The target namespace is not well-formed
-
-_ERROR_TARGET_NAMESPACE_AND_PREFIX = 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
-command.xsd.refactor.renameTargetNamespace.name=Rename Target Namespace
-command.xsd.refactor.renameTargetNamespace.description=Changes the target namespace of the schema
-xsd.resource.rename.participant.name=Rename XSD Component
-ExtensionsSchemasDescription=This extension point is deprecated, use extensionCategories
-ExtensionCategoriesDescription=Extension point for contributing to the 'built in' categories of extension elements for XML Schema
-XSDEditorExtensionConfiguration=This extension point is deprecated, use internalEditorConfiguration
-InternalEditorConfiguration=Extension point for extending the XML Schema Editor
-
-! 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
-
-! extension points 
-ExtensionNodeCustomizationsDescription = Extension Node Customizations
-XMLSchemaEditorModes = XML Schema Editor Modes
\ 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
deleted file mode 100644
index 40fd2c4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/plugin.xml
+++ /dev/null
@@ -1,451 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-	<extension point="org.eclipse.ui.editors">
-		<editor
-			name="%_UI_EDITOR_NAME"
-			icon="icons/XSDFile.gif"
-            contributorClass="org.eclipse.wst.xsd.ui.internal.editor.XSDMultiPageEditorContributor"
-            class="org.eclipse.wst.xsd.ui.internal.editor.InternalXSDMultiPageEditor"
-            id="org.eclipse.wst.xsd.ui.internal.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.ui.internal.preferences.XSDPreferencePage"
-			id="org.eclipse.wst.xsd.ui.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.editor.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.ui.internal.editor"
-           labelProvider="org.eclipse.wst.xsd.ui.internal.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.ui.internal.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_ADVANCED"
-				category="Advanced"
-				afterTab="property.tab.general"
-				id="property.tab.advanced">
-			</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.ui.internal.editor">
-	 <propertySection tab="property.tab.general" 
-        class="org.eclipse.wst.xsd.ui.internal.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.internal.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.internal.common.properties.sections.XSDComplexTypeSection"  
-	 	id="prop.section.XSDComplexTypeSection">
-	    <input type="org.eclipse.xsd.XSDComplexTypeDefinition">
-	    </input>
-	 </propertySection>
-	 <propertySection tab="property.tab.advanced" 
-        class="org.eclipse.wst.xsd.ui.internal.common.properties.sections.XSDComplexTypeAdvancedSection"  
-	 	id="prop.section.XSDComplexTypeAdvancedSection">
-	    <input type="org.eclipse.xsd.XSDComplexTypeDefinition">
-	    </input>
-	 </propertySection>		 
-	 <propertySection tab="property.tab.general" 
-        class="org.eclipse.wst.xsd.ui.internal.common.properties.sections.XSDElementDeclarationSection"  
-	 	id="prop.section.XSDElementDeclarationSection">
-	    <input type="org.eclipse.xsd.XSDElementDeclaration">
-	    </input>
-	 </propertySection>
-	 <propertySection tab="property.tab.advanced" 
-        class="org.eclipse.wst.xsd.ui.internal.common.properties.sections.XSDElementDeclarationAdvancedSection"  
-	 	id="prop.section.XSDElementDeclarationAdvancedSection">
-	    <input type="org.eclipse.xsd.XSDElementDeclaration">
-	    </input>   
-	 </propertySection> 
-	 <propertySection tab="property.tab.general" 
-        class="org.eclipse.wst.xsd.ui.internal.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.internal.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.internal.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.internal.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.internal.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.internal.common.properties.sections.XSDFacetSection"
-        filter="org.eclipse.wst.xsd.ui.internal.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.internal.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.internal.common.properties.sections.ExtensionsSection" 
-	 	id="prop.section.ExtensionsSection">
-	    <input type="org.eclipse.xsd.XSDConcreteComponent">
-	    </input>
-	 </propertySection>
-	 <propertySection tab="property.tab.general" 
-	 	class="org.eclipse.wst.xsd.ui.internal.common.properties.sections.XSDAnyElementContentsSection" 
-	 	id="prop.section.general">
-	    <input type="org.eclipse.xsd.XSDWildcard">
-	    </input>
-	 </propertySection>
-	 <propertySection tab="property.tab.general" 
-	 	class="org.eclipse.wst.xsd.ui.internal.common.properties.sections.XSDImportSection" 
-	 	id="prop.section.general">
-	    <input type="org.eclipse.xsd.XSDImport">
-	    </input>
-	 </propertySection>
-  </propertySections>
-</extension>
-
-  <!-- this extension point is deprecated, use extensionCategories -->
-  <extension-point id="ExtensionsSchemasDescription" name="%ExtensionsSchemasDescription"/>  
-  <extension-point id="extensionCategories" name="%ExtensionCategoriesDescription"/>
-
-  <!-- this extension point is deprecated, use internalEditorConfiguration -->  
-  <extension-point id="XSDEditorExtensionConfiguration" name="%XSDEditorExtensionConfiguration"/>
-  <extension-point id="internalEditorConfiguration" name="%InternalEditorConfiguration"/>
-  
-  <extension-point id="extensibilityNodeCustomizations" name="%ExtensionNodeCustomizationsDescription"/>
-  <extension-point id="editorModes" name="%XMLSchemaEditorModes"/>
-  
-	<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>
-
-	<!-- ============================================================================== -->
-	<!-- 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.ui.internal.adapters.XSDBaseAdapter">  
-         <!-- 
-         cs : declaration search isn't fully implemented yet, removing this menu action for now
-         <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-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/TypeVizEditorMode.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/TypeVizEditorMode.java
deleted file mode 100644
index ce5b93a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/TypeVizEditorMode.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.typeviz;
-
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.EditorMode;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlineProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.TypeVizFigureFactory;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.XSDEditPartFactory;
-
-public class TypeVizEditorMode extends EditorMode
-{
-  private EditPartFactory editPartFactory;
-  public final static String ID = "org.eclipse.wst.xsd.ui.typeviz";
-  
-  public Object getAdapter(Class adapter)
-  {
-    return null;
-  }
-
-  public String getDisplayName()
-  {
-    return "Advanced";
-  }
-
-  public EditPartFactory getEditPartFactory()
-  {
-    if (editPartFactory == null)
-    {
-      editPartFactory = new XSDEditPartFactory(new TypeVizFigureFactory());
-    }  
-    return editPartFactory;
-  }
-
-  public String getId()
-  {
-    return ID;
-  }
-
-  public IContentProvider getOutlineProvider()
-  {
-    return new ADTContentOutlineProvider();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/BoxFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/BoxFigure.java
deleted file mode 100644
index c7eec1f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/BoxFigure.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.figures;
-
-import java.util.Iterator;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.layouts.ColumnData;
-
-public class BoxFigure extends Figure
-{
-  protected ColumnData columnData = new ColumnData();  
-  public HeadingFigure headingFigure;
-  Figure contentPane;
-  
-  public boolean isSelected = false;
-
-  public BoxFigure()
-  {
-    super();
-    headingFigure = new HeadingFigure();   
-    add(headingFigure);
-
-    contentPane = new Figure()
-    {
-      public void paint(Graphics graphics)
-      {
-        super.paint(graphics);
-        boolean isFirst = false;
-        for (Iterator i = getChildren().iterator(); i.hasNext();)
-        {
-          Figure figure = (Figure) i.next();
-          if (isFirst)
-          {
-            isFirst = false;
-          }
-          else
-          {
-            Rectangle r = figure.getBounds();
-            graphics.drawLine(r.x, r.y + 1, r.x + r.width, r.y + 1);
-          }
-        }
-      }
-    };
-    contentPane.setLayoutManager(new ToolbarLayout());
-    add(contentPane);
-    headingFigure.setForegroundColor(ColorConstants.black); 
-  }
-
-  public void paint(Graphics graphics)
-  {
-    super.paint(graphics);
-    /*
-    // Fill for the header section
-    //
-    Rectangle r = getBounds().getCopy();
-    graphics.setBackgroundColor(ColorConstants.darkGray);
-    Color gradient1 = ColorConstants.lightGray;
-    if (isSelected)
-    {
-      gradient1 = ColorConstants.lightBlue;
-    }
-    Color gradient2 = ColorConstants.white;
-    graphics.setForegroundColor(gradient1);
-    graphics.setBackgroundColor(gradient2);
-    graphics.fillGradient(r.x + 1, r.y + 1, r.width - 2, nodeNameLabel.getBounds().height - 1, true);
-    nodeNameLabel.paint(graphics);
-    */
-  }
-
-  public IFigure getContentPane()
-  {
-    return contentPane;
-  }
-
-  public Label getNameLabel()
-  {
-    return headingFigure.getLabel();
-  }
-  
-  public HeadingFigure getHeadingFigure()
-  {
-    return headingFigure;
-  }
-  
-  public ColumnData getColumnData()
-  {
-    return columnData;
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/CompartmentFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/CompartmentFigure.java
deleted file mode 100644
index a019ada..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/CompartmentFigure.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.figures;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewerGraphicConstants;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.StructureEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.ICompartmentFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IStructureFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.layouts.RowLayout;
-import org.eclipse.wst.xsd.ui.internal.design.figures.GenericGroupFigure;
-
-public class CompartmentFigure extends Figure implements ICompartmentFigure
-{
-  public Label nodeNameLabel;
-  protected Figure contentPane;
-  protected Figure annotationArea;
-  public Figure rowFigure;
-
-  public CompartmentFigure()
-  {
-    super();
-
-    rowFigure = new Figure();
-    add(rowFigure);
-
-    annotationArea = new Figure() {
-      
-      public void paint(Graphics graphics)
-      {
-        super.paint(graphics);
-        try
-        {
-          graphics.pushState();  
-          graphics.setForegroundColor(ColorConstants.blue);
-          graphics.setFont(DesignViewerGraphicConstants.smallFont);
-          List children = getChildren();
-          for (Iterator i = children.iterator(); i.hasNext(); )
-          {
-            Figure object = (Figure)i.next();
-            traverse(object, graphics);          
-          }
-        }
-        finally
-        {
-          graphics.popState();
-        }
-      }
-      
-      private void traverse(Figure figure, Graphics graphics)
-      {
-        List children = figure.getChildren();
-        for (Iterator i = children.iterator(); i.hasNext(); )
-        {
-          Figure object = (Figure)i.next();
-          
-          if (object instanceof GenericGroupFigure)
-          {
-            GenericGroupFigure fig = (GenericGroupFigure) object;
-            if (fig.hasText())
-              graphics.drawText(fig.getText(), fig.getTextCoordinates());
-          }
-          traverse(object, graphics);
-        }
-        
-      }
-      
-    };
-    ToolbarLayout annotationLayout = new ToolbarLayout(false);
-    annotationLayout.setStretchMinorAxis(true);
-    annotationArea.setLayoutManager(annotationLayout);
-
-    // Need this to show content model structure on the left side of the figure
-    rowFigure.add(annotationArea);
-
-    contentPane = new Figure()
-    {
-      public void paint(Graphics graphics)
-      {
-        super.paint(graphics);
-        graphics.pushState();
-        try
-        {
-          boolean isFirst = true;
-          Color oldColor = graphics.getForegroundColor();
-          graphics.setForegroundColor(ColorConstants.lightGray);
-          for (Iterator i = getChildren().iterator(); i.hasNext();)
-          {
-            Figure figure = (Figure) i.next();
-            Rectangle r = figure.getBounds();
-//            if (figure instanceof FieldFigure)
-//            {
-//               Rectangle rChild = ((FieldFigure)figure).getNameFigure().getBounds();
-//               graphics.drawLine(rChild.right(), rChild.y, rChild.right(), rChild.bottom());
-//               graphics.setForegroundColor(ColorConstants.darkGray);
-//            }
-            if (isFirst)
-            {
-              isFirst = false;
-//               graphics.drawLine(r.x, r.y, r.x, r.y + r.height);
-            }
-            else
-            {
-              graphics.setForegroundColor(ColorConstants.white);
-              graphics.setBackgroundColor(ColorConstants.lightGray);              
-              graphics.fillGradient(r.x, r.y, r.width, 1, false);    
-//              graphics.drawLine(r.x, r.y, r.x + r.width, r.y);
-//            graphics.drawLine(r.x, r.y, r.x, r.y + r.height);
-            }
-          }
-          graphics.setForegroundColor(oldColor);
-        }
-        finally
-        {
-          graphics.popState();
-        }
-      }
-    };
-    contentPane.setLayoutManager(new ToolbarLayout());
-    rowFigure.add(contentPane);
-
-    RowLayout rowLayout = new RowLayout();
-    rowFigure.setLayoutManager(rowLayout);
-    rowLayout.setConstraint(annotationArea, "annotation");
-    rowLayout.setConstraint(contentPane, "contentPane");
-  }
-
-  public IFigure getContentPane()
-  {
-    return contentPane;
-  }
-
-  public IFigure getAnnotationPane()
-  {
-    return annotationArea;
-  }
-  
-  public void editPartAttached(EditPart owner)
-  {   
-    StructureEditPart structureEditPart = null;
-    for (EditPart parent = owner.getParent(); parent != null; parent = parent.getParent())
-    {
-      if (parent instanceof StructureEditPart)
-      {
-        structureEditPart = (StructureEditPart) parent;
-        break;
-      }
-    }
-    RowLayout rowLayout = (RowLayout)rowFigure.getLayoutManager();
-    IStructureFigure typeFigure = structureEditPart.getStructureFigure();    
-    Assert.isTrue(typeFigure instanceof StructureFigure, "Expected object of type StructureFigure");    
-    rowLayout.setColumnData(((StructureFigure)typeFigure).getColumnData());            
-  }
-
-  public void addSelectionFeedback()
-  {
-  }
-
-  public void removeSelectionFeedback()
-  {
-  }   
-  
-  public void refreshVisuals(Object model)
-  {
-    // TODO Auto-generated method stub
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/FieldFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/FieldFigure.java
deleted file mode 100644
index 6141bef..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/FieldFigure.java
+++ /dev/null
@@ -1,253 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.figures;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.EditPart;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.StructureEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IFieldFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IStructureFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.layouts.RowLayout;
-
-public class FieldFigure extends Figure implements IFieldFigure
-{
-  // TODO: put this color is some common class
-  public static final Color cellColor = new Color(null, 224, 233, 246);
-  
-  // Formatting constraints
-  public static final int TOP_MARGIN = 2; // pixels
-  public static final int BOTTOM_MARGIN = TOP_MARGIN + 1; // extra pixel for the
-                                                          // footer line
-  public static final int LEFT_MARGIN = 2;
-  public static final int RIGHT_MARGIN = LEFT_MARGIN;
-  public static final int RIGHT_SIDE_PADDING = 6;
-
-  // States requiring decorators, and their icons
-  // protected static final Image errorIcon = ICON_ERROR;
-
-  // Labels which handle presentation of name and type
-  public Figure rowFigure;
-  protected Label nameLabel;
-  protected Label nameAnnotationLabel;  // for occurrence text, or error icons
-  protected Label typeLabel;
-  protected Label typeAnnotationLabel;  // for occurrence text, or error icons
-  protected Label toolTipLabel;
-
-  public FieldFigure()
-  {
-    super();
-    setLayoutManager(new ToolbarLayout());
-//    setOpaque(true);
-    rowFigure = new Figure();
-//    rowFigure.setOpaque(true);
-    RowLayout rowLayout = new RowLayout();
-    rowFigure.setLayoutManager(rowLayout);
-
-    add(rowFigure);
-
-    nameLabel = new Label();
-    nameLabel.setBorder(new MarginBorder(3, 5, 3, 5));
-    nameLabel.setLabelAlignment(PositionConstants.LEFT);
-    nameLabel.setOpaque(true);
-    rowFigure.add(nameLabel);
-    
-    nameAnnotationLabel = new Label();
-    nameAnnotationLabel.setBorder(new MarginBorder(3, 5, 3, 5));
-    nameAnnotationLabel.setLabelAlignment(PositionConstants.LEFT);
-    nameAnnotationLabel.setOpaque(true);
-    rowFigure.add(nameAnnotationLabel);
-    
-    toolTipLabel = new Label();
-//  Don't show tooltip for now.  Annoying vertical line shows up.  Safe fix.
-//    nameLabel.setToolTip(toolTipLabel);
-    typeLabel = new Label();
-    
-    // cs : we need to add some additional padding to the right
-    // so that when we edit the field there's room for the combobox's arrow
-    // and the type name won't be partially obscured
-    //
-    typeLabel.setBorder(new MarginBorder(3, 5, 3, 20));
-    typeLabel.setLabelAlignment(PositionConstants.LEFT);
-    typeLabel.setOpaque(true);
-    rowFigure.add(typeLabel);
-
-    typeAnnotationLabel = new Label() {
-      
-      public Dimension getPreferredSize(int wHint, int hHint)
-      {
-        if (getText() == null || getText().equals(""))
-        {
-          return new Dimension(0, 0);
-        }
-        return super.getPreferredSize(wHint, hHint);
-      }
-    };
-    typeAnnotationLabel.setBorder(new MarginBorder(3, 5, 3, 5));
-    typeAnnotationLabel.setLabelAlignment(PositionConstants.LEFT);
-    typeAnnotationLabel.setOpaque(true);
-    rowFigure.add(typeAnnotationLabel);
-// Don't show tooltip for now.  Annoying vertical line shows up.  Safe fix.
-//    typeAnnotationLabel.setToolTip(toolTipLabel);
-    
-    rowLayout.setConstraint(nameLabel, "name");
-    rowLayout.setConstraint(nameAnnotationLabel, "nameAnnotation");
-    rowLayout.setConstraint(typeLabel, "type");
-    rowLayout.setConstraint(typeAnnotationLabel, "typeAnnotation");
-  }
-
-  /**
-   * @return Returns the "name" string used by this figure.
-   */
-  public String getName()
-  {
-    return nameLabel.getText();
-  }
-
-  /**
-   * @return Returns the figure representing the attribute name
-   */
-  public Label getNameLabel()
-  {
-    return nameLabel;
-  }
-
-  /**
-   * @return Returns the "type" string used by this figure.
-   */
-  public String getType()
-  {
-    return typeLabel.getText();
-  }
-
-  /**
-   * @return Returns the figure representing the attribute's type
-   */
-  public Label getTypeLabel()
-  {
-    return typeLabel;
-  }
-
-  /**
-   * @param name
-   *          Set the "name" string used by this figure.
-   */
-  public void setName(String name)
-  {
-    nameLabel.setText(name);
-  }
-
-  /**
-   * @param type
-   *          Set the "type" string used by this figure.
-   */
-  public void setType(String type)
-  {
-    typeLabel.setText(type);
-  }
-  
-  public void setTypeToolTipText(String toolTip)
-  {
-    setNameToolTipText(toolTip);
-  }
-
-  public void setNameToolTipText(String toolTip)
-  {
-    if (toolTip.length() > 0)
-    {
-      nameLabel.setToolTip(toolTipLabel);
-      toolTipLabel.setText(toolTip);
-    }
-    else
-    {
-      nameLabel.setToolTip(null);
-    }
-  }
-  
-  public void setNameAnnotationLabel(String text)
-  {
-    nameAnnotationLabel.setText(text);
-  }
-
-  public void setNameAnnotationLabelIcon(Image icon)
-  {
-    nameAnnotationLabel.setIcon(icon);
-  }
-  
-  public Label getNameAnnotationLabel()
-  {
-    return nameAnnotationLabel;
-  }
-  
-  public void setTypeAnnotationLabel(String text)
-  {
-    typeAnnotationLabel.setText(text);
-  }
-
-  public void setTypeAnnotationLabelIcon(Image icon)
-  {
-    typeAnnotationLabel.setIcon(icon);
-  }
-
-  public Label getTypeAnnotationLabel()
-  {
-    return typeAnnotationLabel;
-  }
-  
-  public void recomputeLayout()
-  {
-    RowLayout layout = (RowLayout)rowFigure.getLayoutManager();
-    if (layout != null && layout.getColumnData() != null)
-    {
-      layout.getColumnData().clearColumnWidths();
-    }    
-  }
-  
-  public void editPartAttached(EditPart owner)
-  {
-    StructureEditPart structureEditPart = null;
-    for (EditPart parent = owner.getParent(); parent != null; parent = parent.getParent())
-    {
-      if (parent instanceof StructureEditPart)
-      {
-        structureEditPart = (StructureEditPart) parent;
-        break;
-      }
-    }
-    RowLayout rowLayout = (RowLayout)rowFigure.getLayoutManager();
-    IStructureFigure typeFigure = structureEditPart.getStructureFigure();    
-    Assert.isTrue(typeFigure instanceof StructureFigure, "Expected object of type StructureFigure");    
-    rowLayout.setColumnData(((StructureFigure)typeFigure).getColumnData());   
-  }
-  
-  public void addSelectionFeedback()
-  {
-    rowFigure.setBackgroundColor(cellColor); 
-  }
-  
-  public void removeSelectionFeedback()
-  {
-    rowFigure.setBackgroundColor(getBackgroundColor());   
-  }
-  
-  public void refreshVisuals(Object model)
-  {
-    // TODO Auto-generated method stub
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/HeadingFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/HeadingFigure.java
deleted file mode 100644
index 6c275d6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/HeadingFigure.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.figures;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.graphics.Color;
-
-public class HeadingFigure extends Figure
-{
-  public static final Color headerColor = new Color(null, 224, 233, 246);
-  Label label;
-  Color[] gradientColor = {ColorConstants.white,  
-                           ColorConstants.lightGray,
-                           ColorConstants.lightBlue,
-                           ColorConstants.gray};
-  boolean isSelected = false;
-  boolean isReadOnly = false;
-  
-  public HeadingFigure()
-  {
-    label = new Label();
-    label.setBorder(new MarginBorder(2));
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false);
-    toolbarLayout.setMinorAlignment(ToolbarLayout.ALIGN_CENTER);
-    setLayoutManager(toolbarLayout);
-    add(label);
-  }
-  
-  public void setGradientColors(Color[] colors)
-  {
-    this.gradientColor = colors;
-  }
-  
-  public void setSelected(boolean isSelected)
-  {
-    this.isSelected = isSelected;
-  }
-
-  public void setIsReadOnly(boolean isReadOnly)
-  {
-    this.isReadOnly = isReadOnly;
-  }
-  
-  public void paint(Graphics graphics)
-  {
-    super.paint(graphics);
-    
-    graphics.pushState();
-    try
-    {
-      // Fill for the header section
-      //
-      Rectangle r = getBounds().getCopy();
-      graphics.setBackgroundColor(ColorConstants.lightGray);
-  
-      Color gradient1 = isReadOnly ? gradientColor[1] : headerColor;
-      if (isSelected && isReadOnly) gradient1 = gradientColor[3];
-      else if (isSelected && !isReadOnly) gradient1 = gradientColor[2];
-      Color gradient2 = gradientColor[0];
-      graphics.setForegroundColor(gradient1);
-      graphics.setBackgroundColor(gradient2);
-      Rectangle labelBounds = label.getBounds();
-      graphics.fillGradient(r.x+1, r.y+1, r.width-2, labelBounds.height - 2, true);    
-      graphics.setForegroundColor(ColorConstants.darkGray);
-      label.paint(graphics);    
-    }
-    finally
-    {
-      graphics.popState();
-    }
-  }
-
-  public Label getLabel()
-  {
-    return label;
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/RoundedLineBorder.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/RoundedLineBorder.java
deleted file mode 100644
index 93e80f1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/RoundedLineBorder.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.figures;
-
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.geometry.Insets;
-import org.eclipse.swt.graphics.Color;
-
-public class RoundedLineBorder extends LineBorder
-{
-  protected int arcLength;   
-  protected int lineStyle = Graphics.LINE_SOLID;
-
-  public RoundedLineBorder(Color c, int width, int arcLength)
-  {
-    super(c, width);     
-    this.arcLength = arcLength;
-  }
-
-  public RoundedLineBorder(int width, int arcLength)
-  {
-    super(width);     
-    this.arcLength = arcLength;
-  }
-  
-  public RoundedLineBorder(Color c, int width, int arcLength, int lineStyle)
-  {
-    super(c, width);
-    this.arcLength = arcLength;
-    this.lineStyle = lineStyle;
-  }
-
-  public RoundedLineBorder(int width, int arcLength, int lineStyle)
-  {
-    super(width);
-    this.arcLength = arcLength;
-    this.lineStyle = lineStyle;
-  }
-
-  public void paint(IFigure figure, Graphics graphics, Insets insets)
-  {
-    int rlbWidth = getWidth();
-    tempRect.setBounds(getPaintRectangle(figure, insets));
-    if (rlbWidth%2 == 1)
-    {
-      tempRect.width--;
-      tempRect.height--;
-    }
-    tempRect.shrink(rlbWidth/2,rlbWidth/2);
-    graphics.setLineWidth(rlbWidth);
-    graphics.setLineStyle(lineStyle);
-    if (getColor() != null)
-      graphics.setForegroundColor(getColor());
-    graphics.drawRoundRectangle(tempRect, arcLength, arcLength);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/StructureFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/StructureFigure.java
deleted file mode 100644
index 990f64b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/StructureFigure.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.figures;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IStructureFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-
-
-public class StructureFigure extends BoxFigure implements IStructureFigure
-{
-  public void editPartAttached(EditPart owner)
-  {
-    // nothing to do here :-)
-  }
-
-  public void addSelectionFeedback()
-  {
-    LineBorder boxFigureLineBorder = (LineBorder)getBorder();
-    boxFigureLineBorder.setWidth(2);
-    // TODO (cs) need to fix this
-    //boxFigureLineBorder.setColor(getComplexType().isReadOnly() ? ColorConstants.darkGray : ColorConstants.darkBlue);  
-    getHeadingFigure().setSelected(true);
-    repaint();
-  }
-
-  public void removeSelectionFeedback()
-  {
-    LineBorder boxFigureLineBorder = (LineBorder)getBorder();
-    boxFigureLineBorder.setWidth(1);
-    getHeadingFigure().setSelected(false);
-    repaint();
-  }  
-  
-  public boolean hitTestHeader(Point location)
-  {
-    IFigure target = getHeadingFigure();
-    Rectangle b = target.getBounds().getCopy();
-    target.translateToAbsolute(b);  
-    return b.contains(location);
-  }
-  
-  public void refreshVisuals(Object model)
-  {
-    IStructure structure = (IStructure)model;
-    getNameLabel().setText(structure.getName());
-    getHeadingFigure().setIsReadOnly(structure.isReadOnly());
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/TypeVizFigureFactory.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/TypeVizFigureFactory.java
deleted file mode 100644
index 08260fb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/figures/TypeVizFigureFactory.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.figures;
-
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.ICompartmentFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IFieldFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IStructureFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.design.figures.IExtendedFigureFactory;
-import org.eclipse.wst.xsd.ui.internal.design.figures.IModelGroupFigure;
-import org.eclipse.wst.xsd.ui.internal.design.figures.ModelGroupFigure;
-
-public class TypeVizFigureFactory implements IExtendedFigureFactory
-{  
-  public IStructureFigure createStructureFigure(Object model)
-  {
-    StructureFigure figure = new StructureFigure();
-    figure.setBorder(new LineBorder(1));    
-    ToolbarLayout toolbarLayout = new ToolbarLayout();
-    toolbarLayout.setStretchMinorAxis(true);
-    figure.setLayoutManager(toolbarLayout);
-
-    if (model instanceof ITreeElement)
-    {
-      figure.getNameLabel().setIcon(((ITreeElement)model).getImage());
-    }    
-    //figure.getHeadingFigure().setIsReadOnly(getComplexType().isReadOnly());
-    // we should organize ITreeElement and integrate it with the facade    
-    return figure;
-  }
-
-  public IFieldFigure createFieldFigure(Object model)
-  {
-    // TODO Auto-generated method stub
-    return new FieldFigure();
-  }
-  
-  public ICompartmentFigure createCompartmentFigure(Object model)
-  {
-    CompartmentFigure figure = new CompartmentFigure();
-    figure.setBorder(new MarginBorder(1));
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false);
-    toolbarLayout.setStretchMinorAxis(true);
-    figure.setLayoutManager(toolbarLayout);
-    return figure;
-  }  
-  
-  public IModelGroupFigure createModelGroupFigure(Object model)
-  {
-    // TODO Auto-generated method stub
-    return new ModelGroupFigure();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/layouts/ColumnData.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/layouts/ColumnData.java
deleted file mode 100644
index 58e9dab..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/layouts/ColumnData.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.layouts;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-public class ColumnData
-{
-  HashMap map = new HashMap();
-  
-  class Entry
-  {
-    int width = 0;
-    int weight = 1;
-  }
-  
-  public void clearColumnWidths()
-  {
-    for (Iterator i = map.values().iterator(); i.hasNext();)
-    {
-      Entry entry = (Entry)i.next();
-      entry.width = 0;
-    }  
-  }  
-  
-  private Entry lookupOrCreateColumnEntry(String identifier)
-  {
-    Entry entry = (Entry)map.get(identifier);
-    if (entry == null)
-    {
-      entry = new Entry();
-      map.put(identifier, entry);
-    }  
-   return entry; 
-  }  
-  
-  void stretchColumnWidthIfNeeded(String identifier, int width)
-  {
-    Entry entry = lookupOrCreateColumnEntry(identifier);
-    entry.width = Math.max(entry.width, width);
-  }
-  
-  int getColumnWidth(String identifier)
-  {
-    Entry entry = (Entry)map.get(identifier);
-    if (entry != null)
-    {
-      return entry.width;
-    }  
-    else
-    {
-      return 0;//hmm should we return -1 ?
-    }  
-  }
-  
-  int getColumnWeight(String identifier)
-  {
-    Entry entry = (Entry)map.get(identifier);
-    if (entry != null)
-    {
-      return entry.weight;
-    }  
-    else
-    {
-      return 0;
-    }  
-  }
-  
-  public void setColumnWeight(String identifier, int weight)
-  {
-    Entry entry = lookupOrCreateColumnEntry(identifier);
-    entry.weight = weight;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/layouts/RowLayout.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/layouts/RowLayout.java
deleted file mode 100644
index fc90677..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd-typeviz/org/eclipse/wst/xsd/ui/internal/adt/typeviz/design/layouts/RowLayout.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.typeviz.design.layouts;
-
-import java.util.HashMap;
-import java.util.List;
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-public class RowLayout extends AbstractLayout
-{
-  // layout is associated with a parent context
-  // any layout manager under the parent context is connected
-  // column rows are maintained accross container boundaries  
-  protected ColumnData columnData;
-  protected HashMap figureToContstraintMap = new HashMap();
-  
-  public RowLayout()
-  {
-    super();
-  }
-  
-
-  // this method computes the minimum size required to display the figures
-  //
-  private Dimension calculateChildrenSize(IFigure container, List children, int wHint, int hHint, boolean preferred)
-  {
-    Dimension childSize;
-    IFigure child;
-    int height = 0;
-    int width = 0;
-    
-    //IRowFigure figure = (IRowFigure)container;
-    
-    // for each cell in the row
-    //
-    for (int i = 0; i < children.size(); i++)
-    {
-      child = (IFigure) children.get(i);
-      String columnIdenifier = (String)getConstraint(child);
-             
-      // first we compute the child size without regard for columnData
-      //
-      childSize = child.getPreferredSize(wHint, hHint);// : child.getMinimumSize(wHint, hHint);
-        
-      // now that the columnData has been populated we can consider if the row needs to be larger
-      //
-      int effectiveWidth = childSize.width;
-      if (columnIdenifier != null)
-      {  
-        columnData.stretchColumnWidthIfNeeded(columnIdenifier, childSize.width);
-        effectiveWidth = columnData.getColumnWidth(columnIdenifier);
-      }                       
-      height = Math.max(childSize.height, height);
-      width += effectiveWidth;
-    }  
-    return new Dimension(width, height);
-  }
-  
-  
-  
-  protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
-  {    
-    List children = container.getChildren();
-    Dimension prefSize = calculateChildrenSize(container, children, wHint, hHint, true);
-    return prefSize;
-  }
-
-  public void layout(IFigure parent)
-  {
-    // layout a table with the columns aligned      
-    //IRowFigure rowFigure = (IRowFigure)parent;    
-    Rectangle clientArea = parent.getClientArea();   
-    List children = parent.getChildren();
-    Rectangle r = new Rectangle();
-    r.x = clientArea.x;
-    r.y = clientArea.y;
-    r.height = clientArea.height;
-    
-    int childrenSize = children.size();
-    Rectangle[] bounds = new Rectangle[childrenSize];
-    
-    // for each cell in the row
-    //
-    int requiredWidth = 0;
-    int totalColumnWeight = 0;
-    for (int i = 0; i < childrenSize; i++)
-    {
-      IFigure child = (IFigure) children.get(i);
-      //String columnIdenifier = figure.getColumnIdentifier(child);             
-      // first we compute the child size without regard for columnData
-      //
-      Dimension childSize = child.getPreferredSize(-1, -1);
-      
-      int columnWidth = -1;
-      //String columnIdentifier = rowFigure.getColumnIdentifier(child);
-      String columnIdentifier = (String)getConstraint(child);
-      if (columnIdentifier != null)
-      {
-        //columnData.stretchColumnWidthIfNeeded(columnIdentifier, childSize.width);        
-        columnWidth = columnData.getColumnWidth(columnIdentifier);
-        totalColumnWeight += columnData.getColumnWeight(columnIdentifier);
-      }  
-      r.width = Math.max(childSize.width, columnWidth);
-      requiredWidth += r.width;
-      bounds[i] = new Rectangle(r);      
-      r.x += r.width;
-    }          
-    if (totalColumnWeight < 1)
-    {
-      totalColumnWeight = 1;
-    }
-    int extraWidth = Math.max(clientArea.width - requiredWidth, 0);    
-    int extraWidthAllocated = 0;
-    for (int i = 0; i < childrenSize; i++)
-    {
-      IFigure child = (IFigure) children.get(i);      
-      Rectangle b = bounds[i];    
-      if (extraWidth > 0)
-      {  
-        String columnIdentifier = (String)getConstraint(child);
-        if (columnIdentifier != null)
-        {        
-          int weight = columnData.getColumnWeight(columnIdentifier);
-          float fraction = (float)weight / (float)totalColumnWeight;
-          int extraWidthForChild = (int)(extraWidth * fraction);
-       
-          b.width += extraWidthForChild;        
-          b.x += extraWidthAllocated;
-          extraWidthAllocated += extraWidthForChild;
-        }  
-        else
-        {
-          b.x += extraWidthAllocated;
-        }
-      }
-      child.setBounds(new Rectangle(b));  
-    }  
-  }
-
-  public ColumnData getColumnData()
-  {
-    return columnData;
-  }
-
-  public void setColumnData(ColumnData columnData)
-  {
-    this.columnData = columnData;
-  }    
-  
-  public Object getConstraint(IFigure child)
-  {
-    return figureToContstraintMap.get(child);
-  }
-  
-  public void setConstraint(IFigure child, Object constraint)
-  {
-    figureToContstraintMap.put(child, constraint);
-  }
-  
-  public void invalidate()
-  {
-    //figureToContstraintMap.clear();
-    //this.columnData.clearColumnWidths();
-    super.invalidate();
-   
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/CreateElementAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/CreateElementAction.java
deleted file mode 100644
index b54c609..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/CreateElementAction.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-import java.util.List;
-
-import org.eclipse.gef.ui.parts.AbstractEditPartViewer;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-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.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-// issue (cs) can we remove this?
-//
-public class CreateElementAction extends Action
-{
-  protected String description;
-  protected Element parentNode;
-
-  protected ISelectionProvider selectionProvider;
-  protected XSDSchema xsdSchema;
-
-  protected Object sourceContext;
-
-  /**
-   * Constructor for CreateElementAction.
-   */
-  public CreateElementAction()
-  {
-    super();
-  }
-  /**
-   * Constructor for CreateElementAction.
-   * @param text
-   */
-  public CreateElementAction(String text)
-  {
-    super(text);
-  }
-  /**
-   * Constructor for CreateElementAction.
-   * @param text
-   * @param image
-   */
-  public CreateElementAction(String text, ImageDescriptor image)
-  {
-    super(text, image);
-  }
-
-  public void setXSDSchema(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-  
-  public void setSelectionProvider(ISelectionProvider selectionProvider)
-  {
-    this.selectionProvider = selectionProvider;
-  }
-
-  public void setSourceContext(Object sourceContext)
-  {
-    this.sourceContext = sourceContext;
-  }
-  
-  /**
-   * Gets the parentNode.
-   * @return Returns a Element
-   */
-  public Element getParentNode()
-  {
-    return parentNode;
-  }
-
-  /**
-   * Sets the parentNode.
-   * @param parentNode The parentNode to set
-   */
-  public void setParentNode(Element parentNode)
-  {
-    this.parentNode = parentNode;
-  }
-
-  boolean isGlobal = false;
-  
-  public void setIsGlobal(boolean isGlobal)
-  {
-    this.isGlobal = isGlobal;
-  }
-  
-  public boolean getIsGlobal()
-  {
-    return isGlobal;
-  }
-
-  protected Node relativeNode;
-  protected String elementTag;
-  public void setElementTag(String elementTag)
-  {
-    this.elementTag = elementTag;
-  }
-  
-  public DocumentImpl getDocument()
-  {
-    return (DocumentImpl) getParentNode().getOwnerDocument();
-  }
-    
-  public void beginRecording(String description)
-  {
-    getDocument().getModel().beginRecording(this, description);
-  }
-  
-  public void endRecording()
-  {
-    DocumentImpl doc = getDocument();
-    
-    doc.getModel().endRecording(this);    
-  }
-  
-  public Element createAndAddNewChildElement()
-  {
-    String prefix = parentNode.getPrefix();
-    prefix = (prefix == null) ? "" : (prefix + ":"); //$NON-NLS-1$ //$NON-NLS-2$
-    Element childNode = getDocument().createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + elementTag);
-    if (getAttributes() != null)
-    {
-      List attributes = getAttributes();
-      for (int i = 0; i < attributes.size(); i++)
-      {
-        DOMAttribute attr = (DOMAttribute) attributes.get(i);
-        childNode.setAttribute(attr.getName(), attr.getValue());
-      }
-    }
-    if (getRelativeNode() == null)
-    {
-      parentNode.appendChild(childNode);
-    }
-    else
-    {
-      parentNode.insertBefore(childNode,getRelativeNode());
-    }
-    
-    if (isGlobal && getRelativeNode() == null)
-    {
-      Text textNode = getDocument().createTextNode("\n\n"); //$NON-NLS-1$
-      parentNode.appendChild(textNode);
-    }
-    else if (isGlobal && getRelativeNode() != null)
-    {
-      Text textNode = getDocument().createTextNode("\n\n"); //$NON-NLS-1$
-      parentNode.insertBefore(textNode, getRelativeNode());
-    }
-
-    formatChild(childNode);
-    
-    return childNode;
-  }    
-    
-  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(); 
-      }
-    }
-  }
-  /*
-   * @see IAction#run()
-   */
-  public void run()
-  {
-    beginRecording(getDescription());
-    final Element child = createAndAddNewChildElement();
-    endRecording();
-
-    if (selectionProvider != null)
-    {
-      final XSDConcreteComponent comp = xsdSchema.getCorrespondingComponent(child);
-//      selectionProvider.setSelection(new StructuredSelection(comp));
-      
-    Runnable runnable = new Runnable()
-    {
-      public void run()
-      {
-        if (comp instanceof XSDAttributeDeclaration)
-        {
-          if (((XSDAttributeDeclaration)comp).getContainer() instanceof XSDAttributeUse)
-          {
-            if (comp.getContainer().getContainer() instanceof XSDAttributeGroupDefinition)
-            {
-              selectionProvider.setSelection(new StructuredSelection(comp.getContainer()));
-            }
-            else if (comp.getContainer().getContainer() instanceof XSDComplexTypeDefinition)
-            {
-              if (XSDDOMHelper.inputEquals(child, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true))
-              {
-                selectionProvider.setSelection(new StructuredSelection(comp.getContainer()));
-              }
-              else
-              {
-                selectionProvider.setSelection(new StructuredSelection(comp));
-              }
-            }
-            else
-            {
-              selectionProvider.setSelection(new StructuredSelection(comp));
-            }
-          }
-          else
-          {
-            selectionProvider.setSelection(new StructuredSelection(comp));
-          }
-        }
-        else
-        {
-          selectionProvider.setSelection(new StructuredSelection(comp));
-        }
-        if (comp instanceof XSDNamedComponent)
-        {
-          if (sourceContext instanceof AbstractEditPartViewer)
-          {
-//            AbstractEditPartViewer viewer = (AbstractEditPartViewer)sourceContext;
-          
-//            Object obj = viewer.getSelectedEditParts().get(0);
-            
-//            if (obj instanceof GraphicalEditPart)
-//            {
-//              if (obj instanceof ElementDeclarationEditPart)
-//              {
-//                XSDElementDeclaration elem = ((ElementDeclarationEditPart)obj).getXSDElementDeclaration();
-//                if (!elem.isElementDeclarationReference())
-//                {
-//                  ((ElementDeclarationEditPart)obj).doEditName();
-//                }
-//              }
-//              else if (obj instanceof ModelGroupDefinitionEditPart)
-//              {
-//                XSDModelGroupDefinition group = ((ModelGroupDefinitionEditPart)obj).getXSDModelGroupDefinition();
-//                if (!group.isModelGroupDefinitionReference())
-//                {
-//                  ((ModelGroupDefinitionEditPart)obj).doEditName();
-//                }
-//              }
-//              else if (obj instanceof ComplexTypeDefinitionEditPart)
-//              {
-//                XSDComplexTypeDefinition ct = ((ComplexTypeDefinitionEditPart)obj).getXSDComplexTypeDefinition();
-//                if (ct.getName() != null)
-//                {
-//                  ((ComplexTypeDefinitionEditPart)obj).doEditName();
-//                }
-//              }
-//              else if (obj instanceof TopLevelComponentEditPart)
-//              {
-//                ((TopLevelComponentEditPart)obj).doEditName();
-//              }
-//            }
-
-          }
-        }
-      }
-    };
-    Display.getDefault().timerExec(50,runnable);
-    }
-  }
-
-  /**
-   * Gets the relativeNode.
-   * @return Returns a Element
-   */
-  public Node getRelativeNode()
-  {
-    return relativeNode;
-  }
-
-  /**
-   * Sets the relativeNode.
-   * @param relativeNode The relativeNode to set
-   */
-  public void setRelativeNode(Node relativeNode)
-  {
-    this.relativeNode = relativeNode;
-  }
-
-  /**
-   * Gets the description.
-   * @return Returns a String
-   */
-  public String getDescription()
-  {
-    if (description == null)
-    {
-      return getText();
-    }
-    return description;
-  }
-
-  /**
-   * Sets the description.
-   * @param description The description to set
-   */
-  public void setDescription(String description)
-  {
-    this.description = description;
-  }
-
-  protected List attributes;
-  /**
-   * Gets the nameAttribute.
-   * @return Returns a String
-   */
-  public List getAttributes()
-  {
-    return attributes;
-  }
-
-  /**
-   * Sets the attributes.
-   * @param attributes The attributes to set
-   */
-  public void setAttributes(List attributes)
-  {
-    this.attributes = attributes;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/DOMAttribute.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/DOMAttribute.java
deleted file mode 100644
index 6e6c7e5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/DOMAttribute.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-// issue (cs) remove this
-/**
- * @version 	1.0
- * @author
- */
-public class DOMAttribute
-{
-  /**
-   * Constructor for DOMAttribute.
-   */
-  public DOMAttribute()
-  {
-    super();
-  }
-  
-  /**
-   * Constructor for DOMAttribute.
-   */
-  public DOMAttribute(String name, String value)
-  {
-    super();
-    this.name = name;
-    this.value = value;
-  }
-  
-  protected String name, value;
-  /**
-   * Gets the value.
-   * @return Returns a String
-   */
-  public String getValue()
-  {
-    return value;
-  }
-
-  /**
-   * Sets the value.
-   * @param value The value to set
-   */
-  public void setValue(String value)
-  {
-    this.value = value;
-  }
-
-  /**
-   * Gets the name.
-   * @return Returns a String
-   */
-  public String getName()
-  {
-    return name;
-  }
-
-  /**
-   * Sets the name.
-   * @param name The name to set
-   */
-  public void setName(String name)
-  {
-    this.name = name;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/IXSDToolbarAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/IXSDToolbarAction.java
deleted file mode 100644
index 52199f6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/IXSDToolbarAction.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IEditorPart;
-
-public interface IXSDToolbarAction extends IAction
-{
-  public void setEditorPart(IEditorPart editorPart);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/MoveAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/MoveAction.java
deleted file mode 100644
index be4764a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/MoveAction.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.w3c.dom.Node;
-
-public class MoveAction extends Action
-{
-  protected List selectedNodes;
-  protected Node parentNode;
-  protected Node previousRefChild, nextRefChild;
-  boolean doInsertBefore;
-
-  List selectedComponentsList;
-  XSDModelGroup parentModelGroup;
-  XSDConcreteComponent previousRefComponent, nextRefComponent;
-
-  public MoveAction(XSDModelGroup parentComponent, List selectedComponents, XSDConcreteComponent previousRefChildComponent, XSDConcreteComponent nextRefChildComponent)
-  {
-    this.parentModelGroup = parentComponent;
-    this.selectedComponentsList = selectedComponents;
-    this.previousRefComponent = previousRefChildComponent;
-    this.nextRefComponent = nextRefChildComponent;
-
-    selectedNodes = new ArrayList(selectedComponents.size());
-    for (Iterator i = selectedComponents.iterator(); i.hasNext();)
-    {
-      XSDConcreteComponent concreteComponent = (XSDConcreteComponent) i.next();
-      selectedNodes.add(concreteComponent.getElement());
-    }
-    if (parentComponent == null) return;
-    parentNode = parentComponent.getElement();
-    nextRefChild = nextRefChildComponent != null ? nextRefChildComponent.getElement() : null;
-    previousRefChild = previousRefChildComponent != null ? previousRefChildComponent.getElement() : null;
-
-    doInsertBefore = (nextRefChild != null);
-    if (nextRefComponent != null)
-    {
-      if (nextRefComponent.getContainer().getContainer() == parentModelGroup)
-      {
-        doInsertBefore = true;
-      }
-    }
-    if (previousRefComponent != null)
-    {
-      if (previousRefComponent.getContainer().getContainer() == parentModelGroup)
-      {
-        doInsertBefore = false;
-      }
-    }
-  }
-
-  public boolean canMove()
-  {
-    boolean result = true;
-
-    if (nextRefComponent instanceof XSDAttributeDeclaration || previousRefComponent instanceof XSDAttributeDeclaration || parentModelGroup == null)
-      return false;
-
-    return result;
-  }
-
-  /*
-   * @see IAction#run()
-   */
-  public void run()
-  {
-    try
-    {
-      for (Iterator i = selectedComponentsList.iterator(); i.hasNext();)
-      {
-        XSDConcreteComponent concreteComponent = (XSDConcreteComponent) i.next();
-
-        if (doInsertBefore)
-        {
-          if (concreteComponent == nextRefComponent)
-            continue;
-        }
-        else
-        {
-          if (concreteComponent == previousRefComponent)
-            continue;
-        }
-
-        for (Iterator particles = parentModelGroup.getContents().iterator(); particles.hasNext();)
-        {
-          XSDParticle particle = (XSDParticle) particles.next();
-          XSDParticleContent particleContent = particle.getContent();
-          if (particleContent == concreteComponent)
-          {
-            parentModelGroup.getContents().remove(particle);
-            break;
-          }
-        }
-        int index = 0;
-        List particles = parentModelGroup.getContents();
-        for (Iterator iterator = particles.iterator(); iterator.hasNext();)
-        {
-          XSDParticle particle = (XSDParticle) iterator.next();
-          XSDParticleContent particleContent = particle.getContent();
-          if (doInsertBefore)
-          {
-            if (particleContent == nextRefComponent)
-            {
-              parentModelGroup.getContents().add(index, concreteComponent.getContainer());
-              break;
-            }
-          }
-          else
-          {
-            if (particleContent == previousRefComponent)
-            {
-              parentModelGroup.getContents().add(index + 1, concreteComponent.getContainer());
-              break;
-            }
-          }
-          index++;
-        }
-        if (particles.size() == 0)
-        {
-          parentModelGroup.getContents().add(concreteComponent.getContainer());
-        }
-
-      }
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/MoveAttributeAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/MoveAttributeAction.java
deleted file mode 100644
index 896b84d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/MoveAttributeAction.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.w3c.dom.Node;
-
-// TODO COMMON AND CLEAN UP THIS CODE
-public class MoveAttributeAction extends Action
-{
-
-  protected List selectedNodes;
-  protected Node parentNode;
-  protected Node previousRefChild, nextRefChild;
-  boolean doInsertBefore;
-
-  List selectedComponentsList;
-  XSDConcreteComponent parentComponent;
-  XSDConcreteComponent previousRefComponent, nextRefComponent;
-
-  public MoveAttributeAction(XSDConcreteComponent parentComponent, List selectedComponents, XSDConcreteComponent previousRefChildComponent, XSDConcreteComponent nextRefChildComponent)
-  {
-    this.parentComponent = parentComponent;
-    this.selectedComponentsList = selectedComponents;
-    this.previousRefComponent = previousRefChildComponent;
-    this.nextRefComponent = nextRefChildComponent;
-
-    selectedNodes = new ArrayList(selectedComponents.size());
-    for (Iterator i = selectedComponents.iterator(); i.hasNext();)
-    {
-      XSDConcreteComponent concreteComponent = (XSDConcreteComponent) i.next();
-      selectedNodes.add(concreteComponent.getElement());
-    }
-    parentNode = parentComponent.getElement();
-    nextRefChild = nextRefChildComponent != null ? nextRefChildComponent.getElement() : null;
-    previousRefChild = previousRefChildComponent != null ? previousRefChildComponent.getElement() : null;
-
-    doInsertBefore = (nextRefChild != null);
-
-    if (nextRefComponent != null)
-    {
-      if (nextRefComponent.getContainer().getContainer() == parentComponent)
-      {
-        doInsertBefore = true;
-      }
-    }
-    if (previousRefComponent != null)
-    {
-      if (previousRefComponent.getContainer().getContainer() == parentComponent)
-      {
-        doInsertBefore = false;
-      }
-    }
-
-  }
-
-  public boolean canMove()
-  {
-    boolean result = true;
-
-    if (nextRefComponent instanceof XSDElementDeclaration || previousRefComponent instanceof XSDElementDeclaration)
-      return false;
-
-    return result;
-  }
-
-  /*
-   * @see IAction#run()
-   */
-  public void run()
-  {
-    if (parentComponent instanceof XSDAttributeGroupDefinition)
-    {
-      moveUnderXSDAttributeGroupDefinition((XSDAttributeGroupDefinition) parentComponent);
-    }
-    else if (parentComponent instanceof XSDComplexTypeDefinition)
-    {
-      moveUnderXSDComplexTypeDefinition((XSDComplexTypeDefinition) parentComponent);
-    }
-  }
-
-  protected void moveUnderXSDAttributeGroupDefinition(XSDAttributeGroupDefinition parentModelGroup)
-  {
-    try
-    {
-      for (Iterator i = selectedComponentsList.iterator(); i.hasNext();)
-      {
-        XSDConcreteComponent concreteComponent = (XSDConcreteComponent) i.next();
-
-        if (doInsertBefore)
-        {
-          if (concreteComponent == nextRefComponent)
-            continue;
-        }
-        else
-        {
-          if (concreteComponent == previousRefComponent)
-            continue;
-        }
-
-        for (Iterator iterator = parentModelGroup.getContents().iterator(); iterator.hasNext();)
-        {
-          XSDAttributeGroupContent attributeGroupContent = (XSDAttributeGroupContent) iterator.next();
-          if (attributeGroupContent instanceof XSDAttributeUse)
-          {
-            XSDAttributeDeclaration attribute = ((XSDAttributeUse) attributeGroupContent).getContent();
-            if (attribute == concreteComponent)
-            {
-              parentModelGroup.getContents().remove(attribute.getContainer());
-              break;
-            }
-          }
-        }
-        int index = 0;
-        List attributeGroupContents = parentModelGroup.getContents();
-        for (Iterator iterator = attributeGroupContents.iterator(); iterator.hasNext();)
-        {
-          XSDAttributeGroupContent attributeGroupContent = (XSDAttributeGroupContent) iterator.next();
-          if (attributeGroupContent instanceof XSDAttributeUse)
-          {
-            XSDAttributeDeclaration attribute = ((XSDAttributeUse) attributeGroupContent).getContent();
-            if (doInsertBefore)
-            {
-              if (attribute == nextRefComponent)
-              {
-                parentModelGroup.getContents().add(index, concreteComponent.getContainer());
-                break;
-              }
-            }
-            else
-            {
-              if (attribute == previousRefComponent)
-              {
-                parentModelGroup.getContents().add(index + 1, concreteComponent.getContainer());
-                break;
-              }
-            }
-          }
-          index++;
-        }
-        if (attributeGroupContents.size() == 0)
-        {
-          parentModelGroup.getContents().add(concreteComponent.getContainer());
-        }
-
-      }
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    }
-  }
-
-  protected void moveUnderXSDComplexTypeDefinition(XSDComplexTypeDefinition complexType)
-  {
-    try
-    {
-      for (Iterator i = selectedComponentsList.iterator(); i.hasNext();)
-      {
-        XSDConcreteComponent concreteComponent = (XSDConcreteComponent) i.next();
-
-        if (doInsertBefore)
-        {
-          if (concreteComponent == nextRefComponent)
-            continue;
-        }
-        else
-        {
-          if (concreteComponent == previousRefComponent)
-            continue;
-        }
-
-        for (Iterator iterator = complexType.getAttributeContents().iterator(); iterator.hasNext();)
-        {
-          XSDAttributeGroupContent attributeGroupContent = (XSDAttributeGroupContent) iterator.next();
-          if (attributeGroupContent instanceof XSDAttributeUse)
-          {
-            XSDAttributeDeclaration attribute = ((XSDAttributeUse) attributeGroupContent).getContent();
-            if (attribute == concreteComponent)
-            {
-              complexType.getAttributeContents().remove(attribute.getContainer());
-              break;
-            }
-          }
-        }
-        int index = 0;
-        List attributeGroupContents = complexType.getAttributeContents();
-        for (Iterator iterator = attributeGroupContents.iterator(); iterator.hasNext();)
-        {
-          XSDAttributeGroupContent attributeGroupContent = (XSDAttributeGroupContent) iterator.next();
-          if (attributeGroupContent instanceof XSDAttributeUse)
-          {
-            XSDAttributeDeclaration attribute = ((XSDAttributeUse) attributeGroupContent).getContent();
-            if (doInsertBefore)
-            {
-              if (attribute == nextRefComponent)
-              {
-                complexType.getAttributeContents().add(index, concreteComponent.getContainer());
-                break;
-              }
-            }
-            else
-            {
-              if (attribute == previousRefComponent)
-              {
-                complexType.getAttributeContents().add(index + 1, concreteComponent.getContainer());
-                break;
-              }
-            }
-          }
-          index++;
-        }
-        if (attributeGroupContents.size() == 0)
-        {
-          complexType.getAttributeContents().add(concreteComponent.getContainer());
-        }
-
-      }
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    }
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/XSDEditNamespacesAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/XSDEditNamespacesAction.java
deleted file mode 100644
index 945d4fd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/actions/XSDEditNamespacesAction.java
+++ /dev/null
@@ -1,286 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.actions;
-
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceInfoManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xml.ui.internal.actions.ReplacePrefixAction;
-import org.eclipse.wst.xml.ui.internal.util.XMLCommonResources;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.nsedit.SchemaPrefixChangeHandler;
-import org.eclipse.wst.xsd.ui.internal.nsedit.TargetNamespaceChangeHandler;
-import org.eclipse.wst.xsd.ui.internal.widgets.XSDEditSchemaInfoDialog;
-import org.eclipse.xsd.XSDForm;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class XSDEditNamespacesAction extends Action {
-	private Element element;
-	private String resourceLocation;
-	private XSDSchema xsdSchema;
-    private DOMNamespaceInfoManager namespaceInfoManager = new DOMNamespaceInfoManager();
-	
-	public XSDEditNamespacesAction(String label, Element element, Node node) {
-		super();
-		setText(label);
-		
-		this.element = element;
-		///////////////////// This needs to be changed....
-		this.resourceLocation = "dummy";		
-	}
-	
-	public XSDEditNamespacesAction(String label, Element element, Node node, XSDSchema schema) {
-		this (label, element, node);
-		xsdSchema = schema;
-	}
-	
-	public void run() {
-		if (element != null)
-		{   
-		      Shell shell = XMLCommonResources.getInstance().getWorkbench().getActiveWorkbenchWindow().getShell();
-		      String targetNamespace = null;
-		      if (xsdSchema != null) {
-		      	targetNamespace = xsdSchema.getTargetNamespace();
-		      }
-		      XSDEditSchemaInfoDialog dialog = new XSDEditSchemaInfoDialog(shell, new Path(resourceLocation), targetNamespace); 
-
-		      List namespaceInfoList = namespaceInfoManager.getNamespaceInfoList(element);
-		      List oldNamespaceInfoList = NamespaceInfo.cloneNamespaceInfoList(namespaceInfoList);
-
-		      // here we store a copy of the old info for each NamespaceInfo
-		      // this info will be used in createPrefixMapping() to figure out how to update the document 
-		      // in response to these changes
-		      for (Iterator i = namespaceInfoList.iterator(); i.hasNext(); )
-		      {
-		        NamespaceInfo info = (NamespaceInfo)i.next();
-		        NamespaceInfo oldCopy = new NamespaceInfo(info);
-		        info.setProperty("oldCopy", oldCopy); //$NON-NLS-1$
-		      }
-          
-          String currentElementFormQualified = "";
-          String currentAttributeFormQualified = "";
-          
-          boolean hasElementForm = element.hasAttribute(XSDConstants.ELEMENTFORMDEFAULT_ATTRIBUTE);
-          if (hasElementForm) currentElementFormQualified = element.getAttribute(XSDConstants.ELEMENTFORMDEFAULT_ATTRIBUTE);
-          
-          boolean hasAttributeForm = element.hasAttribute(XSDConstants.ATTRIBUTEFORMDEFAULT_ATTRIBUTE);
-          if (hasAttributeForm) currentAttributeFormQualified = element.getAttribute(XSDConstants.ATTRIBUTEFORMDEFAULT_ATTRIBUTE);
-		                              
-		      dialog.setNamespaceInfoList(namespaceInfoList);   
-		      dialog.create();      
-		      dialog.getShell().setSize(500, 400);
-		      dialog.getShell().setText(XMLCommonResources.getInstance().getString("_UI_MENU_EDIT_SCHEMA_INFORMATION_TITLE")); //$NON-NLS-1$
-          dialog.setIsElementQualified(currentElementFormQualified);
-          dialog.setIsAttributeQualified(currentAttributeFormQualified);
-		      dialog.setBlockOnOpen(true);                                 
-		      dialog.open();
-          String xsdPrefix = "";     //$NON-NLS-1$
-
-		      if (dialog.getReturnCode() == Window.OK)
-		      {
-            Element xsdSchemaElement = xsdSchema.getElement();
-            DocumentImpl doc = (DocumentImpl) xsdSchemaElement.getOwnerDocument();
-            
-            List newInfoList = dialog.getNamespaceInfoList();
-
-		        // see if we need to rename any prefixes
-		        Map prefixMapping = createPrefixMapping(oldNamespaceInfoList, namespaceInfoList);
-            
-            Map map2 = new Hashtable();
-            for (Iterator iter = newInfoList.iterator(); iter.hasNext(); )
-            {
-              NamespaceInfo ni = (NamespaceInfo)iter.next();
-              String pref = ni.prefix;
-              String uri = ni.uri;
-              if (pref == null) pref = ""; //$NON-NLS-1$
-              if (uri == null) uri = ""; //$NON-NLS-1$
-              if (XSDConstants.isSchemaForSchemaNamespace(uri))
-              {
-                xsdPrefix = pref;
-              }
-              map2.put(pref, uri);
-            }
-           
-		        if (map2.size() > 0)
-		        {
-		        	try {
-                
-                doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_NAMESPACE_CHANGE"));
-
-                if (xsdPrefix != null && xsdPrefix.length() == 0)
-                {
-                  xsdSchema.setSchemaForSchemaQNamePrefix(null);
-                }
-                else
-                {
-                  xsdSchema.setSchemaForSchemaQNamePrefix(xsdPrefix);
-                }
-
-                xsdSchema.setTargetNamespace(dialog.getTargetNamespace());
-                xsdSchema.update();
-                
-                SchemaPrefixChangeHandler spch = new SchemaPrefixChangeHandler(xsdSchema, xsdPrefix);
-                spch.resolve();
-                xsdSchema.update();
-                
-                xsdSchema.setIncrementalUpdate(false);
-                namespaceInfoManager.removeNamespaceInfo(element);
-                namespaceInfoManager.addNamespaceInfo(element, newInfoList, false);
-                xsdSchema.setIncrementalUpdate(true);
-
-                // don't need these any more?
-			          ReplacePrefixAction replacePrefixAction = new ReplacePrefixAction(null, element, prefixMapping);
-			          replacePrefixAction.run();
-                
-                TargetNamespaceChangeHandler targetNamespaceChangeHandler = new TargetNamespaceChangeHandler(xsdSchema, targetNamespace, dialog.getTargetNamespace());
-                targetNamespaceChangeHandler.resolve();
-				    	}
-              catch (Exception e)
-              { 
-//                e.printStackTrace();
-              }
-              finally
-              {
-                xsdSchema.update();
-                doc.getModel().endRecording(this);
-			     		}
-		        }
-            
-            String attributeFormQualified = dialog.getAttributeFormQualified();
-            String elementFormQualified = dialog.getElementFormQualified();
-
-            boolean elementFormChanged = true;
-            boolean attributeFormChanged = true;
-            if (elementFormQualified.equals(currentElementFormQualified))
-            {
-              elementFormChanged = false;
-            }
-            if (attributeFormQualified.equals(currentAttributeFormQualified))
-            {
-              attributeFormChanged = false;
-            }
-            if (elementFormChanged)
-            {
-              doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_SCHEMA_ELEMENTFORMDEFAULT_CHANGE"));
-              if (elementFormQualified.equals(XSDForm.QUALIFIED_LITERAL.getName()))
-              {
-                xsdSchema.setElementFormDefault(XSDForm.QUALIFIED_LITERAL);
-              }
-              else if (elementFormQualified.equals(XSDForm.UNQUALIFIED_LITERAL.getName()))
-              {
-                xsdSchema.setElementFormDefault(XSDForm.UNQUALIFIED_LITERAL);
-              }
-              else
-              {
-                // Model should allow us to remove the attribute
-                xsdSchema.getElement().removeAttribute(XSDConstants.ELEMENTFORMDEFAULT_ATTRIBUTE);
-              }
-              doc.getModel().endRecording(this);
-            }
-            if (attributeFormChanged)
-            {
-              doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_SCHEMA_ATTRIBUTEFORMDEFAULT_CHANGE"));
-              if (attributeFormQualified.equals(XSDForm.QUALIFIED_LITERAL.getName()))
-              {
-                xsdSchema.setAttributeFormDefault(XSDForm.QUALIFIED_LITERAL);
-              }
-              else if (attributeFormQualified.equals(XSDForm.UNQUALIFIED_LITERAL.getName()))
-              {
-                xsdSchema.setAttributeFormDefault(XSDForm.UNQUALIFIED_LITERAL);
-              }
-              else
-              {
-                // Model should allow us to remove the attribute
-                xsdSchema.getElement().removeAttribute(XSDConstants.ATTRIBUTEFORMDEFAULT_ATTRIBUTE);
-              }
-              
-              doc.getModel().endRecording(this);
-            }
-		   }      
-          
-		}
-	}
-	
-	 protected Map createPrefixMapping(List oldList, List newList)
-	  {          
-	    Map map = new Hashtable();
-
-	    Hashtable oldURIToPrefixTable = new Hashtable();
-	    for (Iterator i = oldList.iterator(); i.hasNext(); )
-	    {    
-	      NamespaceInfo oldInfo = (NamespaceInfo)i.next();                    
-	      oldURIToPrefixTable.put(oldInfo.uri, oldInfo);
-	    }
-	    
-	    for (Iterator i = newList.iterator(); i.hasNext(); )
-	    {
-	      NamespaceInfo newInfo = (NamespaceInfo)i.next();
-	      NamespaceInfo oldInfo = (NamespaceInfo)oldURIToPrefixTable.get(newInfo.uri != null ? newInfo.uri : "");  //$NON-NLS-1$
-
-
-	      // if oldInfo is non null ... there's a matching URI in the old set
-	      // we can use its prefix to detemine out mapping
-	      //
-	      // if oldInfo is null ...  we use the 'oldCopy' we stashed away 
-	      // assuming that the user changed the URI and the prefix
-	      if (oldInfo == null)                                            
-	      {
-	        oldInfo = (NamespaceInfo)newInfo.getProperty("oldCopy");            //$NON-NLS-1$
-	      } 
-
-	      if (oldInfo != null)
-	      {
-	        String newPrefix = newInfo.prefix != null ? newInfo.prefix : ""; //$NON-NLS-1$
-	        String oldPrefix = oldInfo.prefix != null ? oldInfo.prefix : ""; //$NON-NLS-1$
-	        if (!oldPrefix.equals(newPrefix))
-	        {
-	          map.put(oldPrefix, newPrefix);    
-	        }
-	      }      
-	    }        
-	    return map;
-	  }
-   
-//    private void updateAllNodes(Element element, String prefix)
-//    {
-//      element.setPrefix(prefix);
-//      NodeList list = element.getChildNodes();
-//      if (list != null)
-//      {
-//        for (int i=0; i < list.getLength(); i++)
-//        {
-//          Node child = list.item(i);
-//          if (child != null && child instanceof Element)
-//          {
-//            child.setPrefix(prefix);
-//            if (child.hasChildNodes())
-//            {
-//              updateAllNodes((Element)child, prefix);
-//            }
-//          }
-//        }
-//      }   
-//    }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/CategoryAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/CategoryAdapter.java
deleted file mode 100644
index ebb4f42..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/CategoryAdapter.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IModelProxy;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeDeclarationAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeGroupDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDComplexTypeDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDSchemaDirectiveAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDModelGroupDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDSimpleTypeDefinitionAction;
-import org.eclipse.xsd.XSDSchema;
-
-public class CategoryAdapter extends XSDBaseAdapter implements IModelProxy, IActionProvider, IADTObjectListener
-{
-  protected String text;
-  protected Image image;
-  protected Object parent;
-  protected int groupType;
-  Collection children, allChildren;  // children from current schema, children from current schema and includes
-  XSDSchema xsdSchema;
-
-  public CategoryAdapter(String label, Image image, Collection children, XSDSchema xsdSchema, int groupType)
-  {
-    this.text = label;
-    this.image = image;
-    this.parent = xsdSchema;
-    this.xsdSchema = xsdSchema;
-    this.target = xsdSchema;
-    this.children = children;
-    this.groupType = groupType;
-  }
-
-  public final static int ATTRIBUTES = 1;
-  public final static int ELEMENTS = 2;
-  public final static int TYPES = 3;
-  public final static int GROUPS = 5;
-  public final static int DIRECTIVES = 6;
-  public final static int NOTATIONS = 7;
-  public final static int ATTRIBUTE_GROUPS = 8;
-  public final static int IDENTITY_CONSTRAINTS = 9;
-  public final static int ANNOTATIONS = 10;
-
-  public XSDSchema getXSDSchema()
-  {
-    return xsdSchema;
-  }
-
-  public int getGroupType()
-  {
-    return groupType;
-  }
-
-  public Image getImage()
-  {
-    return image;
-  }
-
-  public String getText()
-  {
-    return text;
-  }
-
-  public ITreeElement[] getChildren()
-  {
-    return (ITreeElement[]) children.toArray(new ITreeElement[0]);
-  }
-  
-  public ITreeElement[] getAllChildren()
-  {
-    return (ITreeElement[]) allChildren.toArray(new ITreeElement[0]);
-  }
-
-  public void setChildren(Collection list)
-  {
-    children = list;
-  }
-
-  public void setAllChildren(Collection list)
-  {
-    allChildren = list;
-  }
-
-  public Object getParent(Object element)
-  {
-    return xsdSchema;
-  }
-
-  public boolean hasChildren(Object element)
-  {
-    return true;
-  }
-
-  public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-  {
-
-  }
-
-  public String[] getActions(Object object)
-  {    
-    Collection actionIDs = new ArrayList();
-    
-    switch (groupType)
-    {
-      case TYPES : {
-        actionIDs.add(AddXSDComplexTypeDefinitionAction.ID);
-        actionIDs.add(AddXSDSimpleTypeDefinitionAction.ID);
-        break;
-      }
-      case ELEMENTS : {
-        actionIDs.add(AddXSDElementAction.ID);
-        break;
-      }
-      case GROUPS : {
-        actionIDs.add(AddXSDModelGroupDefinitionAction.MODELGROUPDEFINITION_ID);
-        break;
-      }
-      case ATTRIBUTES : {
-        actionIDs.add(AddXSDAttributeDeclarationAction.ID);
-        actionIDs.add(AddXSDAttributeGroupDefinitionAction.ID);
-        break;
-      }
-      case ATTRIBUTE_GROUPS : {
-        actionIDs.add(AddXSDAttributeGroupDefinitionAction.ID);
-        break;
-      }
-      case DIRECTIVES : {
-        actionIDs.add(AddXSDSchemaDirectiveAction.INCLUDE_ID);
-        actionIDs.add(AddXSDSchemaDirectiveAction.IMPORT_ID);
-        actionIDs.add(AddXSDSchemaDirectiveAction.REDEFINE_ID);
-        break;
-      }
-    }
-    actionIDs.add(BaseSelectionAction.SEPARATOR_ID);
-    actionIDs.add(ShowPropertiesViewAction.ID);
-    return (String [])actionIDs.toArray(new String[0]);
-  }
-  
-  public void propertyChanged(Object object, String property)
-  {
-    if (getText().equals(property))
-      notifyListeners(this, property);
-  }
-
-  public List getTypes()
-  {
-    return null;
-  }
-
-  public IModel getModel()
-  {
-    return (IModel)XSDAdapterFactory.getInstance().adapt(xsdSchema);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAdapterFactory.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAdapterFactory.java
deleted file mode 100644
index ef9b510..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAdapterFactory.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDSwitch;
-
-public class XSDAdapterFactory extends AdapterFactoryImpl
-{
-  protected static XSDAdapterFactory instance;
-  
-  public static XSDAdapterFactory getInstance()
-  {
-    if (instance == null)
-    {
-      // first use the one defined by the configuration
-      instance = XSDEditorPlugin.getPlugin().getXSDEditorConfiguration().getAdapterFactory();
-      // if there isn't one, then use the default
-      if (instance == null)
-        instance = new XSDAdapterFactory();
-    }
-    return instance;
-  }
-  
-  public Adapter createAdapter(Notifier target)
-  {
-    XSDSwitch xsdSwitch = new XSDSwitch()
-    {
-      public Object caseXSDSchemaDirective(XSDSchemaDirective object)
-      {
-        return new XSDSchemaDirectiveAdapter();
-      }
-      
-      public Object caseXSDWildcard(XSDWildcard object)
-      {
-        return new XSDWildcardAdapter();
-      }
-      
-      public Object caseXSDAttributeGroupDefinition(XSDAttributeGroupDefinition object)
-      {
-        return new XSDAttributeGroupDefinitionAdapter();
-      }
-
-      public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition object)
-      {
-        return new XSDModelGroupDefinitionAdapter();
-      }
-      
-      public Object caseXSDAttributeDeclaration(XSDAttributeDeclaration object)
-      {
-        return new XSDAttributeDeclarationAdapter();
-      }
-
-      public Object caseXSDAttributeUse(XSDAttributeUse object)
-      {
-        return new XSDAttributeUseAdapter();
-      }
-      
-      public Object caseXSDParticle(XSDParticle object)
-      {
-        return new XSDParticleAdapter();
-      }
-
-      public Object caseXSDElementDeclaration(XSDElementDeclaration object)
-      {
-        return new XSDElementDeclarationAdapter();
-      }
-      
-      public Object caseXSDSimpleTypeDefinition(XSDSimpleTypeDefinition object)
-      {
-        // TODO Auto-generated method stub
-        return new XSDSimpleTypeDefinitionAdapter();
-      }
-      
-      public Object caseXSDComplexTypeDefinition(XSDComplexTypeDefinition object)
-      {
-        // we don't like exposing the 'anyType' type as a visible complex type
-        // so we adapt it in a specialized way so that it's treated as simple type
-        // that way it doesn't show up as a reference from a field
-        //
-        if ("anyType".equals(object.getName())) //$NON-NLS-1$
-        {
-          return new XSDAnyTypeDefinitionAdapter(); 
-        }  
-        else
-        {             
-          return new XSDComplexTypeDefinitionAdapter();
-        }  
-      }
-      
-      public Object caseXSDModelGroup(XSDModelGroup object)
-      {
-        return new XSDModelGroupAdapter();
-      }
-
-      public Object caseXSDSchema(XSDSchema object)
-      {
-        return new XSDSchemaAdapter();
-      }         
-    };
-    Object o = xsdSwitch.doSwitch((EObject) target);
-    Adapter result = null;
-    if (o instanceof Adapter)
-    {
-      result = (Adapter) o;
-    }
-    else
-    {
-//      Thread.dumpStack();
-    }
-    return result;
-  }
-
-  public Adapter adapt(Notifier target)
-  {
-    return adapt(target, this);
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAnyTypeDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAnyTypeDefinitionAdapter.java
deleted file mode 100644
index ee440b4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAnyTypeDefinitionAdapter.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-public class XSDAnyTypeDefinitionAdapter extends XSDTypeDefinitionAdapter
-{
-  public boolean isComplexType()
-  {
-    return false;
-  }
-
-  public boolean isFocusAllowed()
-  {
-    return false;
-  }
-
-  public String[] getActions(Object object)
-  {
-	return null;
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeDeclarationAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeDeclarationAdapter.java
deleted file mode 100644
index c4200ef..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeDeclarationAdapter.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.xsd.XSDSchema;
-
-public class XSDAttributeDeclarationAdapter extends XSDBaseAttributeAdapter implements IActionProvider
-{
-  protected XSDAttributeDeclaration getXSDAttributeDeclaration()
-  {
-    return (XSDAttributeDeclaration)target;
-  }
- 
-  protected XSDAttributeDeclaration getResolvedXSDAttributeDeclaration()
-  {
-    return getXSDAttributeDeclaration().getResolvedAttributeDeclaration();
-  }
-  
-  public boolean isGlobal()
-  {
-    return getXSDAttributeDeclaration().eContainer() instanceof XSDSchema;
-  }
-
-  public IModel getModel()
-  {
-    Adapter adapter = XSDAdapterFactory.getInstance().adapt(getXSDAttributeDeclaration().getSchema());
-    return (IModel)adapter;
-  }
-
-  public boolean isFocusAllowed()
-  {
-    return isGlobal();
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeGroupDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeGroupDefinitionAdapter.java
deleted file mode 100644
index 81e8e8e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeGroupDefinitionAdapter.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAnyAttributeAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeDeclarationAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction;
-import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-public class XSDAttributeGroupDefinitionAdapter extends XSDBaseAdapter implements IStructure, IActionProvider, IGraphElement
-{
-  public static final Image ATTRIBUTE_GROUP_REF_ICON_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAttributeGroupRef.gif");
-  public static final Image ATTRIBUTE_GROUP_REF_DISABLED_ICON_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAttributeGroupRefdis.gif");
-  public static final Image ATTRIBUTE_GROUP_ICON_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAttributeGroup.gif");
-  public static final Image ATTRIBUTE_GROUP_DISABLED_ICON_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAttributeGroupdis.gif");
-	  
-  public XSDAttributeGroupDefinitionAdapter()
-  {
-    super();
-  }
-
-  public XSDAttributeGroupDefinition getXSDAttributeGroupDefinition()
-  {
-    return (XSDAttributeGroupDefinition) target;
-  }
-
-  public Image getImage()
-  {
-    XSDAttributeGroupDefinition xsdAttributeGroupDefinition = (XSDAttributeGroupDefinition) target;
-    if (xsdAttributeGroupDefinition.isAttributeGroupDefinitionReference())
-    {
-      return isReadOnly() ? ATTRIBUTE_GROUP_REF_DISABLED_ICON_IMAGE : ATTRIBUTE_GROUP_REF_ICON_IMAGE;
-    }
-    else
-    {
-      return isReadOnly() ? ATTRIBUTE_GROUP_DISABLED_ICON_IMAGE : ATTRIBUTE_GROUP_ICON_IMAGE;
-    }
-  }
-
-  public String getText()
-  {
-    XSDAttributeGroupDefinition xsdAttributeGroupDefinition = (XSDAttributeGroupDefinition) target;
-    String result = xsdAttributeGroupDefinition.isAttributeGroupDefinitionReference() ? xsdAttributeGroupDefinition.getQName() : xsdAttributeGroupDefinition.getName();
-    return result == null ? Messages._UI_LABEL_ABSENT : result;
-  }
-
-  public ITreeElement[] getChildren()
-  {
-    XSDAttributeGroupDefinition xsdAttributeGroup = (XSDAttributeGroupDefinition) target;
-    List list = new ArrayList();
-    list.addAll(xsdAttributeGroup.getContents());
-    XSDWildcard wildcard = xsdAttributeGroup.getAttributeWildcardContent();
-    if (wildcard != null)
-    {
-      list.add(wildcard);
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return (ITreeElement[]) adapterList.toArray(new ITreeElement[0]);
-  }
-  
-  public String[] getActions(Object object)
-  {
-    List list = new ArrayList();
-    list.add(AddXSDAttributeDeclarationAction.ID);
-    list.add(AddXSDAnyAttributeAction.ID);
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(DeleteXSDConcreteComponentAction.DELETE_XSD_COMPONENT_ID);
-    return (String [])list.toArray(new String[0]);
-  }
-
-  public Command getAddNewFieldCommand(String fieldKind)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getDeleteCommand()
-  {
-    return new DeleteCommand("", getXSDAttributeGroupDefinition()); //$NON-NLS-1$
-  }
-
-  public List getFields()
-  {
-    // TODO (cs) ... review this    
-    ITreeElement[] chidlren = getChildren();
-    return Arrays.asList(chidlren);
-  }
-
-  public IModel getModel()
-  {
-    Adapter adapter = XSDAdapterFactory.getInstance().adapt(getXSDAttributeGroupDefinition().getSchema());
-    return (IModel)adapter;
-  }
-
-  public String getName()
-  {
-    // TODO (cs) ... review this
-    return getText();
-  }
-
-  public boolean isFocusAllowed()
-  {
-    XSDAttributeGroupDefinition xsdAttributeGroupDefinition = (XSDAttributeGroupDefinition) target;
-    if (xsdAttributeGroupDefinition.isAttributeGroupDefinitionReference())
-    {
-      return false;
-    }
-    return true;
-  }
-  
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeUseAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeUseAdapter.java
deleted file mode 100644
index 8759688..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDAttributeUseAdapter.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-
-public class XSDAttributeUseAdapter extends XSDBaseAttributeAdapter implements IActionProvider
-{
-  protected XSDAttributeDeclaration getXSDAttributeDeclaration()
-  {
-    return getXSDAttributeUse().getAttributeDeclaration();
-  }
-
-  protected XSDAttributeDeclaration getResolvedXSDAttributeDeclaration()
-  {
-    return getXSDAttributeDeclaration().getResolvedAttributeDeclaration();
-  }
-  
-  protected XSDAttributeUse getXSDAttributeUse()
-  {
-    return (XSDAttributeUse)target;
-  }
-
-  public XSDAttributeUseAdapter()
-  {
-    super();
-  }
-
-  public String getText()
-  {
-    return getTextForAttributeUse(getXSDAttributeUse(), true);
-  }
-
-  public String getTextForAttributeUse(XSDAttributeUse attributeUse, boolean showType)
-  {
-    XSDAttributeDeclaration ad = attributeUse.getAttributeDeclaration();
-      
-    StringBuffer result  = new StringBuffer();
-    result.append(getTextForAttribute(ad, showType));
-    /*
-    if (xsdAttributeUse.isSetConstraint())
-    {
-      if (result.length() != 0)
-      {
-        result.append("  ");
-      }
-      result.append('<');
-      result.append(xsdAttributeUse.getConstraint());
-      result.append("=\"");
-      result.append(xsdAttributeUse.getLexicalValue());
-      result.append("\">");
-    }
-    */
-    return result.toString();
-  }
-  
-  public boolean isGlobal()
-  {
-    return false;
-  }
-
-  public IModel getModel()
-  {
-    Adapter adapter = XSDAdapterFactory.getInstance().adapt(getXSDAttributeDeclaration().getSchema());
-    return (IModel)adapter;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAdapter.java
deleted file mode 100644
index 1f4a3b7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAdapter.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-
-public class XSDBaseAdapter extends AdapterImpl implements IADTObject, ITreeElement
-{  
-  protected List listenerList = new ArrayList();
-  
-  public boolean isAdapterForType(Object type)
-  {
-    return type == XSDAdapterFactory.getInstance();
-  }
-  
-  public void populateAdapterList(List notifierList, List adapterList)
-  {
-    for (Iterator i = notifierList.iterator(); i.hasNext(); )
-    {
-      Object obj = i.next();
-      if (obj instanceof XSDConcreteComponent)
-      {
-        XSDConcreteComponent component = (XSDConcreteComponent)obj;
-        adapterList.add(XSDAdapterFactory.getInstance().adapt(component));
-      }
-      else
-      {
-        adapterList.add(obj);
-      }
-    }
-  }  
-  
-  public void registerListener(IADTObjectListener listener)
-  {
-    if (!listenerList.contains(listener))
-    {
-      listenerList.add(listener);
-    }
-  }
-  
-  public void unregisterListener(IADTObjectListener listener)
-  {
-    listenerList.remove(listener);
-  }
-  
-  public void notifyChanged(Notification msg)
-  {
-    super.notifyChanged(msg);
-    notifyListeners(this, null);
-  }
-  
-  protected void notifyListeners(Object changedObject, String property)
-  {
-    List clonedListenerList = new ArrayList();
-    clonedListenerList.addAll(listenerList);
-    for (Iterator i = clonedListenerList.iterator(); i.hasNext(); )
-    {
-      IADTObjectListener listener = (IADTObjectListener)i.next();
-      listener.propertyChanged(this, property);
-    }      
-  }
-    
-  public ITreeElement[] getChildren()
-  {
-    return null;
-  }
-  
-  public Image getImage()
-  {
-    return null;
-  }
-  
-  public String getText()
-  {
-    return ""; //$NON-NLS-1$
-  }
-  
-  public ITreeElement getParent()
-  {
-    return null;
-  }
-  
-  public boolean hasChildren()
-  {
-    if (getChildren() != null)
-    {
-      return getChildren().length > 0;
-    }
-    return false;
-  }
-  
-
-  /**
-   * Implements IField getContainerType.  Get parent Complex Type containing the field
-   * @return IComplexType
-   */
-  public IComplexType getContainerType()
-  {
-    XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent) target;
-    XSDConcreteComponent parent = null;
-    XSDComplexTypeDefinition ct = null;
-    for (parent = xsdConcreteComponent.getContainer(); parent != null; )
-    {
-      if (parent instanceof XSDComplexTypeDefinition)
-      {
-        ct = (XSDComplexTypeDefinition)parent;
-        break;
-      }
-      parent = parent.getContainer();
-    }
-    if (ct != null)
-    {
-      return (IComplexType)XSDAdapterFactory.getInstance().adapt(ct);
-    }
-    return null;
-  }
-  
-  public boolean isReadOnly()
-  {
-    XSDSchema xsdSchema = null;
-    try
-    {
-      IEditorPart editorPart = null;
-      IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-      if (window != null)
-      {
-        IWorkbenchPage page = window.getActivePage();
-        if (page != null)
-        {
-          editorPart = page.getActiveEditor();
-        }
-      }
-      if (target instanceof XSDConcreteComponent)
-      {
-        xsdSchema = ((XSDConcreteComponent)target).getSchema();
-      }
-      if (editorPart == null)
-      {
-        return fallBackCheckIsReadOnly();
-      }
-      
-      XSDSchema editorSchema = (XSDSchema)editorPart.getAdapter(XSDSchema.class);
-      if (xsdSchema != null && xsdSchema == editorSchema)
-      {
-        return false;
-      }
-      else
-      {
-        return fallBackCheckIsReadOnly();
-      }
-    }
-    catch(Exception e)
-    {
-
-    }
-    return true;
-  }
-  
-  private boolean fallBackCheckIsReadOnly()
-  {
-    Element element = ((XSDConcreteComponent)target).getElement();
-    if (element instanceof IDOMNode
-        || element instanceof ElementImpl)
-    {
-       return false;
-    }
-    return true;
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAttributeAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAttributeAdapter.java
deleted file mode 100644
index 8243945..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDBaseAttributeAdapter.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.DeleteAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeDeclarationAction;
-import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-// a base adapter for reuse by an AttributeUse and AttributeDeclaration
-//
-public abstract class XSDBaseAttributeAdapter extends XSDBaseAdapter implements IField, IGraphElement
-{
-  protected abstract XSDAttributeDeclaration getXSDAttributeDeclaration();
-  protected abstract XSDAttributeDeclaration getResolvedXSDAttributeDeclaration();
-
-  public XSDBaseAttributeAdapter()
-  {
-    super();
-  }
-
-  public String[] getActions(Object object)
-  {
-    List list = new ArrayList();
-    list.add(AddXSDAttributeDeclarationAction.ID);
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    //list.add(DeleteXSDConcreteComponentAction.DELETE_XSD_COMPONENT_ID);
-    list.add(DeleteAction.ID);
-
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(ShowPropertiesViewAction.ID);
-    return (String[]) list.toArray(new String[0]);
-  }
-
-  public Command getDeleteCommand()
-  {
-    return new DeleteCommand("", getXSDAttributeDeclaration()); //$NON-NLS-1$
-  }
-
-  public String getKind()
-  {
-    return "attribute"; //$NON-NLS-1$
-  }
-
-  public int getMaxOccurs()
-  {
-    // TODO Auto-generated method stub
-    return -3;
-  }
-
-  public int getMinOccurs()
-  {
-    // TODO Auto-generated method stub
-    return -3;
-  }
-
-  public String getName()
-  {
-    XSDAttributeDeclaration resolvedAttributeDeclaration = getResolvedXSDAttributeDeclaration();
-    String name = resolvedAttributeDeclaration.getName();
-    return (name == null) ? "" : name; //$NON-NLS-1$
-  }
-
-  public IType getType()
-  {
-    XSDTypeDefinition td = getResolvedXSDAttributeDeclaration().getTypeDefinition();
-    return (td != null) ? (IType) XSDAdapterFactory.getInstance().adapt(td) : null;
-  }
-
-  public String getTypeName()
-  {
-    XSDTypeDefinition td = getResolvedXSDAttributeDeclaration().getTypeDefinition();
-    return (td != null) ? td.getName() : Messages._UI_NO_TYPE_DEFINED;
-  }
-
-  public String getTypeNameQualifier()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateMaxOccursCommand(int maxOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateMinOccursCommand(int minOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateNameCommand(String name)
-  {
-    return new UpdateNameCommand(Messages._UI_ACTION_UPDATE_NAME, getResolvedXSDAttributeDeclaration(), name);
-  }
-
-  public Command getUpdateTypeNameCommand(String typeName, String quailifier)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement#getImage()
-   */
-  public Image getImage()
-  {
-    XSDAttributeDeclaration xsdAttributeDeclaration = getXSDAttributeDeclaration();  // don't want the resolved attribute
-    if (xsdAttributeDeclaration.isAttributeDeclarationReference())
-    {
-      if (isReadOnly())
-      {
-        return XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAttributeRefdis.gif");
-      }
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttributeRef.gif"); //$NON-NLS-1$
-    }
-    else
-    {
-      if (isReadOnly())
-      {
-        return XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAttributedis.gif");
-      }
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif"); //$NON-NLS-1$
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement#getText()
-   */
-  public String getText()
-  {
-    return getTextForAttribute(getResolvedXSDAttributeDeclaration(), true);
-  }
-
-  public String getTextForAttribute(XSDAttributeDeclaration ad, boolean showType)
-  {
-    ad = ad.getResolvedAttributeDeclaration();
-    String name = ad.getName();
-    StringBuffer result = new StringBuffer();
-    if (name == null)
-    {
-      result.append(" " + Messages._UI_LABEL_ABSENT + " ");  //$NON-NLS-1$ //$NON-NLS-2$
-    }
-    else
-    {
-      result.append(name);
-    }
-    if (ad.getAnonymousTypeDefinition() == null && ad.getTypeDefinition() != null)
-    {
-      result.append(" : "); //$NON-NLS-1$
-      // result.append(resolvedAttributeDeclaration.getTypeDefinition().getQName(xsdAttributeDeclaration));
-      result.append(ad.getTypeDefinition().getName());
-    }
-    return result.toString();
-  }
-
-  public boolean isGlobal()
-  {
-    return false;
-  }
-  
-  public boolean isReference()
-  {
-    return false;
-  }
-  
-  public IModel getModel()
-  {
-    Adapter adapter = XSDAdapterFactory.getInstance().adapt(getXSDAttributeDeclaration().getSchema());
-    return (IModel)adapter;
-  }  
-
-  public boolean isFocusAllowed()
-  {
-    return false;
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDChildUtility.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDChildUtility.java
deleted file mode 100644
index 191110c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDChildUtility.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDSwitch;
-              
-
-public class XSDChildUtility
-{              
-  static public List getModelChildren(Object model)
-  {
-    XSDChildVisitor visitor = new XSDChildVisitor(model);
-    visitor.visitXSDObject(model);
-    return visitor.list;
-  }
-
-  static public List getImmediateDerivedTypes(XSDComplexTypeDefinition complexType)
-  {
-    ArrayList typesDerivedFrom = new ArrayList();
-
-    // A handy convenience method quickly gets all 
-    // typeDefinitions within our schema; note that 
-    // whether or not this returns types in included, 
-    // imported, or redefined schemas is subject to change
-    List typedefs = complexType.getSchema().getTypeDefinitions();
-
-    for (Iterator iter = typedefs.iterator(); iter.hasNext(); )
-    {
-      XSDTypeDefinition typedef = (XSDTypeDefinition)iter.next();
-      // Walk the baseTypes from this typedef seeing if any 
-      // of them match the requested one
-      if (complexType.equals(typedef.getBaseType()))
-      {
-        // We found it, return the original one and continue
-        typesDerivedFrom.add(typedef);
-      }
-    }
-    return typesDerivedFrom;
-  }
-  // TODO... use the XSDVisitor defined in xsdeditor.util instead
-  //          
-  public static class XSDChildVisitor extends XSDVisitor
-  {
-    Object root;
-    List list = new ArrayList();
-
-    public XSDChildVisitor(Object root)
-    {
-      this.root = root;
-    }                  
-
-    public void visitXSDModelGroup(XSDModelGroup xsdModelGroup)
-    {
-      if (xsdModelGroup != root)
-      {
-        list.add(xsdModelGroup); 
-      }                         
-      else
-      {
-        super.visitXSDModelGroup(xsdModelGroup);
-      }
-    }
-
-    public void visitXSDModelGroupDefinition(XSDModelGroupDefinition xsdModelGroupDefinition)
-    {
-      if (xsdModelGroupDefinition != root)
-      {
-        list.add(xsdModelGroupDefinition);
-      }                         
-      else
-      {
-        super.visitXSDModelGroupDefinition(xsdModelGroupDefinition);
-      }
-    }
-
-    public void visitXSDElementDeclaration(XSDElementDeclaration xsdElementDeclaration)
-    {
-      if (xsdElementDeclaration != root)
-      {
-        list.add(xsdElementDeclaration);
-        
-      }                         
-      else
-      {
-        super.visitXSDElementDeclaration(xsdElementDeclaration);
-      }
-    }
-
-    public void visitXSDComplexTypeDefinition(XSDComplexTypeDefinition xsdComplexTypeDefinition)
-    {
-      if (xsdComplexTypeDefinition != root)
-      {                                    
-        if (xsdComplexTypeDefinition.getName() != null || getModelChildren(xsdComplexTypeDefinition).size() > 0)
-        {
-          list.add(xsdComplexTypeDefinition);
-        }
-      }                         
-      else
-      {
-        super.visitXSDComplexTypeDefinition(xsdComplexTypeDefinition);
-      }
-    }    
-
-    public void visitXSDWildcard(XSDWildcard xsdWildCard)
-    {
-      if (xsdWildCard != root)
-      {                                    
-        list.add(xsdWildCard);        
-      }                         
-      else
-      {
-        super.visitXSDWildcard(xsdWildCard);
-      }
-    }
-  }
-               
-
-  public static class XSDVisitor
-  { 
-    int indent = 0;
-                 
-    public void visitXSDObject(Object object)
-    {           
-      if (object == null)
-        return;
-
-      XSDSwitch theSwitch = new XSDSwitch()
-      {   
-        public Object caseXSDComplexTypeDefinition(XSDComplexTypeDefinition object)
-        {
-          visitXSDComplexTypeDefinition(object);
-          return null;
-        } 
-
-        public Object caseXSDAttributeUse(XSDAttributeUse object)
-        {
-          visitXSDAttributeUse(object);
-          return null;
-        }
-
-        public Object caseXSDElementDeclaration(XSDElementDeclaration object)
-        {
-          visitXSDElementDeclaration(object);
-          return null;
-        }
-
-        public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition object)
-        {
-          visitXSDModelGroupDefinition(object);
-          return super.caseXSDModelGroupDefinition(object);
-        }
-
-        public Object caseXSDModelGroup(XSDModelGroup object)
-        {
-          visitXSDModelGroup(object);
-          return super.caseXSDModelGroup(object);
-        }
-
-        public Object caseXSDParticle(XSDParticle object)
-        { 
-          visitXSDParticle(object);
-          return null;
-        } 
-
-        public Object caseXSDSchema(XSDSchema object)
-        { 
-          visitXSDSchema(object);
-          return null;
-        } 
-
-        public Object caseXSDWildcard(XSDWildcard object)
-        { 
-          visitXSDWildcard(object);
-          return null;
-        } 
-      };
-      theSwitch.doSwitch((EObject)object);
-    }
-         
-    public void visitXSDAttributeUse(XSDAttributeUse xsdAttributeUse)
-    {  
-//      printIndented("@" + xsdAttributeUse.getAttributeDeclaration().getName());
-    }
-
-    public void visitXSDSchema(XSDSchema xsdSchema)
-    {         
-      indent += 2;
-      for (Iterator iterator = xsdSchema.getElementDeclarations().iterator(); iterator.hasNext(); )
-      {
-        visitXSDObject(iterator.next());
-      }
-      indent -= 2;
-    }
-
-    public void visitXSDElementDeclaration(XSDElementDeclaration xsdElementDeclaration)
-    {      
-      indent += 2;         
-      XSDTypeDefinition td = xsdElementDeclaration.getTypeDefinition();
-      if (td == null)
-      {
-        td = xsdElementDeclaration.getAnonymousTypeDefinition();
-      }                       
-      visitXSDObject(td);
-      indent -= 2;
-    }
-   
-    public void visitXSDComplexTypeDefinition(XSDComplexTypeDefinition xsdComplexTypeDefinition)
-    {
-      indent += 2;
-      for (Iterator i = xsdComplexTypeDefinition.getAttributeUses().iterator(); i.hasNext(); )
-      {        
-        visitXSDObject(i.next());
-      }
-      visitXSDObject(xsdComplexTypeDefinition.getContent());
-      indent -= 2;
-    }
-
-    public void visitXSDModelGroup(XSDModelGroup xsdModelGroup)
-    {
-      indent += 2;
-      for (Iterator iterator = xsdModelGroup.getContents().iterator(); iterator.hasNext(); )
-      {
-        visitXSDObject(iterator.next());
-      } 
-      indent -= 2;
-    }     
-
-    public void visitXSDModelGroupDefinition(XSDModelGroupDefinition xsdModelGroupDefinition)
-    {
-      indent += 2;
-      visitXSDObject(xsdModelGroupDefinition.getResolvedModelGroupDefinition().getModelGroup());
-      indent -= 2;
-    }
-
-    public void visitXSDParticle(XSDParticle xsdParticle)
-    {
-      indent += 2;                 
-      if (xsdParticle.getContent() != null)
-        visitXSDObject(xsdParticle.getContent());
-      indent -= 2;
-    } 
-
-    public void visitXSDWildcard(XSDWildcard object)
-    { 
-
-    }
-
-    public void printIndented(String string)
-    { 
-      //String spaces = "";
-      //for (int i = 0; i < indent; i++)
-      //{
-      //  spaces += " ";
-      //}               
-     
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDComplexTypeDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDComplexTypeDefinitionAdapter.java
deleted file mode 100644
index 451c5d3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDComplexTypeDefinitionAdapter.java
+++ /dev/null
@@ -1,418 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.action.Action;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.DeleteAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.SetInputToGraphView;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAnyAttributeAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeDeclarationAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeGroupDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDModelGroupAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.OpenInNewEditor;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDElementCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.model.SpaceFiller;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.model.TargetConnectionSpaceFiller;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDComplexTypeDefinitionAdapter extends XSDTypeDefinitionAdapter implements IComplexType, IADTObjectListener
-{
-  protected List fields = null;
-  protected List otherThingsToListenTo = null;
-
-  public XSDComplexTypeDefinition getXSDComplexTypeDefinition()
-  {
-    return (XSDComplexTypeDefinition) target;
-  }
-
-  public IType getSuperType()
-  {
-    XSDTypeDefinition td = getXSDTypeDefinition().getBaseType();
-
-    // test to filter out the 'anyType' type ... don't want to see that
-    //
-    if (td != null && !td.getName().equals("anyType")) //$NON-NLS-1$
-    {
-      return (IType) XSDAdapterFactory.getInstance().adapt(td);
-    }
-    return null;
-  }
-
-  protected void clearFields()
-  {
-    if (otherThingsToListenTo != null)
-    {
-      for (Iterator i = otherThingsToListenTo.iterator(); i.hasNext();)
-      {
-        Adapter adapter = (Adapter) i.next();
-        if (adapter instanceof IADTObject)
-        {
-          IADTObject adtObject = (IADTObject) adapter;
-          adtObject.unregisterListener(this);
-        }
-      }
-    }
-    fields = null;
-    otherThingsToListenTo = null;
-  }
-
-  public List getFields()
-  {
-    if (fields == null)
-    {
-      fields = new ArrayList();
-      otherThingsToListenTo = new ArrayList();
-
-      XSDVisitorForFields visitor = new XSDVisitorForFieldsWithSpaceFillers();
-      visitor.visitComplexTypeDefinition(getXSDComplexTypeDefinition());
-      populateAdapterList(visitor.concreteComponentList, fields);
-      populateAdapterList(visitor.thingsWeNeedToListenTo, otherThingsToListenTo);
-      for (Iterator i = otherThingsToListenTo.iterator(); i.hasNext();)
-      {
-        Adapter adapter = (Adapter) i.next();
-        if (adapter instanceof IADTObject)
-        {
-          IADTObject adtObject = (IADTObject) adapter;
-          adtObject.registerListener(this);
-        }
-      }
-    }
-    return fields;
-  }
-
-  class XSDVisitorForFieldsWithSpaceFillers extends XSDVisitorForFields
-  {
-    public XSDVisitorForFieldsWithSpaceFillers()
-    {
-      super();
-    }
-
-    public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-    {
-      for (Iterator it = attributeGroup.getContents().iterator(); it.hasNext();)
-      {
-        Object o = it.next();
-        if (o instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attributeUse = (XSDAttributeUse) o;
-          concreteComponentList.add(attributeUse.getAttributeDeclaration());
-          thingsWeNeedToListenTo.add(attributeUse.getAttributeDeclaration());
-        }
-        else if (o instanceof XSDAttributeGroupDefinition)
-        {
-          XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition) o;
-          thingsWeNeedToListenTo.add(attrGroup);
-          if (attrGroup.isAttributeGroupDefinitionReference())
-          {
-            attrGroup = attrGroup.getResolvedAttributeGroupDefinition();
-            if (attrGroup.getContents().size() == 0)
-            {
-              concreteComponentList.add(new SpaceFiller("attribute")); //$NON-NLS-1$
-            }
-            visitAttributeGroupDefinition(attrGroup);
-          }
-        }
-      }
-    }
-
-    public void visitModelGroup(XSDModelGroup modelGroup)
-    {
-      int numOfChildren = modelGroup.getContents().size();
-      if (numOfChildren == 0)
-      {
-        concreteComponentList.add(new SpaceFiller("element")); //$NON-NLS-1$
-      }
-      super.visitModelGroup(modelGroup);
-    }
-  }
-
-  public List getModelGroups()
-  {
-    List groups = new ArrayList();
-    groups.addAll(XSDChildUtility.getModelChildren(getXSDComplexTypeDefinition()));
-    return groups;
-  }
-
-  public List getAttributeGroupContent()
-  {
-    EList attrContent = getXSDComplexTypeDefinition().getAttributeContents();
-    List attrUses = new ArrayList();
-    List list = new ArrayList();
-
-    for (Iterator it = attrContent.iterator(); it.hasNext();)
-    {
-      XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) it.next();
-
-      if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-      {
-        XSDAttributeGroupDefinition attributeGroupDefinition = (XSDAttributeGroupDefinition) attrGroupContent;
-        list.add(XSDAdapterFactory.getInstance().adapt(attributeGroupDefinition));
-        getAttributeUses(attributeGroupDefinition, attrUses);
-      }
-      else
-      {
-        attrUses.add(attrGroupContent);
-        list.add(new TargetConnectionSpaceFiller(this));
-      }
-    }
-    return list;
-  }
-
-  public boolean isComplexType()
-  {
-    return true;
-  }
-
-  public void notifyChanged(Notification msg)
-  {
-    clearFields();
-    super.notifyChanged(msg);
-  }
-
-  public Command getUpdateNameCommand(String newName)
-  {
-    return new UpdateNameCommand(Messages._UI_ACTION_UPDATE_NAME, getXSDComplexTypeDefinition(), newName);
-  }
-
-  public Command getAddNewFieldCommand(String fieldKind)
-  {
-    return new AddXSDElementCommand(Messages._UI_ACTION_ADD_FIELD, getXSDComplexTypeDefinition());
-  }
-
-  public Command getDeleteCommand()
-  {
-    return new DeleteCommand("", getXSDComplexTypeDefinition()); //$NON-NLS-1$
-  }
-
-  protected class AddNewFieldCommand extends Command
-  {
-    protected String defaultName;
-    protected String fieldKind;
-
-    AddNewFieldCommand(String defaultName, String fieldKind)
-    {
-      this.defaultName = defaultName;
-      this.fieldKind = fieldKind;
-    }
-  }
-
-  public String[] getActions(Object object)
-  {
-    List list = new ArrayList();
-    IWorkbench workbench = PlatformUI.getWorkbench();
-    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-    Object schema = editorPart.getAdapter(XSDSchema.class);
-    
-    list.add(AddXSDElementAction.ID);
-    list.add(AddXSDElementAction.REF_ID);
-    list.add(AddXSDAttributeDeclarationAction.ID);
-    list.add(AddXSDAttributeDeclarationAction.REF_ID);
-    list.add(AddXSDAttributeGroupDefinitionAction.REF_ID);
-    list.add(AddXSDAnyAttributeAction.ID);
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(AddXSDModelGroupAction.SEQUENCE_ID);
-    list.add(AddXSDModelGroupAction.CHOICE_ID);
-
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(DeleteAction.ID);
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    if (getXSDComplexTypeDefinition().getSchema() == schema)
-    {
-      if (getXSDComplexTypeDefinition().getContainer() == schema)
-      {
-        list.add(SetInputToGraphView.ID);
-      }
-    }
-    else
-    {
-      list.add(OpenInNewEditor.ID);
-    }
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(ShowPropertiesViewAction.ID);
-    String[] result = new String[list.size()];
-    list.toArray(result);
-    return result;
-  }
-
-  public void propertyChanged(Object object, String property)
-  {
-    clearFields();
-    notifyListeners(this, null);
-  }
-
-  class BogusAction extends Action
-  {
-    BogusAction(String name)
-    {
-      super(name);
-    }
-
-    public void run()
-    {
-      // TODO Auto-generated method stub
-      super.run();
-    }
-  }
-
-  public ITreeElement[] getChildren()
-  {
-    XSDComplexTypeDefinition xsdComplexTypeDefinition = getXSDComplexTypeDefinition();
-    List list = new ArrayList();
-    // Add attributes
-    for (Iterator i = xsdComplexTypeDefinition.getAttributeContents().iterator(); i.hasNext();)
-    {
-      Object obj = i.next();
-      if (obj instanceof XSDAttributeUse)
-      {
-        list.add(obj);
-      }
-      else if (obj instanceof XSDAttributeGroupDefinition)
-      {
-        getAttributeUses((XSDAttributeGroupDefinition) obj, list);
-      }
-    }
-    // get immediate XSD Model Group of this complex type
-    if (xsdComplexTypeDefinition.getContent() != null)
-    {
-      XSDComplexTypeContent xsdComplexTypeContent = xsdComplexTypeDefinition.getContent();
-      if (xsdComplexTypeContent instanceof XSDParticle)
-      {
-        XSDParticleContent particleContent = ((XSDParticle) xsdComplexTypeContent).getContent();
-        if (particleContent instanceof XSDModelGroup)
-        {
-          list.add(particleContent);
-        }
-      }
-    }
-    // get inherited XSD Model Group of this complex type
-    boolean showInheritedContent = XSDEditorPlugin.getPlugin().getShowInheritedContent();
-    if (showInheritedContent)
-    {
-      XSDTypeDefinition typeDef = xsdComplexTypeDefinition.getBaseTypeDefinition();
-      if (typeDef instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition baseCT = (XSDComplexTypeDefinition) typeDef;
-        if (baseCT.getTargetNamespace() != null && !baseCT.getTargetNamespace().equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-        {
-          if (baseCT.getContent() != null)
-          {
-            XSDComplexTypeContent xsdComplexTypeContent = baseCT.getContent();
-            if (xsdComplexTypeContent instanceof XSDParticle)
-            {
-              XSDParticleContent particleContent = ((XSDParticle) xsdComplexTypeContent).getContent();
-              if (particleContent instanceof XSDModelGroup)
-              {
-                list.add(particleContent);
-              }
-            }
-          }
-        }
-      }
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return (ITreeElement[]) adapterList.toArray(new ITreeElement[0]);
-  }
-
-  public Image getImage()
-  {
-    if (isReadOnly())
-    {
-      return XSDEditorPlugin.getPlugin().getIcon("obj16/XSDComplexTypedis.gif"); //$NON-NLS-1$
-    }
-    return XSDEditorPlugin.getPlugin().getIcon("obj16/XSDComplexType.gif"); //$NON-NLS-1$
-  }
-
-  public String getText()
-  {
-    XSDComplexTypeDefinition xsdComplexTypeDefinition = (XSDComplexTypeDefinition) target;
-
-    StringBuffer result = new StringBuffer();
-
-    result.append(xsdComplexTypeDefinition.getName() == null ? "local type" : xsdComplexTypeDefinition.getName()); //$NON-NLS-1$
-
-    XSDTypeDefinition baseTypeDefinition = xsdComplexTypeDefinition.getBaseTypeDefinition();
-    if (baseTypeDefinition != null && baseTypeDefinition != xsdComplexTypeDefinition.getContent() && baseTypeDefinition.getName() != null && !XSDConstants.isURType(baseTypeDefinition))
-    {
-      result.append(" : "); //$NON-NLS-1$
-      result.append(baseTypeDefinition.getQName(xsdComplexTypeDefinition));
-    }
-
-    return result.toString();
-  }
-
-  public void getAttributeUses(XSDAttributeGroupDefinition attributeGroupDefinition, List list)
-  {
-    Iterator i = attributeGroupDefinition.getResolvedAttributeGroupDefinition().getContents().iterator();
-
-    while (i.hasNext())
-    {
-      XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) i.next();
-
-      if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-      {
-        getAttributeUses((XSDAttributeGroupDefinition) attrGroupContent, list);
-      }
-      else
-      {
-        list.add(XSDAdapterFactory.getInstance().adapt(attrGroupContent));
-      }
-    }
-  }
-
-  public IModel getModel()
-  {
-    Adapter adapter = XSDAdapterFactory.getInstance().adapt(getXSDComplexTypeDefinition().getSchema());
-    return (IModel)adapter;
-  }
-
-  public boolean isFocusAllowed()
-  {
-    return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDElementDeclarationAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDElementDeclarationAdapter.java
deleted file mode 100644
index b89e77b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDElementDeclarationAdapter.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.DeleteAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.IAnnotationProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicityAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.SetTypeAction;
-import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDElementDeclarationAdapter extends XSDParticleAdapter implements IField, IActionProvider, IAnnotationProvider, IGraphElement
-{
-  protected XSDElementDeclaration getXSDElementDeclaration()
-  {
-    return (XSDElementDeclaration) target;
-  }
-
-  public String getName()
-  {
-    String name = getXSDElementDeclaration().getResolvedElementDeclaration().getName();
-    return (name == null) ? "" : name; //$NON-NLS-1$
-  }
-
-  public String getTypeName()
-  {
-    IType type = getType();
-    if (type != null)
-    {  
-      return type.getName();
-    }
-    return null;
-  }
-
-  public String getTypeNameQualifier()
-  {
-    return getXSDElementDeclaration().getTypeDefinition().getTargetNamespace();
-  }
-
-  public IType getType()
-  {
-    XSDTypeDefinition td = getXSDElementDeclaration().getResolvedElementDeclaration().getTypeDefinition();
-    //if (td != null &&
-    //    td.getTargetNamespace() != null && td.getTargetNamespace().equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001)) return null;
-    return (td != null) ? (IType) XSDAdapterFactory.getInstance().adapt(td) : null;
-  }
- 
-  public Image getImage()
-  {
-    XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) target;
-    
-    if (!xsdElementDeclaration.isElementDeclarationReference())
-    {
-      if (isReadOnly())
-      {
-        return XSDEditorPlugin.getPlugin().getIcon("obj16/XSDElementdis.gif");
-      }
-      return XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"); //$NON-NLS-1$
-    }
-    else
-    {
-      if (isReadOnly())
-      {
-        return XSDEditorPlugin.getPlugin().getIcon("obj16/XSDElementRefdis.gif");
-      }        
-      return XSDEditorPlugin.getXSDImage("icons/XSDElementRef.gif"); //$NON-NLS-1$
-    }
-  }
-
-  public String getText()
-  {
-    XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) target;
-    XSDElementDeclaration resolvedElementDeclaration = xsdElementDeclaration.getResolvedElementDeclaration();
-    //String name = xsdElementDeclaration != resolvedElementDeclaration ? xsdElementDeclaration.getQName() : xsdElementDeclaration.getName();
-    String name = resolvedElementDeclaration.getName();
-
-    StringBuffer result = new StringBuffer();
-    if (name == null)
-    {
-      result.append(Messages._UI_LABEL_ABSENT);
-    }
-    else
-    {
-      result.append(name);
-    }
-
-    if (!xsdElementDeclaration.isGlobal())
-    {
-      Element element = xsdElementDeclaration.getElement();
-      boolean hasMinOccurs = element.hasAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-      boolean hasMaxOccurs = element.hasAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-
-      if (hasMinOccurs || hasMaxOccurs)
-      {
-        result.append(" ["); //$NON-NLS-1$
-        if (hasMinOccurs)
-        {
-          int min = ((XSDParticle) xsdElementDeclaration.getContainer()).getMinOccurs();
-          if (min == XSDParticle.UNBOUNDED)
-          {
-            result.append("*"); //$NON-NLS-1$
-          }
-          else
-          {
-            result.append(String.valueOf(min));
-          }
-        }
-        else
-        // print default
-        {
-          int min = ((XSDParticle) xsdElementDeclaration.getContainer()).getMinOccurs();
-          result.append(String.valueOf(min));
-        }
-        if (hasMaxOccurs)
-        {
-          int max = ((XSDParticle) xsdElementDeclaration.getContainer()).getMaxOccurs();
-          result.append(".."); //$NON-NLS-1$
-          if (max == XSDParticle.UNBOUNDED)
-          {
-            result.append("*"); //$NON-NLS-1$
-          }
-          else
-          {
-            result.append(String.valueOf(max));
-          }
-        }
-        else
-        // print default
-        {
-          result.append(".."); //$NON-NLS-1$
-          int max = ((XSDParticle) xsdElementDeclaration.getContainer()).getMaxOccurs();
-          result.append(String.valueOf(max));
-
-        }
-        result.append("]"); //$NON-NLS-1$
-      }
-    }
-
-    if (resolvedElementDeclaration.getAnonymousTypeDefinition() == null && resolvedElementDeclaration.getTypeDefinition() != null)
-    {
-      result.append(" : "); //$NON-NLS-1$
-      // result.append(resolvedElementDeclaration.getTypeDefinition().getQName(xsdElementDeclaration));
-      result.append(resolvedElementDeclaration.getTypeDefinition().getName());
-    }
-
-    return result.toString();
-
-  }
-
-  public ITreeElement[] getChildren()
-  {
-    XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) target;
-    List list = new ArrayList();
-    XSDTypeDefinition type = null;
-    if (xsdElementDeclaration.isElementDeclarationReference())
-    {
-      type = xsdElementDeclaration.getResolvedElementDeclaration().getTypeDefinition();
-    }
-    else
-    {
-      type = xsdElementDeclaration.getAnonymousTypeDefinition();
-      if (type == null)
-      {
-        type = xsdElementDeclaration.getTypeDefinition();
-      }
-    }
-
-    if (type instanceof XSDComplexTypeDefinition && type.getTargetNamespace() != null && !type.getTargetNamespace().equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-    {
-      XSDComplexTypeDefinition ctType = (XSDComplexTypeDefinition) type;
-      if (ctType != null)
-      {
-        if (xsdElementDeclaration.isGlobal())
-          list.add(ctType);
-      }
-    }
-
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return (ITreeElement[]) adapterList.toArray(new ITreeElement[0]);
-
-  }
-  
-  public String getKind()
-  {
-    return "element"; //$NON-NLS-1$
-  }
-  
-  public boolean isGlobal()
-  {
-    return getXSDElementDeclaration().eContainer() instanceof XSDSchema;
-  }
-  
-  public boolean isReference()
-  {
-	  return ((XSDElementDeclaration) target).isElementDeclarationReference();
-  }
-
-  public Command getUpdateMaxOccursCommand(int maxOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateMinOccursCommand(int minOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateNameCommand(String name)
-  {
-    return new UpdateNameCommand(Messages._UI_ACTION_UPDATE_NAME, getXSDElementDeclaration().getResolvedElementDeclaration(), name);
-  }
-
-  public Command getUpdateTypeNameCommand(String typeName, String quailifier)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getDeleteCommand()
-  {
-    // TODO Auto-generated method stub
-    return new DeleteCommand("", getXSDElementDeclaration()); //$NON-NLS-1$
-  }
-  
-  public String[] getActions(Object object)
-  {
-    List list = new ArrayList();
-    if (!isGlobal())
-      list.add(AddXSDElementAction.ID);
-
-    list.add(BaseSelectionAction.SUBMENU_START_ID + Messages._UI_ACTION_SET_TYPE);
-    list.add(SetTypeAction.SET_NEW_TYPE_ID);
-    list.add(SetTypeAction.SELECT_EXISTING_TYPE_ID);
-    list.add(BaseSelectionAction.SUBMENU_END_ID);
-
-    list.add(BaseSelectionAction.SUBMENU_START_ID + Messages._UI_ACTION_SET_MULTIPLICITY);
-    list.add(SetMultiplicityAction.REQUIRED_ID);
-    list.add(SetMultiplicityAction.ZERO_OR_ONE_ID);
-    list.add(SetMultiplicityAction.ZERO_OR_MORE_ID);
-    list.add(SetMultiplicityAction.ONE_OR_MORE_ID);    
-    list.add(BaseSelectionAction.SUBMENU_END_ID);
-
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(DeleteAction.ID);
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(ShowPropertiesViewAction.ID);
-    return (String [])list.toArray(new String[0]);
-  }
-  
-  public IModel getModel()
-  {
-    Adapter adapter = XSDAdapterFactory.getInstance().adapt(getXSDElementDeclaration().getSchema());
-    return (IModel)adapter;
-  }
-
-  public boolean isFocusAllowed()
-  {
-    return isGlobal();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDEmptyFieldAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDEmptyFieldAdapter.java
deleted file mode 100644
index 7e9b8fc..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDEmptyFieldAdapter.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-
-/**
- * @deprecated not used
- */
-public class XSDEmptyFieldAdapter extends XSDBaseAdapter implements IField
-{
-  String kind;
-  public XSDEmptyFieldAdapter()
-  {
-    super();
-  }
-
-  public String getKind()
-  {
-    return kind;
-  }
-  
-  public void setKind(String kind)
-  {
-    this.kind = kind;
-  }
-
-  public String getName()
-  {
-    return null;
-  }
-
-  public String getTypeName()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public String getTypeNameQualifier()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public IType getType()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public int getMinOccurs()
-  {
-    // TODO Auto-generated method stub
-    return 0;
-  }
-
-  public int getMaxOccurs()
-  {
-    // TODO Auto-generated method stub
-    return 0;
-  }
-  
-  public boolean isGlobal()
-  {
-    return false;
-  }
-
-  public Command getUpdateMinOccursCommand(int minOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateMaxOccursCommand(int maxOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateTypeNameCommand(String typeName, String quailifier)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateNameCommand(String name)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getDeleteCommand()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public IModel getModel()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public boolean isReference()
-  {
-    // TODO Auto-generated method stub
-    return false;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDModelGroupAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDModelGroupAdapter.java
deleted file mode 100644
index 09102c9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDModelGroupAdapter.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAnyElementAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDModelGroupAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDModelGroupDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicityAction;
-import org.eclipse.wst.xsd.ui.internal.design.figures.ModelGroupFigure;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDModelGroupAdapter extends XSDParticleAdapter implements IActionProvider
-{
-  XSDModelGroup getXSDModelGroup()
-  {
-    return (XSDModelGroup) target;
-  }
-
-  public XSDModelGroupAdapter()
-  {
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement#getImage()
-   */
-  public Image getImage()
-  {
-    XSDModelGroup xsdModelGroup = getXSDModelGroup();
-    if (XSDCompositor.CHOICE_LITERAL == xsdModelGroup.getCompositor())
-    {
-      return ModelGroupFigure.CHOICE_ICON_IMAGE;
-    }
-    else if (XSDCompositor.ALL_LITERAL == xsdModelGroup.getCompositor())
-    {
-      return ModelGroupFigure.ALL_ICON_IMAGE;
-    }
-    else
-    {
-      return ModelGroupFigure.SEQUENCE_ICON_IMAGE;
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement#getText()
-   */
-  public String getText()
-  {
-    XSDModelGroup xsdModelGroup = getXSDModelGroup();
-
-    StringBuffer result = new StringBuffer();
-    String name = xsdModelGroup.getCompositor().getName();
-    if (name != null)
-    {
-      result.append(name);
-    }
-
-    Element element = xsdModelGroup.getElement();
-
-    if (element != null)
-    {
-      boolean hasMinOccurs = element.hasAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-      boolean hasMaxOccurs = element.hasAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-
-      if (hasMinOccurs || hasMaxOccurs)
-      {
-        result.append(" ["); //$NON-NLS-1$
-        if (hasMinOccurs)
-        {
-          int min = ((XSDParticle) xsdModelGroup.getContainer()).getMinOccurs();
-          if (min == XSDParticle.UNBOUNDED)
-          {
-            result.append("*"); //$NON-NLS-1$
-          }
-          else
-          {
-            result.append(String.valueOf(min));
-          }
-        }
-        else
-        // print default
-        {
-          int min = ((XSDParticle) xsdModelGroup.getContainer()).getMinOccurs();
-          result.append(String.valueOf(min));
-        }
-        if (hasMaxOccurs)
-        {
-          int max = ((XSDParticle) xsdModelGroup.getContainer()).getMaxOccurs();
-          result.append(".."); //$NON-NLS-1$
-          if (max == XSDParticle.UNBOUNDED)
-          {
-            result.append("*"); //$NON-NLS-1$
-          }
-          else
-          {
-            result.append(String.valueOf(max));
-          }
-        }
-        else
-        // print default
-        {
-          result.append(".."); //$NON-NLS-1$
-          int max = ((XSDParticle) xsdModelGroup.getContainer()).getMaxOccurs();
-          result.append(String.valueOf(max));
-        }
-        result.append("]"); //$NON-NLS-1$
-      }
-    }
-    return result.toString();
-  }
-
-  public ITreeElement[] getChildren()
-  {
-    XSDModelGroup xsdModelGroup = getXSDModelGroup();
-    List list = new ArrayList();
-    for (Iterator i = xsdModelGroup.getContents().iterator(); i.hasNext(); )
-    {
-       Object object = i.next();
-       XSDParticleContent particle = ((XSDParticle)object).getContent();
-       if (particle instanceof XSDElementDeclaration)
-       {
-         list.add(particle);
-       }
-       else if (particle instanceof XSDWildcard)
-       {
-         list.add(particle);
-       }
-       else if (particle instanceof XSDModelGroup)
-       {
-         list.add(particle);
-       }
-       else if (particle instanceof XSDModelGroupDefinition)
-       { 
-    	 //list.add(((XSDModelGroupDefinition)particle).getResolvedModelGroupDefinition());
-    	 list.add(particle);
-       }
-    }
-
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return (ITreeElement []) adapterList.toArray(new ITreeElement[0]);
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDModelGroup element = (XSDModelGroup) object;
-    return element.getContainer();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider#getActions(java.lang.Object)
-   */
-  public String[] getActions(Object object)
-  {
-     Collection actionIDs = new ArrayList();
-     actionIDs.add(AddXSDElementAction.ID);
-     actionIDs.add(AddXSDElementAction.REF_ID);
-     actionIDs.add(AddXSDAnyElementAction.ID);
-     // Add Element Ref
-     actionIDs.add(BaseSelectionAction.SEPARATOR_ID);
-     actionIDs.add(AddXSDModelGroupAction.SEQUENCE_ID);
-     actionIDs.add(AddXSDModelGroupAction.CHOICE_ID);
-     actionIDs.add(AddXSDModelGroupDefinitionAction.MODELGROUPDEFINITIONREF_ID);
-//     actionIDs.add(AddFieldAction.ID);
-     actionIDs.add(BaseSelectionAction.SEPARATOR_ID);
-     // Add Any
-
-     actionIDs.add(BaseSelectionAction.SUBMENU_START_ID + Messages._UI_ACTION_SET_MULTIPLICITY);
-     actionIDs.add(SetMultiplicityAction.REQUIRED_ID);
-     actionIDs.add(SetMultiplicityAction.ZERO_OR_ONE_ID);
-     actionIDs.add(SetMultiplicityAction.ZERO_OR_MORE_ID);
-     actionIDs.add(SetMultiplicityAction.ONE_OR_MORE_ID);    
-     actionIDs.add(BaseSelectionAction.SUBMENU_END_ID);
-    
-     if (!(getParent(target) instanceof XSDModelGroupDefinition))
-     {
-       actionIDs.add(BaseSelectionAction.SEPARATOR_ID);
-       actionIDs.add(DeleteXSDConcreteComponentAction.DELETE_XSD_COMPONENT_ID);
-     }    
-     actionIDs.add(BaseSelectionAction.SEPARATOR_ID);
-     actionIDs.add(ShowPropertiesViewAction.ID);
-        
-     return (String [])actionIDs.toArray(new String[0]);
-  }
-
-  public int getMaxOccurs()
-  {
-    return getMaxOccurs(getXSDModelGroup());
-  }
-
-  public int getMinOccurs()
-  {
-    return getMinOccurs(getXSDModelGroup());
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDModelGroupDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDModelGroupDefinitionAdapter.java
deleted file mode 100644
index 89f72b9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDModelGroupDefinitionAdapter.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDModelGroupAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicityAction;
-import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-
-public class XSDModelGroupDefinitionAdapter extends XSDParticleAdapter implements IStructure, IActionProvider, IGraphElement, IADTObjectListener
-{
-  public static final Image MODEL_GROUP_ICON = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDGroup.gif"); //$NON-NLS-1$
-  public static final Image MODEL_GROUP_DISABLED_ICON = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDGroupdis.gif"); //$NON-NLS-1$
-  public static final Image MODEL_GROUP_REF_ICON = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDGroupRef.gif"); //$NON-NLS-1$
-  public static final Image MODEL_GROUP_REF_DISABLED_ICON = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDGroupRefdis.gif"); //$NON-NLS-1$
-
-  protected List fields = null;
-  protected List otherThingsToListenTo = null;
-  
-  public XSDModelGroupDefinitionAdapter()
-  {
-    super();
-  }
-
-  public XSDModelGroupDefinition getXSDModelGroupDefinition()
-  {
-    return (XSDModelGroupDefinition) target;
-  }
-
-  public Image getImage()
-  {
-    XSDModelGroupDefinition xsdModelGroupDefinition = (XSDModelGroupDefinition) target;
-
-    if (xsdModelGroupDefinition.isModelGroupDefinitionReference())
-    {
-      if (isReadOnly())
-      {
-        return MODEL_GROUP_REF_DISABLED_ICON;
-      }
-      return MODEL_GROUP_REF_ICON;
-    }
-    else
-    {
-      if (isReadOnly())
-      {
-        return MODEL_GROUP_DISABLED_ICON;
-      }
-      return MODEL_GROUP_ICON;
-    }
-  }
-
-  public String getText()
-  {
-    XSDModelGroupDefinition xsdModelGroupDefinition = (XSDModelGroupDefinition) target;
-    String result = xsdModelGroupDefinition.isModelGroupDefinitionReference() ? xsdModelGroupDefinition.getQName() : xsdModelGroupDefinition.getName();
-    return result == null ? Messages._UI_LABEL_ABSENT : result;
-  }
-
-  public ITreeElement[] getChildren()
-  {
-    List list = new ArrayList();
-    XSDModelGroup xsdModelGroup = ((XSDModelGroupDefinition) target).getResolvedModelGroupDefinition().getModelGroup();
-    if (xsdModelGroup != null)
-      list.add(xsdModelGroup);
-
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return (ITreeElement[]) adapterList.toArray(new ITreeElement[0]);
-
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider#getActions(java.lang.Object)
-   */
-  public String[] getActions(Object object)
-  {
-    Collection list = new ArrayList();
-
-    if (!getXSDModelGroupDefinition().isModelGroupDefinitionReference())
-    {
-      list.add(AddXSDElementAction.ID);
-      list.add(AddXSDElementAction.REF_ID);
-      list.add(BaseSelectionAction.SEPARATOR_ID);
-      list.add(AddXSDModelGroupAction.SEQUENCE_ID);
-      list.add(AddXSDModelGroupAction.CHOICE_ID);
-    }
-    
-    list.add(DeleteXSDConcreteComponentAction.DELETE_XSD_COMPONENT_ID);
-    
-    if (getXSDModelGroupDefinition().isModelGroupDefinitionReference())
-    {
-      list.add(BaseSelectionAction.SEPARATOR_ID);
-      list.add(BaseSelectionAction.SUBMENU_START_ID + Messages._UI_ACTION_SET_MULTIPLICITY);
-      list.add(SetMultiplicityAction.REQUIRED_ID);
-      list.add(SetMultiplicityAction.ZERO_OR_ONE_ID);
-      list.add(SetMultiplicityAction.ZERO_OR_MORE_ID);
-      list.add(SetMultiplicityAction.ONE_OR_MORE_ID);    
-      list.add(BaseSelectionAction.SUBMENU_END_ID); 
-    }
-    
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(ShowPropertiesViewAction.ID);
-
-    return (String [])list.toArray(new String[0]);
-  }
-
-  public Command getAddNewFieldCommand(String fieldKind)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getDeleteCommand()
-  {
-    return new DeleteCommand("", getXSDModelGroupDefinition()); //$NON-NLS-1$
-  }
-
-  // TODO Common this up with XSDComplexType's.  See also getFields 
-  protected void clearFields()
-  {
-    if (otherThingsToListenTo != null)
-    {
-      for (Iterator i = otherThingsToListenTo.iterator(); i.hasNext();)
-      {
-        Adapter adapter = (Adapter) i.next();
-        if (adapter instanceof IADTObject)
-        {
-          IADTObject adtObject = (IADTObject) adapter;
-          adtObject.unregisterListener(this);
-        }
-      }
-    }
-    fields = null;
-    otherThingsToListenTo = null;
-  }
-
-  public List getFields()
-  {
-    List fields = new ArrayList();
-    otherThingsToListenTo = new ArrayList();
-    XSDVisitorForFields visitor = new XSDVisitorForFields();
-    visitor.visitModelGroupDefinition(getXSDModelGroupDefinition());
-    populateAdapterList(visitor.concreteComponentList, fields);
-    
-    // TODO (cs) common a base class for a structure thingee
-    //
-    populateAdapterList(visitor.thingsWeNeedToListenTo, otherThingsToListenTo);
-    for (Iterator i = otherThingsToListenTo.iterator(); i.hasNext();)
-    {
-      Adapter adapter = (Adapter) i.next();
-      if (adapter instanceof IADTObject)
-      {
-        IADTObject adtObject = (IADTObject) adapter;
-        adtObject.registerListener(this);
-      }
-    }
-    return fields;
-  }
-
-  public IModel getModel()
-  {
-    Adapter adapter = XSDAdapterFactory.getInstance().adapt(getXSDModelGroupDefinition().getSchema());
-    return (IModel)adapter;
-  }
-  public String getName()
-  {
-    return getText();
-  }
-
-  public boolean isFocusAllowed()
-  {
-    XSDModelGroupDefinition xsdModelGroupDefinition = (XSDModelGroupDefinition) target;
-    if (xsdModelGroupDefinition.isModelGroupDefinitionReference())
-    { 
-      return false;
-    }
-    return true;
-  }
-
-  public void propertyChanged(Object object, String property)
-  {
-    clearFields();
-    notifyListeners(this, null);
-  }
-  
-  public int getMaxOccurs()
-  {
-    return getMaxOccurs(getXSDModelGroupDefinition());
-  }
-
-  public int getMinOccurs()
-  {
-    return getMinOccurs(getXSDModelGroupDefinition());
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDParticleAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDParticleAdapter.java
deleted file mode 100644
index a26649c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDParticleAdapter.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import org.eclipse.wst.xsd.ui.internal.adt.design.IAnnotationProvider;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDParticle;
-
-public class XSDParticleAdapter extends XSDBaseAdapter implements IAnnotationProvider
-{
-  public XSDParticleAdapter()
-  {
-    super();
-  }
-
-  public int getMaxOccurs()
-  {
-    return getMaxOccurs((XSDConcreteComponent) target);
-  }
-
-  public int getMinOccurs()
-  {
-    return getMinOccurs((XSDConcreteComponent) target);
-  }
-
-  public static int getMinOccurs(XSDConcreteComponent component)
-  {
-    int minOccur = -2;
-    if (component != null)
-    {
-      Object o = component.getContainer();
-      if (o instanceof XSDParticle)
-      {
-        if (((XSDParticle) o).isSetMinOccurs())
-        {
-          try
-          {
-            minOccur = ((XSDParticle) o).getMinOccurs();
-          }
-          catch (Exception e)
-          {
-          }
-        }
-      }
-    }
-    return minOccur;
-  }
-
-  public static int getMaxOccurs(XSDConcreteComponent component)
-  {
-    int maxOccur = -2;
-    if (component != null)
-    {
-      Object o = component.getContainer();
-      if (o instanceof XSDParticle)
-      {
-        if (((XSDParticle) o).isSetMaxOccurs())
-        {
-          try
-          {
-            maxOccur = ((XSDParticle) o).getMaxOccurs();
-          }
-          catch (Exception e)
-          {
-          }
-        }
-      }
-    }
-    return maxOccur;
-  }
-
-  public String getNameAnnotationString()
-  {
-    return buildAnnotationString(true);
-  }
-
-  public String getNameAnnotationToolTipString()
-  {
-    return buildAnnotationString(false);
-  }
-
-  public String getTypeAnnotationString()
-  {
-    return null;
-  }
-
-  public String getTypeAnnotationToolTipString()
-  {
-    return null;
-  }
-
-  protected String buildAnnotationString(boolean isForLabel)
-  {
-    String occurenceDescription = ""; //$NON-NLS-1$
-    String toolTipDescription = ""; //$NON-NLS-1$
-    // TODO: set int values as defined constants
-    // -2 means the user didn't specify (so the default is 1)
-    int minOccurs = getMinOccurs();
-    int maxOccurs = getMaxOccurs();
-
-    // This is for the attribute field case, which has no
-    // occurrence attributes
-    if (minOccurs == -3 && maxOccurs == -3)
-    {
-      occurenceDescription = ""; //$NON-NLS-1$
-    }
-    else if (minOccurs == 0 && (maxOccurs == -2 || maxOccurs == 1))
-    {
-      occurenceDescription = "[0..1]"; //$NON-NLS-1$
-      toolTipDescription = Messages._UI_LABEL_OPTIONAL;
-    }
-    else if (minOccurs == 0 && maxOccurs == -1)
-    {
-      occurenceDescription = "[0..*]"; //$NON-NLS-1$
-      toolTipDescription = Messages._UI_LABEL_ZERO_OR_MORE;
-    }
-    else if ((minOccurs == 1 && maxOccurs == -1) || (minOccurs == -2 && maxOccurs == -1))
-    {
-      occurenceDescription = "[1..*]"; //$NON-NLS-1$
-      toolTipDescription = Messages._UI_LABEL_ONE_OR_MORE;
-    }
-    else if ((minOccurs == 1 && maxOccurs == 1) || (minOccurs == -2 && maxOccurs == 1) || (minOccurs == 1 && maxOccurs == -2))
-    {
-      occurenceDescription = "[1..1]"; //$NON-NLS-1$
-      toolTipDescription = Messages._UI_LABEL_REQUIRED;
-    }
-    else if (minOccurs == -2 && maxOccurs == -2)
-    {
-      occurenceDescription = ""; //$NON-NLS-1$
-      // none specified, so don't have any toolTip description
-    }
-    else
-    {
-      if (maxOccurs == -2)
-        maxOccurs = 1;
-      String maxSymbol = maxOccurs == -1 ? "*" : "" + maxOccurs; //$NON-NLS-1$ //$NON-NLS-2$
-      String minSymbol = minOccurs == -2 ? "1" : "" + minOccurs; //$NON-NLS-1$ //$NON-NLS-2$
-      occurenceDescription = "[" + minSymbol + ".." + maxSymbol + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      toolTipDescription = Messages._UI_LABEL_ARRAY;
-    }
-
-    if (isForLabel)
-    {
-      return occurenceDescription;
-    }
-    else
-    {
-      return toolTipDescription;
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSchemaAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSchemaAdapter.java
deleted file mode 100644
index 5d316de..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSchemaAdapter.java
+++ /dev/null
@@ -1,503 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.impl.NotificationImpl;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDComplexTypeDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDPackage;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDSchemaAdapter extends XSDBaseAdapter implements IActionProvider, IModel, IADTObjectListener
-{
-  protected List types = null;
-  protected List children, allChildren;
-
-  protected CategoryAdapter fDirectivesCategory;
-  protected CategoryAdapter fElementsCategory;
-  protected CategoryAdapter fAttributesCategory;
-  protected CategoryAdapter fTypesCategory;
-  protected CategoryAdapter fGroupsCategory;
-
-  /**
-   * Create all the category adapters
-   * 
-   * @param xsdSchema
-   */
-  protected void createCategoryAdapters(XSDSchema xsdSchema)
-  {
-    List directivesList = getDirectives(xsdSchema);
-    List elementsList = getGlobalElements(xsdSchema);
-    List attributesList = getAttributeList(xsdSchema);
-    List groups = getGroups(xsdSchema);
-    List types = getComplexTypes(xsdSchema);
-    types.addAll(getSimpleTypes(xsdSchema));
-
-    fDirectivesCategory = new CategoryAdapter(Messages._UI_GRAPH_DIRECTIVES, XSDEditorPlugin.getDefault().getIconImage("obj16/directivesheader"), directivesList, xsdSchema, CategoryAdapter.DIRECTIVES); //$NON-NLS-1$
-    fDirectivesCategory.setAllChildren(directivesList);
-    registerListener(fDirectivesCategory);
-
-    fElementsCategory = new CategoryAdapter(Messages._UI_GRAPH_ELEMENTS, XSDEditorPlugin.getDefault().getIconImage("obj16/elementsheader"), elementsList, xsdSchema, CategoryAdapter.ELEMENTS);  //$NON-NLS-1$
-    fElementsCategory.setAllChildren(getGlobalElements(xsdSchema, true));
-    registerListener(fElementsCategory);
-
-    fAttributesCategory = new CategoryAdapter(Messages._UI_GRAPH_ATTRIBUTES, XSDEditorPlugin.getDefault().getIconImage("obj16/attributesheader"), attributesList, xsdSchema, CategoryAdapter.ATTRIBUTES);   //$NON-NLS-1$
-    fAttributesCategory.setAllChildren(attributesList);
-    registerListener(fAttributesCategory);
-
-    fTypesCategory = new CategoryAdapter(Messages._UI_GRAPH_TYPES, XSDEditorPlugin.getDefault().getIconImage("obj16/typesheader"), types, xsdSchema, CategoryAdapter.TYPES);  //$NON-NLS-1$
-    fTypesCategory.setAllChildren(getTypes(xsdSchema, true));
-    registerListener(fTypesCategory);
-
-    fGroupsCategory = new CategoryAdapter(Messages._UI_GRAPH_GROUPS, XSDEditorPlugin.getDefault().getIconImage("obj16/groupsheader"), groups, xsdSchema, CategoryAdapter.GROUPS); //$NON-NLS-1$
-    fGroupsCategory.setAllChildren(groups);
-    registerListener(fGroupsCategory);
-  }
-
-  public List getTypes()
-  {
-    if (types == null)
-    {
-      types = new ArrayList();
-      XSDSchema schema = (XSDSchema) target;
-      List concreteComponentList = new ArrayList();
-      for (Iterator i = schema.getContents().iterator(); i.hasNext();)
-      {
-        XSDConcreteComponent component = (XSDConcreteComponent) i.next();
-        if (component instanceof XSDTypeDefinition)
-        {
-          concreteComponentList.add(component);
-        }
-      }
-      populateAdapterList(concreteComponentList, types);
-    }
-    return types;
-  }
-  
-  protected boolean isSameNamespace(String ns1, String ns2)
-  {
-    if (ns1 == null) ns1 = "";
-    if (ns2 == null) ns2 = "";
-    
-    if (ns1.equals(ns2))
-    {
-      return true;
-    }
-    return false;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement#getChildren()
-   */
-  public ITreeElement[] getChildren()
-  {
-    XSDSchema xsdSchema = (XSDSchema) getTarget();
-
-    children = new ArrayList();
-
-    // just set categoryadapters' children if category adapters are
-    // already created
-    if (fDirectivesCategory != null)
-    {
-      List directivesList = getDirectives(xsdSchema);
-      List elementsList = getGlobalElements(xsdSchema);
-      List attributesList = getAttributeList(xsdSchema);
-      List groups = getGroups(xsdSchema);
-      List types = getComplexTypes(xsdSchema);
-      types.addAll(getSimpleTypes(xsdSchema));
-
-      fDirectivesCategory.setChildren(directivesList);
-      fDirectivesCategory.setAllChildren(directivesList);
-      fElementsCategory.setChildren(elementsList);
-      fElementsCategory.setAllChildren(getGlobalElements(xsdSchema, true));
-      fAttributesCategory.setChildren(attributesList);
-      fAttributesCategory.setAllChildren(getAttributeList(xsdSchema, true));
-      fTypesCategory.setChildren(types);
-      fTypesCategory.setAllChildren(getTypes(xsdSchema, true));
-      fGroupsCategory.setChildren(groups);
-      fGroupsCategory.setAllChildren(getGroups(xsdSchema, true));
-    }
-    else
-    {
-      createCategoryAdapters(xsdSchema);
-    }
-
-    children.add(fDirectivesCategory);
-    children.add(fElementsCategory);
-    children.add(fAttributesCategory);
-    children.add(fTypesCategory);
-    children.add(fGroupsCategory);
-
-    return (ITreeElement[]) children.toArray(new ITreeElement[0]);
-  }
-
-  public void notifyChanged(final Notification msg)
-  {
-    class CategoryNotification extends NotificationImpl
-    {
-      protected Object category;
-
-      public CategoryNotification(Object category)
-      {
-        super(msg.getEventType(), msg.getOldValue(), msg.getNewValue(), msg.getPosition());
-        this.category = category;
-      }
-
-      public Object getNotifier()
-      {
-        return category;
-      }
-
-      public Object getFeature()
-      {
-        return msg.getFeature();
-      }
-    }
-
-    if (children == null)
-    {
-      getChildren();
-    }
-    
-    Object newValue = msg.getNewValue();
-    if (newValue instanceof XSDInclude || newValue instanceof XSDImport || newValue instanceof XSDRedefine ||
-        (msg.getFeature() == XSDPackage.eINSTANCE.getXSDSchema_Contents() && msg.getOldValue() instanceof XSDSchemaDirective)) // handle the case for delete directive
-    {
-      CategoryAdapter adapter = getCategory(CategoryAdapter.DIRECTIVES);
-      Assert.isTrue(adapter != null);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getDirectives(xsdSchema));
-      adapter.setAllChildren(getDirectives(xsdSchema));
-      notifyListeners(new CategoryNotification(adapter), adapter.getText());
-      return;
-    }
-    else if (msg.getFeature() == XSDPackage.eINSTANCE.getXSDSchema_ElementDeclarations())
-    {
-      CategoryAdapter adapter = getCategory(CategoryAdapter.ELEMENTS);
-      Assert.isTrue(adapter != null);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getGlobalElements(xsdSchema));
-      adapter.setAllChildren(getGlobalElements(xsdSchema, true));
-      notifyListeners(new CategoryNotification(adapter), adapter.getText());
-      return;
-    }
-    else if (msg.getFeature() == XSDPackage.eINSTANCE.getXSDSchema_AttributeDeclarations() ||
-             msg.getFeature() == XSDPackage.eINSTANCE.getXSDSchema_AttributeGroupDefinitions())
-    {
-      CategoryAdapter adapter = getCategory(CategoryAdapter.ATTRIBUTES);
-      Assert.isTrue(adapter != null);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getAttributeList(xsdSchema));
-      adapter.setAllChildren(getAttributeList(xsdSchema, true));
-      notifyListeners(new CategoryNotification(adapter), adapter.getText());
-      return;
-    }
-    else if (msg.getFeature() == XSDPackage.eINSTANCE.getXSDSchema_TypeDefinitions())
-    {
-      CategoryAdapter adapter = getCategory(CategoryAdapter.TYPES);
-      Assert.isTrue(adapter != null);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      List types = getComplexTypes(xsdSchema);
-      types.addAll(getSimpleTypes(xsdSchema));
-
-      adapter.setChildren(types);
-      adapter.setAllChildren(getTypes(xsdSchema, true));
-      notifyListeners(new CategoryNotification(adapter), adapter.getText());
-      return;
-    }
-    else if (msg.getFeature() == XSDPackage.eINSTANCE.getXSDSchema_ModelGroupDefinitions())
-    {
-      CategoryAdapter adapter = getCategory(CategoryAdapter.GROUPS);
-      Assert.isTrue(adapter != null);
-      XSDSchema xsdSchema = adapter.getXSDSchema();
-      adapter.setChildren(getGroups(xsdSchema));
-      adapter.setAllChildren(getGroups(xsdSchema, true));
-      notifyListeners(new CategoryNotification(adapter), adapter.getText());
-      return;
-    }
-    else if (msg.getFeature() == XSDPackage.eINSTANCE.getXSDSchema_Annotations())
-    {
-      return;
-    }
-    else if (msg.getFeature() == XSDPackage.eINSTANCE.getXSDSchema_SchemaLocation())
-    {
-      notifyListeners(msg, null);
-      return;
-    }
-    
-    types = null;
-    getTypes();
-
-    super.notifyChanged(msg);
-  }
-  
-  public void updateCategories()
-  {
-    // TODO: revisit this
-    getChildren();
-  }
-  
-  public CategoryAdapter getCategory(int category)
-  {
-    if (children == null) updateCategories(); // init categories
-    int length = children.size();
-    CategoryAdapter adapter = null;
-    for (int i = 0; i < length; i++)
-    {
-      adapter = (CategoryAdapter) children.get(i);
-      if (adapter.getGroupType() ==  category)
-      {
-        break;
-      }
-    }
-    return adapter;
-  }
-
-  protected List getDirectives(XSDSchema schema)
-  {
-    List list = new ArrayList();
-    for (Iterator i = schema.getContents().iterator(); i.hasNext();)
-    {
-      Object o = i.next();
-      if (o instanceof XSDSchemaDirective)
-      {
-        list.add(o);
-      }
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return adapterList;
-  }
-  
-  protected List getGlobalElements(XSDSchema schema, boolean showFromIncludes)
-  {
-    List elements = schema.getElementDeclarations();
-    List list = new ArrayList();
-    for (Iterator i = elements.iterator(); i.hasNext();)
-    {
-      XSDElementDeclaration elem = (XSDElementDeclaration) i.next();
-      if (isSameNamespace(elem.getTargetNamespace(),schema.getTargetNamespace()) && (elem.getRootContainer() == schema || showFromIncludes))
-      {
-        list.add(elem);
-      }
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return adapterList;
-  }
-
-  protected List getGlobalElements(XSDSchema schema)
-  {
-    return getGlobalElements(schema, false);
-  }
-
-  /**
-   * @param schema
-   * @return
-   */
-  protected List getComplexTypes(XSDSchema schema, boolean showFromIncludes)
-  {
-    List allTypes = schema.getTypeDefinitions();
-    List list = new ArrayList();
-    for (Iterator i = allTypes.iterator(); i.hasNext();)
-    {
-      XSDTypeDefinition td = (XSDTypeDefinition) i.next();
-      if (td instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition) td;
-        if (isSameNamespace(ct.getTargetNamespace(),schema.getTargetNamespace()) && (ct.getRootContainer() == schema || showFromIncludes))
-        {
-          list.add(ct);
-        }
-      }
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return adapterList;
-  }
-
-  protected List getComplexTypes(XSDSchema schema)
-  {
-    return getComplexTypes(schema, false);
-  }
-  
-  protected List getTypes(XSDSchema schema, boolean showFromIncludes)
-  {
-    List list = getComplexTypes(schema, showFromIncludes);
-    list.addAll(getSimpleTypes(schema, showFromIncludes));
-    return list;
-  }
-  
-  protected List getAttributeGroupList(XSDSchema xsdSchema, boolean showFromIncludes)
-  {
-    List attributeGroupList = new ArrayList();
-    for (Iterator i = xsdSchema.getAttributeGroupDefinitions().iterator(); i.hasNext();)
-    {
-      XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition) i.next();
-      if (isSameNamespace(attrGroup.getTargetNamespace(), xsdSchema.getTargetNamespace()) && (attrGroup.getRootContainer() == xsdSchema || showFromIncludes))
-      {
-        attributeGroupList.add(attrGroup);
-      }
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(attributeGroupList, adapterList);
-    return adapterList;
-  }
-  
-  protected List getAttributeGroupList(XSDSchema xsdSchema)
-  {
-    return getAttributeGroupList(xsdSchema, false);
-  }
-
-  protected List getAttributeList(XSDSchema xsdSchema, boolean showFromIncludes)
-  {
-    List attributesList = new ArrayList();
-    for (Iterator iter = xsdSchema.getAttributeDeclarations().iterator(); iter.hasNext();)
-    {
-      Object o = iter.next();
-      if (o instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration attr = (XSDAttributeDeclaration) o;
-        if (attr != null)
-        {
-          if (attr.getTargetNamespace() != null)
-          {
-            if (!(attr.getTargetNamespace().equals(XSDConstants.SCHEMA_INSTANCE_URI_2001)))
-            {
-              if (isSameNamespace(attr.getTargetNamespace(), xsdSchema.getTargetNamespace()) && (attr.getRootContainer() == xsdSchema || showFromIncludes))
-              {
-                attributesList.add(attr);
-              }
-            }
-          }
-          else
-          {
-            if (isSameNamespace(attr.getTargetNamespace(), xsdSchema.getTargetNamespace()) && (attr.getRootContainer() == xsdSchema || showFromIncludes))
-            {
-              attributesList.add(attr);
-            }
-          }
-        }
-      }
-    }
-    
-    attributesList.addAll(getAttributeGroupList(xsdSchema, showFromIncludes));
-    
-    List adapterList = new ArrayList();
-    populateAdapterList(attributesList, adapterList);
-    return adapterList;
-  }
-  
-  protected List getAttributeList(XSDSchema xsdSchema)
-  {
-    return getAttributeList(xsdSchema, false);
-  }
-
-  protected List getSimpleTypes(XSDSchema schema, boolean showFromIncludes)
-  {
-    List allTypes = schema.getTypeDefinitions();
-    List list = new ArrayList();
-    for (Iterator i = allTypes.iterator(); i.hasNext();)
-    {
-      XSDTypeDefinition td = (XSDTypeDefinition) i.next();
-      if (td instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) td;
-        if (isSameNamespace(st.getTargetNamespace(),schema.getTargetNamespace()) && (st.getRootContainer() == schema || showFromIncludes))
-        {
-          list.add(st);
-        }
-      }
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return adapterList;
-  }
-  
-  protected List getSimpleTypes(XSDSchema schema)
-  {
-    return getSimpleTypes(schema, false);
-  }
-
-  protected List getGroups(XSDSchema schema, boolean showFromIncludes)
-  {
-    List groups = schema.getModelGroupDefinitions();
-    List list = new ArrayList();
-    for (Iterator i = groups.iterator(); i.hasNext();)
-    {
-      XSDModelGroupDefinition group = (XSDModelGroupDefinition) i.next();
-      if (isSameNamespace(group.getTargetNamespace(),schema.getTargetNamespace()) && (group.getRootContainer() == schema || showFromIncludes))
-      {
-        list.add(group);
-      }
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return adapterList;
-  }
-  
-  protected List getGroups(XSDSchema schema)
-  {
-    return getGroups(schema, false);
-  }
-
-  public String[] getActions(Object object)
-  {
-     Collection actionIDs = new ArrayList();
-     actionIDs.add(AddXSDElementAction.ID);
-     actionIDs.add(AddXSDComplexTypeDefinitionAction.ID);
-
-     actionIDs.add(BaseSelectionAction.SEPARATOR_ID);
-     actionIDs.add(ShowPropertiesViewAction.ID);
-     return (String [])actionIDs.toArray(new String[0]);
-  }
-
-  public void propertyChanged(Object object, String property)
-  {
-    notifyListeners(object, property);
-  }
-  
-  public Image getImage()
-  {
-    return XSDEditorPlugin.getXSDImage("icons/XSDFile.gif"); //$NON-NLS-1$
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSchemaDirectiveAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSchemaDirectiveAdapter.java
deleted file mode 100644
index 626ceb4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSchemaDirectiveAdapter.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.OpenInNewEditor;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDRedefinableComponent;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDRedefineContent;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class XSDSchemaDirectiveAdapter extends XSDBaseAdapter implements IActionProvider
-{
-  public Image getImage()
-  {
-    XSDSchemaDirective object = (XSDSchemaDirective) target;
-    if (object instanceof XSDImport)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDImport.gif"); //$NON-NLS-1$
-    }
-    else if (object instanceof XSDInclude)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDInclude.gif"); //$NON-NLS-1$
-    }
-    else if (object instanceof XSDRedefine)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDRedefine.gif"); //$NON-NLS-1$
-    }
-    return null;
-  }
-
-  public String getText()
-  {
-    XSDSchemaDirective directive = (XSDSchemaDirective) target;
-    String result = "";
-
-    String location = directive.getSchemaLocation();
-    if (location == null || location.equals("") )
-    {
-      result = "(" + Messages._UI_LABEL_NO_LOCATION_SPECIFIED + ")"; 
-    }
-    else
-    {
-      result = location;
-    }  
-
-    // only show the namespace when the directiave is an import
-    // (otherwise the namespace is obviously the same as the containing schema's)
-    if (directive instanceof XSDImport)
-    {
-      XSDImport importObj = (XSDImport) directive;
-      String namespace = importObj.getNamespace();
-      if (namespace != null)
-      {  
-        result += "  {" + namespace + "}";
-      }      
-    }
-    return result;
-  }
-
-  public ITreeElement[] getChildren()
-  {
-    List list = new ArrayList();
-    if (target instanceof XSDRedefine)
-    {
-      XSDRedefine redefine = (XSDRedefine) target;
-      for (Iterator i = redefine.getContents().iterator(); i.hasNext();)
-      {
-        XSDRedefineContent redefineContent = (XSDRedefineContent) i.next();
-        if (redefineContent instanceof XSDAttributeGroupDefinition ||
-        	redefineContent instanceof XSDModelGroupDefinition)
-        {
-          list.add(redefineContent);
-        }
-        else if (redefineContent instanceof XSDRedefinableComponent)
-        {
-          XSDRedefinableComponent comp = (XSDRedefinableComponent) redefineContent;
-          if (comp instanceof XSDAttributeGroupDefinition ||
-              comp instanceof XSDModelGroupDefinition ||
-              comp instanceof XSDComplexTypeDefinition ||
-              comp instanceof XSDSimpleTypeDefinition)
-          {
-            list.add(comp);
-          }
-        }
-        else if (redefineContent instanceof XSDComplexTypeDefinition)
-        {
-          list.add(redefineContent);
-        }
-        else if (redefineContent instanceof XSDSimpleTypeDefinition)
-        {
-          list.add(redefineContent);
-        }
-      }
-
-    }
-    List adapterList = new ArrayList();
-    populateAdapterList(list, adapterList);
-    return (ITreeElement[]) adapterList.toArray(new ITreeElement[0]);
-  }
-  
-  public String[] getActions(Object object)
-  {
-    List list = new ArrayList();
-    list.add(OpenInNewEditor.ID);
-    list.add(DeleteXSDConcreteComponentAction.DELETE_XSD_COMPONENT_ID);
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(ShowPropertiesViewAction.ID);
-    
-    return (String [])list.toArray(new String[0]);
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSimpleTypeDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSimpleTypeDefinitionAdapter.java
deleted file mode 100644
index f162c49..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDSimpleTypeDefinitionAdapter.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDSimpleTypeDefinitionAdapter extends XSDTypeDefinitionAdapter
-{
-  public Image getImage()
-  {
-    if (isReadOnly())
-    {
-      return XSDEditorPlugin.getPlugin().getIcon("obj16/simpletypedis_obj.gif"); //$NON-NLS-1$
-    }
-    return XSDEditorPlugin.getPlugin().getIcon("obj16/simpletype_obj.gif"); //$NON-NLS-1$
-  }
-  
-  public String getDisplayName()
-  {
-    XSDSimpleTypeDefinition xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition) target;
-    return (xsdSimpleTypeDefinition.getName() == null ? Messages._UI_LABEL_LOCAL_TYPE : xsdSimpleTypeDefinition.getName());
-  }
-
-  public String getText()
-  {
-    return getText(true);
-  }
-
-  public String getText(boolean showType)
-  {
-    XSDSimpleTypeDefinition xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition) target;
-
-    StringBuffer result = new StringBuffer();
-
-    result.append(xsdSimpleTypeDefinition.getName() == null ? Messages._UI_LABEL_LOCAL_TYPE : xsdSimpleTypeDefinition.getName());
-
-    if (showType)
-    {
-      XSDSimpleTypeDefinition baseTypeDefinition = xsdSimpleTypeDefinition.getBaseTypeDefinition();
-      if (baseTypeDefinition != null && XSDVariety.ATOMIC_LITERAL == xsdSimpleTypeDefinition.getVariety())
-      {
-        if (baseTypeDefinition.getName() != null && !xsdSimpleTypeDefinition.getContents().contains(baseTypeDefinition) && !XSDConstants.isAnySimpleType(baseTypeDefinition))
-        {
-          result.append(" : "); //$NON-NLS-1$
-          result.append(baseTypeDefinition.getQName(xsdSimpleTypeDefinition));
-        }
-      }
-      else
-      {
-        XSDSimpleTypeDefinition itemTypeDefinition = xsdSimpleTypeDefinition.getItemTypeDefinition();
-        if (itemTypeDefinition != null)
-        {
-          if (itemTypeDefinition.getName() != null)
-          {
-            result.append(" : "); //$NON-NLS-1$
-            result.append(itemTypeDefinition.getQName(xsdSimpleTypeDefinition));
-          }
-        }
-        else
-        {
-          List memberTypeDefinitions = xsdSimpleTypeDefinition.getMemberTypeDefinitions();
-          if (!memberTypeDefinitions.isEmpty())
-          {
-            boolean first = true;
-            for (Iterator members = memberTypeDefinitions.iterator(); members.hasNext();)
-            {
-              XSDSimpleTypeDefinition memberTypeDefinition = (XSDSimpleTypeDefinition) members.next();
-              if (memberTypeDefinition.getName() != null)
-              {
-                if (first)
-                {
-                  result.append(" : "); //$NON-NLS-1$
-                  first = false;
-                }
-                else
-                {
-                  result.append(" | "); //$NON-NLS-1$
-                }
-                result.append(memberTypeDefinition.getQName(xsdSimpleTypeDefinition));
-              }
-              else
-              {
-                break;
-              }
-            }
-          }
-          else if (result.length() == 0)
-          {
-            result.append(Messages._UI_LABEL_ABSENT);
-          }
-        }
-      }
-    }
-
-    return result.toString();
-  }
-
-  public boolean hasChildren()
-  {
-    return false;
-  }
-  
-  public boolean isComplexType()
-  {
-    return false;
-  }
-
-  public boolean isFocusAllowed()
-  {
-    XSDSimpleTypeDefinition xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition) target;
-    if (XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace()))
-    {
-      return false;
-    }
-    if (xsdSimpleTypeDefinition.getName() == null)
-    {
-      return false;
-    }
-    return true;
-  }
-  
-  public String[] getActions(Object object)
-  {
-    List list = new ArrayList();
-    list.add(DeleteXSDConcreteComponentAction.DELETE_XSD_COMPONENT_ID);
-    list.add(BaseSelectionAction.SEPARATOR_ID);
-    list.add(ShowPropertiesViewAction.ID);
-    
-    return (String [])list.toArray(new String[0]);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDTypeDefinitionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDTypeDefinitionAdapter.java
deleted file mode 100644
index 1ea41b8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDTypeDefinitionAdapter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public abstract class XSDTypeDefinitionAdapter extends XSDBaseAdapter implements IType, IActionProvider, IGraphElement
-{
-  public XSDTypeDefinition getXSDTypeDefinition()
-  {
-    return (XSDTypeDefinition)target;
-  }
-
-  public String getName()
-  {
-    if (getXSDTypeDefinition().eContainer() instanceof XSDSchema)
-    {  
-      return getXSDTypeDefinition().getName();
-    }
-    else 
-    {
-      EObject o = getXSDTypeDefinition().eContainer();
-      if (o instanceof XSDNamedComponent)
-      {
-         XSDNamedComponent ed = (XSDNamedComponent)o;
-         return "(" + ed.getName() + "Type)";                //$NON-NLS-1$ //$NON-NLS-2$
-      }
-    }
-    return null;
-  }
-
-  public String getQualifier()
-  {
-    return getXSDTypeDefinition().getTargetNamespace();
-  }
-
-  public IType getSuperType()
-  {
-    XSDTypeDefinition td = getXSDTypeDefinition().getBaseType();
-    return td != null ? (IType)XSDAdapterFactory.getInstance().adapt(td) : null;
-  }
-
-  public Command getUpdateNameCommand(String newName)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public boolean isComplexType()
-  {
-    return false;
-  }    
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDVisitor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDVisitor.java
deleted file mode 100644
index 82541fe..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDVisitor.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.Iterator;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-public class XSDVisitor
-{
-  public XSDVisitor()
-  {
-  }
-  
-  protected XSDSchema schema;
-  
-  public void visitSchema(XSDSchema schema)
-  {
-    this.schema = schema;
-    for (Iterator iterator = schema.getAttributeDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeDeclaration attr = (XSDAttributeDeclaration) iterator.next();
-      visitAttributeDeclaration(attr);
-    }
-    for (Iterator iterator = schema.getTypeDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDTypeDefinition type = (XSDTypeDefinition) iterator.next();
-      visitTypeDefinition(type);
-    }
-    for (Iterator iterator = schema.getElementDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDElementDeclaration element = (XSDElementDeclaration) iterator.next();
-      visitElementDeclaration(element);
-    }
-    for (Iterator iterator = schema.getIdentityConstraintDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDIdentityConstraintDefinition identityConstraint = (XSDIdentityConstraintDefinition) iterator.next();
-      visitIdentityConstraintDefinition(identityConstraint);
-    }
-    for (Iterator iterator = schema.getModelGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDModelGroupDefinition modelGroup = (XSDModelGroupDefinition) iterator.next();
-      visitModelGroupDefinition(modelGroup);
-    }
-    for (Iterator iterator = schema.getAttributeGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeGroupDefinition attributeGroup = (XSDAttributeGroupDefinition) iterator.next();
-      visitAttributeGroupDefinition(attributeGroup);
-    }
-    for (Iterator iterator = schema.getNotationDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDNotationDeclaration element = (XSDNotationDeclaration) iterator.next();
-      visitNotationDeclaration(element);
-    }
-    
-  }
-  
-  public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-  {
-  }
-  
-  public void visitTypeDefinition(XSDTypeDefinition type)
-  {
-    if (type instanceof XSDSimpleTypeDefinition)
-    {
-      visitSimpleTypeDefinition((XSDSimpleTypeDefinition)type);
-    }
-    else if (type instanceof XSDComplexTypeDefinition)
-    {
-      visitComplexTypeDefinition((XSDComplexTypeDefinition)type);
-    }
-  }
-  
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (element.isElementDeclarationReference())
-    {
-      visitElementDeclaration(element.getResolvedElementDeclaration());
-    }
-    else if (element.getAnonymousTypeDefinition() != null)
-    {
-      visitTypeDefinition(element.getAnonymousTypeDefinition());
-    }
-  }
-  
-  public void visitIdentityConstraintDefinition(XSDIdentityConstraintDefinition identityConstraint)
-  {
-  }
-  
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDef)
-  {
-    if (!modelGroupDef.isModelGroupDefinitionReference())
-    {
-      if (modelGroupDef.getModelGroup() != null)
-      {
-        visitModelGroup(modelGroupDef.getModelGroup());
-      }
-    }
-    else
-    {
-      XSDModelGroup modelGroup = modelGroupDef.getResolvedModelGroupDefinition().getModelGroup();
-      if (modelGroup != null)
-      {
-        visitModelGroup(modelGroup);
-      }
-    }
-  }
-
-  public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-  {
-    for (Iterator it = attributeGroup.getContents().iterator(); it.hasNext(); )
-    {
-      Object o = it.next();
-      if (o instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attrUse = (XSDAttributeUse)o;
-        visitAttributeDeclaration(attrUse.getContent());
-      }
-      else if (o instanceof XSDAttributeGroupDefinition)
-      {
-        XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition)o;
-        visitAttributeGroupDefinition(attrGroup.getResolvedAttributeGroupDefinition());
-      }
-    }
-  }
-  
-  public void visitNotationDeclaration(XSDNotationDeclaration notation)
-  {
-  }
-  
-  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
-  {
-  }
-  
-  public void visitComplexTypeContent(XSDSimpleTypeDefinition content)
-  {
-    
-  }
-  
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    if (type.getContent() != null)
-    {
-      XSDComplexTypeContent complexContent = type.getContent();
-      if (complexContent instanceof XSDSimpleTypeDefinition)
-      {
-        visitComplexTypeContent((XSDSimpleTypeDefinition)complexContent);
-      }
-      else if (complexContent instanceof XSDParticle)
-      {
-        visitParticle((XSDParticle) complexContent);
-      }
-    }
-  }
-  
-  public void visitParticle(XSDParticle particle)
-  {
-    visitParticleContent(particle.getContent());
-  }
-  
-  public void visitParticleContent(XSDParticleContent particleContent)
-  {
-    if (particleContent instanceof XSDModelGroupDefinition)
-    {
-      visitModelGroupDefinition((XSDModelGroupDefinition) particleContent);
-    }
-    else if (particleContent instanceof XSDModelGroup)
-    {
-      visitModelGroup((XSDModelGroup)particleContent);
-    }
-    else if (particleContent instanceof XSDElementDeclaration)
-    {
-      visitElementDeclaration((XSDElementDeclaration)particleContent);
-    }
-    else if (particleContent instanceof XSDWildcard)
-    {
-      visitWildcard((XSDWildcard)particleContent);
-    }
-  }
-  
-  public void visitModelGroup(XSDModelGroup modelGroup)
-  {
-    if (modelGroup.getContents() != null)
-    {
-      for (Iterator iterator = modelGroup.getContents().iterator(); iterator.hasNext();)
-      {
-        XSDParticle particle = (XSDParticle) iterator.next();
-        visitParticle(particle);
-      }
-    }
-  }
-  
-  public void visitWildcard(XSDWildcard wildcard)
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDVisitorForFields.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDVisitorForFields.java
deleted file mode 100644
index 081788d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDVisitorForFields.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-public class XSDVisitorForFields extends XSDVisitor
-{
-  public XSDVisitorForFields()
-  {
-  }
-
-  public List concreteComponentList = new ArrayList();
-  public List thingsWeNeedToListenTo = new ArrayList();
-  
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent)iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse)attrGroupContent;
-          
-          visitAttributeDeclaration(attrUse.getContent());
-
-//          if (attrUse.getAttributeDeclaration() != attrUse.getContent())
-//          {
-//            visitAttributeDeclaration(attrUse.getContent());
-//          }
-//          else
-//          {
-//            thingsWeNeedToListenTo.add(attrUse.getAttributeDeclaration());
-//            concreteComponentList.add(attrUse.getAttributeDeclaration());
-//          }
-        }
-        else if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-        {
-          XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition)attrGroupContent;
-          thingsWeNeedToListenTo.add(attrGroup);
-          if (attrGroup.isAttributeGroupDefinitionReference())
-          {
-            attrGroup = attrGroup.getResolvedAttributeGroupDefinition();
-            visitAttributeGroupDefinition(attrGroup);
-          }
-        }
-      }
-    }
-    if (type.getAttributeWildcard() != null)
-    {
-      thingsWeNeedToListenTo.add(type.getAttributeWildcard());
-      concreteComponentList.add(type.getAttributeWildcard());
-    }
-    super.visitComplexTypeDefinition(type);
-  }
-  
-  public void visitComplexTypeContent(XSDSimpleTypeDefinition content)
-  {
-    thingsWeNeedToListenTo.add(content);
-    
-    super.visitComplexTypeContent(content);   
-  }
-
-  
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDef)
-  {
-    if (modelGroupDef.isModelGroupDefinitionReference())
-    {
-      // if it's a reference we need to listen to the reference incase it changes
-      thingsWeNeedToListenTo.add(modelGroupDef);      
-    }    
-    // listen to definition incase it changes
-    XSDModelGroupDefinition resolvedModelGroupDef = modelGroupDef.getResolvedModelGroupDefinition();
-    thingsWeNeedToListenTo.add(resolvedModelGroupDef);
-    super.visitModelGroupDefinition(modelGroupDef);      
-  }
-  
-  public void visitModelGroup(XSDModelGroup modelGroup)
-  {
-    super.visitModelGroup(modelGroup);
-    thingsWeNeedToListenTo.add(modelGroup); 
-  }
-  
-  public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-  {
-    for (Iterator it = attributeGroup.getContents().iterator(); it.hasNext(); )
-    {
-      Object o = it.next();
-      if (o instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse attributeUse = (XSDAttributeUse)o;
-        concreteComponentList.add(attributeUse.getAttributeDeclaration());
-        thingsWeNeedToListenTo.add(attributeUse.getAttributeDeclaration());
-      }
-      else if (o instanceof XSDAttributeGroupDefinition)
-      {
-        XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition)o;
-        thingsWeNeedToListenTo.add(attrGroup);
-        if (attrGroup.isAttributeGroupDefinitionReference())
-        {
-          attrGroup = attrGroup.getResolvedAttributeGroupDefinition();
-          visitAttributeGroupDefinition(attrGroup);
-        }
-      }
-    }
-  }
-  
-  public void visitParticle(XSDParticle particle)
-  {
-    thingsWeNeedToListenTo.add(particle);
-    super.visitParticle(particle);
-  }
-  
-  public void visitWildcard(XSDWildcard wildcard)
-  {
-    concreteComponentList.add(wildcard);
-  }
-
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (element.isElementDeclarationReference())
-    {
-      thingsWeNeedToListenTo.add(element);
-      thingsWeNeedToListenTo.add(element.getResolvedElementDeclaration());
-      // now, add the reference as a field
-      concreteComponentList.add(element);
-    }
-    else
-    {
-      concreteComponentList.add(element.getResolvedElementDeclaration());
-      // note... we intentionally ommit the call to super.visitElementDeclaration()
-      // since we don't want to delve down deeper than the element      
-    }
-  }
-  
-  public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-  {
-    if (attr.isAttributeDeclarationReference())
-    {
-      thingsWeNeedToListenTo.add(attr);
-      thingsWeNeedToListenTo.add(attr.getResolvedAttributeDeclaration());
-      concreteComponentList.add(attr);
-    }
-    else
-    {
-      concreteComponentList.add(attr.getResolvedAttributeDeclaration());
-      thingsWeNeedToListenTo.add(attr.getResolvedAttributeDeclaration());
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDWildcardAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDWildcardAdapter.java
deleted file mode 100644
index c94e915..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/adapters/XSDWildcardAdapter.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adapters;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDWildcardAdapter extends XSDParticleAdapter implements IField, IActionProvider
-{
-//  public static final Image ANYELEMENT_ICON = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAny.gif"); //$NON-NLS-1$
-//  public static final Image ANYELEMENT_DISABLED_ICON = XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAny.gif"); //$NON-NLS-1$
-  
-  public XSDWildcardAdapter()
-  {
-
-  }
-  
-  public Image getImage()
-  {
-    XSDWildcard xsdWildcard = (XSDWildcard) target;
-    
-    if (xsdWildcard.eContainer() instanceof XSDParticle)
-    {
-      if (isReadOnly())
-      {
-        return XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAnydis.gif"); //$NON-NLS-1$
-      }
-      return XSDEditorPlugin.getXSDImage("icons/XSDAny.gif"); //$NON-NLS-1$
-    }
-    else
-    {
-      if (isReadOnly())
-      {
-        return XSDEditorPlugin.getPlugin().getIcon("obj16/XSDAnyAttributedis.gif"); //$NON-NLS-1$
-      }
-      return XSDEditorPlugin.getXSDImage("icons/XSDAnyAttribute.gif"); //$NON-NLS-1$
-    }
-  }
-
-  public String getText()
-  {
-    XSDWildcard xsdWildcard = (XSDWildcard) target;
-
-    StringBuffer result = new StringBuffer();
-    Element element = xsdWildcard.getElement();
-
-    if (element != null)
-    {
-      result.append(element.getNodeName());
-      boolean hasMinOccurs = element.hasAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-      boolean hasMaxOccurs = element.hasAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-
-      if (hasMinOccurs || hasMaxOccurs)
-      {
-        result.append(" ["); //$NON-NLS-1$
-        if (hasMinOccurs)
-        {
-
-          int min = ((XSDParticle) xsdWildcard.getContainer()).getMinOccurs();
-          if (min == XSDParticle.UNBOUNDED)
-          {
-            result.append("*"); //$NON-NLS-1$
-          }
-          else
-          {
-            result.append(String.valueOf(min));
-          }
-        }
-        else
-        // print default
-        {
-          int min = ((XSDParticle) xsdWildcard.getContainer()).getMinOccurs();
-          result.append(String.valueOf(min));
-        }
-        if (hasMaxOccurs)
-        {
-          int max = ((XSDParticle) xsdWildcard.getContainer()).getMaxOccurs();
-          result.append(".."); //$NON-NLS-1$
-          if (max == XSDParticle.UNBOUNDED)
-          {
-            result.append("*"); //$NON-NLS-1$
-          }
-          else
-          {
-            result.append(String.valueOf(max));
-          }
-        }
-        else
-        // print default
-        {
-          result.append(".."); //$NON-NLS-1$
-          int max = ((XSDParticle) xsdWildcard.getContainer()).getMaxOccurs();
-          result.append(String.valueOf(max));
-        }
-        result.append("]"); //$NON-NLS-1$
-      }
-    }
-    return result.toString();
-
-  }
-
-  public boolean hasChildren()
-  {
-    return false;
-  }
-
-  public Object getParent(Object object)
-  {
-    XSDWildcard xsdWildcard = (XSDWildcard) target;
-    return xsdWildcard.getContainer();
-  }
-
-  public Command getDeleteCommand()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public String getKind()
-  {
-    XSDWildcard xsdWildcard = (XSDWildcard) target;
-    if (xsdWildcard.eContainer() instanceof XSDParticle)
-    {
-      return "element"; //$NON-NLS-1$
-    }
-    return "attribute";
-  }
-
-  public IModel getModel()
-  {
-    return null;
-  }
-
-  public String getName()
-  {
-    XSDWildcard xsdWildcard = (XSDWildcard) target;
-    if (xsdWildcard.eContainer() instanceof XSDParticle)
-    {
-      return "any"; //$NON-NLS-1$
-    }
-    return "anyAttribute"; //$NON-NLS-1$
-  }
-  
-  public IType getType()
-  {
-    return null;
-  }
-
-  public String getTypeName()
-  {
-    return ""; //$NON-NLS-1$
-  }
-
-  public String getTypeNameQualifier()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateMaxOccursCommand(int maxOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateMinOccursCommand(int minOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateNameCommand(String name)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateTypeNameCommand(String typeName, String quailifier)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public boolean isGlobal()
-  {
-    return false;
-  }
-
-  public boolean isReference()
-  {
-    // TODO Auto-generated method stub
-    return false;
-  }
-
-  public String[] getActions(Object object)
-  {
-    Collection actionIDs = new ArrayList();
-    actionIDs.add(DeleteXSDConcreteComponentAction.DELETE_XSD_COMPONENT_ID);
-    actionIDs.add(BaseSelectionAction.SEPARATOR_ID);
-    actionIDs.add(ShowPropertiesViewAction.ID);
-    return (String [])actionIDs.toArray(new String[0]);
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/commands/DragAndDropCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/commands/DragAndDropCommand.java
deleted file mode 100644
index 28f1f76..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/commands/DragAndDropCommand.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.commands;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.FigureCanvas;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
-import org.eclipse.wst.xsd.ui.internal.actions.MoveAction;
-import org.eclipse.wst.xsd.ui.internal.actions.MoveAttributeAction;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAttributeAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDElementDeclarationAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseFieldEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.CompartmentEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.ComplexTypeEditPart;
-import org.eclipse.wst.xsd.ui.internal.common.commands.BaseCommand;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.AttributeGroupDefinitionEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.ConnectableEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.ModelGroupDefinitionReferenceEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.ModelGroupEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.TargetConnectionSpacingFigureEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.XSDAttributesForAnnotationEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.XSDBaseFieldEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.XSDGroupsForAnnotationEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.figures.GenericGroupFigure;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDModelGroup;
-
-// TODO : clean and common up code
-public class DragAndDropCommand extends BaseCommand
-{ 
-  protected EditPartViewer viewer;    
-  protected ChangeBoundsRequest request;
-  protected BaseFieldEditPart previousChildRefEditPart, nextChildRefEditPart;    
-  public ModelGroupEditPart parentEditPart;
-  protected AttributeGroupDefinitionEditPart parentAttributeGroupEditPart;
-  protected XSDConcreteComponent parentComponent;
-  public Point location;
-  protected MoveAction action;
-  protected MoveAttributeAction moveAttributeAction;
-  protected boolean canExecute, isElementToDrag;
-  EditPart target;
-  XSDBaseFieldEditPart selected;
-  List modelGroupsList = new ArrayList();
-  List targetSpacesList = new ArrayList();
-  List attributeGroupsList = new ArrayList();
-  XSDConcreteComponent previousRefComponent = null, nextRefComponent = null;
-  ComplexTypeEditPart complexTypeEditPart;
-
-  public DragAndDropCommand(EditPartViewer viewer, ChangeBoundsRequest request)
-  {
-    this.viewer = viewer;                    
-    this.request = request;
-    setup();
-  }
-  
-  protected void setup()
-  {
-    location = request.getLocation();
-    target = viewer.findObjectAt(location);
-    
-    if (viewer instanceof ScrollingGraphicalViewer)
-    {  
-      ScrollingGraphicalViewer sgv = (ScrollingGraphicalViewer)viewer;
-      Point p = ((FigureCanvas)sgv.getControl()).getViewport().getViewLocation();
-      location.y += p.y;
-      location.x += p.x;
-    }
-    List list = request.getEditParts();
-    canExecute = false;
-    // allow drag and drop of only one selected object
-    if (list.size() == 1 && target instanceof BaseFieldEditPart)
-    {
-      List editPartsList = request.getEditParts();
-      List concreteComponentList = new ArrayList(editPartsList.size());
-      for (Iterator i = editPartsList.iterator(); i.hasNext(); )
-      {                                                       
-        EditPart editPart = (EditPart)i.next();
-        concreteComponentList.add(((XSDBaseAdapter)editPart.getModel()).getTarget());
-      }
-
-      Object itemToDrag = list.get(0);
-      if (itemToDrag instanceof XSDBaseFieldEditPart)
-      {
-    	  selected = (XSDBaseFieldEditPart) itemToDrag;
-    	  if (selected.getModel() instanceof XSDElementDeclarationAdapter)
-    	  {
-    		  isElementToDrag = true;
-    	  }
-    	  else if (selected.getModel() instanceof XSDBaseAttributeAdapter)
-    	  {
-    		  isElementToDrag = false;
-    	  }
-    	  else
-    	  {
-    		  return;
-    	  }
-
-    	  if (!isElementToDrag)
-    	  {
-    		  XSDAttributeGroupDefinition attributeGroup = null;
-    		  attributeGroupsList.clear();
-    		  targetSpacesList.clear();
-          parentAttributeGroupEditPart = null;
-          calculateAttributeGroupList();
-          EditPart compartment = target.getParent();
-
-          parentEditPart = null;
-          if (compartment != null)
-          {
-            List l = compartment.getChildren();
-            Rectangle rectangle = new Rectangle(0, 0, 0, 0);
-            int index = 0;
-            BaseFieldEditPart childGraphNodeEditPart = null;
-            for (Iterator i = l.iterator(); i.hasNext(); )
-            {
-              EditPart child = (EditPart)i.next();
-              if (child instanceof BaseFieldEditPart)
-              {
-                previousChildRefEditPart = childGraphNodeEditPart;
-                childGraphNodeEditPart = (BaseFieldEditPart)child;
-                rectangle = childGraphNodeEditPart.getFigure().getBounds();
-              
-                if (location.y < (rectangle.getCenter().y))
-                {
-                  nextChildRefEditPart = childGraphNodeEditPart;
-                  TargetConnectionSpacingFigureEditPart tSpace = (TargetConnectionSpacingFigureEditPart)targetSpacesList.get(index);
-                  if (tSpace.getParent() instanceof AttributeGroupDefinitionEditPart)
-                  {
-                    parentAttributeGroupEditPart = (AttributeGroupDefinitionEditPart)tSpace.getParent();
-                    attributeGroup = parentAttributeGroupEditPart.getXSDAttributeGroupDefinition().getResolvedAttributeGroupDefinition();
-                    parentComponent = attributeGroup;
-                  }
-                  else if (tSpace.getParent() instanceof XSDAttributesForAnnotationEditPart)
-                  {
-                    parentComponent = (XSDConcreteComponent)((XSDBaseAdapter)complexTypeEditPart.getModel()).getTarget(); 
-                  }
-                  break;
-                }            
-              }
-              else
-              {
-              // This is the annotation edit part
-              }
-              index ++;
-            }  
-          }
-          calculatePreviousAndNextEditParts();
-          moveAttributeAction = new MoveAttributeAction(parentComponent, concreteComponentList, previousRefComponent, nextRefComponent);
-          canExecute = moveAttributeAction.canMove();
-    	  }
-    	  else if (isElementToDrag)
-    	  {
-    		  XSDModelGroup targetModelGroup = null;
-    		  modelGroupsList.clear();
-    		  targetSpacesList.clear();
-    		  calculateModelGroupList();
-
-          List modelGroups = new ArrayList(modelGroupsList.size());
-          for (Iterator i = modelGroupsList.iterator(); i.hasNext(); )
-          {
-            ModelGroupEditPart editPart = (ModelGroupEditPart)i.next();
-            modelGroups.add(editPart.getXSDModelGroup());
-          }
-        
-          EditPart compartment = target.getParent();
-          parentEditPart = null;
-          if (compartment != null)
-          {
-            List l = compartment.getChildren();
-            Rectangle rectangle = new Rectangle(0, 0, 0, 0);
-            int index = 0;
-            BaseFieldEditPart childGraphNodeEditPart = null;
-            for (Iterator i = l.iterator(); i.hasNext(); )
-            {
-              EditPart child = (EditPart)i.next();
-              if (child instanceof BaseFieldEditPart)
-              {
-                previousChildRefEditPart = childGraphNodeEditPart;
-                childGraphNodeEditPart = (BaseFieldEditPart)child;
-                rectangle = childGraphNodeEditPart.getFigure().getBounds();
-              
-                if (location.y < (rectangle.getCenter().y))
-                {
-                  nextChildRefEditPart = childGraphNodeEditPart;
-                  TargetConnectionSpacingFigureEditPart tSpace = (TargetConnectionSpacingFigureEditPart)targetSpacesList.get(index);
-                  parentEditPart = (ModelGroupEditPart)tSpace.getParent();
-                  targetModelGroup = parentEditPart.getXSDModelGroup();
-                  break;
-                }            
-              }
-              else
-              {
-           	  // This is the annotation edit part
-              }
-              index ++;
-            }  
-          }
-          calculatePreviousAndNextEditParts();
-          action = new MoveAction(targetModelGroup, concreteComponentList, previousRefComponent, nextRefComponent);
-          canExecute = action.canMove();
-        }
-      }            
-    }     
-  }
-  
-  protected void calculatePreviousAndNextEditParts()
-  {
-    if (nextChildRefEditPart != null)
-    {
-      if (nextChildRefEditPart.getModel() instanceof XSDBaseAdapter)
-      {
-        nextRefComponent = (XSDConcreteComponent)((XSDBaseAdapter)nextChildRefEditPart.getModel()).getTarget();
-      }
-    }
-    if (previousChildRefEditPart != null)
-    {
-      if (previousChildRefEditPart.getModel() instanceof XSDBaseAdapter)
-      {
-       previousRefComponent = (XSDConcreteComponent)((XSDBaseAdapter)previousChildRefEditPart.getModel()).getTarget();
-      }
-    }
-
-  }
-  
-  protected void calculateAttributeGroupList()
-  {
-    EditPart editPart = target;
-    while (editPart != null)
-    {                     
-      if (editPart instanceof ComplexTypeEditPart)
-      {
-        complexTypeEditPart = (ComplexTypeEditPart)editPart;
-        List list = editPart.getChildren();
-        for (Iterator i = list.iterator(); i.hasNext(); )
-        {
-          Object child = i.next();
-          if (child instanceof CompartmentEditPart)
-          {
-            List compartmentList = ((CompartmentEditPart)child).getChildren();
-            for (Iterator it = compartmentList.iterator(); it.hasNext(); )
-            {
-              Object obj = it.next();
-              if (obj instanceof XSDAttributesForAnnotationEditPart)
-              {
-                XSDAttributesForAnnotationEditPart groups = (XSDAttributesForAnnotationEditPart)obj;
-                List groupList = groups.getChildren();
-                for (Iterator iter = groupList.iterator(); iter.hasNext(); )
-                {
-                  Object groupChild = iter.next();
-                  if (groupChild instanceof TargetConnectionSpacingFigureEditPart)
-                  {
-                    targetSpacesList.add(groupChild);
-                  }
-                  else if (groupChild instanceof AttributeGroupDefinitionEditPart)
-                  {
-                    AttributeGroupDefinitionEditPart attributeGroupEditPart = (AttributeGroupDefinitionEditPart)groupChild;
-                    attributeGroupsList.add(attributeGroupEditPart);
-                    attributeGroupsList.addAll(getAttributeGroupEditParts(attributeGroupEditPart));
-                  }
-                }
-              }
-            }
-          }
-        }   
-      }
-      editPart = editPart.getParent();
-    }
-   
-  }
-             
-  protected void calculateModelGroupList()
-  {
-    EditPart editPart = target;
-    while (editPart != null)
-    {                     
-      if (editPart instanceof ModelGroupEditPart)
-      {
-        ModelGroupEditPart modelGroupEditPart = (ModelGroupEditPart)editPart;
-        modelGroupsList.addAll(getModelGroupEditParts(modelGroupEditPart));
-      }
-      else if (editPart instanceof ComplexTypeEditPart ||
-               editPart instanceof ModelGroupDefinitionReferenceEditPart)
-      {
-        List list = editPart.getChildren();
-        for (Iterator i = list.iterator(); i.hasNext(); )
-        {
-          Object child = i.next();
-          if (child instanceof CompartmentEditPart)
-          {
-            List compartmentList = ((CompartmentEditPart)child).getChildren();
-            for (Iterator it = compartmentList.iterator(); it.hasNext(); )
-            {
-              Object obj = it.next();
-              if (obj instanceof XSDGroupsForAnnotationEditPart)
-              {
-                XSDGroupsForAnnotationEditPart groups = (XSDGroupsForAnnotationEditPart)obj;
-                List groupList = groups.getChildren();
-                for (Iterator iter = groupList.iterator(); iter.hasNext(); )
-                {
-                  Object groupChild = iter.next();
-                  if (groupChild instanceof ModelGroupEditPart)
-                  {
-                    ModelGroupEditPart modelGroupEditPart = (ModelGroupEditPart)groupChild;
-                    modelGroupsList.add(modelGroupEditPart);
-                    modelGroupsList.addAll(getModelGroupEditParts(modelGroupEditPart));
-                  }
-                }
-              }
-            }
-          }
-        }   
-      }
-      editPart = editPart.getParent();
-    }
-  }
-  
-  protected List getAttributeGroupEditParts(AttributeGroupDefinitionEditPart attributeGroupEditPart)
-  {
-    List groupList = new ArrayList();
-    List list = attributeGroupEditPart.getChildren();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      Object object = i.next();
-      if (object instanceof TargetConnectionSpacingFigureEditPart)
-      {
-        targetSpacesList.add(object);
-      }
-      else if (object instanceof AttributeGroupDefinitionEditPart)
-      {
-        AttributeGroupDefinitionEditPart groupRef = (AttributeGroupDefinitionEditPart)object;
-        List groupRefChildren = groupRef.getChildren();
-        for (Iterator it = groupRefChildren.iterator(); it.hasNext(); )
-        {
-         Object o = it.next();
-         if (o instanceof TargetConnectionSpacingFigureEditPart)
-         {
-           targetSpacesList.add(o);
-         }
-         else if (o instanceof AttributeGroupDefinitionEditPart)
-         {
-           AttributeGroupDefinitionEditPart aGroup = (AttributeGroupDefinitionEditPart)o;
-           groupList.add(aGroup);
-           groupList.addAll(getAttributeGroupEditParts(aGroup));
-         }
-        }
-      }
-    }   
-    return groupList;   
-  }
-  
-  
-  protected List getModelGroupEditParts(ModelGroupEditPart modelGroupEditPart)
-  {
-	  List modelGroupList = new ArrayList();
-    List list = modelGroupEditPart.getChildren();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      Object object = i.next();
-      if (object instanceof TargetConnectionSpacingFigureEditPart)
-      {
-    	targetSpacesList.add(object);
-      }
-      else if (object instanceof ModelGroupDefinitionReferenceEditPart)
-      {
-    	  ModelGroupDefinitionReferenceEditPart groupRef = (ModelGroupDefinitionReferenceEditPart)object;
-    	  List groupRefChildren = groupRef.getChildren();
-    	  for (Iterator it = groupRefChildren.iterator(); it.hasNext(); )
-    	  {
-    		 Object o = it.next();
-    		 if (o instanceof ModelGroupEditPart)
-    		 {
-   		    	ModelGroupEditPart aGroup = (ModelGroupEditPart)o;
-   		        modelGroupList.add(aGroup);
-   		        modelGroupList.addAll(getModelGroupEditParts(aGroup));
-    		 }
-    	  }
-      }
-      else if (object instanceof ModelGroupEditPart)
-      {
-    	ModelGroupEditPart aGroup = (ModelGroupEditPart)object;
-        modelGroupList.add(aGroup);
-        modelGroupList.addAll(getModelGroupEditParts(aGroup));
-      }
-    }   
-    return modelGroupList;
-  }
-  
-
-  public void execute()
-  {
-    if (canExecute)
-    { 
-      if (isElementToDrag)
-        action.run();
-      else
-        moveAttributeAction.run();
-    }
-  }     
-  
-  public void redo()
-  {
-
-  }  
-  
-  public void undo()
-  {
-  }     
-  
-  public boolean canExecute()
-  { 
-    return canExecute;
-  } 
-
-  public PointList getConnectionPoints(Rectangle draggedFigureBounds)
-  {             
-    PointList pointList = null;
-    if (isElementToDrag)
-    {
-      if (parentEditPart != null && nextChildRefEditPart != null)
-      {                                
-        pointList = getConnectionPoints(parentEditPart, nextChildRefEditPart, draggedFigureBounds);      
-      }
-    }
-    else
-    {
-      if (parentAttributeGroupEditPart!= null && nextChildRefEditPart != null)
-      {
-        pointList = getConnectionPoints(parentAttributeGroupEditPart, nextChildRefEditPart, draggedFigureBounds);
-      }
-    }
-    return pointList != null ? pointList : new PointList();
-  }
-  
-  // This method supports the preview connection line function related to drag and drop
-  //     
-  public PointList getConnectionPoints(ConnectableEditPart parentEditPart, BaseFieldEditPart childRefEditPart, Rectangle draggedFigureBounds)
-  {           
-    PointList pointList = new PointList();                         
-    int[] data = new int[1];
-    Point a = getConnectionPoint(parentEditPart, childRefEditPart, data);
-    if (a != null)
-    {   
-      int draggedFigureBoundsY = draggedFigureBounds.y + draggedFigureBounds.height/2;
-
-      pointList.addPoint(a); 
-      
-      if (data[0] == 0) // insert between 2 items
-      {                                         
-        int x = a.x + (draggedFigureBounds.x - a.x)/2;
-        pointList.addPoint(new Point(x, a.y));
-        pointList.addPoint(new Point(x, draggedFigureBoundsY));        
-        pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY));
-      }
-      else // insert at first or last position
-      {
-        pointList.addPoint(new Point(a.x, draggedFigureBoundsY));   
-        pointList.addPoint(new Point(draggedFigureBounds.x, draggedFigureBoundsY));
-      }
-    }       
-    return pointList;
-  }
-
-  // This method supports the preview connection line function related to drag and drop
-  //     
-  protected Point getConnectionPoint(ConnectableEditPart parentEditPart, BaseFieldEditPart childRefEditPart, int[] data)
-  {                      
-    Point point = null;     
-    List childList = parentEditPart.getChildren();         
-                                                                                                                                               
-    if (parentEditPart.getFigure() instanceof GenericGroupFigure && childList.size() > 0)
-    {   
-      point = new Point();
-
-      Rectangle r = getConnectedEditPartConnectionBounds(parentEditPart);  
-      point.x = r.x + r.width;
-      point.y = r.y + r.height/2;
-    }    
-    return point;
-  }
-
-  protected Rectangle getConnectedEditPartConnectionBounds(ConnectableEditPart editPart)
-  {
-	return ((GenericGroupFigure)editPart.getFigure()).getIconFigure().getBounds();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/AttributeGroupDefinitionEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/AttributeGroupDefinitionEditPart.java
deleted file mode 100644
index 5fe3da1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/AttributeGroupDefinitionEditPart.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAttributeGroupDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.CenteredConnectionAnchor;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.model.TargetConnectionSpaceFiller;
-import org.eclipse.wst.xsd.ui.internal.design.figures.GenericGroupFigure;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-
-public class AttributeGroupDefinitionEditPart extends ConnectableEditPart
-{
-  public AttributeGroupDefinitionEditPart()
-  {
-    super();
-  }
-
-  public XSDAttributeGroupDefinition getXSDAttributeGroupDefinition()
-  {
-    if (getModel() instanceof XSDAttributeGroupDefinitionAdapter)
-    {
-      XSDAttributeGroupDefinitionAdapter adapter = (XSDAttributeGroupDefinitionAdapter) getModel();
-      return (XSDAttributeGroupDefinition) adapter.getTarget();
-    }
-//    else if (getModel() instanceof XSDAttributeGroupDefinition)
-//    {
-//      return (XSDAttributeGroupDefinition) getModel();
-//    }
-    return null;
-
-  }
-
-  protected IFigure createFigure()
-  {
-    GenericGroupFigure figure = new GenericGroupFigure();
-    XSDAttributeGroupDefinitionAdapter adapter = (XSDAttributeGroupDefinitionAdapter) getModel();
-    figure.getIconFigure().image = adapter.getImage();
-    return figure;
-  }
-
-  protected List getModelChildren()
-  {
-    List list = new ArrayList();
-    
-    XSDAttributeGroupDefinitionAdapter adapter = (XSDAttributeGroupDefinitionAdapter)getModel();
-    XSDAttributeGroupDefinition attributeGroupDefinition = adapter.getXSDAttributeGroupDefinition();
-    Iterator i = attributeGroupDefinition.getResolvedAttributeGroupDefinition().getContents().iterator();
-
-    while (i.hasNext())
-    {
-      XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) i.next();
-
-      if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-      {
-        list.add(XSDAdapterFactory.getInstance().adapt(attrGroupContent));
-      }
-      else
-      {
-        list.add(new TargetConnectionSpaceFiller((XSDBaseAdapter)getModel()));
-      }
-    }
-    
-    if (list.isEmpty())
-    {
-      list.add(new TargetConnectionSpaceFiller((XSDBaseAdapter)getModel()));
-    }
-
-    return list;
-  }
-
-
-  public ReferenceConnection createConnectionFigure(BaseEditPart child)
-  {
-    ReferenceConnection connectionFigure = new ReferenceConnection();
-
-    connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(((GenericGroupFigure)getFigure()).getIconFigure(), CenteredConnectionAnchor.RIGHT, 0, 0));
-
-    if (child instanceof AttributeGroupDefinitionEditPart)
-    {
-      connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(((AttributeGroupDefinitionEditPart) child).getTargetFigure(), CenteredConnectionAnchor.LEFT, 0, 0));
-    }
-    else if (child instanceof TargetConnectionSpacingFigureEditPart)
-    {
-//      TargetConnectionSpacingFigureEditPart elem = (TargetConnectionSpacingFigureEditPart) child;
-      connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(((TargetConnectionSpacingFigureEditPart) child).getFigure(), CenteredConnectionAnchor.LEFT, 0, 0));
-    }
-
-    connectionFigure.setHighlight(false);
-    return connectionFigure;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/CategoryEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/CategoryEditPart.java
deleted file mode 100644
index e90a976..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/CategoryEditPart.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.ScrollPane;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.Viewport;
-import org.eclipse.draw2d.ViewportLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.CategoryAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.EditPartNavigationHandlerUtil;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.HeadingFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.RoundedLineBorder;
-import org.eclipse.wst.xsd.ui.internal.design.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.design.layouts.ContainerLayout;
-import org.eclipse.wst.xsd.ui.internal.design.layouts.FillLayout;
-
-public class CategoryEditPart extends BaseEditPart
-{
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
-  // CategoryFigure figure;
-  Figure outerPane;
-  HeadingFigure headingFigure;
-  protected ScrollPane scrollpane;
-
-  public int getType()
-  {
-    return ((CategoryAdapter) getModel()).getGroupType();
-  }
-
-  protected IFigure createFigure()
-  {
-    // figure = new CategoryFigure(getType());
-    outerPane = new Figure();
-    outerPane.setBorder(new RoundedLineBorder(1, 6));
-
-    headingFigure = new HeadingFigure();
-    outerPane.add(headingFigure);
-    headingFigure.getLabel().setText(((CategoryAdapter) getModel()).getText());
-    headingFigure.getLabel().setIcon(((CategoryAdapter) getModel()).getImage());
-
-    int minHeight = 250;
-    switch (getType())
-    {
-    case CategoryAdapter.DIRECTIVES:
-    {
-      minHeight = 80;
-      break;
-    }
-    case CategoryAdapter.ATTRIBUTES:
-    case CategoryAdapter.GROUPS:
-    {
-      minHeight = 100;
-      break;
-    }
-    }
-
-    final int theMinHeight = minHeight;
-    FillLayout outerLayout = new FillLayout()
-    {
-      protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-      {
-        Dimension d = super.calculatePreferredSize(parent, width, height);
-        d.union(new Dimension(250, theMinHeight));
-        return d;
-      }
-    };
-    outerPane.setLayoutManager(outerLayout);
-
-    RectangleFigure line = new RectangleFigure()
-    {
-      public Dimension getPreferredSize(int wHint, int hHint)
-      {
-        Dimension d = super.getPreferredSize(wHint, hHint);
-        d.width += 20;
-        d.height = 1;
-        return d;
-      }
-    };
-    ToolbarLayout lineLayout = new ToolbarLayout(false);
-    lineLayout.setVertical(true);
-    lineLayout.setStretchMinorAxis(true);
-    line.setLayoutManager(lineLayout);
-    outerPane.add(line);
-
-    scrollpane = new ScrollPane();
-    scrollpane.setVerticalScrollBarVisibility(ScrollPane.AUTOMATIC); // ScrollPane.ALWAYS);
-    outerPane.add(scrollpane);
-
-    Figure pane = new Figure();
-    pane.setBorder(new MarginBorder(5, 8, 5, 8));
-    ContainerLayout layout = new ContainerLayout();
-    layout.setHorizontal(false);
-    layout.setSpacing(0);
-    pane.setLayoutManager(layout);
-
-    Viewport viewport = new Viewport();
-    viewport.setContentsTracksHeight(true);
-    ViewportLayout viewportLayout = new ViewportLayout()
-    {
-      protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-      {
-        Dimension d = super.calculatePreferredSize(parent, width, height);
-        d.height = Math.min(d.height, theMinHeight - 25); // getViewer().getControl().getBounds().height);
-        d.width = Math.min(d.width, 300);
-        return d;
-      }
-    };
-    viewport.setLayoutManager(viewportLayout);
-
-    scrollpane.setViewport(viewport);
-    scrollpane.setContents(pane);
-
-    return outerPane;
-  }
-
-  public void refreshVisuals()
-  {
-    super.refreshVisuals();
-
-    RoundedLineBorder border = (RoundedLineBorder) outerPane.getBorder();
-    border.setWidth(isSelected ? 2 : 1);
-    headingFigure.setSelected(isSelected);
-    outerPane.repaint();
-
-    headingFigure.getLabel().setText(((CategoryAdapter) getModel()).getText());
-  }
-
-  public IFigure getContentPane()
-  {
-    return scrollpane.getContents();
-  }
-
-  public Label getNameLabel()
-  {
-    return headingFigure.getLabel();
-  }
-
-  public HeadingFigure getHeadingFigure()
-  {
-    return headingFigure;
-  }
-
-  protected EditPart createChild(Object model)
-  {
-    EditPart editPart = new TopLevelComponentEditPart();
-    editPart.setModel(model);
-    editPart.setParent(this);
-    return editPart;
-  }
-  
-  public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-  {
-    EditPart result = null; 
-    if (editPart instanceof TopLevelComponentEditPart)
-    {
-      if (direction == PositionConstants.SOUTH)
-      {
-        result = EditPartNavigationHandlerUtil.getNextSibling(editPart);
-      }
-      else if (direction == PositionConstants.NORTH)
-      {
-        result = EditPartNavigationHandlerUtil.getPrevSibling(editPart);
-      }      
-      if (result != null)
-      {
-        scrollTo((AbstractGraphicalEditPart)editPart);
-      }  
-    }     
-    else
-    {
-      result = ((BaseEditPart)getParent()).doGetRelativeEditPart(editPart, direction);
-    }  
-    return result;
-  }
-
-  protected void createEditPolicies()
-  {
-    super.createEditPolicies();
-    // cs : oddly arrowing up and down true items in the list is not handled nicely
-    // by the canned GEF GraphicalViewerKeyHandler so this navigation policy is need to fix that    
-    selectionHandlesEditPolicy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, selectionHandlesEditPolicy);
-  }
-
-  protected List getModelChildren()
-  {
-    CategoryAdapter adapter = (CategoryAdapter) getModel();
-    List children = new ArrayList(Arrays.asList(adapter.getAllChildren()));
-    return children;
-  }
-
-  public void scrollTo(AbstractGraphicalEditPart topLevel)
-  {
-    Rectangle topLevelBounds = topLevel.getFigure().getBounds();
-    Rectangle categoryBounds = figure.getBounds();
-    int scrollValue = scrollpane.getVerticalScrollBar().getValue();
-    int location = topLevelBounds.y + scrollValue - categoryBounds.y;
-    scrollpane.scrollVerticalTo(location - categoryBounds.height / 2);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ConnectableEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ConnectableEditPart.java
deleted file mode 100644
index 67e7a49..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ConnectableEditPart.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.design.figures.CenteredIconFigure;
-import org.eclipse.wst.xsd.ui.internal.design.figures.GenericGroupFigure;
-import org.eclipse.wst.xsd.ui.internal.design.figures.IExtendedFigureFactory;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-public abstract class ConnectableEditPart extends BaseEditPart
-{
-  protected ArrayList connectionFigures = new ArrayList();
-  
-  public IExtendedFigureFactory getExtendedFigureFactory()
-  {
-    EditPartFactory factory = getViewer().getEditPartFactory();
-    Assert.isTrue(factory instanceof IExtendedFigureFactory, "EditPartFactory must be an instanceof of IExtendedFigureFactory");     //$NON-NLS-1$
-    return (IExtendedFigureFactory)factory; 
-  }
-  
-  public ConnectableEditPart()
-  {
-    super();
-  }
-  
-  protected IFigure createFigure()
-  {
-    GenericGroupFigure figure = new GenericGroupFigure();
-    return figure;
-  }
-
-  public XSDConcreteComponent getXSDConcreteComponent()
-  {
-    return (XSDConcreteComponent)((XSDBaseAdapter)getModel()).getTarget();
-  }
-  
-  public List getConnectionFigures()
-  {
-    return connectionFigures;
-  }
-  
-  public abstract ReferenceConnection createConnectionFigure(BaseEditPart child);
-  
-  public void activate()
-  {
-    super.activate();
-    activateConnection();
-  }
-
-  protected void activateConnection()
-  {
-    if (connectionFigures == null)
-    {
-      connectionFigures = new ArrayList();
-    }
-    for (Iterator i = getChildren().iterator(); i.hasNext();)
-    {
-      Object o = i.next();
-      if (o instanceof BaseEditPart)
-      {
-        BaseEditPart g = (BaseEditPart) o;
-        ReferenceConnection figure = createConnectionFigure(g);
-        connectionFigures.add(figure);
-        figure.setPoints(figure.getPoints());
-
-        getLayer(LayerConstants.CONNECTION_LAYER).add(figure);
-      }
-    }
-  }
-  
-  public void deactivate()
-  {
-    super.deactivate();
-    deactivateConnection();
-  }
-
-  protected void deactivateConnection()
-  {
-    // if we have a connection, remove it
-    ReferenceConnection connectionFigure;
-    if (connectionFigures != null && !connectionFigures.isEmpty())
-    {
-      for (Iterator i = connectionFigures.iterator(); i.hasNext();)
-      {
-        connectionFigure = (ReferenceConnection) i.next();
-
-        if (getLayer(LayerConstants.CONNECTION_LAYER).getChildren().contains(connectionFigure))
-        {
-          getLayer(LayerConstants.CONNECTION_LAYER).remove(connectionFigure);
-        }
-      }
-      connectionFigures = null;
-    }
-  }
-
-  public void refresh()
-  {
-    super.refresh();
-    refreshConnection();
-  }
-
-  protected void refreshConnection()
-  {
-    if (!isActive())
-      return;
-
-    if (connectionFigures == null || connectionFigures.isEmpty())
-    {
-      activateConnection();
-    }
-    else
-    {
-      deactivateConnection();
-      activateConnection();
-    }
-  }
-  
-  public void addFeedback()
-  {
-    ReferenceConnection connectionFigure;
-    if (connectionFigures != null && !connectionFigures.isEmpty())
-    {
-      for (Iterator i = connectionFigures.iterator(); i.hasNext();)
-      {
-        connectionFigure = (ReferenceConnection) i.next();
-        connectionFigure.setHighlight(true);
-      }
-    }
-    GenericGroupFigure figure = (GenericGroupFigure)getFigure();
-    figure.getIconFigure().setMode(CenteredIconFigure.SELECTED);
-    figure.getIconFigure().refresh();
-  }
-  
-  public void removeFeedback()
-  {
-    ReferenceConnection connectionFigure;
-    if (connectionFigures != null && !connectionFigures.isEmpty())
-    {
-      for (Iterator i = connectionFigures.iterator(); i.hasNext();)
-      {
-        connectionFigure = (ReferenceConnection) i.next();
-        connectionFigure.setHighlight(false);
-      }
-    }
-    GenericGroupFigure figure = (GenericGroupFigure)getFigure();
-    figure.getIconFigure().setMode(CenteredIconFigure.NORMAL);
-    figure.getIconFigure().refresh();
-  }
-  
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-    GenericGroupFigure figure = (GenericGroupFigure)getFigure();
-    figure.getIconFigure().refresh();
-  }
-
-  protected void createEditPolicies()
-  {
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new ADTSelectionFeedbackEditPolicy());
-  }
-
-  protected void addChildVisual(EditPart childEditPart, int index)
-  {
-    IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
-    getContentPane().add(child, index);
-  }
-
-  protected void removeChildVisual(EditPart childEditPart)
-  {
-    IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
-    getContentPane().remove(child);
-  }
-  
-  public IFigure getContentPane()
-  {
-    return ((GenericGroupFigure)getFigure()).getContentFigure();
-  }
-
-  public Figure getTargetFigure()
-  {
-    return ((GenericGroupFigure)getFigure()).getTargetFigure();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ModelGroupDefinitionReferenceEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ModelGroupDefinitionReferenceEditPart.java
deleted file mode 100644
index 248e6e6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ModelGroupDefinitionReferenceEditPart.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDModelGroupDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.CenteredConnectionAnchor;
-import org.eclipse.wst.xsd.ui.internal.design.figures.GenericGroupFigure;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-
-public class ModelGroupDefinitionReferenceEditPart extends ConnectableEditPart
-{
-  GenericGroupFigure figure;
-  
-  public ModelGroupDefinitionReferenceEditPart()
-  {
-    super();
-  }
-
-  protected IFigure createFigure()
-  {
-    figure = new GenericGroupFigure();
-    return figure;
-  }
-  
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-    XSDModelGroupDefinitionAdapter adapter = (XSDModelGroupDefinitionAdapter)getModel();
-    figure.getIconFigure().image = adapter.getImage();
-
-    GenericGroupFigure groupFigure = (GenericGroupFigure)getFigure();
-    String nodeName = "";
-    
-    // TODO: commmon this up with ModelGroupEditPart, XSDParticleAdapter's code
-    
-    // -2 means the user didn't specify (so the default is 1)
-    int minOccurs = adapter.getMinOccurs();
-    int maxOccurs = adapter.getMaxOccurs();
-    String occurenceDescription = ""; //$NON-NLS-1$
-    
-    if (minOccurs == -3 && maxOccurs == -3)
-    {
-      occurenceDescription = nodeName;
-      groupFigure.setText(null);
-    }
-    else if (minOccurs == 0 && (maxOccurs == -2 || maxOccurs == 1))
-    {
-      occurenceDescription = nodeName + " [0..1]"; //$NON-NLS-1$
-      groupFigure.setText("0..1");
-    }
-    else if ((minOccurs == 1 && maxOccurs == 1) ||
-             (minOccurs == -2 && maxOccurs == 1) ||
-             (minOccurs == 1 && maxOccurs == -2))
-    {
-      occurenceDescription = nodeName + " [1..1]"; //$NON-NLS-1$
-      groupFigure.setText("1..1");
-    }
-    else if (minOccurs == -2 && maxOccurs == -2)
-    {
-      occurenceDescription = nodeName;
-      groupFigure.setText(null);
-    }
-    else
-    {
-      if (maxOccurs == -2) maxOccurs = 1;
-      String maxSymbol = maxOccurs == -1 ? "*" : "" + maxOccurs; //$NON-NLS-1$ //$NON-NLS-2$
-      
-      String minSymbol = minOccurs == -2 ? "1" : "" + minOccurs; //$NON-NLS-1$ //$NON-NLS-2$
-      occurenceDescription = nodeName + " [" + minSymbol + ".." + maxSymbol + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      groupFigure.setText(minSymbol + ".." + maxSymbol);
-    }
-
-    groupFigure.getIconFigure().setToolTipText(occurenceDescription);
-    groupFigure.getIconFigure().repaint();
-
-  }
-
-  protected List getModelChildren()
-  {
-    List list = new ArrayList();
-
-    XSDModelGroupDefinitionAdapter adapter = (XSDModelGroupDefinitionAdapter)getModel();
-    XSDModelGroup xsdModelGroup = ((XSDModelGroupDefinition) adapter.getTarget()).getResolvedModelGroupDefinition().getModelGroup();
-    if (xsdModelGroup != null)
-      list.add(XSDAdapterFactory.getInstance().adapt(xsdModelGroup));
-    return list;
-  }
-
-  public ReferenceConnection createConnectionFigure(BaseEditPart child)
-  {
-    ReferenceConnection connectionFigure = new ReferenceConnection();
-
-    connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(((GenericGroupFigure)getFigure()).getIconFigure(), CenteredConnectionAnchor.RIGHT, 0, 0));
-
-    if (child instanceof ModelGroupEditPart)
-    {
-      connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(((ModelGroupEditPart) child).getTargetFigure(), CenteredConnectionAnchor.LEFT, 0, 0));
-    }
-    connectionFigure.setHighlight(false);
-    return connectionFigure;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ModelGroupEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ModelGroupEditPart.java
deleted file mode 100644
index 654558f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ModelGroupEditPart.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDModelGroupAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.CenteredConnectionAnchor;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.model.TargetConnectionSpaceFiller;
-import org.eclipse.wst.xsd.ui.internal.design.figures.GenericGroupFigure;
-import org.eclipse.wst.xsd.ui.internal.design.figures.ModelGroupFigure;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class ModelGroupEditPart extends ConnectableEditPart
-{
-  protected IFigure createFigure()
-  {
-    return getExtendedFigureFactory().createModelGroupFigure(getModel());
-  }
-  
-  public XSDParticle getXSDParticle()
-  {
-    Object o = getXSDModelGroup().getContainer();
-    return (o instanceof XSDParticle) ? (XSDParticle) o : null;
-  }
-
-  public XSDModelGroup getXSDModelGroup()
-  {
-    if (getModel() instanceof XSDModelGroupAdapter)
-    {
-      XSDModelGroupAdapter adapter = (XSDModelGroupAdapter) getModel();
-      return (XSDModelGroup) adapter.getTarget();
-    }
-//    else if (getModel() instanceof XSDModelGroup)
-//    {
-//      return (XSDModelGroup) getModel();
-//    }
-    return null;
-
-  }
-
-  
-  
-  protected void refreshVisuals()
-  {
-    boolean isReadOnly = false;
-    GenericGroupFigure modelGroupFigure = (GenericGroupFigure)getFigure();
-    
-    XSDModelGroupAdapter adapter = (XSDModelGroupAdapter) getModel();
-    isReadOnly = adapter.isReadOnly();
-    
-    String nodeName = "";
-    Image image;
-    switch (getXSDModelGroup().getCompositor().getValue())
-    {
-      case XSDCompositor.ALL:
-      {
-        image = isReadOnly ? ModelGroupFigure.ALL_ICON_DISABLED_IMAGE :ModelGroupFigure.ALL_ICON_IMAGE;
-        modelGroupFigure.getIconFigure().image = XSDCommonUIUtils.getUpdatedImage((XSDConcreteComponent)adapter.getTarget(), image, isReadOnly);
-        nodeName = XSDConstants.ALL_ELEMENT_TAG;
-        break;
-      }
-      case XSDCompositor.CHOICE:
-      {
-        image = isReadOnly ? ModelGroupFigure.CHOICE_ICON_DISABLED_IMAGE : ModelGroupFigure.CHOICE_ICON_IMAGE;
-        modelGroupFigure.getIconFigure().image = XSDCommonUIUtils.getUpdatedImage((XSDConcreteComponent)adapter.getTarget(), image, isReadOnly); 
-        nodeName = XSDConstants.CHOICE_ELEMENT_TAG;
-        break;
-      }
-      case XSDCompositor.SEQUENCE:
-      {
-        image = isReadOnly ? ModelGroupFigure.SEQUENCE_ICON_DISABLED_IMAGE : ModelGroupFigure.SEQUENCE_ICON_IMAGE;
-        modelGroupFigure.getIconFigure().image = XSDCommonUIUtils.getUpdatedImage((XSDConcreteComponent)adapter.getTarget(), image, isReadOnly); 
-        nodeName = XSDConstants.SEQUENCE_ELEMENT_TAG;
-        break;
-      }
-    }
-    
-//    String occurenceDescription = adapter.getNameAnnotationToolTipString();
-//    modelGroupFigure.getIconFigure().setToolTip(occurenceDescription);
-
-    // TODO: commmon this up with XSDParticleAdapter's code
-    
-    // -2 means the user didn't specify (so the default is 1)
-    int minOccurs = adapter.getMinOccurs();
-    int maxOccurs = adapter.getMaxOccurs();
-    String occurenceDescription = ""; //$NON-NLS-1$
-    
-    if (minOccurs == -3 && maxOccurs == -3)
-    {
-      occurenceDescription = nodeName;
-      modelGroupFigure.setText(null);
-    }
-    else if (minOccurs == 0 && (maxOccurs == -2 || maxOccurs == 1))
-    {
-      occurenceDescription = nodeName + " [0..1]"; //$NON-NLS-1$
-      modelGroupFigure.setText("0..1");
-    }
-    else if ((minOccurs == 1 && maxOccurs == 1) ||
-             (minOccurs == -2 && maxOccurs == 1) ||
-             (minOccurs == 1 && maxOccurs == -2))
-    {
-      occurenceDescription = nodeName + " [1..1]"; //$NON-NLS-1$
-      modelGroupFigure.setText("1..1");
-    }
-    else if (minOccurs == -2 && maxOccurs == -2)
-    {
-      occurenceDescription = nodeName;
-      modelGroupFigure.setText(null);
-    }
-    else
-    {
-      if (maxOccurs == -2) maxOccurs = 1;
-      String maxSymbol = maxOccurs == -1 ? "*" : "" + maxOccurs; //$NON-NLS-1$ //$NON-NLS-2$
-      
-      String minSymbol = minOccurs == -2 ? "1" : "" + minOccurs; //$NON-NLS-1$ //$NON-NLS-2$
-      occurenceDescription = nodeName + " [" + minSymbol + ".." + maxSymbol + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-      modelGroupFigure.setText(minSymbol + ".." + maxSymbol);
-    }
-
-    modelGroupFigure.getIconFigure().setToolTipText(occurenceDescription);
-    modelGroupFigure.getIconFigure().repaint();
-
-    refreshConnection();
-  }
-
-  protected List getModelChildren()
-  {
-//    XSDModelGroupAdapter modelGroupAdapter = (XSDModelGroupAdapter)getModel();
-//    ArrayList ch = new ArrayList();
-//    ITreeElement [] tree = modelGroupAdapter.getChildren();
-//    int length = tree.length;
-//    for (int i = 0; i < length; i++)
-//    {
-//      ch.add(tree[i]);
-//    }
-
-    List list = new ArrayList();
-    XSDModelGroup xsdModelGroup = getXSDModelGroup();
-    for (Iterator i = xsdModelGroup.getContents().iterator(); i.hasNext();)
-    {
-      XSDParticle next = (XSDParticle) i.next();
-      if (next.getContent() instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration elementDeclaration = (XSDElementDeclaration) next.getContent();
-        Adapter adapter = XSDAdapterFactory.getInstance().adapt(elementDeclaration);
-        list.add(new TargetConnectionSpaceFiller((XSDBaseAdapter)adapter));
-      }
-      if (next.getContent() instanceof XSDModelGroupDefinition)
-      {
-        XSDModelGroupDefinition def = (XSDModelGroupDefinition) next.getContent();
-        Adapter adapter = XSDAdapterFactory.getInstance().adapt(def);
-        list.add(adapter);
-      }
-      else if (next.getTerm() instanceof XSDModelGroup)
-      {
-        XSDModelGroup modelGroup = (XSDModelGroup) next.getTerm();
-        Adapter adapter = XSDAdapterFactory.getInstance().adapt(modelGroup);
-        list.add(adapter);
-      }
-      else if (next.getTerm() instanceof XSDWildcard)
-      {
-        XSDWildcard wildCard = (XSDWildcard)next.getTerm();
-        Adapter adapter = XSDAdapterFactory.getInstance().adapt(wildCard);
-        list.add(new TargetConnectionSpaceFiller((XSDBaseAdapter)adapter));
-      }
-    }
-
-    if (list.size() == 0)
-      list.add(new TargetConnectionSpaceFiller(null));
-
-    return list;
-//    return ch;
-  }
-
-  public ReferenceConnection createConnectionFigure(BaseEditPart child)
-  {
-    ReferenceConnection connectionFigure = new ReferenceConnection();
-    GenericGroupFigure modelGroupFigure = (GenericGroupFigure)getFigure();
-  
-    connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(modelGroupFigure.getIconFigure(), CenteredConnectionAnchor.RIGHT, 0, 0));
-
-    if (child instanceof ModelGroupEditPart)
-    {
-      connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(((ModelGroupEditPart) child).getTargetFigure(), CenteredConnectionAnchor.LEFT, 0, 0));
-    }
-    else if (child instanceof TargetConnectionSpacingFigureEditPart)
-    {
-      TargetConnectionSpacingFigureEditPart elem = (TargetConnectionSpacingFigureEditPart) child;
-      connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(elem.getFigure(), CenteredConnectionAnchor.LEFT, 0, 1));
-    }
-    else if (child instanceof ModelGroupDefinitionReferenceEditPart)
-    {
-      ModelGroupDefinitionReferenceEditPart elem = (ModelGroupDefinitionReferenceEditPart) child;
-      connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(elem.getFigure(), CenteredConnectionAnchor.LEFT, 0, 1));
-    }
-    connectionFigure.setHighlight(false);
-    return connectionFigure;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ReferenceConnection.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ReferenceConnection.java
deleted file mode 100644
index 4ecafc5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/ReferenceConnection.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.ConnectionRouter;
-import org.eclipse.draw2d.PolylineConnection;
-import org.eclipse.swt.graphics.Color;
-
-public class ReferenceConnection extends PolylineConnection
-{
-  protected boolean highlight = false;
-
-  protected static final Color activeConnection = ColorConstants.black;
-  public static final Color inactiveConnection = new Color(null, 198, 195, 198);
-
-  public ReferenceConnection()
-  {
-    super();
-    setConnectionRouter(new XSDModelGroupRouter());
-  }
-
-  public void setConnectionRouter(ConnectionRouter cr)
-  {
-    if (cr != null && getConnectionRouter() != null && !(getConnectionRouter() instanceof XSDModelGroupRouter))
-      super.setConnectionRouter(cr);
-  }
-
-  public boolean isHighlighted()
-  {
-    return highlight;
-  }
-
-  public void setHighlight(boolean highlight)
-  {
-    this.highlight = highlight;
-    setForegroundColor(highlight ? activeConnection : inactiveConnection);
-    setOpaque(highlight);
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/SpaceFillerForFieldEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/SpaceFillerForFieldEditPart.java
deleted file mode 100644
index e8db41c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/SpaceFillerForFieldEditPart.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseFieldEditPart;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public class SpaceFillerForFieldEditPart extends BaseFieldEditPart
-{
-  Label space;
-  public SpaceFillerForFieldEditPart()
-  {
-    super();
-  }
-
-  protected IFigure createFigure()
-  {
-    space = new Label(""); //$NON-NLS-1$
-    space.setIcon(XSDEditorPlugin.getXSDImage("icons/Dot.gif")); //$NON-NLS-1$
-    space.setBorder(new MarginBorder(3, 0, 3, 0));
-    return space;
-  }
-
-  protected void refreshVisuals()
-  {
-  }
-
-  protected void createEditPolicies()
-  {
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TargetConnectionSpacingFigureEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TargetConnectionSpacingFigureEditPart.java
deleted file mode 100644
index 954c386..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TargetConnectionSpacingFigureEditPart.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.figures.SpacingFigure;
-
-public class TargetConnectionSpacingFigureEditPart extends BaseEditPart
-{
-  public TargetConnectionSpacingFigureEditPart()
-  {
-    super();
-  }
-
-  SpacingFigure figure;
-
-  protected IFigure createFigure()
-  {
-    figure = new SpacingFigure();
-    return figure;
-  }
-
-  public IFigure getConnectionFigure()
-  {
-    return figure;
-  }
-
-  protected void createEditPolicies()
-  {
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TopLevelComponentEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TopLevelComponentEditPart.java
deleted file mode 100644
index cac822a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/TopLevelComponentEditPart.java
+++ /dev/null
@@ -1,375 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.SelectionEditPolicy;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.parts.AbstractEditPartViewer;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDSchemaDirectiveAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.SetInputToGraphView;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.INamedEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IFeedbackHandler;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.IADTUpdateCommand;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.FieldFigure;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.design.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.design.editpolicies.TopLevelComponentLabelCellEditorLocator;
-import org.eclipse.wst.xsd.ui.internal.design.editpolicies.TopLevelNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.design.figures.HyperLinkLabel;
-import org.eclipse.wst.xsd.ui.internal.design.layouts.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.utils.OpenOnSelectionHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.impl.XSDImportImpl;
-
-public class TopLevelComponentEditPart extends BaseEditPart implements IFeedbackHandler, INamedEditPart
-{
-  protected Label label;
-  // protected Label arrowLabel;
-  protected Figure labelHolder = new Figure();
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
-  protected ADTDirectEditPolicy adtDirectEditPolicy = new ADTDirectEditPolicy();
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-  protected boolean isReadOnly;
-  protected boolean isSelected;
-
-  protected IFigure createFigure()
-  {
-    Figure typeGroup = new Figure();
-    typeGroup.setLayoutManager(new ToolbarLayout());
-
-    labelHolder = new Figure();
-    FillLayout fillLayout = new FillLayout();
-    labelHolder.setLayoutManager(fillLayout);
-    typeGroup.add(labelHolder);
-
-    label = new HyperLinkLabel();
-    label.setOpaque(true);
-    label.setBorder(new MarginBorder(0, 2, 2, 1));
-    label.setForegroundColor(ColorConstants.black);
-    labelHolder.add(label);
-
-    return typeGroup;
-  }
-
-  public void deactivate()
-  {
-    super.deactivate();
-  }
-
-  public void refreshVisuals()
-  {
-    XSDBaseAdapter adapter = (XSDBaseAdapter) getModel();
-    if (adapter != null)
-    {
-      isReadOnly = adapter.isReadOnly();
-      label.setForegroundColor(computeLabelColor());
-      label.setText(adapter.getText());
-      Image image = adapter.getImage();
-      if (image != null)
-      {
-        label.setIcon(XSDCommonUIUtils.getUpdatedImage((XSDConcreteComponent) adapter.getTarget(), image, isReadOnly));
-      }
-      // arrowLabel.setVisible(Boolean.TRUE.equals(adapter.getProperty(getModel(),
-      // "drillDown")));
-    }
-    else
-    {
-      label.setText(Messages._UI_GRAPH_UNKNOWN_OBJECT + getModel().getClass().getName());
-      // arrowLabel.setVisible(false);
-    }
-
-    if (reselect)
-    {
-      getViewer().select(this);
-      setReselect(false);
-    }
-  }
-
-  // public XSDNamedComponent getXSDNamedComponent()
-  // {
-  // return (XSDNamedComponent) getModel();
-  // }
-
-  public List getModelChildren()
-  {
-    return Collections.EMPTY_LIST;
-  }
-  
-  public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-  {
-    return ((BaseEditPart)this.getParent()).doGetRelativeEditPart(editPart, direction);
-  }
-
-  protected void createEditPolicies()
-  {
-    super.createEditPolicies();
-    // installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new
-    // NonResizableEditPolicy());
-    // selectionHandlesEditPolicy = new SelectionHandlesEditPolicyImpl();
-    // installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE,
-    // selectionHandlesEditPolicy);
-
-    SelectionHandlesEditPolicyImpl policy = new SelectionHandlesEditPolicyImpl();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, policy);
-
-    SelectionEditPolicy feedBackSelectionEditPolicy = new SelectionEditPolicy()
-    {
-      protected void hideSelection()
-      {
-        EditPart editPart = getHost();
-        if (editPart instanceof IFeedbackHandler)
-        {
-          ((IFeedbackHandler) editPart).removeFeedback();
-        }
-      }
-
-      protected void showSelection()
-      {
-        EditPart editPart = getHost();
-        if (editPart instanceof IFeedbackHandler)
-        {
-          ((IFeedbackHandler) editPart).addFeedback();
-        }
-      }
-    };
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, feedBackSelectionEditPolicy);
-
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, adtDirectEditPolicy);
-  }
-
-  public Color computeLabelColor()
-  {
-    Color color = ColorConstants.black;
-    if (isSelected)
-    {
-      color = ColorConstants.black;
-    }
-    else if (isReadOnly)
-    {
-      color = ColorConstants.gray;
-    }
-    return color;
-  }
-
-  public void addFeedback()
-  {
-    isSelected = true;
-
-    labelHolder.setBackgroundColor(FieldFigure.cellColor);
-    label.setForegroundColor(computeLabelColor());
-    // labelHolder.setFill(true);
-
-    if (doScroll)
-    {
-      CategoryEditPart categoryEP = (CategoryEditPart) getParent();
-      categoryEP.scrollTo(this);
-      setScroll(false);
-    }
-  }
-
-  private boolean doScroll = false;
-
-  public void setScroll(boolean doScroll)
-  {
-    this.doScroll = doScroll;
-  }
-
-  public void removeFeedback()
-  {
-    isSelected = false;
-    labelHolder.setBackgroundColor(null);
-    label.setForegroundColor(computeLabelColor());
-    // labelHolder.setFill(false);
-  }
-
-  public void performRequest(Request request)
-  {
-    // Do not open on or set focus on direct edit type 
-    if (request.getType() == RequestConstants.REQ_OPEN)
-    {
-
-      Object model = getModel();
-      if (model instanceof IGraphElement)
-      {
-        if (((IGraphElement)model).isFocusAllowed())
-        {
-          if (request instanceof LocationRequest)
-          {
-            LocationRequest locationRequest = (LocationRequest) request;
-            Point p = locationRequest.getLocation();
-
-            if (hitTest(labelHolder, p))
-            {
-              performDrillDownAction();
-            }
-          }
-        }
-      }
-      else if (model instanceof XSDSchemaDirectiveAdapter)
-      {
-        if (request instanceof LocationRequest)
-        {
-          LocationRequest locationRequest = (LocationRequest) request;
-          Point p = locationRequest.getLocation();
-
-          if (hitTest(labelHolder, p))
-          {
-            XSDSchemaDirective dir = (XSDSchemaDirective)((XSDSchemaDirectiveAdapter)model).getTarget();
-            String schemaLocation = "";
-            // force load of imported schema
-            if (dir instanceof XSDImportImpl)
-            {
-              ((XSDImportImpl)dir).importSchema();
-            }
-            if (dir.getResolvedSchema() != null)
-            {
-              schemaLocation = URIHelper.removePlatformResourceProtocol(dir.getResolvedSchema().getSchemaLocation());
-              if (schemaLocation != null)
-              {
-                OpenOnSelectionHelper.openXSDEditor(schemaLocation);
-              }
-            }
-          }
-        }        
-      }
-    }
-  }
-
-  public boolean hitTest(IFigure target, Point location)
-  {
-    Rectangle b = target.getBounds().getCopy();
-    target.translateToAbsolute(b);
-    return b.contains(location);
-  }
-
-  protected void performDrillDownAction()
-  {
-    Runnable runnable = new Runnable()
-    {
-      public void run()
-      {
-        EditPart editPart = ((AbstractEditPartViewer) getViewer()).getRootEditPart().getContents();
-        if (editPart instanceof RootContentEditPart)
-        {
-          IEditorPart editorPart = getEditorPart();
-          ActionRegistry registry = (ActionRegistry) editorPart.getAdapter(ActionRegistry.class);
-          IAction action = registry.getAction(SetInputToGraphView.ID);
-          action.run();
-        }
-      }
-    };
-    Display.getCurrent().asyncExec(runnable);
-  }
-  
-  public void doEditName(boolean addFromDesign)
-  {
-    if (!addFromDesign) return;
-    
-//    removeFeedback();
-
-    Object object = ((XSDBaseAdapter) getModel()).getTarget();
-    if (object instanceof XSDNamedComponent)
-    {
-      Point p = label.getLocation();
-      TopLevelNameDirectEditManager manager = new TopLevelNameDirectEditManager(TopLevelComponentEditPart.this, new TopLevelComponentLabelCellEditorLocator(TopLevelComponentEditPart.this, p), (XSDNamedComponent) object);
-      NameUpdateCommandWrapper wrapper = new NameUpdateCommandWrapper();
-      adtDirectEditPolicy.setUpdateCommand(wrapper);
-      manager.show();
-    }
-  }
-  
-  class NameUpdateCommandWrapper extends Command implements IADTUpdateCommand
-  {
-    Command command;
-    protected DirectEditRequest request;
-    
-    public NameUpdateCommandWrapper()
-    {
-      super(Messages._UI_ACTION_UPDATE_NAME);
-    }
-
-    public void setRequest(DirectEditRequest request)
-    {
-      this.request = request;
-    }
-    
-    public void execute()
-    {
-      XSDBaseAdapter adapter = (XSDBaseAdapter)getModel();
-      Object newValue = request.getCellEditor().getValue();
-      if (newValue instanceof String && ((String)newValue).length() > 0)
-      {
-        UpdateNameCommand command = new UpdateNameCommand(Messages._UI_ACTION_UPDATE_NAME, (XSDNamedComponent)adapter.getTarget(), (String)newValue);
-        if (command != null)
-          command.execute();
-      }
-     }
-  }
-
-  static boolean reselect = false;
-
-  public void setReselect(boolean state)
-  {
-    reselect = state;
-  }
-
-  public Label getNameLabelFigure()
-  {
-    return label;
-  }
-
-  public void performDirectEdit(Point cursorLocation)
-  {
-   
-  }
-  
-  public void setSelected(int value)
-  {
-    // if it is selected, we want to scroll to it
-    if (doScroll)
-      setScroll(true);
-    super.setSelected(value);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDAttributesForAnnotationEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDAttributesForAnnotationEditPart.java
deleted file mode 100644
index a882ffd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDAttributesForAnnotationEditPart.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDComplexTypeDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.Annotation;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-
-public class XSDAttributesForAnnotationEditPart extends BaseEditPart
-{
-  IComplexType complexType;
-  public XSDAttributesForAnnotationEditPart()
-  {
-    super();
-  }
-
-  protected IFigure createFigure()
-  {
-    Figure fig = new Figure();
-    fig.setLayoutManager(new ToolbarLayout());
-    return fig;
-  }
-
-  protected void createEditPolicies()
-  {
-
-  }
-
-  protected List getModelChildren()
-  {
-    IStructure structure =  ((Annotation)getModel()).getOwner();
-    if (structure instanceof IComplexType)
-    {  
-      complexType = (IComplexType)structure;
-      if (complexType instanceof XSDComplexTypeDefinitionAdapter)
-      {
-        XSDComplexTypeDefinitionAdapter adapter = (XSDComplexTypeDefinitionAdapter) complexType;
-        return adapter.getAttributeGroupContent();
-      }
-    }
-    return Collections.EMPTY_LIST;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDBaseFieldEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDBaseFieldEditPart.java
deleted file mode 100644
index b118683..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDBaseFieldEditPart.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.IAnnotationProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseFieldEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IFieldFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.design.editpolicies.DragAndDropEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.design.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-public class XSDBaseFieldEditPart extends BaseFieldEditPart
-{
-
-  public XSDBaseFieldEditPart()
-  {
-    super();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
-   */
-  protected void refreshVisuals()
-  {
-    IFieldFigure figure = getFieldFigure();
-    IField field = (IField) getModel();
-    
-    figure.getNameLabel().setText(field.getName());
-    figure.getTypeLabel().setText(field.getTypeName());
-    figure.refreshVisuals(getModel());
-    if (field.isReadOnly())
-      figure.setForegroundColor(ColorConstants.darkGray);
-    else
-      figure.setForegroundColor(ColorConstants.black);
-
-    String occurrenceDescription = ""; //$NON-NLS-1$
-    if (field instanceof IAnnotationProvider)
-    {
-      occurrenceDescription = ((IAnnotationProvider)field).getNameAnnotationString();
-    }
-    refreshIcon();
-    figure.getNameAnnotationLabel().setText(occurrenceDescription);
-    
-    figure.recomputeLayout();
-
-
-    if (getRoot() != null)
-      ((GraphicalEditPart)getRoot()).getFigure().invalidateTree();
-  }
-  
-  protected void refreshIcon()  
-  {
-    IFieldFigure figure = getFieldFigure();   
-    // our model implements ITreeElement
-    if (getModel() instanceof XSDBaseAdapter)
-    {
-      Image image = ((XSDBaseAdapter)getModel()).getImage();
-      boolean isReadOnly = ((XSDBaseAdapter)getModel()).isReadOnly();
-      figure.getNameLabel().setIcon(image);
-      
-      if (image != null)
-      {
-        XSDConcreteComponent comp = (XSDConcreteComponent) ((XSDBaseAdapter)getModel()).getTarget();
-        figure.getNameLabel().setIcon(XSDCommonUIUtils.getUpdatedImage(comp, image, isReadOnly));
-      }
-    }    
-  }
-
-  public void addNotify()
-  {
-    super.addNotify();
-    getFieldFigure().editPartAttached(this);
-  }
-
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy = new SelectionHandlesEditPolicyImpl();
-  protected void createEditPolicies()
-  {
-    super.createEditPolicies();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, selectionHandlesEditPolicy);
-    installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new DragAndDropEditPolicy(getViewer(), selectionHandlesEditPolicy));
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDEditPartFactory.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDEditPartFactory.java
deleted file mode 100644
index 033637b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDEditPartFactory.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.CategoryAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAttributeGroupDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDModelGroupAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDModelGroupDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDSchemaAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDSimpleTypeDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.ADTEditPartFactory;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.ColumnEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.CompartmentEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.Annotation;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.ICompartmentFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IFieldFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IStructureFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.TypeVizFigureFactory;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.model.SpaceFiller;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.model.TargetConnectionSpaceFiller;
-import org.eclipse.wst.xsd.ui.internal.design.figures.IExtendedFigureFactory;
-import org.eclipse.wst.xsd.ui.internal.design.figures.IModelGroupFigure;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-public class XSDEditPartFactory extends ADTEditPartFactory implements IExtendedFigureFactory
-{
-  protected IExtendedFigureFactory delegate;
-  
-  public XSDEditPartFactory()
-  {
-    delegate = XSDEditorPlugin.getPlugin().getXSDEditorConfiguration().getFigureFactory();
-    if (delegate == null)
-      delegate = new TypeVizFigureFactory();
-  }
-  
-  public XSDEditPartFactory(IExtendedFigureFactory figureFactory)
-  {
-    delegate = figureFactory;
-  }
-  
-
-  public EditPart doCreateEditPart(EditPart context, Object model)
-  {
-    EditPart child = null;
-    // Override edit part where desired
-    
-    if (model instanceof IField)
-    {
-      if (model instanceof SpaceFiller)
-      {
-        child = new SpaceFillerForFieldEditPart();
-      }
-      else if (context instanceof CompartmentEditPart)
-      {  
-        child = new XSDBaseFieldEditPart();
-      }
-    }
-    else if (model instanceof XSDSchemaAdapter)
-    {
-      child = new XSDSchemaEditPart();
-    }
-    else if (model instanceof CategoryAdapter)
-    {
-      child = new CategoryEditPart();
-    }
-    else if (model instanceof XSDSimpleTypeDefinitionAdapter)
-    {
-      child = new XSDSimpleTypeEditPart();
-    }
-    else if (model instanceof XSDModelGroupAdapter)
-    {
-      child = new ModelGroupEditPart();
-    }
-    else if (model instanceof Annotation)
-    {
-      Annotation annotation = (Annotation) model;
-      String kind = annotation.getCompartment().getKind();
-      if (kind.equals("element")) //$NON-NLS-1$
-      {
-        child = new XSDGroupsForAnnotationEditPart();
-      }
-      else if (kind.equals("attribute")) //$NON-NLS-1$
-      {
-        child = new XSDAttributesForAnnotationEditPart();
-      }
-    }
-    else if (!(context instanceof ColumnEditPart))
-    {   
-      if (model instanceof TargetConnectionSpaceFiller)
-      {
-        child = new TargetConnectionSpacingFigureEditPart();
-      }
-      else if (model instanceof XSDModelGroupDefinitionAdapter)
-      {
-        child = new ModelGroupDefinitionReferenceEditPart();
-      }
-      else if (model instanceof XSDAttributeGroupDefinitionAdapter)
-      {
-        child = new AttributeGroupDefinitionEditPart();
-      }
-    }
-    // if we don't have a specialzied XSD edit part to create
-    // then we simply call the super class to create a generic ADT edit part
-    //
-    if (child == null)
-    {
-      child = super.doCreateEditPart(context, model);
-    }
-
-    // if at this this point we have not created an edit part we simply
-    // create a placeholder edit part to provide the most robust behaviour possible
-    //    
-    if (child == null)
-    {
-      // TODO (cs) log an error message here, since we shouldn't really get here 
-      child = new SpaceFillerForFieldEditPart();
-    }  
-    return child;
-  }
-
-  public ICompartmentFigure createCompartmentFigure(Object model)
-  {
-    return delegate.createCompartmentFigure(model);
-  }
-  
-  public IStructureFigure createStructureFigure(Object model)
-  {
-    IStructureFigure figure = delegate.createStructureFigure(model);
-    if (model instanceof XSDBaseAdapter)
-    {
-      XSDConcreteComponent comp = (XSDConcreteComponent) ((XSDBaseAdapter)model).getTarget();
-      boolean isReadOnly = ((XSDBaseAdapter)model).isReadOnly();
-      figure.getNameLabel().setIcon(XSDCommonUIUtils.getUpdatedImage( comp, ((XSDBaseAdapter)model).getImage(), isReadOnly));
-    }
-    return figure;
-  }  
-
-  public IFieldFigure createFieldFigure(Object model)
-  {
-    return delegate.createFieldFigure(model);
-  }
-  
-  public IModelGroupFigure createModelGroupFigure(Object model)
-  {
-    return delegate.createModelGroupFigure(model);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDGroupsForAnnotationEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDGroupsForAnnotationEditPart.java
deleted file mode 100644
index 3abe794..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDGroupsForAnnotationEditPart.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDComplexTypeDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDModelGroupDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.Annotation;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-
-public class XSDGroupsForAnnotationEditPart extends BaseEditPart
-{
-  IComplexType complexType;
-  public XSDGroupsForAnnotationEditPart()
-  {
-    super();
-  }
-
-  protected IFigure createFigure()
-  {
-    Figure fig = new Figure();
-    fig.setLayoutManager(new ToolbarLayout());
-    return fig;
-  }
-
-  protected void createEditPolicies()
-  {
-
-  }
-
-  protected List getModelChildren()
-  {
-    List xsdModelGroupList = new ArrayList();
-    List adapterList = new ArrayList();
-    
-    IStructure structure =  ((Annotation)getModel()).getOwner();
-    if (structure instanceof IComplexType)
-    {  
-      complexType = (IComplexType)structure;
-      if (complexType instanceof XSDComplexTypeDefinitionAdapter)
-      {
-        XSDComplexTypeDefinitionAdapter adapter = (XSDComplexTypeDefinitionAdapter) complexType;
-        xsdModelGroupList = adapter.getModelGroups();
-      }
-      
-      for (Iterator i = xsdModelGroupList.iterator(); i.hasNext(); )
-      {
-        Object obj = i.next();
-        if (obj instanceof XSDModelGroup)
-        {
-          adapterList.add(XSDAdapterFactory.getInstance().adapt((XSDModelGroup)obj));
-        }
-        else if (obj instanceof XSDModelGroupDefinition)
-        {
-          adapterList.add(XSDAdapterFactory.getInstance().adapt((XSDModelGroupDefinition)obj));
-        }
-      }
-    }
-    else if (structure instanceof XSDModelGroupDefinitionAdapter)
-    {
-      XSDModelGroupDefinitionAdapter adapter = (XSDModelGroupDefinitionAdapter) structure;
-      XSDModelGroup group = adapter.getXSDModelGroupDefinition().getModelGroup();
-      if (group != null)
-      {
-        adapterList.add(XSDAdapterFactory.getInstance().adapt(group));
-      }
-    }
-    
-    return adapterList;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDModelGroupRouter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDModelGroupRouter.java
deleted file mode 100644
index 1a42e6c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDModelGroupRouter.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.draw2d.AbstractRouter;
-import org.eclipse.draw2d.Connection;
-import org.eclipse.draw2d.ConnectionAnchor;
-import org.eclipse.draw2d.ConnectionRouter;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Ray;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-// TODO Manhattan connection router is final
-public class XSDModelGroupRouter extends AbstractRouter
-{
-  public XSDModelGroupRouter()
-  {
-    super();
-  }
-  private Map rowsUsed = new HashMap();
-  private Map colsUsed = new HashMap();
-
-  private Map reservedInfo = new HashMap();
-
-  private class ReservedInfo {
-    public List reservedRows = new ArrayList(2);
-    public List reservedCols = new ArrayList(2);
-  }
-
-  private static Ray  UP    = new Ray(0, -1),
-              DOWN  = new Ray(0, 1),
-              LEFT  = new Ray(-1, 0),
-              RIGHT = new Ray(1, 0);
-
-
-  /**
-   * @see ConnectionRouter#invalidate(Connection)
-   */
-  public void invalidate(Connection connection) {
-    removeReservedLines(connection);
-  }
-
-  private int getColumnNear(Connection connection, int r, int n, int x) {
-    int min = Math.min(n, x),
-      max = Math.max(n, x);
-    if (min > r) {
-      max = min;
-      min = r - (min - r);
-    }
-    if (max < r) {
-      min = max;
-      max = r + (r - max);
-    }
-    int proximity = 0;
-    int direction = -1;
-    if (r % 2 == 1)
-      r--;
-    Integer i;
-    while (proximity < r) {
-      i = new Integer(r + proximity * direction);
-      if (!colsUsed.containsKey(i)) {
-        colsUsed.put(i, i);
-        reserveColumn(connection, i);
-        return i.intValue();
-      }
-      int j = i.intValue();
-      if (j <= min)
-        return j + 2;
-      if (j >= max)
-        return j - 2;
-      if (direction == 1)
-        direction = -1;
-      else {
-        direction = 1;
-        proximity += 2;
-      }
-    }
-    return r;
-  }
-
-  /**
-   * Returns the direction the point <i>p</i> is in relation to the given rectangle.
-   * Possible values are LEFT (-1,0), RIGHT (1,0), UP (0,-1) and DOWN (0,1).
-   * 
-   * @param r the rectangle
-   * @param p the point
-   * @return the direction from <i>r</i> to <i>p</i>
-   */
-  protected Ray getDirection(Rectangle r, Point p) {
-    int i, distance = Math.abs(r.x - p.x);
-    Ray direction;
-    
-    direction = LEFT;
-
-    i = Math.abs(r.y - p.y);
-    if (i <= distance) {
-      distance = i;
-      direction = UP;
-    }
-
-    i = Math.abs(r.bottom() - p.y);
-    if (i <= distance) {
-      distance = i;
-      direction = DOWN;
-    }
-
-    i = Math.abs(r.right() - p.x);
-    if (i < distance) {
-      distance = i;
-      direction = RIGHT;
-    }
-
-    return direction;
-  }
-
-  protected Ray getEndDirection(Connection conn) {
-    ConnectionAnchor anchor = conn.getTargetAnchor();
-    Point p = getEndPoint(conn);
-    Rectangle rect;
-    if (anchor.getOwner() == null)
-      rect = new Rectangle(p.x - 1, p.y - 1, 2, 2);
-    else {
-      rect = conn.getTargetAnchor().getOwner().getBounds().getCopy();
-      conn.getTargetAnchor().getOwner().translateToAbsolute(rect);
-    }
-    return getDirection(rect, p);
-  }
-
-  protected int getRowNear(Connection connection, int r, int n, int x) {
-    int min = Math.min(n, x),
-      max = Math.max(n, x);
-    if (min > r) {
-      max = min;
-      min = r - (min - r);
-    }
-    if (max < r) {
-      min = max;
-      max = r + (r - max);
-    }
-
-    int proximity = 0;
-    int direction = -1;
-    if (r % 2 == 1)
-      r--;
-    Integer i;
-    while (proximity < r) {
-      i = new Integer(r + proximity * direction);
-      if (!rowsUsed.containsKey(i)) {
-        rowsUsed.put(i, i);
-        reserveRow(connection, i);
-        return i.intValue();
-      }
-      int j = i.intValue();
-      if (j <= min)
-        return j + 2;
-      if (j >= max)
-        return j - 2;
-      if (direction == 1)
-        direction = -1;
-      else {
-        direction = 1;
-        proximity += 2;
-      }
-    }
-    return r;
-  }
-
-  protected Ray getStartDirection(Connection conn) {
-    ConnectionAnchor anchor = conn.getSourceAnchor();
-    Point p = getStartPoint(conn);
-    Rectangle rect;
-    if (anchor.getOwner() == null)
-      rect = new Rectangle(p.x - 1, p.y - 1, 2, 2);
-    else {
-      rect = conn.getSourceAnchor().getOwner().getBounds().getCopy();
-      conn.getSourceAnchor().getOwner().translateToAbsolute(rect);
-    }
-    return getDirection(rect, p);
-  }
-
-  protected void processPositions(Ray start, Ray end, List positions, 
-                    boolean horizontal, Connection conn) {
-    removeReservedLines(conn);
-
-    int pos[] = new int[positions.size() + 2];
-    if (horizontal)
-      pos[0] = start.x;
-    else
-      pos[0] = start.y;
-    int i;
-    for (i = 0; i < positions.size(); i++) {
-      pos[i + 1] = ((Integer)positions.get(i)).intValue();
-    }
-    if (horizontal == (positions.size() % 2 == 1))
-      pos[++i] = end.x;
-    else
-      pos[++i] = end.y;
-
-    PointList points = new PointList();
-    points.addPoint(new Point(start.x, start.y));
-    Point p;
-    int current, prev, min, max;
-    boolean adjust;
-    for (i = 2; i < pos.length - 1; i++) {
-      horizontal = !horizontal;
-      prev = pos[i - 1];
-      current = pos[i];
-
-      adjust = (i != pos.length - 2);
-      if (horizontal) {
-        if (adjust) {
-          min = pos[i - 2];
-          max = pos[i + 2];
-          pos[i] = current = getRowNear(conn, current, min, max);
-        }
-        p = new Point(prev, current);
-      } else {
-        if (adjust) {
-          min = pos[i - 2];
-          max = pos[i + 2];
-          pos[i] = current = getColumnNear(conn, current, min, max);
-        }
-        p = new Point(current, prev);
-      }
-      points.addPoint(p);
-    }
-    points.addPoint(new Point(end.x, end.y));
-    conn.setPoints(points);
-  }
-
-  /**
-   * @see ConnectionRouter#remove(Connection)
-   */
-  public void remove(Connection connection) {
-    removeReservedLines(connection);
-  }
-
-  protected void removeReservedLines(Connection connection) {
-    ReservedInfo rInfo = (ReservedInfo) reservedInfo.get(connection);
-    if (rInfo == null) 
-      return;
-    
-    for (int i = 0; i < rInfo.reservedRows.size(); i++) {
-      rowsUsed.remove(rInfo.reservedRows.get(i));
-    }
-    for (int i = 0; i < rInfo.reservedCols.size(); i++) {
-      colsUsed.remove(rInfo.reservedCols.get(i));
-    }
-    reservedInfo.remove(connection);
-  }
-
-  protected void reserveColumn(Connection connection, Integer column) {
-    ReservedInfo info = (ReservedInfo) reservedInfo.get(connection);
-    if (info == null) {
-      info = new ReservedInfo();
-      reservedInfo.put(connection, info);
-    }
-    info.reservedCols.add(column);
-  }
-
-  protected void reserveRow(Connection connection, Integer row) {
-    ReservedInfo info = (ReservedInfo) reservedInfo.get(connection);
-    if (info == null) {
-      info = new ReservedInfo();
-      reservedInfo.put(connection, info);
-    }
-    info.reservedRows.add(row);
-  }
-
-  /**
-   * @see ConnectionRouter#route(Connection)
-   */
-  public void route(Connection conn) {
-    if ((conn.getSourceAnchor() == null) || (conn.getTargetAnchor() == null)) 
-      return;
-    int i;
-    Point startPoint = getStartPoint(conn);
-    conn.translateToRelative(startPoint);
-    Point endPoint = getEndPoint(conn);
-    conn.translateToRelative(endPoint);
-
-    Ray start = new Ray(startPoint);
-    Ray end = new Ray(endPoint);
-    Ray average = new Ray(startPoint.x + 4, startPoint.y); // start.getAveraged(end);
-
-    Ray direction = new Ray(start, end);
-    Ray startNormal = getStartDirection(conn);
-    Ray endNormal   = getEndDirection(conn);
-
-    List positions = new ArrayList(5);
-    boolean horizontal = startNormal.isHorizontal();
-    if (horizontal) 
-      positions.add(new Integer(start.y));
-    else
-      positions.add(new Integer(start.x));
-    horizontal = !horizontal;
-
-    if (startNormal.dotProduct(endNormal) == 0) {
-      if ((startNormal.dotProduct(direction) >= 0) 
-        && (endNormal.dotProduct(direction) <= 0)) {
-        // 0
-      } else {
-        // 2
-        if (startNormal.dotProduct(direction) < 0)
-          i = startNormal.similarity(start.getAdded(startNormal.getScaled(10)));
-        else {
-          if (horizontal) 
-            i = average.y;
-          else 
-            i = average.x;
-        }
-        positions.add(new Integer(i));
-        horizontal = !horizontal;
-
-        if (endNormal.dotProduct(direction) > 0)
-          i = endNormal.similarity(end.getAdded(endNormal.getScaled(10)));
-        else {
-          if (horizontal) 
-            i = average.y;
-          else 
-            i = average.x;
-        }
-        positions.add(new Integer(i));
-        horizontal = !horizontal;
-      }
-    } else {
-      if (startNormal.dotProduct(endNormal) > 0) {
-        //1
-        if (startNormal.dotProduct(direction) >= 0)
-          i = startNormal.similarity(start.getAdded(startNormal.getScaled(10)));
-        else
-          i = endNormal.similarity(end.getAdded(endNormal.getScaled(10)));
-        positions.add(new Integer(i));
-        horizontal = !horizontal;
-      } else {
-        //3 or 1
-        if (startNormal.dotProduct(direction) < 0) {
-          i = startNormal.similarity(start.getAdded(startNormal.getScaled(10)));
-          positions.add(new Integer(i));
-          horizontal = !horizontal;
-        }
-
-        if (horizontal) 
-          i = average.y;
-        else 
-          i = average.x;
-        positions.add(new Integer(i));
-        horizontal = !horizontal;
-
-        if (startNormal.dotProduct(direction) < 0) {
-          i = endNormal.similarity(end.getAdded(endNormal.getScaled(10)));
-          positions.add(new Integer(i));
-          horizontal = !horizontal;
-        }
-      }
-    }
-    if (horizontal) 
-      positions.add(new Integer(end.y));
-    else 
-      positions.add(new Integer(end.x));
-    
-    processPositions(start, end, positions, startNormal.isHorizontal(), conn);
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDSchemaEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDSchemaEditPart.java
deleted file mode 100644
index 3dcfc12..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDSchemaEditPart.java
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adapters.CategoryAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDSchemaAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.KeyBoardAccessibilityEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.HeadingFigure;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.design.editpolicies.SelectionHandlesEditPolicyImpl;
-import org.eclipse.wst.xsd.ui.internal.design.layouts.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-
-public class XSDSchemaEditPart extends BaseEditPart
-{
-  protected Label label;
-
-  protected Figure outer, contentFigure;
-  protected HeadingFigure headingFigure;
-
-  public IFigure getContentPane()
-  {
-    return contentFigure;
-  }
-
-  protected IFigure createFigure()
-  {
-    outer = new Figure();
-    // outer.setBorder(new RoundedLineBorder(1, 6));
-    outer.setBorder(new LineBorder(1));
-
-    FillLayout fillLayout = new FillLayout(4);
-    outer.setLayoutManager(fillLayout);
-
-    headingFigure = new HeadingFigure();
-    outer.add(headingFigure);
-
-    final int theMinHeight = 200;
-    FillLayout outerLayout = new FillLayout()
-    {
-      protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-      {
-        Dimension d = super.calculatePreferredSize(parent, width, height);
-        d.union(new Dimension(250, theMinHeight));
-        return d;
-      }
-    };
-    outerLayout.setHorizontal(false);
-    outer.setLayoutManager(outerLayout);
-
-    RectangleFigure line = new RectangleFigure()
-    {
-      public Dimension getPreferredSize(int wHint, int hHint)
-      {
-        Dimension d = super.getPreferredSize(wHint, hHint);
-        d.width += 20;
-        d.height = 1;
-        return d;
-      }
-    };
-    ToolbarLayout lineLayout = new ToolbarLayout(false);
-    lineLayout.setVertical(true);
-    lineLayout.setStretchMinorAxis(true);
-    line.setLayoutManager(lineLayout);
-    outer.add(line);
-
-    contentFigure = new Figure();
-    contentFigure.setBorder(new MarginBorder(4, 4, 4, 4));
-    fillLayout = new FillLayout(4);
-    contentFigure.setLayoutManager(fillLayout);
-
-    outer.add(contentFigure);
-
-    return outer;
-  }
-
-  protected List getModelChildren()
-  {
-    XSDSchemaAdapter schemaAdapter = (XSDSchemaAdapter) getModel();
-    List list = new ArrayList();
-    
-    schemaAdapter.updateCategories();
-
-    List templist = new ArrayList();
-    templist.add(schemaAdapter.getCategory(CategoryAdapter.DIRECTIVES));
-    Holder holder = new Holder(templist);
-    list.add(holder);
-
-    templist = new ArrayList();
-    templist.add(schemaAdapter.getCategory(CategoryAdapter.ELEMENTS));
-    templist.add(schemaAdapter.getCategory(CategoryAdapter.TYPES));
-    holder = new Holder(templist);
-    list.add(holder);
-
-    templist = new ArrayList();
-    templist.add(schemaAdapter.getCategory(CategoryAdapter.ATTRIBUTES));
-    templist.add(schemaAdapter.getCategory(CategoryAdapter.GROUPS));
-    holder = new Holder(templist);
-    list.add(holder);
-
-    return list;
-  }
-
-  protected EditPart createChild(Object model)
-  {
-    CategoryRowEditPart result = new CategoryRowEditPart();
-    result.setModel(model);
-    result.setParent(this);
-    return result;
-  }
-
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-    
-    LineBorder border = (LineBorder) outer.getBorder();
-    border.setWidth(isSelected ? 2 : 1);
-    headingFigure.setSelected(isSelected);
-
-    XSDSchemaAdapter schemaAdapter = (XSDSchemaAdapter) getModel();
-    Image image = schemaAdapter.getImage();
-    headingFigure.getLabel().setIcon(image);
-    if (image != null)
-    {
-      headingFigure.getLabel().setIcon(XSDCommonUIUtils.getUpdatedImage((XSDConcreteComponent) schemaAdapter.getTarget(), image, false));
-    }
-    outer.repaint();
-    
-    String targetNamespaceValue = ((XSDSchema) ((XSDSchemaAdapter) getModel()).getTarget()).getTargetNamespace();
-    if (targetNamespaceValue == null || targetNamespaceValue.length() == 0)
-    {
-      targetNamespaceValue = Messages._UI_GRAPH_XSDSCHEMA_NO_NAMESPACE;
-    }
-    headingFigure.getLabel().setText(Messages._UI_GRAPH_XSDSCHEMA + " : " + targetNamespaceValue);  //$NON-NLS-1$  
-  }
-  
-  public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-  {
-      EditPart result = null;
-      if (editPart instanceof CategoryEditPart)
-      {
-        CategoryAdapter adapter = (CategoryAdapter)editPart.getModel();    
-        switch (adapter.getGroupType())
-        { 
-          case CategoryAdapter.DIRECTIVES:
-          {
-            if (direction == PositionConstants.SOUTH)
-            {
-              result = getCategoryEditPart(CategoryAdapter.ELEMENTS);
-            }  
-            break;
-          }
-          case CategoryAdapter.ELEMENTS:
-          {
-            if (direction == PositionConstants.SOUTH)
-            {
-              result = getCategoryEditPart(CategoryAdapter.ATTRIBUTES);
-            }           
-            else if (direction == PositionConstants.NORTH)
-            {
-              result = getCategoryEditPart(CategoryAdapter.DIRECTIVES);
-            } 
-            break;
-          }
-          case CategoryAdapter.TYPES:
-          {
-            if (direction == PositionConstants.SOUTH)
-            {
-              result = getCategoryEditPart(CategoryAdapter.GROUPS);
-            }           
-            else if (direction == PositionConstants.NORTH)
-            {
-              result = getCategoryEditPart(CategoryAdapter.DIRECTIVES);
-            } 
-            break;        
-          }
-          case CategoryAdapter.ATTRIBUTES:      
-          {
-            if (direction == PositionConstants.NORTH)
-            {
-              result = getCategoryEditPart(CategoryAdapter.ELEMENTS);
-            }    
-            break;
-          }   
-          case CategoryAdapter.GROUPS:      
-          {
-            if (direction == PositionConstants.NORTH)
-            {
-              result = getCategoryEditPart(CategoryAdapter.TYPES);
-            }    
-            break;
-          }
-        }        
-      } 
-      else if (editPart == this)
-      {       
-        if (direction == KeyBoardAccessibilityEditPolicy.IN_TO_FIRST_CHILD)
-        {
-          result = ((CategoryRowEditPart)getChildren().get(0)).doGetRelativeEditPart(editPart, direction);        
-        }          
-      }  
-      return result;               
-  }
-  
-  private EditPart getCategoryEditPart(int kind)
-  {
-    for (Iterator j = getChildren().iterator(); j.hasNext(); )      
-    {    
-      EditPart row = (EditPart)j.next();    
-      for (Iterator i = row.getChildren().iterator(); i.hasNext(); )
-      {
-        EditPart editPart = (EditPart)i.next();
-        if (editPart instanceof CategoryEditPart)
-        {
-          CategoryEditPart categoryEditPart = (CategoryEditPart)editPart;
-          CategoryAdapter adapter = (CategoryAdapter)categoryEditPart.getModel();
-          if (adapter.getGroupType() == kind)
-          {
-            return editPart;
-          }
-        }  
-      }
-    }
-    return null;
-  }  
-
-  protected void createEditPolicies()
-  {
-    super.createEditPolicies();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new SelectionHandlesEditPolicyImpl());    
-  }
-
-  protected class Holder
-  {
-    List list;
-
-    public Holder(List list)
-    {
-      this.list = list;
-    }
-
-    public List getList()
-    {
-      return list;
-    }
-  }
-
-  protected class CategoryRowEditPart extends BaseEditPart
-  {
-    protected XSDSchema schema;
-    protected Figure contentPane;
-
-    protected IFigure createFigure()
-    {
-      Figure containerFigure = new Figure();
-      containerFigure.setBorder(new MarginBorder(4, 4, 4, 4));
-      // containerFigure.setBorder(new LineBorder(1));
-      // containerFigure.setBackgroundColor(ColorConstants.green);
-
-      FillLayout fillLayout = new FillLayout(4);
-      fillLayout.setHorizontal(true);
-      containerFigure.setLayoutManager(fillLayout);
-
-      return containerFigure;
-    }
-    
-    public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-    {
-      if (editPart instanceof CategoryEditPart)
-      {
-        if (direction == KeyBoardAccessibilityEditPolicy.OUT_TO_PARENT)
-        {
-          return getParent();
-        }  
-      }  
-      else if (editPart instanceof XSDSchemaEditPart)
-      {
-        if (direction == KeyBoardAccessibilityEditPolicy.IN_TO_FIRST_CHILD)
-        {
-          return (EditPart)getChildren().get(0);
-        }  
-      }  
-      return ((XSDSchemaEditPart)getParent()).doGetRelativeEditPart(editPart, direction);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#getContentPane()
-     */
-    public IFigure getContentPane()
-    {
-      return super.getContentPane();
-    }
-
-    protected List getModelChildren()
-    {
-      Holder holder = (Holder) getModel();
-      return holder.getList();
-    }
-
-    protected void createEditPolicies()
-    {
-      super.createEditPolicies();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDSimpleTypeEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDSimpleTypeEditPart.java
deleted file mode 100644
index 1e84920..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/XSDSimpleTypeEditPart.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts;
-
-import java.util.Iterator;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDSimpleTypeDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseTypeConnectingEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.CenteredConnectionAnchor;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.ColumnEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.TypeReferenceConnection;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IStructureFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.HeadingFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.RoundedLineBorder;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.StructureFigure;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class XSDSimpleTypeEditPart extends BaseTypeConnectingEditPart
-{
-  StructureFigure figure;
-  protected ADTDirectEditPolicy adtDirectEditPolicy = new ADTDirectEditPolicy();
-  
-  public XSDSimpleTypeEditPart()
-  {
-    super();
-  }
-  
-  public XSDSimpleTypeDefinition getXSDSimpleTypeDefinition()
-  {
-    return (XSDSimpleTypeDefinition)((XSDSimpleTypeDefinitionAdapter)getModel()).getTarget();
-  }
-
-  protected IFigure createFigure()
-  {
-    figure = new StructureFigure();
-    figure.setBorder(new RoundedLineBorder(1, 10));    
-    ToolbarLayout toolbarLayout = new ToolbarLayout();
-    toolbarLayout.setStretchMinorAxis(true);
-    figure.setLayoutManager(toolbarLayout);
-    return figure;
-  }
-  
-  protected void refreshVisuals()
-  {
-    XSDSimpleTypeDefinitionAdapter adapter = (XSDSimpleTypeDefinitionAdapter)getModel();
-    String name = adapter.getDisplayName();
-    HeadingFigure headingFigure = figure.getHeadingFigure();
-    headingFigure.setIsReadOnly(adapter.isReadOnly());
-    Label label = headingFigure.getLabel();
-    label.setText(name);
-    label.setIcon(XSDCommonUIUtils.getUpdatedImage(adapter.getXSDTypeDefinition(), adapter.getImage(), adapter.isReadOnly()));    
-  }
-  
-  public IStructureFigure getStructureFigure()
-  {
-    return (IStructureFigure)getFigure();
-  }
-
-  public IFigure getContentPane()
-  {
-    return getStructureFigure().getContentPane();
-  }
-  
-  
-  protected void createEditPolicies()
-  {
-    super.createEditPolicies();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new ADTSelectionFeedbackEditPolicy());
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, adtDirectEditPolicy);
-  }
-
-  public void addFeedback()
-  {
-    getStructureFigure().addSelectionFeedback();
-    super.addFeedback();
-  }
-  
-  public void removeFeedback()
-  {
-    getStructureFigure().removeSelectionFeedback();
-    super.removeFeedback();    
-  }
-
-  public ReferenceConnection createConnectionFigure(BaseEditPart child)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public TypeReferenceConnection createConnectionFigure()
-  {
-    TypeReferenceConnection connectionFigure = null;
-    XSDSimpleTypeDefinitionAdapter adapter = (XSDSimpleTypeDefinitionAdapter)getModel();
-    IType superType = adapter.getSuperType();
-
-    if (superType != null)
-    {      
-      AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart)getTargetEditPart(superType);
-      
-      if (referenceTypePart != null)
-      {
-        connectionFigure = new TypeReferenceConnection();
-        // draw a line out from the top         
-        connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(getFigure(), CenteredConnectionAnchor.TOP, 1));
-        
-        // TODO (cs) need to draw the target anchor to look like a UML inheritance relationship
-        // adding a label to the connection would help to
-        connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(referenceTypePart.getFigure(), CenteredConnectionAnchor.BOTTOM, 0, 0)); 
-        connectionFigure.setHighlight(false);
-      }
-    }    
-    return connectionFigure;
-  }
-  
-  private EditPart getTargetEditPart(IType type)
-  {
-    ColumnEditPart columnEditPart = null;
-    for (EditPart editPart = this; editPart != null; editPart = editPart.getParent())
-    {
-      if (editPart instanceof ColumnEditPart)
-      {
-        columnEditPart = (ColumnEditPart)editPart;
-        break;
-      }  
-    }     
-    if (columnEditPart != null)
-    {
-      for (Iterator i = columnEditPart.getChildren().iterator(); i.hasNext(); )
-      {
-        EditPart child = (EditPart)i.next();
-        if (child.getModel() == type)
-        {
-          return child;
-        }         
-      }  
-    }
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/SpaceFiller.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/SpaceFiller.java
deleted file mode 100644
index ae847ef..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/SpaceFiller.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts.model;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-/**
- * Dummy class to add space to field list
- *
- */
-public class SpaceFiller implements IField
-{
-  String kind;
-  public SpaceFiller(String kind)
-  {
-    super();
-    this.kind = kind;
-  }
-
-  public Image getImage()
-  {
-    if (kind.equals("attribute")) //$NON-NLS-1$
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif"); //$NON-NLS-1$
-    }
-    else
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"); //$NON-NLS-1$
-    }
-  }
-  
-  public String getKind()
-  {
-    return kind;
-  }
-  
-  public void setKind(String kind)
-  {
-    this.kind = kind;
-  }
-  
-  public boolean isGlobal()
-  {
-    return false;
-  }
-
-  public IComplexType getContainerType()
-  {
-    return null;
-  }
-
-  public String getName()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public String getTypeName()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public String getTypeNameQualifier()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public IType getType()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public int getMinOccurs()
-  {
-    // TODO Auto-generated method stub
-    return 0;
-  }
-
-  public int getMaxOccurs()
-  {
-    // TODO Auto-generated method stub
-    return 0;
-  }
-
-  public Command getUpdateMinOccursCommand(int minOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateMaxOccursCommand(int maxOccurs)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateTypeNameCommand(String typeName, String quailifier)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getUpdateNameCommand(String name)
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public Command getDeleteCommand()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public void registerListener(IADTObjectListener listener)
-  {
-    // TODO Auto-generated method stub
-    
-  }
-
-  public void unregisterListener(IADTObjectListener listener)
-  {
-    // TODO Auto-generated method stub
-    
-  }
-  
-  public boolean isReadOnly()
-  {
-    return true;
-  }
-
-  public IModel getModel()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public boolean isReference()
-  {
-    // TODO Auto-generated method stub
-    return false;
-  }
-}
-
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/TargetConnectionSpaceFiller.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/TargetConnectionSpaceFiller.java
deleted file mode 100644
index fcbb8a2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editparts/model/TargetConnectionSpaceFiller.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editparts.model;
-
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-
-public class TargetConnectionSpaceFiller implements IADTObject
-{
-  private XSDBaseAdapter adapter;
-  
-  public TargetConnectionSpaceFiller(XSDBaseAdapter adapter)
-  {
-    this.adapter = adapter;
-  }
-
-  /**
-   * @deprecated remove this
-   * @return
-   */
-  public XSDBaseAdapter getAdapter()
-  {
-    return adapter;
-  }
-
-  public void registerListener(IADTObjectListener listener)
-  {
-    
-  }
-
-  public void unregisterListener(IADTObjectListener listener)
-  {
-   
-  }
-
-  public boolean isReadOnly()
-  {
-    return false;
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/DragAndDropEditPolicy.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/DragAndDropEditPolicy.java
deleted file mode 100644
index e5bbbcc..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/DragAndDropEditPolicy.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editpolicies;
-
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.wst.xsd.ui.internal.commands.DragAndDropCommand;
-
-public class DragAndDropEditPolicy extends org.eclipse.gef.editpolicies.GraphicalEditPolicy
-{ 
-  protected EditPartViewer viewer;
-  protected SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy;
-
-  public DragAndDropEditPolicy(EditPartViewer viewer, SelectionHandlesEditPolicyImpl selectionHandlesEditPolicy)
-  {
-    this.viewer = viewer;
-    this.selectionHandlesEditPolicy = selectionHandlesEditPolicy;
-  }
-
-  public boolean understandsRequest(Request req)
-  {
-    return true;
-  }                           
-
-  
-  public org.eclipse.gef.commands.Command getCommand(Request request)
-  {             
-    DragAndDropCommand command = null;                            
-    if (request instanceof ChangeBoundsRequest)
-    {
-      command = new DragAndDropCommand(viewer, (ChangeBoundsRequest)request);
-      selectionHandlesEditPolicy.setDragAndDropCommand(command);
-    } 
-    return command;             
-  }                                                     
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/GraphNodeDragTracker.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/GraphNodeDragTracker.java
deleted file mode 100644
index 3a8b318..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/GraphNodeDragTracker.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editpolicies;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.tools.DragEditPartsTracker;
-
-                                   
-public class GraphNodeDragTracker extends DragEditPartsTracker 
-{                                     
-  protected EditPart editPart; 
-           
-  public GraphNodeDragTracker(EditPart editPart)
-  {
-    super(editPart);
-    this.editPart = editPart;
-  } 
-                                              
-  protected Command getCommand() 
-  { 
-	Request request = getTargetRequest();
-    return editPart.getCommand(request); 
-  }
-} 
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/SelectionHandlesEditPolicyImpl.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/SelectionHandlesEditPolicyImpl.java
deleted file mode 100644
index 655916c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/SelectionHandlesEditPolicyImpl.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editpolicies;
-                                 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.FigureUtilities;
-import org.eclipse.draw2d.FreeformLayout;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Polyline;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.PointList;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.handles.MoveHandle;
-import org.eclipse.gef.handles.MoveHandleLocator;
-import org.eclipse.gef.requests.ChangeBoundsRequest;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.commands.DragAndDropCommand;
-
-
-public class SelectionHandlesEditPolicyImpl	extends ADTSelectionFeedbackEditPolicy
-{
-  protected IFigure feedback;
-  protected Rectangle originalLocation;
-  protected DragAndDropCommand dragAndDropCommand;
-  protected Polyline polyLine;
-  protected RectangleFigure ghostShape;
-
-  protected List createSelectionHandles()
-  {              
-    List list = new ArrayList();
-    EditPart editPart = getHost();
-     
-    if (editPart instanceof GraphicalEditPart)
-    {
-      GraphicalEditPart graphicalEditPart = (GraphicalEditPart)editPart;
-      IFigure figure = (graphicalEditPart instanceof BaseEditPart) ? 
-                          ((BaseEditPart)graphicalEditPart).getFigure() :
-                          graphicalEditPart.getFigure();
-   
-      Cursor cursorFigure = figure.getCursor();
-      MoveHandleLocator loc = new MoveHandleLocator(figure);    
-      MoveHandle moveHandle = new MoveHandle(graphicalEditPart, loc);     
-      moveHandle.setCursor(cursorFigure);
-      list.add(moveHandle);
-    }
-
-    return list;
-  }   
-  
-
-  public boolean understandsRequest(Request request)
-  {    
-    boolean result = false;
-
-	  if (REQ_MOVE.equals(request.getType()))
-    {  
-		  result = false; // return false to disable move for now 
-    }
-    else
-    {
-	    result = super.understandsRequest(request);
-    }
-    return result;
-  }
-  
-
-  public org.eclipse.gef.commands.Command getCommand(Request request) 
-  {                                          
-    return null;  
-  }   
-
-  public void setDragAndDropCommand(DragAndDropCommand dragAndDropCommand)
-  {
-    this.dragAndDropCommand = dragAndDropCommand;
-  }
-
-  protected org.eclipse.gef.commands.Command getMoveCommand(ChangeBoundsRequest request) 
-  {
-	  ChangeBoundsRequest req = new ChangeBoundsRequest(REQ_MOVE_CHILDREN);
-	  req.setEditParts(getHost());
-	
-	  req.setMoveDelta(request.getMoveDelta());
-	  req.setSizeDelta(request.getSizeDelta());
-	  req.setLocation(request.getLocation());
-
-	  return getHost().getParent().getCommand(req);
-  } 
-
-  public void showSourceFeedback(Request request)
-  {  	
-	  if (REQ_MOVE.equals(request.getType()) ||
-		  REQ_ADD.equals(request.getType()))
-		  showChangeBoundsFeedback((ChangeBoundsRequest)request);
-  }
-
-  protected void showChangeBoundsFeedback(ChangeBoundsRequest request)
-  {
-  	IFigure p = getDragSourceFeedbackFigure();
-  	Rectangle r = originalLocation.getTranslated(request.getMoveDelta());
-  	Dimension resize = request.getSizeDelta();
-  	r.width += resize.width;
-  	r.height+= resize.height;
-  
-  	((GraphicalEditPart)getHost()).getFigure().translateToAbsolute(r);
-   
-  	p.translateToRelative(r);
-    Rectangle pBounds = r.getCopy();                            
-
-    if (dragAndDropCommand != null && dragAndDropCommand.canExecute())
-    {
-      int size = request.getEditParts().size();
-      if (size > 0 && request.getEditParts().get(size - 1) == getHost())
-      {         
-        PointList pointList = dragAndDropCommand.getConnectionPoints(r);
-        if (pointList != null && pointList.size() > 0)
-        {
-          polyLine.setPoints(pointList);
-          
-          Point firstPoint = pointList.getFirstPoint();
-          if (firstPoint != null)
-          {
-            pBounds = pBounds.getUnion(new Rectangle(firstPoint.x, firstPoint.y, 1, 1));
-          }
-        }
-      }
-    }
-    p.setBounds(pBounds);
-    ghostShape.setBounds(r);
-  	p.validate();
-  }        
-
-
-
-
-  protected IFigure getDragSourceFeedbackFigure() 
-  {
-    EditPart editPart = getHost(); 
-    if (feedback == null && editPart instanceof BaseEditPart)
-    {                                       
-      BaseEditPart baseEditPart = (BaseEditPart)editPart;
-		  originalLocation = new Rectangle(baseEditPart.getFigure().getBounds());
-		  feedback = createDragSourceFeedbackFigure(baseEditPart.getFigure());
-	  }
-	  return feedback;
-  }  
-
-  protected IFigure createDragSourceFeedbackFigure(IFigure draggedFigure)
-  {
-		// Use a ghost rectangle for feedback  
-    Figure panel = new Figure();
-    panel.setLayoutManager(new FreeformLayout());
-
-		ghostShape = new RectangleFigure();
-		FigureUtilities.makeGhostShape(ghostShape);
-		ghostShape.setLineStyle(Graphics.LINE_DASHDOT);
-		ghostShape.setForegroundColor(ColorConstants.white);
-    ghostShape.setOpaque(false);
-    
-    Rectangle r = draggedFigure.getBounds();
-    panel.setOpaque(false);
-    panel.add(ghostShape);                 
-
-    polyLine = new Polyline();                         
-    //polyLine.setLineStyle(Graphics.LINE_DASHDOT);      
-    polyLine.setLineWidth(1);
-    panel.add(polyLine);
-
-    panel.setBounds(r);
-		ghostShape.setBounds(r);
-
-		addFeedback(panel);
-
-		return panel;
-	} 
-
-  public void deactivate()
-  {
-	  if (feedback != null)
-    {
-		  removeFeedback(feedback);
-		  feedback = null;
-	  }
-	  hideFocus();
-	  super.deactivate();
-  }
-
-  /**
-   * Erase feedback indicating that the receiver object is 
-   * being dragged.  This method is called when a drag is
-   * completed or cancelled on the receiver object.
-   * @param dragTracker org.eclipse.gef.tools.DragTracker The drag tracker of the tool performing the drag.
-   */
-  protected void eraseChangeBoundsFeedback(ChangeBoundsRequest request) 
-  {
-	  if (feedback != null) 
-    {		      
-		  removeFeedback(feedback);
-	  }
-	  feedback = null;
-	  originalLocation = null;
-  }
-
-  /**
-   * Erase feedback indicating that the receiver object is 
-   * being dragged.  This method is called when a drag is
-   * completed or cancelled on the receiver object.
-   * @param dragTracker org.eclipse.gef.tools.DragTracker The drag tracker of the tool performing the drag.
-   */
-  public void eraseSourceFeedback(Request request) 
-  {
-    if (REQ_MOVE.equals(request.getType()) ||  REQ_ADD.equals(request.getType()))
-    {
-		  eraseChangeBoundsFeedback((ChangeBoundsRequest)request);
-    }
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/TopLevelComponentLabelCellEditorLocator.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/TopLevelComponentLabelCellEditorLocator.java
deleted file mode 100644
index a594a50..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/TopLevelComponentLabelCellEditorLocator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editpolicies;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.LabelCellEditorLocator;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.INamedEditPart;
-
-public class TopLevelComponentLabelCellEditorLocator extends LabelCellEditorLocator
-{
-  public TopLevelComponentLabelCellEditorLocator(INamedEditPart namedEditPart, Point cursorLocation)
-  {
-    super(namedEditPart, cursorLocation);
-  }
-
-  public void relocate(CellEditor celleditor)
-  {
-    Text text = (Text) celleditor.getControl();
-
-    Label label = namedEditPart.getNameLabelFigure();
-    
-    if (text.getBounds().x <= 0)
-    {
-      super.relocate(celleditor);  
-    }
-    else
-    {
-      org.eclipse.swt.graphics.Point sel = text.getSelection();
-      org.eclipse.swt.graphics.Point pref = text.computeSize(-1, -1);
-      Rectangle rect = label.getTextBounds().getCopy();
-      label.translateToAbsolute(rect);
-      text.setBounds(rect.x, rect.y-1, rect.width, pref.y+1);
-      text.setSelection(0);
-      text.setSelection(sel); 
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/TopLevelNameDirectEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/TopLevelNameDirectEditManager.java
deleted file mode 100644
index e5b21c1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/editpolicies/TopLevelNameDirectEditManager.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.editpolicies;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.part.CellEditorActionHandler;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.INamedEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.TopLevelComponentEditPart;
-import org.eclipse.xsd.XSDNamedComponent;
-
-public class TopLevelNameDirectEditManager extends DirectEditManager
-{
-  protected XSDNamedComponent component;
-  private IActionBars actionBars;
-  private CellEditorActionHandler actionHandler;
-  private IAction copy, cut, paste, undo, redo, find, selectAll, delete;
-  private Font scaledFont;
-
-  public TopLevelNameDirectEditManager(GraphicalEditPart source, CellEditorLocator locator, XSDNamedComponent component)
-  {
-    super(source, null, locator);
-    this.component = component;
-  }
-
-  /**
-   * @see org.eclipse.gef.tools.DirectEditManager#bringDown()
-   */
-  protected void bringDown()
-  {
-    if (actionHandler != null)
-    {
-      actionHandler.dispose();
-      actionHandler = null;
-    }
-    if (actionBars != null)
-    {
-      restoreSavedActions(actionBars);
-      actionBars.updateActionBars();
-      actionBars = null;
-    }
-
-    Font disposeFont = scaledFont;
-    scaledFont = null;
-    super.bringDown();
-    if (disposeFont != null)
-      disposeFont.dispose();
-
-    if (getEditPart() instanceof TopLevelComponentEditPart)
-    {
-      Runnable runnable = new Runnable()
-      {
-        public void run()
-        {
-          IWorkbench workbench = PlatformUI.getWorkbench();
-          IEditorPart editor = workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-          Object adapter = editor.getAdapter(ISelectionProvider.class);
-          if (adapter instanceof ISelectionProvider)
-          {
-            ISelectionProvider sel = (ISelectionProvider) adapter;
-            sel.setSelection(new StructuredSelection(getEditPart().getModel()));
-          }
-        }
-      };
-      Display.getCurrent().asyncExec(runnable);
-    }
-  }
-
-  public void showFeedback()
-  {
-    super.showFeedback();
-  }
-
-  protected CellEditor createCellEditorOn(Composite composite)
-  {
-    return new TextCellEditor(composite, SWT.SINGLE | SWT.WRAP);
-  }
-
-  protected void initCellEditor()
-  {
-    Text text = (Text) getCellEditor().getControl();
-    Label label = ((INamedEditPart) getEditPart()).getNameLabelFigure();
-
-    if (label != null)
-    {
-      scaledFont = label.getFont();
-
-      Color color = label.getBackgroundColor();
-      text.setBackground(color);
-
-      String initialLabelText = component.getName();
-      getCellEditor().setValue(initialLabelText);
-    }
-    else
-    {
-      scaledFont = label.getParent().getFont();
-      text.setBackground(label.getParent().getBackgroundColor());
-    }
-
-    FontData data = scaledFont.getFontData()[0];
-    Dimension fontSize = new Dimension(0, data.getHeight());
-    label.getParent().translateToAbsolute(fontSize);
-    data.setHeight(fontSize.height);
-    scaledFont = new Font(null, data);
-
-    text.setFont(scaledFont);
-    // text.selectAll();
-
-    // Hook the cell editor's copy/paste actions to the actionBars so that they
-    // can
-    // be invoked via keyboard shortcuts.
-    actionBars = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor().getEditorSite().getActionBars();
-    saveCurrentActions(actionBars);
-    actionHandler = new CellEditorActionHandler(actionBars);
-    actionHandler.addCellEditor(getCellEditor());
-    actionBars.updateActionBars();
-  }
-
-  private void restoreSavedActions(IActionBars actionBars)
-  {
-    actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copy);
-    actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), paste);
-    actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), delete);
-    actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), selectAll);
-    actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), cut);
-    actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(), find);
-    actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), undo);
-    actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), redo);
-  }
-
-  private void saveCurrentActions(IActionBars actionBars)
-  {
-    copy = actionBars.getGlobalActionHandler(ActionFactory.COPY.getId());
-    paste = actionBars.getGlobalActionHandler(ActionFactory.PASTE.getId());
-    delete = actionBars.getGlobalActionHandler(ActionFactory.DELETE.getId());
-    selectAll = actionBars.getGlobalActionHandler(ActionFactory.SELECT_ALL.getId());
-    cut = actionBars.getGlobalActionHandler(ActionFactory.CUT.getId());
-    find = actionBars.getGlobalActionHandler(ActionFactory.FIND.getId());
-    undo = actionBars.getGlobalActionHandler(ActionFactory.UNDO.getId());
-    redo = actionBars.getGlobalActionHandler(ActionFactory.REDO.getId());
-  }
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/CategoryFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/CategoryFigure.java
deleted file mode 100644
index ad12539..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/CategoryFigure.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.figures;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.ScrollPane;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.draw2d.Viewport;
-import org.eclipse.draw2d.ViewportLayout;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.HeadingFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.RoundedLineBorder;
-import org.eclipse.wst.xsd.ui.internal.design.layouts.FillLayout;
-
-public class CategoryFigure extends Figure
-{
-  protected ScrollPane scrollpane;
-  protected Figure outerPane;
-  public HeadingFigure headingFigure;
-  Figure contentPane;
-
-  public CategoryFigure(int type)
-  {
-    super();
-
-    outerPane = new Figure();
-    outerPane.setBorder(new RoundedLineBorder(1, 6));
-
-    ToolbarLayout layout = new ToolbarLayout(false);
-    layout.setVertical(true);
-    layout.setStretchMinorAxis(true);
-    FillLayout fillLayout = new FillLayout(3);
-    fillLayout.setHorizontal(false);
-
-    FillLayout outerLayout = new FillLayout();
-    outerPane.setLayoutManager(outerLayout);
-
-    add(outerPane);
-
-    headingFigure = new HeadingFigure();
-    outerPane.add(headingFigure);
-
-    Figure line = new Figure();
-    line.setBorder(new LineBorder(1));
-    ToolbarLayout lineLayout = new ToolbarLayout(false);
-    lineLayout.setVertical(true);
-    lineLayout.setStretchMinorAxis(true);
-    line.setLayoutManager(lineLayout);
-    outerPane.add(line);
-
-    scrollpane = new ScrollPane();
-    scrollpane.setForegroundColor(ColorConstants.black);
-    scrollpane.setVerticalScrollBarVisibility(ScrollPane.AUTOMATIC);
-    outerPane.add(scrollpane);
-
-    Figure pane = new Figure();
-    pane.setBorder(new MarginBorder(5, 8, 5, 8));
-    ToolbarLayout toolbarLayout = new ToolbarLayout(false);
-    toolbarLayout.setSpacing(3);
-    pane.setLayoutManager(toolbarLayout); // good
-
-    Viewport viewport = new Viewport();
-    viewport.setContentsTracksHeight(true);
-    ViewportLayout viewportLayout = new ViewportLayout();
-    viewport.setLayoutManager(viewportLayout);
-
-    scrollpane.setViewport(viewport);
-    scrollpane.setContents(pane);
-  }
-
-  public HeadingFigure getHeadingFigure()
-  {
-    return headingFigure;
-  }
-
-  public ScrollPane getScrollPane()
-  {
-    return scrollpane;
-  }
-
-  public IFigure getContentPane()
-  {
-    return scrollpane.getContents();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/CenteredIconFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/CenteredIconFigure.java
deleted file mode 100644
index 81ec1d5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/CenteredIconFigure.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.figures;
-            
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.RoundedRectangle;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.ReferenceConnection;
-
-public class CenteredIconFigure extends RoundedRectangle
-{                         
-  public static final int NORMAL = 0;
-  public static final int SELECTED = 1;
-  public static final int HOVER = 2;
-  public Image image;
-  protected Label toolTipLabel;
-  protected int mode = 0;
-  
-  public CenteredIconFigure()
-  {
-    super();
-    setFill(true);   
-    toolTipLabel = new Label();
-    setCornerDimensions(new Dimension(5,5));
-  }
-  
-  public void refresh()
-  {
-    repaint();
-  }
-  
-  protected void outlineShape(Graphics graphics)
-  {
-    graphics.pushState();
-    try
-    {
-      if (mode == NORMAL)
-      { // TODO: common up and organize colors....
-        graphics.setForegroundColor(ReferenceConnection.inactiveConnection);
-      }
-      else if (mode == SELECTED)
-      {
-        graphics.setForegroundColor(ColorConstants.black);
-      }
-      super.outlineShape(graphics);
-    }
-    finally
-    {
-      graphics.popState();
-    }
-  }
-
-  protected void fillShape(Graphics g)
-  {    
-    super.fillShape(g);    
-    if (image != null)
-    {                         
-      Rectangle r = getBounds();
-      Dimension imageSize = new Dimension(15, 15);
-      g.drawImage(image, r.x + (r.width - imageSize.width)/2, r.y + (r.height - imageSize.height)/2 - 1);
-    }
-  }
-
-  public Label getToolTipLabel()
-  {
-    return toolTipLabel;
-  }
-  
-  public void setMode(int mode)
-  {
-    this.mode = mode;  
-  }
-  
-  public void setToolTipText(String text)
-  {
-    if (text.length() > 0)
-    {
-      setToolTip(toolTipLabel);
-      toolTipLabel.setText(text);
-    }
-    else
-    {
-      setToolTip(null);
-    }
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/GenericGroupFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/GenericGroupFigure.java
deleted file mode 100644
index c0117ce..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/GenericGroupFigure.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.figures;
-
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.design.layouts.ModelGroupLayout;
-
-public class GenericGroupFigure extends Figure
-{
-  protected CenteredIconFigure centeredIconFigure;
-  protected Figure contentFigure;
-  protected String text;
-  protected boolean hasText = false;
-  protected Label textFigure;
-  
-  public GenericGroupFigure()
-  {
-    super();
-    setLayoutManager(new ModelGroupLayout(true));
-   
-    centeredIconFigure = new CenteredIconFigure();
-    centeredIconFigure.setPreferredSize(new Dimension(15, 15));
-
-    add(centeredIconFigure);
-    contentFigure = new Figure();
-    contentFigure.setLayoutManager(new ModelGroupLayout(false, 0));
-    add(contentFigure);
-  }
-  
-  public void setText(String text)
-  {
-    this.text = text;
-    hasText = false;
-    if (text != null && text.length() > 0)
-    {
-      hasText = true;
-    }
-  }
-  
-  public boolean hasText()
-  {
-    return hasText;
-  }
-  
-  public String getText()
-  {
-    return text;
-  }
-  
-  public Point getTextCoordinates()
-  {
-    Rectangle rect = centeredIconFigure.getBounds();
-    return new Point(rect.x, rect.y + 14);
-  }
-  
-  public void setIconFigure(Image image)
-  {
-    centeredIconFigure.image = image;
-  }
-
-  public CenteredIconFigure getTargetFigure()
-  {
-    return centeredIconFigure;
-  }
-  
-  public CenteredIconFigure getIconFigure()
-  {
-    return centeredIconFigure;
-  }
-  
-  public Figure getContentFigure()
-  {
-    return contentFigure;
-  }
-  
-  public void setToolTipText(String text)
-  {
-    centeredIconFigure.setToolTipText(text);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/HyperLinkLabel.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/HyperLinkLabel.java
deleted file mode 100644
index b4ef29f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/HyperLinkLabel.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.figures;
-
-import org.eclipse.draw2d.FigureUtilities;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-
-public class HyperLinkLabel extends Label
-{
-  protected void paintFigure(Graphics graphics)
-  {
-    super.paintFigure(graphics);   
-    graphics.setFont(getFont());
-        
-    // TODO (cs) this lookup to find " :" is a hack
-    // that's specialized for element and type label text
-    // we need to make the TopLevelComponent use two labels in this case
-    //    
-    String string = getText();
-    int index = string.indexOf(" :");
-    if (index != -1)
-    {
-      string = string.substring(0, index);
-    }
-    // end hack
-    
-    Point p = getTextLocation();      
-    Dimension textSize =  FigureUtilities.getTextExtents(string, getFont());
-    int textWidth = textSize.width;
-    int textHeight = textSize.height;
-    int descent = graphics.getFontMetrics().getDescent();
-    int lineY = bounds.y + p.y + textHeight - descent + 1;      
-    int lineX = bounds.x + p.x;
-    graphics.drawLine(lineX, lineY, lineX + textWidth, lineY); 
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/IExtendedFigureFactory.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/IExtendedFigureFactory.java
deleted file mode 100644
index e107b57..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/IExtendedFigureFactory.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.figures;
-
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IFigureFactory;
-
-public interface IExtendedFigureFactory extends IFigureFactory
-{
-  IModelGroupFigure createModelGroupFigure(Object model);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/IModelGroupFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/IModelGroupFigure.java
deleted file mode 100644
index 10ff423..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/IModelGroupFigure.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.figures;
-
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IADTFigure;
-
-public interface IModelGroupFigure extends IADTFigure
-{
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/ModelGroupFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/ModelGroupFigure.java
deleted file mode 100644
index 7009930..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/ModelGroupFigure.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.figures;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public class ModelGroupFigure extends GenericGroupFigure implements IModelGroupFigure
-{
-  public static final Image SEQUENCE_ICON_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/sequence_obj.gif"); //$NON-NLS-1$
-  public static final Image SEQUENCE_ICON_DISABLED_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/sequencedis_obj.gif"); //$NON-NLS-1$
-  public static final Image CHOICE_ICON_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/choice_obj.gif"); //$NON-NLS-1$
-  public static final Image CHOICE_ICON_DISABLED_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/choicedis_obj.gif"); //$NON-NLS-1$
-  public static final Image ALL_ICON_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/all_obj.gif"); //$NON-NLS-1$
-  public static final Image ALL_ICON_DISABLED_IMAGE = XSDEditorPlugin.getPlugin().getIcon("obj16/alldis_obj.gif"); //$NON-NLS-1$
-  
-  public ModelGroupFigure()
-  {
-    super();
-  }
-
-  public void setIconFigure(Image image)
-  {
-    centeredIconFigure.image = image;
-  }
-
-  public void addSelectionFeedback()
-  {
-    // TODO Auto-generated method stub
-    
-  }
-
-  public void editPartAttached(EditPart owner)
-  {
-    // TODO Auto-generated method stub
-    
-  }
-
-  public void refreshVisuals(Object model)
-  {
-    // TODO Auto-generated method stub
-    
-  }
-
-  public void removeSelectionFeedback()
-  {
-    // TODO Auto-generated method stub   
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/SpacingFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/SpacingFigure.java
deleted file mode 100644
index fa6a55a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/figures/SpacingFigure.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.figures;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public class SpacingFigure extends Label
-{
-  public SpacingFigure()
-  {
-    super(""); //$NON-NLS-1$
-    setIcon(XSDEditorPlugin.getXSDImage("icons/Dot.gif")); //$NON-NLS-1$
-    setBorder(new MarginBorder(3, 0, 3, 0));
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/ContainerLayout.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/ContainerLayout.java
deleted file mode 100644
index 6209800..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/ContainerLayout.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.layouts;
-                   
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.wst.xsd.ui.internal.design.figures.SpacingFigure;
-              
-
-public class ContainerLayout extends AbstractLayout
-{                                         
-  protected boolean isHorizontal;
-  protected int spacing = 0;
-  protected int border = 0; 
-
-  public ContainerLayout()
-  { 
-    this(true, 0); 
-  }             
-
-  public ContainerLayout(boolean isHorizontal, int spacing)
-  {
-    this.isHorizontal = isHorizontal;   
-    this.spacing = spacing;
-  }  
-
-  public void setHorizontal(boolean isHorizontal)
-  {
-    this.isHorizontal = isHorizontal;
-  }  
-
-  public void setSpacing(int spacing)
-  {
-    this.spacing = spacing;
-  }  
-
-  public void setBorder(int border)
-  {
-    this.border = border;
-  }  
-
-  protected int alignFigure(IFigure parent, IFigure child)
-  { 
-    return -1;
-  }
-
-  /**
-   * Calculates and returns the preferred size of the container 
-   * given as input.
-   * 
-   * @param figure  Figure whose preferred size is required.
-   * @return  The preferred size of the passed Figure.
-   * @since 2.0
-   */
-  protected Dimension calculatePreferredSizeHelper(IFigure parent)
-  { 
-    Dimension	preferred = new Dimension();
-  	List children = parent.getChildren();
-		                                        
-	  for (int i=0; i < children.size(); i++)
-    {
-		  IFigure child = (IFigure)children.get(i);      
-    
-      Dimension	childSize = child.getPreferredSize();
-	  
-      if (isHorizontal)
-      {
-		    preferred.width += childSize.width;
-		    preferred.height = Math.max(preferred.height, childSize.height);
-      }
-      else
-      {  
-        preferred.height += childSize.height;
-        preferred.width = Math.max(preferred.width, childSize.width);
-      }
-	  }   
-
-    int childrenSize = children.size();
-    if (childrenSize > 1)
-    {                      
-      if (isHorizontal)    
-      {
-        preferred.width += spacing * (childrenSize - 1);
-      }
-      else
-      {
-		    preferred.height += spacing * (childrenSize - 1);
-      } 
-    }
-                          
-    preferred.width += border * 2;
-    preferred.height += border * 2;
-	  preferred.width += parent.getInsets().getWidth();
-	  preferred.height += parent.getInsets().getHeight();       
-  
-  	return preferred;
-  }
-
-  protected Dimension calculatePreferredSize(IFigure parent, int width, int height)
-  {    
-    Dimension	preferred = null;                                              
-                                  
-    // Here we ensure that an unexpanded container is given a size of (0,0)
-    //
-//    if (parent instanceof IExpandable)
-//    {
-//      IExpandable expandableFigure = (IExpandable)parent;
-//      if (!expandableFigure.isExpanded())
-//      {
-//        preferred = new Dimension(); 
-//      }
-//    }   
-    
-    if (preferred == null)
-    {
-	    preferred = calculatePreferredSizeHelper(parent);    
-    }
-    
-    return preferred;
-  }
-     
-
-  protected void adjustLayoutLocation(IFigure parent, Dimension dimension)
-  {     
-  }   
-
-  public void layout(IFigure parent)
-  {       
-  	List children = parent.getChildren();
- 
-    int rx = 0;
-    Dimension	dimension = new Dimension();                                          
-
-
-	  for (int i=0; i < children.size(); i++)
-    {
-		  IFigure child = (IFigure)children.get(i);
-		  Dimension	childSize = child.getPreferredSize();
-      if (isHorizontal)
-      {   
-        dimension.height = Math.max(dimension.height, childSize.height);
-        rx += childSize.width;
-      }
-      else
-      {
-        dimension.width = Math.max(dimension.width, childSize.width);
-      }
-    }
-
-	  //dimension.width += parent.getInsets().left;
-    //dimension.height += parent.getInsets().top;
-
-    if (isHorizontal)
-    {
-      dimension.height += border*2;
-    	dimension.width += border;
-    }
-    else
-    {
-      dimension.width += border*2;
-    	dimension.height += border;
-    }
-    adjustLayoutLocation(parent, dimension);    
-
-    for (int i=0; i < children.size(); i++)
-    {
-      IFigure child = (IFigure)children.get(i);
-	    Dimension	childSize = child.getPreferredSize();
-        
-      if (isHorizontal)
-      {   
-        int y = -1; 
-    
-        y = alignFigure(parent, child);
-    
-        if (y == -1)
-        {
-           y = (dimension.height - childSize.height) / 2;                                      
-        }                      
-                                                   
-        Rectangle rectangle = new Rectangle(dimension.width, y, childSize.width, childSize.height);
-        rectangle.translate(parent.getClientArea().getLocation());                           
-
-
-        child.setBounds(rectangle);                           
-	      dimension.width += childSize.width; 
-        dimension.width += spacing;       
-
-        if (child instanceof SpacingFigure)
-        {          
-          int availableHorizontalSpace = parent.getClientArea().width - rx;
-          dimension.width += availableHorizontalSpace;
-        }           
-      }
-      else
-      {
-        Rectangle rectangle = new Rectangle(0, dimension.height, childSize.width, childSize.height);
-	      rectangle.translate(parent.getClientArea().getLocation());                                  
-        
-
-        child.setBounds(rectangle);  
-        dimension.height += childSize.height;
-        dimension.height += spacing;
-      }
-	  }	      
-  }                                      
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/FillLayout.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/FillLayout.java
deleted file mode 100644
index 14fe8e5b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/FillLayout.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.layouts;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Rectangle;
-
-public class FillLayout extends AbstractLayout
-{
-  protected boolean isHorizontal = false;
-  protected int spacing = 0;
-  public Dimension min;
-
-  public FillLayout()
-  {
-  }
-
-  public FillLayout(int spacing)
-  {
-    this.spacing = spacing;
-  }
-
-  public void setHorizontal(boolean isHorizontal)
-  {
-    this.isHorizontal = isHorizontal;
-  }
-
-  /**
-   * Calculates and returns the preferred size of the input container. This is
-   * the size of the largest child of the container, as all other children fit
-   * into this size.
-   * 
-   * @param figure
-   *          Container figure for which preferred size is required.
-   * @return The preferred size of the input figure.
-   */
-
-  protected Dimension calculatePreferredSize(IFigure figure, int width, int height)
-  {
-    Dimension d = calculatePreferredClientAreaSize(figure);
-    d.expand(figure.getInsets().getWidth(), figure.getInsets().getHeight());
-    d.union(getBorderPreferredSize(figure));
-    return d;
-  }
-
-  protected Dimension calculatePreferredClientAreaSize(IFigure figure)
-  {
-    Dimension d = new Dimension();
-    List children = figure.getChildren();
-
-    for (Iterator i = children.iterator(); i.hasNext();)
-    {
-      IFigure child = (IFigure) i.next();
-      Dimension childSize = child.getPreferredSize();
-
-      if (isHorizontal)
-      {
-        d.width += childSize.width;
-        d.height = Math.max(childSize.height, d.height);
-      }
-      else
-      {
-        d.height += childSize.height;
-        d.width = Math.max(childSize.width, d.width);
-      }
-    }
-
-    int childrenSize = children.size();
-    if (childrenSize > 0)
-    {
-      if (isHorizontal)
-      {
-        d.width += spacing * (childrenSize - 1);
-      }
-      else
-      {
-        d.height += spacing * (childrenSize - 1);
-      }
-    }
-
-    if (min != null)
-    {
-      d.width = Math.max(d.width, min.width);
-      d.height = Math.max(d.height, min.height);
-    }
-    return d;
-  }
-
-  /*
-   * Returns the minimum size required by the input container. This is the size
-   * of the largest child of the container, as all other children fit into this
-   * size.
-   */
-  public Dimension getMinimumSize(IFigure figure, int width, int height)
-  {
-    Dimension d = new Dimension();
-    List children = figure.getChildren();
-    IFigure child;
-
-    for (int i = 0; i < children.size(); i++)
-    {
-      child = (IFigure) children.get(i);
-      d.union(child.getMinimumSize());
-    }
-    d.expand(figure.getInsets().getWidth(), figure.getInsets().getHeight());
-    return d;
-  }
-
-  public Dimension getPreferredSize(IFigure figure, int width, int height)
-  {
-    return calculatePreferredSize(figure, width, height);
-  }
-
-  /*
-   * Lays out the children on top of each other with their sizes equal to that
-   * of the available paintable area of the input container figure.
-   */
-  public void layout(IFigure figure)
-  {
-    Dimension preferredSize = calculatePreferredClientAreaSize(figure);
-    Rectangle r = figure.getClientArea().getCopy();
-    List children = figure.getChildren();
-
-    int nChildren = children.size();
-    int extraHorizontalSpace = r.width - preferredSize.width;
-
-    for (Iterator i = children.iterator(); i.hasNext();)
-    {
-      IFigure child = (IFigure) i.next();
-      Dimension preferredChildSize = child.getPreferredSize();
-
-      if (isHorizontal)
-      {
-        int w = preferredChildSize.width + (extraHorizontalSpace / nChildren);
-        child.setBounds(new Rectangle(r.x, r.y, w, Math.max(preferredSize.height, r.height)));
-        r.x += w + spacing;
-      }
-      else
-      {
-        child.setBounds(new Rectangle(r.x, r.y, Math.max(preferredSize.width, r.width), preferredChildSize.height));
-        r.y += preferredChildSize.height + spacing;
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/ModelGroupLayout.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/ModelGroupLayout.java
deleted file mode 100644
index 69f7b79..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/design/layouts/ModelGroupLayout.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.design.layouts;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.AbstractLayout;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.wst.xsd.ui.internal.design.figures.ModelGroupFigure;
-import org.eclipse.wst.xsd.ui.internal.design.figures.SpacingFigure;
-
-public class ModelGroupLayout extends AbstractLayout
-{
-  protected boolean isHorizontal;
-  protected int spacing = 10;
-  protected int border = 0;
-
-  public ModelGroupLayout()
-  {
-    this(0);
-  }
-
-  public ModelGroupLayout(boolean isHorizontal)
-  {
-    this.isHorizontal = isHorizontal;
-  }
-
-  public ModelGroupLayout(boolean isHorizontal, int spacing)
-  {
-    this.isHorizontal = isHorizontal;
-    this.spacing = spacing;
-  }
-
-  public ModelGroupLayout(int spacing)
-  {
-    super();
-    this.spacing = spacing;
-  }
-
-  protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
-  {
-    Dimension preferred = new Dimension();
-    List children = container.getChildren();
-
-    for (int i = 0; i < children.size(); i++)
-    {
-      IFigure child = (IFigure) children.get(i);
-
-      Dimension childSize = child.getPreferredSize();
-
-      if (isHorizontal)
-      {
-        preferred.width += childSize.width;
-        preferred.height = Math.max(preferred.height, childSize.height);
-      }
-      else
-      {
-        preferred.height += childSize.height;
-        preferred.width = Math.max(preferred.width, childSize.width);
-      }
-    }
-
-    int childrenSize = children.size();
-    if (childrenSize > 1)
-    {
-      if (isHorizontal)
-      {
-        preferred.width += spacing * (childrenSize - 1);
-      }
-      else
-      {
-        preferred.height += spacing * (childrenSize - 1);
-      }
-    }
-
-    preferred.width += border * 2;
-    preferred.height += border * 2;
-    preferred.width += container.getInsets().getWidth();
-    preferred.height += container.getInsets().getHeight();
-
-    return preferred;
-  }
-
-  public void layout(IFigure container)
-  {
-    List children = container.getChildren();
-
-    int rx = 0;
-    Dimension dimension = new Dimension();
-
-    for (int i = 0; i < children.size(); i++)
-    {
-      IFigure child = (IFigure) children.get(i);
-      Dimension childSize = child.getPreferredSize();
-      if (isHorizontal)
-      {
-        dimension.height = Math.max(dimension.height, childSize.height);
-        rx += childSize.width;
-      }
-      else
-      {
-        dimension.width = Math.max(dimension.width, childSize.width);
-      }
-    }
-
-    if (isHorizontal)
-    {
-      dimension.height += border * 2;
-      dimension.width += border;
-    }
-    else
-    {
-      dimension.width += border * 2;
-      dimension.height += border;
-    }
-
-    Rectangle r = container.getClientArea();
-    dimension = new Dimension(r.width, r.height);
-    Point p = new Point(0, 0);
-
-    for (Iterator i = children.iterator(); i.hasNext();)
-    {
-      IFigure child = (IFigure) i.next();
-      Dimension childSize = child.getPreferredSize();
-
-      if (isHorizontal)
-      {
-        Rectangle rectangle = new Rectangle(p.x, 0, childSize.width, childSize.height);
-
-        // last child
-        if (!i.hasNext())
-        {
-          rectangle.width = dimension.width - rectangle.x;
-        }
-
-        if (p.x == 0)
-        {
-          rectangle.y = r.height / 2 - childSize.height / 2;
-        }
-        else
-        {
-          rectangle.y = r.height / 2 - childSize.height / 2;
-        }
-
-        rectangle.translate(container.getClientArea().getLocation());
-        child.setBounds(rectangle);
-        p.x += childSize.width;
-        p.x += spacing;
-
-      }
-      else
-      {
-        Rectangle rectangle = new Rectangle(0, p.y, childSize.width, childSize.height);
-
-        if (child instanceof SpacingFigure)
-        {
-          rectangle.x = dimension.width + 6;
-        }
-        else if (child instanceof ModelGroupFigure)
-        {
-          rectangle.width = dimension.width - rectangle.x;
-        }
-        else
-        {
-          rectangle.width = dimension.width - rectangle.x;
-        }
-
-        rectangle.translate(container.getClientArea().getLocation());
-        child.setBounds(rectangle);
-        p.y += childSize.height;
-        p.y += spacing;
-      }
-    }
-  }
-
-  public void setSpacing(int spacing)
-  {
-    this.spacing = spacing;
-  }
-
-  protected int alignFigure(IFigure parent, IFigure child)
-  {
-    return -1;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/BuiltInTypesTreeViewerProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/BuiltInTypesTreeViewerProvider.java
deleted file mode 100644
index f0cecbb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/BuiltInTypesTreeViewerProvider.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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 
- *     Trung de Irene <trungha@ca.ibm.com>
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.dialogs;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-/**
- * This class provides the content for SelectBuiltInTypesForFilterDialog
- * readability Warning: Some simple tricks to tweak efficiency are used
- */
-public class BuiltInTypesTreeViewerProvider {
-	
-	ILabelProvider labelProvider;
-	
-	ITreeContentProvider contentProvider;
-	
-//	private static final String CONST_PARENT = "parent";
-	
-	/**
-	 * Currently there are 3 subgroups: Numbers, Data and Time, Other
-	 * Folks can choose to expand to more subgroups
-	 */
-	private static int BUILT_IN_TYPES_SUB_GROUP = 3;
-	
-    static String[] numberTypes = 
-    	{ "base64Binary", "byte", "decimal", "double", "float", "hexBinary",
-    	  "int", "integer", "long", "negativeInteger", "nonNegativeInteger",
-    	  "nonPositiveInteger", "positiveInteger", "short", "unsignedByte",
-    	  "unsignedInt", "unsignedLong", "unsignedShort"};
-    
-    static String[] dateAndTimeTypes =
-    	{ "date", "dateTime", "duration", "gDay",
-    	  "gMonth", "gMonthDay", "gYear", "gYearMonth", "time"};
-	
-	
-    public static List getAllBuiltInTypes() {
-        List items = new ArrayList();
-        //for (int i = 0; i < XSDDOMHelper.dataType.length; i++) {
-        //  items.add(XSDDOMHelper.dataType[i][0]);
-        //}
-        Iterator it = items.iterator();
-        
-        List mainContainer = new ArrayList(BUILT_IN_TYPES_SUB_GROUP);
-        ComponentSpecification header = new ComponentSpecification("", "Root", null);
-        mainContainer.add(header);
-        
-        List numbersGroup = new ArrayList();
-        header = new ComponentSpecification("", "Numbers", null);
-        numbersGroup.add(header);
-        mainContainer.add(numbersGroup);
-        
-        List dateAndTimeGroup = new ArrayList();
-        header = new ComponentSpecification("", "Date and Time", null);
-        dateAndTimeGroup.add(header);
-        mainContainer.add(dateAndTimeGroup);
-        
-        List otherGroup = new ArrayList();
-        header = new ComponentSpecification("", "Other", null);
-        otherGroup.add(header);
-        mainContainer.add(otherGroup);
-
-        while (it.hasNext()) {
-        	Object item = it.next();
-            String name = item.toString();
-
-            ComponentSpecification builtInTypeItem = new ComponentSpecification(name, XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, null);
-          
-            // if this built-In Type is in Number group 
-            if ( partOf(name, numberTypes) ){
-            	// Set parent
-            	//builtInTypeItem.addAttributeInfo(CONST_PARENT, numbersGroup);
-            	
-            	numbersGroup.add(builtInTypeItem);
-            }
-            // if this built-In Type is in Date-and-Time group 
-            else if ( partOf(name, dateAndTimeTypes)){
-            	//builtInTypeItem.addAttributeInfo(CONST_PARENT, dateAndTimeGroup);
-            	dateAndTimeGroup.add(builtInTypeItem);
-            }
-            // otherwise, put in Other group
-            else {
-            	//builtInTypeItem.addAttributeInfo(CONST_PARENT, otherGroup);
-            	otherGroup.add(builtInTypeItem);
-            }
-        }
-
-        return mainContainer;
-    }
-    
-    public ILabelProvider getLabelProvider(){
-		if (labelProvider != null)
-			return labelProvider;
-		
-		labelProvider = new BuiltInTypeLabelProvider();
-		return labelProvider;
-	}
-	
-	public ITreeContentProvider getContentProvider() {
-		if (contentProvider != null)
-			return contentProvider;
-		
-		contentProvider = new BuiltInTypesTreeContentProvider();
-		return contentProvider;
-	}
-	
-	/**
-	 * Determines whether an equivalent of 'item' appears in 'array'
-	 * @param item
-	 * @param array
-	 * @return
-	 */
-	private static boolean partOf(String item, String[] array){
-	    for(int i = 0; i < array.length; i++ ){
-	    	if ( item.equals(array[i]) ){
-	    		return true;
-	    	}            		
-	    }
-	    return false;
-	}
-	
-	class BuiltInTypeLabelProvider implements ILabelProvider{
-		public Image getImage(Object element) {			
-			if ( getText(element).equals("Numbers") )
-				return XSDEditorPlugin.getXSDImage("icons/XSDNumberTypes.gif");
-			if ( getText(element).equals("Date and Time") )
-				return XSDEditorPlugin.getXSDImage("icons/XSDDateAndTimeTypes.gif");
-			if ( getText(element).equals("Other") )
-				return XSDEditorPlugin.getXSDImage("icons/browsebutton.gif");
-			if ( element instanceof ComponentSpecification ){
-				return XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
-			}
-			return null;
-		}
-
-		public String getText(Object element) {
-			ComponentSpecification spec = null;
-			
-			/* if not non-leaf node, the first element has the name for 
-			 * the whole list */
-			if (element instanceof List){
-				spec = (ComponentSpecification) ((List) element).get(0);
-			}
-			else if (element instanceof ComponentSpecification ){
-				spec = (ComponentSpecification) element;
-			}
-			return spec.getName();
-		}
-
-		public void addListener(ILabelProviderListener listener) {
-			
-		}
-
-		public void dispose() {
-		}
-
-		public boolean isLabelProperty(Object element, String property) {
-			return false;
-		}
-
-		public void removeListener(ILabelProviderListener listener) {
-			
-		}  
-		
-	}
-
-
-	class BuiltInTypesTreeContentProvider implements ITreeContentProvider {
-
-		public Object[] getChildren(Object parentElement) {
-			if (parentElement instanceof List) {
-				List parentContent = (List) parentElement;
-				
-				/** Ignore the first element (which contains the name of this list
-				 * ie. 'Numbers', 'Date and time', 'Other') */
-				return parentContent.subList(1, parentContent.size()).toArray();
-			}
-			return new Object[0];
-		}
-
-		public Object[] getElements(Object inputElement) {
-			return getChildren(inputElement);
-		}
-
-		public Object getParent(Object element) {
-		    return null;
-		}
-
-		public boolean hasChildren(Object element) {
-			if (getChildren(element).length > 1) {
-				return true;
-			}
-			return false;
-		}
-
-		public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
-		}
-
-		public void dispose() {
-		}
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewComponentDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewComponentDialog.java
deleted file mode 100644
index aa0c49e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewComponentDialog.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.dialogs;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-
-public class NewComponentDialog extends Dialog implements ModifyListener
-{
-  protected Text nameField; 
-  protected Button okButton;
-  protected String name;                             
-  protected String title;
-  protected Label errorMessageLabel;
-  protected List usedNames;
-
-  public NewComponentDialog(Shell parentShell, String title, String defaultName) 
-  {
-    super(parentShell);
-    setShellStyle(getShellStyle() | SWT.RESIZE);
-    name = defaultName;      
-    this.title = title;
-  }
-  
-  public NewComponentDialog(Shell parentShell, String title, String defaultName, List usedNames) 
-  {
-    super(parentShell);
-    setShellStyle(getShellStyle() | SWT.RESIZE);
-    name = defaultName;      
-    this.title = title;
-    this.usedNames = usedNames;
-  }
-
-  public int createAndOpen()
-  {
-    create();
-    getShell().setText(title);
-    setBlockOnOpen(true);
-    return open();
-  }
-
-  protected Control createContents(Composite parent)  
-  {
-    Control control = super.createContents(parent);
-    nameField.forceFocus();
-    nameField.selectAll();  
-    updateErrorMessage();
-    return control;
-  }
-
-
-  protected void createButtonsForButtonBar(Composite parent) 
-  {
-    okButton = createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
-    createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false);
-  }
-
-  protected void createHeaderContent(Composite parent)
-  {
-  }
-  
-  protected void createExtendedContent(Composite parent)
-  {
-  }
-
-  protected Control createDialogArea(Composite parent) 
-  {
-    Composite dialogArea = (Composite)super.createDialogArea(parent);
-    
-    createHeaderContent(dialogArea);
-
-    Composite composite = new Composite(dialogArea, SWT.NONE);
-    GridLayout layout = new GridLayout();
-    layout.numColumns = 2;
-    layout.marginWidth = 0;
-    composite.setLayout(layout);
-
-    GridData gdFill= new GridData();
-    gdFill.horizontalAlignment= GridData.FILL;
-    gdFill.grabExcessHorizontalSpace= true;
-    gdFill.verticalAlignment= GridData.FILL;
-    gdFill.grabExcessVerticalSpace= true;
-    composite.setLayoutData(gdFill);
-
-    Label nameLabel = new Label(composite, SWT.NONE);
-    nameLabel.setText(Messages.UI_LABEL_NAME);
-
-    nameField = new Text(composite, SWT.SINGLE | SWT.BORDER);
-    GridData gd= new GridData();
-    gd.horizontalAlignment= GridData.FILL;
-    gd.grabExcessHorizontalSpace= true;
-    gd.widthHint = 200;
-    nameField.setLayoutData(gd);
-    nameField.setText(name);
-    nameField.addModifyListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(nameField, XSDEditorCSHelpIds.NEWTYPE_NAME);
-
-    createExtendedContent(dialogArea);
-
-    // error message
-    errorMessageLabel = new Label(dialogArea, SWT.NONE);
-    errorMessageLabel.setText("error message goes here");
-    GridData gd2 = new GridData();
-    gd2.horizontalAlignment= GridData.FILL;
-    gd2.grabExcessHorizontalSpace= true;
-    gd2.widthHint = 200;
-    errorMessageLabel.setLayoutData(gd2);          
-//    Color color = new Color(errorMessageLabel.getDisplay(), 200, 0, 0);
-//    errorMessageLabel.setForeground(color);
-
-    return dialogArea;
-  }
-  
-  public void modifyText(ModifyEvent e) 
-  {                        
-    updateErrorMessage();
-  }        
-
-  protected String computeErrorMessage(String name)
-  {
-  	if (usedNames == null)
-  		return null;
-  	
-  	Iterator iterator = usedNames.iterator();
-  	while (iterator.hasNext()) {
-  		if (name.equalsIgnoreCase((String) iterator.next())) {
-  			return org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ERROR_NAME_ALREADY_USED; //$NON-NLS-1$
-  		}
-  	}
-  	
-  	return null;
-  }
-
-  protected void updateErrorMessage()
-  {                 
-    String errorMessage = null;
-    String name = nameField.getText().trim();
-    if (name.length() > 0)
-    {                                
-      errorMessage = computeErrorMessage(name);
-    }   
-    else
-    {
-      errorMessage = ""; //$NON-NLS-1$
-    }  
-    errorMessageLabel.setText(errorMessage != null ? errorMessage : ""); //$NON-NLS-1$
-    okButton.setEnabled(errorMessage == null);
-  }
- 
-  protected void buttonPressed(int buttonId) 
-  {
-    if (buttonId == IDialogConstants.OK_ID)
-    {
-      name = nameField.getText();
-    }
-    super.buttonPressed(buttonId);
-  }
-
-  public String getName()
-  {
-    return name;
-  }
-  
-  public void setUsedNames(List usedNames) {
-	  this.usedNames = usedNames;
-  }
-  
-  public void setDefaultName(String name) {
-	  this.name = name;
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewElementButtonHandler.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewElementButtonHandler.java
deleted file mode 100644
index 9c83571..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewElementButtonHandler.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.dialogs;
-
-import org.eclipse.wst.common.ui.internal.search.dialogs.INewComponentHandler;
-
-public class NewElementButtonHandler implements INewComponentHandler
-{
-  public NewElementButtonHandler()
-  {
-  }
-
-  public void openNewComponentDialog()
-  {
-    NewElementDialog newElementDialog = new NewElementDialog();
-    newElementDialog.createAndOpen();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewElementDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewElementDialog.java
deleted file mode 100644
index 2a0619b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewElementDialog.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.dialogs;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-
-public class NewElementDialog extends NewComponentDialog implements IComponentDialog
-{
-	  protected XSDSchema schema;
-	  protected Object setObject;
-	  protected int typeKind;
-	  protected Object selection;
-
-	  public NewElementDialog()
-	  {
-	    super(Display.getCurrent().getActiveShell(), Messages._UI_LABEL_NEW_ELEMENT, "NewElement");     //$NON-NLS-1$
-	  }
-
-	  public NewElementDialog(XSDSchema schema)
-	  {
-	    super(Display.getCurrent().getActiveShell(), Messages._UI_LABEL_NEW_ELEMENT, "NewElement");     //$NON-NLS-1$
-	    this.schema = schema;
-	  }
-	  
-	  private void setup() {
-		  if (schema != null) {
-			  List usedNames = getUsedElementNames();
-			  setUsedNames(usedNames);
-			  setDefaultName(XSDCommonUIUtils.createUniqueElementName("NewElement", schema.getElementDeclarations()));
-		  }
-	  }
-	  
-	  public int createAndOpen()
-	  {
-		setup();
-	    int returnCode = super.createAndOpen();
-	    if (returnCode == 0)
-	    {
-	      if (setObject instanceof Adapter)
-	      {  
-	        //Command command = new AddComplexTypeDefinitionCommand(getName(), schema);
-	      }        
-	    }  
-	    return returnCode;
-	  }
-
-	  public ComponentSpecification getSelectedComponent()
-	  {
-	    ComponentSpecification componentSpecification =  new ComponentSpecification(null, getName(), null);    
-	    componentSpecification.setMetaName(IXSDSearchConstants.ELEMENT_META_NAME);
-	    componentSpecification.setNew(true);
-	    return componentSpecification;
-	  }
-
-	  public void setInitialSelection(ComponentSpecification componentSpecification)
-	  {
-	    // TODO Auto-generated method stub
-	  }
-	  
-	  private List getUsedElementNames() {
-		  List usedNames = new ArrayList();		  
-		  if (schema != null ) {
-			  List elementsList = schema.getElementDeclarations();
-			  Iterator elements = elementsList.iterator(); 
-			  while (elements.hasNext()) {
-				  usedNames.add(((XSDElementDeclaration) elements.next()).getName());
-			  }
-		  }
-		  
-		  return usedNames;
-	  }
-	}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewTypeButtonHandler.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewTypeButtonHandler.java
deleted file mode 100644
index e815a88..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewTypeButtonHandler.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.dialogs;
-
-import org.eclipse.wst.common.ui.internal.search.dialogs.INewComponentHandler;
-
-public class NewTypeButtonHandler implements INewComponentHandler
-{
-  public NewTypeButtonHandler()
-  {
-  }
-
-  public void openNewComponentDialog()
-  {
-    NewTypeDialog newTypeDialog = new NewTypeDialog();
-    newTypeDialog.createAndOpen();
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewTypeDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewTypeDialog.java
deleted file mode 100644
index e4aaf04..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/NewTypeDialog.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.dialogs;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class NewTypeDialog extends NewComponentDialog implements IComponentDialog
-{
-  protected XSDSchema schema;
-  protected static int SIMPLE_TYPE = 0;
-  protected static int COMPLEX_TYPE = 1;
-  protected Object setObject;
-  protected int typeKind;
-  protected Object selection;
-  protected boolean allowComplexType = true;
-  protected boolean allowAnonymousType = true;
-  protected boolean anonymousType = false;
-  private Button complexTypeButton;
-  private Button simpleTypeButton;
-  private Button anonymousTypeCheckBox;
-
-  public NewTypeDialog()
-  {
-    super(Display.getCurrent().getActiveShell(), Messages._UI_LABEL_NEW_TYPE, "NewType");     //$NON-NLS-1$
-  }
-
-  public NewTypeDialog(XSDSchema schema)
-  {
-    super(Display.getCurrent().getActiveShell(), Messages._UI_LABEL_NEW_TYPE, "NewType");     //$NON-NLS-1$
-    this.schema = schema;
-  }
-  
-  private void setup() {
-	  if (schema != null) {
-		  List usedNames = getUsedTypeNames();
-		  setUsedNames(usedNames);
-		  setDefaultName(XSDCommonUIUtils.createUniqueElementName("NewType", schema.getTypeDefinitions()));
-	  }
-  }
-  
-  public int createAndOpen()
-  {
-	setup();
-    int returnCode = super.createAndOpen();
-    if (returnCode == 0)
-    {
-      if (setObject instanceof Adapter)
-      {  
-        //Command command = new AddComplexTypeDefinitionCommand(getName(), schema);
-      }        
-    }  
-    return returnCode;
-  }
-
-  public ComponentSpecification getSelectedComponent()
-  {
-    ComponentSpecification componentSpecification;
-    if ( anonymousType )
-    	componentSpecification = new ComponentSpecification(null, null, null);
-    else
-    	componentSpecification =  new ComponentSpecification(null, getName(), null);    
-    componentSpecification.setMetaName(typeKind == COMPLEX_TYPE ? IXSDSearchConstants.COMPLEX_TYPE_META_NAME : IXSDSearchConstants.SIMPLE_TYPE_META_NAME);
-    componentSpecification.setNew(true);
-    //componentSpecification.
-    return componentSpecification;
-  }
-
-  public void setInitialSelection(ComponentSpecification componentSpecification)
-  {
-    // TODO Auto-generated method stub
-  }
-
-  protected void createHeaderContent(Composite parent)
-  {
-    complexTypeButton = new Button(parent, SWT.RADIO);
-    complexTypeButton.setText(Messages._UI_LABEL_COMPLEX_TYPE);
-    complexTypeButton.setEnabled(allowComplexType);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(complexTypeButton, XSDEditorCSHelpIds.NEWTYPE_COMPLEXTYPE);
-    
-    simpleTypeButton = new Button(parent, SWT.RADIO);
-    simpleTypeButton.setText(Messages._UI_LABEL_SIMPLE_TYPE);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(simpleTypeButton, XSDEditorCSHelpIds.NEWTYPE_SIMPLETYPE);
-    
-    SelectionAdapter listener = new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {
-        if (e.widget == simpleTypeButton)
-        {
-          typeKind = SIMPLE_TYPE;
-        }
-        else if (e.widget == complexTypeButton)
-        {
-          typeKind = COMPLEX_TYPE;
-        }
-        else if (allowAnonymousType && e.widget == anonymousTypeCheckBox)
-        {
-          if (anonymousTypeCheckBox.getSelection() == true)
-          {
-        	  nameField.setEnabled(false);
-        	  anonymousType = true;
-          }
-          else
-          {
-        	  nameField.setEnabled(true);
-        	  anonymousType = false;
-          }
-        }
-      }
-    };
-    if (allowComplexType)
-    {
-      complexTypeButton.setSelection(true);
-      typeKind = COMPLEX_TYPE;
-    }
-    else
-    {
-      simpleTypeButton.setSelection(true);
-      typeKind = SIMPLE_TYPE;
-    }
-
-    simpleTypeButton.addSelectionListener(listener);
-    complexTypeButton.addSelectionListener(listener);
-    
-    Label separator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
-    GridData gd = new GridData(GridData.FILL_BOTH);
-    separator.setLayoutData(gd);
-
-    if (allowAnonymousType )
-    {
-      anonymousTypeCheckBox = new Button(parent, SWT.CHECK);
-      anonymousTypeCheckBox.setText(Messages._UI_LABEL_CREATE_ANON_TYPE);
-    }    
-
-    if (anonymousTypeCheckBox != null)
-      anonymousTypeCheckBox.addSelectionListener(listener);    
-  }
-
-  // TODO: Can we remove this?
-  protected String getNormalizedLocation(String location)
-  {
-    try
-    {
-      URL url = new URL(location);
-      URL resolvedURL = FileLocator.resolve(url);
-      location = resolvedURL.getPath();
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    }
-    return location;
-  }
-
-  public void allowComplexType(boolean value)
-  {
-    this.allowComplexType= value;
-  }
-  
-  public void allowAnonymousType(boolean value)
-  {
-	this.allowAnonymousType = value;
-  }
-  
-  private List getUsedTypeNames() {
-	  List usedNames = new ArrayList();
-
-	  if (schema != null) {
-		  List typesList = schema.getTypeDefinitions();
-		  Iterator types = typesList.iterator();
-		  while (types.hasNext()) {
-			  usedNames.add(((XSDTypeDefinition) types.next()).getName());
-		  }
-	  }
-	  
-	  return usedNames;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/SelectBuiltInTypesForFilteringDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/SelectBuiltInTypesForFilteringDialog.java
deleted file mode 100644
index a437d6c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/dialogs/SelectBuiltInTypesForFilteringDialog.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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 
- *     Trung de Irene <trungha@ca.ibm.com>
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.dialogs;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.jface.viewers.CheckboxTreeViewer;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.dialogs.CheckedTreeSelectionDialog;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-/**
- * The BuiltInTypesFilteringDialog is a SelectionDialog that allows the user to
- *  select a ...
- */
-public class SelectBuiltInTypesForFilteringDialog extends CheckedTreeSelectionDialog {
-
-	public final static String CUSTOM_LIST_SEPARATOR = XSDEditorPlugin.CUSTOM_LIST_SEPARATOR;
-
-	public SelectBuiltInTypesForFilteringDialog(Shell parent, 
-			ILabelProvider labelProvider, ITreeContentProvider contentProvider) {
-		super(parent, labelProvider, contentProvider);
-
-		init();
-	}
-	
-	public CheckboxTreeViewer getTreeViewer(){
-		return super.getTreeViewer();
-	}
-	
-	private void init(){
-		// grey state enable
-		setContainerMode(true);
-		
-		setTitle(Messages._UI_LABEL_SET_COMMON_BUILT_IN_TYPES);
-		setMessage(Messages._UI_LABEL_SELECT_TYPES_FILTER_OUT);
-		
-		//super.create();
-		//super.getTreeViewer().setSorter(new ViewerSorter());
-		
-	}
-	
-	/**
-	 *   Returns a String acting as list of built-in types selected by the user
-	 * in the filter dialog (white space acts as the item separator).
-	 *   Suggest using getSelectedBuiltInTypesFromString
-	 * to get a concrete array of selected types.
-	 *   We can only store String in the plugin preference's storage so we have 
-	 * use this method for conversion
-	 */
-	public static String getTypesListInString(Object[] chosenTypes) {
-		String returningList = ""; //$NON-NLS-1$
-		for (int i = 0; i < chosenTypes.length; i++){
-			if ( chosenTypes[i] instanceof ComponentSpecification){
-				ComponentSpecification aType = 
-					(ComponentSpecification) chosenTypes[i];
-
-				returningList += aType.getName() + CUSTOM_LIST_SEPARATOR;
-			}
-			/* else selectedBuiltInTypes[i] instanceof List, ie. a parentNode
-			 * we ignore it. */
-		}
-		return returningList;
-	}
-	
-	/**
-	 * Filters out all built-In type not recorded in the 'listString' and 
-	 * returns the result in a List
-	 * Warning: recursive method
-	 * @param listString 
-	 * @param aContainer 
-	 * 			Containing all types
-	 * @return a subset of what 'aContainer' has as specified by 'listString'
-	 */
-	public static List getSelectedBuiltInTypesFromString(String listString, 
-			List aContainer) {
-		List selectedTypes = new ArrayList();
-
-		// ignore the 'header' item in the container, starting from i = 1
-		for (int i = 1; i < aContainer.size(); i++){
-			Object o = aContainer.get(i);
-			if ( o instanceof ComponentSpecification){
-				ComponentSpecification aType = (ComponentSpecification) o;
-				String typeName = aType.getName();
-				// if typeName's name appears in 'listString'
-				if ( listString.indexOf(typeName + CUSTOM_LIST_SEPARATOR) != -1)
-					selectedTypes.add(o);
-			}
-			else if ( o instanceof List){
-				selectedTypes.addAll( getSelectedBuiltInTypesFromString(listString, (List) o) ); 
-			}
-		}
-		return selectedTypes;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/BaseHyperlinkDetector.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/BaseHyperlinkDetector.java
deleted file mode 100644
index f2a74ac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/BaseHyperlinkDetector.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.ITextViewer;
-import org.eclipse.jface.text.Region;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.ITextRegion;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMAttr;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-
-/**
- * Base class for hyperlinks detectors. Provides a framework and common code for
- * hyperlink detectors. TODO: Can we pull this class further up the inheritance
- * hierarchy?
- */
-public abstract class BaseHyperlinkDetector implements IHyperlinkDetector
-{
-  /*
-   * (non-Javadoc)
-   */
-  public IHyperlink[] detectHyperlinks(ITextViewer textViewer, IRegion region, boolean canShowMultipleHyperlinks)
-  {
-    if (region == null || textViewer == null)
-    {
-      return null;
-    }
-
-    List hyperlinks = new ArrayList(0);
-    IDocument document = textViewer.getDocument();
-    int offset = region.getOffset();
-
-    IDOMNode node = getCurrentNode(document, offset);
-
-    // This call allows us to determine whether an attribute is linkable,
-    // without incurring the cost of asking for the target component.
-
-    if (!isLinkable(node))
-    {
-      return null;
-    }
-
-    IRegion hyperlinkRegion = getHyperlinkRegion(node);
-
-    // createHyperlink is a template method. Derived classes, should override.
-
-    IHyperlink hyperlink = createHyperlink(document, node, hyperlinkRegion);
-
-    if (hyperlink != null)
-    {
-      hyperlinks.add(hyperlink);
-    }
-
-    if (hyperlinks.size() == 0)
-    {
-      return null;
-    }
-
-    return (IHyperlink[]) hyperlinks.toArray(new IHyperlink[0]);
-  }
-
-  /**
-   * Determines whether a node is "linkable" that is, the component it refers to
-   * can be the target of a "go to definition" navigation.
-   * 
-   * @param node the node to test, must not be null;
-   * @return true if the node is linkable, false otherwise.
-   */
-  private boolean isLinkable(IDOMNode node)
-  {
-    if (node == null)
-    {
-      return false;
-    }
-
-    short nodeType = node.getNodeType();
-
-    boolean isLinkable = false;
-
-    if (nodeType == Node.ATTRIBUTE_NODE)
-    {
-      IDOMAttr attr = (IDOMAttr) node;
-      String name = attr.getName();
-
-      // isLinkableAttribute is a template method. Derived classes should
-      // override.
-
-      isLinkable = isLinkableAttribute(name);
-    }
-
-    return isLinkable;
-  }
-
-  /**
-   * Determines whether an attribute is "linkable" that is, the component it
-   * points to can be the target of a "go to definition" navigation. Derived
-   * classes should override.
-   * 
-   * @param name the attribute name. Must not be null.
-   * @return true if the attribute is linkable, false otherwise.
-   */
-  protected abstract boolean isLinkableAttribute(String name);
-
-  /**
-   * Creates a hyperlink based on the selected node. Derived classes should
-   * override.
-   * 
-   * @param document the source document.
-   * @param node the node under the cursor.
-   * @param region the text region to use to create the hyperlink.
-   * @return a new IHyperlink for the node or null if one cannot be created.
-   */
-  protected abstract IHyperlink createHyperlink(IDocument document, IDOMNode node, IRegion region);
-
-  /**
-   * Locates the attribute node under the cursor.
-   * 
-   * @param offset the cursor offset.
-   * @param parent the parent node
-   * @return an IDOMNode representing the attribute if one is found at the
-   *         offset or null otherwise.
-   */
-  protected IDOMNode getAttributeNode(int offset, IDOMNode parent)
-  {
-    IDOMAttr attrNode = null;
-    NamedNodeMap map = parent.getAttributes();
-
-    for (int index = 0; index < map.getLength(); index++)
-    {
-      attrNode = (IDOMAttr) map.item(index);
-      boolean located = attrNode.contains(offset);
-      if (located)
-      {
-        if (attrNode.hasNameOnly())
-        {
-          attrNode = null;
-        }
-        break;
-      }
-    }
-
-    if (attrNode == null)
-    {
-      return parent;
-    }
-    return attrNode;
-  }
-
-  /**
-   * Returns the node the cursor is currently on in the document or null if no
-   * node is selected
-   * 
-   * @param offset the current cursor offset.
-   * @return IDOMNode either element, doctype, text, attribute or null
-   */
-  private IDOMNode getCurrentNode(IDocument document, int offset)
-  {
-    IndexedRegion inode = null;
-    IStructuredModel sModel = null;
-
-    try
-    {
-      sModel = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-      inode = sModel.getIndexedRegion(offset);
-      if (inode == null)
-        inode = sModel.getIndexedRegion(offset - 1);
-    }
-    finally
-    {
-      if (sModel != null)
-        sModel.releaseFromRead();
-    }
-
-    if (inode instanceof IDOMNode)
-    {
-      IDOMNode node = (IDOMNode) inode;
-
-      if (node.hasAttributes())
-      {
-        node = getAttributeNode(offset, node);
-      }
-      return node;
-    }
-
-    return null;
-  }
-
-  /**
-   * Get the text region corresponding to an IDOMNode.
-   * 
-   * @param node the node for which we want the text region. Must not be null.
-   * @return an IRegion for the node, or null if the node is not recognized.
-   */
-  protected IRegion getHyperlinkRegion(IDOMNode node)
-  {
-    if (node == null)
-    {
-      return null;
-    }
-
-    IRegion hyperRegion = null;
-    short nodeType = node.getNodeType();
-
-    switch (nodeType)
-    {
-      case Node.ELEMENT_NODE : 
-        {
-          hyperRegion = new Region(node.getStartOffset(), node.getEndOffset() - node.getStartOffset());
-        }
-      break;
-      case Node.ATTRIBUTE_NODE : 
-        {
-          IDOMAttr att = (IDOMAttr) node;
-  
-          int regOffset = att.getValueRegionStartOffset();
-  
-          // ISSUE: We are using a deprecated method here. Is there
-          // a better way to get what we need?
-  
-          ITextRegion valueRegion = att.getValueRegion();
-          if (valueRegion != null)
-          {
-            int regLength = valueRegion.getTextLength();
-            String attValue = att.getValueRegionText();
-  
-            // Do not include quotes in attribute value region and only
-            // underline the actual value, not the quotes.
-            
-            if (StringUtils.isQuoted(attValue))
-            {
-              regLength = regLength - 2;
-              regOffset++;
-            }
-            hyperRegion = new Region(regOffset, regLength);
-          }
-        }
-        break;
-      default :
-        // Do nothing.
-        break;
-    }
- 
-    return hyperRegion;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/ISelectionMapper.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/ISelectionMapper.java
deleted file mode 100644
index a51c0fd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/ISelectionMapper.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import org.eclipse.jface.viewers.ISelection;
-
-public interface ISelectionMapper
-{
-  ISelection mapSelection(ISelection selectedObject);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/InternalXSDMultiPageEditor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/InternalXSDMultiPageEditor.java
deleted file mode 100644
index a180d29..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/InternalXSDMultiPageEditor.java
+++ /dev/null
@@ -1,1028 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.KeyStroke;
-import org.eclipse.gef.RootEditPart;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.actions.GEFActionConstants;
-import org.eclipse.gef.ui.actions.PrintAction;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IContentProvider;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.IPostSelectionProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.INavigationLocation;
-import org.eclipse.ui.INavigationLocationProvider;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xsd.ui.internal.adapters.CategoryAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.AddFieldAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseDirectEditAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.DeleteAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.SetInputToGraphView;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewGraphicalViewer;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.ADTMultiPageEditor;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.EditorMode;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.EditorModeManager;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.ProductCustomizationProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.TypeVizEditorMode;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAnyAttributeAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAnyElementAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeDeclarationAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeGroupDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDComplexTypeDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDModelGroupAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDModelGroupDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDSchemaDirectiveAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDSimpleTypeDefinitionAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.OpenInNewEditor;
-import org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicityAction;
-import org.eclipse.wst.xsd.ui.internal.common.actions.SetTypeAction;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.IDocumentChangedNotifier;
-import org.eclipse.wst.xsd.ui.internal.navigation.DesignViewNavigationLocation;
-import org.eclipse.wst.xsd.ui.internal.navigation.MultiPageEditorTextSelectionNavigationLocation;
-import org.eclipse.wst.xsd.ui.internal.text.XSDModelAdapter;
-import org.eclipse.wst.xsd.ui.internal.utils.OpenOnSelectionHelper;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class InternalXSDMultiPageEditor extends ADTMultiPageEditor implements ITabbedPropertySheetPageContributor, INavigationLocationProvider
-{
-  // IModel model;
-  IStructuredModel structuredModel;
-  XSDSchema xsdSchema;
-  XSDModelAdapter schemaNodeAdapter;
-  private OutlineTreeSelectionChangeListener fOutlineListener;
-  private SourceEditorSelectionListener fSourceEditorSelectionListener;
-  private XSDSelectionManagerSelectionListener fXSDSelectionListener;
-  private InternalDocumentChangedNotifier internalDocumentChangedNotifier = new InternalDocumentChangedNotifier();
-  private static final String XSD_EDITOR_MODE_EXTENSION_ID = "org.eclipse.wst.xsd.ui.editorModes"; //$NON-NLS-N$ 
-
-  
-  class InternalDocumentChangedNotifier implements IDocumentChangedNotifier
-  {
-    List list = new ArrayList();
-    
-    public void addListener(INodeAdapter adapter)
-    {
-      list.add(adapter);
-    }
-
-    public void removeListener(INodeAdapter adapter)
-    {
-      list.remove(adapter);
-    }
-    
-    public void notifyListeners(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos)
-    {
-      List clone = new ArrayList(list.size());     
-      clone.addAll(list);
-      for (Iterator i = clone.iterator(); i.hasNext(); )
-      {
-        INodeAdapter adapter = (INodeAdapter)i.next();
-        adapter.notifyChanged(notifier, eventType, changedFeature, oldValue, newValue, pos);
-      }
-    }
-  }
-  public IModel buildModel()
-  {
-    try
-    {      
-      IEditorInput editorInput = getEditorInput();
-      
-      // If the input schema is from the WSDL Editor, then use that inline schema
-      if (editorInput instanceof XSDFileEditorInput)
-      {
-        xsdSchema = ((XSDFileEditorInput) editorInput).getSchema();
-        model = (IModel) XSDAdapterFactory.getInstance().adapt(xsdSchema);
-      }
-      
-      Document document = null;
-      IDocument doc = structuredTextEditor.getDocumentProvider().getDocument(getEditorInput());
-      if (doc instanceof IStructuredDocument)
-      {
-        IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForEdit(doc);
-        if (model == null) {
-          model = StructuredModelManager.getModelManager().getModelForEdit((IStructuredDocument) doc);
-        }
-        structuredModel = model;
-        document = ((IDOMModel)model).getDocument();
-      }
-      Assert.isNotNull(document);
-
-      if (model != null)
-        return model;
-      
-      xsdSchema = XSDModelAdapter.lookupOrCreateSchema(document);
-      model = (IModel) XSDAdapterFactory.getInstance().adapt(xsdSchema);              
-    }
-    catch (Exception e) {
-      e.printStackTrace();
-    }
-
-    
-//    try
-//    {
-//      EPackage.Registry reg = EPackage.Registry.INSTANCE;
-//      XSDPackage xsdPackage = (XSDPackage) reg.getEPackage(XSDPackage.eNS_URI);
-//      xsdSchema = xsdPackage.getXSDFactory().createXSDSchema();
-//      resourceSet = XSDSchemaImpl.createResourceSet();
-//      IFile resourceFile = editorInput.getFile();
-//      structuredModel = StructuredModelManager.getModelManager().getModelForEdit(resourceFile);
-//      // If the resource is in the workspace....
-//      // otherwise the user is trying to open an external file
-//      if (resourceFile != null)
-//      {
-//        String pathName = resourceFile.getFullPath().toString();
-//        xsdResource = resourceSet.getResource(URI.createPlatformResourceURI(pathName), true);
-//        resourceSet.getResources().add(xsdResource);
-//        Object obj = xsdResource.getContents().get(0);
-//        if (obj instanceof XSDSchema)
-//        {
-//          xsdSchema = (XSDSchema) obj;
-//          xsdSchema.setElement(((IDOMModel) structuredModel).getDocument().getDocumentElement());
-//          model = (IModel) XSDAdapterFactory.getInstance().adapt(xsdSchema);
-//        }
-//        
-//        // If the input schema is from the WSDL Editor, then use that inline schema
-//        if (editorInput instanceof XSDFileEditorInput)
-//        {
-//          xsdSchema = ((XSDFileEditorInput) editorInput).getSchema();
-//          model = (IModel) XSDAdapterFactory.getInstance().adapt(xsdSchema);
-//        }
-//        if (xsdSchema.getElement() != null)
-//          
-//          // TODO (cs) ... we need to look into performance issues when we add elements
-//          // seems to be that formatting is causig lots of notification and things get terribly slow
-//          // I'm specializing the method below to add an isModelStateChanging check that should
-//          // help here ... but we need to investigate further
-//          new XSDModelReconcileAdapter(xsdSchema.getElement().getOwnerDocument(), xsdSchema)
-//          {
-//            public void handleNotifyChange(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index)
-//            {
-//              if (notifier instanceof NodeImpl)
-//              {
-//                NodeImpl nodeImpl = (NodeImpl)notifier;
-//                if (!nodeImpl.getModel().isModelStateChanging())
-//                {             
-//                  super.handleNotifyChange(notifier, eventType, feature, oldValue, newValue, index);
-//                  internalDocumentChangedNotifier.notifyListeners(notifier, eventType, feature, oldValue, newValue, index);
-//                }  
-//              }
-//            }
-//          };
-//        xsdResource.setModified(false);
-//      }
-//    }
-//    catch (StackOverflowError e)
-//    {
-//    }
-//    catch (Exception ex)
-//    {
-//    }
-    return model;
-  }
-
-  public void dispose()
-  {
-    if (structuredModel != null)
-    {
-      structuredModel.releaseFromEdit();
-      structuredModel = null;
-    }
-    
-    if (schemaNodeAdapter != null)
-    {
-      schemaNodeAdapter.clear();
-      schemaNodeAdapter = null;
-    }
-    
-    if (fOutlinePage != null)
-    {
-//      if (fOutlinePage instanceof ConfigurableContentOutlinePage && fOutlineListener != null)
-//      {
-//        ((ConfigurableContentOutlinePage) fOutlinePage).removeDoubleClickListener(fOutlineListener);
-//      }
-      if (fOutlineListener != null)
-      {
-        fOutlinePage.removeSelectionChangedListener(fOutlineListener);
-      }
-    }
-    getSelectionManager().removeSelectionChangedListener(fXSDSelectionListener);
-    super.dispose();
-  }
-
-  protected void initializeGraphicalViewer()
-  {
-    RootContentEditPart root = new RootContentEditPart();
-    if (!(getEditorInput() instanceof XSDFileEditorInput))
-    {
-      root.setModel(model);
-    }
-    graphicalViewer.setContents(root);
-  }
-  
-  protected void configureGraphicalViewer()
-  {
-    super.configureGraphicalViewer();
-    graphicalViewer.getKeyHandler().put(KeyStroke.getPressed(SWT.F2, 0), getActionRegistry().getAction(GEFActionConstants.DIRECT_EDIT));
-    // get edit part factory from extension
-    EditPartFactory editPartFactory = getEditorModeManager().getCurrentMode().getEditPartFactory();
-    graphicalViewer.setEditPartFactory(editPartFactory);   
-  }
-
-  public Object getAdapter(Class type)
-  {
-    if (type == org.eclipse.ui.views.properties.IPropertySheetPage.class)
-    {
-      XSDTabbedPropertySheetPage page = new XSDTabbedPropertySheetPage(this);
-      return page;
-    }
-    else if (type == ISelectionProvider.class)
-    {
-      return getSelectionManager();
-    }  
-    else if (type == XSDSchema.class)
-    {
-      return xsdSchema;
-    }
-    else if (type == IContentOutlinePage.class)
-    {
-      Object adapter = super.getAdapter(type);
-      if (adapter != null)
-      {
-        IContentOutlinePage page = (IContentOutlinePage) adapter;
-        fOutlineListener = new OutlineTreeSelectionChangeListener();
-        page.addSelectionChangedListener(fOutlineListener);
-        
-//        if (page instanceof ConfigurableContentOutlinePage)
-//        {
-//          ((ConfigurableContentOutlinePage) page).addDoubleClickListener(fOutlineListener);
-//        }
-        return page;
-      }
-    }
-    else if (type == XSDElementReferenceEditManager.class)
-    {
-    	IEditorInput editorInput = getEditorInput();
-    	if (editorInput instanceof IFileEditorInput)
-    	{
-    		IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-    		// TODO (cs) currently we assume the schema editor will only ever edit a
-    		// single schema
-    		/// but if we want to enable the schema editor to edit wsdl files we
-    		// should pass in
-    		// an array of schemas
-    		// hmm.. perhaps just pass in a ResourceSet
-    		XSDSchema[] schemas = {xsdSchema};
-    		return new XSDElementReferenceEditManager(fileEditorInput.getFile(), schemas);
-    	}
-    }
-    else if (type == XSDTypeReferenceEditManager.class)
-    {
-      IEditorInput editorInput = getEditorInput();
-      if (editorInput instanceof IFileEditorInput)
-      {
-        IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-        // TODO (cs) currently we assume the schema editor will only ever edit a
-        // single schema
-        // but if we want to enable the schema editor to edit wsdl files we
-        // should pass in
-        // an array of schemas
-        // hmm.. perhaps just pass in a ResourceSet
-        XSDSchema[] schemas = {xsdSchema};
-        return new XSDTypeReferenceEditManager(fileEditorInput.getFile(), schemas);
-      }
-    }
-    else if (type == XSDComplexTypeBaseTypeEditManager.class)
-    {
-      IEditorInput editorInput = getEditorInput();
-      if (editorInput instanceof IFileEditorInput)
-      {
-        IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-        // TODO (cs) currently we assume the schema editor will only ever edit a
-        // single schema
-        // but if we want to enable the schema editor to edit wsdl files we
-        // should pass in
-        // an array of schemas
-        // hmm.. perhaps just pass in a ResourceSet
-        XSDSchema[] schemas = {xsdSchema};
-        return new XSDComplexTypeBaseTypeEditManager(fileEditorInput.getFile(), schemas);
-      }
-    }
-    else if (type == XSDSubstitutionGroupEditManager.class)
-    {
-      IEditorInput editorInput = getEditorInput();
-      if (editorInput instanceof IFileEditorInput)
-      {
-        IFileEditorInput fileEditorInput = (IFileEditorInput) editorInput;
-        XSDSchema[] schemas = {xsdSchema};
-        return new XSDSubstitutionGroupEditManager(fileEditorInput.getFile(), schemas);
-      }
-    }
-    else if (type == ITextEditor.class)
-    {
-      return getTextEditor();
-    }
-    else if (type == ISelectionMapper.class)
-    {
-      return new XSDSelectionMapper();
-    }
-    else if (type == IDocumentChangedNotifier.class)
-    {
-      return internalDocumentChangedNotifier;
-    }  
-    else if (type == ProductCustomizationProvider.class)
-    {
-      return XSDEditorPlugin.getPlugin().getProductCustomizationProvider();
-    }  
-    return super.getAdapter(type);
-  }
-
-  public String getContributorId()
-  {
-    return "org.eclipse.wst.xsd.ui.internal.editor"; //$NON-NLS-1$
-  }
-
-  public XSDSchema getXSDSchema()
-  {
-    return xsdSchema;
-  }
-
-  /**
-   * Method openOnGlobalReference. The comp argument is a resolved xsd schema
-   * object from another file. This is created and called from another schema
-   * model to allow F3 navigation to open a new editor and choose the referenced
-   * object within that editor context
-   * 
-   * @param comp
-   */
-  public void openOnGlobalReference(XSDConcreteComponent comp)
-  {
-    XSDConcreteComponent namedComponent = openOnSelectionHelper.openOnGlobalReference(comp);
-    
-    if (namedComponent == null)
-    {
-      namedComponent = getXSDSchema();
-    }
-    XSDBaseAdapter adapter = (XSDBaseAdapter) XSDAdapterFactory.getInstance().adapt(namedComponent);
-    getSelectionManager().setSelection(new StructuredSelection(adapter));
-    IAction action = getActionRegistry().getAction(SetInputToGraphView.ID);
-    if (action != null)
-    {
-      action.run();
-    }
-
-  }
-  
-  protected OpenOnSelectionHelper openOnSelectionHelper;
-
-  public OpenOnSelectionHelper getOpenOnSelectionHelper()
-  {
-    return openOnSelectionHelper;
-  }
-
-  /**
-   * Creates the pages of the multi-page editor.
-   */
-  protected void createPages()
-  {
-    super.createPages();
-    
-//    selectionProvider = getSelectionManager();
-//    getEditorSite().setSelectionProvider(selectionProvider);
-//    
-//    structuredTextEditor = new StructuredTextEditor();
-//    model = buildModel((IFileEditorInput) getEditorInput());
-//    createGraphPage();
-//    createSourcePage();
-
-    openOnSelectionHelper = new OpenOnSelectionHelper(getTextEditor(), getXSDSchema());
-
-    ISelectionProvider provider = getTextEditor().getSelectionProvider();
-    fSourceEditorSelectionListener = new SourceEditorSelectionListener();
-    if (provider instanceof IPostSelectionProvider)
-    {
-      ((IPostSelectionProvider) provider).addPostSelectionChangedListener(fSourceEditorSelectionListener);
-    }
-    else
-    {
-      provider.addSelectionChangedListener(fSourceEditorSelectionListener);
-    }
-    fXSDSelectionListener = new XSDSelectionManagerSelectionListener();
-    getSelectionManager().addSelectionChangedListener(fXSDSelectionListener);
-    
-    // Select the schema to show the properties
-    getSelectionManager().setSelection(new StructuredSelection(getModel()));
-  }
-
-  protected void createActions()
-  {
-    super.createActions();
-    ActionRegistry registry = getActionRegistry();
-    BaseSelectionAction action = new AddFieldAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new DeleteAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDElementAction(this, AddXSDElementAction.ID, Messages._UI_ACTION_ADD_ELEMENT, false);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDElementAction(this, AddXSDElementAction.REF_ID, Messages._UI_ACTION_ADD_ELEMENT_REF, true);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDModelGroupAction(this, XSDCompositor.SEQUENCE_LITERAL, AddXSDModelGroupAction.SEQUENCE_ID);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDModelGroupAction(this, XSDCompositor.CHOICE_LITERAL, AddXSDModelGroupAction.CHOICE_ID);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDModelGroupAction(this, XSDCompositor.ALL_LITERAL, AddXSDModelGroupAction.ALL_ID);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDModelGroupDefinitionAction(this, false);
-    action.setId(AddXSDModelGroupDefinitionAction.MODELGROUPDEFINITION_ID);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDModelGroupDefinitionAction(this, true);
-    action.setId(AddXSDModelGroupDefinitionAction.MODELGROUPDEFINITIONREF_ID);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDComplexTypeDefinitionAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDSimpleTypeDefinitionAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDAttributeDeclarationAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDAttributeDeclarationAction(this, AddXSDAttributeDeclarationAction.REF_ID, Messages._UI_ACTION_ADD_ATTRIBUTE_REF, true);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new OpenInNewEditor(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new ShowPropertiesViewAction(this);
-    registry.registerAction(action);
-    action = new AddXSDAttributeGroupDefinitionAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDAttributeGroupDefinitionAction(this, AddXSDAttributeGroupDefinitionAction.REF_ID);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);    
-    action = new DeleteXSDConcreteComponentAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    action = new AddXSDAnyElementAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new AddXSDAnyAttributeAction(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    action = new AddXSDSchemaDirectiveAction(this, AddXSDSchemaDirectiveAction.INCLUDE_ID, Messages._UI_ACTION_ADD_INCLUDE);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-
-    action = new AddXSDSchemaDirectiveAction(this, AddXSDSchemaDirectiveAction.IMPORT_ID, Messages._UI_ACTION_ADD_IMPORT);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-
-    action = new AddXSDSchemaDirectiveAction(this, AddXSDSchemaDirectiveAction.REDEFINE_ID, Messages._UI_ACTION_ADD_REDEFINE);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-    
-    SetTypeAction setNewComplexTypeAction = new SetTypeAction(Messages._UI_ACTION_NEW, SetTypeAction.SET_NEW_TYPE_ID, this);
-    setNewComplexTypeAction.setSelectionProvider(getSelectionManager());
-    registry.registerAction(setNewComplexTypeAction);
-        
-    SetTypeAction setExistingTypeAction = new SetTypeAction(Messages._UI_ACTION_BROWSE, SetTypeAction.SELECT_EXISTING_TYPE_ID, this);
-    setExistingTypeAction.setSelectionProvider(getSelectionManager());
-    registry.registerAction(setExistingTypeAction);
-
-    addMultiplicityMenu(registry);
-    
-    PrintAction printAction = new PrintAction(this);
-    registry.registerAction(printAction);
-    
-    BaseDirectEditAction directEditAction = new BaseDirectEditAction(this);
-    directEditAction.setSelectionProvider(getSelectionManager());
-    registry.registerAction(directEditAction);
-  }
-  
-  protected void addMultiplicityMenu(ActionRegistry registry)
-  {
-    SetMultiplicityAction oneMultiplicity = new SetMultiplicityAction(this, "1..1 (" + Messages._UI_LABEL_REQUIRED + ")", SetMultiplicityAction.REQUIRED_ID); //$NON-NLS-1$ //$NON-NLS-2$
-    oneMultiplicity.setMaxOccurs(1);
-    oneMultiplicity.setMinOccurs(1);
-    oneMultiplicity.setSelectionProvider(getSelectionManager());
-    registry.registerAction(oneMultiplicity);
-
-    SetMultiplicityAction zeroOrMoreMultiplicity = new SetMultiplicityAction(this, "0..* (" + Messages._UI_LABEL_ZERO_OR_MORE + ")", SetMultiplicityAction.ZERO_OR_MORE_ID); //$NON-NLS-1$ //$NON-NLS-2$
-    zeroOrMoreMultiplicity.setMaxOccurs(-1);
-    zeroOrMoreMultiplicity.setMinOccurs(0);
-    zeroOrMoreMultiplicity.setSelectionProvider(getSelectionManager());
-    registry.registerAction(zeroOrMoreMultiplicity);
-    
-    SetMultiplicityAction zeroOrOneMultiplicity = new SetMultiplicityAction(this, "0..1 (" + Messages._UI_LABEL_OPTIONAL + ")", SetMultiplicityAction.ZERO_OR_ONE_ID); //$NON-NLS-1$ //$NON-NLS-2$
-    zeroOrOneMultiplicity.setMaxOccurs(1);
-    zeroOrOneMultiplicity.setMinOccurs(0);
-    zeroOrOneMultiplicity.setSelectionProvider(getSelectionManager());
-    registry.registerAction(zeroOrOneMultiplicity);
-
-    SetMultiplicityAction oneOrMoreMultiplicity = new SetMultiplicityAction(this, "1..* (" + Messages._UI_LABEL_ONE_OR_MORE + ")", SetMultiplicityAction.ONE_OR_MORE_ID); //$NON-NLS-1$ //$NON-NLS-2$
-    oneOrMoreMultiplicity.setMaxOccurs(-1);
-    oneOrMoreMultiplicity.setMinOccurs(1);
-    oneOrMoreMultiplicity.setSelectionProvider(getSelectionManager());
-    registry.registerAction(oneOrMoreMultiplicity);
-    
-  }
-
-  /**
-   * Listener on SSE's outline page's selections that converts DOM selections
-   * into xsd selections and notifies XSD selection manager
-   */
-  class OutlineTreeSelectionChangeListener implements ISelectionChangedListener, IDoubleClickListener
-  {
-    public OutlineTreeSelectionChangeListener()
-    {
-    }
-
-    private ISelection getXSDSelection(ISelection selection)
-    {
-      ISelection sel = null;
-      if (selection instanceof IStructuredSelection)
-      {
-        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-        Object o = structuredSelection.getFirstElement();
-        if (o != null)
-        {
-          sel = new StructuredSelection(o);
-        }
-          
-      }
-      return sel;
-    }
-
-    /**
-     * Determines DOM node based on object (xsd node)
-     * 
-     * @param object
-     * @return
-     */
-    private Object getObjectForOtherModel(Object object)
-    {
-      Node node = null;
-      if (object instanceof Node)
-      {
-        node = (Node) object;
-      }
-      else if (object instanceof XSDComponent)
-      {
-        node = ((XSDComponent) object).getElement();
-      }
-      else if (object instanceof CategoryAdapter)
-      {
-        node = ((CategoryAdapter) object).getXSDSchema().getElement();
-      }
-      else if (object instanceof XSDBaseAdapter)
-      {
-        if (((XSDBaseAdapter) object).getTarget() instanceof XSDConcreteComponent)
-        {
-          node = ((XSDConcreteComponent) ((XSDBaseAdapter) object).getTarget()).getElement();
-        }
-      }
-      // the text editor can only accept sed nodes!
-      //
-      if (!(node instanceof IDOMNode))
-      {
-        node = null;
-      }
-      return node;
-    }
-
-    public void doubleClick(DoubleClickEvent event)
-    {
-      /*
-       * Selection in outline tree changed so set outline tree's selection into
-       * editor's selection and say it came from outline tree
-       */
-      if (getSelectionManager() != null && getSelectionManager().getEnableNotify())
-      {
-        ISelection selection = getXSDSelection(event.getSelection());
-        if (selection != null)
-        {
-          getSelectionManager().setSelection(selection, fOutlinePage);
-        }
-        if (getTextEditor() != null && selection instanceof IStructuredSelection)
-        {
-          int start = -1;
-          int length = 0;
-          Object o = ((IStructuredSelection) selection).getFirstElement();
-          if (o != null)
-            o = getObjectForOtherModel(o);
-          if (o instanceof IndexedRegion)
-          {
-            start = ((IndexedRegion) o).getStartOffset();
-            length = ((IndexedRegion) o).getEndOffset() - start;
-          }
-          if (start > -1)
-          {
-            getTextEditor().selectAndReveal(start, length);
-          }
-        }
-      }
-    }
-
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      /*
-       * Selection in outline tree changed so set outline tree's selection into
-       * editor's selection and say it came from outline tree
-       */
-      if (getSelectionManager() != null && getSelectionManager().getEnableNotify())
-      {
-        ISelection selection = getXSDSelection(event.getSelection());
-        if (selection != null)
-        {
-          getSelectionManager().setSelection(selection, fOutlinePage);
-        }
-      }
-    }
-  }
-  
- 
-  /**
-   * Listener on SSE's source editor's selections that converts DOM selections
-   * into xsd selections and notifies XSD selection manager
-   */
-  private class SourceEditorSelectionListener implements ISelectionChangedListener
-  {
-    /**
-     * Determines XSD node based on object (DOM node)
-     * 
-     * @param object
-     * @return
-     */
-    private Object getXSDNode(Object object)
-    {
-      // get the element node
-      Element element = null;
-      if (object instanceof Node)
-      {
-        Node node = (Node) object;
-        if (node != null)
-        {
-          if (node.getNodeType() == Node.ELEMENT_NODE)
-          {
-            element = (Element) node;
-          }
-          else if (node.getNodeType() == Node.ATTRIBUTE_NODE)
-          {
-            element = ((Attr) node).getOwnerElement();
-          }
-        }
-      }
-      Object o = element;
-      if (element != null)
-      {
-        Object modelObject = getXSDSchema().getCorrespondingComponent(element);
-        if (modelObject != null)
-        {
-          o = modelObject;
-          o = XSDAdapterFactory.getInstance().adapt((Notifier) modelObject);
-        }
-      }
-      return o;
-    }
-
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      if (getSelectionManager().getEnableNotify() && getActivePage() == 1)
-      {
-        ISelection selection = event.getSelection();
-        if (selection instanceof IStructuredSelection)
-        {
-          List xsdSelections = new ArrayList();
-          for (Iterator i = ((IStructuredSelection) selection).iterator(); i.hasNext();)
-          {
-            Object domNode = i.next();
-            Object xsdNode = getXSDNode(domNode);
-            if (xsdNode != null)
-            {
-              xsdSelections.add(xsdNode);
-            }
-          }
-          if (!xsdSelections.isEmpty())
-          {
-            StructuredSelection xsdSelection = new StructuredSelection(xsdSelections);
-            getSelectionManager().setSelection(xsdSelection, getTextEditor().getSelectionProvider());
-          }
-        }
-      }
-    }
-  }
-  /**
-   * Listener on XSD's selection manager's selections that converts XSD
-   * selections into DOM selections and notifies SSE's selection provider
-   */
-  private class XSDSelectionManagerSelectionListener implements ISelectionChangedListener
-  {
-    /**
-     * Determines DOM node based on object (xsd node)
-     * 
-     * @param object
-     * @return
-     */
-    private Object getObjectForOtherModel(Object object)
-    {
-      Node node = null;
-      if (object instanceof Node)
-      {
-        node = (Node) object;
-      }
-      else if (object instanceof XSDComponent)
-      {
-        node = ((XSDComponent) object).getElement();
-      }
-      else if (object instanceof CategoryAdapter)
-      {
-        node = ((CategoryAdapter) object).getXSDSchema().getElement();
-      }
-      else if (object instanceof XSDBaseAdapter)
-      {
-        if (((XSDBaseAdapter) object).getTarget() instanceof XSDConcreteComponent)
-        {
-          node = ((XSDConcreteComponent) ((XSDBaseAdapter) object).getTarget()).getElement();
-        }
-      }
-      else if (object instanceof String)
-      {
-        // This case was added to make the F3/hyperlink navigation work when an
-        // inline schema from a WSDL document is opened in the schema editor.
-        // The string is expected to be a URI fragment used to identify an XSD
-        // component in the context of the enclosing WSDL resource.
-
-        String uriFragment = (String) object;
-        Resource resource = xsdSchema.eResource();
-        EObject modelObject = resource.getEObject(uriFragment);
-
-        if (modelObject != null && modelObject instanceof XSDComponent)
-        {
-          XSDComponent component = (XSDComponent) modelObject;
-          node = component.getElement();
-        }
-      }
-      
-      // the text editor can only accept sed nodes!
-      //
-      if (!(node instanceof IDOMNode))
-      {
-        node = null;
-      }
-      return node;
-    }
-
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      // do not fire selection in source editor if selection event came
-      // from source editor
-      if (event.getSource() != getTextEditor().getSelectionProvider())
-      {
-        ISelection selection = event.getSelection();
-        if (selection instanceof IStructuredSelection)
-        {
-          List otherModelObjectList = new ArrayList();
-          for (Iterator i = ((IStructuredSelection) selection).iterator(); i.hasNext();)
-          {
-            Object modelObject = i.next();
-            Object otherModelObject = getObjectForOtherModel(modelObject);
-            if (otherModelObject != null)
-            {
-              otherModelObjectList.add(otherModelObject);
-            }
-          }
-          if (!otherModelObjectList.isEmpty())
-          {
-            // here's an ugly hack... if we allow text selections to fire during
-            // SetInputToGraphView action we screw up the navigation history!
-            //            
-            //TODO (cs) ... we need to prevent the source editor from messing up the navigation history
-            //
-            if (getActivePage() == SOURCE_PAGE_INDEX)
-            {  
-              StructuredSelection nodeSelection = new StructuredSelection(otherModelObjectList);
-              getTextEditor().getSelectionProvider().setSelection(nodeSelection);
-            }  
-          }
-        }
-      }
-    }
-    
-    public void doSetSelection()
-    {
-      ISelection iSelection = getSelectionManager().getSelection();
-      if (iSelection != null)
-      {
-        Object firstElement = ((StructuredSelection)iSelection).getFirstElement();
-        Object otherModelObject = getObjectForOtherModel(firstElement);
-        if (otherModelObject != null)
-        {
-          StructuredSelection nodeSelection = new StructuredSelection(otherModelObject);
-          getTextEditor().getSelectionProvider().setSelection(nodeSelection);
-        }
-      }
-    }
-  }
-  
-  // Bug 145590.  Workaround to update source position when flipping to the source page.
-  // Unfortunately, this will still add an entry to the navigation history, but this
-  // behaviour is an improvement than without this change
-  boolean doUpdateSourceLocation = false;
-  protected void pageChange(int newPageIndex)
-  {
-    super.pageChange(newPageIndex);
-    doUpdateSourceLocation = newPageIndex == SOURCE_PAGE_INDEX;
-    if (doUpdateSourceLocation && fXSDSelectionListener != null)
-      fXSDSelectionListener.doSetSelection();
-
-  }
-
-  public INavigationLocation createEmptyNavigationLocation()
-  {
-    if (getActivePage() == 0)
-    {
-      return new DesignViewNavigationLocation(this);
-    }
-    else
-    {
-      return new MultiPageEditorTextSelectionNavigationLocation(getTextEditor(), false);
-    }
-  }
-
-  public INavigationLocation createNavigationLocation()
-  {
-    if (getActivePage() == DESIGN_PAGE_INDEX)
-    {
-      try
-      {
-        RootEditPart rootEditPart = graphicalViewer.getRootEditPart();
-        EditPart editPart = rootEditPart.getContents();
-        if (editPart instanceof RootContentEditPart)
-        {
-          RootContentEditPart rootContentEditPart = (RootContentEditPart)editPart;
-          Object input = rootContentEditPart.getInput();      
-          if (input instanceof Adapter)
-          {
-            XSDConcreteComponent concreteComponent = (XSDConcreteComponent)((Adapter)input).getTarget();
-            return new DesignViewNavigationLocation(this, concreteComponent);
-          }
-        }   
-      }
-      catch (Exception e)
-      {
-        e.printStackTrace();
-      }
-      return null;
-    }
-    else
-    {
-      return new MultiPageEditorTextSelectionNavigationLocation(getTextEditor(), true);
-    }
-  }
-  
-  
-  public void editorModeChanged(EditorMode newEditorMode)
-  {
-    //if (isInitializing)
-    //  return;
-    
-    EditPartFactory editPartFactory = newEditorMode.getEditPartFactory();
-    if (editPartFactory != null)
-    {  
-      graphicalViewer.setEditPartFactory(editPartFactory);
-      if (graphicalViewer instanceof DesignViewGraphicalViewer)
-      {  
-        DesignViewGraphicalViewer viewer = (DesignViewGraphicalViewer)graphicalViewer;  
-        IADTObject input = viewer.getInput();
-        viewer.setInput(null);
-        //viewer.getRootEditPart().refresh();
-       // viewer.getRootEditPart().getContents().refresh();
-        viewer.setInput(input);
-      }
-    }  
-    IContentProvider provider = newEditorMode.getOutlineProvider();
-    if (provider != null)
-    {
-      ADTContentOutlinePage outline = (ADTContentOutlinePage)getContentOutlinePage();
-      if (outline != null)
-      {
-        TreeViewer treeViewer = outline.getTreeViewer();
-        if (treeViewer != null)
-        {      
-          outline.getTreeViewer().setContentProvider(provider);
-          outline.getTreeViewer().refresh();
-        }
-      }  
-    }  
-  }  
-  
-  private static final String DEFAULT_EDITOR_MODE_ID = "org.eclipse.wst.xsd.ui.defaultEditorModeId"; //$NON-NLS-1$
-  //private boolean isInitializing = false;
-  protected EditorModeManager createEditorModeManager()
-  {
-    final ProductCustomizationProvider productCustomizationProvider = (ProductCustomizationProvider)getAdapter(ProductCustomizationProvider.class);
-    EditorModeManager manager = new EditorModeManager(XSD_EDITOR_MODE_EXTENSION_ID)
-    {
-      public void init()
-      {
-        if (productCustomizationProvider == null || 
-            productCustomizationProvider.isEditorModeApplicable(TypeVizEditorMode.ID))
-        {  
-          addMode(new TypeVizEditorMode());
-        }  
-        super.init();                
-      }       
-      
-      protected EditorMode getDefaultMode()
-      {
-        String defaultModeId = XSDEditorPlugin.getPlugin().getPreferenceStore().getString(DEFAULT_EDITOR_MODE_ID);
-        if (defaultModeId != null)
-        {
-          EditorMode editorMode = getEditorMode(defaultModeId);
-          if (editorMode != null)
-          {
-            return editorMode;
-          }  
-        }               
-        return super.getDefaultMode();
-      }
-    };
-    manager.setProductCustomizationProvider(productCustomizationProvider);
-    return manager;
-  }
-  
-  protected void storeCurrentModePreference(String id)
-  {
-    XSDEditorPlugin.getPlugin().getPreferenceStore().setValue(DEFAULT_EDITOR_MODE_ID, id);
-  }
-
-}  
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/KeyboardDragImpl.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/KeyboardDragImpl.java
deleted file mode 100644
index d8fb847..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/KeyboardDragImpl.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.IKeyboardDrag;
-
-public class KeyboardDragImpl implements IKeyboardDrag {
-
-	public void performKeyboardDrag(GraphicalEditPart movingElement, int direction) {
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/Logger.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/Logger.java
deleted file mode 100644
index 4127452..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/Logger.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-
-/**
- * Small convenience class to log messages to plugin's log file and also, if
- * desired, the console. This class should only be used by classes in this
- * plugin. Other plugins should make their own copy, with appropriate ID.
- */
-public class Logger {
-	private static final String PLUGIN_ID = "org.eclipse.wst.xsd.ui"; //$NON-NLS-1$
-	
-	public static final int ERROR = IStatus.ERROR; // 4
-	public static final int ERROR_DEBUG = 200 + ERROR;
-	public static final int INFO = IStatus.INFO; // 1
-	public static final int INFO_DEBUG = 200 + INFO;
-
-	public static final int OK = IStatus.OK; // 0
-
-	public static final int OK_DEBUG = 200 + OK;
-
-	private static final String TRACEFILTER_LOCATION = "/debug/tracefilter"; //$NON-NLS-1$
-	public static final int WARNING = IStatus.WARNING; // 2
-	public static final int WARNING_DEBUG = 200 + WARNING;
-
-	/**
-	 * Adds message to log.
-	 * 
-	 * @param level
-	 *            severity level of the message (OK, INFO, WARNING, ERROR,
-	 *            OK_DEBUG, INFO_DEBUG, WARNING_DEBUG, ERROR_DEBUG)
-	 * @param message
-	 *            text to add to the log
-	 * @param exception
-	 *            exception thrown
-	 */
-	protected static void _log(int level, String message, Throwable exception) {
-		if (level == OK_DEBUG || level == INFO_DEBUG || level == WARNING_DEBUG || level == ERROR_DEBUG) {
-			if (!isDebugging())
-				return;
-		}
-
-		int severity = IStatus.OK;
-		switch (level) {
-			case INFO_DEBUG :
-			case INFO :
-				severity = IStatus.INFO;
-				break;
-			case WARNING_DEBUG :
-			case WARNING :
-				severity = IStatus.WARNING;
-				break;
-			case ERROR_DEBUG :
-			case ERROR :
-				severity = IStatus.ERROR;
-		}
-		message = (message != null) ? message : "null"; //$NON-NLS-1$
-		Status statusObj = new Status(severity, PLUGIN_ID, severity, message, exception);
-		Bundle bundle = Platform.getBundle(PLUGIN_ID);
-		if (bundle != null) 
-			Platform.getLog(bundle).log(statusObj);
-	}
-
-	/**
-	 * Prints message to log if category matches /debug/tracefilter option.
-	 * 
-	 * @param message
-	 *            text to print
-	 * @param category
-	 *            category of the message, to be compared with
-	 *            /debug/tracefilter
-	 */
-	protected static void _trace(String category, String message, Throwable exception) {
-		if (isTracing(category)) {
-			message = (message != null) ? message : "null"; //$NON-NLS-1$
-			Status statusObj = new Status(IStatus.OK, PLUGIN_ID, IStatus.OK, message, exception);
-			Bundle bundle = Platform.getBundle(PLUGIN_ID);
-			if (bundle != null) 
-				Platform.getLog(bundle).log(statusObj);
-		}
-	}
-
-	/**
-	 * @return true if the platform is debugging
-	 */
-	public static boolean isDebugging() {
-		return Platform.inDebugMode();
-	}
-
-	/**
-	 * Determines if currently tracing a category
-	 * 
-	 * @param category
-	 * @return true if tracing category, false otherwise
-	 */
-	public static boolean isTracing(String category) {
-		if (!isDebugging())
-			return false;
-
-		String traceFilter = Platform.getDebugOption(PLUGIN_ID + TRACEFILTER_LOCATION);
-		if (traceFilter != null) {
-			StringTokenizer tokenizer = new StringTokenizer(traceFilter, ","); //$NON-NLS-1$
-			while (tokenizer.hasMoreTokens()) {
-				String cat = tokenizer.nextToken().trim();
-				if (category.equals(cat)) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	public static void log(int level, String message) {
-		_log(level, message, null);
-	}
-
-	public static void log(int level, String message, Throwable exception) {
-		_log(level, message, exception);
-	}
-
-	public static void logException(String message, Throwable exception) {
-		_log(ERROR, message, exception);
-	}
-
-	public static void logException(Throwable exception) {
-		_log(ERROR, exception.getMessage(), exception);
-	}
-
-	public static void trace(String category, String message) {
-		_trace(category, message, null);
-	}
-
-	public static void traceException(String category, String message, Throwable exception) {
-		_trace(category, message, exception);
-	}
-
-	public static void traceException(String category, Throwable exception) {
-		_trace(category, exception.getMessage(), exception);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/Messages.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/Messages.java
deleted file mode 100644
index 5ae183f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/Messages.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS
-{
-  static 
-  {
-    NLS.initializeMessages("org.eclipse.wst.xsd.ui.internal.editor.messages", Messages.class); //$NON-NLS-1$
-  }
-
-  public Messages()
-  {
-    super();
-  }
-  
-  public static String UI_LABEL_BASE_TYPE;
-  public static String UI_LABEL_DERIVED_BY;
-  public static String UI_LABEL_INHERIT_FROM;
-  public static String UI_LABEL_INHERIT_BY;
-  public static String UI_LABEL_DOCUMENTATION;
-  public static String UI_LABEL_APP_INFO;
-  public static String UI_LABEL_SET_TYPE;
-  public static String UI_LABEL_TYPE;
-  public static String UI_LABEL_NAME;
-  public static String UI_LABEL_KIND;
-  public static String UI_LABEL_MINOCCURS;
-  public static String UI_LABEL_MAXOCCURS;
-  public static String UI_NO_TYPE;
-  public static String UI_PAGE_HEADING_REFERENCE;
-  public static String UI_LABEL_READ_ONLY;
-  public static String UI_LABEL_COMPONENTS;
-
-  public static String _UI_GRAPH_TYPES;
-  public static String _UI_GRAPH_ELEMENTS;
-  public static String _UI_GRAPH_ATTRIBUTES;
-  public static String _UI_GRAPH_ATTRIBUTE_GROUPS;
-  public static String _UI_GRAPH_NOTATIONS;
-  public static String _UI_GRAPH_IDENTITY_CONSTRAINTS;
-  public static String _UI_GRAPH_ANNOTATIONS;
-  public static String _UI_GRAPH_DIRECTIVES;
-  public static String _UI_GRAPH_GROUPS;
-  
-  public static String _UI_LABEL_NO_LOCATION_SPECIFIED;
-  public static String _UI_NO_TYPE_DEFINED;
-  public static String _UI_ACTION_UPDATE_NAME;
-  public static String _UI_LABEL_ABSENT;
-  public static String _UI_ACTION_ADD_FIELD;
-  public static String _UI_ACTION_SET_MULTIPLICITY;
-  public static String _UI_LABEL_OPTIONAL;
-  public static String _UI_LABEL_ZERO_OR_MORE;
-  public static String _UI_LABEL_ONE_OR_MORE;
-  public static String _UI_LABEL_REQUIRED;
-  public static String _UI_LABEL_ARRAY;
-  public static String _UI_ACTION_SET_TYPE;
-  public static String _UI_LABEL_LOCAL_TYPE;
-  
-  public static String _UI_GRAPH_UNKNOWN_OBJECT;
-  public static String _UI_GRAPH_XSDSCHEMA;
-  public static String _UI_GRAPH_XSDSCHEMA_NO_NAMESPACE;
-  public static String _UI_LABEL_SET_COMMON_BUILT_IN_TYPES;
-  public static String _UI_LABEL_SELECT_TYPES_FILTER_OUT;
-  public static String _UI_LABEL_NEW_TYPE;
-  public static String _UI_LABEL_COMPLEX_TYPE;
-  public static String _UI_LABEL_SIMPLE_TYPE;
-  public static String _UI_LABEL_NEW_ELEMENT;
-  public static String _UI_MENU_XSD_EDITOR;
-  public static String _UI_LABEL_SOURCE;
-  public static String _UI_ACTION_ADD_ELEMENT;
-  public static String _UI_ACTION_ADD_ELEMENT_REF;
-  public static String _UI_ACTION_NEW;
-  public static String _UI_ACTION_BROWSE;
-  public static String _UI_ACTION_UPDATE_ELEMENT_REFERENCE;
-  public static String _UI_LABEL_TARGET_NAMESPACE;
-  public static String _UI_LABEL_NO_NAMESPACE;
-  public static String _UI_ACTION_ADD_COMPLEX_TYPE;
-  public static String _UI_ACTION_ADD_SIMPLE_TYPE;
-  public static String _UI_LABEL_NAME_SEARCH_FILTER_TEXT;
-  public static String _UI_LABEL_ELEMENTS_COLON;
-  public static String _UI_LABEL_SET_ELEMENT_REFERENCE;
-  public static String _UI_LABEL_TYPES_COLON;
-  public static String _UI_LABEL_SET_TYPE;
-
-  public static String _UI_TEXT_INDENT_LABEL;
-  public static String _UI_TEXT_INDENT_SPACES_LABEL; 
-  public static String _UI_TEXT_XSD_NAMESPACE_PREFIX;
-  public static String _UI_TEXT_XSD_DEFAULT_PREFIX;
-  public static String _UI_QUALIFY_XSD;
-  public static String _UI_TEXT_XSD_DEFAULT_TARGET_NAMESPACE;
-  public static String _UI_VALIDATING_FILES;
-  public static String _UI_TEXT_HONOUR_ALL_SCHEMA_LOCATIONS;
-  
-  public static String _ERROR_LABEL_INVALID_PREFIX;
-  public static String _UI_ACTION_ADD_INCLUDE;
-  public static String _UI_ACTION_ADD_IMPORT;
-  public static String _UI_ACTION_ADD_REDEFINE;
-  public static String _UI_ACTION_ADD_ATTRIBUTE_REF;
-
-  public static String _UI_LABEL_ELEMENTFORMDEFAULT;
-  public static String _UI_LABEL_ATTRIBUTEFORMDEFAULT;
-  public static String _UI_LABEL_CREATE_ANON_TYPE;  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/SourcePageActionContributor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/SourcePageActionContributor.java
deleted file mode 100644
index beb5834..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/SourcePageActionContributor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.wst.xml.ui.internal.actions.ActionContributorXML;
-
-
-/**
- * SourcePageActionContributor
- * 
- * This class is for multi page editor's source page contributor.
- *
- * 
- */
-public class SourcePageActionContributor extends ActionContributorXML {
-
-	private IActionBars fBars;
-
-	/**
-	 * This method calls:
-	 * <ul>
-	 *  <li><code>contributeToMenu</code> with <code>bars</code>' menu manager</li>
-	 *  <li><code>contributeToToolBar</code> with <code>bars</code>' tool bar
-	 *    manager</li>
-	 *  <li><code>contributeToStatusLine</code> with <code>bars</code>' status line
-	 *    manager</li>
-	 * </ul>
-	 * The given action bars are also remembered and made accessible via 
-	 * <code>getActionBars</code>.
-	 * 
-	 * @param bars the action bars
-	 * 
-	 */
-	public void init(IActionBars bars) {
-		fBars = bars;
-		contributeToMenu(bars.getMenuManager());
-		contributeToToolBar(bars.getToolBarManager());
-		contributeToStatusLine(bars.getStatusLineManager());
-	}
-
-	/**
-	 * Returns this contributor's action bars.
-	 *
-	 * @return the action bars
-	 */
-	public IActionBars getActionBars() {
-		return fBars;
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/StructuredTextViewerConfigurationXSD.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/StructuredTextViewerConfigurationXSD.java
deleted file mode 100644
index 47649de..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/StructuredTextViewerConfigurationXSD.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 20065 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.wst.xsd.ui.internal.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.text.hyperlink.IHyperlinkDetector;
-import org.eclipse.jface.text.source.ISourceViewer;
-import org.eclipse.ui.texteditor.AbstractDecoratedTextEditorPreferenceConstants;
-import org.eclipse.wst.xml.ui.StructuredTextViewerConfigurationXML;
-
-/**
- * Configuration for editing XSD content type
- */
-public class StructuredTextViewerConfigurationXSD extends StructuredTextViewerConfigurationXML {
-	public IHyperlinkDetector[] getHyperlinkDetectors(ISourceViewer sourceViewer) {
-		if (sourceViewer == null || !fPreferenceStore.getBoolean(AbstractDecoratedTextEditorPreferenceConstants.EDITOR_HYPERLINKS_ENABLED))
-			return null;
-
-		List allDetectors = new ArrayList(0);
-		// add XSD Hyperlink detector
-		allDetectors.add(new XSDHyperlinkDetector());
-
-		IHyperlinkDetector[] superDetectors = super.getHyperlinkDetectors(sourceViewer);
-		for (int m = 0; m < superDetectors.length; m++) {
-			IHyperlinkDetector detector = superDetectors[m];
-			if (!allDetectors.contains(detector)) {
-				allDetectors.add(detector);
-			}
-		}
-		return (IHyperlinkDetector[]) allDetectors.toArray(new IHyperlinkDetector[0]);
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDComplexTypeBaseTypeEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDComplexTypeBaseTypeEditManager.java
deleted file mode 100644
index 515d6f7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDComplexTypeBaseTypeEditManager.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDComplexTypeDefinitionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDSimpleTypeDefinitionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.SetBaseTypeAndManagerDirectivesCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.SetBaseTypeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.search.XSDSearchListDialogDelegate;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class XSDComplexTypeBaseTypeEditManager extends XSDTypeReferenceEditManager
-{
-  public XSDComplexTypeBaseTypeEditManager(IFile currentFile, XSDSchema[] schemas)
-  {
-    super(currentFile, schemas);
-  }
-
-  public ComponentSpecification[] getQuickPicks()
-  {
-    return super.getQuickPicks();
-  }
-  
-  public IComponentDialog getBrowseDialog()
-  {
-    XSDSearchListDialogDelegate dialogDelegate = new XSDSearchListDialogDelegate(XSDSearchListDialogDelegate.TYPE_META_NAME, currentFile, schemas);
-    return dialogDelegate;
-  }
-
-  // TODO common this up
-  public void modifyComponentReference(Object referencingObject, ComponentSpecification component)
-  {
-    XSDConcreteComponent concreteComponent = null;
-    if (referencingObject instanceof Adapter)
-    {
-      Adapter adpater = (Adapter)referencingObject;
-      if (adpater.getTarget() instanceof XSDConcreteComponent)
-      {
-        concreteComponent = (XSDConcreteComponent)adpater.getTarget();
-      }
-    }
-    else if (referencingObject instanceof XSDConcreteComponent)
-    {
-      concreteComponent = (XSDConcreteComponent) referencingObject;
-    }
-    
-    if (concreteComponent instanceof XSDComplexTypeDefinition)
-    {
-      if (component.isNew())
-      {  
-        XSDTypeDefinition td = null;
-        if (component.getMetaName() == IXSDSearchConstants.COMPLEX_TYPE_META_NAME)
-        {  
-          AddXSDComplexTypeDefinitionCommand command = new AddXSDComplexTypeDefinitionCommand(Messages._UI_ACTION_ADD_COMPLEX_TYPE, concreteComponent.getSchema());
-          command.setNameToAdd(component.getName());
-          command.execute();
-          td = command.getCreatedComplexType();
-        }
-        else
-        {
-          AddXSDSimpleTypeDefinitionCommand command = new AddXSDSimpleTypeDefinitionCommand(Messages._UI_ACTION_ADD_SIMPLE_TYPE, concreteComponent.getSchema());
-          command.setNameToAdd(component.getName());
-          command.execute();
-          td = command.getCreatedSimpleType();
-        }  
-        if (td != null)
-        {
-          Command command = new SetBaseTypeCommand(concreteComponent, td);
-          command.execute();
-        }  
-      }  
-      else
-      {  
-        Command command = new SetBaseTypeAndManagerDirectivesCommand(concreteComponent, component.getName(), component.getQualifier(), component.getFile());
-        command.setLabel(Messages._UI_ACTION_SET_BASE_TYPE);
-        command.execute();
-      }  
-    }
-    else if (concreteComponent instanceof XSDSimpleTypeDefinition)
-    {
-      if (component.isNew())
-      {  
-        XSDTypeDefinition td = null;
-        if (component.getMetaName() == IXSDSearchConstants.SIMPLE_TYPE_META_NAME)
-        {  
-          AddXSDSimpleTypeDefinitionCommand command = new AddXSDSimpleTypeDefinitionCommand(Messages._UI_ACTION_ADD_SIMPLE_TYPE, concreteComponent.getSchema());
-          command.setNameToAdd(component.getName());
-          command.execute();
-          td = command.getCreatedSimpleType();
-        }
-        if (td != null)
-        {
-          Command command = new SetBaseTypeCommand(concreteComponent, td);
-          command.execute();
-        }  
-      }  
-      else
-      {  
-        Command command = new SetBaseTypeAndManagerDirectivesCommand(concreteComponent, component.getName(), component.getQualifier(), component.getFile());
-        command.execute();
-      }  
-    }
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorCSHelpIds.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorCSHelpIds.java
deleted file mode 100644
index 390db12..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorCSHelpIds.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-/**
- * 
- * Context Sensitive Help IDs
- *
- */
-public class XSDEditorCSHelpIds
-{
-  public static final String PLUGIN_NAME = "org.eclipse.wst.xsd.ui";
-  
-  public static final String REGEX_WIZARD_PAGE = PLUGIN_NAME + ".xsduw0010";
-  public static final String REGEX_TOKEN_CONTENTS = PLUGIN_NAME + ".xsduw0020";
-  public static final String REGEX_JUST_ONCE = PLUGIN_NAME + ".xsduw0030";
-  public static final String REGEX_ZERO_OR_MORE = PLUGIN_NAME + ".xsduw0040";
-  public static final String REGEX_ONE_OR_MORE = PLUGIN_NAME + ".xsduw0050";
-  public static final String REGEX_OPTIONAL = PLUGIN_NAME + ".xsduw0060";
-  public static final String REGEX_REPEAT_RADIO = PLUGIN_NAME + ".xsduw0070";
-  public static final String REGEX_RANGE_RADIO = PLUGIN_NAME + ".xsduw0080";
-  public static final String REGEX_REPEAT_FIELD = PLUGIN_NAME + ".xsduw0090";
-  public static final String REGEX_RANGE_MINIMUM_FIELD = PLUGIN_NAME + ".xsduw0100";
-  public static final String REGEX_RANGE_MAXIMUM_FIELD = PLUGIN_NAME + ".xsduw0110";
-  public static final String REGEX_ADD_BUTTON = PLUGIN_NAME + ".xsduw0120";
-  public static final String REGEX_CURRENT_VALUE = PLUGIN_NAME + ".xsduw0130";
-  
-  public static final String REGEX_TEST_PAGE = PLUGIN_NAME + ".xsduw0200";
-  public static final String REGEX_SAMPLE_TEXT = PLUGIN_NAME + ".xsduw0210";
-  
-  public static final String RENAME_NEW_NAME = PLUGIN_NAME + ".xsduw0300";
-  public static final String RENAME_UPDATE_REFERENCES = PLUGIN_NAME + ".xsduw0310";
-  
-  public static final String NEWTYPE_COMPLEXTYPE = PLUGIN_NAME + ".xsdud0010";
-  public static final String NEWTYPE_SIMPLETYPE = PLUGIN_NAME + ".xsdud0020";
-  public static final String NEWTYPE_NAME = PLUGIN_NAME + ".xsdud0030";
-  
-  public static final String SETTYPE_NAME = PLUGIN_NAME + ".xsdud0050"; // these 3 are in common.ui
-  public static final String SETTYPE_TYPES = PLUGIN_NAME + ".xsdud0060";
-  public static final String SETTYPE_SEARCHSCOPES = PLUGIN_NAME + ".xsdud0070";
-  
-  public static final String ADD_ENUMERATIONS__NO_NAME = PLUGIN_NAME + ".xsdud0090";
-  public static final String ADD_ENUMERATIONS__DELIMITER_CHARS = PLUGIN_NAME + ".xsdud0100";
-  public static final String ADD_ENUMERATIONS__PRESERVE_LEAD_AND_TRAIL_WHITESPACES = PLUGIN_NAME + ".xsdud0110";
-  
-  public static final String ADD_EXTENSIONS_COMPONENTS__EXTENSION_CATEGORIES = PLUGIN_NAME + ".xsdud0130";
-  public static final String ADD_EXTENSIONS_COMPONENTS__AVAILABLE_COMPONENTS_TO_ADD = PLUGIN_NAME + ".xsdud0140";
-  public static final String ADD_EXTENSIONS_COMPONENTS__ADD = PLUGIN_NAME + ".xsdud0150";
-  public static final String ADD_EXTENSIONS_COMPONENTS__DELETE = PLUGIN_NAME + ".xsdud0160";
-  public static final String ADD_EXTENSIONS_COMPONENTS__EDIT = PLUGIN_NAME + ".xsdud0170";
-  
-  public static final String ADD_CATEGORY__NAME = PLUGIN_NAME + ".xsdud0190";
-  public static final String ADD_CATEGORY__SCHEMA = PLUGIN_NAME + ".xsdud0200"; // can't invoke help, this is a CLabel, not text Field
-  
-  public static final String XML_CATALOG_ENTRIES__ENTRIES_TREELIST = PLUGIN_NAME + ".xsdud0220";
-  public static final String XML_CATALOG_ENTRIES__DETAILS = PLUGIN_NAME + ".xsdud0230";
-  
-  public static final String XMLSCHEMAFILES_PREFERENCES__QUALIFY_XMLSCHEMA_LANGUAGE_CONSTRUCTS = PLUGIN_NAME + ".xsduf0010";
-  public static final String XMLSCHEMAFILES_PREFERENCES__XML_SCHEMA_LANGUAGE_CONSTRUCTS_PREFIX = PLUGIN_NAME + ".xsduf0020";
-  public static final String XMLSCHEMAFILES_PREFERENCES__DEFAULT_TARGETNAMESPACE = PLUGIN_NAME + ".xsduf0030";
-  public static final String XMLSCHEMAFILES_PREFERENCES__HONOUR_ALL_SCHEMA_LOCATIONS = PLUGIN_NAME + ".xsduf0040";
-  
-  public static final String DOCUMENTATION_TAB__NO_LABEL = PLUGIN_NAME + ".xsdup0010";
-  
-  public static final String EXTENSIONS_TAB__EXTENSIONS = PLUGIN_NAME + ".xsdup0030";
-  public static final String EXTENSIONS_TAB__ADD = PLUGIN_NAME + ".xsdup0040";
-  public static final String EXTENSIONS_TAB__DELETE = PLUGIN_NAME + ".xsdup0050";
-  public static final String EXTENSIONS_TAB__EXTENSIONS_DETAILS = PLUGIN_NAME + ".xsdup0060";
-  
-  public static final String CONSTRAINTS_TAB__MINIMUM_LENGTH = PLUGIN_NAME + ".xsdup0080";
-  public static final String CONSTRAINTS_TAB__MAXIMUM_LENGTH = PLUGIN_NAME + ".xsdup0090";
-  public static final String CONSTRAINTS_TAB__COLLAPSE_WHITESPACE = PLUGIN_NAME + ".xsdup0100";
-  public static final String CONSTRAINTS_TAB__ENUMERATIONS = PLUGIN_NAME + ".xsdup0110";
-  public static final String CONSTRAINTS_TAB__PATTERNS = PLUGIN_NAME + ".xsdup0120";
-  public static final String CONSTRAINTS_TAB__NO_LABEL = PLUGIN_NAME + ".xsdup0130";
-  
-  public static final String GENERAL_TAB__SCHEMA__PREFIX = PLUGIN_NAME + ".xsdup0200";
-  public static final String GENERAL_TAB__SCHEMA__TARGETNAMESPACE = PLUGIN_NAME + ".xsdup0210";
-  public static final String GENERAL_TAB__SCHEMA__ADVANCED = PLUGIN_NAME + ".xsdup0220";
-  
-  public static final String GENERAL_TAB__ELEMENT__NAME = PLUGIN_NAME + ".xsdup0230";
-  public static final String GENERAL_TAB__ELEMENT__TYPE = PLUGIN_NAME + ".xsdup0240";
-  public static final String GENERAL_TAB__ELEMENT__REFERENCE = PLUGIN_NAME + ".xsdup0250";
-  public static final String GENERAL_TAB__ELEMENT__MIN_OCCURENCE = PLUGIN_NAME + ".xsdup0180";
-  public static final String GENERAL_TAB__ELEMENT__MAX_OCCURENCE = PLUGIN_NAME + ".xsdup0190";
-  
-  public static final String GENERAL_TAB__COMPLEX_TYPE__NAME = PLUGIN_NAME + ".xsdup0260";
-  public static final String GENERAL_TAB__COMPLEX_TYPE__INHERIT_FROM = PLUGIN_NAME + ".xsdup0270";
-  public static final String GENERAL_TAB__COMPLEX_TYPE__INHERIT_BY = PLUGIN_NAME + ".xsdup0280";
-  
-  public static final String GENERAL_TAB__SIMPLE_TYPE__NAME = PLUGIN_NAME + ".xsdup0290";
-  public static final String GENERAL_TAB__SIMPLE_TYPE__VARIETY = PLUGIN_NAME + ".xsdup0300";
-  public static final String GENERAL_TAB__SIMPLE_TYPE__BASE_TYPE = PLUGIN_NAME + ".xsdup0310";
-  
-  public static final String GENERAL_TAB__ATTRIBUTE__NAME = PLUGIN_NAME + ".xsdup0320";
-  public static final String GENERAL_TAB__ATTRIBUTE__TYPE = PLUGIN_NAME + ".xsdup0330";
-  
-  public static final String GENERAL_TAB__ATTRIBUTEGROUP__NAME = PLUGIN_NAME + ".xsdup0340";
-  
-  public static final String GENERAL_TAB__MODELGROUP_DEFINITION__NAME = PLUGIN_NAME + ".xsdup0350";
-  
-  public static final String GENERAL_TAB__INCLUDE_REDEFINE__SCHEMALOCATION = PLUGIN_NAME + ".xsdup0360";
-  
-  public static final String GENERAL_TAB__IMPORT__SCHEMALOCATION = PLUGIN_NAME + ".xsdup0370";
-  public static final String GENERAL_TAB__IMPORT__NAMESPACE = PLUGIN_NAME + ".xsdup0380";
-  public static final String GENERAL_TAB__IMPORT__PREFIX = PLUGIN_NAME + ".xsdup0390";
-  
-  public static final String GENERAL_TAB__ANYELEMENT__NAMESPACE = PLUGIN_NAME + ".xsdup0400";
-  public static final String GENERAL_TAB__ANYELEMENT__PROCESSCONTENTS = PLUGIN_NAME + ".xsdup0410";
-  public static final String GENERAL_TAB__ANYELEMENT__MIN_OCCURENCE = PLUGIN_NAME + ".xsdup0180";
-  public static final String GENERAL_TAB__ANYELEMENT__MAX_OCCURENCE = PLUGIN_NAME + ".xsdup0190";
-  
-  public static final String GENERAL_TAB__ANYATTRIBUTE__NAMESPACE = PLUGIN_NAME + ".xsdup0400";  // these 4 are not used, same as anyelement above
-  public static final String GENERAL_TAB__ANYATTRIBUTE__PROCESSCONTENTS = PLUGIN_NAME + ".xsdup0410";
-  public static final String GENERAL_TAB__ANYATTRIBUTE__MIN_OCCURENCE = PLUGIN_NAME + ".xsdup0180";
-  public static final String GENERAL_TAB__ANYATTRIBUTE__MAX_OCCURENCE = PLUGIN_NAME + ".xsdup0190";
-  
-  public static final String GENERAL_TAB__MODELGROUP__KIND = PLUGIN_NAME + ".xsdup0420";
-  public static final String GENERAL_TAB__MODELGROUP__MIN_OCCURENCE = PLUGIN_NAME + ".xsdup0180"; //can't invoke help
-  public static final String GENERAL_TAB__MODELGROUP__MAX_OCCURENCE = PLUGIN_NAME + ".xsdup0190"; // can't invoke help
-  
-  public static final String GENERAL_TAB__MODELGROUP_REFS__REF = PLUGIN_NAME + ".xsdup0430";
-  
-  public static final String GENERAL_TAB__ATTRIBUTEGROUP_REFS__REF = PLUGIN_NAME + ".xsdup0440";
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorConfiguration.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorConfiguration.java
deleted file mode 100644
index 89e5800..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorConfiguration.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.wst.xsd.ui.internal.actions.IXSDToolbarAction;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.design.figures.IExtendedFigureFactory;
-
-public class XSDEditorConfiguration
-{
-  public static final String XSDEDITORCONFIGURATIONEXTENSIONID = "org.eclipse.wst.xsd.ui.XSDEditorExtensionConfiguration"; //$NON-NLS-1$
-  public static final String INTERNALEDITORCONFIGURATION_EXTENSIONID = "org.eclipse.wst.xsd.ui.internalEditorConfiguration"; //$NON-NLS-1$
-  public static final String CLASSNAME = "class"; //$NON-NLS-1$
-  public static final String ADAPTERFACTORY = "adapterFactory"; //$NON-NLS-1$
-  public static final String TOOLBARACTION = "toolbarAction"; //$NON-NLS-1$
-  public static final String FIGUREFACTORY = "figureFactory"; //$NON-NLS-1$
-  public static final String EDITPARTFACTORY = "editPartFactory"; //$NON-NLS-1$
-
-  List definedExtensionsList = null;
-
-  public XSDEditorConfiguration()
-  {
-
-  }
-
-  public XSDAdapterFactory getAdapterFactory()
-  {
-    if (definedExtensionsList == null)
-    {
-      readXSDConfigurationRegistry();
-    }
-    if (!definedExtensionsList.isEmpty())
-    {
-      return ((XSDEditorExtensionProperties) definedExtensionsList.get(0)).getAdapterFactory();
-    }
-    return null;
-  }
-
-  public EditPartFactory getEditPartFactory()
-  {
-    if (definedExtensionsList == null)
-    {
-      readXSDConfigurationRegistry();
-    }
-    if (!definedExtensionsList.isEmpty())
-    {
-      return ((XSDEditorExtensionProperties) definedExtensionsList.get(0)).getEditPartFactory();
-    }
-    return null;
-  }
-
-  public IExtendedFigureFactory getFigureFactory()
-  {
-    if (definedExtensionsList == null)
-    {
-      readXSDConfigurationRegistry();
-    }
-    if (!definedExtensionsList.isEmpty())
-    {
-      return ((XSDEditorExtensionProperties) definedExtensionsList.get(0)).getFigureFactory();
-    }
-    return null;
-  }
-
-  public List getToolbarActions()
-  {
-    if (definedExtensionsList == null)
-    {
-      readXSDConfigurationRegistry();
-    }
-    if (!definedExtensionsList.isEmpty())
-    {
-      return ((XSDEditorExtensionProperties) definedExtensionsList.get(0)).getActionList();
-    }
-    return Collections.EMPTY_LIST;
-  }
-
-  protected Object loadClass(IConfigurationElement element, String classString)
-  {
-    String pluginId = element.getDeclaringExtension().getContributor().getName();
-
-    try
-    {
-      Class theClass = Platform.getBundle(pluginId).loadClass(classString);
-      Object instance = theClass.newInstance();
-
-      return instance;
-    }
-    catch (Exception e)
-    {
-
-    }
-    return null;
-  }
-
-  public void readXSDConfigurationRegistry()
-  {
-    definedExtensionsList = new ArrayList();
-    updateList(INTERNALEDITORCONFIGURATION_EXTENSIONID);
-    updateList(XSDEDITORCONFIGURATIONEXTENSIONID);
-  }
-  
-  private void updateList(String ID)
-  {
-    IConfigurationElement[] xsdEditorExtensionList = Platform.getExtensionRegistry().getConfigurationElementsFor(ID);
-    boolean definedExtensionsExist = (xsdEditorExtensionList != null && xsdEditorExtensionList.length > 0);
-    
-    if (definedExtensionsExist)
-    {
-
-      for (int i = 0; i < xsdEditorExtensionList.length; i++)
-      {
-        XSDEditorExtensionProperties properties = new XSDEditorExtensionProperties();
-        definedExtensionsList.add(properties);
-  
-        IConfigurationElement element = xsdEditorExtensionList[i];
-        String adapterFactoryClass = element.getAttribute(ADAPTERFACTORY);
-        if (adapterFactoryClass != null)
-        {
-          Object object = loadClass(element, adapterFactoryClass);
-          XSDAdapterFactory adapterFactory = null;
-          if (object instanceof XSDAdapterFactory)
-          {
-            adapterFactory = (XSDAdapterFactory) object;
-            properties.setAdapterFactory(adapterFactory);
-          }
-        }
-  
-        String figureFactoryClass = element.getAttribute(FIGUREFACTORY);
-        if (figureFactoryClass != null)
-        {
-          Object object = loadClass(element, figureFactoryClass);
-          IExtendedFigureFactory figureFactory = null;
-          if (object instanceof IExtendedFigureFactory)
-          {
-            figureFactory = (IExtendedFigureFactory) object;
-            properties.setFigureFactoryList(figureFactory);
-          }
-        }
-  
-        IConfigurationElement[] toolbarActions = element.getChildren(TOOLBARACTION);
-        List actionList = new ArrayList();
-        if (toolbarActions != null)
-        {
-          for (int j = 0; j < toolbarActions.length; j++)
-          {
-            IConfigurationElement actionElement = toolbarActions[j];
-            String actionClass = actionElement.getAttribute(CLASSNAME);
-            IXSDToolbarAction action = null;
-            if (actionClass != null)
-            {
-              Object object = loadClass(actionElement, actionClass);
-              if (object instanceof IXSDToolbarAction)
-              {
-                action = (IXSDToolbarAction) object;
-                actionList.add(action);
-              }
-            }
-          }
-        }
-        properties.setActionList(actionList);
-  
-        String editPartFactoryClass = element.getAttribute(EDITPARTFACTORY);
-        if (editPartFactoryClass != null)
-        {
-          Object object = loadClass(element, editPartFactoryClass);
-          EditPartFactory editPartFactory = null;
-          if (object instanceof EditPartFactory)
-          {
-            editPartFactory = (EditPartFactory) object;
-            properties.setEditPartFactoryList(editPartFactory);
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorContextIds.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorContextIds.java
deleted file mode 100644
index a88daff..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorContextIds.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-/**
- * Context help id constants.
- */
-public interface XSDEditorContextIds 
-{
-  public static final String PLUGIN_NAME = "org.eclipse.wst.xsd.ui.internal";
-
-  /* CONTEXT_IDs New XSD Wizard uses the WizardNewFileCreationPage from org.eclipse.ui.dialogs */
- 
-  /* CONTEXT_IDs for XSDEditor follow the xsdexxx context IDs */
-
-  /* CONTEXT_ID xsde0010 for XSD Editor Design View */
-  public static final String XSDE_SCHEMA_DESIGN_VIEW      = PLUGIN_NAME + ".xsde0010";
-  /* no CONTEXT_ID for File Name Text Edit (not editable) */
-  /* CONTEXT_ID xsde0020 for Version Text Edit */
-  public static final String XSDE_SCHEMA_VERSION          = PLUGIN_NAME + ".xsde0020";
-  /* CONTEXT_ID xsde0030 for Language Text Edit */
-  public static final String XSDE_SCHEMA_LANGUAGE         = PLUGIN_NAME + ".xsde0030";
-  /* CONTEXT_ID xsde0040 for Namespace Group */
-  public static final String XSDE_SCHEMA_NAMESPACE_GROUP  = PLUGIN_NAME + ".xsde0040";
-  /* CONTEXT_ID xsde0050 for Prefix Text Edit */
-  public static final String XSDE_SCHEMA_PREFIX           = PLUGIN_NAME + ".xsde0050";
-  /* CONTEXT_ID xsde0060 for Target namespace Text Edit */
-  public static final String XSDE_SCHEMA_TARGET_NAMESPACE = PLUGIN_NAME + ".xsde0060";
-  /* CONTEXT_ID xsde0070 for Apply Push Button */
-  public static final String XSDE_SCHEMA_APPLY            = PLUGIN_NAME + ".xsde0070";
-  /* CONTEXT_ID xsde0080 for Attribute form default Combo Box */
-  public static final String XSDE_SCHEMA_ATTRIBUTE        = PLUGIN_NAME + ".xsde0080";
-  /* CONTEXT_ID xsde0090 for Element form default Combo Box */
-  public static final String XSDE_SCHEMA_ELEMENT          = PLUGIN_NAME + ".xsde0090";
-  /* CONTEXT_ID xsde0100 for Block default Combo Box */
-  public static final String XSDE_SCHEMA_BLOCK            = PLUGIN_NAME + ".xsde0100";
-  /* CONTEXT_ID xsde0110 for Final Default Combo Box */
-  public static final String XSDE_SCHEMA_FINAL            = PLUGIN_NAME + ".xsde0110";
-
-  
-  /* CONTEXT_ID xsde0200 for Annotations Comment Group - only used generically */
-  /* CONTEXT_ID      - used in Documentation Design View */
-  /* CONTEXT_ID      - used in App Info Design View */
-  public static final String XSDE_ANNOTATION_COMMENT_GROUP = PLUGIN_NAME + ".xsde0200";
-  /* CONTEXT_ID xsde0210 for Annotations Comment Group - only used generically */
-  /* CONTEXT_ID      - used in Documentation Design View */
-  /* CONTEXT_ID      - used in App Info Design View */
-  public static final String XSDE_ANNOTATION_COMMENT       = PLUGIN_NAME + ".xsde0210";
-  
-  /* CONTEXT_ID xsde0300 for Documentation Design View */
-  public static final String XSDE_DOCUMENTATION_DESIGN_VIEW   = PLUGIN_NAME + ".xsde0300";
-  /* CONTEXT_ID xsde0310 for Source Text Edit */
-  public static final String XSDE_DOCUMENTATION_SOURCE        = PLUGIN_NAME + ".xsde0310";
-  /* CONTEXT_ID xsde0320 for Language Text Edit */
-  public static final String XSDE_DOCUMENTATION_LANGUAGE      = PLUGIN_NAME + ".xsde0320";
-  /* CONTEXT_ID Comment Group is from Annotations Window xsde0200 */
-  /* CONTEXT_ID Comment Multi-line Edit is from Annotations Window xsd0210 */
-
-  /* CONTEXT_ID xsde0400 for App Info Design View */
-  public static final String XSDE_APP_INFO_DESIGN_VIEW = PLUGIN_NAME + ".xsde0400";
-  /* CONTEXT_ID xsde0410 for App Info Source Text Edit */
-  public static final String XSDE_APP_INFO_SOURCE = PLUGIN_NAME + ".xsde0410";
-  /* CONTEXT_ID Comment Group is from Annotations Window xsde0200 */
-  /* CONTEXT_ID Comment Multi-line Edit is from Annotations Window xsd0210 */
-
-  /* CONTEXT_ID xsde0500 for Complex Type Design View */
-  public static final String XSDE_COMPLEX_DESIGN_VIEW = PLUGIN_NAME + ".xsde0500";
-  /* CONTEXT_ID xsde0510 for Name Text Edit */
-  public static final String XSDE_COMPLEX_NAME        = PLUGIN_NAME + ".xsde0510";
-  /* CONTEXT_ID xsde0520 for Abstract Combo Box */
-  public static final String XSDE_COMPLEX_ABSTRACT    = PLUGIN_NAME + ".xsde0520";
-  /* CONTEXT_ID xsde0530 for Mixed Combo Box */
-  public static final String XSDE_COMPLEX_MIXED       = PLUGIN_NAME + ".xsde0530";
-  /* CONTEXT_ID xsde0540 for Block Combo Box */
-  public static final String XSDE_COMPLEX_BLOCK       = PLUGIN_NAME + ".xsde0540";
-  /* CONTEXT_ID xsde0550 for Final Combo Box */
-  public static final String XSDE_COMPLEX_FINAL       = PLUGIN_NAME + ".xsde0550";
-
-  /* CONTEXT_ID xsde0600 for Simple Type Design View */
-  public static final String XSDE_SIMPLE_DESIGN_VIEW = PLUGIN_NAME + ".xsde0600";
-  /* CONTEXT_ID xsde0610 for Name Text Edit */
-  public static final String XSDE_SIMPLE_NAME        = PLUGIN_NAME + ".xsde0610";
-
-  /* CONTEXT_ID for Global Element and Element Design Views are the same */
-  /* CONTEXT_ID xsde0700 for Element Design View */
-  public static final String XSDE_ELEMENT_DESIGN_VIEW = PLUGIN_NAME + ".xsde0700";
-  /* CONTEXT_ID xsde0710 for Element Name Text Edit */
-  public static final String XSDE_ELEMENT_NAME         = PLUGIN_NAME + ".xsde0710";
-  /* CONTEXT_ID Type Information Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID User-defined complex type Radio Button is from Type Helper xsde0940 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-  /* CONTEXT_ID xsde0720 for Abstract Check Box */
-  public static final String XSDE_ELEMENT_ABSTRACT     = PLUGIN_NAME + ".xsde0720";
-  /* CONTEXT_ID xsde0730 for Nillable Check Box */
-  public static final String XSDE_ELEMENT_NILLABLE     = PLUGIN_NAME + ".xsde0730";
-  /* CONTEXT_ID xsde0740 for Value Group */
-  public static final String XSDE_ELEMENT_VALUE        = PLUGIN_NAME + ".xsde0740";
-  /* CONTEXT_ID xsde0750 for Fixed Radio Button */
-  public static final String XSDE_ELEMENT_FIXED        = PLUGIN_NAME + ".xsde0750";
-  /* CONTEXT_ID xsde0760 for Default Radio Button */
-  public static final String XSDE_ELEMENT_DEFAULT      = PLUGIN_NAME + ".xsde0760";
-  /* CONTEXT_ID xsde0770 for Value Group */
-  public static final String XSDE_ELEMENT_VALUE_GROUP  = PLUGIN_NAME + ".xsde0770";
-  /* CONTEXT_ID xsde0780 for Minimum Text Edit */
-  public static final String XSDE_ELEMENT_MINIMUM      = PLUGIN_NAME + ".xsde0780";
-  /* CONTEXT_ID xsde0790 for Maximum Text Edit */
-  public static final String XSDE_ELEMENT_MAXIMUM      = PLUGIN_NAME + ".xsde0790";
-  /* CONTEXT_ID xsde0800 for Block Combo Box */
-  public static final String XSDE_ELEMENT_BLOCK        = PLUGIN_NAME + ".xsde0800";
-  /* CONTEXT_ID xsde0810 for Final Combo Box */
-  public static final String XSDE_ELEMENT_FINAL        = PLUGIN_NAME + ".xsde0810";
-  /* CONTEXT_ID xsde0820 for Substitution Group Combo Box */
-  public static final String XSDE_ELEMENT_SUBSTITUTION = PLUGIN_NAME + ".xsde0820";
-  /* CONTEXT_ID xsde0830 for Form Qualification Combo Box */                    
-  public static final String XSDE_ELEMENT_FORM         = PLUGIN_NAME + ".xsde0830";
-
-  /* CONTEXT_ID xsde0900 for Type Helper Group - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  /* CONTEXT_ID      - used in Global Attribute Design View */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  /* CONTEXT_ID      - used in Union Design View */
-  public static final String XSDE_TYPE_HELPER_GROUP    = PLUGIN_NAME + ".xsde0900";
-  /* CONTEXT_ID xsde0910 for None Radio Button - only used generically */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  /* CONTEXT_ID      - used in Union Design View */
-  public static final String XSDE_TYPE_HELPER_NONE     = PLUGIN_NAME + ".xsde0910";
-  /* CONTEXT_ID xsde0920 for Built-in simple type Radio Button - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  /* CONTEXT_ID      - used in Global Attribute Design View */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  /* CONTEXT_ID      - used in Union Design View */
-  public static final String XSDE_TYPE_HELPER_BUILT_IN = PLUGIN_NAME + ".xsde0920";
-  /* CONTEXT_ID xsde0930 for User-defined simple type Radio Button - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  /* CONTEXT_ID      - used in Global Attribute Design View */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  /* CONTEXT_ID      - used in Union Design View */
-  public static final String XSDE_TYPE_HELPER_USER_DEFINED_SIMPLE = PLUGIN_NAME + ".xsde0930";
-  /* CONTEXT_ID xsde0940 for User-defined complex type Radio Button - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  public static final String XSDE_TYPE_HELPER_USER_DEFINED_COMPLEX = PLUGIN_NAME + ".xsde0940";
-  /* CONTEXT_ID xsde0950 for Type information Combo Box - only used generically */
-  /* CONTEXT_ID      - used in Global Element Design View */
-  /* CONTEXT_ID      - used in Global Attribute Design View */
-  /* CONTEXT_ID      - used in Simple Content Design View */
-  /* CONTEXT_ID      - used in Restriction Design View */
-  /* CONTEXT_ID      - used in List Design View */
-  public static final String XSDE_TYPE_HELPER_TYPE = PLUGIN_NAME + ".xsde0950";
-
-  /* CONTEXT_ID xsde1000 for Attribute Design View */
-  public static final String XSDE_ATTRIBUTE_DESIGN_VIEW = PLUGIN_NAME + ".xsde1000";
-  /* CONTEXT_ID xsde1010 for Attribute Name Text Edit */
-  public static final String XSDE_ATTRIBUTE_NAME        = PLUGIN_NAME + ".xsde1010";
-  /* CONTEXT_ID Type Information Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-  /* CONTEXT_ID xsde1020 for Value Group */
-  public static final String XSDE_ATTRIBUTE_VALUE_GROUP = PLUGIN_NAME + ".xsde1020";
-  /* CONTEXT_ID xsde1030 for Fixed Radio Button */
-  public static final String XSDE_ATTRIBUTE_FIXED       = PLUGIN_NAME + ".xsde1030";
-  /* CONTEXT_ID xsde1040 for Default Radio Button */
-  public static final String XSDE_ATTRIBUTE_DEFAULT     = PLUGIN_NAME + ".xsde1040";
-  /* CONTEXT_ID xsde1050 for Value Text Edit */
-  public static final String XSDE_ATTRIBUTE_VALUE       = PLUGIN_NAME + ".xsde1050";
-  /* CONTEXT_ID xsde1060 for Usage Combo Box */
-  public static final String XSDE_ATTRIBUTE_USAGE       = PLUGIN_NAME + ".xsde1060";
-  /* CONTEXT_ID xsde1070 for Form qualificaiton Combo Box */
-  public static final String XSDE_ATTRIBUTE_FORM        = PLUGIN_NAME + ".xsde1070";
-
-  /* CONTEXT_ID xsde1100 for Element Ref Window Design View */
-  public static final String XSDE_ELEMENT_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde1100";
-  /* CONTEXT_ID xsde1110 for Reference Name Combo Box */
-  public static final String XSDE_ELEMENT_REF_REFERENCE   = PLUGIN_NAME + ".xsde1110";
-  /* CONTEXT_ID xsde1120 for Minimum Text Edit */
-  public static final String XSDE_ELEMENT_REF_MINIMUM     = PLUGIN_NAME + ".xsde1120";
-  /* CONTEXT_ID xsde1130 for Maximum Text Edit */
-  public static final String XSDE_ELEMENT_REF_MAXIMUM     = PLUGIN_NAME + ".xsde1130";
-  
-  /* CONTEXT_ID xsde1200 for Simple Content Design View - used generically */
-  /* CONTEXT_ID      - used in Simple Content Design View */ 
-  /* CONTEXT_ID      - used in Complex Content Design View */
-    public static final String XSDE_SIMPLE_CONTENT_DESIGN_VIEW = PLUGIN_NAME + ".xsde1200";
-  /* CONTEXT_ID Base Type Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID None Radio Button is from Type Helper xsde0910 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-  /* CONTEXT_ID xsde1210 for Derived by Combo Box - used generically */
-  /* CONTEXT_ID      - used in Simple Content Design View */ 
-  /* CONTEXT_ID      - used in Complex Content Design View */
-  public static final String XSDE_SIMPLE_CONTENT_DERIVED = PLUGIN_NAME + ".xsde1210";
-
-  /* CONTEXT_ID xsde1300 for Restriction Design View */
-  public static final String XSDE_RESTRICTION_DESIGN_VIEW  = PLUGIN_NAME + ".xsde1300";
-  /* CONTEXT_ID Base Type Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID None Radio Button is from Type Helper xsde0910 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-  /* CONTEXT_ID xsde1310 for Facets Group */
-  public static final String XSDE_RESTRICTION_FACETS_GROUP = PLUGIN_NAME + ".xsde1310";
-  /* CONTEXT_ID xsde1320 for Facets Table */
-  public static final String XSDE_RESTRICTION_FACETS       = PLUGIN_NAME + ".xsde1320";
-
-  /* CONTEXT_ID xsde1400 for List Design View */
-  public static final String XSDE_LIST_DESIGN_VIEW  = PLUGIN_NAME + ".xsde1400";
-  /* CONTEXT_ID Base Type Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID None Radio Button is from Type Helper xsde0910 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-
-  /* CONTEXT_ID xsde1500 for Attribute Group Design View */
-  public static final String XSDE_ATTRIBUTE_GROUP_DESIGN_VIEW = PLUGIN_NAME + ".xsde1500";
-  /* CONTEXT_ID xsde1510 for Name Text Edit */
-  public static final String XSDE_ATTRIBUTE_GROUP_NAME = PLUGIN_NAME + ".xsde1510";
-
-  /* CONTEXT_ID for Global Attribute and Attribute Design Views are the same */
-  /* CONTEXT_ID xsde1600 for Attribute Group Reference Design View */
-  public static final String XSDE_ATTRIBUTE_GROUP_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde1600";
-  /* CONTEXT_ID xsde1610 for Reference Name Combo Box */
-  public static final String XSDE_ATTRIBUTE_GROUP_REF_NAME = PLUGIN_NAME + ".xsde1610";
-
-  /* CONTEXT_ID xsde1700 for Attribute Reference Design View */
-  public static final String XSDE_ATTRIBUTE_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde1700";
-  /* CONTEXT_ID xsde1710 for Reference Name Combo Box */
-  public static final String XSDE_ATTRIBUTE_REF_NAME = PLUGIN_NAME + ".xsde1710";
-
-  /* CONTEXT_ID xsde1800 for Pattern Design View */
-  public static final String XSDE_PATTERN_DESIGN_VIEW = PLUGIN_NAME + ".xsde1800";
-  /* CONTEXT_ID xsde1810 for Value Text Edit */
-  public static final String XSDE_PATTERN_VALUE   = PLUGIN_NAME + ".xsde1810";
-  /* CONTEXT_ID xsde1820 for Create Regular Expression Push Button */
-  public static final String XSDE_PATTERN_REGULAR = PLUGIN_NAME + ".xsde1820";
-
-  /* CONTEXT_ID xsde1900 for Enum Design View */
-  public static final String XSDE_ENUM_DESIGN_VIEW = PLUGIN_NAME + ".xsde1900";
-  /* CONTEXT_ID xsde1910 for Value Text Edit */
-  public static final String XSDE_ENUM_VALUE       = PLUGIN_NAME + ".xsde1910";
-  
-  /* CONTEXT_ID xsde2000 for Include Design Page */
-  public static final String XSDE_INCLUDE_DESIGN_VIEW = PLUGIN_NAME + ".xsde2000";
-  /* no CONTEXT_ID for Schema Location Text Edit (not editable) */
-  /* CONTEXT_ID Select Push Button is from Include Helper xsde2100 */ 
-  
-  /* CONTEXT_ID xsde2100 for Include Helper Select Push Button - used generically */
-  /* CONTEXT_ID      - used in Include Design View */
-  /* CONTEXT_ID      - used in Import Design View */
-  public static final String XSDE_INCLUDE_HELPER_SELECT = PLUGIN_NAME + ".xsde2100";
-
-  /* CONTEXT_ID xsde2200 for Import Design Page */
-  public static final String XSDE_IMPORT_DESIGN_VIEW = PLUGIN_NAME + ".xsde2200";
-  /* no CONTEXT_ID for Schema Location Text Edit (not editable) */
-  /* CONTEXT_ID Select Push Button is from Include Helper xsde2100 */
-  /* CONTEXT_ID xsde2210 for Prefix Text Edit */
-  public static final String XSDE_IMPORT_PREFIX      = PLUGIN_NAME + ".xsde2210";
-  /* no CONTEXT_ID for Namespace Text Edit (not editable) */
-
-  /* CONTEXT_ID xsde2300 for Redefine Design View */
-  public static final String XSDE_REDEFINE_DESIGN_VIEW = PLUGIN_NAME + ".xsde2300";
-  /* no CONTEXT_ID for Schema Location Text Edit (not editable) */
-  /* CONTEXT_ID Select Push Button is from Include Helper xsde2100 */
-
-  /* CONTEXT_ID xsde2400 for Group Design View */
-  public static final String XSDE_GROUP_DESIGN_VIEW = PLUGIN_NAME + ".xsde2400";
-  /* CONTEXT_ID xsde2410 for Name Text Edit */
-  public static final String XSDE_GROUP_NAME        = PLUGIN_NAME + ".xsde2410";
-
-  /* CONTEXT_ID xsde2500 for Group Scope Design View */
-  public static final String XSDE_GROUP_SCOPE_DESIGN_VIEW   = PLUGIN_NAME + ".xsde2500";
-  /* CONTEXT_ID xsde2510 for Content model Group */
-  public static final String XSDE_GROUP_SCOPE_CONTENT_GROUP = PLUGIN_NAME + ".xsde2510";
-  /* CONTEXT_ID xsde2520 for Sequence Radio Button */
-  public static final String XSDE_GROUP_SCOPE_SEQUENCE = PLUGIN_NAME + ".xsde2520";
-  /* CONTEXT_ID xsde2530 for Choice Radio Button */
-  public static final String XSDE_GROUP_SCOPE_CHOICE   = PLUGIN_NAME + ".xsde2530";
-  /* CONTEXT_ID xsde2540 for All Radio Button */
-  public static final String XSDE_GROUP_SCOPE_ALL      = PLUGIN_NAME + ".xsde2540";
-  /* CONTEXT_ID xsde2550 for Minimum Text Edit */
-  public static final String XSDE_GROUP_SCOPE_MINIMUM  = PLUGIN_NAME + ".xsde2550";
-  /* CONTEXT_ID xsde2560 for Maximum Text Edit*/
-  public static final String XSDE_GROUP_SCOPE_MAXIMUM  = PLUGIN_NAME + ".xsde2560";
-
-  /* CONTEXT_ID xsde2600 for Group Ref Design View */
-  public static final String XSDE_GROUP_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde2600";
-  /* CONTEXT_ID xsde2610 for Reference name Combo Box */
-  public static final String XSDE_GROUP_REF_REFERENCE   = PLUGIN_NAME + ".xsde2610";
-  /* CONTEXT_ID xsde2620 for Minimum Text Edit */
-  public static final String XSDE_GROUP_REF_MINIMUM     = PLUGIN_NAME + ".xsde2620";
-  /* CONTEXT_ID xsde2630 for Maximum Text Edit */
-  public static final String XSDE_GROUP_REF_MAXIMUM     = PLUGIN_NAME + ".xsde2630";
-
-  /* CONTEXT_ID xsde2700 for Unique Design View */
-  public static final String XSDE_UNIQUE_DESIGN_VIEW = PLUGIN_NAME + ".xsde2700";
-  /* CONTEXT_ID Name Text Edit is from Unique Base xsde2800 */
-  /* CONTEXT_ID Selector Group is from Unique Base xsde2810 */
-  /* CONTEXT_ID Selector Mulit-line Edit is from Unique Base xsde2820 */
-  /* CONTEXT_ID Fields Group is from Unique Base xsde2830 */
-  /* CONTEXT_ID Source Text Edit is from Unique Base xsde2840 */
-  /* CONTEXT_ID Add Push Button is from Unique Base xsde2850 */
-  /* CONTEXT_ID Remove Push Button is from Unique Base xsde2860 */
-  /* CONTEXT_ID Target List Box is from Unique Base xsde2870 */
-  
-  /* CONTEXT_ID xsde2800 for Unique Base Name Text Edit - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_NAME = PLUGIN_NAME + ".xsde2800";
-  /* CONTEXT_ID xsde2810 for Selector Group - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_SELECTOR_GROUP = PLUGIN_NAME + ".xsde2810";
-  /* CONTEXT_ID xsde2820 for Selector Multi-line Edit - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_SELECTOR       = PLUGIN_NAME + ".xsde2820";
-  /* CONTEXT_ID xsde2830 for Fields Group - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_FIELDS_GROUP   = PLUGIN_NAME + ".xsde2830";
-  /* CONTEXT_ID xsde2840 for Source Text Edit - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_SOURCE         = PLUGIN_NAME + ".xsde2840";
-  /* CONTEXT_ID xsde2850 for Add Push Button - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_ADD            = PLUGIN_NAME + ".xsde2850";
-  /* CONTEXT_ID xsde2860 for Remove Push Button - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_REMOVE         = PLUGIN_NAME + ".xsde2860";
-  /* CONTEXT_ID xsde2870 for Target List Box - used generically */
-  /* CONTEXT_ID      - used in Unique Design View */
-  /* CONTEXT_ID      - used in Key Design View */
-  /* CONTEXT_ID      - used in Key Ref Design View */
-  public static final String XSDE_UNIQUE_BASE_TARGET         = PLUGIN_NAME + ".xsde2870";
-
-  /* CONTEXT_ID xsde2900 for Key Design View */
-  public static final String XSDE_KEY_DESIGN_VIEW = PLUGIN_NAME + ".xsde2900";
-  /* CONTEXT_ID Name Text Edit is from Unique Base xsde2800 */
-  /* CONTEXT_ID Selector Group is from Unique Base xsde2810 */
-  /* CONTEXT_ID Selector Mulit-line Edit is from Unique Base xsde2820 */
-  /* CONTEXT_ID Fields Group is from Unique Base xsde2830 */
-  /* CONTEXT_ID Source Text Edit is from Unique Base xsde2840 */
-  /* CONTEXT_ID Add Push Button is from Unique Base xsde2850 */
-  /* CONTEXT_ID Remove Push Button is from Unique Base xsde2860 */
-  /* CONTEXT_ID Target List Box is from Unique Base xsde2870 */
-  /* CONTEXT_ID xsde2900 for Key Design View */
-  
-  /* CONTEXT_ID xsde2950 for Key Ref Design View */
-  public static final String XSDE_KEY_REF_DESIGN_VIEW = PLUGIN_NAME + ".xsde2950";
-  /* CONTEXT_ID Name Text Edit is from Unique Base xsde2800 */
-  /* CONTEXT_ID xsde2960 for Reference Key Combo Box */
-  public static final String XSDE_KEY_REF_REFERENCE = PLUGIN_NAME + ".xsde2960";
-  /* CONTEXT_ID Selector Group is from Unique Base xsde2810 */
-  /* CONTEXT_ID Selector Mulit-line Edit is from Unique Base xsde2820 */
-  /* CONTEXT_ID Fields Group is from Unique Base xsde2830 */
-  /* CONTEXT_ID Source Text Edit is from Unique Base xsde2840 */
-  /* CONTEXT_ID Add Push Button is from Unique Base xsde2850 */
-  /* CONTEXT_ID Remove Push Button is from Unique Base xsde2860 */
-  /* CONTEXT_ID Target List Box is from Unique Base xsde2870 */
-
-  /* CONTEXT_ID xsde3000 for Any Element Design View */
-  public static final String XSDE_ANY_ELEMENT_VIEW = PLUGIN_NAME + ".xsde3000";
-  /* CONTEXT_ID xsde3010 for Namespace Text Edit */
-  public static final String XSDE_ANY_ELEMENT_NAMESPACE = PLUGIN_NAME + ".xsde3010";
-  /* CONTEXT_ID xsde3020 for Process Contents Combo Box */
-  public static final String XSDE_ANY_ELEMENT_PROCESS   = PLUGIN_NAME + ".xsde3020";
-  /* CONTEXT_ID xsde3030 for Minimum Text Edit */
-  public static final String XSDE_ANY_ELEMENT_MINIMUM   = PLUGIN_NAME + ".xsde3030";
-  /* CONTEXT_ID xsde3040 for Maximum Text Edit */
-  public static final String XSDE_ANY_ELEMENT_MAXIMUM   = PLUGIN_NAME + ".xsde3040";
-
-  /* CONTEXT_ID xsde3100 for Any Attribute Design View */
-  public static final String XSDE_ANY_ATTRIBUTE_VIEW = PLUGIN_NAME + ".xsde3100";
-  /* CONTEXT_ID xsde3110 for Namespace Text Edit */
-  public static final String XSDE_ANY_ATTRIBUTE_NAMESPACE = PLUGIN_NAME + ".xsde3110";
-  /* CONTEXT_ID xsde3120 for Process Contents Combo Box */
-  public static final String XSDE_ANY_ATTRIBUTE_PROCESS   = PLUGIN_NAME + ".xsde3120";
-
-  /* no CONTEXT_ID for Union Design View - uses a generic interface */
-  /* CONTEXT_ID Type Information Group is from Type Helper xsde0900 */
-  /* CONTEXT_ID Built-in simple type Radio Button is from Type Helper xsde0920 */
-  /* CONTEXT_ID User-defined simple type Radio Button is from Type Helper xsde0930 */
-  /* CONTEXT_ID Type information Combo Box is from Type Helper xsde0950 */
-
-  /* CONTEXT_ID xsde3200 for Notation Design View */
-  public static final String XSDE_NOTATION_VIEW = PLUGIN_NAME + ".xsde3200";
-
-  /* CONTEXT_ID xsde4000 for Source View */
-  public static final String XSDE_SOURCE_VIEW = PLUGIN_NAME + ".xsde4000";
-
-  /* CONTEXT_IDs for Regular Expression Wizard follow the xsdrxxx context IDs */
-  
-  /* CONTEXT_ID xsdr0010 for Compose Regular Expression Page */
-  public static final String XSDR_COMPOSITION_PAGE         = PLUGIN_NAME + ".xsdr0010";
-  /* CONTEXT_ID xsdr0015 for Token Contents Combo Box */
-  public static final String XSDR_COMPOSITION_TOKEN = PLUGIN_NAME + ".xsdr0015";
-  /* CONTEXT_ID xsdr0020 for Occurrece Group */
-  public static final String XSDR_COMPOSITION_OCCURRENCE_GROUP = PLUGIN_NAME + ".xsdr0020";
-  /* CONTEXT_ID xsdr0030 for Just once Radio Button */
-  public static final String XSDR_COMPOSITION_JUST_ONCE    = PLUGIN_NAME + ".xsdr0030";
-  /* CONTEXT_ID xsdr0040 for Zero or more Radio Button */
-  public static final String XSDR_COMPOSITION_ZERO_OR_MORE = PLUGIN_NAME + ".xsdr0040";
-  /* CONTEXT_ID xsdr0050 for One or more Radio Button */
-  public static final String XSDR_COMPOSITION_ONE_OR_MORE  = PLUGIN_NAME + ".xsdr0050";
-  /* CONTEXT_ID xsdr0060 for Optional Radio Button */
-  public static final String XSDR_COMPOSITION_OPTIONAL     = PLUGIN_NAME + ".xsdr0060";
-  /* CONTEXT_ID xsdr0070 for Repeat Radio Button */
-  public static final String XSDR_COMPOSITION_REPEAT       = PLUGIN_NAME + ".xsdr0070";
-  /* CONTEXT_ID xsdr0080 for Range Radio Button */
-  public static final String XSDR_COMPOSITION_RANGE        = PLUGIN_NAME + ".xsdr0080";
-  /* CONTEXT_ID xsdr0090 for Repeat Text Edit */
-  public static final String XSDR_COMPOSITION_REPEAT_TEXT  = PLUGIN_NAME + ".xsdr0090";
-  /* CONTEXT_ID xsdr0100 for Range Minimum Text Edit */
-  public static final String XSDR_COMPOSITION_RANGE_MIN    = PLUGIN_NAME + ".xsdr0100";
-  /* CONTEXT_ID xsdr0110 for Range Maximum Text Edit */
-  public static final String XSDR_COMPOSITION_RANGE_MAX    = PLUGIN_NAME + ".xsdr0110";
-  /* CONTEXT_ID xsdr0120 for Add Push Button */
-  public static final String XSDR_COMPOSITION_ADD          = PLUGIN_NAME + ".xsdr0120";
-  /* CONTEXT_ID xsdr0130 for Current Regular Expression Text Edit */
-  public static final String XSDR_COMPOSITION_CURRENT      = PLUGIN_NAME + ".xsdr0130";
-
-  /* CONTEXT_ID xsdr0200 for Test Regular Expression Page */
-  public static final String XSDR_TEST_PAGE   = PLUGIN_NAME + ".xsdr0200";
-  /* no CONTEXT_ID for Regular Expression Text Edit (not editable) */
-  /* CONTEXT_ID xsdr0210 for Sample Text Text Edit */
-  public static final String XSDR_TEST_SAMPLE = PLUGIN_NAME + ".xsdr0210";
-
-  /* CONTEXT_IDs for Preferences Page follows the xsdpxxx context IDs */
-  
-  /* CONTEXT_ID xsdp0010 for XML Schema Preferences Page */
-  public static final String XSDP_PREFERENCE_PAGE = PLUGIN_NAME + ".xsdp0010";
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorExtensionProperties.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorExtensionProperties.java
deleted file mode 100644
index f87139a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorExtensionProperties.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import java.util.List;
-
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.design.figures.IExtendedFigureFactory;
-
-public class XSDEditorExtensionProperties
-{
-  XSDAdapterFactory adapterFactory;
-  IExtendedFigureFactory figureFactory;
-  EditPartFactory editPartFactory;
-  List actionList;
-
-  public XSDEditorExtensionProperties()
-  {
-
-  }
-
-  public void setActionList(List actionList)
-  {
-    this.actionList = actionList;
-  }
-
-  public void setAdapterFactory(XSDAdapterFactory adapterFactory)
-  {
-    this.adapterFactory = adapterFactory;
-  }
-
-  public void setEditPartFactoryList(EditPartFactory editPartFactory)
-  {
-    this.editPartFactory = editPartFactory;
-  }
-
-  public void setFigureFactoryList(IExtendedFigureFactory figureFactory)
-  {
-    this.figureFactory = figureFactory;
-  }
-
-  public List getActionList()
-  {
-    return actionList;
-  }
-
-  public XSDAdapterFactory getAdapterFactory()
-  {
-    return adapterFactory;
-  }
-
-  public EditPartFactory getEditPartFactory()
-  {
-    return editPartFactory;
-  }
-
-  public IExtendedFigureFactory getFigureFactory()
-  {
-    return figureFactory;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorPlugin.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorPlugin.java
deleted file mode 100644
index 2dc4ca1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDEditorPlugin.java
+++ /dev/null
@@ -1,370 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.plugin.*;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.ProductCustomizationProvider;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.ExtensionsSchemasRegistry;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeCustomizationRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.*;
-
-public class XSDEditorPlugin extends AbstractUIPlugin
-{
-  public static final String PLUGIN_ID = "org.eclipse.wst.xsd.ui"; //$NON-NLS-1$
-  public static final String EDITOR_ID = "org.eclipse.wst.xsd.ui.internal.editor.InternalXSDMultiPageEditor";  //$NON-NLS-1$
-  public static final String CONST_XSD_DEFAULT_PREFIX_TEXT = "org.eclipse.wst.xmlschema.xsdDefaultPrefixText"; //$NON-NLS-1$
-  public static final String CONST_PREFERED_BUILT_IN_TYPES = "org.eclipse.wst.xmlschema.preferedBuiltInTypes";  //$NON-NLS-1$
-  public static final String CUSTOM_LIST_SEPARATOR = "\n"; //$NON-NLS-1$
-  public static final String EXTENSIONS_SCHEMAS_EXTENSIONID = "org.eclipse.wst.xsd.ui.extensionCategories"; //$NON-NLS-1$
-  private static final String DEPRECATED_EXTENSIONS_SCHEMAS_EXTENSIONID = "org.eclipse.wst.xsd.ui.ExtensionsSchemasDescription"; //$NON-NLS-1$  
-  public final static String DEFAULT_TARGET_NAMESPACE = "http://www.example.org"; //$NON-NLS-1$
-  
-  
-	//The shared instance.
-	private static XSDEditorPlugin plugin;
-	//Resource bundle.
-	private ResourceBundle resourceBundle;
-  private ExtensionsSchemasRegistry registry;  
-  private NodeCustomizationRegistry nodeCustomizationRegistry;
-  private XSDEditorConfiguration xsdEditorConfiguration = null;
-  
-  public static final String CONST_USE_SIMPLE_EDIT_MODE = PLUGIN_ID + ".useSimpleEditMode"; //$NON-NLS-1$
-  public static final String CONST_SHOW_INHERITED_CONTENT = PLUGIN_ID + ".showInheritedContent"; //$NON-NLS-1$
-
-  public static final String CONST_XSD_LANGUAGE_QUALIFY = "org.eclipse.wst.xmlschema.xsdQualify"; //$NON-NLS-1$
-  public static final String CONST_DEFAULT_TARGET_NAMESPACE = "org.eclipse.wst.xmlschema.defaultTargetnamespaceText"; //$NON-NLS-1$
-  
-  public static String DEFAULT_PAGE = "org.eclipse.wst.xsd.ui.internal.defaultPage";
-  public static String DESIGN_PAGE = "org.eclipse.wst.xsd.ui.internal.designPage";
-  public static String SOURCE_PAGE = "org.eclipse.wst.xsd.ui.internal.sourcePage";
-
-	/**
-	 * The constructor.
-	 */
-	public XSDEditorPlugin() {
-		super();
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-		resourceBundle = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static XSDEditorPlugin getDefault() {
-		return plugin;
-	}
-
-	/**
-	 * Returns the string from the plugin's resource bundle,
-	 * or 'key' if not found.
-	 */
-	public static String getResourceString(String key) {
-		ResourceBundle bundle = XSDEditorPlugin.getDefault().getResourceBundle();
-		try {
-			return (bundle != null) ? bundle.getString(key) : key;
-		} catch (MissingResourceException e) {
-			return key;
-		}
-	}
-  
-  public static String getResourceString(String key, Object o)
-  {
-      return getResourceString(key, new Object[] { o});
-  }
-
-  public static String getResourceString(String key, Object[] objects)
-  {
-      return MessageFormat.format(getResourceString(key), objects);
-  }
-	
-  public static String getResourceString(String key, Object o1, Object o2)
-  {
-      return getResourceString(key, new Object[] { o1, o2});
-  }
-
-	/**
-	 * Returns the plugin's resource bundle,
-	 */
-	public ResourceBundle getResourceBundle() {
-		try {
-			if (resourceBundle == null)
-				// resourceBundle = ResourceBundle.getBundle("org.eclipse.wst.xsd.ui.internal.editor.EditorPluginResources");
-        resourceBundle = Platform.getResourceBundle(getBundle());
-		} catch (MissingResourceException x) {
-			resourceBundle = null;
-		}
-		return resourceBundle;
-	}
-
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin("org.eclipse.wst.xsd.ui", path); //$NON-NLS-1$
-	}
-	
-	public static ImageDescriptor getImageDescriptor(String name, boolean getBaseURL) {
-		try {
-			URL installURL = getDefault().getBundle().getEntry("/"); //$NON-NLS-1$
-			String imageString = getBaseURL ? "icons/" + name : name; //$NON-NLS-1$
-
-			URL imageURL = new URL(installURL, imageString);
-			return ImageDescriptor.createFromURL(imageURL);
-		} catch (MalformedURLException e) {
-			return null;
-		}
-	}
-
-	public Image getIcon(String name)
-	{
-	  try {
-		ImageRegistry imageRegistry = getImageRegistry();
-
-		if (imageRegistry.get(name) != null) {
-			return imageRegistry.get(name);
-		}
-		else {
-			URL installURL = getDefault().getBundle().getEntry("/"); //$NON-NLS-1$
-			String imageString = "icons/" + name; //$NON-NLS-1$
-
-			URL imageURL = new URL(installURL, imageString);
-			imageRegistry.put(name, ImageDescriptor.createFromURL(imageURL));
-			return imageRegistry.get(name);
-		}
-
-	  } catch (Exception e) {
-		return null;
-	  }
-	}
-	
-	public static XSDEditorPlugin getPlugin() {
-		return plugin;
-	}
-
-	public static String getXSDString(String key) {
-		return getResourceString(key);
-	}
-
-  /**
-   * This gets the string resource and does one substitution.
-   */
-  public String getString(String key, Object s1) {
-    return MessageFormat.format(Platform.getResourceBundle(getBundle()).getString(key), new Object[]{s1});
-  }
-  
-	public static Image getXSDImage(String iconName) {
-		return getDefault().getImage(iconName);
-	}
-
-	public Image getImage(String iconName) {
-		ImageRegistry imageRegistry = getImageRegistry();
-
-		if (imageRegistry.get(iconName) != null) {
-			return imageRegistry.get(iconName);
-		}
-		else {
-			imageRegistry.put(iconName, ImageDescriptor.createFromFile(getClass(), iconName));
-			return imageRegistry.get(iconName);
-		}
-	}
-	
-	public URL getBaseURL() {
-		return getDescriptor().getInstallURL();
-	}
-
-	public Image getIconImage(String object) {
-		try {
-			return ExtendedImageRegistry.getInstance().getImage(new URL(getBaseURL() + "icons/" + object + ".gif")); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch (MalformedURLException exception) {
-
-		}
-		return null;
-	}
-
-  public boolean getShowInheritedContent()
-  {
-    return getPreferenceStore().getBoolean(CONST_SHOW_INHERITED_CONTENT);
-  }
-  
-  protected void initializeDefaultPreferences(IPreferenceStore store)
-  {
-    store.setDefault(CONST_SHOW_INHERITED_CONTENT, false);
-    store.setDefault(CONST_XSD_DEFAULT_PREFIX_TEXT, "xsd"); //$NON-NLS-1$
-    store.setDefault(CONST_XSD_LANGUAGE_QUALIFY, false);
-    store.setDefault(DEFAULT_PAGE, DESIGN_PAGE);
-    store.setDefault(CONST_DEFAULT_TARGET_NAMESPACE, DEFAULT_TARGET_NAMESPACE);
-    
-    //Even the last item in the list must contain a trailing List separator
-    store.setDefault(CONST_PREFERED_BUILT_IN_TYPES,     		
-    		"boolean"+ CUSTOM_LIST_SEPARATOR + //$NON-NLS-1$
-    		"date" + CUSTOM_LIST_SEPARATOR + //$NON-NLS-1$
-    		"dateTime" + CUSTOM_LIST_SEPARATOR + //$NON-NLS-1$
-    		"double" + CUSTOM_LIST_SEPARATOR + //$NON-NLS-1$
-    		"float" + CUSTOM_LIST_SEPARATOR + //$NON-NLS-1$
-    		"hexBinary" + CUSTOM_LIST_SEPARATOR + //$NON-NLS-1$
-    		"int" + CUSTOM_LIST_SEPARATOR + //$NON-NLS-1$
-    		"string" + CUSTOM_LIST_SEPARATOR + //$NON-NLS-1$
-    		"time" + CUSTOM_LIST_SEPARATOR); //$NON-NLS-1$
-  }
-
-  public ExtensionsSchemasRegistry getExtensionsSchemasRegistry()
-  {
-    if (registry == null)
-    {
-      registry = new ExtensionsSchemasRegistry(EXTENSIONS_SCHEMAS_EXTENSIONID);
-      registry.__internalSetDeprecatedExtensionId(DEPRECATED_EXTENSIONS_SCHEMAS_EXTENSIONID);
-      registry.setPrefStore(XSDEditorPlugin.getPlugin().getPreferenceStore() );
-    }
-    return registry;
-  }
-
- 
-  public XSDEditorConfiguration getXSDEditorConfiguration()
-  {
-    if (xsdEditorConfiguration == null)
-    {
-      xsdEditorConfiguration = new XSDEditorConfiguration();
-    }
-    return xsdEditorConfiguration;
-  }
-
-  /**
-   * Get the xml schema default namespace prefix
-   */
-  public String getXMLSchemaPrefix()
-  {
-    return getPreferenceStore().getString(CONST_XSD_DEFAULT_PREFIX_TEXT);
-  }
-
-  
-  
-  
-  
-  
-  
-  
-  
-
-  /**
-   * Get the xml schema default target namespace
-   */
-  public String getXMLSchemaTargetNamespace() {
-    String targetNamespace = getPreferenceStore().getString(CONST_DEFAULT_TARGET_NAMESPACE);
-    if (!targetNamespace.endsWith("/")) { //$NON-NLS-1$
-      targetNamespace = targetNamespace + "/"; //$NON-NLS-1$
-    }
-    return targetNamespace;
-  }
-
-  /**
-   * Get the xml schema language qualification
-   */
-  public boolean isQualifyXMLSchemaLanguage() {
-    return getPreferenceStore().getBoolean(CONST_XSD_LANGUAGE_QUALIFY);
-  }
-
-  public static Shell getShell() {
-    return getPlugin().getWorkbench().getActiveWorkbenchWindow().getShell();
-  }
-  
-  public void setSourcePageAsDefault()
-  {
-    getPreferenceStore().setValue(DEFAULT_PAGE, SOURCE_PAGE);
-  }
-
-  public void setDesignPageAsDefault()
-  {
-    getPreferenceStore().setValue(DEFAULT_PAGE, DESIGN_PAGE);
-  }
-  
-  /**
-   * Method getDefaultPage.
-   * 
-   * @return String value of the string constant that is the default page
-   *         the editor should turn to when first opened. Changes to the
-   *         last visible page when the editor was closed
-   */
-  public String getDefaultPage() {
-    return getPreferenceStore().getString(DEFAULT_PAGE);
-  }
-
-  public NodeCustomizationRegistry getNodeCustomizationRegistry()
-  {
-    if (nodeCustomizationRegistry == null)
-    {  
-      nodeCustomizationRegistry = new NodeCustomizationRegistry("foo");
-    }
-    return nodeCustomizationRegistry;
-  }
-  
-  private static final String PRODUCT_CUSTOMIZATION_PROVIDER_PLUGIN_ID = "org.eclipse.wst.xsd.ui.productCustomizationProviderPluginId"; //$NON-NLS-1$
-  private static final String PRODUCT_CUSTOMIZATION_PROVIDER_CLASS_NAME = "org.eclipse.wst.xsd.ui.productCustomizationProviderClassName"; //$NON-NLS-1$
-  
-  private static ProductCustomizationProvider productCustomizationProvider;
-  private static boolean productCustomizationProviderInitialized = false;
-  
-  public ProductCustomizationProvider getProductCustomizationProvider()
-  {
-    if (!productCustomizationProviderInitialized)
-    {
-      productCustomizationProviderInitialized = true;
-      String pluginName = getPreferenceStore().getString(PRODUCT_CUSTOMIZATION_PROVIDER_PLUGIN_ID);
-      String className = getPreferenceStore().getString(PRODUCT_CUSTOMIZATION_PROVIDER_CLASS_NAME);
-      if (pluginName != null && pluginName.length() > 0 &&
-          className != null && className.length() > 0)
-      {
-        try
-        {
-          Bundle bundle = Platform.getBundle(pluginName);
-          Class clazz = bundle.loadClass(className);
-          productCustomizationProvider = (ProductCustomizationProvider)clazz.newInstance();
-        }          
-        catch (Exception e)
-        {          
-        }
-      }
-    }  
-    return productCustomizationProvider;
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDElementReferenceEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDElementReferenceEditManager.java
deleted file mode 100644
index dfc76d3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDElementReferenceEditManager.java
+++ /dev/null
@@ -1,131 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDElementCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateElementReferenceAndManageDirectivesCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateElementReferenceCommand;
-import org.eclipse.wst.xsd.ui.internal.dialogs.NewElementDialog;
-import org.eclipse.wst.xsd.ui.internal.editor.search.XSDSearchListDialogDelegate;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-
-public class XSDElementReferenceEditManager implements ComponentReferenceEditManager
-{  
-  protected IFile currentFile;
-  protected XSDSchema[] schemas;
-  
-  public XSDElementReferenceEditManager(IFile currentFile, XSDSchema[] schemas)
-  {
-    this.currentFile = currentFile;
-    this.schemas = schemas;
-  }
-  
-  public void addToHistory(ComponentSpecification component)
-  {
-    // TODO (cs) implement me!    
-  }
-
-  public IComponentDialog getBrowseDialog()
-  {
-    //XSDSetExistingTypeDialog dialog = new XSDSetExistingTypeDialog(currentFile, schemas);
-    //return dialog;
-    XSDSearchListDialogDelegate dialogDelegate = 
-    	new XSDSearchListDialogDelegate(XSDSearchListDialogDelegate.ELEMENT_META_NAME, currentFile, schemas);
-    return dialogDelegate;
-  }
-
-  public IComponentDescriptionProvider getComponentDescriptionProvider()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public ComponentSpecification[] getHistory()
-  {
-    // TODO (cs) implement this properly - should this history be global or local to each editor?
-    // This is something we should play around with ourselves to see what feels right.
-    //
-    List list = new ArrayList();
-    ComponentSpecification result[] = new ComponentSpecification[list.size()];
-    list.toArray(result);
-    return result;
-  }
-
-  public IComponentDialog getNewDialog()
-  {
-	  if (schemas.length > 0) {
-		  return new NewElementDialog(schemas[0]);
-	  }
-	  else {
-		  return new NewElementDialog();
-	  }
-  }
-
-  public ComponentSpecification[] getQuickPicks()
-  {
-    // TODO (cs) implement this properly - we should be providing a list of the 
-    // most 'common' built in schema types here
-    // I believe Trung will be working on a perference page to give us this list
-    // for now let's hard code some values
-    //
-    List list = new ArrayList();
-    
-    ComponentSpecification result[] = new ComponentSpecification[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  
-//TODO not changed yet
-  public void modifyComponentReference(Object referencingObject, ComponentSpecification component)
-  {
-    XSDElementDeclaration concreteComponent = null;
-    if (referencingObject instanceof Adapter)
-    {
-      Adapter adapter = (Adapter)referencingObject;
-      if (adapter.getTarget() instanceof XSDElementDeclaration)
-      {
-        concreteComponent = (XSDElementDeclaration)adapter.getTarget();
-      }
-    }
-    else if (referencingObject instanceof XSDConcreteComponent)
-    {
-      concreteComponent = (XSDElementDeclaration) referencingObject;
-    }
-    if (concreteComponent != null)
-    {
-        if (component.isNew())
-        {  
-          XSDElementDeclaration elementDec = null;
-          if (component.getMetaName() == IXSDSearchConstants.ELEMENT_META_NAME)
-          {  
-            AddXSDElementCommand command = new AddXSDElementCommand(Messages._UI_ACTION_ADD_ELEMENT, concreteComponent.getSchema());
-            command.setNameToAdd(component.getName());
-            command.execute();
-            elementDec = (XSDElementDeclaration) command.getAddedComponent();
-          }
-          if (elementDec != null)
-          {
-            Command command = new UpdateElementReferenceCommand(Messages._UI_ACTION_UPDATE_ELEMENT_REFERENCE, concreteComponent, elementDec);
-            command.execute();
-          }  
-        }  
-        else
-        {
-          Command command = new UpdateElementReferenceAndManageDirectivesCommand(concreteComponent, component.getName(), component.getQualifier(), component.getFile());
-          command.setLabel(Messages._UI_ACTION_UPDATE_ELEMENT_REFERENCE);
-          command.execute();
-        }  
-      }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDFileEditorInput.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDFileEditorInput.java
deleted file mode 100644
index 78f1d89..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDFileEditorInput.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.xsd.XSDSchema;
-
-public class XSDFileEditorInput extends FileEditorInput
-{
-  private IFile file;
-  private XSDSchema schema;
-  private String editorName;
-
-  public XSDFileEditorInput(IFile file, XSDSchema schema) {
-    super(file);
-    if (file == null) {
-      throw new IllegalArgumentException();
-    }
-    this.file = file;
-    this.schema = schema;
-    editorName = file.getName();
-  }
-
-  public IFile getFile()
-  {
-    return file;
-  }
-
-  public XSDSchema getSchema()
-  {
-    return schema;
-  }
-
-  public void setEditorName(String name)
-  {
-    editorName = name;
-  }
- 
-  public String getName()
-  {
-    if (editorName != null)
-    {
-      return editorName;
-    }
-    return super.getName();
-  }
-  
-  public String getToolTipText()
-  {
-    if (schema != null)
-    {
-      String ns = schema.getTargetNamespace();
-      if (ns != null && ns.length() > 0)
-        return Messages._UI_LABEL_TARGET_NAMESPACE + ns;
-      else
-        return Messages._UI_LABEL_NO_NAMESPACE;
-    }
-    return super.getToolTipText();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlink.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlink.java
deleted file mode 100644
index db9b913..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlink.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-
-/**
- * XSDHyperlink knows how to open links from XSD files.
- * 
- * @see XSDHyperlinkDetector
- */
-public class XSDHyperlink implements IHyperlink
-{
-  private IRegion fRegion;
-  private XSDConcreteComponent fComponent;
-
-  public XSDHyperlink(IRegion region, XSDConcreteComponent component)
-  {
-    fRegion = region;
-    fComponent = component;
-  }
-
-  public IRegion getHyperlinkRegion()
-  {
-    return fRegion;
-  }
-
-  public String getTypeLabel()
-  {
-    return null;
-  }
-
-  public String getHyperlinkText()
-  {
-    return null;
-  }
-
-  public void open()
-  {
-    XSDSchema schema = fComponent.getSchema();
-
-    if (schema == null)
-    {
-      return;
-    }
-
-    String schemaLocation = schema.getSchemaLocation();
-    schemaLocation = URIHelper.removePlatformResourceProtocol(schemaLocation);
-    IPath schemaPath = new Path(schemaLocation);
-    IFile schemaFile = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath);
-
-    boolean fileExists = schemaFile != null && schemaFile.exists();
-
-    if (!fileExists)
-    {
-      return;
-    }
-    IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-    if (workbenchWindow != null)
-    {
-      IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
-      IEditorPart editorPart = workbenchPage.getActiveEditor();
-      
-      workbenchPage.getNavigationHistory().markLocation(editorPart);
-      
-      try
-      {
-        editorPart = IDE.openEditor(workbenchPage, schemaFile, true);
-        if (editorPart instanceof InternalXSDMultiPageEditor)
-        {
-          ((InternalXSDMultiPageEditor) editorPart).openOnGlobalReference(fComponent);
-        }
-      }
-      catch (PartInitException pie)
-      {
-        Logger.log(Logger.WARNING_DEBUG, pie.getMessage(), pie);
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkDetector.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkDetector.java
deleted file mode 100644
index 8e27f14..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkDetector.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *     Jens Lukowski/Innoopract - initial renaming/restructuring
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.IRegion;
-import org.eclipse.jface.text.hyperlink.IHyperlink;
-import org.eclipse.wst.sse.core.StructuredModelManager;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xsd.ui.internal.text.XSDModelAdapter;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-
-/**
- * Detects hyperlinks for XSD files. Used by the XSD text editor to provide a
- * "Go to declaration" functionality similar with the one provided by the Java
- * editor.
- */
-public class XSDHyperlinkDetector extends BaseHyperlinkDetector
-{
-  /**
-   * Determines whether an attribute is "linkable" that is, the component it
-   * points to can be the target of a "go to definition" navigation. Derived
-   * classes should override.
-   * 
-   * @param name the attribute name. Must not be null.
-   * @return true if the attribute is linkable, false otherwise.
-   */
-  protected boolean isLinkableAttribute(String name)
-  {
-    boolean isLinkable = name.equals(XSDConstants.TYPE_ATTRIBUTE) ||
-      name.equals(XSDConstants.REFER_ATTRIBUTE) || 
-      name.equals(XSDConstants.REF_ATTRIBUTE) || 
-      name.equals(XSDConstants.BASE_ATTRIBUTE) || 
-      name.equals(XSDConstants.SCHEMALOCATION_ATTRIBUTE) || 
-      name.equals(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE) ||
-      name.equals(XSDConstants.ITEMTYPE_ATTRIBUTE) ||
-      name.equals(XSDConstants.MEMBERTYPES_ATTRIBUTE)
-      ;
-
-    return isLinkable;
-  }
-
-  /**
-   * Creates a hyperlink based on the selected node. Derived classes should
-   * override.
-   * 
-   * @param document the source document.
-   * @param node the node under the cursor.
-   * @param region the text region to use to create the hyperlink.
-   * @return a new IHyperlink for the node or null if one cannot be created.
-   */
-  protected IHyperlink createHyperlink(IDocument document, IDOMNode node, IRegion region)
-  {
-    XSDSchema xsdSchema = getXSDSchema(document);
-
-    if (xsdSchema == null)
-    {
-      return null;
-    }
-
-    XSDConcreteComponent targetComponent = getTargetXSDComponent(xsdSchema, node);
-
-    if (targetComponent != null)
-    {
-      IRegion nodeRegion = getHyperlinkRegion(node);
-
-      return new XSDHyperlink(nodeRegion, targetComponent);
-    }
-
-    return null;
-  }
-
-  /**
-   * Finds the XSD component for the given node.
-   * 
-   * @param xsdSchema cannot be null
-   * @param node cannot be null
-   * @return XSDConcreteComponent
-   */
-  private XSDConcreteComponent getTargetXSDComponent(XSDSchema xsdSchema, IDOMNode node)
-  {
-    XSDConcreteComponent xsdComponent = xsdSchema.getCorrespondingComponent(node);
-
-    String attributeName = null;
-    
-    if (node instanceof Attr)
-    {
-      Attr attribute = (Attr)node;
-      attributeName = attribute != null ? attribute.getName(): null;
-    }
-    
-    XSDHyperlinkTargetLocator xsdHyperlinkTargetLocator = new XSDHyperlinkTargetLocator();
-    XSDConcreteComponent component = xsdHyperlinkTargetLocator.locate(xsdComponent, attributeName); 
-    
-    return component;
-  }
-
-  /**
-   * Gets the xsd schema from document
-   * 
-   * @param document
-   * @return XSDSchema or null of one does not exist yet for document
-   */
-  private XSDSchema getXSDSchema(IDocument document)
-  {
-    XSDSchema schema = null;
-    IStructuredModel model = StructuredModelManager.getModelManager().getExistingModelForRead(document);
-    if (model != null)
-    {
-      try
-      {
-        if (model instanceof IDOMModel)
-        {
-          IDOMDocument domDoc = ((IDOMModel) model).getDocument();
-          if (domDoc != null)
-          {
-            XSDModelAdapter modelAdapter = (XSDModelAdapter) domDoc.getExistingAdapter(XSDModelAdapter.class);
-            /*
-             * ISSUE: Didn't want to go through initializing schema if it does
-             * not already exist, so just attempted to get existing adapter. If
-             * doesn't exist, just don't bother working.
-             */
-            if (modelAdapter != null)
-              schema = modelAdapter.getSchema();
-          }
-        }
-      }
-      finally
-      {
-        model.releaseFromRead();
-      }
-    }
-    return schema;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkTargetLocator.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkTargetLocator.java
deleted file mode 100644
index c04aebd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDHyperlinkTargetLocator.java
+++ /dev/null
@@ -1,301 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.editor;
-
-import java.util.List;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-import org.eclipse.xsd.util.XSDConstants;
-import org.eclipse.xsd.util.XSDSwitch;
-
-/**
- * A custom XSDSwitch used to locate the "referenced" component. Used by the
- * hyperlink/F3 navigation mechanism. Made a separate class because it is used
- * from the WSDL editor as well.
- */
-public class XSDHyperlinkTargetLocator extends XSDSwitch
-{
-  /**
-   * Holds the attribute name if the cursor/mouse is over an attribute.
-   */
-  private String attributeName;
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.xsd.util.XSDSwitch#caseXSDAttributeDeclaration(org.eclipse.xsd.XSDAttributeDeclaration)
-   */
-  public Object caseXSDAttributeDeclaration(XSDAttributeDeclaration attributeDeclaration)
-  {
-    XSDConcreteComponent target = null;
-
-    if (attributeDeclaration.isAttributeDeclarationReference())
-    {
-      target = attributeDeclaration.getResolvedAttributeDeclaration();
-    }
-    else if (attributeDeclaration.getAnonymousTypeDefinition() == null)
-    {
-      target = attributeDeclaration.getTypeDefinition();
-
-      // Avoid navigating to built in data types.
-
-      if (isFromSchemaForSchema(target))
-      {
-        target = null;
-      }
-    }
-    return target;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.xsd.util.XSDSwitch#caseXSDAttributeGroupDefinition(org.eclipse.xsd.XSDAttributeGroupDefinition)
-   */
-  public Object caseXSDAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroupDefinition)
-  {
-    XSDConcreteComponent target = null;
-
-    if (attributeGroupDefinition.isAttributeGroupDefinitionReference())
-    {
-      target = attributeGroupDefinition.getResolvedAttributeGroupDefinition();
-    }
-
-    return target;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.xsd.util.XSDSwitch#caseXSDElementDeclaration(org.eclipse.xsd.XSDElementDeclaration)
-   */
-  public Object caseXSDElementDeclaration(XSDElementDeclaration elementDeclaration)
-  {
-    XSDConcreteComponent target = null;
-
-    if (elementDeclaration.isElementDeclarationReference())
-    {
-      target = elementDeclaration.getResolvedElementDeclaration();
-    }
-    else
-    {
-      XSDConcreteComponent typeDefinition = null;
-
-      if (elementDeclaration.getAnonymousTypeDefinition() == null)
-      {
-        typeDefinition = elementDeclaration.getTypeDefinition();
-      }
-
-      XSDConcreteComponent substitutionGroupAffiliation = elementDeclaration.getSubstitutionGroupAffiliation();
-
-      if (typeDefinition != null && substitutionGroupAffiliation != null)
-      {
-        // There are 2 things we can navigate to: if the cursor is anywhere on
-        // the
-        // substitution attribute then jump to that, otherwise just go to the
-        // base type.
-
-        if (XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE.equals(attributeName))
-        {
-          target = substitutionGroupAffiliation;
-        }
-        else
-        {
-          target = typeDefinition;
-        }
-      }
-      else
-      {
-        target = typeDefinition != null ? typeDefinition : substitutionGroupAffiliation;
-      }
-
-      if (isFromSchemaForSchema(target))
-      {
-        target = null;
-      }
-    }
-
-    return target;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.xsd.util.XSDSwitch#caseXSDIdentityConstraintDefinition(org.eclipse.xsd.XSDIdentityConstraintDefinition)
-   */
-  public Object caseXSDIdentityConstraintDefinition(XSDIdentityConstraintDefinition idConstraintDefinition)
-  {
-    Object target = null;
-
-    XSDIdentityConstraintDefinition referencedKey = idConstraintDefinition.getReferencedKey();
-
-    if (referencedKey != null)
-    {
-      target = referencedKey;
-    }
-
-    return target;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.xsd.util.XSDSwitch#caseXSDModelGroupDefinition(org.eclipse.xsd.XSDModelGroupDefinition)
-   */
-  public Object caseXSDModelGroupDefinition(XSDModelGroupDefinition modelGroupDefinition)
-  {
-    XSDConcreteComponent target = null;
-
-    if (modelGroupDefinition.isModelGroupDefinitionReference())
-    {
-      target = modelGroupDefinition.getResolvedModelGroupDefinition();
-    }
-
-    return target;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.xsd.util.XSDSwitch#caseXSDSchemaDirective(org.eclipse.xsd.XSDSchemaDirective)
-   */
-  public Object caseXSDSchemaDirective(XSDSchemaDirective directive)
-  {
-    XSDSchema schema = directive.getResolvedSchema();
-
-    return schema;
-  }
-
-  public Object caseXSDSimpleTypeDefinition(XSDSimpleTypeDefinition typeDefinition)
-  {
-    XSDConcreteComponent target = null;
-
-    // Simple types can be one of: atomic, list or union.
-
-    XSDVariety variety = typeDefinition.getVariety();
-    int varietyType = variety.getValue();
-
-    switch (varietyType)
-    {
-      case XSDVariety.ATOMIC:
-        {
-          target = typeDefinition.getBaseTypeDefinition();
-        }
-        break;
-      case XSDVariety.LIST:
-        {
-          target = typeDefinition.getItemTypeDefinition();
-        }
-        break;
-      case XSDVariety.UNION:
-        {
-          List memberTypes = typeDefinition.getMemberTypeDefinitions();
-          if (memberTypes != null && memberTypes.size() > 0)
-          {
-            // ISSUE: What if there are more than one type?
-            // This could be a case for multiple hyperlinks at the same
-            // location.
-            target = (XSDConcreteComponent) memberTypes.get(0);
-          }
-        }
-        break;
-    }
-
-    // Avoid navigating to built in data types.
-
-    if (isFromSchemaForSchema(target))
-    {
-      target = null;
-    }
-
-    return target;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.xsd.util.XSDSwitch#caseXSDTypeDefinition(org.eclipse.xsd.XSDTypeDefinition)
-   */
-  public Object caseXSDTypeDefinition(XSDTypeDefinition typeDefinition)
-  {
-    XSDConcreteComponent target = null;
-
-    XSDTypeDefinition baseType = typeDefinition.getBaseType();
-
-    if (baseType != null)
-    {
-      target = baseType;
-    }
-
-    // Avoid navigating to built in data types.
-
-    if (isFromSchemaForSchema(target))
-    {
-      target = null;
-    }
-
-    return target;
-  }
-
-  /**
-   * Detects if a given schema component is from the schema for schema (built in
-   * data types). Used to avoid navigating to this type of components as they
-   * don't have an accessible physical location.
-   * 
-   * @param component the component to check.
-   * @return true if the component is from the schema for schema namespace,
-   *         false otherwise.
-   */
-  public boolean isFromSchemaForSchema(XSDConcreteComponent component)
-  {
-    if (component == null)
-    {
-      return false;
-    }
-
-    XSDSchema schema = component.getSchema();
-
-    if (schema != null && schema.equals(schema.getSchemaForSchema()))
-    {
-      return true;
-    }
-
-    return false;
-  }
-
-  /**
-   * Locates the target component - for example the element declaration pointed
-   * to by an element reference, etc.
-   * 
-   * @param component the current component.
-   * @param attributeName the attribute name if the cursor/mouse is over an
-   *        attribute. This is used to provide fine grained navigation for
-   *        components with more than one "active" attribute.
-   * @return the referenced XSD concrete component or null if none is found.
-   */
-  public XSDConcreteComponent locate(XSDConcreteComponent component, String attributeName)
-  {
-    this.attributeName = attributeName;
-
-    return (XSDConcreteComponent) doSwitch(component);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDMultiPageEditorContributor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDMultiPageEditorContributor.java
deleted file mode 100644
index a2a8562..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDMultiPageEditorContributor.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.gef.editparts.ZoomManager;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.actions.GEFActionConstants;
-import org.eclipse.gef.ui.actions.ZoomComboContributionItem;
-import org.eclipse.gef.ui.actions.ZoomInRetargetAction;
-import org.eclipse.gef.ui.actions.ZoomOutRetargetAction;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.IToolBarManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorActionBarContributor;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.actions.RetargetAction;
-import org.eclipse.ui.part.MultiPageEditorActionBarContributor;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.ITextEditorActionConstants;
-import org.eclipse.wst.sse.ui.internal.ISourceViewerActionBarContributor;
-import org.eclipse.wst.xsd.ui.internal.actions.IXSDToolbarAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.DeleteAction;
-
-/**
- * Manages the installation/deinstallation of global actions for multi-page
- * editors. Responsible for the redirection of global actions to the active
- * editor. Multi-page contributor replaces the contributors for the individual
- * editors in the multi-page editor.
- */
-public class XSDMultiPageEditorContributor extends MultiPageEditorActionBarContributor
-{
-  private IEditorPart activeEditorPart;
-  private InternalXSDMultiPageEditor xsdEditor;
-  protected ITextEditor textEditor;
-  protected IEditorActionBarContributor sourceViewerActionContributor = null;
-  protected List fPartListeners= new ArrayList();
-  ZoomInRetargetAction zoomInRetargetAction;
-  ZoomOutRetargetAction zoomOutRetargetAction;
-  ZoomComboContributionItem zoomComboContributionItem;
-  /**
-   * Creates a multi-page contributor.
-   */
-  public XSDMultiPageEditorContributor()
-  {
-    super();
-    sourceViewerActionContributor = new SourcePageActionContributor();
-    zoomInRetargetAction = new ZoomInRetargetAction();
-    zoomOutRetargetAction = new ZoomOutRetargetAction();
-    fPartListeners.add(zoomInRetargetAction);
-    fPartListeners.add(zoomOutRetargetAction);
-  }
-
-  /**
-   * Returns the action registed with the given text editor.
-   * 
-   * @return IAction or null if editor is null.
-   */
-  protected IAction getAction(ITextEditor editor, String actionID)
-  {
-    return (editor == null ? null : editor.getAction(actionID));
-  }
-
-  /*
-   * (non-JavaDoc) Method declared in
-   * AbstractMultiPageEditorActionBarContributor.
-   */
-
-  public void setActivePage(IEditorPart part)
-  {
-    if (activeEditorPart == part)
-      return;
-
-    activeEditorPart = part;
-
-    IActionBars actionBars = getActionBars();
-    boolean isSource = false;
-    
-    if (activeEditorPart != null && activeEditorPart instanceof ITextEditor)
-    {
-      isSource = true;
-      zoomInRetargetAction.setEnabled(false);
-      zoomOutRetargetAction.setEnabled(false);
-      activateSourcePage(activeEditorPart, true);
-    }
-    else
-    {
-      activateSourcePage(xsdEditor, false);
-      if (part instanceof InternalXSDMultiPageEditor)
-      {
-        xsdEditor = (InternalXSDMultiPageEditor) part;
-      }
-      if (xsdEditor != null)
-      {    	  
-        // cs: here's we ensure the UNDO and REDO actions are available when 
-        // the design view is active
-        IWorkbenchPartSite site = xsdEditor.getSite();
-        if (site instanceof IEditorSite) 
-        {
-          ITextEditor textEditor = xsdEditor.getTextEditor();
-          IActionBars siteActionBars = ((IEditorSite) site).getActionBars();
-          siteActionBars.setGlobalActionHandler(ITextEditorActionConstants.UNDO, getAction(textEditor, ITextEditorActionConstants.UNDO));
-          siteActionBars.setGlobalActionHandler(ITextEditorActionConstants.REDO, getAction(textEditor, ITextEditorActionConstants.REDO));
-          siteActionBars.updateActionBars();    					
-        }
-			
-        Object adapter = xsdEditor.getAdapter(ActionRegistry.class);
-        if (adapter instanceof ActionRegistry)
-        {
-          ActionRegistry registry = (ActionRegistry) adapter;
-          actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), registry.getAction(DeleteAction.ID));
-          actionBars.setGlobalActionHandler(GEFActionConstants.ZOOM_IN, registry.getAction(GEFActionConstants.ZOOM_IN));
-          actionBars.setGlobalActionHandler(GEFActionConstants.ZOOM_OUT, registry.getAction(GEFActionConstants.ZOOM_OUT));
-          actionBars.setGlobalActionHandler(ActionFactory.PRINT.getId(), registry.getAction(ActionFactory.PRINT.getId()));
-          zoomInRetargetAction.setEnabled(true);
-          zoomOutRetargetAction.setEnabled(true);
-        }
-      }
-    }
-
-    if (actionBars != null) {
-      // update menu bar and tool bar
-      actionBars.updateActionBars();
-    }
-    
-    if (zoomComboContributionItem != null)
-    {
-      zoomComboContributionItem.setVisible(!isSource);
-      zoomComboContributionItem.update();
-    }
-  }
-  
-  protected void activateSourcePage(IEditorPart activeEditor, boolean state)
-  {
-    if (sourceViewerActionContributor != null && sourceViewerActionContributor instanceof ISourceViewerActionBarContributor)
-    {
-      sourceViewerActionContributor.setActiveEditor(activeEditor);
-      ((ISourceViewerActionBarContributor) sourceViewerActionContributor).setViewerSpecificContributionsEnabled(state);
-    }
-  }
-
-  public void setActiveEditor(IEditorPart part)
-  {
-    IEditorPart activeNestedEditor = null;
-    if (part instanceof MultiPageEditorPart)
-    {
-      activeNestedEditor = part;
-    }
-    setActivePage(activeNestedEditor);
-    
-    if (part instanceof InternalXSDMultiPageEditor)
-    {
-      xsdEditor = (InternalXSDMultiPageEditor) part;
-
-      textEditor = xsdEditor.getTextEditor();
-      if (textEditor != null)
-      {      
-//        updateActions();  
-        getActionBars().updateActionBars();
-      }
-    }
-    
-    List list = XSDEditorPlugin.getPlugin().getXSDEditorConfiguration().getToolbarActions();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      ((IXSDToolbarAction)i.next()).setEditorPart(activeNestedEditor);
-    }
-    
-    super.setActiveEditor(part);
-  }
-
-  public void contributeToMenu(IMenuManager manager)
-  {
-    IMenuManager menu = new MenuManager(Messages._UI_MENU_XSD_EDITOR);
-    manager.prependToGroup(IWorkbenchActionConstants.MB_ADDITIONS, menu);
-
-    // Add extension menu actions
-    List list = XSDEditorPlugin.getPlugin().getXSDEditorConfiguration().getToolbarActions();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      menu.add((IXSDToolbarAction)i.next());
-    }
-
-    menu.add(zoomInRetargetAction);
-    menu.add(zoomOutRetargetAction);
-
-    menu.updateAll(true);
-  }
-
-  public void contributeToToolBar(IToolBarManager manager)
-  {
-    manager.add(new Separator());
-    // Add extension toolbar actions
-    List list = XSDEditorPlugin.getPlugin().getXSDEditorConfiguration().getToolbarActions();
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      manager.add((IXSDToolbarAction)i.next());
-    }
-
-    manager.add(new Separator());
-    String[] zoomStrings = new String[] { ZoomManager.FIT_ALL, ZoomManager.FIT_HEIGHT, ZoomManager.FIT_WIDTH };
-    zoomComboContributionItem = new ZoomComboContributionItem(getPage(), zoomStrings);
-    manager.add(zoomComboContributionItem);
-  }
-  
-  
-  public void init(IActionBars bars, IWorkbenchPage page)
-  {
-    Iterator e = fPartListeners.iterator();
-    while (e.hasNext())
-    {
-      page.addPartListener((RetargetAction) e.next());
-    }
-    
-    initSourceViewerActionContributor(bars);
-    
-    super.init(bars, page);
-  }
-
-  
-  protected void initSourceViewerActionContributor(IActionBars actionBars) {
-    if (sourceViewerActionContributor != null)
-      sourceViewerActionContributor.init(actionBars, getPage());
-  }
-  
-  public void dispose()
-  {
-    fPartListeners = null;
-    if (sourceViewerActionContributor != null)
-      sourceViewerActionContributor.dispose();
-    super.dispose();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDSelectionMapper.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDSelectionMapper.java
deleted file mode 100644
index e527599..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDSelectionMapper.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-public class XSDSelectionMapper implements ISelectionMapper
-{
-  public ISelection mapSelection(ISelection selection)
-  {
-    List list = new ArrayList();
-    if (selection instanceof IStructuredSelection)
-    {  
-      IStructuredSelection structuredSelection = (IStructuredSelection)selection;
-      for (Iterator i = structuredSelection.iterator(); i.hasNext(); )
-      {
-        Object o = i.next();
-        if (o instanceof Adapter)
-        {
-          list.add(((Adapter)o).getTarget());
-        }  
-        else
-        {
-          list.add(o);
-        }  
-      }  
-    }
-    return new StructuredSelection(list);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDSubstitutionGroupEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDSubstitutionGroupEditManager.java
deleted file mode 100644
index a6f9641..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDSubstitutionGroupEditManager.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDElementCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateAttributeValueCommand;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDSubstitutionGroupEditManager extends XSDElementReferenceEditManager
-{
-
-  public XSDSubstitutionGroupEditManager(IFile currentFile, XSDSchema[] schemas)
-  {
-    super(currentFile, schemas);
-  }
-
-  public void modifyComponentReference(Object referencingObject, ComponentSpecification component)
-  {
-    XSDElementDeclaration concreteComponent = null;
-    if (referencingObject instanceof Adapter)
-    {
-      Adapter adapter = (Adapter)referencingObject;
-      if (adapter.getTarget() instanceof XSDElementDeclaration)
-      {
-        concreteComponent = (XSDElementDeclaration)adapter.getTarget();
-      }
-    }
-    else if (referencingObject instanceof XSDConcreteComponent)
-    {
-      concreteComponent = (XSDElementDeclaration) referencingObject;
-    }
-    if (concreteComponent != null)
-    {
-        if (component.isNew())
-        {  
-          XSDElementDeclaration elementDec = null;
-          if (component.getMetaName() == IXSDSearchConstants.ELEMENT_META_NAME)
-          {  
-            AddXSDElementCommand command = new AddXSDElementCommand(Messages._UI_ACTION_ADD_ELEMENT, concreteComponent.getSchema());
-            command.setNameToAdd(component.getName());
-            command.execute();
-            elementDec = (XSDElementDeclaration) command.getAddedComponent();
-          }
-          if (elementDec != null)
-          {
-            Command command = new UpdateAttributeValueCommand(concreteComponent.getElement(), XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE, elementDec.getQName(concreteComponent.getSchema()));
-            command.execute();
-          }  
-        }  
-        else
-        {
-          Command command = new UpdateAttributeValueCommand(concreteComponent.getElement(), XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE, ((XSDElementDeclaration)component.getObject()).getQName(concreteComponent.getSchema()));
-          command.execute();
-        }  
-      }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDTabbedPropertySheetPage.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDTabbedPropertySheetPage.java
deleted file mode 100644
index 49c408a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDTabbedPropertySheetPage.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDElementDeclarationAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDParticleAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.text.XSDModelAdapter;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-
-public class XSDTabbedPropertySheetPage extends TabbedPropertySheetPage implements IADTObjectListener
-{
-  XSDBaseAdapter oldSelection;
-  XSDModelAdapter xsdModelAdapter;
-  public XSDTabbedPropertySheetPage(ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor)
-  {
-    super(tabbedPropertySheetPageContributor);
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-
-      Object selected = ((StructuredSelection)selection).getFirstElement();
-      if (selected instanceof XSDBaseAdapter)
-      {
-        XSDBaseAdapter adapter = (XSDBaseAdapter)selected;
-        if (oldSelection != null)
-        {
-          oldSelection.unregisterListener(this);
-          if (oldSelection instanceof XSDElementDeclarationAdapter)
-          {
-            XSDElementDeclaration elem = (XSDElementDeclaration)((XSDElementDeclarationAdapter)oldSelection).getTarget();
-            if (elem.getContainer() != null)
-            {
-              Adapter adap = XSDAdapterFactory.getInstance().adapt(elem.getContainer());
-              if (adap instanceof XSDParticleAdapter)
-              {
-                XSDParticleAdapter particleAdapter = (XSDParticleAdapter)adap;
-                particleAdapter.unregisterListener(this);
-              }
-            }
-            if (elem.isElementDeclarationReference())
-            {
-              XSDElementDeclarationAdapter resolvedElementAdapter = (XSDElementDeclarationAdapter)XSDAdapterFactory.getInstance().adapt(elem.getResolvedElementDeclaration());
-              resolvedElementAdapter.unregisterListener(this);
-            }
-          }
-        }
-        if (adapter instanceof XSDElementDeclarationAdapter)
-        {
-          XSDElementDeclaration elem = (XSDElementDeclaration)((XSDElementDeclarationAdapter)adapter).getTarget();
-          Adapter adap = XSDAdapterFactory.getInstance().adapt(elem.getContainer());
-          if (adap instanceof XSDParticleAdapter)
-          {
-            XSDParticleAdapter particleAdapter = (XSDParticleAdapter)adap;
-            particleAdapter.registerListener(this);
-          }
-          if (elem.isElementDeclarationReference())
-          {
-            XSDElementDeclarationAdapter resolvedElementAdapter = (XSDElementDeclarationAdapter)XSDAdapterFactory.getInstance().adapt(elem.getResolvedElementDeclaration());
-            resolvedElementAdapter.registerListener(this);
-          }
-        }
-        adapter.registerListener(this);
-        oldSelection = adapter;
-        Object model = adapter.getTarget();
-
-        if (xsdModelAdapter != null && xsdModelAdapter.getModelReconcileAdapter() != null)
-        {
-          xsdModelAdapter.getModelReconcileAdapter().removeListener(internalNodeAdapter);
-        }
-        
-        xsdModelAdapter = XSDModelAdapter.lookupOrCreateModelAdapter(((XSDConcreteComponent)adapter.getTarget()).getElement().getOwnerDocument());
-        if (xsdModelAdapter != null && xsdModelAdapter.getModelReconcileAdapter() != null)
-        {
-          xsdModelAdapter.getModelReconcileAdapter().addListener(internalNodeAdapter);
-        }
-        
-        if (model instanceof XSDConcreteComponent)
-        {
-          selection = new StructuredSelection(model);
-        }
-        super.selectionChanged(part, selection);
-        return;
-      }
-      super.selectionChanged(part, selection);
-  }
-  
-  public void propertyChanged(Object object, String property)
-  {
-    if (getCurrentTab() != null)
-    {
-      refresh();
-    }
-  }
-  
-  public void dispose()
-  {
-    if (xsdModelAdapter != null && xsdModelAdapter.getModelReconcileAdapter() != null)
-    {
-      xsdModelAdapter.getModelReconcileAdapter().removeListener(internalNodeAdapter);
-      xsdModelAdapter = null;
-    }
-    super.dispose();
-  }
-
-  protected INodeAdapter internalNodeAdapter = new InternalNodeAdapter();
-  class InternalNodeAdapter implements INodeAdapter
-  {
-    public boolean isAdapterForType(Object type)
-    {
-      return false;
-    }
-
-    public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos)
-    {
-      refresh();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDTypeReferenceEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDTypeReferenceEditManager.java
deleted file mode 100644
index 1a78dde..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/XSDTypeReferenceEditManager.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDComplexTypeDefinitionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDSimpleTypeDefinitionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateTypeReferenceAndManageDirectivesCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateTypeReferenceCommand;
-import org.eclipse.wst.xsd.ui.internal.dialogs.NewTypeDialog;
-import org.eclipse.wst.xsd.ui.internal.editor.search.XSDSearchListDialogDelegate;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.eclipse.xsd.util.XSDSchemaBuildingTools;
-
-public class XSDTypeReferenceEditManager implements ComponentReferenceEditManager
-{  
-  protected IFile currentFile;
-  protected XSDSchema[] schemas;
-  
-  private static ComponentSpecification result[];
-  
-  public XSDTypeReferenceEditManager(IFile currentFile, XSDSchema[] schemas)
-  {
-    this.currentFile = currentFile;
-    this.schemas = schemas;
-  }
-  
-  public void addToHistory(ComponentSpecification component)
-  {
-    // TODO (cs) implement me!    
-  }
-
-  public IComponentDialog getBrowseDialog()
-  {
-    //XSDSetExistingTypeDialog dialog = new XSDSetExistingTypeDialog(currentFile, schemas);
-    //return dialog;
-    XSDSearchListDialogDelegate dialogDelegate = new XSDSearchListDialogDelegate(XSDSearchListDialogDelegate.TYPE_META_NAME, currentFile, schemas);
-    return dialogDelegate;
-  }
-
-  public IComponentDescriptionProvider getComponentDescriptionProvider()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public ComponentSpecification[] getHistory()
-  {
-    // TODO (cs) implement this properly - should this history be global or local to each editor?
-    // This is something we should play around with ourselves to see what feels right.
-    //
-    List list = new ArrayList();
-    ComponentSpecification result[] = new ComponentSpecification[list.size()];
-    list.toArray(result);
-    return result;
-  }
-
-  public IComponentDialog getNewDialog()
-  {
-	  if (schemas.length > 0) {
-		  return new NewTypeDialog(schemas[0]);
-	  }
-	  else {
-		  return new NewTypeDialog();
-	  }
-  }
-
-  public ComponentSpecification[] getQuickPicks()
-  {
-    if (result != null)
-      return result;
-
-    // TODO (cs) implement this properly - we should be providing a list of the 
-    // most 'common' built in schema types here
-    // I believe Trung will be working on a perference page to give us this list
-    // for now let's hard code some values
-    //
-    List list = new ArrayList();
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "boolean", null)); //$NON-NLS-1$
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "date", null)); //$NON-NLS-1$
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "dateTime", null));     //$NON-NLS-1$
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "double", null)); //$NON-NLS-1$
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "float", null));  //$NON-NLS-1$
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "hexBinary", null)); //$NON-NLS-1$
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "int", null));     //$NON-NLS-1$
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "string", null)); //$NON-NLS-1$
-    list.add(new ComponentSpecification(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "time", null));        //$NON-NLS-1$
-    result = new ComponentSpecification[list.size()];
-    list.toArray(result);
-    return result;
-  }
-  
-
-  public void modifyComponentReference(Object referencingObject, ComponentSpecification component)
-  {
-    XSDConcreteComponent concreteComponent = null;
-    if (referencingObject instanceof Adapter)
-    {
-      Adapter adpater = (Adapter)referencingObject;
-      if (adpater.getTarget() instanceof XSDConcreteComponent)
-      {
-        concreteComponent = (XSDConcreteComponent)adpater.getTarget();
-      }
-    }
-    else if (referencingObject instanceof XSDConcreteComponent)
-    {
-      concreteComponent = (XSDConcreteComponent) referencingObject;
-    }
-    
-    if (concreteComponent != null)
-    {
-      if (component.isNew())
-      {  
-        XSDTypeDefinition td = null;
-        if (component.getName() == null // This means we set to anonymous type
-        		&& concreteComponent instanceof XSDElementDeclaration)
-        {
-          XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-          XSDElementDeclaration elementDeclaration = (XSDElementDeclaration) concreteComponent;
-          // TODO (cs) we should use actions here so that UNDO/REDO can work nicely
-          // with the proper undo descriptions
-          if (component.getMetaName() == IXSDSearchConstants.COMPLEX_TYPE_META_NAME)
-          {
-            XSDComplexTypeDefinition complexType = factory.createXSDComplexTypeDefinition();            
-	  	    elementDeclaration.setAnonymousTypeDefinition(complexType);
-          }
-          else
-          {
-        	XSDSimpleTypeDefinition simpleType = factory.createXSDSimpleTypeDefinition();
-        	simpleType.setBaseTypeDefinition(
-        			elementDeclaration.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "string") ); //$NON-NLS-1$
-  	  	    elementDeclaration.setAnonymousTypeDefinition(simpleType);
-          }
-		  elementDeclaration.getElement().removeAttribute("type"); //TODO use external literal string
-        }
-        else if (component.getMetaName() == IXSDSearchConstants.COMPLEX_TYPE_META_NAME)
-        {  
-          AddXSDComplexTypeDefinitionCommand command = new AddXSDComplexTypeDefinitionCommand(Messages._UI_ACTION_ADD_COMPLEX_TYPE, concreteComponent.getSchema());
-          command.setNameToAdd(component.getName());
-          command.execute();
-          td = command.getCreatedComplexType();
-        }
-        else
-        {
-          AddXSDSimpleTypeDefinitionCommand command = new AddXSDSimpleTypeDefinitionCommand(Messages._UI_ACTION_ADD_SIMPLE_TYPE, concreteComponent.getSchema());
-          command.setNameToAdd(component.getName());
-          command.execute();
-          td = command.getCreatedSimpleType();
-        }  
-        if (td != null)
-        {
-          Command command = new UpdateTypeReferenceCommand(concreteComponent, td);
-          command.setLabel(Messages._UI_ACTION_SET_TYPE);
-          command.execute();
-        }  
-      }  
-      else
-      {  
-        Command command = new UpdateTypeReferenceAndManageDirectivesCommand(concreteComponent, component.getName(), component.getQualifier(), component.getFile());
-        command.setLabel(Messages._UI_ACTION_SET_TYPE);
-        command.execute();
-      }  
-    }  
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/Dot.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/Dot.gif
deleted file mode 100644
index 210bb24..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/Dot.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GenerateDtd.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GenerateDtd.gif
deleted file mode 100644
index ac58c1e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GenerateDtd.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GenerateJava.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GenerateJava.gif
deleted file mode 100644
index 2375c65..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GenerateJava.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GraphViewElementRef.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GraphViewElementRef.gif
deleted file mode 100644
index d535dac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/GraphViewElementRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/NewXSD.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/NewXSD.gif
deleted file mode 100644
index 47f6730..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/NewXSD.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/RegexWizardArrow.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/RegexWizardArrow.gif
deleted file mode 100644
index 3d550a3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/RegexWizardArrow.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/TriangleToolBar.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/TriangleToolBar.gif
deleted file mode 100644
index bd37eb5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/TriangleToolBar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/ValidateXSD.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/ValidateXSD.gif
deleted file mode 100644
index 2b347ac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/ValidateXSD.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAll.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAll.gif
deleted file mode 100644
index 6d74e80..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAll.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAnnotate.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAnnotate.gif
deleted file mode 100644
index d2108c0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAnnotate.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAny.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAny.gif
deleted file mode 100644
index a39f93c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAny.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAnyAttribute.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAnyAttribute.gif
deleted file mode 100644
index 5280cc2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAnyAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAppInfo.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAppInfo.gif
deleted file mode 100644
index 2da001e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAppInfo.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttribute.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttribute.gif
deleted file mode 100644
index 79d49d0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeGroup.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeGroup.gif
deleted file mode 100644
index 648462f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeGroup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeGroupRef.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeGroupRef.gif
deleted file mode 100644
index a89fa8f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeGroupRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeRef.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeRef.gif
deleted file mode 100644
index 8365af2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDAttributeRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDChoice.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDChoice.gif
deleted file mode 100644
index 89ba825..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDChoice.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDComplexContent.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDComplexContent.gif
deleted file mode 100644
index 41c68dd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDComplexContent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDComplexType.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDComplexType.gif
deleted file mode 100644
index 007f852..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDComplexType.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDDateAndTimeTypes.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDDateAndTimeTypes.gif
deleted file mode 100644
index 4fc84e4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDDateAndTimeTypes.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDDoc.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDDoc.gif
deleted file mode 100644
index d349a05..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDDoc.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDElement.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDElement.gif
deleted file mode 100644
index dd45f08..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDElement.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDElementRef.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDElementRef.gif
deleted file mode 100644
index 749acfc..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDElementRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDExtension.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDExtension.gif
deleted file mode 100644
index 0cfb807..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDExtension.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDField.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDField.gif
deleted file mode 100644
index 378e43e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDField.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDFile.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDFile.gif
deleted file mode 100644
index 3900f1b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDFile.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGlobalAttribute.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGlobalAttribute.gif
deleted file mode 100644
index 79d49d0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGlobalAttribute.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGlobalElement.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGlobalElement.gif
deleted file mode 100644
index dd45f08..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGlobalElement.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGroup.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGroup.gif
deleted file mode 100644
index 555ef53..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGroup.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGroupRef.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGroupRef.gif
deleted file mode 100644
index 34a7fb3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDGroupRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDImport.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDImport.gif
deleted file mode 100644
index 9e44ce5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDImport.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDInclude.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDInclude.gif
deleted file mode 100644
index b26c527..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDInclude.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDKey.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDKey.gif
deleted file mode 100644
index 04032a9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDKey.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDKeyRef.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDKeyRef.gif
deleted file mode 100644
index ee5829d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDKeyRef.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDNotation.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDNotation.gif
deleted file mode 100644
index ce9df98..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDNotation.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDNumberTypes.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDNumberTypes.gif
deleted file mode 100644
index 7134210..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDNumberTypes.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDRedefine.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDRedefine.gif
deleted file mode 100644
index 56964c1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDRedefine.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSelector.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSelector.gif
deleted file mode 100644
index 2399a58..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSelector.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSequence.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSequence.gif
deleted file mode 100644
index 8bf3f97..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSequence.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleContent.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleContent.gif
deleted file mode 100644
index 7ef38df..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleContent.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleEnum.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleEnum.gif
deleted file mode 100644
index 11d7958..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleEnum.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleList.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleList.gif
deleted file mode 100644
index d08e78f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleList.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimplePattern.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimplePattern.gif
deleted file mode 100644
index a113cf4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimplePattern.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleRestrict.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleRestrict.gif
deleted file mode 100644
index 38bc12e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleRestrict.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleType.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleType.gif
deleted file mode 100644
index 75f33c2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleType.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleTypeForEditPart.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleTypeForEditPart.gif
deleted file mode 100644
index 9aefeb2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleTypeForEditPart.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleUnion.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleUnion.gif
deleted file mode 100644
index 292adaf..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDSimpleUnion.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDUnique.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDUnique.gif
deleted file mode 100644
index 5a8a650..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/XSDUnique.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/appinfo_browse.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/appinfo_browse.gif
deleted file mode 100644
index 85f9baa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/appinfo_browse.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/appinfo_category.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/appinfo_category.gif
deleted file mode 100644
index 9e665d5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/appinfo_category.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/back.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/back.gif
deleted file mode 100644
index 24d1a27..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/back.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/browsebutton.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/browsebutton.gif
deleted file mode 100644
index 13dae59..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/browsebutton.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/error_st_obj.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/error_st_obj.gif
deleted file mode 100644
index 0bc6068..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/error_st_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/forward.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/forward.gif
deleted file mode 100644
index eab699e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/forward.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/generate_xml.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/generate_xml.gif
deleted file mode 100644
index f2e3635..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/generate_xml.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/quickassist.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/quickassist.gif
deleted file mode 100644
index 94ae2a0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/quickassist.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/regx_wiz.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/regx_wiz.gif
deleted file mode 100644
index 789d137..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/regx_wiz.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/reloadgrammar.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/reloadgrammar.gif
deleted file mode 100644
index c705db0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/reloadgrammar.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/sort.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/sort.gif
deleted file mode 100644
index 3c65dc4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/sort.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/xmlcatalog_obj.gif b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/xmlcatalog_obj.gif
deleted file mode 100644
index a61441f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/icons/xmlcatalog_obj.gif
+++ /dev/null
Binary files differ
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/messages.properties b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/messages.properties
deleted file mode 100644
index dcdc5a5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/messages.properties
+++ /dev/null
@@ -1,113 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 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
-###############################################################################
-
-UI_LABEL_BASE_TYPE = Base Type:
-UI_LABEL_DERIVED_BY = Derived By:
-
-UI_LABEL_INHERIT_FROM = Inherit From:
-UI_LABEL_INHERIT_BY = Inherit By:
-
-UI_LABEL_DOCUMENTATION = Documentation
-UI_LABEL_APP_INFO = App Info
-
-UI_LABEL_SET_TYPE = Set Type
-UI_LABEL_TYPE = Type:
-
-UI_LABEL_NAME = Name:
-
-UI_LABEL_KIND = Kind:
-
-UI_LABEL_MINOCCURS = Minimum Occurrence:
-UI_LABEL_MAXOCCURS = Maximum Occurrence:
-
-UI_PAGE_HEADING_REFERENCE = Reference
-UI_LABEL_READ_ONLY = Read-Only
-
-UI_NO_TYPE = No Type
-
-UI_LABEL_COMPONENTS				= Components:
-
-! 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
-_UI_GRAPH_GROUPS               = Groups
-
-_UI_LABEL_NO_LOCATION_SPECIFIED  = No Location Specified
-_UI_ACTION_SET_MULTIPLICITY		 = Set Multiplicity
-_UI_LABEL_ABSENT               = absent
-_UI_GRAPH_UNKNOWN_OBJECT       = Unknown object
-_UI_GRAPH_XSDSCHEMA_NO_NAMESPACE = (no target namespace specified)
-_UI_GRAPH_XSDSCHEMA            = Schema
-_UI_MENU_XSD_EDITOR                 = &XSD
-_UI_LABEL_SET_TYPE				    = Set Type
-
-!
-! 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_TEXT_XSD_DEFAULT_TARGET_NAMESPACE = Default Target Namespace:
-_UI_VALIDATING_FILES                  = Validating files
-_UI_TEXT_HONOUR_ALL_SCHEMA_LOCATIONS  = Honour all schema locations 
-
-_ERROR_LABEL_INVALID_PREFIX     = IWAX1004E Invalid prefix. A prefix must not be empty or contain any space.
-
-_UI_NO_TYPE_DEFINED=(no type defined)
-_UI_ACTION_UPDATE_NAME=Update Name
-_UI_ACTION_UPDATE_ELEMENT_REFERENCE=Update Element reference
-_UI_ACTION_ADD_FIELD=Add Field
-_UI_ACTION_ADD_ELEMENT=Add Element
-_UI_ACTION_ADD_INCLUDE=Add Include
-_UI_ACTION_ADD_IMPORT=Add Import
-_UI_ACTION_ADD_REDEFINE=Add Redefine
-_UI_ACTION_ADD_ELEMENT_REF=Add Element Ref
-_UI_ACTION_ADD_COMPLEX_TYPE=Add Complex Type
-_UI_ACTION_ADD_SIMPLE_TYPE=Add Simple Type
-_UI_ACTION_SET_TYPE=Set Type
-_UI_ACTION_ADD_ATTRIBUTE_REF=Add Attribute Ref
-_UI_ACTION_NEW=New...
-_UI_ACTION_BROWSE=Browse...
-
-_UI_LABEL_OPTIONAL=Optional
-_UI_LABEL_ZERO_OR_MORE=Zero or more
-_UI_LABEL_ONE_OR_MORE=One or more
-_UI_LABEL_LOCAL_TYPE=local type
-_UI_LABEL_REQUIRED=Required
-_UI_LABEL_ARRAY=array
-
-_UI_LABEL_SET_COMMON_BUILT_IN_TYPES=Set common Built-In types
-_UI_LABEL_SELECT_TYPES_FILTER_OUT=Select the types that you do not want to filter out: 
-_UI_LABEL_NAME_SEARCH_FILTER_TEXT=Name (? = any character, * = any string):
-_UI_LABEL_SET_ELEMENT_REFERENCE=Set element reference
-
-_UI_LABEL_NEW_TYPE=New Type
-_UI_LABEL_NEW_ELEMENT=New Element
-_UI_LABEL_COMPLEX_TYPE=Complex Type
-_UI_LABEL_TARGET_NAMESPACE=Target Namespace: 
-_UI_LABEL_NO_NAMESPACE=No Namespace
-_UI_LABEL_ELEMENTS_COLON=Elements:
-_UI_LABEL_SIMPLE_TYPE=Simple Type
-_UI_LABEL_TYPES_COLON=Types:
-
-_UI_LABEL_SOURCE=Source
-
-_UI_LABEL_ELEMENTFORMDEFAULT=Prefix qualification of local elements:
-_UI_LABEL_ATTRIBUTEFORMDEFAULT=Prefix qualification of attributes:
-_UI_LABEL_CREATE_ANON_TYPE=Create as local anonymous type
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/IXSDTypesFilter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/IXSDTypesFilter.java
deleted file mode 100644
index 4e3c62a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/IXSDTypesFilter.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor.search;
-
-public interface IXSDTypesFilter {	
-	/**
-	 * Give me an Object o, if I know it and it should be filtered out, I will 
-	 * return true. Otherwise I'll return false, even if I don't know the object 
-	 * @param o
-	 * @return
-	 */
-	public boolean shouldFilterOut(Object o);
-	
-	public void turnOn();
-	public void turnOff();
-	public boolean isOn();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDComponentDescriptionProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDComponentDescriptionProvider.java
deleted file mode 100644
index aa9a034..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDComponentDescriptionProvider.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class XSDComponentDescriptionProvider extends LabelProvider implements IComponentDescriptionProvider
-{
-  public boolean isApplicable(Object component)
-  {
-    // TODO (cs) if this provider is used in a multi language context
-    // we'll need to provide some logic here
-    return true;
-  }
-
-  private static final Image SIMPLE_TYPE_IMAGE =  XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif");
-  private static final Image COMPLEX_TYPE_IMAGE = XSDEditorPlugin.getXSDImage("icons/XSDComplexType.gif");
-  private static final Image ELEMENT_IMAGE = XSDEditorPlugin.getXSDImage("icons/XSDElement.gif");
-  //private final static Image BUILT_IN_TYPE)IMAGE = 
-    
-  public String getQualifier(Object component)
-  {
-    String result = null;
-    if (component instanceof ComponentSpecification)
-    {
-      result = ((ComponentSpecification)component).getQualifier();
-    }  
-    else if (component instanceof XSDNamedComponent)
-    {
-      result = ((XSDNamedComponent)component).getTargetNamespace(); 
-    }  
-    else if (component instanceof SearchMatch)
-    {
-      QualifiedName qualifiedName = getQualifiedNameForSearchMatch((SearchMatch)component);
-      if (qualifiedName != null)
-      {  
-        result = qualifiedName.getNamespace();
-      }    
-    }  
-    return result;
-  }
-  
-  // TODO... this will be much easier with Hiroshi's proposed SearchMatch changes
-  //
-  private QualifiedName getQualifiedNameForSearchMatch(SearchMatch match)
-  {
-    QualifiedName qualifiedName = null;
-    Object o = match.map.get("name");
-    if (o != null && o instanceof QualifiedName)
-    {  
-      qualifiedName = (QualifiedName)o;
-    }      
-    return qualifiedName;
-  }
-
-  public String getName(Object component)
-  {
-    String result = null;
-    if (component instanceof ComponentSpecification)
-    {
-      result = ((ComponentSpecification)component).getName();
-    }  
-    else if (component instanceof XSDNamedComponent)
-    {
-      result = ((XSDNamedComponent)component).getName(); 
-    }  
-    else if (component instanceof SearchMatch)
-    {
-      QualifiedName qualifiedName = getQualifiedNameForSearchMatch((SearchMatch)component);
-      if (qualifiedName != null)
-      {  
-        result = qualifiedName.getLocalName();
-      }    
-    }      
-    return result;
-  }
-
-  public IFile getFile(Object component)
-  {
-    IFile result = null;
-    if (component instanceof ComponentSpecification)
-    {
-      result = ((ComponentSpecification)component).getFile();
-    }  
-    else if (component instanceof SearchMatch)
-    {
-      result = ((SearchMatch)component).getFile();
-    }  
-    else if (component instanceof XSDConcreteComponent)
-    {
-      XSDConcreteComponent concreteComponent = (XSDConcreteComponent)component;
-      XSDSchema schema = concreteComponent.getSchema();
-      if (schema != null)
-      {
-        // TODO (cs) revisit and test more
-        //
-        String location = schema.getSchemaLocation();
-        String platformResource = "platform:/resource";
-        if (location != null && location.startsWith(platformResource))
-        {
-          Path path = new Path(location.substring(platformResource.length()));
-          result = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-        }  
-      }  
-    }
-    return result;
-  }
-
-  public ILabelProvider getLabelProvider()
-  {
-    return this;
-  }
-  
-  public String getText(Object element)
-  {
-    String result = "";
-    String name = getName(element);
-    if (name != null)
-    {
-      result += name;
-      /*
-      String qualifier = getQualifier(element);
-      if (qualifier != null)
-      {
-        result += " - " + qualifier;
-      }  
-      IFile file = getFile(element);
-      if (file != null)
-      {
-        result += "  (" + file.getProject().getName() + ")";
-      }*/ 
-    }
-    return result;
-  } 
-  
-  public Image getImage(Object component)
-  {
-    Image result = null; 
-    if (component instanceof SearchMatch)
-    {
-      SearchMatch searchMatch = (SearchMatch)component;
-      QualifiedName qualifiedName = (QualifiedName)searchMatch.map.get("metaName");
-      if ( qualifiedName != null ){
-    	  if ( qualifiedName.equals(IXSDSearchConstants.SIMPLE_TYPE_META_NAME))
-    		  result = SIMPLE_TYPE_IMAGE;
-    	  else if ( qualifiedName.equals(IXSDSearchConstants.COMPLEX_TYPE_META_NAME))
-    		  result = COMPLEX_TYPE_IMAGE;
-    	  else if ( qualifiedName.equals(IXSDSearchConstants.ELEMENT_META_NAME))
-    		  result = ELEMENT_IMAGE;
-      }
-    }      
-    else if (component instanceof XSDComplexTypeDefinition)
-      result = COMPLEX_TYPE_IMAGE;      
-    else if (component instanceof XSDSimpleTypeDefinition)
-      result = SIMPLE_TYPE_IMAGE;
-    else if (component instanceof XSDElementDeclaration)
-      result = ELEMENT_IMAGE;
-    return result;
-  }
-
-  public Image getFileIcon(Object component) {
-	return XSDEditorPlugin.getXSDImage("icons/XSDFile.gif");
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDElementsSearchListProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDElementsSearchListProvider.java
deleted file mode 100644
index 337fa15..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDElementsSearchListProvider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.editor.search;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.core.search.SearchEngine;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentList;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDSchema;
-
-public class XSDElementsSearchListProvider extends XSDSearchListProvider
-{
-  public XSDElementsSearchListProvider(IFile currentFile, XSDSchema[] schemas)
-  {
-    super(currentFile, schemas);
-  }
-
-  public void populateComponentList(IComponentList list, SearchScope scope, IProgressMonitor pm)
-  {
-    // now we traverse the types already defined within the visible schemas
-    // we do this in addition to the component search since this should execute
-    // very quickly and there's a good chance the user wants to select a time that's 
-    // already imported/included
-    // TODO (cs) ensure we don't add duplicates when we proceed to use the search list
-    //
-    List visitedSchemas = new ArrayList();
-    for (int i = 0; i < schemas.length; i++)
-    {
-      XSDSchema schema = schemas[i];
-      ComponentCollectingXSDVisitor visitor = new ComponentCollectingXSDVisitor(list, IXSDSearchConstants.ELEMENT_META_NAME);
-      visitor.visitSchema(schema, true);
-      visitedSchemas.addAll(visitor.getVisitedSchemas());
-    }
-    // finally we call the search API's to do a potentially slow search
-    if (scope != null)
-    {
-      populateComponentListUsingSearch(list, scope, pm, createFileMap(visitedSchemas));
-    }
-  }
-
-  private void populateComponentListUsingSearch(IComponentList list, SearchScope scope, IProgressMonitor pm, HashMap files)
-  {
-    SearchEngine searchEngine = new SearchEngine();
-    InternalSearchRequestor requestor = new InternalSearchRequestor(list, files);
-    findMatches(searchEngine, requestor, scope, IXSDSearchConstants.ELEMENT_META_NAME);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDSearchListDialogDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDSearchListDialogDelegate.java
deleted file mode 100644
index 8bbc6ab..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDSearchListDialogDelegate.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSearchListDialogConfiguration;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ScopedComponentSearchListDialog;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDSearchListDialogDelegate implements IComponentDialog
-{
-  public final static QualifiedName TYPE_META_NAME = new QualifiedName(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "type"); //$NON-NLS-1$
-  public final static QualifiedName ELEMENT_META_NAME = new QualifiedName(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "element"); //$NON-NLS-1$
-  // protected Object setObject;
-  protected ComponentSpecification selection;
-  protected IFile currentFile;
-  protected XSDSchema[] schemas;
-  protected QualifiedName metaName;
-  protected boolean showComplexTypes = true;
-
-  public XSDSearchListDialogDelegate(QualifiedName metaName, IFile currentFile, XSDSchema[] schemas)
-  {
-    super();
-    this.metaName = metaName;
-    this.currentFile = currentFile;
-    this.schemas = schemas;
-  }
-
-  public ComponentSpecification getSelectedComponent()
-  {
-    return selection;
-  }
-
-  public void setInitialSelection(ComponentSpecification componentSpecification)
-  {
-    // TODO Auto-generated method stub   
-  }
-  
-  /** 
-   * Whether to show complex types in the Dialog's List, has no effect if the
-   * dialog populates list of elements instead of type
-   * @param value
-   */
-  public void showComplexTypes(boolean value)
-  {
-    showComplexTypes = value;
-  }
-  
-  public int createAndOpen()
-  {
-    Shell shell = XSDEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();
-    int returnValue = Window.CANCEL;
-    ScopedComponentSearchListDialog dialog = null;
-    
-    // TODO (cs) lot's of code is common to both these blocks.  Can we re-org it a bit
-    // so it's easier to see the difference between how we config for an element vs type?
-    if ( metaName == ELEMENT_META_NAME)
-    {
-    	XSDComponentDescriptionProvider descriptionProvider = new XSDComponentDescriptionProvider();
-    	final XSDElementsSearchListProvider searchListProvider = new XSDElementsSearchListProvider(currentFile, schemas);
-    	ComponentSearchListDialogConfiguration configuration = new ComponentSearchListDialogConfiguration();
-    	
-        configuration.setDescriptionProvider(descriptionProvider);
-        configuration.setSearchListProvider(searchListProvider);
-        configuration.setFilterLabelText(Messages._UI_LABEL_NAME_SEARCH_FILTER_TEXT);
-        configuration.setListLabelText(Messages._UI_LABEL_ELEMENTS_COLON);
-//        configuration.setNewComponentHandler(new NewElementButtonHandler());
-        //TODO externalize string
-        dialog = new ScopedComponentSearchListDialog(shell, Messages._UI_LABEL_SET_ELEMENT_REFERENCE, configuration);     
-    }
-    else if (metaName == TYPE_META_NAME)
-    {
-      XSDComponentDescriptionProvider descriptionProvider = new XSDComponentDescriptionProvider();
-      final XSDTypesSearchListProvider searchListProvider = new XSDTypesSearchListProvider(currentFile, schemas);
-      if (!showComplexTypes)
-        searchListProvider.showComplexTypes(false);
-     
-      ComponentSearchListDialogConfiguration configuration = new ComponentSearchListDialogConfiguration();
-      configuration.setDescriptionProvider(descriptionProvider);
-      configuration.setSearchListProvider(searchListProvider);
-//      configuration.setNewComponentHandler(new NewTypeButtonHandler());
-      configuration.setFilterLabelText(Messages._UI_LABEL_NAME_SEARCH_FILTER_TEXT);
-      configuration.setListLabelText(Messages._UI_LABEL_TYPES_COLON);
-      dialog = new ScopedComponentSearchListDialog(shell, Messages._UI_LABEL_SET_TYPE, configuration); //$NON-NLS-1$
-    }
-    
-    if (dialog != null)
-    {
-      dialog.setCurrentResource(currentFile);      
-      dialog.setBlockOnOpen(true);
-      dialog.create();
-      returnValue = dialog.open();
-      if (returnValue == Window.OK)
-      {
-        selection = dialog.getSelectedComponent();
-      }
-    }
-    return returnValue;
-  }
-
-//  private IEditorPart getActiveEditor()
-//  {
-//    IWorkbench workbench = PlatformUI.getWorkbench();
-//    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-//    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-//    return editorPart;
-//  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDSearchListProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDSearchListProvider.java
deleted file mode 100644
index bcb1eb2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDSearchListProvider.java
+++ /dev/null
@@ -1,234 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.editor.search;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.common.core.search.SearchEngine;
-import org.eclipse.wst.common.core.search.SearchMatch;
-import org.eclipse.wst.common.core.search.SearchParticipant;
-import org.eclipse.wst.common.core.search.SearchPlugin;
-import org.eclipse.wst.common.core.search.SearchRequestor;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentList;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentSearchListProvider;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentDeclarationPattern;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaContent;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-
-public abstract class XSDSearchListProvider implements IComponentSearchListProvider
-{
-  protected XSDSchema[] schemas;
-  protected IFile currentFile;
-  // TODO (cs) remove these and use proper search scopes!
-  //
-  public static final int ENCLOSING_PROJECT_SCOPE = 0;
-  public static final int ENTIRE_WORKSPACE_SCOPE = 1;
-
-  public XSDSearchListProvider(IFile currentFile, XSDSchema[] schemas)
-  {
-    this.schemas = schemas;
-    this.currentFile = currentFile;
-    
-    try
-    {
-      IProject[] refs = currentFile.getProject().getReferencedProjects();
-      
-      System.out.println("dependencies:----");       
-      for (int i=0; i < refs.length; i++)
-      {
-        System.out.println("dep " + refs[i].getName());
-      }  
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    } 
-    
-  }
-   
-  
-  class ComponentCollectingXSDVisitor
-  {
-    protected List visitedSchemas = new ArrayList();
-    IComponentList list;
-    QualifiedName searchKind;
-    
-    ComponentCollectingXSDVisitor(IComponentList list, QualifiedName searchKind)
-    {
-      this.list = list;
-      this.searchKind = searchKind;
-    }
-
-    public void visitSchema(XSDSchema schema, boolean visitImportedSchema)
-    {
-      visitedSchemas.add(schema);
-      for (Iterator contents = schema.getContents().iterator(); contents.hasNext();)
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDSchemaDirective)
-        {
-          XSDSchemaDirective schemaDirective = (XSDSchemaDirective) content;
-          XSDSchema extSchema = schemaDirective.getResolvedSchema();
-          if (extSchema != null && !visitedSchemas.contains(extSchema))
-          {
-            if (schemaDirective instanceof XSDImport && visitImportedSchema)
-            {
-              visitSchema(extSchema, false);
-            }
-            else if (schemaDirective instanceof XSDInclude || schemaDirective instanceof XSDRedefine)
-            {
-            	visitSchema(extSchema, false);
-            }
-          }
-        }
-        else if (content instanceof XSDElementDeclaration && searchKind == IXSDSearchConstants.ELEMENT_META_NAME)
-        {
-          list.add(content);
-        }
-        else if (content instanceof XSDSimpleTypeDefinition && searchKind == IXSDSearchConstants.SIMPLE_TYPE_META_NAME)
-        {
-          // in this case we only want to show simple types
-          list.add(content);               
-        }
-        else if (content instanceof XSDTypeDefinition && searchKind == IXSDSearchConstants.TYPE_META_NAME)
-        {     
-          // in this case we want to show all types
-          list.add(content);
-        }        
-      }
-    }
-
-    public List getVisitedSchemas()
-    {
-      return visitedSchemas;
-    }
-  }
-   
-  
-  class InternalSearchRequestor extends SearchRequestor
-  {
-    IComponentList componentList;
-    HashMap files;
-
-    InternalSearchRequestor(IComponentList componentList, HashMap files)
-    {
-      this.componentList = componentList;
-      this.files = files;
-    }
-
-    public void acceptSearchMatch(SearchMatch match) throws CoreException
-    {
-      // we filter out the matches from the current file since we assume the
-      // info derived from our schema models is more update to date
-      // (in the event that we haven't saved our latest modifications)
-      //
-      if (files.get(match.getFile()) == null)
-      {  
-        // TODO... this ugly qualified name stashing will go away soon
-        //
-        QualifiedName qualifiedName = null;
-        Object o = match.map.get("name");
-        if (o != null && o instanceof QualifiedName)
-        {  
-          qualifiedName = (QualifiedName)o;
-        } 
-        if (qualifiedName != null && qualifiedName.getLocalName() != null)
-        {  
-          componentList.add(match);
-        }
-      }  
-    }
-  }  
-
-  protected void findMatches(SearchEngine searchEngine, SearchRequestor requestor, SearchScope scope, QualifiedName metaName)
-  {
-    try
-    {
-      XMLComponentDeclarationPattern pattern = new XMLComponentDeclarationPattern(new QualifiedName("*", "*"), metaName, SearchPattern.R_PATTERN_MATCH);
-      // TODO (cs) revist this... we shouldn't be needing to hard-code partipant id's
-      // All we're really doing here is trying to avoid finding matches in
-      // wsdl's since we don't  ever want to import/include a wsdl from a schema! 
-      // Maybe we should just scope out any file types that aren't xsd's using a 
-      // custom SearchScope?
-      //
-      SearchParticipant particpant = SearchPlugin.getDefault().getSearchParticipant("org.eclipse.wst.xsd.search.XSDSearchParticipant");
-      Assert.isNotNull(particpant);
-      SearchParticipant[] participants = {particpant};
-      searchEngine.search(pattern, requestor, participants, scope, null, new NullProgressMonitor());
-    }
-    catch (CoreException e)
-    {
-      e.printStackTrace();
-    }
-  }
-  
-  
-  protected HashMap createFileMap(List visitedSchemas)
-  {
-    HashMap fileMap = new HashMap();
-    for (Iterator i = visitedSchemas.iterator(); i.hasNext(); )
-    {
-      XSDSchema theSchema = (XSDSchema)i.next();
-      String location = theSchema.getSchemaLocation();       
-      IFile file = computeFile(location);
-      if (file != null)
-      {
-        fileMap.put(file, Boolean.TRUE);
-      }       
-    }   
-    return fileMap;
-  }
-  
-  private IFile computeFile(String baseLocation)
-  {
-    IFile file = null;
-    if (baseLocation != null)
-    {
-      String fileScheme = "file:"; //$NON-NLS-1$
-      String platformResourceScheme = "platform:/resource";
-      if (baseLocation.startsWith(fileScheme))
-      {
-        baseLocation = baseLocation.substring(fileScheme.length());
-        baseLocation = removeLeading(baseLocation, "/");
-        IPath path = new Path(baseLocation);
-        file = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);
-      }
-      else if (baseLocation.startsWith(platformResourceScheme))
-      {
-        baseLocation = baseLocation.substring(platformResourceScheme.length());
-        baseLocation = removeLeading(baseLocation, "/");
-        IPath path = new Path(baseLocation);
-        file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-      }    
-    }
-    return file;    
-  }  
-  
-  private String removeLeading(String path, String pattern)
-  {
-    while (path.startsWith(pattern))
-    {
-      path = path.substring(pattern.length());
-    }  
-    return path;
-  }    
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDTypesSearchListProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDTypesSearchListProvider.java
deleted file mode 100644
index 9d80fae..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/editor/search/XSDTypesSearchListProvider.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.editor.search;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.wst.common.core.search.SearchEngine;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentList;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.impl.XSDSchemaImpl;
-import org.eclipse.xsd.util.XSDConstants;
-public class XSDTypesSearchListProvider extends XSDSearchListProvider
-{
-  protected IXSDTypesFilter builtInFilter;
-  /**
-   * Determines if we should use the filter This us used to turn the filter on
-   * and off
-   */
-  protected boolean supportFilter = true;
-  private boolean showComplexTypes = true;
-
-  public XSDTypesSearchListProvider(IFile currentFile, XSDSchema[] schemas)
-  {
-    super(currentFile, schemas);
-  }
-
-  public void populateComponentList(IComponentList list, SearchScope scope, IProgressMonitor pm)
-  {
-    // first we add the 'built in' types
-    //
-    XSDSchema schemaForSchema = XSDSchemaImpl.getSchemaForSchema(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
-    for (Iterator i = schemaForSchema.getSimpleTypeIdMap().values().iterator(); i.hasNext();)
-    {
-      XSDTypeDefinition td = (XSDTypeDefinition) i.next();
-      if (builtInFilter == null || !builtInFilter.shouldFilterOut(td))
-      {
-        list.add(td);
-      }
-    }
-    // now we traverse the types already defined within the visible schemas
-    // we do this in addition to the component search since this should execute
-    // very quickly and there's a good chance the user wants to select a time
-    // that's
-    // already imported/included
-    // TODO (cs) ensure we don't add duplicates when we proceed to use the
-    // search list
-    //
-    List visitedSchemas = new ArrayList();
-    for (int i = 0; i < schemas.length; i++)
-    {
-      XSDSchema schema = schemas[i];
-      QualifiedName kind = showComplexTypes ? IXSDSearchConstants.TYPE_META_NAME : IXSDSearchConstants.SIMPLE_TYPE_META_NAME;
-      ComponentCollectingXSDVisitor visitor = new ComponentCollectingXSDVisitor(list, kind);
-      visitor.visitSchema(schema, true);
-      visitedSchemas.addAll(visitor.getVisitedSchemas());
-    }
-    // finally we call the search API's to do a potentially slow search
-    //   
-    if (scope != null)
-    {
-      populateComponentListUsingSearch(list, scope, pm, createFileMap(visitedSchemas));
-    }
-  }
-
-  private void populateComponentListUsingSearch(IComponentList list, SearchScope scope, IProgressMonitor pm, HashMap files)
-  {
-    SearchEngine searchEngine = new SearchEngine();
-    InternalSearchRequestor requestor = new InternalSearchRequestor(list, files);
-    if (showComplexTypes)
-    {
-      findMatches(searchEngine, requestor, scope, IXSDSearchConstants.COMPLEX_TYPE_META_NAME);
-    }
-    findMatches(searchEngine, requestor, scope, IXSDSearchConstants.SIMPLE_TYPE_META_NAME);
-  }
-
-
-  public void _populateComponentListQuick(IComponentList list, IProgressMonitor pm)
-  {
-  }
-
-  public void turnBuiltInFilterOn(boolean option)
-  {
-    supportFilter = option;
-  }
-
-  public void setBuiltInFilter(IXSDTypesFilter filter)
-  {
-    this.builtInFilter = filter;
-  }
-
-  public void showComplexTypes(boolean show)
-  {
-    showComplexTypes = show;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/DesignViewNavigationLocation.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/DesignViewNavigationLocation.java
deleted file mode 100644
index 199c153..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/DesignViewNavigationLocation.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.navigation;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.INavigationLocation;
-import org.eclipse.ui.NavigationLocation;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDVisitor;
-import org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewGraphicalViewer;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import com.ibm.icu.util.StringTokenizer;
-
-/**
- * This class exists to support navigation in a context where there is no text 
- * editor page.  In these cases we can't rely on the TextSelectionNavigationLocations
- * so we this class which is designed to work with just the design view.
- */
-public class DesignViewNavigationLocation extends NavigationLocation
-{
-  protected Path path;
-
-  public DesignViewNavigationLocation(IEditorPart part)
-  {
-    super(part);
-    this.path = new Path();
-  }
-  
-  public DesignViewNavigationLocation(IEditorPart part, XSDConcreteComponent component)
-  {
-    super(part);   
-    this.path = Path.computePath(component);  
-  }
-
-  public boolean mergeInto(INavigationLocation currentLocation)
-  {
-    boolean result = false;
-    if (currentLocation instanceof DesignViewNavigationLocation)
-    {
-      DesignViewNavigationLocation loc = (DesignViewNavigationLocation) currentLocation;
-      result = loc.path.toString().equals(path.toString());
-    }
-    else
-    {
-    }
-    return result;
-  }
-
-  public void restoreLocation()
-  {
-    XSDSchema schema = (XSDSchema) getEditorPart().getAdapter(XSDSchema.class);
-    Object viewer = getEditorPart().getAdapter(GraphicalViewer.class);
-    if (viewer instanceof DesignViewGraphicalViewer)
-    {
-      DesignViewGraphicalViewer graphicalViewer = (DesignViewGraphicalViewer) viewer;
-      XSDConcreteComponent component = Path.computeComponent(schema, path);
-      if (component != null)
-      {
-        Adapter adapter = XSDAdapterFactory.getInstance().adapt(component);
-        if (adapter instanceof IADTObject)
-        {
-          graphicalViewer.setInput((IADTObject)adapter);
-        }
-      }
-      else if (path.segments.isEmpty())
-      {
-        Adapter adapter = XSDAdapterFactory.getInstance().adapt(schema);
-        if (adapter instanceof IADTObject)
-        {
-          graphicalViewer.setInput((IADTObject)adapter);
-        }
-      }
-    }   
-  }
-
-  public void restoreState(IMemento memento)
-  {
-    String string = memento.getString("path");
-    path = Path.createPath(string);
-  }
-
-  public void saveState(IMemento memento)
-  {
-    memento.putString("path", path.toString());
-  }
-
-  public void update()
-  {
-    // TODO (cs) not sure what needs to be done here
-  }
-  static class PathSegment
-  {
-    final static int ELEMENT = 1;
-    final static int TYPE = 2;
-    int kind;
-    String name;
-
-    PathSegment()
-    {
-    }
-
-    PathSegment(int kind, String name)
-    {
-      this.kind = kind;
-      this.name = name;
-    }
-  }
-  static class Path
-  {
-    List segments = new ArrayList();
-
-    static XSDConcreteComponent computeComponent(XSDSchema schema, Path path)
-    {
-      PathResolvingXSDVisitor visitor = new PathResolvingXSDVisitor(path);
-      visitor.visitSchema(schema);
-      if (visitor.isDone())
-      {
-        return visitor.result;
-      }
-      return null;
-    }
-
-    static Path createPath(String string)
-    {
-      Path path = new Path();
-      PathSegment segment = null;
-      for (StringTokenizer st = new StringTokenizer(string, "/"); st.hasMoreTokens();)
-      {
-        String token = st.nextToken();
-        int kind = -1;
-        if (token.equals("element"))
-        {
-          kind = PathSegment.ELEMENT;
-        }
-        else if (token.equals("type"))
-        {
-          kind = PathSegment.TYPE;
-        }
-        if (kind != -1)
-        {
-          segment = new PathSegment();
-          segment.kind = kind;
-          path.segments.add(segment);
-          String namePattern = "[@name='";
-          int startIndex = token.indexOf(namePattern);
-          if (startIndex != -1)
-          {
-            startIndex += namePattern.length();
-            int endIndex = token.indexOf("']");
-            if (endIndex != -1)
-            {
-              segment.name = token.substring(startIndex, endIndex);
-            }
-          }
-        }
-      }
-      return path;
-    }
-
-    static Path computePath(XSDConcreteComponent component)
-    {
-      Path path = new Path();
-      for (EObject c = component; c != null; c = c.eContainer())
-      {
-        if (c instanceof XSDConcreteComponent)
-        {
-          PathSegment segment = computePathSegment((XSDConcreteComponent) c);
-          if (segment != null)
-          {
-            path.segments.add(0, segment);
-          }
-        }
-      }
-      return path;
-    }
-
-    static PathSegment computePathSegment(XSDConcreteComponent c)
-    {
-      if (c instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration ed = (XSDElementDeclaration) c;
-        return new PathSegment(PathSegment.ELEMENT, ed.getResolvedElementDeclaration().getName());
-      }
-      else if (c instanceof XSDTypeDefinition)
-      {
-        XSDTypeDefinition td = (XSDTypeDefinition) c;
-        return new PathSegment(PathSegment.TYPE, td.getName());
-      }
-      return null;
-    }
-
-    public String toString()
-    {
-      StringBuffer b = new StringBuffer();
-      for (Iterator i = segments.iterator(); i.hasNext();)
-      {
-        PathSegment segment = (PathSegment) i.next();
-        String kind = "";
-        if (segment.kind == PathSegment.ELEMENT)
-        {
-          kind = "element";
-        }
-        else if (segment.kind == PathSegment.TYPE)
-        {
-          kind = "type";
-        }
-        b.append(kind);
-        if (segment.name != null)
-        {
-          b.append("[@name='" + segment.name + "']");
-        }
-        if (i.hasNext())
-        {
-          b.append("/");
-        }
-      }
-      return b.toString();
-    }
-  }
-  
-  
-  static class PathResolvingXSDVisitor extends XSDVisitor
-  {
-    Path path;
-    int index = -1;
-    PathSegment segment;
-    XSDConcreteComponent result = null;
-
-    PathResolvingXSDVisitor(Path path)
-    {
-      this.path = path;
-      incrementSegment();
-    }
-
-    boolean isDone()
-    {
-      return index >= path.segments.size();
-    }
-
-    void incrementSegment()
-    {
-      index++;
-      if (index < path.segments.size())
-      {
-        segment = (PathSegment) path.segments.get(index);
-      }
-      else
-      {
-        segment = null;
-      }
-    }
-
-    public void visitSchema(XSDSchema schema)
-    {
-      if (segment != null)
-      {
-        if (segment.kind == PathSegment.ELEMENT)
-        {
-          XSDElementDeclaration ed = schema.resolveElementDeclaration(segment.name);
-          if (ed != null)
-          {
-            visitElementDeclaration(ed);
-          }
-        }
-        else if (segment.kind == PathSegment.TYPE)
-        {
-          XSDTypeDefinition td = schema.resolveTypeDefinition(segment.name);
-          if (td != null)
-          {
-            visitTypeDefinition(td);
-          }
-        }
-      }
-    }
-
-    public void visitElementDeclaration(XSDElementDeclaration element)
-    {
-      if (segment != null)
-      {
-        String name = element.getResolvedElementDeclaration().getName();
-        if (segment.kind == PathSegment.ELEMENT && isMatch(segment.name, name))
-        {
-          result = element;
-          incrementSegment();
-          if (!isDone())
-          {
-            super.visitElementDeclaration(element);
-          }
-        }
-      }
-    }
-
-    public void visitTypeDefinition(XSDTypeDefinition type)
-    {
-      if (segment != null)
-      {
-        String name = type.getName();
-        if (segment.kind == PathSegment.TYPE && isMatch(segment.name, name))
-        {
-          result = type;
-          incrementSegment();
-          if (!isDone())
-          {
-            super.visitTypeDefinition(type);
-          }
-        }
-      }
-    }
-
-    protected boolean isMatch(String name1, String name2)
-    {
-      return name1 != null ? name1.equals(name2) : name1 == name2;
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/MultiPageEditorTextSelectionNavigationLocation.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/MultiPageEditorTextSelectionNavigationLocation.java
deleted file mode 100644
index e0f6594..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/navigation/MultiPageEditorTextSelectionNavigationLocation.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.navigation;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.texteditor.TextSelectionNavigationLocation;
-
-/**
- * The platform's navigation history plumbing doesn't like multipage text
- * editors very much and tends to ignore text locations.  To fix this
- * problem we need to override the getEditPart() method of the super class
- * in order to return the actual TextEditor of our multi-page editor
- */
-public class MultiPageEditorTextSelectionNavigationLocation extends TextSelectionNavigationLocation
-{
-  public MultiPageEditorTextSelectionNavigationLocation(ITextEditor part, boolean initialize)
-  {
-    super(part, initialize);
-  }
-
-  protected IEditorPart getEditorPart()
-  {
-    IEditorPart part = super.getEditorPart();
-    if (part != null)
-      return (ITextEditor) part.getAdapter(ITextEditor.class);
-    return null;
-  }
-
-  public String getText()
-  {
-    // ISSUE: how to get title?
-    // IEditorPart part = getEditorPart();
-    // if (part instanceof WSDLTextEditor) {
-    // return ((WSDLTextEditor) part).getWSDLEditor().getTitle();
-    // }
-    // else {
-    // return super.getText();
-    // }
-    return super.getText();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/SchemaPrefixChangeHandler.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/SchemaPrefixChangeHandler.java
deleted file mode 100644
index 76b363a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/SchemaPrefixChangeHandler.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.nsedit;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-
-public class SchemaPrefixChangeHandler
-{
-  String newPrefix;
-  XSDSchema xsdSchema;
-
-  public SchemaPrefixChangeHandler(XSDSchema xsdSchema, String newPrefix)
-  {
-    this.xsdSchema = xsdSchema;
-    this.newPrefix= newPrefix;
-  }
-  
-  public void resolve()
-  {
-    XSDSchemaPrefixRenamer xsdSchemaPrefixRenamer = new XSDSchemaPrefixRenamer();
-    xsdSchemaPrefixRenamer.visitSchema(xsdSchema);
-  }
-
-  public String getNewQName(XSDTypeDefinition comp, String value, String newXSDPrefix)
-  {
-    String qName = null;
-    if (value != null)
-    {
-      qName = newXSDPrefix;
-      if (qName != null && qName.length() > 0)
-      {
-        qName += ":" + value;
-      }
-      else
-      {
-        qName = value; 
-      }
-    }
-    else
-    {
-      qName = value;
-    }
-    
-    return qName;
-  }
-
-  
-  class XSDSchemaPrefixRenamer extends XSDVisitor
-  {
-    public XSDSchemaPrefixRenamer()
-    {
-      super();
-    }
-    
-    public void visitElementDeclaration(XSDElementDeclaration element)
-    {
-      super.visitElementDeclaration(element);
-      XSDTypeDefinition type = element.getType();
-      if (type != null)
-      {
-        String ns = type.getTargetNamespace();
-        if (ns == null) ns = "";
-//        if (ns.equals(xsdSchema.getSchemaForSchemaNamespace()))
-        if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))        
-        {
-          Element domElement = element.getElement();
-          if (domElement != null && domElement instanceof IDOMNode)
-          {
-            Attr typeAttr = domElement.getAttributeNode(XSDConstants.TYPE_ATTRIBUTE);
-            if (typeAttr != null)
-            {
-              element.getElement().setAttribute(XSDConstants.TYPE_ATTRIBUTE, getNewQName(type, type.getName(), newPrefix));            
-            }
-          }
-        }
-      }
-    }
-    
-    public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition simpleType)
-    {
-      super.visitSimpleTypeDefinition(simpleType);
-      XSDTypeDefinition baseType = simpleType.getBaseTypeDefinition();
-      
-      if (baseType != null)
-      {
-        String ns = baseType.getTargetNamespace();
-        if (ns == null) ns = "";
-//        if (ns.equals(xsdSchema.getSchemaForSchemaNamespace()))
-        if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-        {
-          XSDDOMHelper domHelper = new XSDDOMHelper();
-          Element derivedBy = domHelper.getDerivedByElement(simpleType.getElement());
-          if (derivedBy != null && derivedBy instanceof IDOMNode)
-          {
-            Attr typeAttr = derivedBy.getAttributeNode(XSDConstants.BASE_ATTRIBUTE);
-            if (typeAttr != null)
-            {
-              derivedBy.setAttribute(XSDConstants.BASE_ATTRIBUTE, getNewQName(baseType, baseType.getName(), newPrefix));
-            }
-          }
-        }
-      }
-      
-      XSDSimpleTypeDefinition itemType = simpleType.getItemTypeDefinition();
-      if (itemType != null)
-      {
-        String ns = itemType.getTargetNamespace();
-        if (ns == null) ns = "";
-        if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-        {
-          XSDDOMHelper domHelper = new XSDDOMHelper();
-          Node listNode = domHelper.getChildNode(simpleType.getElement(), XSDConstants.LIST_ELEMENT_TAG);
-          if (listNode != null && listNode instanceof Element)
-          {
-            Element listElement = (Element)listNode;          
-            if (listElement instanceof IDOMNode)
-            {
-              Attr typeAttr = listElement.getAttributeNode(XSDConstants.ITEMTYPE_ATTRIBUTE);
-              if (typeAttr != null)
-              {
-                listElement.setAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, getNewQName(itemType, itemType.getName(), newPrefix));
-              }
-            }
-          }
-        }
-      }
-      
-      List memberTypes = simpleType.getMemberTypeDefinitions();
-      if (memberTypes.size() > 0)
-      {
-        XSDDOMHelper domHelper = new XSDDOMHelper();
-        Node unionNode = domHelper.getChildNode(simpleType.getElement(), XSDConstants.UNION_ELEMENT_TAG);
-        if (unionNode != null && unionNode instanceof Element)
-        {
-          Element unionElement = (Element)unionNode;          
-          if (unionElement instanceof IDOMNode)
-          {
-            StringBuffer sb = new StringBuffer("");
-            for (Iterator i = memberTypes.iterator(); i.hasNext(); )
-            {
-              XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)i.next();
-              String ns = st.getTargetNamespace();
-              if (ns == null) ns = "";
-              if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-              {
-                sb.append(getNewQName(st, st.getName(), newPrefix));                
-              }
-              else
-              {
-                sb.append(st.getQName(xsdSchema));
-              }
-              if (i.hasNext())
-              {
-                sb.append(" ");
-              }
-            }
-            unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, sb.toString());
-          }
-        }
-      }
-    }
-
-    public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-    {
-      super.visitAttributeDeclaration(attr);
-      XSDTypeDefinition type = attr.getType();
-      if (type != null)
-      {
-        String ns = type.getTargetNamespace();
-        if (ns == null) ns = "";
-//        if (ns.equals(xsdSchema.getSchemaForSchemaNamespace()))
-        if (ns.equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001))
-        {
-          Element domElement = attr.getElement();
-          if (domElement != null && domElement instanceof IDOMNode)
-          {
-            Attr typeAttr = domElement.getAttributeNode(XSDConstants.TYPE_ATTRIBUTE);
-            if (typeAttr != null)
-            {
-              attr.getElement().setAttribute(XSDConstants.TYPE_ATTRIBUTE, getNewQName(type, type.getName(), newPrefix));            
-            }
-          }
-        }
-      }
-    }
-  }    
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/TargetNamespaceChangeHandler.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/TargetNamespaceChangeHandler.java
deleted file mode 100644
index 9e745dd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/TargetNamespaceChangeHandler.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.nsedit;
-
-import java.util.Iterator;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-
-
-public class TargetNamespaceChangeHandler
-{
-  String newNS;
-  String oldNS;
-  XSDSchema xsdSchema;
-
-  public TargetNamespaceChangeHandler(XSDSchema xsdSchema, String oldNS, String newNS)
-  {
-    this.xsdSchema = xsdSchema;
-    this.oldNS= oldNS;
-    this.newNS= newNS;
-  }
-  
-  public void resolve()
-  {
-    ElementReferenceRenamer elementReferenceRenamer = new ElementReferenceRenamer();
-    elementReferenceRenamer.visitSchema(xsdSchema);
-    AttributeReferenceRenamer attributeReferenceRenamer = new AttributeReferenceRenamer();
-    attributeReferenceRenamer.visitSchema(xsdSchema);
-  }
-
-  class ElementReferenceRenamer extends XSDVisitor
-  {
-    public ElementReferenceRenamer()
-    {
-      super();
-    }
-    
-    public void visitElementDeclaration(XSDElementDeclaration element)
-    {
-      super.visitElementDeclaration(element);
-      if (element.isElementDeclarationReference())
-      {
-      	if (element.getResolvedElementDeclaration().getTargetNamespace() != null)
-      	{
-      	  if (element.getResolvedElementDeclaration().getTargetNamespace().equals(oldNS))
-          {
-            // set the resolved element's declaration to new ns
-            // this is defect 237518 - target namespace rename creates a new namespace
-            element.getResolvedElementDeclaration().setTargetNamespace(newNS);
-          }
-        }
-        else
-        {
-        	if (oldNS == null || (oldNS != null && oldNS.equals("")))
-        	{
-						element.getResolvedElementDeclaration().setTargetNamespace(newNS);
-        	}
-        }
-      }
-    }
-  }
-  
-  // Similar to defect 237518 but for attributes
-  class AttributeReferenceRenamer extends XSDVisitor
-  {
-    public AttributeReferenceRenamer()
-    {
-      super();
-    }
-    
-    public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-    {
-      super.visitComplexTypeDefinition(type);
-      if (type.getAttributeContents() != null)
-      {
-        for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-        {
-          XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent) iter.next();
-          if (attrGroupContent instanceof XSDAttributeUse)
-          {
-            XSDAttributeUse attrUse = (XSDAttributeUse) attrGroupContent;
-            XSDAttributeDeclaration attrDecl = attrUse.getContent();
-            
-            if (attrDecl != null && attrDecl.isAttributeDeclarationReference())
-            {
-							if (attrDecl.getResolvedAttributeDeclaration().getTargetNamespace() != null)
-							{
-                if (attrDecl.getResolvedAttributeDeclaration().getTargetNamespace().equals(oldNS))
-                {
-                  attrDecl.getResolvedAttributeDeclaration().setTargetNamespace(newNS);
-                }
-              }
-              else
-              {
-								if (oldNS == null || (oldNS != null && oldNS.equals("")))
-								{
-									attrDecl.getResolvedAttributeDeclaration().setTargetNamespace(newNS);
-								}
-              }
-            }
-          }
-        }
-      }
-    }
-  
-    public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-    {
-      super.visitAttributeGroupDefinition(attributeGroup);
-      EList list = attributeGroup.getAttributeUses();
-      if (list != null)
-      {
-        for (Iterator iter = list.iterator(); iter.hasNext(); )
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse)iter.next();
-          XSDAttributeDeclaration attrDecl = attrUse.getContent();
-
-          if (attrDecl != null && attrDecl.isAttributeDeclarationReference())
-          {
-						if (attrDecl.getResolvedAttributeDeclaration().getTargetNamespace() != null)
-						{
-              if (attrDecl.getResolvedAttributeDeclaration().getTargetNamespace().equals(oldNS))
-              {
-                attrDecl.getResolvedAttributeDeclaration().setTargetNamespace(newNS);
-              }
-            }
-            else
-            {
-							if (oldNS == null || (oldNS != null && oldNS.equals("")))
-							{
-								attrDecl.getResolvedAttributeDeclaration().setTargetNamespace(newNS);
-							}
-            }
-          }
-        }
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/XSDVisitor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/XSDVisitor.java
deleted file mode 100644
index a0e2f8b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/nsedit/XSDVisitor.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.nsedit;
-
-import java.util.Iterator;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupContent;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-
-public class XSDVisitor
-{
-  public XSDVisitor()
-  {
-  }
-  
-  protected XSDSchema schema;
-  
-  public void visitSchema(XSDSchema schema)
-  {
-    this.schema = schema;
-    for (Iterator iterator = schema.getAttributeDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeDeclaration attr = (XSDAttributeDeclaration) iterator.next();
-      visitAttributeDeclaration(attr);
-    }
-    for (Iterator iterator = schema.getTypeDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDTypeDefinition type = (XSDTypeDefinition) iterator.next();
-      visitTypeDefinition(type);
-    }
-    for (Iterator iterator = schema.getElementDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDElementDeclaration element = (XSDElementDeclaration) iterator.next();
-      visitElementDeclaration(element);
-    }
-    for (Iterator iterator = schema.getIdentityConstraintDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDIdentityConstraintDefinition identityConstraint = (XSDIdentityConstraintDefinition) iterator.next();
-      visitIdentityConstraintDefinition(identityConstraint);
-    }
-    for (Iterator iterator = schema.getModelGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDModelGroupDefinition modelGroup = (XSDModelGroupDefinition) iterator.next();
-      visitModelGroupDefinition(modelGroup);
-    }
-    for (Iterator iterator = schema.getAttributeGroupDefinitions().iterator(); iterator.hasNext();)
-    {
-      XSDAttributeGroupDefinition attributeGroup = (XSDAttributeGroupDefinition) iterator.next();
-      visitAttributeGroupDefinition(attributeGroup);
-    }
-    for (Iterator iterator = schema.getNotationDeclarations().iterator(); iterator.hasNext();)
-    {
-      XSDNotationDeclaration element = (XSDNotationDeclaration) iterator.next();
-      visitNotationDeclaration(element);
-    }
-    
-  }
-  
-  public void visitAttributeDeclaration(XSDAttributeDeclaration attr)
-  {
-  }
-  
-  public void visitTypeDefinition(XSDTypeDefinition type)
-  {
-    if (type instanceof XSDSimpleTypeDefinition)
-    {
-      visitSimpleTypeDefinition((XSDSimpleTypeDefinition)type);
-    }
-    else if (type instanceof XSDComplexTypeDefinition)
-    {
-      visitComplexTypeDefinition((XSDComplexTypeDefinition)type);
-    }
-  }
-  
-  public void visitElementDeclaration(XSDElementDeclaration element)
-  {
-    if (element.isElementDeclarationReference())
-    {
-    }
-    else if (element.getAnonymousTypeDefinition() != null)
-    {
-      visitTypeDefinition(element.getAnonymousTypeDefinition());
-    }
-  }
-  
-  public void visitIdentityConstraintDefinition(XSDIdentityConstraintDefinition identityConstraint)
-  {
-  }
-  
-  public void visitModelGroupDefinition(XSDModelGroupDefinition modelGroupDef)
-  {
-    if (!modelGroupDef.isModelGroupDefinitionReference())
-    {
-      if (modelGroupDef.getModelGroup() != null)
-      {
-        visitModelGroup(modelGroupDef.getModelGroup());
-      }
-    }
-  }
-  
-  public void visitAttributeGroupDefinition(XSDAttributeGroupDefinition attributeGroup)
-  {
-    if (attributeGroup.getAttributeUses() != null)
-    {
-      for (Iterator iter = attributeGroup.getAttributeUses().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeUse attrUse = (XSDAttributeUse)iter.next();
-        visitAttributeDeclaration(attrUse.getContent());
-      }
-    }
-  }
-  
-  public void visitNotationDeclaration(XSDNotationDeclaration notation)
-  {
-  }
-  
-  public void visitSimpleTypeDefinition(XSDSimpleTypeDefinition type)
-  {
-  }
-  
-  public void visitComplexTypeDefinition(XSDComplexTypeDefinition type)
-  {
-    if (type.getContentType() != null)
-    {
-      XSDComplexTypeContent complexContent = type.getContentType();
-      if (complexContent instanceof XSDSimpleTypeDefinition)
-      {
-        visitSimpleTypeDefinition((XSDSimpleTypeDefinition)complexContent);
-      }
-      else if (complexContent instanceof XSDParticle)
-      {
-        visitParticle((XSDParticle) complexContent);
-      }
-    }
-    
-    if (type.getAttributeContents() != null)
-    {
-      for (Iterator iter = type.getAttributeContents().iterator(); iter.hasNext(); )
-      {
-        XSDAttributeGroupContent attrGroupContent = (XSDAttributeGroupContent)iter.next();
-        if (attrGroupContent instanceof XSDAttributeUse)
-        {
-          XSDAttributeUse attrUse = (XSDAttributeUse)attrGroupContent;
-          visitAttributeDeclaration(attrUse.getContent());
-        }
-        else if (attrGroupContent instanceof XSDAttributeGroupDefinition)
-        {
-          visitAttributeGroupDefinition((XSDAttributeGroupDefinition)attrGroupContent);
-        }
-      }
-    }
-  }
-  
-  public void visitParticle(XSDParticle particle)
-  {
-    visitParticleContent(particle.getContent());
-  }
-  
-  public void visitParticleContent(XSDParticleContent particleContent)
-  {
-    if (particleContent instanceof XSDModelGroupDefinition)
-    {
-      visitModelGroupDefinition((XSDModelGroupDefinition) particleContent);
-    }
-    else if (particleContent instanceof XSDModelGroup)
-    {
-      visitModelGroup((XSDModelGroup)particleContent);
-    }
-    else if (particleContent instanceof XSDElementDeclaration)
-    {
-      visitElementDeclaration((XSDElementDeclaration)particleContent);
-    }
-    else if (particleContent instanceof XSDWildcard)
-    {
-      visitWildcard((XSDWildcard)particleContent);
-    }
-  }
-  
-  public void visitModelGroup(XSDModelGroup modelGroup)
-  {
-    if (modelGroup.getContents() != null)
-    {
-      for (Iterator iterator = modelGroup.getContents().iterator(); iterator.hasNext();)
-      {
-        XSDParticle particle = (XSDParticle) iterator.next();
-        visitParticle(particle);
-      }
-    }
-  }
-  
-  public void visitWildcard(XSDWildcard wildcard)
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/preferences/XSDPreferencePage.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/preferences/XSDPreferencePage.java
deleted file mode 100644
index 0ccec70..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/preferences/XSDPreferencePage.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.preferences;
-
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.preference.PreferencePage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-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.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.wst.xsd.core.internal.XSDCorePlugin;
-import org.eclipse.wst.xsd.core.internal.preferences.XSDCorePreferenceNames;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-public class XSDPreferencePage extends PreferencePage implements IWorkbenchPreferencePage, Listener 
-{
-  Text indentTextField;
-  String indentString;
-  Text schemaNsPrefixField;
-  Text defaultTargetNamespaceText;
-  Button qualifyXSDLanguage;
-  private Button honourAllSchemaLocations = null;
-
-  /**
-   * Creates preference page controls on demand.
-   *   @param parent  the parent for the preference page
-   */
-  protected Control createContents(Composite parent)
-  {
-    WorkbenchHelp.setHelp(parent, XSDEditorContextIds.XSDP_PREFERENCE_PAGE);
-
-    Group group = createGroup(parent, 2);   
-    group.setText(Messages._UI_TEXT_XSD_NAMESPACE_PREFIX);
-
-    qualifyXSDLanguage = ViewUtility.createCheckBox(group, Messages._UI_QUALIFY_XSD);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(qualifyXSDLanguage,
-    		XSDEditorCSHelpIds.XMLSCHEMAFILES_PREFERENCES__QUALIFY_XMLSCHEMA_LANGUAGE_CONSTRUCTS); 
-    ViewUtility.createLabel(group, " ");
-
-    createLabel(group, Messages._UI_TEXT_XSD_DEFAULT_PREFIX);
-    schemaNsPrefixField = createTextField(group);
-    schemaNsPrefixField.addKeyListener(new KeyAdapter()
-    {
-      public void keyPressed(KeyEvent e)
-      {
-        setValid(true);
-      }      
-    });
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(schemaNsPrefixField,
-    		XSDEditorCSHelpIds.XMLSCHEMAFILES_PREFERENCES__XML_SCHEMA_LANGUAGE_CONSTRUCTS_PREFIX); 
-    
-    createLabel(group, Messages._UI_TEXT_XSD_DEFAULT_TARGET_NAMESPACE);
-    defaultTargetNamespaceText = createTextField(group);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(defaultTargetNamespaceText,
-    		XSDEditorCSHelpIds.XMLSCHEMAFILES_PREFERENCES__DEFAULT_TARGETNAMESPACE); 
-    
-    
-    createContentsForValidatingGroup(parent);
-
-    initializeValues();
-
-    applyDialogFont(parent);
-
-    return new Composite(parent, SWT.NULL);
-  }
-
-  private Group createGroup(Composite parent, int numColumns) 
-  {
-    Group group = new Group(parent, SWT.NULL);
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    group.setLayout(layout);
-
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    group.setLayoutData(data);
-    
-    return group;
-  }
-
-  private Text createTextField(Composite parent) 
-  {
-     Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-     GridData data = new GridData();
-     data.verticalAlignment = GridData.FILL;
-     data.horizontalAlignment = GridData.FILL;
-     data.grabExcessHorizontalSpace = true;
-     text.setLayoutData(data);
-
-     return text;
-  }
-
-  private Label createLabel(Composite parent, String text) 
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    label.setText(text);
-    
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.CENTER;
-    data.horizontalAlignment = GridData.FILL;
-    label.setLayoutData(data);
-    
-    return label;
-  }
-  
-  protected void createContentsForValidatingGroup(Composite parent) 
-  {
-	Group validatingGroup = createGroup(parent, 2);
-	validatingGroup.setText(Messages._UI_VALIDATING_FILES);
-
-	if (honourAllSchemaLocations == null) 
-	{
-		honourAllSchemaLocations = new Button(validatingGroup, SWT.CHECK | SWT.LEFT);
-		honourAllSchemaLocations.setText(Messages._UI_TEXT_HONOUR_ALL_SCHEMA_LOCATIONS);
-
-		//GridData
-		GridData data = new GridData(GridData.FILL);
-		data.verticalAlignment = GridData.CENTER;
-		data.horizontalAlignment = GridData.FILL;
-		honourAllSchemaLocations.setLayoutData(data);
-		
-	    PlatformUI.getWorkbench().getHelpSystem().setHelp(honourAllSchemaLocations,
-	    		XSDEditorCSHelpIds.XMLSCHEMAFILES_PREFERENCES__HONOUR_ALL_SCHEMA_LOCATIONS); 
-
-	}
-  }
-  
-  /**
-   * Does anything necessary because the default button has been pressed.
-   */
-  protected void performDefaults() 
-  {
-    super.performDefaults();
-    initializeDefaults();
-    checkValues();
-  }
-
-  /**
-   * Do anything necessary because the OK button has been pressed.
-   *  @return whether it is okay to close the preference page
-   */
-  public boolean performOk() 
-  {
-    if (checkValues())
-    {
-      storeValues();    
-      return true;
-    }
-    return false;
-  }
-
-  protected void performApply()
-  {
-    if (checkValues())
-    {
-      storeValues();    
-    }
-  }
-
-  /**
-   * Handles events generated by controls on this page.
-   *   @param e  the event to handle
-   */
-  public void handleEvent(Event e) 
-  {
-  }
-
-  /**
-   * @see IWorkbenchPreferencePage
-   */
-  public void init(IWorkbench workbench)
-  { 
-  }
-
-  /** 
-   * The indent is stored in the preference store associated with the XML Schema Model
-   */
-  public IPreferenceStore getPreferenceStore()
-  {
-    return XSDEditorPlugin.getPlugin().getPreferenceStore();
-  }
-
-  /**
-   * Initializes states of the controls using default values
-   * in the preference store.
-   */
-  private void initializeDefaults() 
-  {
-    schemaNsPrefixField.setText(getPreferenceStore().getDefaultString(XSDEditorPlugin.CONST_XSD_DEFAULT_PREFIX_TEXT));
-    qualifyXSDLanguage.setSelection(getPreferenceStore().getDefaultBoolean(XSDEditorPlugin.CONST_XSD_LANGUAGE_QUALIFY));
-    defaultTargetNamespaceText.setText(getPreferenceStore().getString(XSDEditorPlugin.CONST_DEFAULT_TARGET_NAMESPACE));
-    honourAllSchemaLocations.setSelection(XSDCorePlugin.getDefault().getPluginPreferences().getDefaultBoolean(XSDCorePreferenceNames.HONOUR_ALL_SCHEMA_LOCATIONS));
-  }
-
-  /**
-   * Initializes states of the controls from the preference store.
-   */
-  private void initializeValues() 
-  {
-    IPreferenceStore store = getPreferenceStore();
-    schemaNsPrefixField.setText(store.getString(XSDEditorPlugin.CONST_XSD_DEFAULT_PREFIX_TEXT));
-    qualifyXSDLanguage.setSelection(store.getBoolean(XSDEditorPlugin.CONST_XSD_LANGUAGE_QUALIFY));
-    defaultTargetNamespaceText.setText(store.getString(XSDEditorPlugin.CONST_DEFAULT_TARGET_NAMESPACE));
-    honourAllSchemaLocations.setSelection(XSDCorePlugin.getDefault().getPluginPreferences().getBoolean(XSDCorePreferenceNames.HONOUR_ALL_SCHEMA_LOCATIONS));
-  }
-
-  /**
-   * Stores the values of the controls back to the preference store.
-   */
-  private void storeValues() 
-  {
-    IPreferenceStore store = getPreferenceStore();
-
-    store.setValue(XSDEditorPlugin.CONST_XSD_DEFAULT_PREFIX_TEXT, getXMLSchemaPrefix());
-    store.setValue(XSDEditorPlugin.CONST_XSD_LANGUAGE_QUALIFY, getQualify());
-    store.setValue(XSDEditorPlugin.CONST_DEFAULT_TARGET_NAMESPACE, getXMLSchemaTargetNamespace());
-
-    XSDEditorPlugin.getPlugin().savePluginPreferences();
-    
-    XSDCorePlugin.getDefault().getPluginPreferences().setValue(XSDCorePreferenceNames.HONOUR_ALL_SCHEMA_LOCATIONS, honourAllSchemaLocations.getSelection());
-    XSDCorePlugin.getDefault().savePluginPreferences();
-  }
-
-  public String getXMLSchemaPrefix()
-  {
-    String prefix = schemaNsPrefixField.getText();
-    if (prefix == null || prefix.equals("")) 
-    {
-      return "xsd";
-    }
-    return prefix;
-  }
-
-  public boolean getQualify()
-  {
-    return qualifyXSDLanguage.getSelection();
-  }
-  
-  /**
-   * Get the xml schema default target namespace
-   */
-  public String getXMLSchemaTargetNamespace()
-  {
-  	String targetNamespace = defaultTargetNamespaceText.getText();
-    if (targetNamespace == null || targetNamespace.equals("")) 
-    {
-      return XSDEditorPlugin.DEFAULT_TARGET_NAMESPACE;
-    }
-    return targetNamespace;
-  }
-  
-  public boolean checkValues()
-  {
-// KCPort TODO    String errorMessage = ValidateHelper.checkXMLName(schemaNsPrefixField.getText());
-	 String errorMessage = null;
-
-    if (errorMessage == null || errorMessage.length() == 0)
-    {
-      setErrorMessage(null);
-      setValid(true);
-      return true;
-    }
-    else
-    {
-      setErrorMessage(Messages._ERROR_LABEL_INVALID_PREFIX);
-      setValid(false);
-      return false;
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelAdapter.java
deleted file mode 100644
index 5a4aadc..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelAdapter.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.text;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.progress.IProgressService;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xsd.ui.internal.util.ModelReconcileAdapter;
-import org.eclipse.wst.xsd.ui.internal.util.XSDSchemaLocationResolverAdapterFactory;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.impl.XSDSchemaImpl;
-import org.eclipse.xsd.util.XSDResourceImpl;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class XSDModelAdapter implements INodeAdapter
-{
-  protected ResourceSet resourceSet;
-  protected XSDSchema schema;
-  private ModelReconcileAdapter modelReconcileAdapter;
-
-  public XSDSchema getSchema()
-  {
-    return schema;
-  }
-
-  public void setSchema(XSDSchema schema)
-  {
-    this.schema = schema;
-  }
-  
-  public void clear()
-  {
-    schema = null;
-    resourceSet = null;
-  }
-
-  public boolean isAdapterForType(Object type)
-  {
-    return type == XSDModelAdapter.class;
-  }
-
-  public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos)
-  {
-  }
-  
-  public ModelReconcileAdapter getModelReconcileAdapter()
-  {
-    return modelReconcileAdapter;
-  }
-
-  public XSDSchema createSchema(Document document)
-  {    
-    try
-    {
-      // (cs) note that we always want to ensure that a 
-      // schema model object get's returned
-      schema = XSDFactory.eINSTANCE.createXSDSchema();
-      resourceSet = XSDSchemaImpl.createResourceSet();
-      resourceSet.getAdapterFactories().add(new XSDSchemaLocationResolverAdapterFactory());                
-
-      IDOMNode domNode = (IDOMNode)document;
-      String baseLocation = domNode.getModel().getBaseLocation();           
-
-      // TODO... gotta pester SSE folks to provide 'useful' baseLocations
-      // 
-      URI uri = null;
-      if (baseLocation.startsWith("/"))
-      {
-        uri = URI.createPlatformResourceURI(baseLocation);
-      }
-      else
-      {
-        uri = URI.createFileURI(baseLocation);
-      }  
-      Resource resource = new XSDResourceImpl();
-      resource.setURI(uri);
-      schema = XSDFactory.eINSTANCE.createXSDSchema(); 
-      resource.getContents().add(schema);
-      resourceSet.getResources().add(resource);     
-
-      schema.setDocument(document);
-      final Element element = document.getDocumentElement();
-      if (element != null)
-      {  
-        // Force the loading of the "meta" schema for schema instance instance.
-        //
-        String schemaForSchemaNamespace = element.getNamespaceURI();
-        XSDSchemaImpl.getSchemaForSchema(schemaForSchemaNamespace);            
-      }
-        
-      IRunnableWithProgress setElementOperation = new IRunnableWithProgress()
-      {
-        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException
-        {
-          // Use the animated flavour as we don't know beforehand how many ticks we need.
-          // The task name will be displayed by the code in XSDResourceImpl.
-          
-          monitor.beginTask("", IProgressMonitor.UNKNOWN); //$NON-NLS-1$
-          Map loadOptions = resourceSet.getLoadOptions();
-          loadOptions.put(XSDResourceImpl.XSD_PROGRESS_MONITOR, monitor);
-          
-          schema.setElement(element);
-          
-          loadOptions.remove(XSDResourceImpl.XSD_PROGRESS_MONITOR);
-        }
-      };
-
-      IProgressService progressService = PlatformUI.getWorkbench().getProgressService();
-      try
-      {
-        progressService.busyCursorWhile(setElementOperation);
-      }
-      catch (InvocationTargetException e)
-      {
-        e.printStackTrace();
-      }
-      catch (InterruptedException e)
-      {
-        e.printStackTrace();
-      }       
-        
-      // attach an adapter to keep the XSD model and DOM in sync
-      //
-      modelReconcileAdapter = new XSDModelReconcileAdapter(document, schema);
-      domNode.getModel().addModelStateListener(modelReconcileAdapter);
-    }
-    catch (Exception ex)
-    {
-      ex.printStackTrace();
-    }
-    return schema;    
-  }
-  
-  /**
-   * @deprecated
-   */
-  public XSDSchema createSchema(Element element)
-  {     
-    return createSchema(element.getOwnerDocument());
-  }
-  
-  public static XSDModelAdapter lookupOrCreateModelAdapter(Document document)
-  {
-    XSDModelAdapter adapter = null;
-    if (document instanceof INodeNotifier)
-    {
-      INodeNotifier notifier = (INodeNotifier)document;
-      adapter = (XSDModelAdapter)notifier.getAdapterFor(XSDModelAdapter.class);
-      if (adapter == null)
-      {
-        adapter = new XSDModelAdapter();
-        notifier.addAdapter(adapter);        
-      } 
-    }   
-    return adapter;
-  }
-  
-  
-  public static XSDSchema lookupOrCreateSchema(final Document document)
-  {    
-    XSDSchema result = null;    
-    XSDModelAdapter adapter = lookupOrCreateModelAdapter(document);      
-    if (adapter.getSchema() == null)
-    {  
-      
-      adapter.createSchema(document); 
-    }   
-    result = adapter.getSchema();    
-    return result;    
-  }  
-}
-
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelQueryExtension.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelQueryExtension.java
deleted file mode 100644
index dc0690c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelQueryExtension.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.text;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.extension.ModelQueryExtension;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeFilter;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-public class XSDModelQueryExtension extends ModelQueryExtension
-{
-  public XSDModelQueryExtension()
-  {
-  }
-
-  public String[] getAttributeValues(Element e, String namespace, String name)
-  {
-    List list = new ArrayList();
-    String currentElementName = e.getLocalName();
-    Node parentNode = e.getParentNode();
-    String parentName = parentNode != null ? parentNode.getLocalName() : "";
-    if (checkName(name, "type"))
-    {
-      if (checkName(currentElementName, "attribute"))
-      {
-        list = getTypesHelper(e).getBuiltInTypeNamesList2();
-        list.addAll(getTypesHelper(e).getUserSimpleTypeNamesList());
-      }
-      else if (checkName(currentElementName, "element"))
-      {
-        list = getTypesHelper(e).getBuiltInTypeNamesList2();
-        list.addAll(getTypesHelper(e).getUserSimpleTypeNamesList());
-        list.addAll(getTypesHelper(e).getUserComplexTypeNamesList());
-      }
-    }
-    else if (checkName(name, "blockDefault") || checkName(name, "finalDefault"))
-    {
-      list.add("#all");
-      list.add("substitution");
-      list.add("extension");
-      list.add("restriction");
-    }
-    else if (checkName(name, "namespace"))
-    {
-      if (checkName(currentElementName, "any") || checkName(currentElementName, "anyAttribute"))
-      {
-        list.add("##any");
-        list.add("##other");
-        list.add("##targetNamespace");
-        list.add("##local");
-      }
-    }
-    else if (checkName(name, "maxOccurs"))
-    {
-      list.add("1");
-      list.add("unbounded");
-    }
-    else if (checkName(name, "minOccurs"))
-    {
-      list.add("0");
-      list.add("1");
-    }
-    else if (checkName(name, "itemType"))
-    {
-      if (checkName(currentElementName, "list"))
-      {
-        if (checkName(parentName, "simpleType"))
-        {
-          list = getTypesHelper(e).getBuiltInTypeNamesList();
-          list.addAll(getTypesHelper(e).getUserSimpleTypeNamesList());
-        }
-      }
-    }
-    else if (checkName(name, "memberTypes"))
-    {
-      if (checkName(currentElementName, "union"))
-      {
-        if (checkName(parentName, "simpleType"))
-        {
-          list = getTypesHelper(e).getBuiltInTypeNamesList();
-          list.addAll(getTypesHelper(e).getUserSimpleTypeNamesList());
-        }
-      }
-    }
-    else if (checkName(name, "base"))
-    {
-      if (checkName(currentElementName, "restriction"))
-      {
-        if (checkName(parentName, "simpleType"))
-        {
-          list = getTypesHelper(e).getBuiltInTypeNamesList();
-          list.addAll(getTypesHelper(e).getUserSimpleTypeNamesList());
-        }
-        else if (checkName(parentName, "simpleContent"))
-        {
-          list = getTypesHelper(e).getBuiltInTypeNamesList();
-          list.addAll(getTypesHelper(e).getUserComplexTypeNamesList());
-        }
-        else if (checkName(parentName, "complexContent"))
-        {
-          list = getTypesHelper(e).getBuiltInTypeNamesList();
-          list.addAll(getTypesHelper(e).getUserComplexTypeNamesList());
-        }
-      }
-      else if (checkName(currentElementName, "extension"))
-      {
-        if (checkName(parentName, "simpleContent"))
-        {
-          list = getTypesHelper(e).getBuiltInTypeNamesList();
-          list.addAll(getTypesHelper(e).getUserComplexTypeNamesList());
-        }
-        else if (checkName(parentName, "complexContent"))
-        {
-          list = getTypesHelper(e).getBuiltInTypeNamesList();
-          list.addAll(getTypesHelper(e).getUserComplexTypeNamesList());
-        }
-      }
-    }
-    else if (checkName(name, "ref"))
-    {
-      if (checkName(currentElementName, "element"))
-      {
-        list = getTypesHelper(e).getGlobalElements();
-      }
-      else if (checkName(currentElementName, "attribute"))
-      {
-        list = getTypesHelper(e).getGlobalAttributes();
-      }
-      else if (checkName(currentElementName, "attributeGroup"))
-      {
-        list = getTypesHelper(e).getGlobalAttributeGroups();
-      }
-      else if (checkName(currentElementName, "group"))
-      {
-        list = getTypesHelper(e).getModelGroups();
-      }
-    }
-    else if (checkName(name, "substitutionGroup"))
-    {
-      if (checkName(currentElementName, "element"))
-      {
-        list = getTypesHelper(e).getGlobalElements();
-      }
-    }
-    String[] result = new String[list.size()];
-    list.toArray(result);
-    return result;
-  }
-
-  public boolean isApplicableChildElement(Node parentNode, String namespace, String name)
-  {
-    if (XSDConstants.APPINFO_ELEMENT_TAG.equals(parentNode.getNodeName()) &&
-        XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(namespace))
-    {
-        return false;
-    }
-   
-    // we assume that other nodes don't want schema nodes as extension elements
-    // TODO... cs: we really need to define custimizations for filtering based on parent/child
-    // namespace pairs to accurately handle this    
-    String parentElementNamespaceURI = parentNode.getNamespaceURI();
-    if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(parentElementNamespaceURI) &&
-        XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(namespace))
-    {
-       return false;   
-    }
-    
-    if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(namespace))
-    {  
-      NodeFilter filter = XSDEditorPlugin.getPlugin().getNodeCustomizationRegistry().getNodeFilter(namespace);
-      if (filter != null)
-      {
-        return filter.isApplicableContext(parentNode, Node.ELEMENT_NODE, namespace, name);
-      }     
-    }
-     
-    return true;
-  }
-
-  protected XSDSchema lookupOrCreateSchema(Document document)
-  {
-    return XSDModelAdapter.lookupOrCreateSchema(document);
-  }
-
-  /**
-   * @deprecated
-   */
-  protected XSDSchema lookupOrCreateSchemaForElement(Element element)
-  {
-    return lookupOrCreateSchema(element.getOwnerDocument());
-  }
-
-  protected TypesHelper getTypesHelper(Element element)
-  {
-    XSDSchema schema = lookupOrCreateSchema(element.getOwnerDocument());
-    return new TypesHelper(schema);
-  }
-
-  protected boolean checkName(String localName, String token)
-  {
-    if (localName != null && localName.trim().equals(token))
-    {
-      return true;
-    }
-    return false;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelReconcileAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelReconcileAdapter.java
deleted file mode 100644
index 1f8a5bd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/text/XSDModelReconcileAdapter.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.text;
-
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xsd.ui.internal.util.ModelReconcileAdapter;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class XSDModelReconcileAdapter extends ModelReconcileAdapter
-{
-  protected XSDSchema schema;
-  
-  public XSDModelReconcileAdapter(Document document, XSDSchema schema)
-  {
-    super(document);
-    this.schema = schema;
-  }
-  
-  protected void handleNodeChanged(Node node)
-  {
-    // Make sure that the node is in the XSD Schema namespace. We don't need to 
-    // reconcile the model for other nodes like text or nodes in other namespaces
-    // like the ones normally occurring in annotations.
-    
-    try
-    {
-      if (!shouldReconcileModelFor(node))
-      {
-        return;
-      }
-    }
-    catch (Exception e)
-    {
-    }
-
-    if (node instanceof Element)
-    {  
-      XSDConcreteComponent concreteComponent = schema.getCorrespondingComponent(node);    
-      concreteComponent.elementChanged((Element)node);
-    }
-    else if (node instanceof Document)
-    {
-      // The document changed so we may need to fix up the 
-      // definition's root element
-      Document document = (Document)node;    
-      Element schemaElement = document.getDocumentElement();
-      if (schemaElement != null && schemaElement != schema.getElement())
-      {   
-        // here we handle the case where a new 'schema' element was added
-        //(e.g. the file was totally blank and then we type in the root element)        
-        //
-        if (schemaElement.getLocalName().equals(XSDConstants.SCHEMA_ELEMENT_TAG))         
-        {  
-          //System.out.println("****** Setting new schema");
-          schema.setElement(schemaElement);
-        }
-      }      
-      else if (schemaElement != null)
-      {       
-        // handle the case where the definition element's content has changed
-        // TODO (cs) do we really need to handle this case?
-        schema.elementChanged(schemaElement);
-      }      
-      else if (schemaElement == null)
-      {
-        // if there's no root element clear out the schema
-        //
-        schema.getContents().clear();
-        // TODO (cs) I'm not sure why the above isn't enough
-        // to clear out all of the component lists
-        // for now I've just added a few more lines to do additional clearing
-        //
-        schema.getElementDeclarations().clear();
-        schema.getTypeDefinitions().clear();
-        schema.getAttributeDeclarations().clear();
-        schema.getModelGroupDefinitions().clear();
-        schema.getAttributeGroupDefinitions().clear();     
-        
-        schema.setElement(null);
-      }      
-    } 
-  }
-
-  /**
-   * Checks if a change to the given node should trigger a model update.
-   * 
-   * @param changedNode
-   *          the DOM node to test.
-   * @return true if the change to the given node should trigger a model update.
-   */
-  protected boolean shouldReconcileModelFor(Node changedNode)
-  {
-    // No need to reconcile if the node is in a different namespace as it is the
-    // case for nodes deeply nested in appinfo or documentation elements.
-
-    String nodeNamespace = changedNode.getNamespaceURI();
-    String schemaNamespace = schema.getSchemaForSchemaNamespace();
-
-    if (!schemaNamespace.equals(nodeNamespace))
-    {
-      return false;
-    }
-
-    // When a child node is added to an appinfo or documentation element
-    // No need to reconcile if the node is the first child of appinfo or documentation
-    // elements.
-
-    Node parentNode = changedNode.getParentNode();
-
-    if (parentNode != null)
-    {
-      String nodeName = changedNode.getLocalName();
-
-      if (XSDConstants.APPINFO_ELEMENT_TAG.equals(nodeName) || XSDConstants.DOCUMENTATION_ELEMENT_TAG.equals(nodeName))
-      {
-        return false;
-      }
-    }
-    return true;
-  }
-
-  public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty)
-  {
-    if (!isDirty)
-    {
-      // TODO need a way to tell the views to stop refreshing (temporarily)
-      //
-      /*
-      schema.reset();
-      
-      // For some reason type references don't get fixed up when an import is removed
-      // even if we call schema.reset() explictly.  To work around this  we iterate thru
-      // the type references and recompute them incase a schema did infact change
-      //
-      for (Iterator i = schema.getElementDeclarations().iterator(); i.hasNext(); )
-      {  
-        XSDElementDeclarationImpl ed = (XSDElementDeclarationImpl)i.next();
-        //ed.elementAttributesChanged(ed.getElement());
-        XSDTypeDefinition td = ed.getTypeDefinition();
-        td = ed.resolveTypeDefinition(td.getSchema().getTargetNamespace(), td.getName());        
-        ed.setTypeDefinition(td);
-      }*/  
-    }
-  }  
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/DocumentAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/DocumentAdapter.java
deleted file mode 100644
index ca6c559..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/DocumentAdapter.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-abstract class DocumentAdapter implements INodeAdapter
-{
-  Document document;
-
-  public DocumentAdapter(Document document)
-  {
-    this.document = document;
-    ((INodeNotifier) document).addAdapter(this);
-    adaptChildElements(document);
-  }
-
-  private void adaptChildElements(Node parentNode)
-  {
-    for (Node child = parentNode.getFirstChild(); child != null; child = child.getNextSibling())
-    {
-      if (child.getNodeType() == Node.ELEMENT_NODE)
-      {
-        adapt((Element) child);
-      }
-    }    
-  }
-  
-  public void adapt(Element element)
-  {
-    if (((INodeNotifier) element).getExistingAdapter(this) == null)
-    {
-      ((INodeNotifier) element).addAdapter(this);
-      adaptChildElements(element);  
-    }
-  }
-
-  public boolean isAdapterForType(Object type)
-  {
-    return type == this;
-  }
-
-  abstract public void notifyChanged(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index);
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/ModelReconcileAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/ModelReconcileAdapter.java
deleted file mode 100644
index a0bba52..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/ModelReconcileAdapter.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.wst.sse.core.internal.provisional.IModelStateListener;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public abstract class ModelReconcileAdapter extends DocumentAdapter implements IModelStateListener
-{
-  protected boolean handlingNotifyChanged = false;
-  protected List listeners = new ArrayList();
-  
-  public ModelReconcileAdapter(Document document)
-  {
-    super(document);
-  }
-  
-  public void addListener(INodeAdapter listener)
-  {
-    if (!listeners.contains(listener))
-    {
-      listeners.add(listener);
-    }  
-  }
-  
-  public void removeListener(INodeAdapter listener)
-  {
-    listeners.remove(listener);
-  }  
-  
-  protected void notifyListeners(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos)
-  {
-    List list = new ArrayList(listeners);
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      INodeAdapter adapter = (INodeAdapter)i.next();
-      adapter.notifyChanged(notifier, eventType, changedFeature, oldValue, newValue, pos);
-    }  
-  }
-      
-  public void notifyChanged(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index)
-  {
-    if (!handlingNotifyChanged)
-    {
-      handlingNotifyChanged = true;
-      try
-      {
-        handleNotifyChange(notifier, eventType, feature, oldValue, newValue, index);
-        notifyListeners(notifier, eventType, feature, oldValue, newValue, index);
-      }
-      catch (Exception e)
-      {
-//        XSDEditorPlugin.getPlugin().getMsgLogger().write(e);
-      }
-      handlingNotifyChanged = false;
-    }
-  }
-  
-  protected void handleNodeChanged(Node node)
-  {    
-  }
-  
-  public void handleNotifyChange(INodeNotifier notifier, int eventType, Object feature, Object oldValue, Object newValue, int index)
-  {
-    Node node = (Node)notifier;
-    switch (eventType)
-    {
-      case INodeNotifier.ADD:
-      {
-        if (newValue instanceof Element)
-        {
-          Element element = (Element)newValue;
-          adapt(element);
-        }  
-        break;
-      }
-      case INodeNotifier.REMOVE:
-      {
-        break;
-      }
-      case INodeNotifier.CHANGE:
-      case INodeNotifier.STRUCTURE_CHANGED:
-      { 
-        handleNodeChanged(node);
-        break;
-      }  
-      case INodeNotifier.CONTENT_CHANGED:
-      {
-        // If the only thing changed was the content of a text node
-        // then we don't want to reconcile.
-        
-        if (feature instanceof Text)
-        {
-          break;
-        }
-        
-        handleNodeChanged(node);
-        break;
-      }             
-    }
-  }
-
-  public void modelAboutToBeChanged(IStructuredModel model)
-  {
-  }
-
-  public void modelAboutToBeReinitialized(IStructuredModel structuredModel)
-  {
-  }
-
-  public void modelChanged(IStructuredModel model)
-  {
-  }
-
-  public void modelDirtyStateChanged(IStructuredModel model, boolean isDirty)
-  {
-  }
-
-  public void modelReinitialized(IStructuredModel structuredModel)
-  {
-  }
-
-  public void modelResourceDeleted(IStructuredModel model)
-  {
-  }
-
-  public void modelResourceMoved(IStructuredModel oldModel, IStructuredModel newModel)
-  {
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/SelectionAdapter.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/SelectionAdapter.java
deleted file mode 100644
index 2cd1353..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/SelectionAdapter.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-
-public abstract class SelectionAdapter implements ISelectionProvider
-{
-  protected List listenerList = new ArrayList();
-  protected ISelection selection = new StructuredSelection();
-  protected ISelectionProvider eventSource;
-
-  public void setEventSource(ISelectionProvider eventSource)
-  {
-    this.eventSource = eventSource;
-  }
-
-  public void addSelectionChangedListener(ISelectionChangedListener listener) 
-  {
-    listenerList.add(listener);
-  }
-
-  public void removeSelectionChangedListener(ISelectionChangedListener listener) 
-  {
-    listenerList.remove(listener);
-  }                    
-
-  public ISelection getSelection() 
-  {
-    return selection;
-  }    
-  
-  /**
-   * This method should be specialized to return the correct object that corresponds to the 'other' model
-   */
-  abstract protected Object getObjectForOtherModel(Object object);
-
-    
-  public void setSelection(ISelection modelSelection)  
-  { 
-    List otherModelObjectList = new ArrayList();
-    if (modelSelection instanceof IStructuredSelection)
-    {
-      for (Iterator i = ((IStructuredSelection)modelSelection).iterator(); i.hasNext(); )
-      {
-        Object modelObject = i.next(); 
-        Object otherModelObject = getObjectForOtherModel(modelObject);       
-        if (otherModelObject != null)
-        { 
-          otherModelObjectList.add(otherModelObject);
-        }
-      }
-    }                
-      
-    StructuredSelection nodeSelection = new StructuredSelection(otherModelObjectList);
-    selection = nodeSelection;
-    SelectionChangedEvent event = new SelectionChangedEvent(eventSource != null ? eventSource : this, nodeSelection);
-
-    for (Iterator i = listenerList.iterator(); i.hasNext(); )
-    {
-      ISelectionChangedListener listener = (ISelectionChangedListener)i.next();
-      listener.selectionChanged(event);
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/TypesHelper.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/TypesHelper.java
deleted file mode 100644
index 78d123b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/TypesHelper.java
+++ /dev/null
@@ -1,403 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaContent;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.impl.XSDImportImpl;
-import org.eclipse.xsd.impl.XSDSchemaImpl;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class TypesHelper
-{
-  XSDSchema xsdSchema;
-  Vector list = new Vector();
-
-  public TypesHelper(XSDSchema xsdSchema)
-  {
-    this.xsdSchema = xsdSchema;
-  }
-
-  private void updateExternalImportGlobals()
-  {
-    if (xsdSchema != null)
-    {
-      Iterator contents = xsdSchema.getContents().iterator();
-      while (contents.hasNext())
-      {
-        XSDSchemaContent content = (XSDSchemaContent) contents.next();
-        if (content instanceof XSDImportImpl)
-        {
-          XSDImportImpl anImport = (XSDImportImpl) content;
-          try
-          {
-            if (anImport.getSchemaLocation() != null)
-            {
-              anImport.importSchema();
-            }
-          }
-          catch (Exception e)
-          {
-            
-          }
-        }
-      }
-    }
-  }
-
-  // TODO This method and it's very similar getBuiltInTypeNamesList2 should 
-  // be reviewed and combined if possible. Both seem to be used from 
-  // XSDModelQueryExtension for content assist purposes.
-  
-  public java.util.List getBuiltInTypeNamesList()
-  {
-    List items = new ArrayList();
-    if (xsdSchema != null)
-    {
-      String prefix = xsdSchema.getSchemaForSchemaQNamePrefix();
-      if (xsdSchema != null)
-      {
-        XSDSchema schemaForSchema = XSDSchemaImpl.getSchemaForSchema(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
-        for (Iterator i = schemaForSchema.getSimpleTypeIdMap().values().iterator(); i.hasNext();)
-        {
-          XSDTypeDefinition td = (XSDTypeDefinition) i.next();  
-          String localName = td.getName(); 
-          String prefixedName = (prefix != null && prefix.length() > 0) ? prefix + ":" + localName : localName; 
-          items.add(prefixedName);        
-        }
-      }
-    }
-    return items;
-  }
-
-  // issue (cs) do we still need this?  it can likely be remove now
-  // was used for content assist but I don't think we really need it
-  public java.util.List getBuiltInTypeNamesList2()
-  {
-    List result = new ArrayList();
-    if (xsdSchema != null)
-    {
-      List prefixes = getPrefixesForNamespace(xsdSchema.getSchemaForSchemaNamespace());
-      XSDSchema schemaForSchema = XSDSchemaImpl.getSchemaForSchema(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
-      for (Iterator i = schemaForSchema.getSimpleTypeIdMap().values().iterator(); i.hasNext();)
-      {
-        XSDTypeDefinition td = (XSDTypeDefinition) i.next();  
-        String localName = td.getName();
-        String prefix = prefixes.size() > 0 ? (String)prefixes.get(0) : null;
-        String prefixedName = (prefix != null && prefix.length() > 0) ? prefix + ":" + localName : localName; 
-        result.add(prefixedName);        
-      }
-    }
-    return result;
-  }
-
-  public java.util.List getUserSimpleTypeNamesList()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      Iterator i = xsdSchema.getTypeDefinitions().iterator();
-      while (i.hasNext())
-      {
-        XSDTypeDefinition typeDefinition = (XSDTypeDefinition) i.next();
-        if (typeDefinition instanceof XSDSimpleTypeDefinition)
-        {
-          items.addAll(getPrefixedNames(typeDefinition.getTargetNamespace(), typeDefinition.getName()));
-        }
-      }
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public java.util.List getUserComplexTypeNamesList()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      Iterator i = xsdSchema.getTypeDefinitions().iterator();
-      while (i.hasNext())
-      {
-        XSDTypeDefinition typeDefinition = (XSDTypeDefinition) i.next();
-        if (typeDefinition instanceof XSDComplexTypeDefinition)
-        {
-			    items.addAll(getPrefixedNames(typeDefinition.getTargetNamespace(), typeDefinition.getName()));         
-        }
-      }
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-  
-  public java.util.List getUserSimpleTypes()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      Iterator i = xsdSchema.getTypeDefinitions().iterator();
-      while (i.hasNext())
-      {
-        XSDTypeDefinition typeDefinition = (XSDTypeDefinition) i.next();
-        if (typeDefinition instanceof XSDSimpleTypeDefinition)
-        {
-          items.add(typeDefinition);
-          //items.add(typeDefinition.getQName(xsdSchema));
-        }
-      }
-      // We need to add the anyType
-//      items.add(getPrefix(xsdSchema.getSchemaForSchemaNamespace(), true) + "anyType");
-      
-      //      items = addExternalImportedUserSimpleTypes(items);
-      //items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public String getPrefix(String ns, boolean withColon)
-  {
-    String key = "";
-
-    if (xsdSchema != null)
-    {
-      Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-      Iterator iter = map.keySet().iterator();
-      while (iter.hasNext())
-      {
-        Object keyObj = iter.next();
-        Object value = map.get(keyObj);
-        if (value != null && value.toString().equals(ns))
-        {
-          if (keyObj != null)
-          {
-            key = keyObj.toString();
-          }
-          else
-          {
-            key = "";
-          }
-          break;
-        }
-      }
-      if (!key.equals(""))
-      {
-        if (withColon)
-        {
-          key = key + ":";
-        }
-      }
-    }
-    return key;
-  }
-
-  public java.util.List getGlobalElements()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getElementDeclarations() != null)
-      {
-        Iterator i = xsdSchema.getElementDeclarations().iterator();
-        while (i.hasNext())
-        {
-          XSDElementDeclaration elementDeclaration = (XSDElementDeclaration) i.next();
-          String name = elementDeclaration.getQName(xsdSchema);
-          if (name != null)
-          {
-            items.add(name);
-          }
-        }
-      }
-      //      items = addExternalImportedGlobalElements(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public java.util.List getGlobalAttributes()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getAttributeDeclarations() != null)
-      {
-        Iterator i = xsdSchema.getAttributeDeclarations().iterator();
-        while (i.hasNext())
-        {
-          XSDAttributeDeclaration attributeDeclaration = (XSDAttributeDeclaration) i.next();
-          if (attributeDeclaration.getTargetNamespace() == null || (attributeDeclaration.getTargetNamespace() != null && !attributeDeclaration.getTargetNamespace().equals(XSDConstants.SCHEMA_INSTANCE_URI_2001)))
-          {
-            String name = attributeDeclaration.getQName(xsdSchema);
-            if (name != null)
-            {
-              items.add(name);
-            }
-          }
-        }
-      }
-      //      items = addExternalImportedAttributes(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public java.util.List getGlobalAttributeGroups()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getAttributeGroupDefinitions() != null)
-      {
-        Iterator i = xsdSchema.getAttributeGroupDefinitions().iterator();
-        while (i.hasNext())
-        {
-          XSDAttributeGroupDefinition attributeGroupDefinition = (XSDAttributeGroupDefinition) i.next();
-          String name = attributeGroupDefinition.getQName(xsdSchema);
-          if (name != null)
-          {
-            items.add(name);
-          }
-        }
-      }
-      //      items = addExternalImportedAttributeGroups(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  public java.util.List getModelGroups()
-  {
-    Vector items = new Vector();
-    if (xsdSchema != null)
-    {
-      updateExternalImportGlobals();
-      if (xsdSchema.getModelGroupDefinitions() != null)
-      {
-        Iterator i = xsdSchema.getModelGroupDefinitions().iterator();
-        while (i.hasNext())
-        {
-          XSDModelGroupDefinition modelGroupDefinition = (XSDModelGroupDefinition) i.next();
-          String name = modelGroupDefinition.getQName(xsdSchema);
-          if (name != null)
-          {
-            items.add(name);
-          }
-        }
-      }
-      //      items = addExternalImportedGroups(items);
-      items = (Vector) sortList(items);
-    }
-    return items;
-  }
-
-  // issue (cs) ssems like a rather goofy util method?
-  public static java.util.List sortList(java.util.List types)
-  {
-    try
-    {
-      java.util.Collections.sort(types); // performance?  n*log(n)
-    }
-    catch (Exception e)
-    {
-//      XSDEditorPlugin.getPlugin().getMsgLogger().write("Sort failed");
-    }
-    return types;
-  }
-
-  // issue (cs) do we still need this?
-  public void updateMapAfterDelete(XSDImport deletedNode)
-  {
-    String ns = deletedNode.getNamespace();
-    if (ns != null)
-    {
-      String prefix = getPrefix(ns, false);
-      if (prefix != null)
-      {
-        prefix = prefix.trim();
-      }
-      String xmlnsAttr = (prefix == "") ? "xmlns" : "xmlns:" + prefix;
-
-      if (prefix == "")
-      {
-        prefix = null;
-      }
-
-      if (xsdSchema != null)
-      {
-        Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-        map.remove(prefix);
-        Element schemaElement = xsdSchema.getElement();
-        schemaElement.removeAttribute(xmlnsAttr);
-      }
-    }
-  }
-
-  public List getPrefixedNames(String namespace, String localName)
-  {
-    List list = new ArrayList();
-    if (namespace == null)
-    {
-      namespace = "";    			
-    }
-    if (xsdSchema != null && localName != null)
-    {
-      List prefixes = getPrefixesForNamespace(namespace);
-      for (Iterator i = prefixes.iterator(); i.hasNext(); )
-      {
-      	String prefix = (String)i.next();
-      	if (prefix == null) prefix = "";
-        String prefixedName = prefix.length() > 0 ? prefix + ":" + localName : localName;
-        list.add(prefixedName);               
-      }
-      if (prefixes.size() == 0)
-      {
-        list.add(localName);
-      }
-    }
-    return list;
-  }
-  
-  protected List getPrefixesForNamespace(String namespace)
-  {
-    List list = new ArrayList();
-    Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-    for (Iterator iter = map.keySet().iterator(); iter.hasNext();)
-    {
-      String prefix = (String) iter.next();
-      Object value = map.get(prefix);
-      if (value != null && value.toString().equals(namespace))
-      {
-       list.add(prefix);
-      }
-    }
-    return list;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/ViewUtility.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/ViewUtility.java
deleted file mode 100644
index 9c95ee7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/ViewUtility.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-
-// issue (cs) can we get rid of this class?
-// I've stripped it down a whole lot... but it'd be great to get rid of it
-//
-public class ViewUtility
-{
-  private static Font font;
-
-  private static Font getFont()
-  {
-    if (font == null)
-    {              
-      font = new Font(Display.getCurrent(), "ms sans serif", 8, SWT.NORMAL);  
-    }
-    return font;
-  }
-
-  public static void setComposite(Composite comp)
-  {
-    // deprecated.  Remove later
-  }
-  public static Composite createComposite(Composite parent, int numColumns)
-  {
-    Composite composite = new Composite(parent, SWT.NONE);
-
-    composite.setFont(getFont());
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    composite.setLayout(layout);
-
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-    composite.setLayoutData(data);
-    return composite;
-  }
-
-  public static Composite createComposite(Composite parent, int numColumns, boolean horizontalFill)
-  {
-    if (!horizontalFill)
-    {
-      createComposite(parent, numColumns);
-    }
-
-    Composite composite = new Composite(parent, SWT.NONE);
-
-    composite.setFont(getFont());
-
-    GridLayout layout = new GridLayout();
-    layout.numColumns = numColumns;
-    composite.setLayout(layout);
-
-    GridData data = new GridData();
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    composite.setLayoutData(data);
-
-    return composite;
-  }
-
-  public static Label createHorizontalFiller(Composite parent, int horizontalSpan) 
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.horizontalSpan = horizontalSpan;
-    label.setLayoutData(data);
-    return label;
-  }
-
-  /**
-   * Helper method for creating labels.
-   */
-  public static Label createLabel(Composite parent, String text) 
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    label.setText(text);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    label.setLayoutData(data);
-    return label;
-  }
-
-	public Label createLabel(Composite parent, int style, String text)
-	{
-		Label label = new Label(parent, style);
-//		setColor(label);
-		label.setText(text);
-
-		GridData data = new GridData();
-		data.horizontalAlignment = GridData.FILL;
-		label.setLayoutData(data);
-		return label;
-	}
-  
-  public static Label createLabel(Composite parent, String text, int alignment)
-  {
-    Label label = new Label(parent, SWT.LEFT);
-    label.setText(text);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = alignment;
-    label.setLayoutData(data);
-    return label;
-  }
-
- 
-
-
-  /**
-   * Create radio button
-   */
-  public static Button createRadioButton(Composite parent, String label)
-  {
-    Button button = new Button(parent, SWT.RADIO);
-    button.setText(label);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    button.setLayoutData(data);
-
-    return button;
-  }
-
-  /**
-   * Helper method for creating check box
-   */
-  public static Button createCheckBox(Composite parent, String label) 
-  {
-    Button button = new Button(parent, SWT.CHECK);
-    button.setText(label);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    button.setLayoutData(data);
-    return button;
-  }
-
-  public static Combo createComboBox(Composite parent)
-  {
-    return createComboBox(parent, true);
-  }
-
-  public static Combo createComboBox(Composite parent, boolean isReadOnly)
-  {
-    int style = isReadOnly == true ? SWT.READ_ONLY : SWT.DROP_DOWN;
-
-    Combo combo = new Combo(parent, style);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    combo.setLayoutData(data);
-    return combo;
-  }
-
-
-  public static Text createTextField(Composite parent, int width)
-  {
-    Text text = new Text(parent, SWT.SINGLE | SWT.BORDER);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    data.widthHint = width;
-    text.setLayoutData(data);
-
-    return text;
-  }
-
-  /**
-   * <code>createWrappedMultiTextField</code> creates a wrapped multitext field
-   *
-   * @param parent a <code>Composite</code> value
-   * @param width an <code>int</code> value
-   * @param numLines an <code>int</code> value representing number of characters in height
-   * @param verticalFill a <code>boolean</code> value
-   * @return a <code>Text</code> value
-   */
-  public static Text createWrappedMultiTextField(Composite parent, int width, int numLines, boolean verticalFill)
-  {
-    Text text = new Text(parent, SWT.MULTI | SWT.BORDER | SWT.WRAP | SWT.V_SCROLL);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    if (verticalFill)
-    {
-      data.verticalAlignment = GridData.FILL;
-      data.grabExcessVerticalSpace = true;
-    }      
-    data.widthHint = width;
-    FontData[] fontData = getFont().getFontData();
-    // hack for now where on Windows, only 1 fontdata exists
-    data.heightHint = numLines * fontData[0].getHeight();
-    text.setLayoutData(data);
-
-    return text;
-  }
-
-  public static Text createMultiTextField(Composite parent, int width, int height, boolean verticalFill)
-  {
-    Text text = new Text(parent, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    if (verticalFill)
-    {
-      data.verticalAlignment = GridData.FILL;
-      data.grabExcessVerticalSpace = true;
-    }      
-    data.widthHint = width;
-    data.heightHint = height;
-    text.setLayoutData(data);
-
-    return text;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDDOMHelper.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDDOMHelper.java
deleted file mode 100644
index f558ff6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDDOMHelper.java
+++ /dev/null
@@ -1,456 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import java.util.ArrayList;
-
-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.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.w3c.dom.Text;
-
-// issue (cs) remove this class!!
-public class XSDDOMHelper
-{
-
-  private static String XMLSchemaURI = "http://www.w3.org/2001/XMLSchema";
-
-  /**
-   * Constructor for XSDDOMHelper.
-   */
-  public XSDDOMHelper()
-  {
-    super();
-  }
-
-  public Node getChildNode(Element parent, String childName)
-  {
-/*    NodeList nodeList = parent.getElementsByTagNameNS(XMLSchemaURI, childName);
-    if (nodeList.getLength() > 0)
-      return nodeList.item(0);
-    return null;
-*/
-    NodeList list = null;
-    if (parent != null)
-    {
-      list = parent.getChildNodes();
-    }
-
-    if (list != null)
-    {
-      // Performance issue perhaps?
-      for (int i = 0; i < list.getLength(); i++)
-      {
-        if (list.item(i) instanceof Element)
-        {
-          if (list.item(i).getLocalName().equals(childName))
-          {
-            return list.item(i);
-          }
-        }
-      }
-    }
-    return null;
-  }
-
-
-
-
-  public void changeDerivedByType(Element element, String derivedByType, String type)
-  {
-    Document doc = element.getOwnerDocument();
-
-    String prefix = element.getPrefix();
-    prefix = prefix == null ? "" : prefix + ":";
-
-    Element derivedByElement = getDerivedByElement(element);
-    
-    if (derivedByElement != null && derivedByElement.getLocalName().equals(derivedByType))
-    {
-    	return; // it's already the derived by type
-    }
-    Element newNode;
-  	if (derivedByType.equals("restriction"))
-  	{
-    	newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + XSDConstants.RESTRICTION_ELEMENT_TAG);
-    }
-    else
-    {
-    	newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + XSDConstants.EXTENSION_ELEMENT_TAG);
-    }
-	
-    newNode.setAttribute("base", type);
-
-    if (derivedByElement != null)
-    {
-      if (derivedByElement.hasChildNodes())
-      {        
-        NodeList nodes = derivedByElement.getChildNodes();
-        // use clones so we don't have a refresh problem
-        for (int i = 0; i < nodes.getLength(); i++)
-        {
-          Node node = nodes.item(i);       
-          newNode.appendChild(node.cloneNode(true));
-        }
-      }
-	  element.replaceChild(newNode, derivedByElement);
-    }
-    else 
-	{
-		Element parent = (Element) element.getParentNode();				// get back to complexType
-        NodeList nodes = parent.getChildNodes();
-		ArrayList nodeSaveList = new ArrayList();
-		
-		// save children. (nodes turns out to be the same object as parent;
-		// deleting them from parent will delete them from nodes.)
-        for (int i = 0; i < nodes.getLength(); i++)			
-        {
-          Node node = nodes.item(i);      
-		  nodeSaveList.add(node);
-        }
-
-        // remove children so we can surround them by complexContent
-        for (int i = 0; i < nodeSaveList.size(); i++)			
-        {
-          Node node = (Node) nodeSaveList.get(i);      
-          parent.removeChild(node);
-        }
-		
-		// build a complexContent element
-		Element complexContent = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + XSDConstants.COMPLEXCONTENT_ELEMENT_TAG);
-		parent.appendChild(complexContent);					// insert into complexType
-		complexContent.appendChild(newNode);				// insert derivation type
-        for (int i = 0; i < nodeSaveList.size(); i++)			// insert children previously of complexType
-        {
-          Node node = (Node) nodeSaveList.get(i);       
-          newNode.appendChild(node.cloneNode(true));
-        }
-		
-		parent.appendChild(complexContent);
-		formatChild(complexContent);
-    }
-  }
-
-  
-  /**
-   * Get the derived by node given the complexContent or simpleContent node
-   */
-  public Element getDerivedByElement(Element element)
-  {
-    Node restrictionChild = getChildNode(element, "restriction");
-    Node extensionChild = getChildNode(element, "extension");
-    if (restrictionChild != null)
-    {
-      if (restrictionChild instanceof Element)
-      {
-        return (Element)restrictionChild;
-      }
-    }
-    
-    if (extensionChild != null)
-    {
-      if (extensionChild instanceof Element)
-      {
-        return (Element)extensionChild;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Get the derived by node given the ComplexType node
-   * Returns the first one, if say, the INVALID schema has more than one
-   */
-  public Element getDerivedByElementFromComplexType(Element element)
-  {
-    NodeList nl = element.getChildNodes();
-    int j = 0;
-    for (j = 0; j < nl.getLength(); j++)
-    {
-      Node aNode = nl.item(j);
-      if (inputEquals(aNode, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-      {
-        break; 
-      }
-      else if (inputEquals(aNode, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        break;
-      }
-    }
-    Element derivedByNode = getDerivedByElement((Element)nl.item(j));
-    return derivedByNode;
-  }
-
-  /**
-   * Get the content model given the ComplexType node
-   * Returns the first one, if say, the INVALID schema has more than one
-   */
-  public Element getContentModelFromParent(Element element)
-  {
-    NodeList nl = element.getChildNodes();
-    int j = 0;
-    boolean modelExists = false;
-    int length = nl.getLength();
-    for (j = 0; j < length; j++)
-    {
-      Node aNode = nl.item(j);
-      if (inputEquals(aNode, XSDConstants.COMPLEXCONTENT_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break; 
-      }
-      else if (inputEquals(aNode, XSDConstants.SIMPLECONTENT_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break;
-      }
-      else if (inputEquals(aNode, XSDConstants.SEQUENCE_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break;
-      }
-      else if (inputEquals(aNode, XSDConstants.CHOICE_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break;
-      }
-      else if (inputEquals(aNode, XSDConstants.ALL_ELEMENT_TAG, false))
-      {
-        modelExists = true;
-        break;
-      }
-    }
-    if (!modelExists)
-    {
-      return null;
-    }
-
-    Element derivedByNode = (Element)nl.item(j);
-    return derivedByNode;
-  }
-
-  /**
-   * 
-   */
-  public void changeContentModel(Element complexTypeElement, String contentModel, Element sequenceChoiceOrAllElement)
-  {
-    Document doc = complexTypeElement.getOwnerDocument();
-
-    String prefix = complexTypeElement.getPrefix();
-    prefix = prefix == null ? "" : prefix + ":";
-    
-    Element contentModelElement = getContentModelFromParent(complexTypeElement);
-
-    if (contentModelElement.getLocalName().equals(contentModel))
-    {
-      return; // it's already the content model 
-    }
-    Element newNode;
-    newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + contentModel);
-
-    if (contentModelElement.hasChildNodes())
-    {        
-      NodeList nodes = contentModelElement.getChildNodes();
-      // use clones so we don't have a refresh problem
-      for (int i = 0; i < nodes.getLength(); i++)
-      {
-        Node node = nodes.item(i);
-        if (node instanceof Element)
-        {
-          if (node.getLocalName().equals(XSDConstants.ANNOTATION_ELEMENT_TAG))
-          {
-            if (!(XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.SEQUENCE_ELEMENT_TAG, false) ||
-                XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.CHOICE_ELEMENT_TAG, false) ||
-                XSDDOMHelper.inputEquals(contentModelElement, XSDConstants.ALL_ELEMENT_TAG, false)))
-            {
-              newNode.appendChild(node.cloneNode(true));
-            }
-          }
-          else if (node.getLocalName().equals(XSDConstants.RESTRICTION_ELEMENT_TAG) ||
-                    node.getLocalName().equals(XSDConstants.EXTENSION_ELEMENT_TAG))
-          {
-            newNode.appendChild(node.cloneNode(true));
-            if (sequenceChoiceOrAllElement != null)
-            {
-              node.appendChild(sequenceChoiceOrAllElement);
-            }
-          }
-          else
-          {
-            removeNodeAndWhitespace(node);
-          }
-        }
-        else
-        {
-          newNode.appendChild(node.cloneNode(true)); 
-        }
-      }
-    }
-    complexTypeElement.replaceChild(newNode, contentModelElement);
-  }
-
-  public Element cloneElement(Element parent, Element sourceNode)
-  {
-    Document doc = parent.getOwnerDocument();
-    String prefix = parent.getPrefix();
-    prefix = prefix == null ? "" : prefix + ":";
-    
-    Element newNode = doc.createElementNS(XSDDOMHelper.XMLSchemaURI, prefix + sourceNode.getLocalName());
-
-    if (sourceNode.hasChildNodes())
-    {        
-      NodeList nodes = sourceNode.getChildNodes();
-      // use clones so we don't have a refresh problem
-      for (int i = 0; i < nodes.getLength(); i++)
-      {
-        Node node = nodes.item(i);
-        newNode.appendChild(node.cloneNode(true));
-      }
-    }
-    return newNode;
-//    parent.replaceChild(newNode, sourceNode);
-  }
-
-  public static boolean hasOnlyWhitespace(Node node)
-  {
-    NodeList list = node.getChildNodes();
-    int length = list.getLength();
-    boolean hasOnlyWhitespace = true;
-    for (int i = 0; i < length; i++)
-    {
-      Node child = list.item(i);
-      if (child.getNodeType() != Node.TEXT_NODE)
-      {
-        hasOnlyWhitespace = false;
-        break;
-      }
-      else
-      {
-        String value = child.getNodeValue();
-        String trimmedValue = value.trim();
-        if (trimmedValue.length() != 0)
-        {
-          hasOnlyWhitespace = false;
-        }
-      }
-    }  
-    
-    return hasOnlyWhitespace;
-  }
-
-  public static void removeNodeAndWhitespace(Node node)
-  {
-    Node parentNode = node.getParentNode();
-    
-    Node nextElement = getNextElementNode(node);
-    Node previousElement = getPreviousElementNode(node);
-
-    Node nextSibling = node.getNextSibling();
-    if (nextSibling instanceof Text)
-    {
-      parentNode.removeChild(nextSibling);
-    }
-
-    if (parentNode != null)
-    {
-		  parentNode.removeChild(node);
-    }
-
-    if (nextElement != null)
-    {
-			formatChild(nextElement);
-    }
-
-		if (previousElement != null)
-		{
-			formatChild(previousElement);
-		}
-  }
-
-	public static void formatChild(Node 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(); 
-      }
-    }
-  }
-  
-
-  private static Node getNextElementNode(Node node)
-  {
-    Node next = node.getNextSibling();
-    
-    while (!(next instanceof Element) && next != null)
-    {
-      next = next.getNextSibling();
-    }
-    if (next instanceof Text)
-    {
-    	return null;
-    }
-    return next;
-  }
-
-	private static Node getPreviousElementNode(Node node)
-	{
-		Node previous = node.getPreviousSibling();
-    
-		while (!(previous instanceof Element) && previous != null)
-		{
-			previous = previous.getPreviousSibling();
-		}
-    if (previous instanceof Text)
-    {
-      return null;
-    }
-    return previous;
-	}
-
- 
-
-  // issue (cs) what's this method supposed to do?
-  // bizzare name
-  public static boolean inputEquals(Object input, String tagname, boolean isRef)
-  {
-    if (input instanceof Element)
-    {
-      Element element = (Element) input;
-      if (element.getLocalName().equals(tagname))
-      {
-        boolean refPresent = element.hasAttribute("ref");
-
-        return refPresent == isRef;
-      }
-    }
-    return false;
-  }
-
- 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaLocationResolverAdapterFactory.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaLocationResolverAdapterFactory.java
deleted file mode 100644
index 3c8ca3d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaLocationResolverAdapterFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-import org.eclipse.xsd.util.XSDSchemaLocationResolver;
-
-public class XSDSchemaLocationResolverAdapterFactory extends AdapterFactoryImpl
-{
-    protected XSDSchemaLocationResolverImpl schemaLocator = new XSDSchemaLocationResolverImpl();
-
-    public boolean isFactoryForType(Object type)
-    {
-      return type == XSDSchemaLocationResolver.class;
-    }
-
-    public Adapter adaptNew(Notifier target, Object type)
-    {
-      return schemaLocator;
-    }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaLocationResolverImpl.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaLocationResolverImpl.java
deleted file mode 100644
index 71e5f88..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/util/XSDSchemaLocationResolverImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.util;
-
-import org.eclipse.emf.common.notify.impl.AdapterImpl;
-import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolverPlugin;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDSchemaLocationResolver;
-import org.eclipse.xsd.util.XSDSchemaLocator;
-
-public class XSDSchemaLocationResolverImpl extends AdapterImpl implements XSDSchemaLocationResolver
-{
-    public String resolveSchemaLocation(XSDSchema xsdSchema, String namespaceURI, String schemaLocationURI)
-    {
-      String baseLocation = xsdSchema.getSchemaLocation();      
-      String result = URIResolverPlugin.createResolver().resolve(baseLocation, namespaceURI, schemaLocationURI);
-      if (result == null) {
-      	result = namespaceURI;
-      }
-      if (result == null) {
-      	result = "";
-      }
-
-      return result;
-    }
-
-    public boolean isAdatperForType(Object type)
-    {
-      return type == XSDSchemaLocator.class;
-    }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/utils/OpenOnSelectionHelper.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/utils/OpenOnSelectionHelper.java
deleted file mode 100644
index 9d5ca46..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/utils/OpenOnSelectionHelper.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.utils;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.sse.core.internal.provisional.IndexedRegion;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.xsd.ui.internal.editor.InternalXSDMultiPageEditor;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-
-
-// issue (cs) can we remove this?
-//
-public class OpenOnSelectionHelper
-{
-  
-  protected StructuredTextEditor textEditor;
-  protected XSDSchema xsdSchema;
-
- 
-  public OpenOnSelectionHelper(StructuredTextEditor textEditor, XSDSchema xsdSchema)
-  {
-  	this.textEditor = textEditor;
-  	this.xsdSchema = xsdSchema;
-  }
-  
-
-  boolean lastResult;
-  
-  public static void openXSDEditor(String schemaLocation)
-  {
-		IPath schemaPath = new Path(schemaLocation);
-		
-		final IFile schemaFile = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath);
-	
-		Display.getDefault().asyncExec(new Runnable()
-		{
-			/**
-			 * @see java.lang.Runnable#run()
-			 */
-			public void run()
-			{
-				final IWorkbenchWindow workbenchWindow = XSDEditorPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow();
-				if (workbenchWindow != null)
-				{
-					try
-					{
-					  workbenchWindow.getActivePage().openEditor(new FileEditorInput(schemaFile), XSDEditorPlugin.EDITOR_ID);
-					}
-					catch (PartInitException initEx)
-					{
-					  initEx.printStackTrace();
-					}
-					catch(Exception e)
-					{
-					  e.printStackTrace();
-					}
-				}          
-			}
-		});
-  }
-  
-  protected boolean revealObject(final XSDConcreteComponent component)
-  {
-    if (component.getRootContainer().equals(xsdSchema))
-    {
-      Node element = component.getElement();
-      if (element instanceof IndexedRegion)
-      {
-        IndexedRegion indexNode = (IndexedRegion) element;
-        textEditor.getTextViewer().setRangeIndication(indexNode.getStartOffset(), indexNode.getEndOffset() - indexNode.getStartOffset(), true);
-        return true;
-      }
-      return false;
-    }
-    else
-    {
-      lastResult = false;
-      if (component.getSchema() != null)
-      {
-				String schemaLocation = URIHelper.removePlatformResourceProtocol(component.getSchema().getSchemaLocation());
-        IPath schemaPath = new Path(schemaLocation);
-				final IFile schemaFile = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath);
-        Display.getDefault().syncExec(new Runnable()
-        {
-	        /**
-	         * @see java.lang.Runnable#run()
-	         */
-	        public void run()
-	        {
-		        final IWorkbenchWindow workbenchWindow = XSDEditorPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow();
-		        if (workbenchWindow != null)
-		        {
-							try
-							{
-								IEditorPart editorPart = workbenchWindow.getActivePage().openEditor(new FileEditorInput(schemaFile), XSDEditorPlugin.PLUGIN_ID);
-								if (editorPart instanceof InternalXSDMultiPageEditor)
-								{
-									((InternalXSDMultiPageEditor)editorPart).openOnGlobalReference(component);
-									lastResult = true;
-								}
-							}
-							catch (PartInitException initEx)
-							{
-							}
-						}          
-					}
-				});
-      }
-      return lastResult;
-    }
-  }
-  
-  public XSDNamedComponent openOnGlobalReference(XSDConcreteComponent comp)
-  {
-    XSDSchema schema = xsdSchema;
-    String name = null;
-    if (comp instanceof XSDNamedComponent)
-    {
-      name = ((XSDNamedComponent) comp).getName();
-    }
-    
-    if (schema == null || name == null)
-    {
-      return null;
-    }
-
-    List objects = null;    
-    if (comp instanceof XSDElementDeclaration)
-    {
-      objects = schema.getElementDeclarations();
-    }
-    else if (comp instanceof XSDTypeDefinition)
-    {
-      objects = schema.getTypeDefinitions();
-    }
-    else if (comp instanceof XSDAttributeGroupDefinition)
-    {
-      objects = schema.getAttributeGroupDefinitions();
-    }
-    else if (comp instanceof XSDIdentityConstraintDefinition)
-    {
-      objects = schema.getIdentityConstraintDefinitions();
-    }
-    else if (comp instanceof XSDModelGroupDefinition)
-    {
-      objects = schema.getModelGroupDefinitions();
-    }
-    else if (comp instanceof XSDAttributeDeclaration)
-    {
-      objects = schema.getAttributeDeclarations();
-    }
-
-    if (objects != null)
-    {
-      for (Iterator iter = objects.iterator(); iter.hasNext();)
-      {
-        XSDNamedComponent namedComp = (XSDNamedComponent) iter.next();
-        
-        if (namedComp.getName().equals(name))
-        {
-          revealObject(namedComp);
-          return namedComp;
-        }
-      }
-    }
-    return null;
-  }
-  
-  public boolean openOnSelection()
-  {
-    List selectedNodes = null;
-    ISelection selection = textEditor.getSelectionProvider().getSelection();
-    if (selection instanceof IStructuredSelection) {
-      selectedNodes = ((IStructuredSelection) selection).toList();
-    }
-
-    if (selectedNodes != null && !selectedNodes.isEmpty())
-    {
-      for (Iterator i = selectedNodes.iterator(); i.hasNext();)
-      {
-        Object obj = i.next();
-        if (xsdSchema != null)
-        {
-          XSDConcreteComponent xsdComp = xsdSchema.getCorrespondingComponent((Node)obj);
-          XSDConcreteComponent objectToReveal = null;
-
-          if (xsdComp instanceof XSDElementDeclaration)
-          {
-            XSDElementDeclaration elementDecl = (XSDElementDeclaration) xsdComp;
-            if (elementDecl.isElementDeclarationReference())
-            {
-              objectToReveal = elementDecl.getResolvedElementDeclaration();
-            }
-            else
-            {
-              XSDConcreteComponent typeDef = null;
-              if (elementDecl.getAnonymousTypeDefinition() == null)
-              {
-                typeDef = elementDecl.getTypeDefinition();
-              }
-              
-              XSDConcreteComponent subGroupAffiliation = elementDecl.getSubstitutionGroupAffiliation();
-              
-              if (typeDef != null && subGroupAffiliation != null)
-              {
-                // we have 2 things we can navigate to, if the cursor is anywhere on the substitution attribute
-                // then jump to that, otherwise just go to the typeDef.
-                if (obj instanceof Attr && ((Attr)obj).getLocalName().equals(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE))
-                {
-                  objectToReveal = subGroupAffiliation;
-                }
-                else
-                {
-                  // try to reveal the type now.  On success, then we return true.
-                  // if we fail, set the substitution group as the object to reveal as a backup plan.
-                  if (revealObject(typeDef))
-                  {
-                    return true;
-                  }
-                  else
-                  {
-                    objectToReveal = subGroupAffiliation;
-                  }
-                }
-              }
-              else
-              {
-                // one or more of these is null.  If the typeDef is non-null, use it.  Otherwise
-                // try and use the substitution group
-                objectToReveal = typeDef != null ? typeDef : subGroupAffiliation;
-              }
-            }
-          }
-          else if (xsdComp instanceof XSDModelGroupDefinition)
-          {
-            XSDModelGroupDefinition elementDecl = (XSDModelGroupDefinition) xsdComp;
-            if (elementDecl.isModelGroupDefinitionReference())
-            {
-              objectToReveal = elementDecl.getResolvedModelGroupDefinition();
-            }
-          }
-          else if (xsdComp instanceof XSDAttributeDeclaration)
-          {
-            XSDAttributeDeclaration attrDecl = (XSDAttributeDeclaration) xsdComp;
-            if (attrDecl.isAttributeDeclarationReference())
-            {
-              objectToReveal = attrDecl.getResolvedAttributeDeclaration();
-            }
-            else if (attrDecl.getAnonymousTypeDefinition() == null)
-            {
-              objectToReveal = attrDecl.getTypeDefinition();
-            }              
-          }
-          else if (xsdComp instanceof XSDAttributeGroupDefinition)
-          {
-            XSDAttributeGroupDefinition attrGroupDef = (XSDAttributeGroupDefinition) xsdComp;
-            if (attrGroupDef.isAttributeGroupDefinitionReference())
-            {
-              objectToReveal = attrGroupDef.getResolvedAttributeGroupDefinition();
-            }
-          }
-          else if (xsdComp instanceof XSDIdentityConstraintDefinition)
-          {
-            XSDIdentityConstraintDefinition idConstraintDef = (XSDIdentityConstraintDefinition) xsdComp;
-            if (idConstraintDef.getReferencedKey() != null)
-            {
-              objectToReveal = idConstraintDef.getReferencedKey();
-            }
-          }
-          else if (xsdComp instanceof XSDSimpleTypeDefinition)
-          {
-            XSDSimpleTypeDefinition typeDef = (XSDSimpleTypeDefinition) xsdComp;
-            objectToReveal = typeDef.getItemTypeDefinition();
-            if (objectToReveal == null)
-            {
-              // if itemType attribute is not set, then check for memberType
-              List memberTypes = typeDef.getMemberTypeDefinitions();
-              if (memberTypes != null && memberTypes.size() > 0)
-              {
-                objectToReveal = (XSDConcreteComponent)memberTypes.get(0);
-              }              
-            }
-          }
-          else if (xsdComp instanceof XSDTypeDefinition)
-          {
-            XSDTypeDefinition typeDef = (XSDTypeDefinition) xsdComp;
-            objectToReveal = typeDef.getBaseType();
-          }
-          else if (xsdComp instanceof XSDSchemaDirective)
-          {
-          	XSDSchemaDirective directive = (XSDSchemaDirective) xsdComp;
-//						String schemaLocation = URIHelper.removePlatformResourceProtocol(directive.getResolvedSchema().getSchemaLocation());
-//						openXSDEditor(schemaLocation);
-//						return false;
-            objectToReveal = directive.getResolvedSchema();						          	          	
-          }
-
-          // now reveal the object if this isn't null
-          if (objectToReveal != null)
-          {
-            return revealObject(objectToReveal);
-          }
-        }
-      }
-    }
-    return false;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/validation/DelegatingSourceValidatorForXSD.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/validation/DelegatingSourceValidatorForXSD.java
deleted file mode 100644
index accfdc9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/validation/DelegatingSourceValidatorForXSD.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.validation;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.validation.internal.ConfigurationManager;
-import org.eclipse.wst.validation.internal.ProjectConfiguration;
-import org.eclipse.wst.validation.internal.ValidationRegistryReader;
-import org.eclipse.wst.validation.internal.ValidatorMetaData;
-import org.eclipse.wst.validation.internal.provisional.ValidationFactory;
-import org.eclipse.wst.validation.internal.provisional.core.IValidator;
-import org.eclipse.wst.xml.ui.internal.Logger;
-import org.eclipse.wst.xml.ui.internal.validation.DelegatingSourceValidator;
-
-/**
- * This performs the as-you-type validation
- * @author Mark Hutchinson
- *
- */
-public class DelegatingSourceValidatorForXSD extends DelegatingSourceValidator
-{                                                
-  final private static String VALIDATOR_CLASS = "org.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator"; 
-
-  public DelegatingSourceValidatorForXSD()
-  { super();
-  }
-  
-  protected IValidator getDelegateValidator()
-  {
-    try
-    { return ValidationFactory.instance.getValidator(VALIDATOR_CLASS);
-    }
-    catch (Exception e)
-    { //
-    }
-    return null;
-  }
-  
-	protected boolean isDelegateValidatorEnabled(IFile file) {
-		boolean enabled = true;
-		try {
-			ProjectConfiguration configuration = ConfigurationManager.getManager().getProjectConfiguration(file.getProject());
-			ValidatorMetaData vmd = ValidationRegistryReader.getReader().getValidatorMetaData(VALIDATOR_CLASS);
-			if (configuration.isBuildEnabled(vmd) || configuration.isManualEnabled(vmd))
-				enabled = true;
-			else
-				enabled = false;
-		}
-		catch (InvocationTargetException e) {
-			Logger.log(Logger.WARNING_DEBUG, e.getMessage(), e);
-		}
-		return enabled;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/EnumerationsDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/EnumerationsDialog.java
deleted file mode 100644
index 10bfbeb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/EnumerationsDialog.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.widgets;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-
-/**
- * Dialog to help define a list of enumerations
- * for a join. This might be replaced once we know how to
- * initiate a drag tracker
- */
-
-public class EnumerationsDialog extends org.eclipse.jface.dialogs.Dialog
-{
-  public EnumerationsDialog(Shell shell)
-  {
-    super(shell);
-  }
-
-  protected void configureShell(Shell shell)
-  {
-    super.configureShell(shell);
-    shell.setText(XSDEditorPlugin.getXSDString("_UI_ENUMERATIONS_DIALOG_TITLE"));
-  }
-
-  protected void buttonPressed(int buttonId)
-  {
-    if (buttonId == Window.OK)
-    {
-      text = textField.getText();
-      delimiter = delimiterField.getText();
-      isPreserve = preserveWhitespace.getSelection();
-    }
-    super.buttonPressed(buttonId);
-  }
-
-  private String text, delimiter;
-  private boolean isPreserve;
-  public String getText() { return text; }
-  public String getDelimiter() { return delimiter; }
-  public boolean isPreserveWhitespace() { return isPreserve; }
-
-  private Text textField;
-  private Button preserveWhitespace;
-  private Combo delimiterField;
-  //
-  // Create the controls
-  //
-  public Control createDialogArea(Composite parent)
-  {
-    Control[] tabOrder = new Control[3];
-  	int tabIndex = 0;
-    Composite client = (Composite)super.createDialogArea(parent);
-    GridLayout layout = (GridLayout)client.getLayout();
-    layout.numColumns = 2;
-    client.setLayout(layout); 
-
-    textField = ViewUtility.createWrappedMultiTextField(client, 400, 20, true);
-    GridData gd = (GridData) textField.getLayoutData();
-    gd.horizontalSpan = 2;
-    tabOrder[tabIndex++] = textField;
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(textField, XSDEditorCSHelpIds.ADD_ENUMERATIONS__NO_NAME);
-
-    ViewUtility.createLabel(client, XSDEditorPlugin.getXSDString("_UI_LABEL_DELIMITER_CHAR"));
-    delimiterField = ViewUtility.createComboBox(client, false);
-    gd = (GridData) delimiterField.getLayoutData();
-    gd.grabExcessHorizontalSpace = false;
-    gd.horizontalAlignment = GridData.BEGINNING;
-    gd.widthHint = 30;
-    tabOrder[tabIndex++] = delimiterField;
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(delimiterField, XSDEditorCSHelpIds.ADD_ENUMERATIONS__DELIMITER_CHARS);
-
-    // add default delimiters
-    delimiterField.add(":");
-    delimiterField.add(",");
-    delimiterField.add(" ");
-    // set the current one to be ','
-    delimiterField.setText(",");
-
-    preserveWhitespace = ViewUtility.createCheckBox(client, XSDEditorPlugin.getXSDString("_UI_LABEL_PRESERVE_WHITESPACE"));
-    gd = (GridData) preserveWhitespace.getLayoutData();
-    gd.horizontalSpan = 2;
-    tabOrder[tabIndex++] = preserveWhitespace;
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(preserveWhitespace, XSDEditorCSHelpIds.ADD_ENUMERATIONS__PRESERVE_LEAD_AND_TRAIL_WHITESPACES);
-    
-    client.setTabList(tabOrder);
-
-    return client;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/TypeSection.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/TypeSection.java
deleted file mode 100644
index ddd9f79..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/TypeSection.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.widgets;
-
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.help.WorkbenchHelp;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorContextIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDSchema;
-
-public class TypeSection
-{
-  /**
-   * Constructor for TypeSection.
-   * @param parent
-   */
-  public TypeSection(Composite parent)
-  {
-  }
-
-  protected Button  simpleType;
-  protected Button  userSimpleType;
-  protected Button  userComplexType;
-  protected Button  noneRadio;
-  protected Combo   typeList;
-  protected Combo   derivedByCombo;
-  protected boolean showUserComplexType = true;
-  protected boolean showUserSimpleType  = true;
-  protected boolean showNone            = false;
-  protected boolean showDerivedBy       = false;
-  protected String  derivedByChoices[]  = { "restriction", "extension" };
-  public final int  NONE                = 1;
-  public final int  BUILT_IN            = 2;
-  public final int  SIMPLE              = 3;
-  public final int  COMPLEX             = 4;
-
-  String            sectionTitle        = XSDEditorPlugin.getXSDString("_UI_LABEL_TYPE_INFORMATION");
-  String            currentObjectUuid   = "";
-
-  /*
-   * @see FlatPageSection#createClient(Composite, WidgetFactory)
-   */
-  public Composite createClient(Composite parent)
-  {
-    Composite client = new Composite(parent, SWT.NONE);
-    GridLayout gl = new GridLayout(1, true);
-    gl.verticalSpacing = 0;
-    client.setLayout(gl);
-
-    if (showNone)
-    {
-      noneRadio = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_RADIO_NONE"));
-      WorkbenchHelp.setHelp(noneRadio, XSDEditorContextIds.XSDE_TYPE_HELPER_NONE);
-    }
-
-    simpleType = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_RADIO_BUILT_IN_SIMPLE_TYPE"));
-    WorkbenchHelp.setHelp(simpleType, XSDEditorContextIds.XSDE_TYPE_HELPER_BUILT_IN);
-
-    if (showUserSimpleType)
-    {
-      userSimpleType = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_RADIO_USER_DEFINED_SIMPLE_TYPE"));
-      WorkbenchHelp.setHelp(userSimpleType, XSDEditorContextIds.XSDE_TYPE_HELPER_USER_DEFINED_SIMPLE);
-    }
-
-    if (showUserComplexType)
-    {
-      userComplexType = ViewUtility.createRadioButton(client, XSDEditorPlugin.getXSDString("_UI_RADIO_USER_DEFINED_COMPLEX_TYPE"));
-      WorkbenchHelp.setHelp(userComplexType, XSDEditorContextIds.XSDE_TYPE_HELPER_USER_DEFINED_COMPLEX);
-    }
-
-    //	  typeList = utility.createComboBox(client);
-    //	  WorkbenchHelp.setHelp(typeList, XSDEditorContextIds.XSDE_TYPE_HELPER_TYPE);
-    //    utility.createHeadingLabel(client, "Type",null);
-
-    if (showDerivedBy)
-    {
-      Composite derivedByComposite = ViewUtility.createComposite(client, 2);
-      ViewUtility.createLabel(derivedByComposite, XSDEditorPlugin.getXSDString("_UI_LABEL_DERIVED_BY"));
-      derivedByCombo = ViewUtility.createComboBox(derivedByComposite);
-      populateDerivedByCombo();
-      WorkbenchHelp.setHelp(derivedByCombo, XSDEditorContextIds.XSDE_SIMPLE_CONTENT_DERIVED);
-      derivedByCombo.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_DERIVED_BY"));
-    }
-    // Set the default selection
-    if (showNone)
-    {
-      //		noneRadio.setSelection(true);
-      //		typeList.setEnabled(false);
-    }
-    else
-    {
-      simpleType.setSelection(true);
-    }
-    return client;
-  }
-
-  public void setIsDerivedBy(boolean derive)
-  {
-    if (derive)
-    {
-      sectionTitle = XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE");
-    }
-    else
-    {
-      sectionTitle = XSDEditorPlugin.getXSDString("_UI_LABEL_TYPE_INFORMATION");
-    }
-    //	setHeaderText(sectionTitle);
-  }
-
-  /**
-   * Set to true if called by Complex Type & Simple Type
-   */
-  public void setShowDerivedBy(boolean derive)
-  {
-    showDerivedBy = derive;
-  }
-
-  /**
-   * Gets the derivedByField
-   * @return Returns a Button
-   */
-  public Combo getDerivedByCombo()
-  {
-    return derivedByCombo;
-  }
-
-  /**
-   * Gets the noneRadio.
-   * @return Returns a Button
-   */
-  public Button getNoneRadio()
-  {
-    return noneRadio;
-  }
-
-  /**
-   * Gets the simpleType.
-   * @return Returns a Button
-   */
-  public Button getSimpleType()
-  {
-    return simpleType;
-  }
-
-  /**
-   * Gets the userComplexType.
-   * @return Returns a Button
-   */
-  public Button getUserComplexType()
-  {
-    return userComplexType;
-  }
-
-  /**
-   * Gets the userSimpleType.
-   * @return Returns a Button
-   */
-  public Button getUserSimpleType()
-  {
-    return userSimpleType;
-  }
-
-  /**
-   * Gets the typeList.
-   * @return Returns a CCombo
-   */
-  public Combo getTypeList()
-  {
-    return typeList;
-  }
-
-  /**
-   * Populate combo box with built-in simple types
-   */
-  public void populateBuiltInType(XSDSchema xsdSchema)
-  {
-    getTypeList().removeAll();
-    List items = getBuiltInTypeNamesList(xsdSchema);
-    for (int i = 0; i < items.size(); i++)
-    {
-      getTypeList().add(items.get(i).toString());
-    }
-  }
-
-  public java.util.List getBuiltInTypeNamesList(XSDSchema xsdSchema)
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getBuiltInTypeNamesList();
-  }
-
-  /**
-   * Populate combo box with user defined complex types
-   */
-  public void populateUserComplexType(XSDSchema xsdSchema, boolean showAnonymous)
-  {
-    getTypeList().removeAll();
-    if (showAnonymous)
-    {
-      getTypeList().add(XSDEditorPlugin.getXSDString("_UI_ANONYMOUS"));
-    }
-
-    List items = getUserComplexTypeNamesList(xsdSchema);
-    for (int i = 0; i < items.size(); i++)
-    {
-      getTypeList().add(items.get(i).toString());
-    }
-  }
-
-  public java.util.List getUserComplexTypeNamesList(XSDSchema xsdSchema)
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getUserComplexTypeNamesList();
-  }
-
-  public void populateUserSimpleType(XSDSchema xsdSchema, boolean showAnonymous)
-  {
-    getTypeList().removeAll();
-    if (showAnonymous)
-    {
-      getTypeList().add(XSDEditorPlugin.getXSDString("_UI_ANONYMOUS"));
-    }
-    List items = getUserSimpleTypeNamesList(xsdSchema);
-    for (int i = 0; i < items.size(); i++)
-    {
-      getTypeList().add(items.get(i).toString());
-    }
-  }
-
-  /**
-   * Populate combo box with user defined simple types
-   */
-  public void populateUserSimpleType(XSDSchema xsdSchema)
-  {
-    getTypeList().removeAll();
-    List items = getUserSimpleTypeNamesList(xsdSchema);
-    for (int i = 0; i < items.size(); i++)
-    {
-      getTypeList().add(items.get(i).toString());
-    }
-  }
-
-  public java.util.List getUserSimpleTypeNamesList(XSDSchema xsdSchema)
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    return helper.getUserSimpleTypeNamesList();
-  }
-
-  public String getPrefix(String ns, XSDSchema xsdSchema)
-  {
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    String key = helper.getPrefix(ns, true);
-    return key;
-  }
-
-  /**
-   * Populate combo box with derived by choices
-   */
-  protected void populateDerivedByCombo()
-  {
-    for (int i = 0; i < derivedByChoices.length; i++)
-    {
-      getDerivedByCombo().add(derivedByChoices[i]);
-    }
-  }
-
-  /**
-   * Gets the showUserComplexType.
-   * @return Returns a boolean
-   */
-  public boolean getShowUserComplexType()
-  {
-    return showUserComplexType;
-  }
-
-  /**
-   * Gets the showUserSimpleType.
-   * @return Returns a boolean
-   */
-  public boolean getShowUserSimpleType()
-  {
-    return showUserSimpleType;
-  }
-
-  /**
-   * Gets the showNone.
-   * @return Returns a boolean
-   */
-  public boolean getShowNone()
-  {
-    return showNone;
-  }
-
-  /**
-   * Sets the showUserComplexType.
-   * @param showUserComplexType The showUserComplexType to set
-   */
-  public void setShowUserComplexType(boolean showUserComplexType)
-  {
-    this.showUserComplexType = showUserComplexType;
-  }
-
-  /**
-   * Sets the showUserSimpleType.
-   * @param showUserSimpleType The showUserSimpleType to set
-   */
-  public void setShowUserSimpleType(boolean showUserSimpleType)
-  {
-    this.showUserSimpleType = showUserSimpleType;
-  }
-
-  /**
-   * Sets the showNone
-   * @param showUserSimpleType The showNone to set
-   */
-  public void setShowNone(boolean showNone)
-  {
-    this.showNone = showNone;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/XSDEditSchemaInfoDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/XSDEditSchemaInfoDialog.java
deleted file mode 100644
index ab93142..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/widgets/XSDEditSchemaInfoDialog.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.widgets;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.ui.internal.dialogs.EditSchemaInfoDialog;
-import org.eclipse.wst.xml.ui.internal.nsedit.CommonEditNamespacesTargetFieldDialog;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.ProductCustomizationProvider;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.xsd.XSDForm;
-
-public class XSDEditSchemaInfoDialog extends EditSchemaInfoDialog implements SelectionListener {
-	String targetNamespace;
-	CommonEditNamespacesTargetFieldDialog editNamespacesControl;
-  Combo elementFormCombo, attributeFormCombo;
-  String elementFormQualified = "", attributeFormQualified = ""; //$NON-NLS-1$ //$NON-NLS-2$
-  
-  private String [] formQualification = { "", XSDForm.QUALIFIED_LITERAL.getLiteral(), XSDForm.UNQUALIFIED_LITERAL.getLiteral() };  //$NON-NLS-1$
-	
-	public XSDEditSchemaInfoDialog(Shell parentShell, IPath resourceLocation, String targetNamespace) {
-		super(parentShell, resourceLocation);
-		this.targetNamespace = targetNamespace;
-	}
-/*
-	// in super
-	protected CommonEditNamespacesDialog createCommonEditNamespacesDialog(Composite dialogArea)
-	{
-	  return new CommonEditNamespacesDialog(dialogArea, resourceLocation, XMLUIPlugin.getResourceString("%_UI_NAMESPACE_DECLARATIONS"), false, true); //$NON-NLS-1$				
-	}
-	
-	// in super
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) super.createDialogArea(parent);
-		CommonEditNamespacesDialog editNamespacesControl = createCommonEditNamespacesDialog(dialogArea); 
-		editNamespacesControl.setNamespaceInfoList(namespaceInfoList);
-		editNamespacesControl.updateErrorMessage(namespaceInfoList);
-		return dialogArea;
-	}
-	
-	// in this
-	protected CommonEditNamespacesDialog createCommonEditNamespacesDialog(Composite dialogArea)
-	{
-	  return new CommonEditNamespacesTargetFieldDialog(dialogArea, resourceLocation); //$NON-NLS-1$				
-	}	*/
-	
-	// this is copy of ....
-    protected Control __internalCreateDialogArea(Composite parent) {
-        // create a composite with standard margins and spacing
-        Composite composite = new Composite(parent, SWT.NONE);
-        GridLayout layout = new GridLayout();
-        layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
-        layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
-        layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
-        layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
-        composite.setLayout(layout);
-        composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-        applyDialogFont(composite);
-        return composite;
-    }	
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite dialogArea = (Composite) __internalCreateDialogArea(parent);
-		editNamespacesControl = new CommonEditNamespacesTargetFieldDialog(dialogArea, resourceLocation); //$NON-NLS-1$
-		if (targetNamespace != null)
-		{	
-			editNamespacesControl.setTargetNamespace(targetNamespace);
-		}
-		editNamespacesControl.setNamespaceInfoList(namespaceInfoList);
-		editNamespacesControl.updateErrorMessage(namespaceInfoList);
-    
-    Label separator = new Label(dialogArea, SWT.SEPARATOR | SWT.HORIZONTAL);
-    GridData gd = new GridData(GridData.FILL_BOTH);
-    separator.setLayoutData(gd);
-    
-    Composite otherAttributesComposite = new Composite(dialogArea, SWT.NONE);
-    GridLayout layout = new GridLayout(2, false);
-    otherAttributesComposite.setLayout(layout);
-    GridData data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = SWT.FILL;
-    otherAttributesComposite.setLayoutData(data);
-    
-    Label elementFormLabel = new Label(otherAttributesComposite, SWT.LEFT);
-    elementFormLabel.setText(Messages._UI_LABEL_ELEMENTFORMDEFAULT);
-    
-    Object object = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor().getAdapter(ProductCustomizationProvider.class);
-    if (object instanceof ProductCustomizationProvider)
-    {
-      ProductCustomizationProvider productCustomizationProvider = (ProductCustomizationProvider)object;
-      String newString = productCustomizationProvider.getProductString("LABEL_ELEMENT_FORM_DEFAULT");
-      if (newString != null)
-      {
-        elementFormLabel.setText(newString);
-      }
-    }
-
-    
-    elementFormCombo = new Combo(otherAttributesComposite, SWT.NONE);
-    elementFormCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    elementFormCombo.setItems(formQualification);
-    elementFormCombo.addSelectionListener(this);
-    
-    Label attributeFormLabel = new Label(otherAttributesComposite, SWT.LEFT);
-    attributeFormLabel.setText(Messages._UI_LABEL_ATTRIBUTEFORMDEFAULT);
-    
-    attributeFormCombo = new Combo(otherAttributesComposite, SWT.NONE);
-    attributeFormCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    attributeFormCombo.setItems(formQualification);
-    attributeFormCombo.addSelectionListener(this);
-
-		return dialogArea;
-	}	
-	
-	public String getTargetNamespace() {
-		return editNamespacesControl.getTargetNamespace();
-	}
-  
-  public void setIsElementQualified(String state)
-  {
-    elementFormCombo.setText(state);
-  }
-  
-  public void setIsAttributeQualified(String state)
-  {
-    attributeFormCombo.setText(state);
-  }
-  
-  public String getElementFormQualified()
-  {
-    return elementFormQualified;
-  }
-  
-  public String getAttributeFormQualified()
-  {
-    return attributeFormQualified;
-  }
-  
-  public void widgetDefaultSelected(SelectionEvent e)
-  {
-   
-  }
-  
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == attributeFormCombo)
-    {
-      attributeFormQualified = attributeFormCombo.getText();
-    }
-    else if (e.widget == elementFormCombo)
-    {
-      elementFormQualified = elementFormCombo.getText();
-    }
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/NewXSDWizard.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/NewXSDWizard.java
deleted file mode 100644
index d2699df..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/NewXSDWizard.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import java.io.ByteArrayInputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorDescriptor;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.ISetSelectionTarget;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-
-public class NewXSDWizard extends Wizard implements INewWizard {
-	private XSDNewFilePage newFilePage;
-	private IStructuredSelection selection;
-	private IWorkbench workbench;
-
-	public NewXSDWizard() {
-	}
-
-	public void init(IWorkbench aWorkbench, IStructuredSelection aSelection) {
-		this.selection = aSelection;
-		this.workbench = aWorkbench;
-
-		this.setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(XSDEditorPlugin.class, "icons/NewXSD.gif"));
-		this.setWindowTitle(XSDEditorPlugin.getXSDString("_UI_WIZARD_CREATE_XSD_MODEL_TITLE"));
-	}
-
-	public void addPages() {
-		newFilePage = new XSDNewFilePage(selection);
-		addPage(newFilePage);
-	}
-
-	public boolean performFinish() {
-		IFile file = newFilePage.createNewFile();
-
-		//
-		// Get the xsd schema name from the full path name
-		// e.g. f:/b2b/po.xsd => schema name = po
-		//
-		IPath iPath = file.getFullPath().removeFileExtension();
-		// String schemaName = iPath.lastSegment();
-		String schemaName = iPath.lastSegment();
-		String schemaPrefix = "tns";
-		String prefixForSchemaNamespace = "";
-		String schemaNamespaceAttribute = "xmlns";
-		if (XSDEditorPlugin.getPlugin().isQualifyXMLSchemaLanguage()) {
-			// Added this if check before disallowing blank prefixes in the
-			// preferences...
-			// Can take this out. See also XSDEditor
-			if (XSDEditorPlugin.getPlugin().getXMLSchemaPrefix().trim().length() > 0) {
-				prefixForSchemaNamespace = XSDEditorPlugin.getPlugin().getXMLSchemaPrefix() + ":";
-				schemaNamespaceAttribute += ":" + XSDEditorPlugin.getPlugin().getXMLSchemaPrefix();
-			}
-		}
-
-		Preferences preference = XMLCorePlugin.getDefault().getPluginPreferences();
-		String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-		if (charSet == null || charSet.trim().equals("")) {
-			charSet = "UTF-8";
-		}
-
-		String newContents = "<?xml version=\"1.0\" encoding=\"" + charSet + "\"?>\n";
-
-		String defaultTargetURI = XSDEditorPlugin.getPlugin().getXMLSchemaTargetNamespace();
-		newContents += "<" + prefixForSchemaNamespace + "schema " + schemaNamespaceAttribute + "=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"" + defaultTargetURI + schemaName + "\" xmlns:" + schemaPrefix + "=\"" + defaultTargetURI + schemaName + "\" elementFormDefault=\"qualified\">\n</" + prefixForSchemaNamespace + "schema>";
-
-		try {
-			byte[] bytes = newContents.getBytes(charSet);
-			ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);
-
-			file.setContents(inputStream, true, false, null);
-			inputStream.close();
-		}
-		catch (Exception e) {
-			// XSDEditorPlugin.getPlugin().getMsgLogger().write("Error writing
-			// default content:\n" + newContents);
-			// XSDEditorPlugin.getPlugin().getMsgLogger().write(e);
-		}
-
-		if (file != null) {
-			revealSelection(new StructuredSelection(file));
-		}
-
-		openEditor(file);
-
-		return true;
-	}
-
-	private void revealSelection(final ISelection selection) {
-		if (selection != null) {
-			IWorkbench workbench2;
-			if (workbench == null)
-			{
-			  workbench2 = XSDEditorPlugin.getPlugin().getWorkbench();
-			}
-			else
-			{
-			  workbench2 = workbench;
-			}
-			final IWorkbenchWindow workbenchWindow = workbench2.getActiveWorkbenchWindow();
-			final IWorkbenchPart focusPart = workbenchWindow.getActivePage().getActivePart();
-			if (focusPart instanceof ISetSelectionTarget) {
-				Display.getCurrent().asyncExec(new Runnable() {
-					public void run() {
-						((ISetSelectionTarget) focusPart).selectReveal(selection);
-					}
-				});
-			}
-		}
-	}
-
-	public void openEditor(final IFile iFile) {
-		if (iFile != null) {
-			IWorkbench workbench2;
-			if (workbench == null)
-			{
-			  workbench2 = XSDEditorPlugin.getPlugin().getWorkbench();
-			}
-			else
-			{
-			  workbench2 = workbench;
-			}
-			final IWorkbenchWindow workbenchWindow = workbench2.getActiveWorkbenchWindow();
-
-			Display.getDefault().asyncExec(new Runnable() {
-				public void run() {
-					try {
-						String editorId = null;
-						IEditorDescriptor editor = PlatformUI.getWorkbench().getEditorRegistry().getDefaultEditor(iFile.getLocation().toOSString(), iFile.getContentDescription().getContentType());
-						if (editor != null) {
-							editorId = editor.getId();
-						}
-						workbenchWindow.getActivePage().openEditor(new FileEditorInput(iFile), editorId);
-						
-					}
-					catch (PartInitException ex) {
-					}
-					catch (CoreException ex) {
-					}
-				}
-			});
-		}
-	}
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexCompositionPage.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexCompositionPage.java
deleted file mode 100644
index 6a9edce..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexCompositionPage.java
+++ /dev/null
@@ -1,947 +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
- *******************************************************************************/
-// Based on version 1.12 of original xsdeditor
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import java.util.regex.Pattern;
-import java.util.regex.PatternSyntaxException;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDPatternFacet;
-
-
-
-/*
--other regex features (eg case sensitivity, ^ or $, |, etc etc)
--smarter model
--better keyboard navigation
--update list of tokens 
-*/
-
-public class RegexCompositionPage extends WizardPage
-{
-  private static final boolean debug = false;
-
-  /* The text representation of our pattern. */
-  private StyledText value; 
-
-  /* The StyleRange used to color code the current parse error. */
-  private StyleRange currentError;
-
-  /* The regex terms we can form tokens from. */
-  private Combo terms;
-
-  /* The checkbox for activating auto-escape mode. */  
-  private Button escapeCheckbox;
-  
-  /* On/off status of auto-escape mode. */ 
-  private boolean autoEscapeStatus;
-
-  /* The Add Token button. */
-  private Button add;
-
-
-  // The following controls are used in the occurrence selection group
-
-  private Text repeatValue;
-
-  private Text rangeMinValue;
-  private Text rangeMaxValue;
-  private Label rangeToLabel;  
-
-  private Button singleRadio;
-  private Button starRadio;
-  private Button plusRadio;
-  private Button optionalRadio; 
-  private Button repeatRadio;
-  private Button rangeRadio;
-
-  
-  // The following variables used as part of the model. 
-
-  /* Our pattern. */
-  private XSDPatternFacet pattern;
-
-  /* Model used to store the current token. */
-  private RegexNode node;    
-
-  /* The flags passed to the new RegularExpression object.  Default value includes:
-      X = XMLSchema mode    */
-  private String regexFlags = "X";
-      
-
-  /* Is the current regex token valid? */
-  private boolean isValidToken;
-
-  /* The label used to indicate the value's caret position when it looses focus. */
-  private Label caretLabel;
-
-  /* The pixel offsets needed to align the label icon with the caret location.
-     These are dependent on the icon used. */
-  private static final int CARET_LABEL_X_OFFSET = -3;
-  private static final int CARET_LABEL_Y_OFFSET = 19;
-
-  
-  /* Enumerated constants for specifying the type of an error message. */
-  private static final int TOKEN = 0;
-  private static final int SELECTION = 1;
-  private static final int PARSE = 2;
-  
-  private static final int NUM_ERROR_MESSAGE_TYPES = 3;
-  
-  /* The current error message for each type of error.  A value of null indicates no message. 
-     The array is indexed according to the above constants.
-  */
-  private String[] currentErrorMessages;
-
-
-  public RegexCompositionPage(XSDPatternFacet pattern)
-  {
-    super(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_COMPOSITION_PAGE_TITLE"));
-    this.pattern = pattern;
-
-    setTitle(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_COMPOSITION_PAGE_TITLE"));
-    setDescription(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_COMPOSITION_PAGE_DESCRIPTION"));
-  }
-
-  public void createControl(Composite parent)
-  {
-    // Set up our model and validator
-    node = new RegexNode();
-        
-    isValidToken = true;
-
-    currentErrorMessages = new String[NUM_ERROR_MESSAGE_TYPES];
-
-    // The main composite
-    Composite composite= new Composite(parent, SWT.NONE);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, XSDEditorCSHelpIds.REGEX_WIZARD_PAGE);
-    composite.setLayout(new GridLayout());
-
-
-    // The composite for the token combo box, label, and auto-escape checkbox
-    Composite tokenComposite = new Composite (composite, SWT.NONE);
-    GridLayout tokenCompositeLayout = new GridLayout();
-    tokenCompositeLayout.numColumns = 3;
-    tokenCompositeLayout.marginWidth = 0;
-    tokenComposite.setLayout(tokenCompositeLayout);
-
-
-    new Label(tokenComposite, SWT.LEFT).setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TOKEN_LABEL"));
-    
-    terms = new Combo(tokenComposite, SWT.DROP_DOWN);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(terms, XSDEditorCSHelpIds.REGEX_TOKEN_CONTENTS);
-    for (int i = 0; i < RegexNode.getNumRegexTerms(); i++)
-    {
-      terms.add(RegexNode.getRegexTermText(i));
-    }
-    terms.addListener(SWT.Modify, new ComboListener());
-    terms.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_TERMS"));
-
-    escapeCheckbox = new Button(tokenComposite, SWT.CHECK);
-    escapeCheckbox.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_AUTO_ESCAPE_CHECKBOX_LABEL"));
-    escapeCheckbox.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_AUTO_ESCAPE_CHECKBOX")); 
-    escapeCheckbox.addSelectionListener(new CheckboxListener());
-    autoEscapeStatus = false;
-
-
-    // Set up the composites pertaining to the selection of occurrence quantifiers
-
-    Group occurrenceSelectionArea = new Group(composite, SWT.NONE);
-    occurrenceSelectionArea.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_OCCURENCE_LABEL"));
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(occurrenceSelectionArea, XSDEditorCSHelpIds.REGEX_WIZARD_PAGE);
-    GridLayout selectionAreaLayout = new GridLayout();
-    selectionAreaLayout.numColumns = 2;
-    occurrenceSelectionArea.setLayout(selectionAreaLayout);
-
-    occurrenceSelectionArea.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    // Listener used for all of the text fields
-    TextListener textListener = new TextListener();
-    
-
-    // Add the radio buttons
-    RadioSelectListener radioSelectListener = new RadioSelectListener();
-
-    singleRadio = addOccurenceRadioButton(RegexNode.SINGLE, occurrenceSelectionArea, radioSelectListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(singleRadio, XSDEditorCSHelpIds.REGEX_JUST_ONCE);
-    ViewUtility.createHorizontalFiller(occurrenceSelectionArea, 1);
-
-    starRadio = addOccurenceRadioButton(RegexNode.STAR, occurrenceSelectionArea, radioSelectListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(starRadio, XSDEditorCSHelpIds.REGEX_ZERO_OR_MORE);
-    ViewUtility.createHorizontalFiller(occurrenceSelectionArea, 1);
-
-    plusRadio = addOccurenceRadioButton(RegexNode.PLUS, occurrenceSelectionArea, radioSelectListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(plusRadio, XSDEditorCSHelpIds.REGEX_ONE_OR_MORE);
-    ViewUtility.createHorizontalFiller(occurrenceSelectionArea, 1);
-
-    optionalRadio = addOccurenceRadioButton(RegexNode.OPTIONAL, occurrenceSelectionArea, radioSelectListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(optionalRadio, XSDEditorCSHelpIds.REGEX_OPTIONAL);
-    ViewUtility.createHorizontalFiller(occurrenceSelectionArea, 1);
-
-    repeatRadio = addOccurenceRadioButton(RegexNode.REPEAT, occurrenceSelectionArea, radioSelectListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(repeatRadio, XSDEditorCSHelpIds.REGEX_REPEAT_RADIO);
-    
-    repeatValue = new Text(occurrenceSelectionArea, SWT.SINGLE | SWT.BORDER);
-    repeatValue.addListener(SWT.Modify, textListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(repeatValue, XSDEditorCSHelpIds.REGEX_REPEAT_FIELD);
-    repeatValue.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_REPEAT"));
-    repeatValue.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    setEnabledStatus(RegexNode.REPEAT, false);
-    
-    rangeRadio = addOccurenceRadioButton(RegexNode.RANGE, occurrenceSelectionArea, radioSelectListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(rangeRadio, XSDEditorCSHelpIds.REGEX_RANGE_RADIO);
-
-    // Add text fields and labels for specifying the range    
-    Composite rangeWidgets = new Composite(occurrenceSelectionArea, SWT.NONE);
-    GridLayout gridLayout = new GridLayout(3, false);
-    gridLayout.marginHeight = 0;
-    gridLayout.marginWidth = 0;
-    rangeWidgets.setLayout(gridLayout);
-    rangeWidgets.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    
-    rangeMinValue = new Text(rangeWidgets, SWT.SINGLE | SWT.BORDER);
-    rangeMinValue.addListener(SWT.Modify, textListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(rangeMinValue, XSDEditorCSHelpIds.REGEX_RANGE_MINIMUM_FIELD);
-    rangeMinValue.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_MIN"));
-    rangeMinValue.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    
-    rangeToLabel = new Label(rangeWidgets, SWT.NONE);
-    rangeToLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TO_LABEL"));
-    
-    rangeMaxValue = new Text(rangeWidgets, SWT.SINGLE | SWT.BORDER);
-    rangeMaxValue.addListener(SWT.Modify, textListener);
-    rangeMaxValue.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_MAX"));
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(rangeMaxValue, XSDEditorCSHelpIds.REGEX_RANGE_MAXIMUM_FIELD);
-    rangeMaxValue.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    setEnabledStatus(RegexNode.RANGE, false);
-    
-    singleRadio.setSelection(true);
-    
-    // The add button
-    add = new Button(composite, SWT.PUSH);
-    add.addSelectionListener(new ButtonSelectListener());
-    add.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_ADD_BUTTON_LABEL"));
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(add, XSDEditorCSHelpIds.REGEX_ADD_BUTTON);
-    add.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_ADD_BUTTON"));
-
-    
-    Label separator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
-    separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    
-    // Our main text box
-
-    Label valueLabel= new Label(composite, SWT.LEFT);
-    valueLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_CURRENT_REGEX_LABEL"));
-    
-    value = new StyledText(composite, SWT.SINGLE | SWT.BORDER);
-    value.addListener(SWT.Modify, textListener);
-    value.addListener(SWT.Selection, textListener);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(value, XSDEditorCSHelpIds.REGEX_CURRENT_VALUE);
-    value.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_CURRENT_REGEX"));
-    value.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    value.setFocus();
-
-    // StyleRange used for highlighting parse errors
-    currentError = new StyleRange();
-    currentError.length = 1;
-    currentError.foreground = parent.getDisplay().getSystemColor(SWT.COLOR_RED);
-
-    // The caret label
-    caretLabel = new Label(composite, SWT.LEFT);
-    caretLabel.setImage(XSDEditorPlugin.getXSDImage("icons/RegexWizardArrow.gif"));
-    caretLabel.setToolTipText(XSDEditorPlugin.getXSDString("_UI_TOOLTIP_REGEX_WIZARD_CARET_LABEL"));
-    setShowCaretLabel(true);
-
-    value.addFocusListener(new TextFocusListener());
-
-    terms.select(0);
-
-
-    setControl(composite);
-  }
-
-
-  public void setVisible(boolean visible)
-  {
-    super.setVisible(visible);
-
-    value.setText(pattern.getLexicalValue());
-    value.setCaretOffset(value.getCharCount());
-  }
-
-  public void dispose()
-  {
-    super.dispose();
-  }
-
-
-  /**
-   * Sets the visible status of caretLabel to status.  If status is true, then we also update the position
-   * of caretLabel in one of two ways.  If there is no active selection in value, we set caretLabel's
-   * position to correspond with the position of the actual caret.  Alternatively, if there is an active selection
-   * in value, we set caretLabel's position to the beginning of the selection.
-   *
-   * @param The new visibility status of caretLabel.
-   */
-  private void setShowCaretLabel(boolean status)
-  {
-    if (status)
-    {
-  
-      int offset;
-      
-      if (value.getSelectionText().equals(""))
-      {
-        offset = value.getCaretOffset();
-      }
-      else
-      {
-        offset = value.getSelection().x;
-      }
-  
-      Point p = value.getLocationAtOffset(offset);
-      
-      p.x += value.getLocation().x;
-      p.y = value.getLocation().y;
-      
-      // Place the label under value, and make sure it is aligned with the caret.
-      // The offsets are dependent on the icon used.
-      p.x += CARET_LABEL_X_OFFSET;
-      p.y += CARET_LABEL_Y_OFFSET;
-  
-      if (debug)
-      {
-        System.out.println("POINT: " + p); //$NON-NLS-1$
-      }
-      
-      caretLabel.setLocation(p);
-      caretLabel.setVisible(true);
-    }
-    else
-    {
-      caretLabel.setVisible(false);
-    }
-  }
-
-
-  /**
-   * Adds a new radio button to Composite c with SelectionListener l.  The text of the button is the String associated with
-   * quantifier.
-   *
-   * @param quantifier The desired quantifier, as enumerated in RegexNode.
-   * @param c The Composite to add the buttons to (normally occurrenceRadioButtons).
-   * @param l The SelectionListener (normally radioSelectionListener).
-   * @return The newly created button.
-   */
-  private Button addOccurenceRadioButton(int quantifier, Composite c, SelectionListener l)
-  {
-    Button result = new Button(c, SWT.RADIO);
-    result.setText(RegexNode.getQuantifierText(quantifier));
-    result.addSelectionListener(l);
-    return result;
-  }
-
-
-  /**
-   * Validates the regex in value.  If the regex is valid, clears the Wizard's error message.  If it's not valid,
-   *  sets the Wizard's error message accordingly.
-   *
-   * @return Whether the regex is valid.
-   */
-  private boolean validateRegex()
-  {
-
-    boolean isValid;
-    try
-    {
-      // We validate the regex by checking whether we get a ParseException.
-      // By default, we assume that it's valid unless we determine otherwise.
-      isValid = true;
-      displayRegexErrorMessage(null);
-      value.setStyleRange(null);
-
-      Pattern.compile(value.getText());
-    }
-    catch (PatternSyntaxException pe)
-    {
-      isValid = false;
-      displayRegexErrorMessage(pe.getMessage());
-
-      // An off-by-one bug in the xerces regex parser will sometimes return a location for the parseError that
-      //  is off the end of the string.  If this is the case, then we want to highlight the last character.
-      if (pe.getIndex() >= value.getText().length())
-      {
-        currentError.start = value.getText().length() - 1;
-      }
-      else
-      {
-        currentError.start = pe.getIndex();
-      }
-
-      if (debug)
-      {
-        System.out.println("Parse Error location: " + pe.getIndex());  //$NON-NLS-1$
-        System.out.println("currentError.start: " + currentError.start); //$NON-NLS-1$
-      }
-
-      value.setStyleRange(currentError);
-
-    }
-
-    // Another bug in the xerces parser will sometimes throw a RuntimeException instead of a ParseException.
-    //  When we get a RuntimeException, we aren't provided with the additional information we need to highlight
-    //  the parse error.  So, we merely report that there is an error.
-    catch (RuntimeException re)
-    {
-      displayRegexErrorMessage("");
-      value.setStyleRange(null);
-      isValid = false;
-    }
-    
-    setPageComplete(isValid);    
-    return isValid;
-  }
-
-  
-  /**
-   * Manages the display of error messages.
-   * Sets the error message for type to errorMessage.  If errorMessage != null, then we set the Wizard's error message
-   * to errorMessage.  If errorMessage == null, then we check whether we have a pending message of another type.
-   * If we do, then it is displayed as the Wizard's error message.  If we don't, then the Wizard's error message field
-   * is cleared.
-   *
-   * @param errorMessage The text of the new error message.  A value of null indicates that the error message should
-   *  be cleared.
-   * @param type The error type, one of PARSE, TOKEN, or SELECTION.
-   */ 
-  private void displayErrorMessage(String errorMessage, int type)
-  {
-    String messageToDisplay = null;
-
-
-    currentErrorMessages[type] = errorMessage;
-
-    messageToDisplay = errorMessage;
-
-    for (int i = 0; i < NUM_ERROR_MESSAGE_TYPES; i++)
-    {
-      if (messageToDisplay != null)
-      {
-        break;
-      }
-      messageToDisplay = currentErrorMessages[i];
-    }
-
-    setErrorMessage(messageToDisplay);
-  }
-
-
-  /**
-   * Sets the Wizard's error message to message, preceded by a standard prefix.
-   *
-   * @param message The new error message (or null to clear it).
-   */
-  private void displayRegexErrorMessage (String errorMessage)
-  {
-    if (errorMessage == null)
-    {
-      displayErrorMessage(null, PARSE);
-    }
-    else
-    {
-    	if (errorMessage.trim().equals("")) // when there is no error message available.
-    	{
-        displayErrorMessage(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_REGEX_ERROR"),
-                           PARSE);
-      }
-      else
-      {
-        displayErrorMessage(errorMessage, PARSE);
-      }
-    }
-  }
-
-
-  /**
-   * Updates the token status.  Sets isValidToken to status && the status of the other error type.
-   * If status is true, we clear the wizard's error message for this type; if it is false, we set it to errorMessage.
-   *
-   * @param status The new isValidToken value.
-   * @param errorMessage The new error message.
-   * @param type The type of the error (either TOKEN or SELECTION).
-   */
-  private void setTokenStatus (boolean status, String errorMessage, int type)
-  {
-    boolean otherTypeStatus =     (type == TOKEN) ? 
-                                  currentErrorMessages[SELECTION] == null :
-                                  currentErrorMessages[TOKEN] == null;
-    
-    isValidToken = status && otherTypeStatus;
-    add.setEnabled(isValidToken);
-
-    if (status)
-    {
-      displayErrorMessage(null, type);
-    }
-    else
-    {
-    	if (errorMessage != null && errorMessage.trim().equals("")) // when there is no error message available.
-    	{
-        displayErrorMessage(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_TOKEN_ERROR"),
-                           type);
-      }
-      else
-      {
-        displayErrorMessage(errorMessage, type);
-      }
-    }
-  }
-
-  
-  /**
-   * Updates the token status.  Sets isValidToken to status && the status of the other error type.
-   * Also clears the wizard's error message for this type.
-   * Usually used to set isValidToken to true.
-   *
-   * @param status The new isValidToken value.
-   * @param type The type of the error (either TOKEN or SELECTION).
-   */
-  private void setTokenStatus(boolean status, int type)
-  {
-    setTokenStatus(status, null, type);
-  }
-
-
-
-  /**
-   * Sets the enabled status of the text fields and labels associated with the specified quantifier.
-   * If status is true, then fields and labels associated with other quantifiers are disabled.
-   * @param quantifier The quantifier whose elements' enabled status we wish to change
-   *   (as enumerated in RegexNode).
-   * @param status The new status of the elements.  If true, then all elements associated with other buttons
-   *               are disabled.
-   */    
-  private void setEnabledStatus(int quantifier, boolean status)
-  {
-    switch (quantifier)
-    {
-    
-    case RegexNode.REPEAT:
-      repeatValue.setEnabled(status);
-      if (status)
-      {
-        rangeMinValue.setEnabled(false);
-        rangeMaxValue.setEnabled(false);
-        rangeToLabel.setEnabled(false);
-      }
-      break;
-
-    case RegexNode.RANGE:
-      rangeMinValue.setEnabled(status);
-      rangeMaxValue.setEnabled(status);
-      rangeToLabel.setEnabled(status);
-      if (status)
-      {
-        repeatValue.setEnabled(false);
-      }
-      break;
-
-    }
-  }
-
-  /**
-   * Checks to see if there is a selection in value.  If there is not, we set the Wizard's error message accordingly.
-   * If there is, we update the contents of node.  If "Current Selection" is not the current token, then
-   * we clear the Selection error message.
-   */
-  private void updateCurrentSelectionStatus()
-  {
-    if (terms.getSelectionIndex() == RegexNode.SELECTION)
-    {
-      String selection = value.getSelectionText();
-      if (selection.equals(""))
-      {
-        setTokenStatus(false, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_SELECTION_ERROR"), SELECTION);
-      }
-      else
-      {
-        setTokenStatus(true, SELECTION);
-        node.setContents(selection);
-        node.setHasParens(true);
-      }
-    }
-    else
-    {
-      setTokenStatus(true, SELECTION);
-    }
-  }
-
-  /**
-   * Updates the enabled status of the auto-escape checkbox.  If status is true, we enable the checkbox, and
-   * set its selection status and node's auto-escape status to the value of autoEscapeStatus.  If status is
-   * false, then we disable and deselect the checkbox, and set node's status to false.
-   *
-   * @param status The new enabled status.
-   */
-  private void setEscapeCheckboxEnabledStatus(boolean status)
-  {
-    if (status)
-    {
-      escapeCheckbox.setEnabled(true);
-      escapeCheckbox.setSelection(autoEscapeStatus);
-      node.setAutoEscapeStatus(autoEscapeStatus);
-    }
-    else
-    {
-      escapeCheckbox.setEnabled(false);
-      escapeCheckbox.setSelection(false);
-      node.setAutoEscapeStatus(false);
-    }
-  }
-
-
-  /**
-   * Returns the current regex flags.
-   */
-  String getFlags()
-  {
-    return regexFlags;
-  }
-
-  /**
-   * Returns the current XSDPattern model.
-   */
-  XSDPatternFacet getPattern()
-  {
-    return pattern;
-  }
-
-
-  /**
-   * Returns a string consisting of the values of min, max, and repeat stored in node.
-   * Used for debugging purposes only.
-   */  
-  private String getAllFieldValues()
-  {
-      String result = "";
-      result += "Min: " + node.getMin() + "\n";
-      result += "Max: " + node.getMax() + "\n";
-      result += "Repeat: " + node.getRepeat() + "\n";
-      result += "\n";
-      return result;
-  }
-  
-
-  /* Listener for the add button. */
-  class ButtonSelectListener implements SelectionListener
-  {
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-    // Precondition: isValidToken == true  
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (!isValidToken) // should never happen
-      {
-        return;
-      }
-
-      // Whether there is anything selected in value.
-      boolean isActiveSelection = value.getSelectionCount() != 0;
-      
-      value.insert(node.toString());
-
-      if (terms.getSelectionIndex() == RegexNode.SELECTION)
-      {
-        updateCurrentSelectionStatus();
-      }
-
-      // If nothing is selected, then we need to advance the caret location.
-      if (!isActiveSelection)
-      {
-        value.setCaretOffset(value.getCaretOffset() + node.toString().length());
-      }
-
-      value.setFocus();
-
-    }
-
-  }
- 
-
-  /* Listener for the terms combo box. */
-  class ComboListener implements Listener
-  {
-    public void handleEvent(Event e)
-    {
-      
-      updateCurrentSelectionStatus();
-
-      // If the user has typed in a token
-      if (terms.getSelectionIndex() == -1)
-      {
-        setEscapeCheckboxEnabledStatus(true);
-        node.setContents(terms.getText());
-        node.setHasParens(true);
-        
-
-        if (debug)
-        {
-          System.out.println(terms.getText());
-        }
-
-      }
-      else if (terms.getSelectionIndex() == RegexNode.SELECTION)
-      {
-        setEscapeCheckboxEnabledStatus(false);
-      }
-      else
-      {
-        node.setContents(RegexNode.getRegexTermValue(terms.getSelectionIndex()));
-        node.setHasParens(false);
-        setEscapeCheckboxEnabledStatus(false);
-      }
-    }
-  }
-
-
-  /* Listener for enabling/disabling caretLabel. */
-  class TextFocusListener implements FocusListener
-  {
-    public void focusGained(FocusEvent e)
-    {
-      setShowCaretLabel(false);
-    }
-    public void focusLost(FocusEvent e)
-    {
-      setShowCaretLabel(true);
-    }
-  }
-
-
-
-  /* Listener for the text fields. */
-  class TextListener implements Listener
-  {
-    public void handleEvent (Event e)
-    {
-
-      if (debug)
-      {
-        System.out.println("Inside TextListener handler");  //$NON-NLS-1$
-        System.out.println(e);
-        System.out.println(getAllFieldValues());
-      }
-
-
-      if ( (e.widget == value) && (e.type == SWT.Modify) )
-      {
-        pattern.setLexicalValue(value.getText());
-        validateRegex();
-      }
-
-      else if (e.widget == value && e.type == SWT.Selection)
-      {
-        if (terms.getSelectionIndex() == RegexNode.SELECTION)
-        {
-          updateCurrentSelectionStatus();
-        }
-      }
-
-      else if (e.widget == rangeMinValue)
-      {
-        boolean isValid = node.setMin(rangeMinValue.getText());
-
-        if (isValid)
-        {
-          setTokenStatus(true, null, TOKEN);
-        }
-        else
-        {
-          setTokenStatus(false,  XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_MIN_ERROR_SUFFIX"), TOKEN);
-        }
-      }
-
-      else if (e.widget == rangeMaxValue)
-      {
-        boolean isValid = node.setMax(rangeMaxValue.getText());
-
-        if (node.getMin() == RegexNode.EMPTY)
-        {
-          setTokenStatus(false, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_MISSING_MIN_ERROR_SUFFIX"), TOKEN);
-        }
-        else if (isValid)
-        {
-          setTokenStatus(true, null, TOKEN);
-        }
-        else
-        {
-          setTokenStatus(false, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_MAX_ERROR_SUFFIX"), TOKEN);
-        }
-      }
-
-      else  // (e.widget == repeatValue)
-      {
-        boolean isValid = node.setRepeat(repeatValue.getText());
-        if (isValid)
-        {
-          setTokenStatus(true, null, TOKEN);
-        }
-        else
-        {
-          setTokenStatus(false, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_REPEAT_ERROR_SUFFIX"), TOKEN);
-        }
-      }
-    }
-  }
-
-  /* Listener for the auto-escape checkbox. */
-  class CheckboxListener implements SelectionListener
-  {
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-    public void widgetSelected(SelectionEvent e)
-    {
-      boolean newStatus = !autoEscapeStatus;
-      node.setAutoEscapeStatus(newStatus);
-      autoEscapeStatus = newStatus;
-      
-      if (debug)
-      {
-        System.out.println("AutoEscape Status: " + node.getAutoEscapeStatus());  //$NON-NLS-1$ 
-      }
-    }
-
-  }
-
-
-  /* Listener for the radio buttons. */
-  class RadioSelectListener implements SelectionListener
-  {
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (debug)
-      {
-        System.out.println(getAllFieldValues());
-      }
-
-
-      int currentQuantifier = getQuantifier(e);
-
-      node.setQuantifier(currentQuantifier);
-
-      switch (currentQuantifier)
-      {
-      case RegexNode.SINGLE:                     
-      case RegexNode.STAR:
-      case RegexNode.PLUS:
-      case RegexNode.OPTIONAL:
-        setEnabledStatus(RegexNode.REPEAT, false);
-        setEnabledStatus(RegexNode.RANGE, false);
-        setTokenStatus(true, TOKEN);
-        break; 
-
-      case RegexNode.REPEAT:
-        setEnabledStatus(RegexNode.REPEAT, true);
-        setTokenStatus(node.hasValidRepeat(), XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_REPEAT_ERROR_SUFFIX"), TOKEN);
-        repeatValue.setFocus();
-        break;
-
-      case RegexNode.RANGE:
-        setEnabledStatus(RegexNode.RANGE, true);
-        String error = (node.hasValidMin()) ? 
-                            XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_MAX_ERROR_SUFFIX") : 
-                            XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_INVALID_MIN_ERROR_SUFFIX");
-
-        setTokenStatus( node.hasValidMin() && node.hasValidMax(), error, TOKEN);
-        rangeMinValue.setFocus();
-        break;
-      }
-    }
-
-    private int getQuantifier(SelectionEvent e)
-    {
-
-      if (e.widget == singleRadio)
-      {
-        return RegexNode.SINGLE;
-      }
-      
-      else if (e.widget == starRadio)
-      {
-        return RegexNode.STAR;
-      }
-      
-      else if (e.widget == plusRadio)
-      {
-        return RegexNode.PLUS;
-      }
-      
-      else if (e.widget == optionalRadio)
-      {
-        return RegexNode.OPTIONAL;
-      }
-      
-      else if (e.widget == repeatRadio)
-      {
-        return RegexNode.REPEAT;
-      }
-      
-      else if (e.widget == rangeRadio)
-      {
-        return RegexNode.RANGE;
-      }
-      
-      else // can't get here
-      { 
-        return RegexNode.EMPTY;
-      }
-    } 
-  }
-  
-  public String getValue()
-  {
-    return value.getText();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexNode.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexNode.java
deleted file mode 100644
index 810b1a5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexNode.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-
-class RegexNode
-{
-  private String contents;
-  private int min;
-  private int max;
-  private int repeat;
-  private int quantifier;
-  private boolean hasParens;
-  private boolean autoEscapeStatus;
-
-  
-  /* Quantifiers. */
-  public static final int SINGLE = 0;    
-  public static final int STAR = 1;
-  public static final int PLUS = 2;
-  public static final int OPTIONAL = 3;
-  public static final int REPEAT = 4; 
-  public static final int RANGE = 5;
-
-  /* Regex quantifiers.  First column is the on-screen textual representation, second column is the 
-   on-screen regex representation.  The two are concatenated together to form the on-screen
-   representation.
-   Indexing of this array must correspond to the values of the quantifier constants above.
-  */
-  private static final String[][] regexQuantifiers =
-  { 
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_SINGLE"),   ""  },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_STAR"),     "*" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_PLUS"),     "+" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_OPTIONAL"), "?" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_REPEAT"),   ""  },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_QUANTIFIER_RANGE"),    ""  },
-  };
-
-
-  /* Regex tokens.  First column is the on-screen representation, second column is the regex representation. 
-     More tokens can be added, but it is assumed that "Current Selection" is the last element in the array.
-     If this is not the case, then the value of the SELECTION constant below will need to be changed 
-     accordingly.
-     Also note that because these are java Strings, backslashes must be escaped (this is only relevant to the
-     second column of the array).
-   */
-  private static final String[][] regexTerms =
-  { 
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_ANY_CHAR"),   "."     },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_ALPHANUMERIC_CHAR"),   "\\w"     },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_WHITESPACE"), "\\s"   },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_DIGIT"),      "\\d"   },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_UPPER"),      "[A-Z]" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_LOWER"),      "[a-z]" },
-    { XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TERM_SELECTION"),  ""      },
-  };
-
-  /* Token enumerated constants. */
-
-  // SELECTION must correspond to the index in regexTerms of "Current Selection".  This is assumed to be
-  //  the last element.
-  public static final int SELECTION = regexTerms.length - 1;
-
-  public static final int EMPTY = -1;
-
-  /* 
-  The metacharacters recognized by XML Schema.
-  Note that the double backslash ("\\") actually represents an escaped single backslash character ("\").
-  */ 
-  private static final String metacharacters = ".\\?*+{}()[]";
-
-
-  public static String getRegexTermText(int i)
-  {
-    if (i == SELECTION)
-    {
-      return regexTerms[i][0];
-    }
-    else
-    {
-      return regexTerms[i][0] + " ( " + regexTerms[i][1] + " )";
-    }
-  }
-
-  public static String getRegexTermValue(int i)
-  {
-    if (i == SELECTION) // shouldn't happen
-    {
-      return "";
-    }
-    else
-    {
-      return regexTerms[i][1];
-    }
-  }
-
-  public static int getNumRegexTerms()
-  {
-    return regexTerms.length;
-  }
-
-  public static String getQuantifierText(int i)
-  {
-    String result = regexQuantifiers[i][0];
-    
-    if (!regexQuantifiers[i][1].equals(""))
-    {
-      result += " ( ";
-      result += regexQuantifiers[i][1];
-      result += " )";
-    }
-
-    return result;
-  }
-
-  public RegexNode()
-  {
-    this.contents = "";
-    this.quantifier = SINGLE;
-    this.min = EMPTY;
-    this.max = EMPTY;
-    this.repeat = EMPTY;
-    this.hasParens = false;
-
-  }
-
-  
-  public String getContents()
-  {
-    return contents;
-  }
-  
-  public void setContents(String contents)
-  {
-    this.contents = contents;
-  }
-
-
-  public int getQuantifier()
-  {
-    return quantifier;
-  }
-
-  public void setQuantifier(int quantifier)
-  {
-    this.quantifier = quantifier;
-  }
-
-
-  public int getMin()
-  {
-    return min;
-  }
-
-  public void setMin(int min)
-  {
-    this.min = min;
-  }
-
-  /**
-   * Sets this.min to the integer representation of min iff min is a valid value (i.e. greater than 0).
-   * Sets this.min to EMPTY if it is not.
-   *
-   * @param min The new min value
-   * @returns Whether min was a valid value
-   */  
-  public boolean setMin(String min)
-  {
-    this.min = convertToInt(min);
-
-    // min > max is an invalid case, unless max is EMPTY (since EMPTY == -1).
-    if ( (this.max != EMPTY) && (this.min > this.max) )
-    {
-      return false;
-    }
-    
-    return (this.min >= 0);
-  }
-
-  
-  public int getMax()
-  {
-    return max;
-  }
-  
-  public void setMax(int max)
-  {
-    this.max = max;
-  }
-
-  /**
-   * Sets this.max to the integer representation of max iff max is a valid value (i.e. greater than 0).
-   * Sets this.max to EMPTY if it is not.
-   *
-   * @param max The new max value
-   * @returns Whether max was a valid value, or (whether max == the empty string && min has a valid value)
-   */ 
-  public boolean setMax(String max)
-  {
-    this.max = convertToInt(max);
-
-    // The empty string is a valid max value iff min has a valid value.
-    // This is due to the fact that {n,} means "at least n times" in regex parlance.
-    if (max.equals("") && this.min != EMPTY)
-    {
-      return true;
-    }
-    
-    else if (this.max < this.min)
-    {
-      return false;
-    }
-    
-    else
-    {
-      return (this.max >= 0);
-    }
-  }
-
-
- 
-  public int getRepeat()
-  {
-    return repeat;
-  }
-
-  public void setRepeat(int repeat)
-  {
-    this.repeat = repeat;
-  }
-
-  /**
-   * Sets this.repeat to the integer representation of repeat iff repeat is a valid value (i.e. greater than 0).
-   * Sets this.repeat to EMPTY if it is not.
-   *
-   * @param repeat The new repeat value
-   * @returns Whether repeat was a valid value
-   */
-  public boolean setRepeat(String repeat)
-  {
-    this.repeat = convertToInt(repeat);
-    return (this.repeat >= 0);
-  }
-
-
-
-  /**
-   * Returns the integer representation of s.  If s is less than zero, or if s is not an int
-   * (i.e. if Integer.parseInt would throw a NumberFormatException), then returns EMPTY.
-   *
-   * @param s The String to convert.
-   * @returns The integer representation of s.
-   */
-  private int convertToInt(String s)
-  {
-    int result;
-    try
-    {
-      result = Integer.parseInt(s);
-      if (result < 0)
-      {
-        result = EMPTY;
-      }
-    }
-    catch (NumberFormatException e)
-    {
-      result = EMPTY;
-    }
-
-    return result;
-  }
-
-
-  public boolean getHasParens()
-  {
-    return hasParens;
-  }
-
-  public void setHasParens(boolean status)
-  {
-    this.hasParens = status;
-  }
-
-  public boolean getAutoEscapeStatus()
-  {
-    return autoEscapeStatus;
-  }
-
-  public void setAutoEscapeStatus(boolean status)
-  {
-    this.autoEscapeStatus = status;
-  }
-
-  /**
-   * Returns an escaped version of s.  In other words, each occurrence of a metacharacter ( .\?*+{}()[] )
-   * is replaced by that character preceded by a backslash.
-   *
-   * @param s The String to escape.
-   * @returns An escaped version of s.
-   */
-  private String addEscapeCharacters(String s)
-  {
-    StringBuffer result = new StringBuffer("");
-
-    for (int i = 0; i < s.length(); i++)
-    {
-      char currentChar = s.charAt(i);
-
-      if (isMetachar(currentChar))
-      {
-        result.append("\\"); // Note that this is an escaped backslash, not a double backslash.
-      }
-      result.append(currentChar);
-
-    }
-
-    return result.toString();
-  }
-
-  /**
-   * Checks whether c is a metacharacter as defined in the static variable metacharacters.
-   *
-   * @param c The character to check.
-   * @returns Whether c is a metacharacter.
-   */
-  private boolean isMetachar(char c)
-  {
-    return metacharacters.indexOf(c) != -1;
-  }
-  
-
-  public boolean hasValidMin()
-  {
-    return (min != EMPTY);
-  }
-
-  public boolean hasValidMax()
-  {
-    return(max != EMPTY);
-  }
-
-  public boolean hasValidRepeat()
-  {
-    return(repeat != EMPTY);
-  }
-
-  public String toString()
-  {
-    String result = "";
-    
-    if (hasParens)
-    {
-      result += "(";
-    }
-    
-    if (autoEscapeStatus)
-    {
-       result += addEscapeCharacters(contents);
-    }
-    else 
-    {
-      result += contents;
-    }
-
-
-    if (hasParens)
-    {
-      result += ")";
-    }
-    
-    switch (quantifier)
-    {
-      case STAR:
-        result += "*";
-        break;
-      
-      case PLUS:
-        result += "+";
-        break;
-      
-      case OPTIONAL:
-        result += "?";
-        break;
-      
-      case REPEAT:
-        result += "{" + repeat + "}";
-        break;
-      
-      case RANGE:
-        result += "{" + min + ",";
-        if (max == EMPTY)
-        {
-          result += "";
-        }
-        else
-        {
-          result += max;
-        }       
-        result += "}";
-        break;
-      
-      // SINGLE is a fall through           
-
-    }
-    return result;
-
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexTestingPage.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexTestingPage.java
deleted file mode 100644
index 58bdcde..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexTestingPage.java
+++ /dev/null
@@ -1,150 +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
- *******************************************************************************/
-// Based on version 1.6 of original xsdeditor
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import java.util.regex.Pattern;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-
-public class RegexTestingPage extends WizardPage
-{
-  /* Validator from xerces package. */
-//  private RegularExpression validator;
-  
-  /* Displays the status of the match. */
-  private Label matchLabel;
-
-
-  /* The regex. */
-  private Text value;
-  
-  /* The string the user is trying to match against the regex. */
-  private StyledText testString;
-
-  public RegexTestingPage()
-  {
-    super(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_TITLE"));
-
-    setTitle(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_TITLE"));
-    setDescription(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_DESCRIPTION"));
-  }
-
-
-  public void createControl(Composite parent)
-  {
-    Composite composite = ViewUtility.createComposite(parent, 1);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, XSDEditorCSHelpIds.REGEX_TEST_PAGE);
-
-    matchLabel = new Label(composite, SWT.WRAP);
-    matchLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_DESCRIPTION"));
-    FontData[] fontData = matchLabel.getFont().getFontData();
-    GridData dataF = new GridData();
-    dataF.widthHint = 400;
-    dataF.heightHint = 6 * fontData[0].getHeight();
-    matchLabel.setLayoutData(dataF);
-    
-    Composite controls = new Composite(composite, SWT.NONE);
-    GridLayout controlsLayout = new GridLayout();
-    controlsLayout.numColumns = 2;
-    controls.setLayout(controlsLayout);
-    controls.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    new Label(controls, SWT.LEFT).setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_REGEX_LABEL"));
-    value = new Text(controls, SWT.BORDER | SWT.READ_ONLY);
-    value.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-
-    new Label(controls, SWT.LEFT).setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_SAMPLE_TEXT"));
-    testString = new StyledText(controls, SWT.SINGLE | SWT.BORDER);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(testString, XSDEditorCSHelpIds.REGEX_SAMPLE_TEXT);
-    testString.addListener(SWT.Modify, new TestStringListener());
-    testString.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    
-    controls.pack();
-    
-    Label separator = new Label(composite, SWT.SEPARATOR | SWT.HORIZONTAL);
-    GC gc = new GC(separator);
-    Point pointSize = gc.stringExtent(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TESTING_PAGE_DESCRIPTION"));
-    GridData gd = new GridData();
-    gd.widthHint = pointSize.x / 2 + gc.getAdvanceWidth('M')*11;
-    gd.horizontalAlignment= GridData.FILL;
-    separator.setLayoutData(gd);
-    
-    composite.pack();
-
-    setControl(composite);
-  }
-
-
-  private String getPatternValue()
-  {
-    return ( (RegexCompositionPage)getPreviousPage() ).getPattern().getLexicalValue();
-  }
-
-  private String getFlags()
-  {
-    return ( (RegexCompositionPage)getPreviousPage() ).getFlags();
-  }
-
-  public void setVisible(boolean visible)
-  {
-    super.setVisible(visible);
-
-    String pattern = getPatternValue();
-    getFlags();
-
-    value.setText(pattern);
-    
-    updateMatchStatus();
-
-    testString.setFocus();
-  }
-
-  class TestStringListener implements Listener
-  {
-    public void handleEvent(Event e)
-    {
-      updateMatchStatus();
-    }
-  }
-
-  private void updateMatchStatus()
-  {
-    if (Pattern.matches(getPatternValue(), testString.getText()))
-    {
-//      matchLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_MATCHES"));
-      setMessage(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_MATCHES"), 1);
-    }
-    else
-    {
-      setMessage(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_DOES_NOT_MATCH"), 2);
-//      matchLabel.setText(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_DOES_NOT_MATCH"));
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexWizard.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexWizard.java
deleted file mode 100644
index c5234ec..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/RegexWizard.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDPatternFacet;
-import org.eclipse.xsd.impl.XSDFactoryImpl;
-
-
-public class RegexWizard extends Wizard 
-{
-  private RegexCompositionPage compositionPage;
-  private RegexTestingPage testingPage;
-
-  /* The original, unchanged pattern. */  
-  private XSDPatternFacet originalPattern;
-  
-  /* A copy of the original pattern that is passed into the wizard. */
-  private XSDPatternFacet modifiedPattern;
-
-  String pattern;
-
-  public RegexWizard(String expr)
-  {
-    super();
-    setWindowTitle(XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_TITLE"));
-    setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(XSDEditorPlugin.class, "icons/regx_wiz.gif"));
-
-    XSDFactoryImpl factory = new XSDFactoryImpl();
-    modifiedPattern = factory.createXSDPatternFacet();
-    modifiedPattern.setLexicalValue(expr);
-
-    originalPattern = factory.createXSDPatternFacet();
-    originalPattern.setLexicalValue(expr);
-
-    compositionPage = new RegexCompositionPage(modifiedPattern);
-    addPage(compositionPage);
-
-    testingPage = new RegexTestingPage();
-    addPage(testingPage);
-  }
-
-  public String getPattern()
-  {
-    return pattern;
-  }
-  
-  public boolean canFinish()
-  {
-    return (compositionPage.getValue().length() > 0);
-  }
-
-  public boolean performFinish()
-  {
-    pattern = modifiedPattern.getLexicalValue();
-    return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDLocationChoicePage.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDLocationChoicePage.java
deleted file mode 100644
index 84e467e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDLocationChoicePage.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-
-
-public class XSDLocationChoicePage extends WizardPage 
-{
-  protected Button radioButton1;
-  protected Button radioButton2;
-    
-  public XSDLocationChoicePage()
-  {
-    super("XSDLocationChoicePage");
-
-    this.setTitle(XSDEditorPlugin.getXSDString("_UI_WIZARD_INCLUDE_FILE_TITLE"));
-    this.setDescription(XSDEditorPlugin.getXSDString("_UI_WIZARD_INCLUDE_FILE_DESC"));
-  }
-    
-  public boolean isPageComplete()
-  {
-    return true;
-  }
-    
-  public void createControl(Composite parent)
-  {
-    Composite base = new Composite(parent, SWT.NONE);
-    base.setLayout(new GridLayout());
-      
-    ViewUtility.createLabel(base, XSDEditorPlugin.getXSDString("_UI_LABEL_INCLUDE_URL_FILE"));
-    Composite radioButtonsGroup = ViewUtility.createComposite(base, 1, true);
-
-    radioButton1 = ViewUtility.createRadioButton(radioButtonsGroup, 
-                                                 XSDEditorPlugin.getXSDString("_UI_RADIO_FILE"));
-      
-    radioButton2 = ViewUtility.createRadioButton(radioButtonsGroup,
-                                                 XSDEditorPlugin.getXSDString("_UI_RADIO_URL"));
-
-    radioButton1.setSelection(true);
-
-    setControl(base);
-  }
-
-  // actions on finish
-  public boolean performFinish()
-  {
-    return true;
-  }
-
-  public boolean isURL()
-  {
-    return radioButton2.getSelection();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDNewFilePage.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDNewFilePage.java
deleted file mode 100644
index b31a915..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDNewFilePage.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
- 
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-
-public class XSDNewFilePage extends WizardNewFileCreationPage
-{
-  public XSDNewFilePage(IStructuredSelection selection) 
-  {
-    super(XSDEditorPlugin.getXSDString("_UI_CREATEXSD"), selection);
-    setTitle(XSDEditorPlugin.getXSDString("_UI_NEW_XML_SCHEMA_TITLE"));
-    setDescription(XSDEditorPlugin.getXSDString("_UI_CREATE_A_NEW_XML_SCHEMA_DESC"));
-  }
-
-  public void createControl(Composite parent) 
-  {
-    // inherit default container and name specification widgets
-    super.createControl(parent);
-
-    this.setFileName(computeDefaultFileName());
-
-    setPageComplete(validatePage());
-  }
-
-  protected boolean validatePage()
-  {
-    Path newName = new Path(getFileName());
-    String fullFileName = getFileName();
-    String extension = newName.getFileExtension();
-    if (extension == null || !extension.equalsIgnoreCase("xsd")) 
-    {
-      setErrorMessage(XSDEditorPlugin.getXSDString("_ERROR_FILENAME_MUST_END_XSD"));
-      return false;
-    }
-    else 
-    {
-      setErrorMessage(null);
-    }
-
-    // check for file should be case insensitive
-    String sameName = existsFileAnyCase(fullFileName);
-    if (sameName != null) 
-    {
-      setErrorMessage(XSDEditorPlugin.getPlugin().getString("_ERROR_FILE_ALREADY_EXISTS", sameName)); //$NON-NLS-1$
-      return false;
-    }
-
-    return super.validatePage();
-  }
-
-  public String defaultName = "NewXMLSchema"; //$NON-NLS-1$
-  public String defaultFileExtension = ".xsd"; //$NON-NLS-1$
-  public String[] filterExtensions = { "*.xsd"}; //$NON-NLS-1$
-
-  protected String computeDefaultFileName()
-  {
-    int count = 0;
-    String fileName = defaultName + defaultFileExtension;
-    IPath containerFullPath = getContainerFullPath();
-    if (containerFullPath != null)
-    {
-      while (true)
-      {
-        IPath path = containerFullPath.append(fileName);
-        if (ResourcesPlugin.getWorkspace().getRoot().exists(path))
-        {
-          count++;
-          fileName = defaultName + count + defaultFileExtension;
-        }
-        else
-        {
-          break;
-        }
-      }
-    }
-    return fileName;
-  }
-
-  // returns true if file of specified name exists in any case for selected container
-  protected String existsFileAnyCase(String fileName)
-  {
-    if ( (getContainerFullPath() != null) && (getContainerFullPath().isEmpty() == false)
-        && (fileName.compareTo("") != 0))
-    {
-      //look through all resources at the specified container - compare in upper case
-      IResource parent = ResourcesPlugin.getWorkspace().getRoot().findMember(getContainerFullPath());
-      if (parent instanceof IContainer)
-      {
-        IContainer container = (IContainer) parent;
-        try
-        {
-          IResource[] members = container.members();
-          String enteredFileUpper = fileName.toUpperCase();
-          for (int i=0; i<members.length; i++)
-          {
-            String resourceUpperName = members[i].getName().toUpperCase();
-            if (resourceUpperName.equals(enteredFileUpper))
-            {  
-              return members[i].getName();    
-            }
-          }
-        }
-        catch (CoreException e)
-        {
-        }
-      }
-    }
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDSelectIncludeFileWizard.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDSelectIncludeFileWizard.java
deleted file mode 100644
index 86e2bfd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/ui/internal/wizards/XSDSelectIncludeFileWizard.java
+++ /dev/null
@@ -1,371 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.wizard.IWizardPage;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.INewWizard;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.viewers.SelectSingleFilePage;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDParser;
-
-
-/**
- * Extend the base wizard to select a file from the project or outside the workbench
- * and add error handling
- */
-public class XSDSelectIncludeFileWizard extends Wizard implements INewWizard
-{
-  boolean isInclude;
-  XSDSchema mainSchema;
-  XSDSchema externalSchema;
-
-  XSDLocationChoicePage choicePage;
-  XSDSelectSingleFilePage filePage;
-  XSDURLPage urlPage;
-
-  IFile resultFile;
-  String resultURL;
-  String namespace = "";
-
-  public XSDSelectIncludeFileWizard(XSDSchema mainSchema, boolean isInclude,
-                                    String title, String desc, 
-                                    ViewerFilter filter,
-                                    IStructuredSelection selection)
-  {
-    super();
-    setWindowTitle(title);
-    setDefaultPageImageDescriptor(ImageDescriptor.createFromFile(XSDEditorPlugin.class, "icons/NewXSD.gif"));
-
-    setNeedsProgressMonitor(true);
-
-    // Choice Page
-    choicePage = new XSDLocationChoicePage();
-
-    // Select File Page
-    filePage = new XSDSelectSingleFilePage(PlatformUI.getWorkbench(),  selection, true);
-    filePage.setTitle(title);
-    filePage.setDescription(desc);
-    filePage.addFilter(filter);
-
-    // URL Page
-    urlPage = new XSDURLPage();
-    urlPage.setTitle(title);
-    urlPage.setDescription(XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_URL"));
-    
-    this.mainSchema = mainSchema;
-    this.isInclude = isInclude;
-  }
-
-  public void init(IWorkbench aWorkbench, IStructuredSelection aSelection)
-  { 
-  }
-
-  public void addPages()
-  {
-    addPage(choicePage);
-    addPage(filePage);
-    addPage(urlPage);
-  }
-
-  public IWizardPage getNextPage(IWizardPage currentPage)
-  {
-    WizardPage nextPage = null;
-
-    if (currentPage == choicePage)
-    {
-      if (choicePage.isURL()) 
-      {
-        nextPage = urlPage;
-      }
-      else
-      {
-        nextPage = filePage;
-      }
-    }
-    return nextPage;
-  }
-
-  public boolean canFinish()
-  {
-    if (!choicePage.isURL())
-    {
-      return filePage.isPageComplete(); 
-    }
-    return true;
-  }
-
-  public boolean performFinish()
-  { 
-    if (choicePage.isURL())
-    {
-      try 
-      {
-        getContainer().run(false, true, urlPage.getRunnable());
-        resultURL = urlPage.getURL();
-      }
-      catch (Exception e)
-      {
-        return false;
-      }
-      return true;
-    }
-    else
-    {  
-      resultFile = filePage.getFile();
-    }
-    return true;
-  }
-
-  /**
-   * Get the MOF object that represents the external file
-   */
-  public XSDSchema getExternalSchema()
-  {
-    return externalSchema;
-  }
-
-  public IFile getResultFile()
-  {
-    return resultFile;
-  }
-
-  public String getURL()
-  {
-    return resultURL;
-  }
-  
-  public String getNamespace()
-  {
-  	return namespace;
-  }
-
-  /**
-   * Create a MOF model for the imported file
-   */
-  protected String doLoadExternalModel(IProgressMonitor monitor, String xsdModelFile, String xsdFileName)
-  { 
-    String errorMessage = null;
-    String currentNameSpace = mainSchema.getTargetNamespace();
-
-    monitor.beginTask("Loading XML Schema", 100);
-    monitor.worked(50);
-
-    XSDParser parser = new XSDParser();
-    parser.parse(xsdModelFile);
-
-    externalSchema = parser.getSchema();
-    if (externalSchema != null)
-    {
-      String extNamespace = externalSchema.getTargetNamespace();
-      namespace = extNamespace;
-     
-      if (externalSchema.getDiagnostics() != null &&
-          externalSchema.getDiagnostics().size() > 0)
-      {
-        errorMessage = XSDEditorPlugin.getPlugin().getString("_UI_INCORRECT_XML_SCHEMA", xsdFileName);
-      }  
-      else
-      {
-        if (isInclude) 
-        {  
-          // Check the namespace to make sure they are the same as current file
-          if (extNamespace != null)
-          {
-            if (currentNameSpace != null && !extNamespace.equals(currentNameSpace))
-            {
-              errorMessage = XSDEditorPlugin.getPlugin().getString("_UI_DIFFERENT_NAME_SPACE", xsdFileName);
-            }
-          }
-        }
-        else
-        {  
-          // Check the namespace to make sure they are different from the current file
-          if (extNamespace != null)
-          {
-            if (currentNameSpace != null && extNamespace.equals(currentNameSpace))
-            {
-              errorMessage = XSDEditorPlugin.getPlugin().getString("_UI_SAME_NAME_SPACE", xsdFileName);
-            }
-          }
-        }
-      }
-    }
-    else
-    {
-      errorMessage = XSDEditorPlugin.getPlugin().getString("_UI_INCORRECT_XML_SCHEMA", xsdFileName);
-    }
-
-    monitor.subTask("Finish Loading");
-    monitor.worked(80);
-
-    return errorMessage;
-  }
-
- 
-  /**
-   * URL page
-   */
-  class XSDURLPage extends WizardPage
-  { 
-    Text urlField;
-    String saveString;
-
-    public XSDURLPage()
-    {
-      super("URLPage");
-    }
-
-    public void createControl(Composite parent)
-    {
-      Composite client = ViewUtility.createComposite(parent,2);
-      ViewUtility.setComposite(client);
-
-      ViewUtility.createLabel(client, XSDEditorPlugin.getXSDString("_UI_LABEL_URL"));
-      ViewUtility.createLabel(client, "");
-
-      urlField = ViewUtility.createTextField(client, 50);
-      saveString = "http://";
-      urlField.setText(saveString);
-
-      setControl(client);
-    }
-
-    public String getURL()
-    {
-      return urlField.getText();
-    }
-
-    private boolean openExternalSchema(IProgressMonitor monitor)
-    {
-      String text = urlField.getText();
-//      if (text.equals(saveString)) 
-//      {
-//        return false;
-//      }
-//      saveString = text;
-
-      if (text.equals(""))
-      {
-        setErrorMessage(XSDEditorPlugin.getXSDString("_UI_SPECIFY_URL"));
-        return false;
-      }
-
-      if ( !text.startsWith("http://") )
-      {
-        setErrorMessage(XSDEditorPlugin.getXSDString("_UI_URL_START_WITH"));
-        return false;
-      }
-
-      setErrorMessage(null);
-      String errorMessage = doLoadExternalModel(monitor, text, text);
-      if (errorMessage != null) 
-      {
-        setErrorMessage(errorMessage); 
-        return false;
-      }
-      else
-      {
-        return true;
-      }
-    }
-
-    public IRunnableWithProgress getRunnable()
-    {
-      return new IRunnableWithProgress()
-      {
-        public void run(IProgressMonitor monitor)   
-          throws InvocationTargetException, InterruptedException
-        {
-          if (monitor == null)
-          {
-            monitor= new NullProgressMonitor();
-          }
-          monitor.beginTask("", 6);
-        
-          boolean ok = openExternalSchema(monitor);
-
-          if (!ok) 
-          { 
-            throw new InvocationTargetException(new java.lang.Error());
-          }
-
-          monitor.done();
-        }
-      };
-    }
-  }
-
-  /**
-   * Select XML Schema File
-   */
-  class XSDSelectSingleFilePage extends SelectSingleFilePage
-  {
-    public XSDSelectSingleFilePage(IWorkbench workbench, IStructuredSelection selection, boolean isFileMandatory)
-    {          
-      super(workbench,selection,isFileMandatory);
-    }
-
-    private boolean openExternalSchema()
-    {
-      // Get the fully-qualified file name
-      IFile iFile = getFile();
-      if (iFile == null) 
-        return false;
-
-      setErrorMessage(null);
-
-      String xsdModelFile = iFile.getLocation().toOSString();
-      String xsdFileName = iFile.getName();
-      String errorMessage = doLoadExternalModel(new NullProgressMonitor(), xsdModelFile, xsdFileName);
-
-      if (errorMessage != null) 
-      {
-        setErrorMessage(errorMessage);
-        return false;
-      }
-      else
-      {
-        return true;
-      }
-    }
-
-    public boolean isPageComplete()
-    {  
-      if (choicePage.isURL()) 
-      {
-        return true;
-      }
-
-      if (super.isPageComplete()) 
-      {
-        return openExternalSchema();
-      }
-      return super.isPageComplete();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/AddFieldAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/AddFieldAction.java
deleted file mode 100644
index d411240..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/AddFieldAction.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.contentoutline.ContentOutline;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseFieldEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.common.commands.BaseCommand;
-
-
-public class AddFieldAction extends BaseSelectionAction
-{   
-  public static String ID = "AddFieldAction";  //$NON-NLS-1$
-  
-  public AddFieldAction(IWorkbenchPart part)
-  {
-    super(part);
-    setId(ID);
-    setText(Messages._UI_ACTION_ADD_FIELD);  
-  }
-  
-  public void run()
-  {
-    if (getSelectedObjects().size() > 0)
-    {
-      Object o = getSelectedObjects().get(0);
-      IComplexType type = null;
-      
-      if (o instanceof IComplexType)
-      {  
-        type = (IComplexType)o; 
-      }
-      else if (o instanceof IField)
-      {
-        IField field = (IField)o;
-        type = field.getContainerType();
-      }
-      if (type != null)
-      {
-        Command command = type.getAddNewFieldCommand(""); //$NON-NLS-1$
-        if (command != null)
-        {  
-          getCommandStack().execute(command);
-          Adapter adapter = XSDAdapterFactory.getInstance().adapt(((BaseCommand)command).getAddedComponent());
-          selectAddedComponent(adapter);
-        }
-        else
-        {
-           //TODO ... pop up a command not implemented message
-        }
-      }
-    }  
-  }
-  
-  protected void doEdit(Object obj, IWorkbenchPart part)
-  {
-    if (obj instanceof BaseFieldEditPart)
-    {
-      BaseFieldEditPart editPart = (BaseFieldEditPart)obj;
-      editPart.doEditName(!(part instanceof ContentOutline));
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/BaseDirectEditAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/BaseDirectEditAction.java
deleted file mode 100644
index 70141be..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/BaseDirectEditAction.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.actions;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.ui.actions.DirectEditAction;
-import org.eclipse.gef.ui.parts.AbstractEditPartViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-
-
-public class BaseDirectEditAction extends DirectEditAction {
-	protected ISelectionProvider provider;
-	
-	/**
-	 * Same as {@link #DirectEditAction(IWorkbenchPart)}.
-	 * @param editor the editor
-	 */
-	public BaseDirectEditAction(IEditorPart editor) {
-		super((IWorkbenchPart)editor);
-	}
-
-	/**
-	 * Constructs a DirectEditAction using the specified part.
-	 * @param part the workbench part
-	 */
-	public BaseDirectEditAction(IWorkbenchPart part) {
-		super(part);
-	}
-	
-	  /* (non-Javadoc)
-	   * @see org.eclipse.gef.ui.actions.SelectionAction#getSelection()
-	   */
-	  protected ISelection getSelection()
-	  {
-	    // always get selection from selection provider first
-		  if (provider!=null) {
-			  Object selection = provider.getSelection();
-			  if (selection instanceof StructuredSelection) {
-				  Object object = ((StructuredSelection) selection).getFirstElement();
-				  if (object instanceof XSDBaseAdapter) {
-					  // We need to return an EditPart as the selection.
-					  IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-					  Object graphicalViewer = editor.getAdapter(GraphicalViewer.class);
-					  if (graphicalViewer instanceof AbstractEditPartViewer) {
-						  AbstractEditPartViewer viewer = (AbstractEditPartViewer) graphicalViewer;
-						  EditPart editPart = (EditPart)viewer.getEditPartRegistry().get(object);
-						  return new StructuredSelection(editPart);
-					  }
-				  }
-			  }
-	    }
-	    
-	    return super.getSelection();
-	  }
-	
-	  protected boolean calculateEnabled() {
-		  Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-		  if (selection instanceof XSDBaseAdapter) {
-			  return  !((XSDBaseAdapter) selection).isReadOnly();
-		  }
-		  
-		  return true;
-	  }
-	  
-	  /* (non-Javadoc)
-	   * @see org.eclipse.gef.ui.actions.SelectionAction#setSelectionProvider(org.eclipse.jface.viewers.ISelectionProvider)
-	   */
-	  public void setSelectionProvider(ISelectionProvider provider)
-	  {
-	    super.setSelectionProvider(provider);
-	    this.provider = provider;
-	  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/BaseSelectionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/BaseSelectionAction.java
deleted file mode 100644
index 28f6f71..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/BaseSelectionAction.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.ui.actions.SelectionAction;
-import org.eclipse.gef.ui.parts.AbstractEditPartViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-
-public abstract class BaseSelectionAction extends SelectionAction
-{
-  public static final String SEPARATOR_ID = "org.eclipse.jface.action.Separator"; //$NON-NLS-1$
-  public static final String SUBMENU_START_ID = "SUBMENU_START_ID: "; //$NON-NLS-1$
-  public static final String SUBMENU_END_ID = "SUBMENU_END_ID: "; //$NON-NLS-1$
-
-  protected ISelectionProvider provider;
-  protected boolean doDirectEdit = true;
-  
-  public BaseSelectionAction(IWorkbenchPart part)
-  {
-    super(part);
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.ui.actions.SelectionAction#getSelection()
-   */
-  protected ISelection getSelection()
-  {
-    // always get selection from selection provider first
-    if (provider!=null)
-      return provider.getSelection();
-    
-    return super.getSelection();
-  }
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.ui.actions.SelectionAction#setSelectionProvider(org.eclipse.jface.viewers.ISelectionProvider)
-   */
-  public void setSelectionProvider(ISelectionProvider provider)
-  {
-    super.setSelectionProvider(provider);
-    this.provider = provider;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction#calculateEnabled()
-   */
-  protected boolean calculateEnabled()
-  {
-    if (getSelectedObjects().size() > 0)
-    {
-      Object o = getSelectedObjects().get(0);
-      if (o instanceof IComplexType)
-      {
-        return !((IComplexType)o).isReadOnly();
-      }
-      else if (o instanceof IField)
-      {
-        return !((IField)o).isReadOnly();
-      }
-    }
-    return true;
-  }
-  
-  protected void selectAddedComponent(final Adapter adapter)
-  {
-    Runnable runnable = new Runnable()
-    {
-      public void run()
-      {
-        if (adapter != null)
-        {
-          provider.setSelection(new StructuredSelection(adapter));
-          if (doDirectEdit)
-            activateDirectEdit();
-        }
-      }
-    };
-    Display.getCurrent().asyncExec(runnable);
-  }
-
-  protected void activateDirectEdit()
-  {
-    if (getWorkbenchPart() instanceof IEditorPart)
-    {
-      try
-      {
-        IEditorPart owningEditor = (IEditorPart)getWorkbenchPart();
-        IWorkbench workbench = PlatformUI.getWorkbench();
-        IWorkbenchPart part = workbench.getActiveWorkbenchWindow().getActivePage().getActivePart();
-        Object object = owningEditor.getAdapter(GraphicalViewer.class);
-        if (object instanceof AbstractEditPartViewer)
-        {
-          AbstractEditPartViewer viewer = (AbstractEditPartViewer)object;
-          Object obj = viewer.getSelectedEditParts().get(0);
-          doEdit(obj, part);
-        }
-      }
-      catch (Exception e)
-      {
-        
-      }
-    }        
-  }
-  
-  protected void doEdit(Object obj, IWorkbenchPart part)
-  {
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/DeleteAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/DeleteAction.java
deleted file mode 100644
index d654e32..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/DeleteAction.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.actions;
-
-import java.util.Iterator;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public class DeleteAction extends BaseSelectionAction
-{
-  public final static String ID = "org.eclipse.wst.xsd.ui.internal.editor.DeleteAction";  //$NON-NLS-1$
-  public DeleteAction(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_DELETE);
-    setId(ID);
-    setImageDescriptor(XSDEditorPlugin.getImageDescriptor("icons/delete_obj.gif") ); //$NON-NLS-1$
-  }
-  
-  public void run()
-  {
-    for (Iterator i = ((IStructuredSelection) getSelection()).iterator(); i.hasNext(); )
-    {
-      Object selection = i.next();
-      Command command = null;
-      boolean doReselect = false;
-      IModel model = null;
-      if (selection instanceof IComplexType)
-      {
-        command = ((IComplexType)selection).getDeleteCommand();
-        model = ((IComplexType)selection).getModel();
-        doReselect = true;
-      }
-      else if (selection instanceof IField)
-      {
-        model = ((IField)selection).getModel();
-        if ( ((IField)selection).isGlobal())
-        {
-          doReselect = true;
-        }
-        command = ((IField)selection).getDeleteCommand();
-      }  
-      else if (selection instanceof IStructure)
-      {
-        // Fallback for model groups and attribute groups.
-        IStructure structure = (IStructure)selection; 
-        model = structure.getModel();
-        command = structure.getDeleteCommand();
-      }  
-
-      if (command != null)
-      {
-        command.execute();
-        if (model != null && doReselect)
-          provider.setSelection(new StructuredSelection(model));
-      }  
-    }
-    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/SetInputToGraphView.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/SetInputToGraphView.java
deleted file mode 100644
index 60b4e69..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/SetInputToGraphView.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.actions;
-
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewGraphicalViewer;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-
-public class SetInputToGraphView extends BaseSelectionAction
-{
-  public static String ID = "SetAsFocus"; //$NON-NLS-1$
-  IEditorPart editorPart;
-  Object input;
-
-  public SetInputToGraphView(IWorkbenchPart part)
-  {
-    this(part, null);
-  }
-  
-  public SetInputToGraphView(IWorkbenchPart part, Object input)
-  {
-    super(part);
-    this.input = input;
-    setId(ID);
-    setText(Messages._UI_ACTION_SET_AS_FOCUS);
-    if (part instanceof IEditorPart)
-    {
-      editorPart = (IEditorPart)part;
-    }      
-  }
-  
-  protected boolean calculateEnabled()
-  {
-    return true;
-  }
-
-  public void run()
-  {    
-    Object selection = input;   
-    if (selection == null)
-    {  
-      selection = ((IStructuredSelection) getSelection()).getFirstElement();
-    }  
-    Object adapter = getWorkbenchPart().getAdapter(GraphicalViewer.class);
-
-    if (selection instanceof IADTObject)
-    {
-      IADTObject obj = (IADTObject) selection;
-      if (adapter instanceof DesignViewGraphicalViewer)
-      {
-        DesignViewGraphicalViewer graphicalViewer = (DesignViewGraphicalViewer) adapter;  
-        EditPart editPart = graphicalViewer.getInputEditPart();
-        if (editPart instanceof RootContentEditPart)
-        {
-          if (editorPart != null)
-          {          
-            PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getNavigationHistory().markLocation(editorPart);
-          }  
-          graphicalViewer.setInput(obj);
-          //((RootContentEditPart) editPart).refresh();          
-          if (editorPart != null)
-          {
-            PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getNavigationHistory().markLocation(editorPart);
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/ShowPropertiesViewAction.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/ShowPropertiesViewAction.java
deleted file mode 100644
index e3d232f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/actions/ShowPropertiesViewAction.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.actions;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-
-/**
- * Show the properties view in the current perspective.
- */
-public class ShowPropertiesViewAction extends BaseSelectionAction
-{
-	public static final String ID = "org.eclipse.wst.xsd.ui.internal.adt.actions.ShowPropertiesViewAction"; //$NON-NLS-1$
-	public static final String PROPERTIES_VIEW_ID = "org.eclipse.ui.views.PropertySheet"; //$NON-NLS-1$
-	
-  protected static ImageDescriptor enabledImage, disabledImage;
-
-	public ShowPropertiesViewAction(IWorkbenchPart part)
-  {
-		super(part);
-		setId(ID);
-		setText(Messages._UI_ACTION_SHOW_PROPERTIES);
-		setToolTipText(getText());
-    setImageDescriptor(XSDEditorPlugin.getImageDescriptor("icons/elcl16/showproperties_obj.gif") ); //$NON-NLS-1$
-	  setDisabledImageDescriptor(XSDEditorPlugin.getImageDescriptor("icons/dlcl16/showproperties_obj.gif") ); //$NON-NLS-1$
-	}
-  
-  protected boolean calculateEnabled()
-  {
-    return true;
-  }
-  
-  public void run()
-  {
-    try
-    {
-      getWorkbenchPart().getSite().getPage().showView(PROPERTIES_VIEW_ID);
-    }
-    catch (PartInitException pie)
-    {
-
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/BaseGraphicalViewerKeyHandler.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/BaseGraphicalViewerKeyHandler.java
deleted file mode 100644
index 478d3e7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/BaseGraphicalViewerKeyHandler.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design;
-
-import org.eclipse.draw2d.FigureCanvas;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.KeyBoardAccessibilityEditPolicy;
-
-/**
- * This key handler is designed to be re-used by both the WSDL and XSD editor
- */
-public class BaseGraphicalViewerKeyHandler extends GraphicalViewerKeyHandler
-{
-  public BaseGraphicalViewerKeyHandler(GraphicalViewer viewer)
-  {
-    super(viewer);
-  }
-
-  public boolean keyPressed(KeyEvent event)
-  {
-    int direction = -1;
-    boolean isAltDown = (event.stateMask & SWT.ALT) != 0;
-    boolean isCtrlDown = (event.stateMask & SWT.CTRL) != 0;
-    switch (event.keyCode)
-    {
-      case SWT.ARROW_LEFT : {
-        direction = PositionConstants.WEST;
-        break;
-      }
-      case SWT.ARROW_RIGHT : {
-        direction = PositionConstants.EAST;
-        break;
-      }
-      case SWT.ARROW_UP : {
-        direction = isAltDown ? KeyBoardAccessibilityEditPolicy.OUT_TO_PARENT : PositionConstants.NORTH;
-        break;
-      }
-      case SWT.ARROW_DOWN : {
-    	 direction = isAltDown ? KeyBoardAccessibilityEditPolicy.IN_TO_FIRST_CHILD : PositionConstants.SOUTH;       
-        break;
-      }
-    }
-    
-    if (direction != -1)
-    {
-      GraphicalEditPart focusEditPart = getFocusEditPart();
-      KeyBoardAccessibilityEditPolicy policy = (KeyBoardAccessibilityEditPolicy)focusEditPart.getEditPolicy(KeyBoardAccessibilityEditPolicy.KEY);
-      
-      if (policy != null)          
-      {
-        EditPart target = policy.getRelativeEditPart(focusEditPart, direction);
-        if (target != null)
-        {
-        	if(isCtrlDown) {
-
-        		IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-        			 Object keyboardDrag = editor.getAdapter(IKeyboardDrag.class);
-        			 if (keyboardDrag instanceof IKeyboardDrag) {
-        				 ((IKeyboardDrag) keyboardDrag).performKeyboardDrag(focusEditPart, direction);
-        				 return true;
-        		 }
-        	}
-        	else {
-                navigateTo(target, event);
-                return true;
-        	}
-        }          
-      }         
-    }
-    
-    switch (event.keyCode)
-    {
-      case SWT.PAGE_DOWN :
-      {  
-        if (scrollPage(event, PositionConstants.SOUTH))
-          return true;
-      }  
-      case SWT.PAGE_UP :
-      {  
-        if (scrollPage(event, PositionConstants.NORTH))
-          return true;
-      } 
-      /*
-      case SWT.F5 :
-      {
-        IEditorPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-        if (part != null)
-        {
-          EditorModeManager manager = (EditorModeManager)part.getAdapter(EditorModeManager.class);
-          EditorMode[] modes = manager.getModes();
-          EditorMode mode = manager.getCurrentMode();
-          List list = Arrays.asList(modes);
-          int index = list.indexOf(mode);
-          int nextIndex = index + 1;
-          if (nextIndex < modes.length)
-          {
-            mode = (EditorMode)list.get(nextIndex);
-          }  
-          else
-          {
-            mode = (EditorMode)list.get(0);            
-          }
-          if (mode != manager.getCurrentMode())
-          {  
-            manager.setCurrentMode(mode);
-          }  
-        }  
-        return true;
-      }*/      
-    }
-    return super.keyPressed(event);
-  }
-
-  private boolean scrollPage(KeyEvent event, int direction)
-  {
-    if (!(getViewer().getControl() instanceof FigureCanvas))
-      return false;
-    FigureCanvas figCanvas = (FigureCanvas) getViewer().getControl();
-    Point loc = figCanvas.getViewport().getViewLocation();
-    Rectangle area = figCanvas.getViewport().getClientArea(Rectangle.SINGLETON).scale(.8);
-    if (direction == PositionConstants.NORTH)
-    {
-      figCanvas.scrollToY(loc.y - area.height);
-    }
-    else
-    {
-      figCanvas.scrollToY(loc.y + area.height);
-    }
-    return true;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewContextMenuProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewContextMenuProvider.java
deleted file mode 100644
index 75b0432..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewContextMenuProvider.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design;
-
-import org.eclipse.gef.ContextMenuProvider;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.ContextMenuParticipant;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.EditorModeManager;
-
-
-public class DesignViewContextMenuProvider extends ContextMenuProvider
-{
-  IEditorPart editor;  
-  ISelectionProvider selectionProvider;
-
-  /**
-   * Constructor for GraphContextMenuProvider.
-   * 
-   * @param selectionProvider
-   * @param editor
-   */
-  public DesignViewContextMenuProvider(IEditorPart editor, EditPartViewer viewer, ISelectionProvider selectionProvider)
-  {
-    super(viewer);
-    this.editor = editor;
-    this.selectionProvider = selectionProvider;
-  }
-
-  /**
-   * @see org.eclipse.gef.ui.parts.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager,
-   *      org.eclipse.gef.EditPartViewer)
-   */
-  public void buildContextMenu(IMenuManager menu)
-  {
-    IMenuManager currentMenu = menu;
-    
-    EditorModeManager manager = (EditorModeManager)editor.getAdapter(EditorModeManager.class);
-    ContextMenuParticipant contextMenuParticipant = manager != null ? manager.getCurrentMode().getContextMenuParticipant() : null;
-    
-    menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
-    ActionRegistry registry = getEditorActionRegistry();
-    ISelection selection = selectionProvider.getSelection();
-    
-    if (selection != null)
-    {
-      Object selectedObject = ((StructuredSelection) selection).getFirstElement();
-      
-      // Convert editparts to model objects as selections 
-      if (selectedObject instanceof EditPart)
-      {
-        selectedObject = ((EditPart)selectedObject).getModel();
-      }
-
-      if (selectedObject instanceof IActionProvider)
-      {
-        IActionProvider actionProvider = (IActionProvider) selectedObject;
-
-        String[] actions = actionProvider.getActions(null);
-        for (int i = 0; i < actions.length; i++)
-        {
-          String id = actions[i];
-          if (contextMenuParticipant == null || contextMenuParticipant.isApplicable(selectedObject, id))
-          {
-            if (id.startsWith(BaseSelectionAction.SUBMENU_START_ID))
-            {
-              String text = id.substring(BaseSelectionAction.SUBMENU_START_ID.length());
-              IMenuManager subMenu = new MenuManager(text);
-              currentMenu.add(subMenu);
-              currentMenu = subMenu;
-            }
-            else if (id.startsWith(BaseSelectionAction.SUBMENU_END_ID))
-            {
-              currentMenu = getParentMenu(menu, currentMenu);
-            }
-            else if (id.equals(BaseSelectionAction.SEPARATOR_ID))
-            {
-              currentMenu.add(new Separator());
-            }
-            else
-            {
-              IAction action = registry.getAction(id);
-              if (action != null)
-              { 
-                action.isEnabled();
-                currentMenu.add(action);
-              }
-            }
-          }
-        }
-        menu.add(new Separator());       
-        menu.add(new Separator("refactoring-slot"));  //$NON-NLS-1$
-        menu.add(new Separator());       
-        menu.add(new Separator("search-slot"));        //$NON-NLS-1$
-        menu.add(new Separator());
-      }
-    }    
-    menu.add(new Separator());
-    //menu.add(registry.getAction("org.eclipse.wst.xsd.DeleteAction"));
-    //menu.add(new Separator());
-    //ShowPropertiesViewAction showPropertiesAction = (ShowPropertiesViewAction) registry.getAction(ShowPropertiesViewAction.ACTION_ID);
-    //showPropertiesAction.setPage(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage());
-    //menu.add(showPropertiesAction);
-  }
-
-  protected IMenuManager getParentMenu(IMenuManager root, IMenuManager child) {
-    IMenuManager parent = null;
-    
-    IContributionItem[] kids = root.getItems();
-    int index = 0;
-    while (index < kids.length && parent == null) {
-      IContributionItem item = kids[index];
-      if (item.equals(child)) {
-        parent = root;
-      }
-      else {
-        if (item instanceof IMenuManager) {
-          parent = getParentMenu((IMenuManager) item, child);
-        }
-      }
-      index++;
-    }
-    
-    return parent;
-  }
-
-  protected ActionRegistry getEditorActionRegistry()
-  {
-    return (ActionRegistry) editor.getAdapter(ActionRegistry.class);
-  }
-  protected CommandStack commandStack;
-
-  protected CommandStack getCommandStack()
-  {
-    if (commandStack == null)
-      commandStack = getViewer().getEditDomain().getCommandStack();
-    return commandStack;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewGraphicalViewer.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewGraphicalViewer.java
deleted file mode 100644
index a428112..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewGraphicalViewer.java
+++ /dev/null
@@ -1,300 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootContentEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IModelProxy;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.CommonSelectionManager;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage;
-
-public class DesignViewGraphicalViewer extends ScrollingGraphicalViewer implements ISelectionChangedListener
-{
-  protected ADTSelectionChangedListener internalSelectionProvider = new ADTSelectionChangedListener();
-  protected InputChangeManager inputChangeManager = new InputChangeManager();
-
-  public DesignViewGraphicalViewer(IEditorPart editor, CommonSelectionManager manager)
-  {
-    super();
-    setContextMenu(new DesignViewContextMenuProvider(editor, this, this));
-    editor.getEditorSite().registerContextMenu("org.eclipse.wst.xsd.ui.popup.graph", getContextMenu(), internalSelectionProvider, false); //$NON-NLS-1$
-    
-    // make the internalSelectionProvider listen to graph view selection changes
-    addSelectionChangedListener(internalSelectionProvider);    
-    internalSelectionProvider.addSelectionChangedListener(manager);
-    manager.addSelectionChangedListener(this);  
-    
-    setKeyHandler(new BaseGraphicalViewerKeyHandler(this));    
-  }
-  
-  
-  // this method is called when something changes in the selection manager
-  // (e.g. a selection occured from another view)
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    Object selectedObject = ((StructuredSelection) event.getSelection()).getFirstElement();
-    
-    // TODO (cs) It seems like there's way more selection going on than there
-    // should
-    // be!! There's at least 2 selections getting fired when something is
-    // selected in the
-    // outline view. Are we listening to too many things?
-    //
-    // if (event.getSource() instanceof ADTContentOutlinePage)
-    if (event.getSource() != internalSelectionProvider)
-    {
-      if (selectedObject instanceof IStructure)
-      {
-        if (((getInput() instanceof IModel) && (event.getSource() instanceof ADTContentOutlinePage)) ||
-            (!(getInput() instanceof IModel)))
-        {
-          if (selectedObject instanceof IGraphElement)
-          {
-            if (((IGraphElement)selectedObject).isFocusAllowed())
-            {
-             setInput((IStructure)selectedObject);              
-            }
-          }
-        }
-      }
-      else if (selectedObject instanceof IGraphElement)
-      {
-        if (((IGraphElement)selectedObject).isFocusAllowed() && (event.getSource() instanceof ADTContentOutlinePage))
-        {
-          setInput((IADTObject)selectedObject);              
-        }
-        if (selectedObject instanceof IField) 
-        {
-          IField field = (IField)selectedObject;
-          if (!field.isGlobal() && getInput() instanceof IModel)
-          {
-            if (field.getContainerType() != null)
-              setInput(field.getContainerType());
-          }
-        }
-      }
-      else if (selectedObject instanceof IField)
-      {
-        IField field = (IField)selectedObject;
-        if ( (field.isGlobal() && (getInput() instanceof IModel) && (event.getSource() instanceof ADTContentOutlinePage)) ||
-            ( (field.isGlobal() && !(getInput() instanceof IModel))))
-        {  
-          setInput(field);
-        }
-      }
-      else if (selectedObject instanceof IModelProxy)
-      {
-        IModelProxy adapter = (IModelProxy)selectedObject;
-        if (getInput() != adapter.getModel())
-           setInput(adapter.getModel());
-      }
-      else if (selectedObject instanceof IModel)
-      {
-        if (getInput() != selectedObject)
-          setInput((IModel)selectedObject);
-      }
-      
-      EditPart editPart = getEditPart(getRootEditPart(), selectedObject);
-      if (editPart != null)
-        setSelection(new StructuredSelection(editPart));
-    }
-  }
-  
-  /*
-   * We need to convert from edit part selections to model object selections
-   */
-  class ADTSelectionChangedListener implements ISelectionProvider, ISelectionChangedListener
-  {
-    protected List listenerList = new ArrayList();
-    protected ISelection selection = new StructuredSelection();
-
-    public void addSelectionChangedListener(ISelectionChangedListener listener)
-    {
-      listenerList.add(listener);
-    }
-
-    public void removeSelectionChangedListener(ISelectionChangedListener listener)
-    {
-      listenerList.remove(listener);
-    }
-
-    public ISelection getSelection()
-    {
-      return selection;
-    }
-
-    protected void notifyListeners(SelectionChangedEvent event)
-    {
-      for (Iterator i = listenerList.iterator(); i.hasNext();)
-      {
-        ISelectionChangedListener listener = (ISelectionChangedListener) i.next();
-        listener.selectionChanged(event);
-      }
-    }
-
-    public StructuredSelection convertSelectionFromEditPartToModel(ISelection editPartSelection)
-    {
-      List selectedModelObjectList = new ArrayList();
-      if (editPartSelection instanceof IStructuredSelection)
-      {
-        for (Iterator i = ((IStructuredSelection) editPartSelection).iterator(); i.hasNext();)
-        {
-          Object obj = i.next();
-          Object model = null;
-          if (obj instanceof EditPart)
-          {
-            EditPart editPart = (EditPart) obj;
-            model = editPart.getModel();
-          }
-          if (model != null)
-          {
-            selectedModelObjectList.add(model);
-          }
-        }
-      }
-      return new StructuredSelection(selectedModelObjectList);
-    }
-
-    public void setSelection(ISelection selection)
-    {
-      this.selection = selection;
-    }
-
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      ISelection newSelection = convertSelectionFromEditPartToModel(event.getSelection());
-      this.selection = newSelection;
-      SelectionChangedEvent newEvent = new SelectionChangedEvent(this, newSelection);
-      notifyListeners(newEvent);
-    }
-  }
-  
-  protected EditPart getEditPart(EditPart parent, Object object)
-  {
-    EditPart result = null;
-    for (Iterator i = parent.getChildren().iterator(); i.hasNext(); )
-    {
-      EditPart editPart = (EditPart)i.next();
-      if (editPart.getModel() == object)
-      {  
-        result = editPart;
-        break;
-      }
-    }             
-  
-    if (result == null)
-    { 
-      for (Iterator i = parent.getChildren().iterator(); i.hasNext(); )
-      {
-        EditPart editPart = getEditPart((EditPart)i.next(), object);
-        if (editPart != null)
-        {
-          result = editPart;
-          break;
-        }
-      }            
-    }
-  
-    return result;
-  }
-  
-  public void setInput(IADTObject object)
-  {
-    RootContentEditPart rootContentEditPart = (RootContentEditPart)getRootEditPart().getContents();
-    rootContentEditPart.setModel(object);
-    rootContentEditPart.refresh();
-    if (object != null)
-    {  
-      inputChangeManager.setSelection(new StructuredSelection(object));
-    }
-    // Select the editpart when it is set as input
-    EditPart editPart = getEditPart(rootContentEditPart, object);
-    if (editPart != null)
-      select(editPart);
-  }
-  
-  public IADTObject getInput()
-  {
-    RootContentEditPart rootContentEditPart = (RootContentEditPart)getRootEditPart().getContents();    
-    return (IADTObject)rootContentEditPart.getModel();
-  }
-  
-  public EditPart getInputEditPart()
-  {
-    return getRootEditPart().getContents();    
-  }
-  
-  public void addInputChangdListener(ISelectionChangedListener listener)
-  {
-    inputChangeManager.addSelectionChangedListener(listener);
-  }
-  
-  public void removeInputChangdListener(ISelectionChangedListener listener)
-  {
-    inputChangeManager.removeSelectionChangedListener(listener);    
-  }  
-  
-  
-  private class InputChangeManager implements ISelectionProvider
-  {
-    List listeners = new ArrayList();
-       
-    public void addSelectionChangedListener(ISelectionChangedListener listener)
-    {
-      if (!listeners.contains(listener))
-      {  
-        listeners.add(listener);
-      }        
-    }
-
-    public ISelection getSelection()
-    {   
-      // no one should be calling this method     
-      return null;
-    }
-
-    public void removeSelectionChangedListener(ISelectionChangedListener listener)
-    {
-      listeners.remove(listener);      
-    }
-
-    public void setSelection(ISelection selection)
-    { 
-      notifyListeners(selection);
-    }
-
-    void notifyListeners(ISelection selection)
-    {
-      List list = new ArrayList(listeners);
-      for (Iterator i = list.iterator(); i.hasNext(); )
-      {
-        ISelectionChangedListener listener = (ISelectionChangedListener)i.next();
-        listener.selectionChanged(new SelectionChangedEvent(this, selection));
-      }  
-    }       
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewerGraphicConstants.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewerGraphicConstants.java
deleted file mode 100644
index 434e0d7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/DesignViewerGraphicConstants.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.widgets.Display;
-
-public interface DesignViewerGraphicConstants
-{
-  public static final String SCALED_HANDLE_LAYER = "Scaled Handle Layer"; //$NON-NLS-1$   
-  public final static Font  smallFont = new Font(Display.getCurrent(), "Tahoma", 6, SWT.NONE); //$NON-NLS-1$
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/FlatCCombo.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/FlatCCombo.java
deleted file mode 100644
index 5ef6034..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/FlatCCombo.java
+++ /dev/null
@@ -1,1493 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.design;
-
-/*******************************************************************************
- * Copyright (c) 2000, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.SWTException;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.accessibility.AccessibleTextAdapter;
-import org.eclipse.swt.accessibility.AccessibleTextEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Layout;
-import org.eclipse.swt.widgets.List;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.TypedListener;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-/**
- * The CCombo class represents a selectable user interface object
- * that combines a text field and a list and issues notification
- * when an item is selected from the list.
- * <p>
- * Note that although this class is a subclass of <code>Composite</code>,
- * it does not make sense to add children to it, or set a layout on it.
- * </p>
- * <dl>
- * <dt><b>Styles:</b>
- * <dd>BORDER, READ_ONLY, FLAT</dd>
- * <dt><b>Events:</b>
- * <dd>Selection</dd>
- * </dl>
- */
-public final class FlatCCombo extends Composite {
-
-  Text text;
-  List list;
-  int visibleItemCount = 5;
-  Shell popup;
-  Label arrow;
-  boolean hasFocus;
-  Listener listener, filter;
-  Color foreground, background;
-  Font font;
-  
-/**
- * Constructs a new instance of this class given its parent
- * and a style value describing its behavior and appearance.
- * <p>
- * The style value is either one of the style constants defined in
- * class <code>SWT</code> which is applicable to instances of this
- * class, or must be built by <em>bitwise OR</em>'ing together 
- * (that is, using the <code>int</code> "|" operator) two or more
- * of those <code>SWT</code> style constants. The class description
- * lists the style constants that are applicable to the class.
- * Style bits are also inherited from superclasses.
- * </p>
- *
- * @param parent a widget which will be the parent of the new instance (cannot be null)
- * @param style the style of widget to construct
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent</li>
- * </ul>
- *
- * @see SWT#BORDER
- * @see SWT#READ_ONLY
- * @see SWT#FLAT
- * @see Widget#getStyle()
- */
-public FlatCCombo (Composite parent, int style) {
-  super (parent, style = checkStyle (style));
-  
-  int textStyle = SWT.SINGLE;
-  if ((style & SWT.READ_ONLY) != 0) textStyle |= SWT.READ_ONLY;
-  if ((style & SWT.FLAT) != 0) textStyle |= SWT.FLAT;
-  text = new Text (this, textStyle);
-  int arrowStyle = SWT.ARROW | SWT.DOWN;
-  if ((style & SWT.FLAT) != 0) arrowStyle |= SWT.FLAT;
-  arrow = new Label(this, SWT.FLAT);
-  arrow.setImage(XSDEditorPlugin.getXSDImage("icons/TriangleToolBar.gif")); //$NON-NLS-1$
-
-  listener = new Listener () {
-    public void handleEvent (Event event) {
-      if (popup == event.widget) {
-        popupEvent (event);
-        return;
-      }
-      if (text == event.widget) {
-        textEvent (event);
-        return;
-      }
-      if (list == event.widget) {
-        listEvent (event);
-        return;
-      }
-      if (arrow == event.widget) {
-        arrowEvent (event);
-        return;
-      }
-      if (FlatCCombo.this == event.widget) {
-        comboEvent (event);
-        return;
-      }
-      if (getShell () == event.widget) {
-        handleFocus (SWT.FocusOut);
-      }
-    }
-  };
-  filter = new Listener() {
-    public void handleEvent(Event event) {
-      Shell shell = ((Control)event.widget).getShell ();
-      if (shell == FlatCCombo.this.getShell ()) {
-        handleFocus (SWT.FocusOut);
-      }
-    }
-  };
-  
-  int [] comboEvents = {SWT.Dispose, SWT.Move, SWT.Resize};
-  for (int i=0; i<comboEvents.length; i++) this.addListener (comboEvents [i], listener);
-  
-  int [] textEvents = {SWT.KeyDown, SWT.KeyUp, SWT.MenuDetect, SWT.Modify, SWT.MouseDown, SWT.MouseUp, SWT.Traverse, SWT.FocusIn};
-  for (int i=0; i<textEvents.length; i++) text.addListener (textEvents [i], listener);
-  
-  int [] arrowEvents = {SWT.MouseDown, SWT.Selection, SWT.FocusIn};
-  for (int i=0; i<arrowEvents.length; i++) arrow.addListener (arrowEvents [i], listener);
-  
-  createPopup(null, -1);
-  initAccessible();
-}
-static int checkStyle (int style) {
-  int mask = SWT.BORDER | SWT.READ_ONLY | SWT.FLAT | SWT.LEFT_TO_RIGHT | SWT.RIGHT_TO_LEFT;
-  return style & mask;
-}
-/**
- * Adds the argument to the end of the receiver's list.
- *
- * @param string the new item
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see #add(String,int)
- */
-public void add (String string) {
-  checkWidget();
-  if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  list.add (string);
-}
-/**
- * Adds the argument to the receiver's list at the given
- * zero-relative index.
- * <p>
- * Note: To add an item at the end of the list, use the
- * result of calling <code>getItemCount()</code> as the
- * index or use <code>add(String)</code>.
- * </p>
- *
- * @param string the new item
- * @param index the index for the item
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- *    <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list (inclusive)</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see #add(String)
- */
-public void add (String string, int index) {
-  checkWidget();
-  if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  list.add (string, index);
-}
-/**
- * Adds the listener to the collection of listeners who will
- * be notified when the receiver's text is modified, by sending
- * it one of the messages defined in the <code>ModifyListener</code>
- * interface.
- *
- * @param listener the listener which should be notified
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see ModifyListener
- * @see #removeModifyListener
- */
-public void addModifyListener (ModifyListener listener) {
-  checkWidget();
-  if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  TypedListener typedListener = new TypedListener (listener);
-  addListener (SWT.Modify, typedListener);
-}
-/**
- * Adds the listener to the collection of listeners who will
- * be notified when the receiver's selection changes, by sending
- * it one of the messages defined in the <code>SelectionListener</code>
- * interface.
- * <p>
- * <code>widgetSelected</code> is called when the combo's list selection changes.
- * <code>widgetDefaultSelected</code> is typically called when ENTER is pressed the combo's text area.
- * </p>
- *
- * @param listener the listener which should be notified
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see SelectionListener
- * @see #removeSelectionListener
- * @see SelectionEvent
- */
-public void addSelectionListener(SelectionListener listener) {
-  checkWidget();
-  if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  TypedListener typedListener = new TypedListener (listener);
-  addListener (SWT.Selection,typedListener);
-  addListener (SWT.DefaultSelection,typedListener);
-}
-void arrowEvent (Event event) {
-  switch (event.type) {
-    case SWT.FocusIn: {
-      handleFocus (SWT.FocusIn);
-      break;
-    }
-    case SWT.Selection: {
-      dropDown (!isDropped ());
-      break;
-    }
-    case SWT.MouseDown: {
-      dropDown (!isDropped ());
-      break;
-    }
-  }
-}
-/**
- * Sets the selection in the receiver's text field to an empty
- * selection starting just before the first character. If the
- * text field is editable, this has the effect of placing the
- * i-beam at the start of the text.
- * <p>
- * Note: To clear the selected items in the receiver's list, 
- * use <code>deselectAll()</code>.
- * </p>
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see #deselectAll
- */
-public void clearSelection () {
-  checkWidget ();
-  text.clearSelection ();
-  list.deselectAll ();
-}
-void comboEvent (Event event) {
-  switch (event.type) {
-    case SWT.Dispose:
-      if (popup != null && !popup.isDisposed ()) {
-        list.removeListener (SWT.Dispose, listener);
-        popup.dispose ();
-      }
-      Shell shell = getShell ();
-      shell.removeListener (SWT.Deactivate, listener);
-      Display display = getDisplay ();
-      display.removeFilter (SWT.FocusIn, filter);
-      popup = null;  
-      text = null;  
-      list = null;  
-      arrow = null;
-      break;
-    case SWT.Move:
-      dropDown (false);
-      break;
-    case SWT.Resize:
-      internalLayout (false);
-      break;
-  }
-}
-
-public Point computeSize (int wHint, int hHint, boolean changed) {
-  checkWidget ();
-  int width = 0, height = 0;
-  String[] items = list.getItems ();
-  int textWidth = 0;
-  GC gc = new GC (text);
-  int spacer = gc.stringExtent (" ").x; //$NON-NLS-1$
-  for (int i = 0; i < items.length; i++) {
-    textWidth = Math.max (gc.stringExtent (items[i]).x, textWidth);
-  }
-  gc.dispose();
-  Point textSize = text.computeSize (SWT.DEFAULT, SWT.DEFAULT, changed);
-  // Point arrowSize = arrow.computeSize (SWT.DEFAULT, SWT.DEFAULT, changed);
-  Point arrowSize = new Point(16, 16);
-  Point listSize = list.computeSize (SWT.DEFAULT, SWT.DEFAULT, changed);
-  int borderWidth = getBorderWidth ();
-  
-  height = Math.max (textSize.y, arrowSize.y);
-  width = Math.max (textWidth + 2*spacer + arrowSize.x + 2*borderWidth, listSize.x);
-  if (wHint != SWT.DEFAULT) width = wHint;
-  if (hHint != SWT.DEFAULT) height = hHint;
-  return new Point (width + 2*borderWidth, height + 2*borderWidth);
-}
-void createPopup(String[] items, int selectionIndex) {    
-    // create shell and list
-    popup = new Shell (getShell (), SWT.NO_TRIM | SWT.ON_TOP);
-    int style = getStyle ();
-    int listStyle = SWT.SINGLE | SWT.V_SCROLL;
-    if ((style & SWT.FLAT) != 0) listStyle |= SWT.FLAT;
-    if ((style & SWT.RIGHT_TO_LEFT) != 0) listStyle |= SWT.RIGHT_TO_LEFT;
-    if ((style & SWT.LEFT_TO_RIGHT) != 0) listStyle |= SWT.LEFT_TO_RIGHT;
-    list = new List (popup, listStyle);
-    if (font != null) list.setFont (font);
-    if (foreground != null) list.setForeground (foreground);
-    if (background != null) list.setBackground (background);
-    
-    int [] popupEvents = {SWT.Close, SWT.Paint, SWT.Deactivate};
-    for (int i=0; i<popupEvents.length; i++) popup.addListener (popupEvents [i], listener);
-    int [] listEvents = {SWT.MouseUp, SWT.Selection, SWT.Traverse, SWT.KeyDown, SWT.KeyUp, SWT.FocusIn, SWT.Dispose};
-    for (int i=0; i<listEvents.length; i++) list.addListener (listEvents [i], listener);
-    
-    if (items != null) list.setItems (items);
-    if (selectionIndex != -1) list.setSelection (selectionIndex);
-}
-/**
- * Deselects the item at the given zero-relative index in the receiver's 
- * list.  If the item at the index was already deselected, it remains
- * deselected. Indices that are out of range are ignored.
- *
- * @param index the index of the item to deselect
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void deselect (int index) {
-  checkWidget ();
-  list.deselect (index);
-}
-/**
- * Deselects all selected items in the receiver's list.
- * <p>
- * Note: To clear the selection in the receiver's text field,
- * use <code>clearSelection()</code>.
- * </p>
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see #clearSelection
- */
-public void deselectAll () {
-  checkWidget ();
-  list.deselectAll ();
-}
-void dropDown (boolean drop) {
-  if (drop == isDropped ()) return;
-  if (!drop) {
-    popup.setVisible (false);
-    if (!isDisposed ()&& arrow.isFocusControl()) {
-      text.setFocus();
-    }
-    return;
-  }
-
-  if (getShell() != popup.getParent ()) {
-    String[] items = list.getItems ();
-    int selectionIndex = list.getSelectionIndex ();
-    list.removeListener (SWT.Dispose, listener);
-    popup.dispose();
-    popup = null;
-    list = null;
-    createPopup (items, selectionIndex);
-  }
-  
-  Point size = getSize ();
-  int itemCount = list.getItemCount ();
-  itemCount = (itemCount == 0) ? visibleItemCount : Math.min(visibleItemCount, itemCount);
-  int itemHeight = list.getItemHeight () * itemCount;
-  Point listSize = list.computeSize (SWT.DEFAULT, itemHeight, false);
-  list.setBounds (1, 1, Math.max (size.x - 2, listSize.x), listSize.y);
-  
-  int index = list.getSelectionIndex ();
-  if (index != -1) list.setTopIndex (index);
-  Display display = getDisplay ();
-  Rectangle listRect = list.getBounds ();
-  Rectangle parentRect = display.map (getParent (), null, getBounds ());
-  Point comboSize = getSize ();
-  Rectangle displayRect = getMonitor ().getClientArea ();
-  int width = Math.max (comboSize.x, listRect.width + 2);
-  int height = listRect.height + 2;
-  int x = parentRect.x;
-  int y = parentRect.y + comboSize.y;
-  if (y + height > displayRect.y + displayRect.height) y = parentRect.y - height;
-  if (x + width > displayRect.x + displayRect.width) x = displayRect.x + displayRect.width - listRect.width;
-  popup.setBounds (x, y, width, height);
-  popup.setVisible (true);
-  list.setFocus ();
-}
-/*
- * Return the lowercase of the first non-'&' character following
- * an '&' character in the given string. If there are no '&'
- * characters in the given string, return '\0'.
- */
-char _findMnemonic (String string) {
-  if (string == null) return '\0';
-  int index = 0;
-  int length = string.length ();
-  do {
-    while (index < length && string.charAt (index) != '&') index++;
-    if (++index >= length) return '\0';
-    if (string.charAt (index) != '&') return Character.toLowerCase (string.charAt (index));
-    index++;
-  } while (index < length);
-  return '\0';
-}
-/* 
- * Return the Label immediately preceding the receiver in the z-order, 
- * or null if none. 
- */
-Label getAssociatedLabel () {
-  Control[] siblings = getParent ().getChildren ();
-  for (int i = 0; i < siblings.length; i++) {
-    if (siblings [i] == this) {
-      if (i > 0 && siblings [i-1] instanceof Label) {
-        return (Label) siblings [i-1];
-      }
-    }
-  }
-  return null;
-}
-public Control [] getChildren () {
-  return super.getChildren();
-}
-/**
- * Gets the editable state.
- *
- * @return whether or not the receiver is editable
- * 
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- * 
- * @since 3.0
- */
-public boolean getEditable () {
-  checkWidget ();
-  return text.getEditable();
-}
-/**
- * Returns the item at the given, zero-relative index in the
- * receiver's list. Throws an exception if the index is out
- * of range.
- *
- * @param index the index of the item to return
- * @return the item at the given index
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public String getItem (int index) {
-  checkWidget();
-  return list.getItem (index);
-}
-/**
- * Returns the number of items contained in the receiver's list.
- *
- * @return the number of items
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public int getItemCount () {
-  checkWidget ();
-  return list.getItemCount ();
-}
-/**
- * Returns the height of the area which would be used to
- * display <em>one</em> of the items in the receiver's list.
- *
- * @return the height of one item
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public int getItemHeight () {
-  checkWidget ();
-  return list.getItemHeight ();
-}
-/**
- * Returns an array of <code>String</code>s which are the items
- * in the receiver's list. 
- * <p>
- * Note: This is not the actual structure used by the receiver
- * to maintain its list of items, so modifying the array will
- * not affect the receiver. 
- * </p>
- *
- * @return the items in the receiver's list
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public String [] getItems () {
-  checkWidget ();
-  return list.getItems ();
-}
-public Menu getMenu() {
-  return text.getMenu();
-}
-/**
- * Returns a <code>Point</code> whose x coordinate is the start
- * of the selection in the receiver's text field, and whose y
- * coordinate is the end of the selection. The returned values
- * are zero-relative. An "empty" selection as indicated by
- * the the x and y coordinates having the same value.
- *
- * @return a point representing the selection start and end
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public Point getSelection () {
-  checkWidget ();
-  return text.getSelection ();
-}
-/**
- * Returns the zero-relative index of the item which is currently
- * selected in the receiver's list, or -1 if no item is selected.
- *
- * @return the index of the selected item
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public int getSelectionIndex () {
-  checkWidget ();
-  return list.getSelectionIndex ();
-}
-public int getStyle () {
-  int style = super.getStyle ();
-  style &= ~SWT.READ_ONLY;
-  if (!text.getEditable()) style |= SWT.READ_ONLY; 
-  return style;
-}
-/**
- * Returns a string containing a copy of the contents of the
- * receiver's text field.
- *
- * @return the receiver's text
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public String getText () {
-  checkWidget ();
-  return text.getText ();
-}
-/**
- * Returns the height of the receivers's text field.
- *
- * @return the text height
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public int getTextHeight () {
-  checkWidget ();
-  return text.getLineHeight ();
-}
-/**
- * Returns the maximum number of characters that the receiver's
- * text field is capable of holding. If this has not been changed
- * by <code>setTextLimit()</code>, it will be the constant
- * <code>Combo.LIMIT</code>.
- * 
- * @return the text limit
- * 
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public int getTextLimit () {
-  checkWidget ();
-  return text.getTextLimit ();
-}
-/**
- * Gets the number of items that are visible in the drop
- * down portion of the receiver's list.
- *
- * @return the number of items that are visible
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- * 
- * @since 3.0
- */
-public int getVisibleItemCount () {
-  checkWidget ();
-  return visibleItemCount;
-}
-void handleFocus (int type) {
-  if (isDisposed ()) return;
-  switch (type) {
-    case SWT.FocusIn: {
-      if (hasFocus) return;
-      if (getEditable ()) text.selectAll ();
-      hasFocus = true;
-      Shell shell = getShell ();
-      shell.removeListener (SWT.Deactivate, listener);
-      shell.addListener (SWT.Deactivate, listener);
-      Display display = getDisplay ();
-      display.removeFilter (SWT.FocusIn, filter);
-      display.addFilter (SWT.FocusIn, filter);
-      Event e = new Event ();
-      notifyListeners (SWT.FocusIn, e);
-      break;
-    }
-    case SWT.FocusOut: {
-      if (!hasFocus) return;
-      Control focusControl = getDisplay ().getFocusControl ();
-      if (focusControl == arrow || focusControl == list || focusControl == text) return;
-      hasFocus = false;
-      Shell shell = getShell ();
-      shell.removeListener(SWT.Deactivate, listener);
-      Display display = getDisplay ();
-      display.removeFilter (SWT.FocusIn, filter);
-      Event e = new Event ();
-      notifyListeners (SWT.FocusOut, e);
-      break;
-    }
-  }
-}
-/**
- * Searches the receiver's list starting at the first item
- * (index 0) until an item is found that is equal to the 
- * argument, and returns the index of that item. If no item
- * is found, returns -1.
- *
- * @param string the search item
- * @return the index of the item
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public int indexOf (String string) {
-  checkWidget ();
-  if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  return list.indexOf (string);
-}
-/**
- * Searches the receiver's list starting at the given, 
- * zero-relative index until an item is found that is equal
- * to the argument, and returns the index of that item. If
- * no item is found or the starting index is out of range,
- * returns -1.
- *
- * @param string the search item
- * @param start the zero-relative index at which to begin the search
- * @return the index of the item
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public int indexOf (String string, int start) {
-  checkWidget ();
-  if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  return list.indexOf (string, start);
-}
-
-void initAccessible() {
-  AccessibleAdapter accessibleAdapter = new AccessibleAdapter () {
-    public void getName (AccessibleEvent e) {
-      String name = null;
-      Label label = getAssociatedLabel ();
-      if (label != null) {
-        name = stripMnemonic (label.getText());
-      }
-      e.result = name;
-    }
-    public void getKeyboardShortcut(AccessibleEvent e) {
-      String shortcut = null;
-      Label label = getAssociatedLabel ();
-      if (label != null) {
-        String text = label.getText ();
-        if (text != null) {
-          char mnemonic = _findMnemonic (text);
-          if (mnemonic != '\0') {
-            shortcut = "Alt+"+mnemonic; //$NON-NLS-1$
-          }
-        }
-      }
-      e.result = shortcut;
-    }
-    public void getHelp (AccessibleEvent e) {
-      e.result = getToolTipText ();
-    }
-  };
-  getAccessible ().addAccessibleListener (accessibleAdapter);
-  text.getAccessible ().addAccessibleListener (accessibleAdapter);
-  list.getAccessible ().addAccessibleListener (accessibleAdapter);
-  
-  arrow.getAccessible ().addAccessibleListener (new AccessibleAdapter() {
-    public void getName (AccessibleEvent e) {
-      e.result = isDropped () ? SWT.getMessage ("SWT_Close") : SWT.getMessage ("SWT_Open"); //$NON-NLS-1$ //$NON-NLS-2$
-    }
-    public void getKeyboardShortcut (AccessibleEvent e) {
-      e.result = "Alt+Down Arrow"; //$NON-NLS-1$
-    }
-    public void getHelp (AccessibleEvent e) {
-      e.result = getToolTipText ();
-    }
-  });
-
-  getAccessible().addAccessibleTextListener (new AccessibleTextAdapter() {
-    public void getCaretOffset (AccessibleTextEvent e) {
-      e.offset = text.getCaretPosition ();
-    }
-    public void getSelectionRange(AccessibleTextEvent e) {
-      Point sel = text.getSelection();
-      e.offset = sel.x;
-      e.length = sel.y - sel.x;
-    }
-  });
-  
-  getAccessible().addAccessibleControlListener (new AccessibleControlAdapter() {
-    public void getChildAtPoint (AccessibleControlEvent e) {
-      Point testPoint = toControl (e.x, e.y);
-      if (getBounds ().contains (testPoint)) {
-        e.childID = ACC.CHILDID_SELF;
-      }
-    }
-    
-    public void getLocation (AccessibleControlEvent e) {
-      Rectangle location = getBounds ();
-      Point pt = toDisplay (location.x, location.y);
-      e.x = pt.x;
-      e.y = pt.y;
-      e.width = location.width;
-      e.height = location.height;
-    }
-    
-    public void getChildCount (AccessibleControlEvent e) {
-      e.detail = 0;
-    }
-    
-    public void getRole (AccessibleControlEvent e) {
-      e.detail = ACC.ROLE_COMBOBOX;
-    }
-    
-    public void getState (AccessibleControlEvent e) {
-      e.detail = ACC.STATE_NORMAL;
-    }
-
-    public void getValue (AccessibleControlEvent e) {
-      e.result = getText ();
-    }
-  });
-
-  text.getAccessible ().addAccessibleControlListener (new AccessibleControlAdapter () {
-    public void getRole (AccessibleControlEvent e) {
-      e.detail = text.getEditable () ? ACC.ROLE_TEXT : ACC.ROLE_LABEL;
-    }
-  });
-
-  arrow.getAccessible ().addAccessibleControlListener (new AccessibleControlAdapter() {
-    public void getDefaultAction (AccessibleControlEvent e) {
-      e.result = isDropped () ? SWT.getMessage ("SWT_Close") : SWT.getMessage ("SWT_Open"); //$NON-NLS-1$ //$NON-NLS-2$
-    }
-  });
-}
-boolean isDropped () {
-  return popup.getVisible ();
-}
-public boolean isFocusControl () {
-  checkWidget();
-  if (text.isFocusControl () || arrow.isFocusControl () || list.isFocusControl () || popup.isFocusControl ()) {
-    return true;
-  } 
-  return super.isFocusControl ();
-}
-void internalLayout (boolean changed) {
-  if (isDropped ()) dropDown (false);
-  Rectangle rect = getClientArea ();
-  int width = rect.width;
-  int height = rect.height;
-  // Point arrowSize = arrow.computeSize (SWT.DEFAULT, height, changed);
-  // text.setBounds (0, 0, width - arrowSize.x, height);
-  text.setBounds (0, 0, width - 16, height);
-  // arrow.setBounds (width - arrowSize.x, 0, arrowSize.x, arrowSize.y);
-  arrow.setBounds (width - 16, 0, 16, 16);
-}
-void listEvent (Event event) {
-  switch (event.type) {
-    case SWT.Dispose:
-      if (getShell () != popup.getParent ()) {
-        String[] items = list.getItems ();
-        int selectionIndex = list.getSelectionIndex ();
-        popup = null;
-        list = null;
-        createPopup (items, selectionIndex);
-      }
-      break;
-    case SWT.FocusIn: {
-      handleFocus (SWT.FocusIn);
-      break;
-    }
-    case SWT.MouseUp: {
-      if (event.button != 1) return;
-      dropDown (false);
-      break;
-    }
-    case SWT.Selection: {
-      int index = list.getSelectionIndex ();
-      if (index == -1) return;
-      text.setText (list.getItem (index));
-      text.selectAll ();
-      list.setSelection (index);
-      Event e = new Event ();
-      e.time = event.time;
-      e.stateMask = event.stateMask;
-      e.doit = event.doit;
-      notifyListeners (SWT.Selection, e);
-      event.doit = e.doit;
-      break;
-    }
-    case SWT.Traverse: {
-      switch (event.detail) {
-        case SWT.TRAVERSE_RETURN:
-        case SWT.TRAVERSE_ESCAPE:
-        case SWT.TRAVERSE_ARROW_PREVIOUS:
-        case SWT.TRAVERSE_ARROW_NEXT:
-          event.doit = false;
-          break;
-      }
-      Event e = new Event ();
-      e.time = event.time;
-      e.detail = event.detail;
-      e.doit = event.doit;
-      e.character = event.character;
-      e.keyCode = event.keyCode;
-      notifyListeners (SWT.Traverse, e);
-      event.doit = e.doit;
-      event.detail = e.detail;
-      break;
-    }
-    case SWT.KeyUp: {   
-      Event e = new Event ();
-      e.time = event.time;
-      e.character = event.character;
-      e.keyCode = event.keyCode;
-      e.stateMask = event.stateMask;
-      notifyListeners (SWT.KeyUp, e);
-      break;
-    }
-    case SWT.KeyDown: {
-      if (event.character == SWT.ESC) { 
-        // Escape key cancels popup list
-        dropDown (false);
-      }
-      if ((event.stateMask & SWT.ALT) != 0 && (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN)) {
-        dropDown (false);
-      }
-      if (event.character == SWT.CR) {
-        // Enter causes default selection
-        dropDown (false);
-        Event e = new Event ();
-        e.time = event.time;
-        e.stateMask = event.stateMask;
-        notifyListeners (SWT.DefaultSelection, e);
-      }
-      // At this point the widget may have been disposed.
-      // If so, do not continue.
-      if (isDisposed ()) break;
-      Event e = new Event();
-      e.time = event.time;
-      e.character = event.character;
-      e.keyCode = event.keyCode;
-      e.stateMask = event.stateMask;
-      notifyListeners(SWT.KeyDown, e);
-      break;
-      
-    }
-  }
-}
-
-void popupEvent(Event event) {
-  switch (event.type) {
-    case SWT.Paint:
-      // draw black rectangle around list
-      Rectangle listRect = list.getBounds();
-      Color black = getDisplay().getSystemColor(SWT.COLOR_BLACK);
-      event.gc.setForeground(black);
-      event.gc.drawRectangle(0, 0, listRect.width + 1, listRect.height + 1);
-      break;
-    case SWT.Close:
-      event.doit = false;
-      dropDown (false);
-      break;
-    case SWT.Deactivate:
-      dropDown (false);
-      break;
-  }
-}
-public void redraw () {
-  super.redraw();
-  text.redraw();
-  arrow.redraw();
-  if (popup.isVisible()) list.redraw();
-}
-public void redraw (int x, int y, int width, int height, boolean all) {
-  super.redraw(x, y, width, height, true);
-}
-
-/**
- * Removes the item from the receiver's list at the given
- * zero-relative index.
- *
- * @param index the index for the item
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void remove (int index) {
-  checkWidget();
-  list.remove (index);
-}
-/**
- * Removes the items from the receiver's list which are
- * between the given zero-relative start and end 
- * indices (inclusive).
- *
- * @param start the start of the range
- * @param end the end of the range
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_INVALID_RANGE - if either the start or end are not between 0 and the number of elements in the list minus 1 (inclusive)</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void remove (int start, int end) {
-  checkWidget();
-  list.remove (start, end);
-}
-/**
- * Searches the receiver's list starting at the first item
- * until an item is found that is equal to the argument, 
- * and removes that item from the list.
- *
- * @param string the item to remove
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- *    <li>ERROR_INVALID_ARGUMENT - if the string is not found in the list</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void remove (String string) {
-  checkWidget();
-  if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  list.remove (string);
-}
-/**
- * Removes all of the items from the receiver's list and clear the
- * contents of receiver's text field.
- * <p>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void removeAll () {
-  checkWidget();
-  text.setText (""); //$NON-NLS-1$
-  list.removeAll ();
-}
-/**
- * Removes the listener from the collection of listeners who will
- * be notified when the receiver's text is modified.
- *
- * @param listener the listener which should no longer be notified
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see ModifyListener
- * @see #addModifyListener
- */
-public void removeModifyListener (ModifyListener listener) {
-  checkWidget();
-  if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  removeListener(SWT.Modify, listener); 
-}
-/**
- * Removes the listener from the collection of listeners who will
- * be notified when the receiver's selection changes.
- *
- * @param listener the listener which should no longer be notified
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- *
- * @see SelectionListener
- * @see #addSelectionListener
- */
-public void removeSelectionListener (SelectionListener listener) {
-  checkWidget();
-  if (listener == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  removeListener(SWT.Selection, listener);
-  removeListener(SWT.DefaultSelection,listener);  
-}
-/**
- * Selects the item at the given zero-relative index in the receiver's 
- * list.  If the item at the index was already selected, it remains
- * selected. Indices that are out of range are ignored.
- *
- * @param index the index of the item to select
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void select (int index) {
-  checkWidget();
-  if (index == -1) {
-    list.deselectAll ();
-    text.setText (""); //$NON-NLS-1$
-    return;
-  }
-  if (0 <= index && index < list.getItemCount()) {
-    if (index != getSelectionIndex()) {
-      text.setText (list.getItem (index));
-      text.selectAll ();
-      list.select (index);
-      list.showSelection ();
-    }
-  }
-}
-public void setBackground (Color color) {
-  super.setBackground(color);
-  background = color;
-  if (text != null) text.setBackground(color);
-  if (list != null) list.setBackground(color);
-  if (arrow != null) arrow.setBackground(color);
-}
-/**
- * Sets the editable state.
- *
- * @param editable the new editable state
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- * 
- * @since 3.0
- */
-public void setEditable (boolean editable) {
-  checkWidget ();
-  text.setEditable(editable);
-}
-public void setEnabled (boolean enabled) {
-  super.setEnabled(enabled);
-  if (popup != null) popup.setVisible (false);
-  if (text != null) text.setEnabled(enabled);
-  if (arrow != null) arrow.setEnabled(enabled);
-}
-public boolean setFocus () {
-  checkWidget();
-  return text.setFocus ();
-}
-public void setFont (Font font) {
-  super.setFont (font);
-  this.font = font;
-  text.setFont (font);
-  list.setFont (font);
-  internalLayout (true);
-}
-public void setForeground (Color color) {
-  super.setForeground(color);
-  foreground = color;
-  if (text != null) text.setForeground(color);
-  if (list != null) list.setForeground(color);
-  if (arrow != null) arrow.setForeground(color);
-}
-/**
- * Sets the text of the item in the receiver's list at the given
- * zero-relative index to the string argument. This is equivalent
- * to <code>remove</code>'ing the old item at the index, and then
- * <code>add</code>'ing the new item at that index.
- *
- * @param index the index for the item
- * @param string the new text for the item
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_INVALID_RANGE - if the index is not between 0 and the number of elements in the list minus 1 (inclusive)</li>
- *    <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void setItem (int index, String string) {
-  checkWidget();
-  list.setItem (index, string);
-}
-/**
- * Sets the receiver's list to be the given array of items.
- *
- * @param items the array of items
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the items array is null</li>
- *    <li>ERROR_INVALID_ARGUMENT - if an item in the items array is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void setItems (String [] items) {
-  checkWidget ();
-  list.setItems (items);
-  if (!text.getEditable ()) text.setText (""); //$NON-NLS-1$
-}
-/**
- * Sets the layout which is associated with the receiver to be
- * the argument which may be null.
- * <p>
- * Note: No Layout can be set on this Control because it already
- * manages the size and position of its children.
- * </p>
- *
- * @param layout the receiver's new layout or null
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void setLayout (Layout layout) {
-  checkWidget ();
-  return;
-}
-public void setMenu(Menu menu) {
-  text.setMenu(menu);
-}
-/**
- * Sets the selection in the receiver's text field to the
- * range specified by the argument whose x coordinate is the
- * start of the selection and whose y coordinate is the end
- * of the selection. 
- *
- * @param selection a point representing the new selection start and end
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the point is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void setSelection (Point selection) {
-  checkWidget();
-  if (selection == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  text.setSelection (selection.x, selection.y);
-}
-
-/**
- * Sets the contents of the receiver's text field to the
- * given string.
- * <p>
- * Note: The text field in a <code>Combo</code> is typically
- * only capable of displaying a single line of text. Thus,
- * setting the text to a string containing line breaks or
- * other special characters will probably cause it to 
- * display incorrectly.
- * </p>
- *
- * @param string the new text
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_NULL_ARGUMENT - if the string is null</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void setText (String string) {
-  checkWidget();
-  if (string == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
-  int index = list.indexOf (string);
-  if (index == -1) {
-    list.deselectAll ();
-    text.setText (string);
-    return;
-  }
-  text.setText (string);
-  text.selectAll ();
-  list.setSelection (index);
-  list.showSelection ();
-}
-/**
- * Sets the maximum number of characters that the receiver's
- * text field is capable of holding to be the argument.
- *
- * @param limit new text limit
- *
- * @exception IllegalArgumentException <ul>
- *    <li>ERROR_CANNOT_BE_ZERO - if the limit is zero</li>
- * </ul>
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- */
-public void setTextLimit (int limit) {
-  checkWidget();
-  text.setTextLimit (limit);
-}
-
-public void setToolTipText (String string) {
-  checkWidget();
-  super.setToolTipText(string);
-  arrow.setToolTipText (string);
-  text.setToolTipText (string);   
-}
-
-public void setVisible (boolean visible) {
-  super.setVisible(visible);
-  if (!visible) popup.setVisible(false);
-}
-/**
- * Sets the number of items that are visible in the drop
- * down portion of the receiver's list.
- *
- * @param count the new number of items to be visible
- *
- * @exception SWTException <ul>
- *    <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
- *    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
- * </ul>
- * 
- * @since 3.0
- */
-public void setVisibleItemCount (int count) {
-  checkWidget ();
-  if (count < 0) return;
-  visibleItemCount = count;
-}
-String stripMnemonic (String string) {
-  int index = 0;
-  int length = string.length ();
-  do {
-    while ((index < length) && (string.charAt (index) != '&')) index++;
-    if (++index >= length) return string;
-    if (string.charAt (index) != '&') {
-      return string.substring(0, index-1) + string.substring(index, length);
-    }
-    index++;
-  } while (index < length);
-  return string;
-}
-void textEvent (Event event) {
-  switch (event.type) {
-    case SWT.FocusIn: {
-      handleFocus (SWT.FocusIn);
-      break;
-    }
-    case SWT.KeyDown: {
-      if (event.character == SWT.CR) {
-        dropDown (false);
-        Event e = new Event ();
-        e.time = event.time;
-        e.stateMask = event.stateMask;
-        notifyListeners (SWT.DefaultSelection, e);
-      }
-      //At this point the widget may have been disposed.
-      // If so, do not continue.
-      if (isDisposed ()) break;
-      
-      if (event.keyCode == SWT.ARROW_UP || event.keyCode == SWT.ARROW_DOWN) {
-        event.doit = false;
-        if ((event.stateMask & SWT.ALT) != 0) {
-          boolean dropped = isDropped ();
-          text.selectAll ();
-          if (!dropped) setFocus ();
-          dropDown (!dropped);
-          break;
-        }
-
-        int oldIndex = getSelectionIndex ();
-        if (event.keyCode == SWT.ARROW_UP) {
-          select (Math.max (oldIndex - 1, 0));
-        } else {
-          select (Math.min (oldIndex + 1, getItemCount () - 1));
-        }
-        if (oldIndex != getSelectionIndex ()) {
-          Event e = new Event();
-          e.time = event.time;
-          e.stateMask = event.stateMask;
-          notifyListeners (SWT.Selection, e);
-        }
-        //At this point the widget may have been disposed.
-        // If so, do not continue.
-        if (isDisposed ()) break;
-      }
-      
-      // Further work : Need to add support for incremental search in 
-      // pop up list as characters typed in text widget
-            
-      Event e = new Event ();
-      e.time = event.time;
-      e.character = event.character;
-      e.keyCode = event.keyCode;
-      e.stateMask = event.stateMask;
-      notifyListeners (SWT.KeyDown, e);
-      break;
-    }
-    case SWT.KeyUp: {
-      Event e = new Event ();
-      e.time = event.time;
-      e.character = event.character;
-      e.keyCode = event.keyCode;
-      e.stateMask = event.stateMask;
-      notifyListeners (SWT.KeyUp, e);
-      break;
-    }
-    case SWT.MenuDetect: {
-      Event e = new Event ();
-      e.time = event.time;
-      notifyListeners (SWT.MenuDetect, e);
-      break;
-    }
-    case SWT.Modify: {
-      list.deselectAll ();
-      Event e = new Event ();
-      e.time = event.time;
-      notifyListeners (SWT.Modify, e);
-      break;
-    }
-    case SWT.MouseDown: {
-      if (event.button != 1) return;
-      if (text.getEditable ()) return;
-      boolean dropped = isDropped ();
-      text.selectAll ();
-      if (!dropped) setFocus ();
-      dropDown (!dropped);
-      break;
-    }
-    case SWT.MouseUp: {
-      if (event.button != 1) return;
-      if (text.getEditable ()) return;
-      text.selectAll ();
-      break;
-    }
-    case SWT.Traverse: {    
-      switch (event.detail) {
-        case SWT.TRAVERSE_RETURN:
-        case SWT.TRAVERSE_ARROW_PREVIOUS:
-        case SWT.TRAVERSE_ARROW_NEXT:
-          // The enter causes default selection and
-          // the arrow keys are used to manipulate the list contents so
-          // do not use them for traversal.
-          event.doit = false;
-          break;
-      }
-      
-      Event e = new Event ();
-      e.time = event.time;
-      e.detail = event.detail;
-      e.doit = event.doit;
-      e.character = event.character;
-      e.keyCode = event.keyCode;
-      notifyListeners (SWT.Traverse, e);
-      event.doit = e.doit;
-      event.detail = e.detail;
-      break;
-    }
-  }
-}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/IAnnotationProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/IAnnotationProvider.java
deleted file mode 100644
index 226d435..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/IAnnotationProvider.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design;
-
-public interface IAnnotationProvider
-{
-  String getNameAnnotationString();
-  String getNameAnnotationToolTipString();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/IKeyboardDrag.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/IKeyboardDrag.java
deleted file mode 100644
index fe06920..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/IKeyboardDrag.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design;
-
-import org.eclipse.gef.GraphicalEditPart;
-
-public interface IKeyboardDrag {
-
-	public void performKeyboardDrag (GraphicalEditPart source, int direction);
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/ImageOverlayDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/ImageOverlayDescriptor.java
deleted file mode 100644
index 0f2a674..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/ImageOverlayDescriptor.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.adt.design;
-
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.ImageData;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public class ImageOverlayDescriptor extends CompositeImageDescriptor
-{
-  protected Image baseImage;
-  protected Image extensionOverlay, disabledExtensionOverlay;
-  protected Point imageSize;
-  protected boolean isReadOnly;
-  
-  public ImageOverlayDescriptor(Image baseImage, boolean isReadOnly)
-  {
-    super();
-    this.baseImage = baseImage;
-    this.isReadOnly = isReadOnly;
-    imageSize = new Point(baseImage.getBounds().width, baseImage.getBounds().height);
-    extensionOverlay = XSDEditorPlugin.getPlugin().getIcon("ovr16/extnsn_ovr.gif");  //$NON-NLS-1$ 
-    disabledExtensionOverlay = XSDEditorPlugin.getPlugin().getIcon("ovr16/extnsndis_ovr.gif");  //$NON-NLS-1$
-  }
-
-  public Image getImage()
-  {
-    return createImage();
-  }
-  
-  protected void drawCompositeImage(int width, int height)
-  {
-    drawImage(baseImage.getImageData(), 0, 0);
-    ImageData extensionImageData;
-    if (isReadOnly)
-    {
-      extensionImageData = disabledExtensionOverlay.getImageData();
-    }
-    else
-    {
-      extensionImageData = extensionOverlay.getImageData();
-    }
-    drawImage (extensionImageData, imageSize.x - extensionImageData.width, 0);  // Top Right corner
-  }
-
-  protected Point getSize()
-  {
-    return imageSize;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ADTComboBoxCellEditor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ADTComboBoxCellEditor.java
deleted file mode 100644
index 68642c5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ADTComboBoxCellEditor.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.directedit;
-
-import java.text.MessageFormat;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.TraverseEvent;
-import org.eclipse.swt.events.TraverseListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-
-/*
- * This is a copy of ComboBoxCellEditor.
- * We need to apply and deactivate the combo on a single click (not on a double click like
- * the ComboBoxCellEditor).
- */
-public class ADTComboBoxCellEditor extends CellEditor
-{
-
-  /**
-   * The list of items to present in the combo box.
-   */
-  private String[] items;
-
-  /**
-   * The zero-based index of the selected item.
-   */
-  int selection;
-
-  /**
-   * The custom combo box control.
-   */
-  CCombo comboBox;
-
-  /**
-   * Used to determine if the value should be applied to the cell.
-   */
-  private boolean continueApply;
-
-  private Object selectedValue;
-  //private Object setObject;
-  private ComponentReferenceEditManager componentReferenceEditManager;
-
-  /**
-   * Default ComboBoxCellEditor style
-   */
-  private static final int defaultStyle = SWT.NONE;
-
-
-  /**
-   * Creates a new cell editor with a combo containing the given list of choices
-   * and parented under the given control. The cell editor value is the
-   * zero-based index of the selected item. Initially, the cell editor has no
-   * cell validator and the first item in the list is selected.
-   * 
-   * @param parent
-   *          the parent control
-   * @param items
-   *          the list of strings for the combo box
-   */
-  public ADTComboBoxCellEditor(Composite parent, String[] items, ComponentReferenceEditManager editManager)
-  {
-    super(parent, defaultStyle);
-    setItems(items);
-    componentReferenceEditManager = editManager;
-  }
-
-  /**
-   * Returns the list of choices for the combo box
-   * 
-   * @return the list of choices for the combo box
-   */
-  public String[] getItems()
-  {
-    return this.items;
-  }
-
-  /**
-   * Sets the list of choices for the combo box
-   * 
-   * @param items
-   *          the list of choices for the combo box
-   */
-  public void setItems(String[] items)
-  {
-    Assert.isNotNull(items);
-    this.items = items;
-    populateComboBoxItems();
-  }
-
-  /*
-   * (non-Javadoc) Method declared on CellEditor.
-   */
-  protected Control createControl(Composite parent)
-  {
-
-    comboBox = new CCombo(parent, getStyle() | SWT.READ_ONLY);
-    comboBox.setFont(parent.getFont());
-
-    comboBox.addKeyListener(new KeyAdapter()
-    {
-      // hook key pressed - see PR 14201
-      public void keyPressed(KeyEvent e)
-      {
-        keyReleaseOccured(e);
-      }
-    });
-
-    comboBox.addSelectionListener(new SelectionAdapter()
-    {
-      public void widgetDefaultSelected(SelectionEvent event)
-      {
-        applyEditorValueAndDeactivate();
-      }
-
-      public void widgetSelected(SelectionEvent event)
-      {
-        Object newValue = null;
-        continueApply = true;
-        selection = comboBox.getSelectionIndex();
-        String stringSelection = items[selection];
-
-        if (stringSelection.equals(Messages._UI_ACTION_BROWSE))
-        {
-           newValue = invokeDialog(componentReferenceEditManager.getBrowseDialog());
-        }
-        else if (stringSelection.equals(Messages._UI_ACTION_NEW))
-        {
-           newValue = invokeDialog(componentReferenceEditManager.getNewDialog());
-        }
-
-        if (continueApply)
-        {
-          if (newValue == null)
-          {
-            int index = comboBox.getSelectionIndex();
-            if (index != -1)
-            {
-              selectedValue = comboBox.getItem(index);
-            }
-          }
-          else
-          {
-            selectedValue = newValue;
-          }
-
-          applyEditorValueAndDeactivate();
-        }
-        else{
-        	focusLost();
-        }
-      }
-    });
-
-    comboBox.addTraverseListener(new TraverseListener()
-    {
-      public void keyTraversed(TraverseEvent e)
-      {
-        if (e.detail == SWT.TRAVERSE_ESCAPE || e.detail == SWT.TRAVERSE_RETURN)
-        {
-          e.doit = false;
-        }
-      }
-    });
-
-    comboBox.addFocusListener(new FocusAdapter()
-    {
-      public void focusLost(FocusEvent e)
-      {
-        ADTComboBoxCellEditor.this.focusLost();
-      }
-    });
-    return comboBox;
-  }
-
-  private Object invokeDialog(IComponentDialog dialog)
-  {
-    Object newValue = null;
-
-    if (dialog == null)
-    {
-      return null;
-    }
-
-    //dialog.setInitialComponent(setObject);
-    if (dialog.createAndOpen() == Window.OK)
-    {
-      newValue = dialog.getSelectedComponent();
-    }
-    else
-    {
-      continueApply = false;
-    }
-
-    return newValue;
-  }
-
-  /**
-   * The <code>ComboBoxCellEditor</code> implementation of this
-   * <code>CellEditor</code> framework method returns the zero-based index of
-   * the current selection.
-   * 
-   * @return the zero-based index of the current selection wrapped as an
-   *         <code>Integer</code>
-   */
-  protected Object doGetValue()
-  {
-    return new Integer(selection);
-  }
-
-  /*
-   * (non-Javadoc) Method declared on CellEditor.
-   */
-  protected void doSetFocus()
-  {
-    comboBox.setFocus();
-  }
-
-  /**
-   * The <code>ComboBoxCellEditor</code> implementation of this
-   * <code>CellEditor</code> framework method sets the minimum width of the
-   * cell. The minimum width is 10 characters if <code>comboBox</code> is not
-   * <code>null</code> or <code>disposed</code> eles it is 60 pixels to make
-   * sure the arrow button and some text is visible. The list of CCombo will be
-   * wide enough to show its longest item.
-   */
-  public LayoutData getLayoutData()
-  {
-    LayoutData layoutData = super.getLayoutData();
-    if ((comboBox == null) || comboBox.isDisposed())
-      layoutData.minimumWidth = 60;
-    else
-    {
-      // make the comboBox 10 characters wide
-      GC gc = new GC(comboBox);
-      layoutData.minimumWidth = (gc.getFontMetrics().getAverageCharWidth() * 10) + 10;
-      gc.dispose();
-    }
-    return layoutData;
-  }
-
-  /**
-   * The <code>ComboBoxCellEditor</code> implementation of this
-   * <code>CellEditor</code> framework method accepts a zero-based index of a
-   * selection.
-   * 
-   * @param value
-   *          the zero-based index of the selection wrapped as an
-   *          <code>Integer</code>
-   */
-  protected void doSetValue(Object value)
-  {
-    Assert.isTrue(comboBox != null && (value instanceof Integer));
-    selection = ((Integer) value).intValue();
-    comboBox.select(selection);
-  }
-
-  /**
-   * Updates the list of choices for the combo box for the current control.
-   */
-  private void populateComboBoxItems()
-  {
-    if (comboBox != null && items != null)
-    {
-      comboBox.removeAll();
-      for (int i = 0; i < items.length; i++)
-        comboBox.add(items[i], i);
-
-      setValueValid(true);
-      selection = 0;
-    }
-  }
-
-  /**
-   * Applies the currently selected value and deactiavates the cell editor
-   */
-  void applyEditorValueAndDeactivate()
-  {
-    // must set the selection before getting value
-    selection = comboBox.getSelectionIndex();
-    Object newValue = doGetValue();
-    markDirty();
-    boolean isValid = isCorrect(newValue);
-    setValueValid(isValid);
-    if (!isValid)
-    {
-      // try to insert the current value into the error message.
-      setErrorMessage(MessageFormat.format(getErrorMessage(), new Object[] { items[selection] }));
-    }
-    fireApplyEditorValue();
-    deactivate();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.jface.viewers.CellEditor#focusLost()
-   */
-  protected void focusLost()
-  {
-    if (isActivated())
-    {
-      applyEditorValueAndDeactivate();
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.jface.viewers.CellEditor#keyReleaseOccured(org.eclipse.swt.events.KeyEvent)
-   */
-  protected void keyReleaseOccured(KeyEvent keyEvent)
-  {
-    if (keyEvent.character == '\u001b')
-    { // Escape character
-      fireCancelEditor();
-    }
-    else if (keyEvent.character == '\t')
-    { // tab key
-      applyEditorValueAndDeactivate();
-    }
-  }
-
-  //public void setSetObject(Object object)
-  //{
-  //  setObject = object;
-  //}
-
-  public Object getSelectedValue()
-  {
-    return selectedValue;
-  }
-
-  /*
-   * TODO: rmah: This should be moved to WSDLEditorPlugin.java
-   */
-//  private IEditorPart getActiveEditor()
-//  {
-//    IWorkbench workbench = XSDEditorPlugin.getDefault().getWorkbench();
-//    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-//    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-//
-//    return editorPart;
-//  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ComboBoxCellEditorManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ComboBoxCellEditorManager.java
deleted file mode 100644
index c840f21..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ComboBoxCellEditorManager.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.directedit;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ComboBoxCellEditor;
-import org.eclipse.jface.viewers.ICellEditorListener;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-
-public abstract class ComboBoxCellEditorManager extends DirectEditManager// implements
-                                                                          // DirectEditPolicyDelegate
-{
-  protected Label label;
-
-  public ComboBoxCellEditorManager(GraphicalEditPart source, Label label)
-  {
-    super(source, ComboBoxCellEditor.class, new InternalCellEditorLocator(label));
-    this.label = label;
-  }
-
-  protected void initCellEditor()
-  {
-    String initialLabelText = label.getText();
-
-    CCombo combo = (CCombo) getCellEditor().getControl();
-    combo.setFont(label.getFont());
-    combo.setForeground(label.getForegroundColor());
-    combo.setBackground(label.getBackgroundColor());
-    combo.setVisibleItemCount(20);
-
-    /*
-     * combo.addKeyListener(new KeyAdapter() { // hook key pressed - see PR
-     * 14201 public void keyPressed(KeyEvent keyEvent) { if (keyEvent.character ==
-     * 'z') { getCellEditor().applyEditorValue(); } } });
-     */
-    ICellEditorListener cellEditorListener = new ICellEditorListener()
-    {
-      public void cancelEditor()
-      {
-      }
-
-      public void applyEditorValue()
-      {
-      }
-
-      public void editorValueChanged(boolean old, boolean newState)
-      {
-      }
-    };
-    getCellEditor().addListener(cellEditorListener);
-
-    String[] item = combo.getItems();
-    for (int i = 0; i < item.length; i++)
-    {
-      if (item[i].equals(initialLabelText))
-      {
-        getCellEditor().setValue(new Integer(i));
-        break;
-      }
-    }
-  }
-
-  // hack... for some reason the ComboBoxCellEditor does't fire an
-  // editorValueChanged to set the dirty flag
-  // unless we overide this method to return true, the manager is not notified
-  // of changes made in the cell editor
-  protected boolean isDirty()
-  {
-    return true;
-  }
-
-  protected CellEditor createCellEditorOn(Composite composite)
-  {
-    boolean isLabelTextInList = false;
-    List list = computeComboContent();
-    for (Iterator i = list.iterator(); i.hasNext();)
-    {
-      String string = (String) i.next();
-      if (string.equals(label.getText()))
-      {
-        isLabelTextInList = true;
-        break;
-      }
-    }
-
-    if (!isLabelTextInList)
-    {
-      list.add(label.getText());
-    }
-
-    List sortedList = computeSortedList(list);
-    String[] stringArray = new String[sortedList.size()];
-    for (int i = 0; i < stringArray.length; i++)
-    {
-      stringArray[i] = (String) sortedList.get(i);
-    }
-    return createCellEditor(composite, stringArray);
-  }
-  
-  protected CellEditor createCellEditor(Composite composite, String[] stringArray)
-  {
-    return new ComboBoxCellEditor(composite, stringArray);    
-  }
-
-  protected List computeSortedList(List list)
-  {
-    return list;
-  }
-
-  protected abstract List computeComboContent();
-
-  protected abstract void performModify(Object value);
-
-  public static class InternalCellEditorLocator implements CellEditorLocator
-  {
-    protected Label label;
-
-    public InternalCellEditorLocator(Label label)
-    {
-      this.label = label;
-    }
-
-    public void relocate(CellEditor celleditor)
-    {
-      CCombo combo = (CCombo) celleditor.getControl();
-
-      // TODO: We're pulling a fast one here..... This is assuming we're using a
-      // CCombo as our widget
-      // Our eventual 'Combo' may not even use CCombo so this will most likely
-      // get replaced.
-      // int dropDownButtonSizeX = 16;
-
-      Rectangle labelParentBounds = label.getBounds().getCopy();
-      label.translateToAbsolute(labelParentBounds);
-
-      int x = labelParentBounds.x;
-      int y = labelParentBounds.y;
-      int widthK = labelParentBounds.width;
-      int height = labelParentBounds.height;
-      combo.setBounds(x, y + 1, widthK, height - 2);
-    }
-  }
-
-  // implements DirectEditPolicyDelegate
-  // 
-  public void performEdit(CellEditor cellEditor)
-  {
-    ADTComboBoxCellEditor comboCellEditor = (ADTComboBoxCellEditor) cellEditor;
-    CCombo combo = (CCombo) getCellEditor().getControl();
-    int index = combo.getSelectionIndex();
-    if (index != -1)
-    {
-      Object value = combo.getItem(index);
-      if (comboCellEditor.getSelectedValue() != null)
-      {
-        value = comboCellEditor.getSelectedValue();
-      }
-
-      performModify(value);
-    }
-    else
-    {
-      String typedValue = combo.getText();
-      if (combo.indexOf(typedValue) != -1)
-      {
-        performModify(typedValue);
-      }
-      else
-      {
-        String closeMatch = getCloseMatch(typedValue, combo.getItems());
-        if (closeMatch != null)
-        {
-          performModify(closeMatch);
-        }
-        else
-        {
-          Display.getCurrent().beep();
-        }
-      }
-    }
-  }
-
-  protected String getCloseMatch(String value, String[] items)
-  {
-    int matchIndex = -1;
-
-    for (int i = 0; i < items.length; i++)
-    {
-      String item = items[i];
-      String a = getLocalName(value);
-      String b = getLocalName(item);
-      if (a.equalsIgnoreCase(b))
-      {
-        matchIndex = i;
-        break;
-      }
-    }
-    return matchIndex != -1 ? items[matchIndex] : null;
-  }
-
-  protected String getLocalName(String string)
-  {
-    int index = string.indexOf(":"); //$NON-NLS-1$
-    return (index != -1) ? string.substring(index + 1) : string;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ElementReferenceDirectEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ElementReferenceDirectEditManager.java
deleted file mode 100644
index f8c775a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/ElementReferenceDirectEditManager.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.design.directedit;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDElementReferenceEditManager;
-
-public class ElementReferenceDirectEditManager extends ComboBoxCellEditorManager
-{
-  protected AbstractGraphicalEditPart editPart;
-  protected IField setObject;
-
-  public ElementReferenceDirectEditManager(IField parameter, AbstractGraphicalEditPart source, Label label)
-  {
-    super(source, label);
-    editPart = source;
-    setObject = parameter;
-  }
-
-  protected CellEditor createCellEditorOn(Composite composite)
-  {
-    return super.createCellEditorOn(composite);
-  }
-
-  protected List computeComboContent()
-  {
-    List list = new ArrayList();
-    ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-    if (editManager != null)
-    {
-       list.add(Messages._UI_ACTION_BROWSE);
-       list.add(Messages._UI_ACTION_NEW);
-       ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-       if (quickPicks != null)
-       {
-         for (int i=0; i < quickPicks.length; i++)
-         {
-           ComponentSpecification componentSpecification = quickPicks[i];
-           list.add(componentSpecification.getName());
-         }  
-       }
-       ComponentSpecification[] history = editManager.getHistory();
-       if (history != null)
-       {
-         for (int i=0; i < history.length; i++)
-         {
-           ComponentSpecification componentSpecification = history[i];
-           list.add(componentSpecification.getName());
-         }  
-       }
-    } 
-    return list; 
-  }
-
-  protected ComponentSpecification getComponentSpecificationForValue(String value)
-  {
-    ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-    if (editManager != null)
-    {  
-      ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-      if (quickPicks != null)
-      {
-        for (int i=0; i < quickPicks.length; i++)
-        {
-          ComponentSpecification componentSpecification = quickPicks[i];
-          if (value.equals(componentSpecification.getName()))
-          {
-            return componentSpecification;
-          }                
-        }  
-      }
-      ComponentSpecification[] history = editManager.getHistory();
-      if (history != null)
-      {
-        for (int i=0; i < history.length; i++)
-        {
-          ComponentSpecification componentSpecification = history[i];
-          if (value.equals(componentSpecification.getName()))
-          {  
-            return componentSpecification;
-          }
-        }  
-      }
-    }
-    return null;
-  }
-  
-  public void performModify(Object value)
-  {
-    ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-    if (editManager == null)
-    {
-      return;
-    }
-    
-    // our crude combo box can only work with 'String' objects
-    // if we get a String back we need to do some clever mapping to get the ComponentSpecification 
-    //    
-    if (value instanceof String)
-    {
-      value = getComponentSpecificationForValue((String)value);     
-    }  
-    // we assume the selected value is always of the form of a ComponentSpecification
-    // 
-    if (value instanceof ComponentSpecification)      
-    {
-      // we need to perform an asyncExec here since the 'host' editpart may be
-      // removed as a side effect of performing the action           
-      DelayedSetElementReferenceRunnable runnable = new DelayedSetElementReferenceRunnable(editManager, setObject, (ComponentSpecification)value);
-      //runnable.run();
-      Display.getCurrent().asyncExec(runnable);
-    }
-  }
-
-  protected List computeSortedList(List list)
-  {
-    // return TypesHelper.sortList(list);
-    return list;
-  }
-  
-  protected CellEditor createCellEditor(Composite composite, String[] stringArray)
-  {
-    ADTComboBoxCellEditor cellEditor = new ADTComboBoxCellEditor(composite, stringArray, getComponentReferenceEditManager());
-    //((ADTComboBoxCellEditor) cellEditor).setObjectToModify(setObject);
-    return cellEditor;
-  }
-
-  protected ComponentReferenceEditManager getComponentReferenceEditManager()
-  {
-    ComponentReferenceEditManager result = null;
-    IEditorPart editor = getActiveEditor();
-    if (editor != null)
-    {
-      result = (ComponentReferenceEditManager)editor.getAdapter(XSDElementReferenceEditManager.class);
-    }  
-    return result;
-  }
-  
-  private IEditorPart getActiveEditor()
-  {
-    IWorkbench workbench = PlatformUI.getWorkbench();
-    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-    return editorPart;
-  }    
-  
-  protected static class DelayedSetElementReferenceRunnable implements Runnable
-  {
-    protected ComponentReferenceEditManager componentReferenceEditManager;
-    protected ComponentSpecification newValue;
-    protected IField field;
-
-    public DelayedSetElementReferenceRunnable(ComponentReferenceEditManager componentReferenceEditManager,
-    		IField setObject, ComponentSpecification selectedValue)
-    {
-      this.componentReferenceEditManager = componentReferenceEditManager;
-      newValue = selectedValue;
-      field = setObject;
-    }
-
-    public void run()
-    {
-      componentReferenceEditManager.modifyComponentReference(field, newValue);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/LabelCellEditorLocator.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/LabelCellEditorLocator.java
deleted file mode 100644
index 0b34f8e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/LabelCellEditorLocator.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.directedit;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseFieldEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.INamedEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IFieldFigure;
-
-public class LabelCellEditorLocator implements CellEditorLocator
-{
-  protected INamedEditPart namedEditPart;
-  protected Point cursorLocation;
-
-  public LabelCellEditorLocator(INamedEditPart namedEditPart, Point cursorLocation)
-  {
-    this.namedEditPart = namedEditPart;
-    this.cursorLocation = cursorLocation;
-  }
-
-  public void relocate(CellEditor celleditor)
-  {
-    Text text = (Text) celleditor.getControl();
-
-    Label label = namedEditPart.getNameLabelFigure();
-    if (text.getBounds().x <= 0)
-    {
-      int widthToRemove = 0;
-      // HACK 
-      if (namedEditPart instanceof BaseFieldEditPart)
-      {
-        BaseFieldEditPart field = (BaseFieldEditPart)namedEditPart;
-        IFieldFigure fieldFigure = field.getFieldFigure();     
-        widthToRemove = fieldFigure.getTypeLabel().getBounds().width;       
-        //TODO: !! perhaps the IFieldFigure should just have a method to compute this?
-        //Label typeAnnotationLabel = ((FieldFigure) field.getFigure()).getTypeAnnotationLabel();
-        //Label nameAnnotationLabel = ((FieldFigure) field.getFigure()).getNameAnnotationLabel();
-        //widthToRemove = typeLabel.getBounds().width + typeAnnotationLabel.getBounds().width + nameAnnotationLabel.getBounds().width;
-      }
-     
-      Rectangle boundingRect = label.getTextBounds();
-
-      // Reduce the width by the amount we shifted along the x-axis
-      int delta = Math.abs(boundingRect.x - label.getParent().getBounds().x);
-
-      label.getParent().translateToAbsolute(boundingRect);
-      org.eclipse.swt.graphics.Rectangle trim = text.computeTrim(0, 0, 0, 0);
-      boundingRect.translate(trim.x, trim.y);
-      boundingRect.height = boundingRect.height - trim.y;
-
-      boundingRect.width = label.getParent().getBounds().width - delta - widthToRemove;
-      text.setBounds(boundingRect.x, boundingRect.y, boundingRect.width, boundingRect.height);
-
-      // Translate point
-      if (cursorLocation != null) {
-    	  Point translatedPoint = new Point(cursorLocation.x - boundingRect.x, cursorLocation.y - boundingRect.y);
-
-    	  // Calculate text offset corresponding to the translated point
-    	  text.setSelection(0, 0);
-    	  int xCaret = text.getCaretLocation().x;
-    	  int offset = text.getCaretPosition();
-    	  while (xCaret < translatedPoint.x)
-    	  {
-    		  text.setSelection(offset + 1, offset + 1);
-    		  xCaret = text.getCaretLocation().x;
-    		  int newOffset = text.getCaretPosition();
-    		  if (newOffset == offset)
-    		  {
-    			  break;
-    		  }
-    		  offset++;
-    	  }
-    	  text.setSelection(offset, offset);
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/LabelEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/LabelEditManager.java
deleted file mode 100644
index 317a5ba..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/LabelEditManager.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.directedit;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.tools.CellEditorLocator;
-import org.eclipse.gef.tools.DirectEditManager;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.part.CellEditorActionHandler;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.INamedEditPart;
-
-public class LabelEditManager extends DirectEditManager {
-
-	private IActionBars actionBars;
-	private CellEditorActionHandler actionHandler;
-	private IAction copy, cut, paste, undo, redo, find, selectAll, delete;
-	private Font scaledFont;
-
-	public LabelEditManager(GraphicalEditPart source, CellEditorLocator locator) {
-		super(source, null, locator);
-	}
-
-	/**
-	 * @see org.eclipse.gef.tools.DirectEditManager#bringDown()
-	 */
-	protected void bringDown() {
-		if (actionHandler != null) {
-			actionHandler.dispose();
-			actionHandler = null;
-		}
-		if (actionBars != null) {
-			restoreSavedActions(actionBars);
-			actionBars.updateActionBars();
-			actionBars = null;
-		}
-
-		Font disposeFont = scaledFont;
-		scaledFont = null;
-		super.bringDown();
-		if (disposeFont != null)
-			disposeFont.dispose();
-	}
-	
-	public void showFeedback() {
-//    super.showFeedback();
-		getEditPart().showSourceFeedback(getDirectEditRequest());
-	}
-
-	protected CellEditor createCellEditorOn(Composite composite) {
-		return new TextCellEditor(composite, SWT.SINGLE | SWT.WRAP);
-	}
-
-	protected void initCellEditor() {
-		Text text = (Text)getCellEditor().getControl();
-		Label label = ((INamedEditPart) getEditPart()).getNameLabelFigure();
-    
-		if (label != null) {
-			scaledFont = label.getFont();
-			
-			Color color = label.getBackgroundColor();
-			text.setBackground(color);
-			
-			String initialLabelText = label.getText();
-			getCellEditor().setValue(initialLabelText);
-		}
-		else {
-			scaledFont = label.getParent().getFont();
-			text.setBackground(label.getParent().getBackgroundColor());
-		}
-		
-		FontData data = scaledFont.getFontData()[0];
-		Dimension fontSize = new Dimension(0, data.getHeight());
-		label.getParent().translateToAbsolute(fontSize);
-		data.setHeight(fontSize.height);
-		scaledFont = new Font(null, data);
-		
-		text.setFont(scaledFont);
-//		text.selectAll();
-
-		// Hook the cell editor's copy/paste actions to the actionBars so that they can
-		// be invoked via keyboard shortcuts.
-		actionBars = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
-				.getActiveEditor().getEditorSite().getActionBars();
-		saveCurrentActions(actionBars);
-		actionHandler = new CellEditorActionHandler(actionBars);
-		actionHandler.addCellEditor(getCellEditor());
-		actionBars.updateActionBars();
-	}
-
-	private void restoreSavedActions(IActionBars actionBars){
-		actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copy);
-		actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), paste);
-		actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), delete);
-		actionBars.setGlobalActionHandler(ActionFactory.SELECT_ALL.getId(), selectAll);
-		actionBars.setGlobalActionHandler(ActionFactory.CUT.getId(), cut);
-		actionBars.setGlobalActionHandler(ActionFactory.FIND.getId(), find);
-		actionBars.setGlobalActionHandler(ActionFactory.UNDO.getId(), undo);
-		actionBars.setGlobalActionHandler(ActionFactory.REDO.getId(), redo);
-	}
-
-	private void saveCurrentActions(IActionBars actionBars) {
-		copy = actionBars.getGlobalActionHandler(ActionFactory.COPY.getId());
-		paste = actionBars.getGlobalActionHandler(ActionFactory.PASTE.getId());
-		delete = actionBars.getGlobalActionHandler(ActionFactory.DELETE.getId());
-		selectAll = actionBars.getGlobalActionHandler(ActionFactory.SELECT_ALL.getId());
-		cut = actionBars.getGlobalActionHandler(ActionFactory.CUT.getId());
-		find = actionBars.getGlobalActionHandler(ActionFactory.FIND.getId());
-		undo = actionBars.getGlobalActionHandler(ActionFactory.UNDO.getId());
-		redo = actionBars.getGlobalActionHandler(ActionFactory.REDO.getId());
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/TypeReferenceDirectEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/TypeReferenceDirectEditManager.java
deleted file mode 100644
index c781c67..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/directedit/TypeReferenceDirectEditManager.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.directedit;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.draw2d.Label;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDTypeReferenceEditManager;
-
-public class TypeReferenceDirectEditManager extends ComboBoxCellEditorManager
-{
-  protected AbstractGraphicalEditPart editPart;
-  protected IField setObject;
-
-  public TypeReferenceDirectEditManager(IField parameter, AbstractGraphicalEditPart source, Label label)
-  {
-    super(source, label);
-    editPart = source;
-    setObject = parameter;
-  }
-
-  protected CellEditor createCellEditorOn(Composite composite)
-  {
-    return super.createCellEditorOn(composite);
-  }
-
-  protected List computeComboContent()
-  {
-    List list = new ArrayList();
-    ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-    if (editManager != null)
-    {
-       list.add(Messages._UI_ACTION_BROWSE);
-       list.add(Messages._UI_ACTION_NEW);
-       ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-       if (quickPicks != null)
-       {
-         for (int i=0; i < quickPicks.length; i++)
-         {
-           ComponentSpecification componentSpecification = quickPicks[i];
-           list.add(componentSpecification.getName());
-         }  
-       }
-       ComponentSpecification[] history = editManager.getHistory();
-       if (history != null)
-       {
-         for (int i=0; i < history.length; i++)
-         {
-           ComponentSpecification componentSpecification = history[i];
-           list.add(componentSpecification.getName());
-         }  
-       }
-    } 
-    return list; 
-  }
-
-  protected ComponentSpecification getComponentSpecificationForValue(String value)
-  {
-    ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-    if (editManager != null)
-    {  
-      ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-      if (quickPicks != null)
-      {
-        for (int i=0; i < quickPicks.length; i++)
-        {
-          ComponentSpecification componentSpecification = quickPicks[i];
-          if (value.equals(componentSpecification.getName()))
-          {
-            return componentSpecification;
-          }                
-        }  
-      }
-      ComponentSpecification[] history = editManager.getHistory();
-      if (history != null)
-      {
-        for (int i=0; i < history.length; i++)
-        {
-          ComponentSpecification componentSpecification = history[i];
-          if (value.equals(componentSpecification.getName()))
-          {  
-            return componentSpecification;
-          }
-        }  
-      }
-    }
-    return null;
-  }
-  
-  public void performModify(Object value)
-  {
-    ComponentReferenceEditManager editManager = getComponentReferenceEditManager();
-    if (editManager == null)
-    {
-      return;
-    }
-    
-    // our crude combo box can only work with 'String' objects
-    // if we get a String back we need to do some clever mapping to get the ComponentSpecification 
-    //    
-    if (value instanceof String)
-    {
-      value = getComponentSpecificationForValue((String)value);     
-    }  
-    // we assume the selected value is always of the form of a ComponentSpecification
-    // 
-    if (value instanceof ComponentSpecification)      
-    {
-      // we need to perform an asyncExec here since the 'host' editpart may be
-      // removed as a side effect of performing the action           
-      DelayedSetTypeRunnable runnable = new DelayedSetTypeRunnable(editManager, setObject, (ComponentSpecification)value);
-      //runnable.run();
-      Display.getCurrent().asyncExec(runnable);
-    }
-  }
-
-  protected List computeSortedList(List list)
-  {
-    // return TypesHelper.sortList(list);
-    return list;
-  }
-  
-  protected CellEditor createCellEditor(Composite composite, String[] stringArray)
-  {
-    ADTComboBoxCellEditor cellEditor = new ADTComboBoxCellEditor(composite, stringArray, getComponentReferenceEditManager());
-    //((ADTComboBoxCellEditor) cellEditor).setObjectToModify(setObject);
-    return cellEditor;
-  }
-
-  protected ComponentReferenceEditManager getComponentReferenceEditManager()
-  {
-    ComponentReferenceEditManager result = null;
-    IEditorPart editor = getActiveEditor();
-    if (editor != null)
-    {
-        result = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);
-    }  
-    return result;
-  }
-  
-  private IEditorPart getActiveEditor()
-  {
-    IWorkbench workbench = PlatformUI.getWorkbench();
-    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-    return editorPart;
-  }    
-  
-  protected static class DelayedSetTypeRunnable implements Runnable
-  {
-    protected ComponentReferenceEditManager componentReferenceEditManager;
-    protected ComponentSpecification newValue;
-    protected IField field;
-
-    public DelayedSetTypeRunnable(ComponentReferenceEditManager componentReferenceEditManager, IField setObject, ComponentSpecification selectedValue)
-    {
-      this.componentReferenceEditManager = componentReferenceEditManager;
-      newValue = selectedValue;
-      field = setObject;
-    }
-
-    public void run()
-    {
-      componentReferenceEditManager.modifyComponentReference(field, newValue);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ADTEditPartFactory.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ADTEditPartFactory.java
deleted file mode 100644
index e89271e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ADTEditPartFactory.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.AbstractModelCollection;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.Compartment;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.FocusTypeColumn;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-
-public class ADTEditPartFactory implements EditPartFactory
-{
-  public EditPart createEditPart(EditPart context, Object model)
-  {
-    EditPart child = doCreateEditPart(context, model);
-    checkChild(child, model);
-    return child;
-  }
-  
-  protected EditPart doCreateEditPart(EditPart context, Object model)
-  {
-    EditPart child = null;
-    if (model instanceof Compartment)
-    {
-      child = new CompartmentEditPart();
-    }      
-    else if (model instanceof AbstractModelCollection)
-    {
-      child = new ColumnEditPart();
-      if (model instanceof FocusTypeColumn)
-      {
-        ColumnEditPart columnEditPart = (ColumnEditPart)child;
-        columnEditPart.setSpacing(60);
-        columnEditPart.setMinorAlignment(ToolbarLayout.ALIGN_CENTER);
-      }  
-    }
-    else if (model instanceof IComplexType)
-    {
-      child = new ComplexTypeEditPart();
-    }
-    else if (model instanceof IStructure)
-    {
-      child = new StructureEditPart();
-    }  
-    else if (model instanceof IField)
-    {
-      if (context instanceof CompartmentEditPart)
-      {  
-        child = new FieldEditPart();
-      }
-      else
-      {
-        child = new TopLevelFieldEditPart();
-      }  
-    }
-    else if (model instanceof IModel)
-    {
-      child = new RootContentEditPart();
-    }
-    return child;   
-  }
-
-  /**
-   * Subclasses can override and not check for null
-   * 
-   * @param child
-   * @param model
-   */
-  protected void checkChild(EditPart child, Object model)
-  {
-    if (child == null)
-    {
-      // Thread.dumpStack();
-    }
-    Assert.isNotNull(child);
-    child.setModel(model);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BackToSchemaEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BackToSchemaEditPart.java
deleted file mode 100644
index f79ed6c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BackToSchemaEditPart.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.MouseListener;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.SetInputToGraphView;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IFeedbackHandler;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.ADTMultiPageEditor;
-import org.eclipse.wst.xsd.ui.internal.design.figures.CenteredIconFigure;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public class BackToSchemaEditPart extends BaseEditPart implements IFeedbackHandler
-{
-  protected MultiPageEditorPart multipageEditor;
-  protected ADTDirectEditPolicy adtDirectEditPolicy = new ADTDirectEditPolicy();
-  protected boolean isEnabled;
-  protected CenteredIconFigure backToSchema;
-  protected MouseListener mouseListener;
-
-  public BackToSchemaEditPart(ADTMultiPageEditor multipageEditor)
-  {
-    super();
-    this.multipageEditor = multipageEditor;
-  }
-
-  protected IFigure createFigure()
-  {
-    backToSchema = new CenteredIconFigure();
-    backToSchema.setBackgroundColor(ColorConstants.white);
-    backToSchema.image = XSDEditorPlugin.getPlugin().getIcon("elcl16/schemaview_co.gif");
-    // TODO, look at why the editpolicy doesn't work
-    mouseListener = new MouseListener()
-    {
-      public void mouseDoubleClicked(org.eclipse.draw2d.MouseEvent me)
-      {
-
-      }
-
-      public void mousePressed(org.eclipse.draw2d.MouseEvent me)
-      {
-        if (isEnabled)
-        {
-          addFeedback();
-        }
-      }
-
-      public void mouseReleased(org.eclipse.draw2d.MouseEvent me)
-      {
-        if (isEnabled)
-        {
-          removeFeedback();
-          SetInputToGraphView action = new SetInputToGraphView(multipageEditor, getModel());
-          action.run();
-        }
-      }
-    };
-    backToSchema.addMouseListener(mouseListener);
-    return backToSchema;
-  }
-  
-  
-  public void setEnabled(boolean isEnabled)
-  {
-    this.isEnabled = isEnabled;
-    refreshVisuals();
-  }
-
-  protected void createEditPolicies()
-  {
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, adtDirectEditPolicy);
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new ADTSelectionFeedbackEditPolicy());
-  }
-
-  public void performRequest(Request request)
-  {
-    if (request.getType() == RequestConstants.REQ_DIRECT_EDIT || request.getType() == RequestConstants.REQ_OPEN)
-    {
-      SetInputToGraphView action = new SetInputToGraphView(multipageEditor, getModel());
-      action.run();
-    }
-  }
-
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-    CenteredIconFigure figure = (CenteredIconFigure) getFigure();
-    if (isEnabled)
-    {
-      backToSchema.image = XSDEditorPlugin.getPlugin().getIcon("elcl16/schemaview_co.gif");
-    }
-    else
-    {
-      backToSchema.image = XSDEditorPlugin.getPlugin().getIcon("dlcl16/schemaview_co.gif");
-    }
-    figure.refresh();
-  }
-
-  public void addFeedback()
-  {
-    CenteredIconFigure figure = (CenteredIconFigure) getFigure();
-    figure.setMode(CenteredIconFigure.SELECTED);
-    figure.refresh();
-  }
-
-  public void removeFeedback()
-  {
-    CenteredIconFigure figure = (CenteredIconFigure) getFigure();
-    figure.setMode(CenteredIconFigure.NORMAL);
-    figure.refresh();
-  }
-  
-  public void deactivate()
-  {
-    backToSchema.removeMouseListener(mouseListener);
-    super.deactivate();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseEditPart.java
deleted file mode 100644
index 85949f3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseEditPart.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.gef.editparts.ScalableRootEditPart;
-import org.eclipse.gef.editparts.ZoomListener;
-import org.eclipse.gef.editparts.ZoomManager;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IFeedbackHandler;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.KeyBoardAccessibilityEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IFigureFactory;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-
-public abstract class BaseEditPart extends AbstractGraphicalEditPart implements IActionProvider, IADTObjectListener, IFeedbackHandler
-{
-  protected static final String[] EMPTY_ACTION_ARRAY = {};
-  protected boolean isSelected = false;
-  
-  public IFigureFactory getFigureFactory()
-  {
-    EditPartFactory factory = getViewer().getEditPartFactory();
-    Assert.isTrue(factory instanceof IFigureFactory, "EditPartFactory must be an instanceof of IFigureFactory");     //$NON-NLS-1$
-    return (IFigureFactory)factory; 
-  }
-  
-  public String[] getActions(Object object)
-  {
-    Object model = getModel();
-    if (model instanceof IActionProvider)
-    {
-      return ((IActionProvider)model).getActions(object);
-    }  
-    return EMPTY_ACTION_ARRAY;
-  }
-  
-  protected void addActionsToList(List list, IAction[] actions)
-  {
-    for (int i = 0; i < actions.length; i++)
-    {
-      list.add(actions[i]);
-    }  
-  }
-  
-  public void activate()
-  {
-    super.activate();
-    Object model = getModel();
-    if (model instanceof IADTObject)
-    {
-      IADTObject object = (IADTObject)model;
-      object.registerListener(this);
-    }
-    
-    if (getZoomManager() != null)
-      getZoomManager().addZoomListener(zoomListener);
-
-  }
-  
-  public void deactivate()
-  {
-    try
-    {
-    Object model = getModel();
-    if (model instanceof IADTObject)
-    {
-      IADTObject object = (IADTObject)model;
-      object.unregisterListener(this);
-    }   
-    
-    if (getZoomManager() != null)
-      getZoomManager().removeZoomListener(zoomListener);    
-    }
-    finally
-    {
-      super.deactivate();
-    }  
-  }  
-  
-  public void propertyChanged(Object object, String property)
-  {
-    refresh();
-  }
-  
-  public void refresh() {
-    super.refresh();
-
-    // Tell our children to refresh (note, this is NOT the function of 
-    // refreshChildren(), strangely enough)
-    for(Iterator i = getChildren().iterator(); i.hasNext(); )
-    {
-      Object obj = i.next();
-      if (obj instanceof BaseEditPart)
-      {
-        ((BaseEditPart)obj).refresh();
-      }
-      else if (obj instanceof AbstractGraphicalEditPart)
-      {
-        ((AbstractGraphicalEditPart)obj).refresh();
-      }
-      
-    }
-  }
-
-  public void addFeedback()
-  {
-    isSelected = true;
-    refreshVisuals();
-  }
-
-  public void removeFeedback()
-  {
-    isSelected = false;
-    refreshVisuals();
-  }
-  
-  public ZoomManager getZoomManager()
-  {
-    return ((ScalableRootEditPart)getRoot()).getZoomManager();
-  }
-  
-  public Rectangle getZoomedBounds(Rectangle r)
-  {
-    double factor = getZoomManager().getZoom();
-    int x = (int)Math.round(r.x * factor);
-    int y = (int)Math.round(r.y * factor);
-    int width = (int)Math.round(r.width * factor);
-    int height = (int)Math.round(r.height * factor);
-
-    return new Rectangle(x, y, width, height);
-  }
-  
-  private ZoomListener zoomListener = new ZoomListener()
-  {
-    public void zoomChanged(double zoom)
-    {
-      handleZoomChanged();
-    }
-  };
-
-  protected void handleZoomChanged()
-  {
-    refreshVisuals();
-  }
-
-  public IEditorPart getEditorPart()
-  {
-    IEditorPart editorPart = null;
-    IWorkbench workbench = PlatformUI.getWorkbench();
-    if (workbench != null)
-    {
-      IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-      if (workbenchWindow != null)
-      {
-        if (workbenchWindow.getActivePage() != null)
-        {
-          editorPart = workbenchWindow.getActivePage().getActiveEditor();
-        }
-      }
-    }
-//    Assert.isNotNull(editorPart);
-    return editorPart;
-  }
-  
-  protected void createEditPolicies()
-  {
-    installEditPolicy(KeyBoardAccessibilityEditPolicy.KEY, new KeyBoardAccessibilityEditPolicy()
-    {      
-      public EditPart getRelativeEditPart(EditPart editPart, int direction)
-      {
-        return doGetRelativeEditPart(editPart, direction);  
-      }           
-    });        
-  }
-  
-  
-  public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-  {   
-    return null;      
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseFieldEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseFieldEditPart.java
deleted file mode 100644
index f9fe653..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseFieldEditPart.java
+++ /dev/null
@@ -1,449 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.DragTracker;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.ComboBoxCellEditorManager;
-import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.ElementReferenceDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.LabelCellEditorLocator;
-import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.LabelEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.TypeReferenceDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.FocusTypeColumn;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.IADTUpdateCommand;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IFieldFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.design.editpolicies.GraphNodeDragTracker;
-import org.eclipse.xsd.XSDNamedComponent;
-
-public class BaseFieldEditPart extends BaseTypeConnectingEditPart implements INamedEditPart
-{
-  protected TypeReferenceConnection connectionFigure;
-  protected ADTDirectEditPolicy adtDirectEditPolicy = new ADTDirectEditPolicy();
-  protected TypeUpdateCommand typeUpdateCommand = new TypeUpdateCommand();
-  protected ElementReferenceUpdateCommand elementUpdateCommand = new ElementReferenceUpdateCommand();
-  protected TypeReferenceConnection connectionFeedbackFigure;
-  
-  protected IFigure createFigure()
-  {          
-    IFieldFigure figure = getFigureFactory().createFieldFigure(getModel());    
-    figure.setForegroundColor(ColorConstants.black);
-    return figure;
-  }
-  
-  public IFieldFigure getFieldFigure()
-  {
-    return (IFieldFigure)figure;
-  }
- 
-  
-  protected boolean shouldDrawConnection()
-  {
-    boolean result = false;
-    
-    // For now we only want to produce outbound lines from a Field to a Type
-    // when the field in contained in the 'focus' edit part    
-    for (EditPart parent = getParent(); parent != null; parent = parent.getParent())
-    {  
-      if (parent.getModel() instanceof FocusTypeColumn)
-      {        
-        result = true;
-        break;
-      }  
-    }    
-    return result;
-  }
-  
-  private EditPart getTargetEditPart(IType type)
-  {
-    ColumnEditPart columnEditPart = null;
-    for (EditPart editPart = this; editPart != null; editPart = editPart.getParent())
-    {
-      if (editPart instanceof ColumnEditPart)
-      {
-        columnEditPart = (ColumnEditPart)editPart;
-        break;
-      }  
-    }     
-    if (columnEditPart != null)
-    {
-      // get the next column
-      EditPart parent = columnEditPart.getParent();
-      List columns = parent.getChildren();
-      int index = columns.indexOf(columnEditPart);
-      if (index + 1 < columns.size())
-      {  
-        EditPart nextColumn = (EditPart)columns.get(index + 1);
-        for (Iterator i = nextColumn.getChildren().iterator(); i.hasNext(); )
-        {
-          EditPart child = (EditPart)i.next();
-          if (child.getModel() == type)
-          {
-            return child;
-          }  
-        }  
-      }  
-    }
-    return null;
-  }
-  
-  private EditPart getTargetConnectionEditPart()
-  {
-    EditPart result = null; 
-    IField field = (IField)getModel();
-    IType type = field.getType();
-    //System.out.println("createConnectionFigure : " + type);
-    if (type != null) // && type.isComplexType())
-    {      
-      result = getTargetEditPart(type);
-    }
-    return result;
-  }
-  
-  public TypeReferenceConnection createConnectionFigure()
-  {
-    connectionFigure = null;   
-    AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart)getTargetConnectionEditPart();
-    if (referenceTypePart != null)
-    {
-      connectionFigure = new TypeReferenceConnection();
-
-      if (getFigure().getParent() == referenceTypePart.getFigure())
-      {
-        connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(getFigure(), CenteredConnectionAnchor.LEFT, 1)); 
-      }
-      else
-      {
-        connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(getFigure(), CenteredConnectionAnchor.RIGHT, 5));
-      }
-      int targetAnchorYOffset = 8;
-
-      connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(referenceTypePart.getFigure(), CenteredConnectionAnchor.HEADER_LEFT, 0, targetAnchorYOffset)); 
-      connectionFigure.setHighlight(false);
-    }
-
-    return connectionFigure;
-  }
-
-  protected void createEditPolicies()
-  {
-    super.createEditPolicies();
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, adtDirectEditPolicy);
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new ADTSelectionFeedbackEditPolicy());
-  }
-  
-  public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-  {
-    EditPart result = null;        
-    if (direction == PositionConstants.EAST)
-    {    
-      result = getTargetConnectionEditPart();
-    }
-    else
-    {
-      result = super.doGetRelativeEditPart(editPart, direction);
-      if (result == null)
-      {  
-        result = ((BaseEditPart)getParent()).doGetRelativeEditPart(editPart, direction);
-      }  
-    }  
-    return result;      
-  }
- 
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-    IFieldFigure figure = getFieldFigure();
-    IField field = (IField) getModel();
-    
-    figure.getNameLabel().setText(field.getName());
-    figure.getTypeLabel().setText(field.getTypeName());
-    figure.refreshVisuals(getModel());
-
-    figure.recomputeLayout();
-
-    ((GraphicalEditPart)getRoot()).getFigure().invalidateTree();
-  }
-
-  public DragTracker getDragTracker(Request request)
-  {
-    return new GraphNodeDragTracker(this);
-  }
-  
-  /*
-  public IAction[] getActions(Object object)
-  {
-    // when a FieldEditPart is selected it provides it's own actions
-    // as well as those of it's parent 'type' edit part
-    List list = new ArrayList();
-    EditPart compartment = getParent();
-    if (compartment != null)
-    {  
-      EditPart type = compartment.getParent();
-      if (type != null && type instanceof IActionProvider)
-      {
-        IActionProvider provider = (IActionProvider)type;
-        addActionsToList(list, provider.getActions(object));
-      }
-    }
-    addActionsToList(list, super.getActions(object));
-    IAction[] result = new IAction[list.size()];
-    list.toArray(result);
-    return result;
-  }*/
-  
-  public Label getNameLabelFigure()
-  {
-    return getFieldFigure().getNameLabel();
-  }
-
-  public void performDirectEdit(Point cursorLocation)
-  {
-    
-  }
-  
-  public void performRequest(Request request)
-  {  
-    if (((IADTObject)getModel()).isReadOnly())
-    {
-      return;
-    }
-    if (request.getType() == RequestConstants.REQ_DIRECT_EDIT||
-        request.getType() == RequestConstants.REQ_OPEN)
-    {
-      IFieldFigure fieldFigure = getFieldFigure();
-      Object model = getModel();
-      if (request instanceof LocationRequest)
-      {
-        LocationRequest locationRequest = (LocationRequest)request;
-        Point p = locationRequest.getLocation();
-       
-        if (hitTest(fieldFigure.getTypeLabel(), p))
-        {
-          TypeReferenceDirectEditManager manager = new TypeReferenceDirectEditManager((IField)model, this, fieldFigure.getTypeLabel());
-          typeUpdateCommand.setDelegate(manager);
-          adtDirectEditPolicy.setUpdateCommand(typeUpdateCommand);
-          manager.show();
-        }
-        else if (hitTest(fieldFigure.getNameLabel(), p))
-        {
-        	directEditNameField();
-        }
-      }
-      else {
-    	  directEditNameField();
-      }
-    }
-  }
-  
-  private void directEditNameField() {
-	Object model = getModel();
-	IFieldFigure fieldFigure = getFieldFigure();
-  	if ( model instanceof IField) 
-    {
-      IField field = (IField) model;
-      if (field.isReference())
-      {
-        ElementReferenceDirectEditManager manager = new ElementReferenceDirectEditManager((IField) model, this, fieldFigure.getNameLabel());
-        elementUpdateCommand.setDelegate(manager);
-        adtDirectEditPolicy.setUpdateCommand(elementUpdateCommand);
-        manager.show();
-      }
-      else
-      {
-        LabelEditManager manager = new LabelEditManager(this, new LabelCellEditorLocator(this, null));
-        NameUpdateCommandWrapper wrapper = new NameUpdateCommandWrapper();
-        adtDirectEditPolicy.setUpdateCommand(wrapper);
-        manager.show();
-      }
-  	}
-  }
-  
-  public void doEditName(boolean addFromDesign)
-  {
-    if (!addFromDesign) return;
-    
-//    removeFeedback();
-
-    Runnable runnable = new Runnable()
-    {
-      public void run()
-      {
-        Object object = ((XSDBaseAdapter)getModel()).getTarget();
-        if (object instanceof XSDNamedComponent)
-        {
-          Point p = getNameLabelFigure().getLocation();
-          LabelEditManager manager = new LabelEditManager(BaseFieldEditPart.this, new LabelCellEditorLocator(BaseFieldEditPart.this, p));
-          NameUpdateCommandWrapper wrapper = new NameUpdateCommandWrapper();
-          adtDirectEditPolicy.setUpdateCommand(wrapper);
-          manager.show();
-        }
-      }
-    };
-    Display.getCurrent().asyncExec(runnable);
-
-  }
-  
-  class NameUpdateCommandWrapper extends Command implements IADTUpdateCommand
-  {
-    Command command;
-    protected DirectEditRequest request;
-    
-    public NameUpdateCommandWrapper()
-    {
-      super(Messages._UI_ACTION_UPDATE_NAME);
-    }
-
-    public void setRequest(DirectEditRequest request)
-    {
-      this.request = request;
-    }
-    
-    public void execute()
-    {
-      IField field = (IField)getModel();
-      Object newValue = request.getCellEditor().getValue();
-      if (newValue instanceof String)
-      {
-        command = field.getUpdateNameCommand((String)newValue);
-      }
-      if (command != null)
-        command.execute();
-    }
-  }
-  
-  class TypeUpdateCommand extends Command implements IADTUpdateCommand
-  {
-    protected ComboBoxCellEditorManager delegate;
-    protected DirectEditRequest request;
-    
-    public TypeUpdateCommand()
-    {
-      super(Messages._UI_ACTION_UPDATE_TYPE);
-    }
-
-    public void setDelegate(ComboBoxCellEditorManager delegate)
-    {                                           
-      this.delegate = delegate;
-    }
-    
-    public void setRequest(DirectEditRequest request)
-    {
-      this.request = request;
-    }
-    
-    public void execute()
-    {
-      if (delegate != null)
-      {
-        delegate.performEdit(request.getCellEditor());
-      }
-    }
-
-    public boolean canExecute()
-    {
-      IField field = (IField)getModel();
-      Object newValue = ((CCombo)request.getCellEditor().getControl()).getText();
-      if (newValue instanceof String)
-      {
-        return !newValue.equals(field.getTypeName());
-      }
-      return true;
-    }
-  }
-  
-  class ElementReferenceUpdateCommand extends Command implements IADTUpdateCommand
-  {
-	    protected ComboBoxCellEditorManager delegate;
-	    protected DirectEditRequest request;
-	    
-	    public ElementReferenceUpdateCommand()
-	    {
-	      super(Messages._UI_ACTION_UPDATE_ELEMENT_REFERENCE);
-	    }
-
-	    public void setDelegate(ComboBoxCellEditorManager delegate)
-	    {
-	      this.delegate = delegate;
-	    }
-
-	    public void setRequest(DirectEditRequest request)
-	    {
-	      this.request = request;
-	    }
-
-	    public void execute()
-	    {
-	      if (delegate != null)
-	      {
-	        delegate.performEdit(request.getCellEditor());
-	      }
-	    }
-
-	    public boolean canExecute()
-	    {
-	      return true;
-	    }
-  }
-
-
-  public void addFeedback()
-  {
-    // Put back connection figure so it won't get overlayed by other non highlighted connections
-    if (connectionFigure != null)
-    {
-      connectionFeedbackFigure = new TypeReferenceConnection();
-      connectionFeedbackFigure.setSourceAnchor(connectionFigure.getSourceAnchor());
-      connectionFeedbackFigure.setTargetAnchor(connectionFigure.getTargetAnchor());
-      connectionFeedbackFigure.setHighlight(true);
-      getLayer(LayerConstants.FEEDBACK_LAYER).add(connectionFeedbackFigure);
-    }
-     super.addFeedback();
-     getFieldFigure().addSelectionFeedback();
-  }
-  
-  public void removeFeedback()
-  {
-    if (connectionFeedbackFigure != null)
-    {
-      connectionFeedbackFigure.setHighlight(false);
-      getLayer(LayerConstants.FEEDBACK_LAYER).remove(connectionFeedbackFigure);
-    }
-    connectionFeedbackFigure = null;
-    super.removeFeedback();
-    getFieldFigure().removeSelectionFeedback();
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseTypeConnectingEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseTypeConnectingEditPart.java
deleted file mode 100644
index ef02699..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BaseTypeConnectingEditPart.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.Iterator;
-import org.eclipse.draw2d.ConnectionAnchor;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IFeedbackHandler;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.IADTUpdateCommand;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-
-/**
- * This class provides some base function to enable drawing connections to a referenced type
- *
- */
-public abstract class BaseTypeConnectingEditPart extends BaseEditPart implements IFeedbackHandler, IConnectionContainer
-{
-  private TypeReferenceConnection connectionFigure;  
-  
-  public void activate()
-  {
-    super.activate();         
-  }
-  
-  public void deactivate()
-  {
-    deactivateConnection();
-    super.deactivate();
-  }
-  
-  public void refreshConnections()
-  {
-    deactivateConnection();     
-    activateConnection();
-  }
-
-  protected void activateConnection()
-  {    
-    // If appropriate, create our connectionFigure and add it to the appropriate layer
-    if (connectionFigure == null && shouldDrawConnection())
-    {
-      //System.out.println("activateeConnection()-pre:" + getClass().getName());           
-      connectionFigure = createConnectionFigure();
-      if (connectionFigure != null)
-      {  
-        // Add our editpolicy as a listener on the connection, so it can stay in synch
-        //connectionFigure.addPropertyChangeListener((AttributeSelectionFeedbackPolicy) getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE));
-        //connectionFigure.addMouseListener(this);
-        getLayer(LayerConstants.CONNECTION_LAYER).add(connectionFigure);
-      }  
-    }
-  }
-  
-  protected void deactivateConnection()
-  {
-    // if we have a connection, remove it
-    if (connectionFigure != null)
-    {
-      getLayer(LayerConstants.CONNECTION_LAYER).remove(connectionFigure);
-      // Remove our editpolicy listener(s)
-      //connectionFigure.removePropertyChangeListener((AttributeSelectionFeedbackPolicy) getEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE));
-      //connectionFigure.removeMouseListener(this);
-      connectionFigure = null;
-    }
-  }  
-  
-  protected boolean shouldDrawConnection()
-  {
-    return true;
-  }
-  
-  public abstract TypeReferenceConnection createConnectionFigure();
-  
-  public void addFeedback()
-  {
-    if (connectionFigure != null)
-    {
-      connectionFigure.setHighlight(true);
-    }
-  }
-  
-  public void removeFeedback()
-  {
-    if (connectionFigure != null)
-    {
-      connectionFigure.setHighlight(false);
-    }
-  }
-  
-  protected class NameUpdateCommandWrapper extends Command implements IADTUpdateCommand
-  {
-    Command command;
-    protected DirectEditRequest request;
-    
-    public NameUpdateCommandWrapper()
-    {
-      super(Messages._UI_ACTION_UPDATE_NAME);
-    }
-
-    public void setRequest(DirectEditRequest request)
-    {
-      this.request = request;
-    }
-    
-    public void execute()
-    {
-      IType iType = (IType)getModel();
-      Object newValue = request.getCellEditor().getValue();
-      if (newValue instanceof String)
-      {
-        command = iType.getUpdateNameCommand((String)newValue);
-      }
-      if (command != null)
-        command.execute();
-    }
-  }
-
-  public boolean hitTest(IFigure target, Point location)
-  {
-    Rectangle b = target.getBounds().getCopy();
-    target.translateToAbsolute(b);  
-    return b.contains(location);
-  }   
-  
-  public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-  {
-    EditPart result = null;        
-    if (direction == PositionConstants.WEST)
-    {    
-      result = getSourceConnectionEditPart();
-    }       
-    return result;            
-  }        
-  
-  
-  private EditPart getSourceConnectionEditPart()
-  {
-    // find the first connection that targets this editPart
-    // navigate backward along the connection (to the left) to find the sourc edit part
-    EditPart result = null;
-    for (Iterator i = getLayer(LayerConstants.CONNECTION_LAYER).getChildren().iterator(); i.hasNext(); )
-    {
-      Figure figure = (Figure)i.next();
-      if (figure instanceof TypeReferenceConnection)
-      {
-        TypeReferenceConnection typeReferenceConnection = (TypeReferenceConnection)figure;
-        ConnectionAnchor targetAnchor = typeReferenceConnection.getTargetAnchor();
-        if (targetAnchor.getOwner() == getFigure())
-        {  
-          ConnectionAnchor sourceAnchor = typeReferenceConnection.getSourceAnchor();
-          IFigure sourceFigure = sourceAnchor.getOwner();          
-          EditPart part = null;
-          while (part == null && sourceFigure != null) 
-          {
-            part = (EditPart)getViewer().getVisualPartMap().get(sourceFigure);
-            sourceFigure = sourceFigure.getParent();
-          }          
-          result = part;
-          break;
-        }  
-      }                
-    }    
-    return result;
-  }
-      
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BoxEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BoxEditPart.java
deleted file mode 100644
index 89a85de..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/BoxEditPart.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.List;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.Compartment;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.BoxFigure;
-
-public abstract class BoxEditPart extends BaseTypeConnectingEditPart //IFeedbackHandler
-{  
-  protected List compartmentList = null;
-  protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
-
-  protected Compartment[] getCompartments()
-  {
-    return null;
-  }
-  
-  protected IFigure createFigure()
-  {
-    BoxFigure figure = new BoxFigure();
-    LineBorder boxLineBorder = new LineBorder(1);
-    figure.setBorder(boxLineBorder);    
-    ToolbarLayout toolbarLayout = new ToolbarLayout();
-    toolbarLayout.setStretchMinorAxis(true);
-    figure.setLayoutManager(toolbarLayout);
-    // we should organize ITreeElement and integrate it with the facade
-    if (getModel() instanceof ITreeElement)
-    {
-      figure.getNameLabel().setIcon(((ITreeElement)getModel()).getImage());
-    }
-    return figure;
-  }
-  
-  public IFigure getContentPane()
-  {
-    return ((BoxFigure)getFigure()).getContentPane();
-  }
-    
-  protected void createEditPolicies()
-  {
-    super.createEditPolicies();
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new ADTSelectionFeedbackEditPolicy());
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
-  }
-  
-   
-  public void addFeedback()
-  {
-    BoxFigure boxFigure = (BoxFigure)figure;
-    LineBorder boxFigureLineBorder = (LineBorder)boxFigure.getBorder();
-    boxFigureLineBorder.setWidth(2);
-    boxFigureLineBorder.setColor(ColorConstants.darkBlue);  
-    boxFigure.getHeadingFigure().setSelected(true);
-    figure.repaint();
-    super.addFeedback();
-  }
-  
-  public void removeFeedback()
-  {
-    BoxFigure boxFigure = (BoxFigure)figure;
-    LineBorder boxFigureLineBorder = (LineBorder)boxFigure.getBorder();
-    boxFigureLineBorder.setWidth(1);
-    boxFigureLineBorder.setColor(ColorConstants.black);
-    boxFigure.getHeadingFigure().setSelected(false);
-    figure.repaint();
-    super.removeFeedback();    
-  }
-  
-  protected ActionRegistry getEditorActionRegistry(IEditorPart editor)
-  {
-    return (ActionRegistry) editor.getAdapter(ActionRegistry.class);
-  }
-}  
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/CenteredConnectionAnchor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/CenteredConnectionAnchor.java
deleted file mode 100644
index 0c93b9d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/CenteredConnectionAnchor.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import org.eclipse.draw2d.AbstractConnectionAnchor;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.wst.xsd.ui.internal.design.figures.CenteredIconFigure;
-
-public class CenteredConnectionAnchor extends AbstractConnectionAnchor
-{
-  public static final int TOP = 0;
-  public static final int BOTTOM = 1;
-  public static final int LEFT = 2;
-  public static final int RIGHT = 3;
-
-  public static final int HEADER_LEFT = 4;
-  public static final int HEADER_RIGHT = 5;
-
-  private int location;
-  private int inset;
-  private int offset = 0;
-  private CenteredConnectionAnchor other;
-
-  public CenteredConnectionAnchor(IFigure owner, int location, int inset)
-  {
-    super(owner);
-    this.location = location;
-    this.inset = inset;
-  }
-
-  public CenteredConnectionAnchor(IFigure owner, int location, int inset, int offset)
-  {
-    this(owner, location, inset);
-    this.offset = offset;
-  }
-
-  public Point getLocation(Point reference)
-  {
-    Rectangle r = getOwner().getBounds();
-    int x, y;
-    switch (location)
-    {
-    case TOP:
-      x = r.right() - r.width / 2 + offset;
-      y = r.y + inset;
-      break;
-    case BOTTOM:
-      x = r.right() - r.width / 2 + offset;
-      y = r.bottom() - inset;
-      break;
-    case LEFT:
-      x = r.x + inset;
-      y = r.bottom() - r.height / 2 + offset;
-      break;
-    case RIGHT:
-      x = r.right() - inset;
-      y = r.bottom() - r.height / 2 + offset;
-      break;
-    case HEADER_LEFT:
-      x = r.x + inset;
-      y = r.y + offset;
-      break;
-    case HEADER_RIGHT:
-      x = r.right() - inset;
-      y = r.y + offset;
-      break;
-
-    default:
-      x = r.right() - r.width / 2;
-      y = r.bottom() - r.height / 2;
-    }
-    Point p = new Point(x, y);
-
-    if (!(getOwner() instanceof CenteredIconFigure))
-    {
-      getOwner().translateToAbsolute(p);
-    }
-    else
-    {
-      getOwner().translateToAbsolute(p);
-    }
-    
-    if (other != null)
-    {
-      // if within only one pixel of being vertical, we straighten up the line
-      Point p2 = other.getLocation(null);
-      if (Math.abs(p2.x - p.x) <= 1)
-      {
-        p.x = p2.x;
-      }  
-    }  
-    return p;
-  }
-
-  public Point getReferencePoint()
-  {
-    return getLocation(null);
-  }
-
-  public void setOther(CenteredConnectionAnchor other)
-  {
-    this.other = other;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ColumnEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ColumnEditPart.java
deleted file mode 100644
index 00333ed..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ColumnEditPart.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.gef.EditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.AbstractModelCollection;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.ReferencedTypeColumn;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-
-public class ColumnEditPart extends BaseEditPart
-{         
-  protected int spacing = 20;  
-  protected int minorAlignment = -1;
-  
-  protected IFigure createFigure()
-  {
-    Figure figure = new Figure();
-    ToolbarLayout layout = new ToolbarLayout(false);
-    if (minorAlignment != -1)
-    {  
-      layout.setMinorAlignment(minorAlignment);
-    }  
-    layout.setStretchMinorAxis(false);
-    layout.setSpacing(spacing);
-    figure.setLayoutManager(layout);
-    return figure;
-  }
-  
-  public void setSpacing(int spacing)
-  {
-    this.spacing = spacing;
-    if (figure != null)
-    {  
-      ((ToolbarLayout)figure.getLayoutManager()).setSpacing(spacing);
-    }  
-  }
-  
-  public IComplexType getComplexType()
-  {
-    return (IComplexType)getModel();   
-  }
-
-  protected void createEditPolicies()
-  {
-    // TODO Auto-generated method stub
-  }
-  
-  protected List getModelChildren()
-  { 
-    AbstractModelCollection collection = (AbstractModelCollection)getModel();
-    return collection.getChildren();
-  }
-
-  public int getMinorAlignment()
-  {
-    return minorAlignment;
-  }
-
-  public void setMinorAlignment(int minorAlignment)
-  {
-    this.minorAlignment = minorAlignment;
-  }
-  
-  protected void refreshChildren()
-  {
-    super.refreshChildren();
-    if (getModel() instanceof ReferencedTypeColumn)
-    {
-      if (getParent().getChildren().size() > 0) 
-      {        
-        EditPart editPart = (EditPart)getParent().getChildren().get(0);
-        refreshConnections(editPart);
-      }  
-    }      
-    else
-    {
-      refreshConnections(this);      
-    }  
-  }
-  
-  
-  public void refreshConnections(EditPart parent)
-  {
-    for (Iterator i = parent.getChildren().iterator(); i.hasNext(); )
-    {
-      EditPart editPart = (EditPart)i.next();      
-      //System.out.println("class " + editPart.getClass().getName());
-      if (editPart instanceof BaseTypeConnectingEditPart)
-      {
-        BaseTypeConnectingEditPart connectingEditPart = (BaseTypeConnectingEditPart)editPart;
-        connectingEditPart.refreshConnections();
-      }  
-      refreshConnections(editPart);
-    }
-  }
-}
-
-
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/CompartmentEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/CompartmentEditPart.java
deleted file mode 100644
index 280d154..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/CompartmentEditPart.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.Annotation;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.Compartment;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.KeyBoardAccessibilityEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.ICompartmentFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-
-// TODO (cs) common-up with BoxEditPart (?)
-public class CompartmentEditPart extends BaseEditPart // implements
-                                                      // IFeedbackHandler
-{
-  protected Annotation annotation = new Annotation();
-
-  protected IFigure createFigure()
-  {
-    ICompartmentFigure figure = getFigureFactory().createCompartmentFigure(getModel());
-    return figure;
-  }
-
-  public IFigure getContentPane()
-  {
-    return getCompartmentFigure().getContentPane();
-  }
-  
-  public boolean hasContent()
-  {
-    // since the annotation always takes up 1 child, here's a convenience method to figure out if
-    return getChildren().size() > 1;
-  }
-
-  List getChildrenSansAnnotation()
-  {
-    List children = new ArrayList();
-    children.addAll(getChildren());
-    for (Iterator i = children.iterator(); i.hasNext(); )
-    {
-      EditPart child = (EditPart)i.next();
-      if (child.getModel() == annotation)
-      {
-        i.remove();
-        break;
-      }  
-    }  
-    return children;
-  }
-  
-  public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-  {
-    EditPart result = null;   
-    
-    // we compute the children sans the annotation EditPart
-    // since the annotation EditPart confuses our up/down key handling
-    List children = getChildrenSansAnnotation();
-    if (children.contains(editPart))
-    {  
-      if (direction == KeyBoardAccessibilityEditPolicy.OUT_TO_PARENT)
-      {
-        Compartment compartment = (Compartment)getModel();
-        for (EditPart parent = editPart.getParent(); parent != null; parent = parent.getParent())
-        {            
-          if (parent.getModel() == compartment.getOwner())
-          {
-            result = parent;
-            break;
-          }  
-        }  
-      }        
-      else if (direction == PositionConstants.SOUTH)
-      {    
-        int size = children.size();
-        if (size > 0)
-        {                        
-          if (children.get(size - 1) == editPart)
-          {  
-            CompartmentEditPart nextCompartment = (CompartmentEditPart)EditPartNavigationHandlerUtil.getNextSibling(CompartmentEditPart.this);
-            if (nextCompartment != null && nextCompartment.getChildrenSansAnnotation().size() > 0)
-            {            
-              result = EditPartNavigationHandlerUtil.getFirstChild(nextCompartment);
-            }  
-          }
-        }
-        if (result == null) result = EditPartNavigationHandlerUtil.getNextSibling(editPart);
-      }
-      else if (direction == PositionConstants.NORTH)
-      {
-        if (EditPartNavigationHandlerUtil.getFirstChild(CompartmentEditPart.this) == editPart)
-        {  
-          EditPart prevCompartment = EditPartNavigationHandlerUtil.getPrevSibling(CompartmentEditPart.this);
-          if (prevCompartment instanceof CompartmentEditPart)
-          {
-            List prevCompListChildren = ((CompartmentEditPart)prevCompartment).getChildrenSansAnnotation();
-            int size = prevCompListChildren.size();
-            if (size > 0)
-            {  
-              result = (EditPart)prevCompartment.getChildren().get(size - 1);
-            }  
-          }              
-        }
-        if (result == null) result = EditPartNavigationHandlerUtil.getPrevSibling(editPart);
-      }
-    }
-    return result;      
-  }
- 
-  protected void addChildVisual(EditPart childEditPart, int index)
-  {
-    Object model = childEditPart.getModel();
-
-    IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
-
-    if (model instanceof IField)
-    {
-      getCompartmentFigure().getContentPane().add(child, index);
-      return;
-    }
-    else if (model instanceof Annotation)
-    {
-      getCompartmentFigure().getAnnotationPane().add(child);
-      return;
-    }
-    super.addChildVisual(childEditPart, index);
-  }
-
-  protected void removeChildVisual(EditPart childEditPart)
-  {
-    Object model = childEditPart.getModel();
-    IFigure child = ((GraphicalEditPart) childEditPart).getFigure();
-
-    if (model instanceof IField)
-    {
-      getCompartmentFigure().getContentPane().remove(child);
-      return;
-    }
-    else if (model instanceof Annotation)
-    {
-      getCompartmentFigure().getAnnotationPane().remove(child);
-      return;
-    }
-    super.removeChildVisual(childEditPart);
-  }
-
-  protected Compartment getCompartment()
-  {
-    return (Compartment) getModel();
-  }
-
-  protected List getModelChildren()
-  {
-    List children = getCompartment().getChildren();
-    children.add(annotation);
-    return children;
-  }
-  
-  public void setModel(Object model)
-  {
-    super.setModel(model);
-    annotation.setCompartment(getCompartment());
-  }
-
-  protected void refreshChildren()
-  {
-    super.refreshChildren();
-    // ((AbstractGraphicalEditPart)getParent()).getContentPane().invalidate();
-  }
-
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-  }
-
-  public void addFeedback()
-  {
-    // getFigure().setBackgroundColor(ColorConstants.blue);
-    // ((CompartmentFigure)getFigure()).setBorderColor(ColorConstants.black);
-    getFigure().repaint();
-  }
-
-  public void removeFeedback()
-  {
-    // getFigure().setBackgroundColor(ColorConstants.lightBlue);
-    // ((CompartmentFigure)getFigure()).setBorderColor(ColorConstants.lightGray);
-    getFigure().repaint();
-  }
-  
-  public ICompartmentFigure getCompartmentFigure()
-  {
-    return (ICompartmentFigure)figure;
-  }
-
-  public void addNotify()
-  {  
-    super.addNotify();
-    getCompartmentFigure().editPartAttached(this);   
-  }   
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ComplexTypeEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ComplexTypeEditPart.java
deleted file mode 100644
index 966acd8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/ComplexTypeEditPart.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.Iterator;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.FocusTypeColumn;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-
-public class ComplexTypeEditPart extends StructureEditPart
-{   
-  protected boolean shouldDrawConnection()
-  {
-    if (getParent().getModel() instanceof FocusTypeColumn)
-    {  
-      IComplexType complexType = (IComplexType)getModel();
-      return complexType.getSuperType() != null;
-    } 
-    return false;
-  }
-  
-  
-  private EditPart getTargetEditPart(IType type)
-  {
-    ColumnEditPart columnEditPart = null;
-    for (EditPart editPart = this; editPart != null; editPart = editPart.getParent())
-    {
-      if (editPart instanceof ColumnEditPart)
-      {
-        columnEditPart = (ColumnEditPart)editPart;
-        break;
-      }  
-    }     
-    if (columnEditPart != null)
-    {
-      for (Iterator i = columnEditPart.getChildren().iterator(); i.hasNext(); )
-      {
-        EditPart child = (EditPart)i.next();
-        if (child.getModel() == type)
-        {
-          return child;
-        }         
-      }  
-    }
-    return null;
-  }
-  
-  public TypeReferenceConnection createConnectionFigure()
-  {
-    TypeReferenceConnection connectionFigure = null;
-    IComplexType complexType = (IComplexType)getModel();
-    IType type = complexType.getSuperType();
-    if (type != null)
-    {      
-      AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart)getTargetEditPart(type);
-      if (referenceTypePart != null)
-      {
-        connectionFigure = new TypeReferenceConnection();
-        // draw a line out from the top         
-        connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(getFigure(), CenteredConnectionAnchor.TOP, 1));
-        
-        // TODO (cs) need to draw the target anchor to look like a UML inheritance relationship
-        // adding a label to the connection would help to
-        connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(referenceTypePart.getFigure(), CenteredConnectionAnchor.BOTTOM, 0, 0));
-        ((CenteredConnectionAnchor)connectionFigure.getSourceAnchor()).setOther((CenteredConnectionAnchor)connectionFigure.getTargetAnchor());
-        connectionFigure.setHighlight(false);
-      }
-    }    
-    return connectionFigure;
-  }  
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/EditPartNavigationHandlerUtil.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/EditPartNavigationHandlerUtil.java
deleted file mode 100644
index c234b65..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/EditPartNavigationHandlerUtil.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-import java.util.List;
-import org.eclipse.gef.EditPart;
-
-
-public class EditPartNavigationHandlerUtil
-{  
-  public static EditPart getFirstChild(EditPart editPart)
-  {      
-    EditPart result = null;
-    if (editPart.getChildren().size() > 0)
-    {
-      result = (EditPart)editPart.getChildren().get(0);
-    }      
-    return result;
-  }
-  
-  public static EditPart getLastChild(EditPart editPart)
-  {      
-    EditPart result = null;
-    int size = editPart.getChildren().size();
-    if (size > 0)
-    {
-      result = (EditPart)editPart.getChildren().get(size - 1);
-    }      
-    return result;
-  }  
-  
-  public static EditPart getNextSibling(EditPart editPart)
-  {    
-    EditPart result = null;    
-    EditPart parent = editPart.getParent();
-    if (parent != null)
-    {  
-      List children = parent.getChildren();
-      int index = children.indexOf(editPart);
-      if (index + 1 < children.size())
-      {
-        result = (EditPart)children.get(index + 1);
-      }
-    }
-    return result;
-  }
-  
-  public static EditPart getPrevSibling(EditPart editPart)
-  {    
-    EditPart result = null;
-    EditPart parent = editPart.getParent();
-    if (parent != null)
-    {  
-      List children = parent.getChildren();
-      int index = children.indexOf(editPart);
-      if (index - 1 >= 0)
-      {
-        // if this is the first child
-        //        
-        result = (EditPart)children.get(index - 1);
-      } 
-    }
-    return result;
-  }     
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/FieldEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/FieldEditPart.java
deleted file mode 100644
index f17dd39..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/FieldEditPart.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-
-public class FieldEditPart extends BaseFieldEditPart
-{
-  public void addNotify()
-  {
-    super.addNotify();
-    getFieldFigure().editPartAttached(this);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/IConnectionContainer.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/IConnectionContainer.java
deleted file mode 100644
index eb5086e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/IConnectionContainer.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.design.editparts;
-
-public interface IConnectionContainer
-{
-  public void refreshConnections();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/INamedEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/INamedEditPart.java
deleted file mode 100644
index b186c28..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/INamedEditPart.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-
-public interface INamedEditPart
-{
-  public Label getNameLabelFigure();
-
-  public void performDirectEdit(Point cursorLocation);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/RootContentEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/RootContentEditPart.java
deleted file mode 100644
index f509c7d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/RootContentEditPart.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Panel;
-import org.eclipse.draw2d.ToolbarLayout;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.FocusTypeColumn;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IGraphElement;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.ReferencedTypeColumn;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IComplexType;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.design.layouts.ContainerLayout;
-
-public class RootContentEditPart extends AbstractGraphicalEditPart
-{
-  List collections = null;
-  Figure contentPane;
-  
-  protected IFigure createFigure()
-  {    
-    Panel panel = new Panel();    
-    // why do we need to use a container layout? can we just set a
-    // margin border and get the same effect?
-    ContainerLayout clayout = new ContainerLayout();
-    clayout.setBorder(60);
-    panel.setLayoutManager(clayout);
-    
-    contentPane = new Figure();
-    panel.add(contentPane);
-        
-    ToolbarLayout layout = new ToolbarLayout(true);
-    layout.setStretchMinorAxis(false);
-    layout.setSpacing(100);
-    contentPane.setLayoutManager(layout);
-    return panel;
-  }
-  
-  public IFigure getContentPane()
-  {
-    return contentPane;
-  }
-  
-  
-  public IComplexType getSelectedComplexType()
-  {
-    IComplexType result = null;
-    IModel model = (IModel)getModel();
-    List types = model.getTypes();
-    if (types.size() > 0)
-    {
-      if (types.get(0) instanceof IComplexType) 
-        result = (IComplexType)types.get(0);
-    }  
-    return result;
-  }
-
-  protected void createEditPolicies()
-  {
-    // TODO Auto-generated method stub
-  }
-  
-  protected List getModelChildren()
-  { 
-    collections = new ArrayList();
-    if (getModel() != null)
-    {
-      Object obj = getModel();
-      IADTObject focusObject = null;
-      if (obj instanceof IStructure)
-      {
-        if (obj instanceof IGraphElement)
-        {
-          if (((IGraphElement)obj).isFocusAllowed())
-            focusObject = (IStructure)obj;          
-        }
-      }
-      else if (obj instanceof IField)
-      {
-        focusObject = (IField)obj;
-      }  
-      else if (obj instanceof IModel)
-      {
-        focusObject = (IModel)obj;
-        collections.add(focusObject);
-        return collections;
-      }
-      else if (obj instanceof IType)
-      {
-        if (obj instanceof IGraphElement)
-        {
-          if (((IGraphElement)obj).isFocusAllowed())
-          {
-            focusObject = (IType)obj;
-          }
-        }
-      }
-      if (focusObject != null)
-      {
-        collections.add(new FocusTypeColumn(focusObject));
-        collections.add(new ReferencedTypeColumn(focusObject));
-      }
-    }
-    return collections;
-  }
-    
-  
-  /**
-   * @deprecated Don't call this method.  Use DesignViewGraphicalViewer.setInput() instead.
-   */
-  public void setInput(Object component)
-  {
-    setModel(component);
-    refresh();
-  }
-  
-  /**
-   * @deprecated Don't call this method.  Use DesignViewGraphicalViewer.getInput() instead.
-   */
-  public Object getInput()
-  {
-    return getModel();
-  }
-  
-  public void refresh()
-  {
-    super.refresh();
-    /*
-    // once we're done refreshing we can assume all of the child editparts
-    // now we iteratre thru the list again and tell the children to update
-    // their connections
-    for (Iterator i = getChildren().iterator(); i.hasNext(); )
-    {
-      Object obj = i.next();
-      if (obj instanceof IConnectionContainer)
-      {
-        ((IConnectionContainer)obj).refreshConnections();
-      }
-    }*/
-    
-    for(Iterator i = getChildren().iterator(); i.hasNext(); )
-    {
-      Object obj = i.next();
-      if (obj instanceof AbstractGraphicalEditPart)
-      {
-        ((AbstractGraphicalEditPart)obj).refresh();
-      }
-    }
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/RootEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/RootEditPart.java
deleted file mode 100644
index fd87581..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/RootEditPart.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import org.eclipse.draw2d.BendpointConnectionRouter;
-import org.eclipse.draw2d.ConnectionLayer;
-import org.eclipse.draw2d.Figure;
-import org.eclipse.draw2d.FigureCanvas;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Layer;
-import org.eclipse.draw2d.LayeredPane;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.LayerConstants;
-import org.eclipse.gef.editparts.ScalableRootEditPart;
-import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
-import org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewerGraphicConstants;
-
-public class RootEditPart extends ScalableRootEditPart implements org.eclipse.gef.RootEditPart
-{    
-  public void activate()
-  {
-    super.activate();
-    // Set up Connection layer with a router, if it doesn't already have one
-    ConnectionLayer connectionLayer = (ConnectionLayer) getLayer(LayerConstants.CONNECTION_LAYER);
-    if (connectionLayer != null)
-    {  
-      connectionLayer.setConnectionRouter(new BendpointConnectionRouter());
-    }
-
-    Figure figure = (Figure)getLayer(LayerConstants.FEEDBACK_LAYER);       
-    if (figure != null)
-    {      
-      if (getViewer() instanceof ScrollingGraphicalViewer)
-      {  
-        //ScrollingGraphicalViewer sgv = (ScrollingGraphicalViewer)getViewer();
-        //IndexFigure indexFigure = new IndexFigure(sgv);
-        //figure.add(indexFigure);
-        //getViewer().addPropertyChangeListener(indexFigure);
-      }  
-    }           
-    refresh();
-  }
-  
-  protected LayeredPane createPrintableLayers() 
-  {
-    LayeredPane pane = super.createPrintableLayers();    
-    Layer layer = new ScaledHandleLayer();
-    layer.setPreferredSize(new Dimension(5, 5));
-    pane.add(layer, DesignViewerGraphicConstants.SCALED_HANDLE_LAYER);    
-    return pane;
-  }  
-  
-  
-  class ScaledHandleLayer extends Layer
-  {
-    ScaledHandleLayer() 
-    {
-      setEnabled(true);
-    }
-    /**
-     * @see org.eclipse.draw2d.Figure#getPreferredSize(int, int)
-     */
-    public Dimension getPreferredSize(int wHint, int hHint) 
-    {
-      Rectangle rect = new Rectangle();
-      for (int i = 0; i < getChildren().size(); i++)
-        rect.union(((IFigure)getChildren().get(i)).getBounds());
-      return rect.getSize();
-    }
-  }  
-  
-  class IndexFigure extends RectangleFigure implements PropertyChangeListener
-  {
-    EditPart editPart;
-    ScrollingGraphicalViewer sgv;
-    public IndexFigure(ScrollingGraphicalViewer sgv)
-    {
-      this.sgv = sgv;      
-      ((FigureCanvas)sgv.getControl()).getViewport().getHorizontalRangeModel().addPropertyChangeListener(this);
-      ((FigureCanvas)sgv.getControl()).getViewport().getVerticalRangeModel().addPropertyChangeListener(this);
-      Rectangle bounds = new Rectangle(0, 0, 40, 40);
-      translateToAbsolute(bounds);      
-      setBounds(bounds);       
-    }
-    public void propertyChange(PropertyChangeEvent evt)
-    {
-      System.out.println("scroll-change");
-      Rectangle bounds = new Rectangle(0, 0, 40, 40);
-      Point p = ((FigureCanvas)sgv.getControl()).getViewport().getViewLocation();
-      bounds.translate(p);
-      setBounds(bounds); 
-    }
-    
-    public Rectangle getBounds()
-    {
-      Point p = ((FigureCanvas)sgv.getControl()).getViewport().getViewLocation();
-      bounds.translate(p);      
-      return super.getBounds().getCopy().translate(p);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/StructureEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/StructureEditPart.java
deleted file mode 100644
index db1f68c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/StructureEditPart.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDComplexTypeDefinitionAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.SetInputToGraphView;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.Compartment;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.KeyBoardAccessibilityEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.figures.IStructureFigure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.wst.xsd.ui.internal.common.actions.OpenInNewEditor;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDSchema;
-
-public class StructureEditPart extends BaseTypeConnectingEditPart implements INamedEditPart
-{  
-  protected List compartmentList = null;
-  protected ADTDirectEditPolicy adtDirectEditPolicy = new ADTDirectEditPolicy();
-
-  /**
-   * TODO cs... I'm sure this has something to do with the way we wanted to rework compartment creation
-   * I suppose we could have subclasses override this method instead of getModelChildren()
-   * 
-   * @deprecated
-   */
-  protected Compartment[] getCompartments()
-  {
-    return null;
-  }
-  
-  protected IFigure createFigure()
-  {
-    IStructureFigure figure = getFigureFactory().createStructureFigure(getModel());
-    return figure;
-  }
-  
-  public IStructureFigure getStructureFigure()
-  {
-    return (IStructureFigure)getFigure();
-  }
-  
-  public IFigure getContentPane()
-  {
-    return getStructureFigure().getContentPane();
-  }
-  
-  
-  public EditPart doGetRelativeEditPart(EditPart editPart, int direction)
-  {
-    EditPart result = null;               
-    if (direction == KeyBoardAccessibilityEditPolicy.IN_TO_FIRST_CHILD)
-    {          
-      for (Iterator i = getChildren().iterator(); i.hasNext();)
-      {            
-        CompartmentEditPart compartment = (CompartmentEditPart)i.next();
-        if (compartment.hasContent())
-        {
-          result = (EditPart)compartment.getChildren().get(0);
-          break;
-        }  
-      }  
-    }    
-    else
-    {
-      return super.doGetRelativeEditPart(editPart, direction);
-    }  
-    return result;           
-  }
-  
-  protected void createEditPolicies()
-  {        
-    super.createEditPolicies();  
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new ADTSelectionFeedbackEditPolicy());
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, adtDirectEditPolicy);
-  }
-  
-  protected IStructure getStructure()
-  {
-    return (IStructure)getModel();
-  }
-  
-  protected List getModelChildren()
-  {
-    if (compartmentList == null)
-    {
-      compartmentList = new ArrayList();
-      
-      // TODO.. this needs to be moved to the xsd specific version of this class 
-      compartmentList.add(new Compartment(getStructure(), "attribute")); //$NON-NLS-1$
-      compartmentList.add(new Compartment(getStructure(), "element"));    //$NON-NLS-1$
-    }  
-    return compartmentList;
-  }
-  
-  protected void refreshChildren()
-  {   
-    super.refreshChildren();
-    //getFigure().invalidateTree();    
-  }
-  
-  protected void refreshVisuals()
-  {
-    super.refreshVisuals();
-    getStructureFigure().refreshVisuals(getModel());
-  }
-  
-  public void addFeedback()
-  {
-    getStructureFigure().addSelectionFeedback();
-    super.addFeedback();
-  }
-  
-  public void removeFeedback()
-  {
-    getStructureFigure().removeSelectionFeedback();
-    super.removeFeedback();    
-  }
-
-  public Label getNameLabelFigure()
-  {
-    return getStructureFigure().getNameLabel();
-  }
-
-  public void performDirectEdit(Point cursorLocation)
-  {
-    
-  }
-
-  public void performRequest(Request request)
-  {  
-    if (request.getType() == RequestConstants.REQ_DIRECT_EDIT ||
-        request.getType() == RequestConstants.REQ_OPEN)
-    {
-      
-      Object model = getModel();
-      if (request instanceof LocationRequest)
-      {
-        LocationRequest locationRequest = (LocationRequest)request;
-        Point p = locationRequest.getLocation();
-// uncomment for direct edit of name (add else)
-//        if (hitTest(getNameLabelFigure(), p))
-//        {
-//          LabelEditManager manager = new LabelEditManager(this, new LabelCellEditorLocator(this, p));
-//          NameUpdateCommandWrapper wrapper = new NameUpdateCommandWrapper();
-//          adtDirectEditPolicy.setUpdateCommand(wrapper);
-//          manager.show();
-//        }
-       
-         
-        if (getStructureFigure().hitTestHeader(p))
-        {          
-          // TODO: !!! This should be moved to the adt-xsd package
-          // 
-          if (model instanceof XSDComplexTypeDefinitionAdapter)     
-          {
-            XSDComplexTypeDefinitionAdapter adapter = (XSDComplexTypeDefinitionAdapter)model;
-            XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)adapter.getTarget();
-            IWorkbench workbench = PlatformUI.getWorkbench();
-            IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-            IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-            Object schema = editorPart.getAdapter(XSDSchema.class);
-            ActionRegistry registry = getEditorActionRegistry(editorPart);
-            if (registry != null)
-            {
-              if (schema == ct.getSchema())
-              {
-                IAction action = registry.getAction(SetInputToGraphView.ID);
-                action.run();
-              }
-              else
-              {
-                IAction action = registry.getAction(OpenInNewEditor.ID);
-                action.run();
-              }
-            }
-          }          
-        }
-      }
-    }
-  }
-  
-  protected ActionRegistry getEditorActionRegistry(IEditorPart editor)
-  {
-    return (ActionRegistry) editor.getAdapter(ActionRegistry.class);
-  }
-  
-  protected boolean shouldDrawConnection()
-  {
-    return false;
-  }
-  
-  public TypeReferenceConnection createConnectionFigure()
-  {
-    return null;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/TopLevelFieldEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/TopLevelFieldEditPart.java
deleted file mode 100644
index 9a28e75..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/TopLevelFieldEditPart.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.editparts.AbstractGraphicalEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies.ADTSelectionFeedbackEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-import org.eclipse.wst.xsd.ui.internal.adt.typeviz.design.figures.BoxFigure;
-
-public class TopLevelFieldEditPart extends BoxEditPart implements INamedEditPart
-{
-  protected ADTDirectEditPolicy adtDirectEditPolicy = new ADTDirectEditPolicy();
-  
-  protected boolean shouldDrawConnection()
-  {
-    IField field = (IField)getModel();
-    IType type = field.getType();
-    return (type != null);
-  }
-  
-  public TypeReferenceConnection createConnectionFigure()
-  {
-    TypeReferenceConnection connectionFigure = null;
-    IField field = (IField)getModel();
-    IType type = field.getType();
-    if (type != null)
-    {      
-      AbstractGraphicalEditPart referenceTypePart = (AbstractGraphicalEditPart)getViewer().getEditPartRegistry().get(type);
-      if (referenceTypePart != null)
-      {
-        connectionFigure = new TypeReferenceConnection();   
-        connectionFigure.setSourceAnchor(new CenteredConnectionAnchor(getFigure(), CenteredConnectionAnchor.RIGHT, 0));
-        int targetAnchorYOffset = 12;        
-        connectionFigure.setTargetAnchor(new CenteredConnectionAnchor(referenceTypePart.getFigure(), CenteredConnectionAnchor.HEADER_LEFT, 0, targetAnchorYOffset)); 
-        connectionFigure.setHighlight(false);
-      }
-    }    
-    return connectionFigure;
-  }  
-  
-  protected void createEditPolicies()
-  {
-    super.createEditPolicies();
-    installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, adtDirectEditPolicy);
-    installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new ADTSelectionFeedbackEditPolicy());
-  }
-
-  protected void refreshVisuals()
-  {
-    IField field = (IField)getModel();
-    BoxFigure boxFigure = (BoxFigure)getFigure();
-    boxFigure.getNameLabel().setText(field.getName());
-    super.refreshVisuals();
-  }
-  
-  public Label getNameLabelFigure()
-  {
-    BoxFigure boxFigure = (BoxFigure)getFigure();
-    return boxFigure.getNameLabel();
-  }
-
-  public void performDirectEdit(Point cursorLocation)
-  {
-   
-  }
-  
-  public void performRequest(Request request)
-  {  
-    if (request.getType() == RequestConstants.REQ_DIRECT_EDIT||
-        request.getType() == RequestConstants.REQ_OPEN)
-    {
-//      if (request instanceof LocationRequest)
-//      {
-//        LocationRequest locationRequest = (LocationRequest)request;
-//        Point p = locationRequest.getLocation();
-//       
-//        if (hitTest(getNameLabelFigure(), p))
-//        {
-//          LabelEditManager manager = new LabelEditManager(this, new LabelCellEditorLocator(this, p));
-//          NameUpdateCommandWrapper wrapper = new NameUpdateCommandWrapper();
-//          adtDirectEditPolicy.setUpdateCommand(wrapper);
-//          manager.show();
-//        }
-//      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/TypeReferenceConnection.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/TypeReferenceConnection.java
deleted file mode 100644
index b0d4c31..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/TypeReferenceConnection.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.ConnectionRouter;
-import org.eclipse.draw2d.ManhattanConnectionRouter;
-import org.eclipse.draw2d.PolygonDecoration;
-import org.eclipse.draw2d.PolylineConnection;
-import org.eclipse.swt.graphics.Color;
-
-public class TypeReferenceConnection extends PolylineConnection
-{
-  protected boolean highlight = false;
-  protected static final Color activeConnection = ColorConstants.black;
-  protected static final Color inactiveConnection = new Color(null, 198, 195, 198);
-
-  /**
-   * Default constructor
-   */
-  public TypeReferenceConnection()
-  {
-    super();
-    setTargetDecoration(new PolygonDecoration());
-  }
-  
-  
-
-  public void setConnectionRouter(ConnectionRouter cr)
-  {
-    if (cr != null && getConnectionRouter() != null && !(getConnectionRouter() instanceof ManhattanConnectionRouter))
-      super.setConnectionRouter(cr);
-  }
-
-  /**
-   * @return Returns the current highlight status.
-   */
-  public boolean isHighlighted()
-  {
-    return highlight;
-  }
-
-  /**
-   * @param highlight
-   *          The highlight to set.
-   */
-  public void setHighlight(boolean highlight)
-  {
-    this.highlight = highlight;
-    // Update our connection to use the correct colouring
-    setForegroundColor(highlight ? activeConnection : inactiveConnection);
-    setOpaque(highlight);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/AbstractModelCollection.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/AbstractModelCollection.java
deleted file mode 100644
index 55905d1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/AbstractModelCollection.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-
-public abstract class AbstractModelCollection implements IADTObject
-{
-  IADTObject model;
-  String kind;
-  
-  public AbstractModelCollection(IADTObject model, String kind)
-  {
-    this.model = model;
-    this.kind = kind;
-  }
-
-  public Object getModel()
-  {
-    return model;
-  }
-
-  public void setModel(IADTObject model)
-  {
-    this.model = model;
-  }
-
-  public String getKind()
-  {
-    return kind;
-  }
-
-  public void setKind(String kind)
-  {
-    this.kind = kind;
-  }
-  
-  public abstract List getChildren();
-
-  public void registerListener(IADTObjectListener listener)
-  {
-    model.registerListener(listener);
-  }
-
-  public void unregisterListener(IADTObjectListener listener)
-  {
-    model.unregisterListener(listener);
-  }
-  
-  public boolean isReadOnly()
-  {
-    return false;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/Annotation.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/Annotation.java
deleted file mode 100644
index 1f67a7f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/Annotation.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-
-public class Annotation
-{
-  Compartment compartment;
-  public Annotation()
-  {
-    super();
-  }
-  
-  public void setCompartment(Compartment compartment)
-  {
-    this.compartment = compartment;
-  }
-  
-  public Compartment getCompartment()
-  {
-    return compartment;
-  }
-  
-  public IStructure getOwner()
-  {
-    return compartment.getOwner();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/Compartment.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/Compartment.java
deleted file mode 100644
index 628cd4f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/Compartment.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-
-public class Compartment implements IADTObject
-{
-  String kind;
-  IStructure owner;
-
-  public Compartment(IStructure owner, String kind)
-  {
-    this.kind = kind;
-    this.owner = owner;
-  }
-
-  public List getChildren()
-  {
-    List list = new ArrayList();
-    for (Iterator i = owner.getFields().iterator(); i.hasNext();)
-    {
-      IField field = (IField) i.next();
-      if (kind == null || kind.equals(field.getKind()))
-      {
-        list.add(field);
-      }
-    }
-    return list;
-  }
-
-  public String getKind()
-  {
-    return kind;
-  }
-  
-  public IStructure getOwner()
-  {
-    return owner;
-  }
-
-  public void registerListener(IADTObjectListener listener)
-  {
-    // really we want to listen to the owner
-    owner.registerListener(listener);
-  }
-
-  public void unregisterListener(IADTObjectListener listener)
-  {
-    // really we want to listen to the owner
-    owner.unregisterListener(listener);
-  }
-
-  public boolean isReadOnly()
-  {
-    return false;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/FocusTypeColumn.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/FocusTypeColumn.java
deleted file mode 100644
index 4618c27..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/FocusTypeColumn.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-
-public class FocusTypeColumn extends AbstractModelCollection
-{  
-  public FocusTypeColumn(IADTObject model)
-  {
-    super(model, "FocusTypeColumn"); //$NON-NLS-1$
-  }
-
-  public List getChildren()
-  {
-    List result = new ArrayList();  
-    if (model instanceof IType)
-    {
-      IType type = (IType)model;
-      if (type.getSuperType() != null)
-      {  
-        result.add(type.getSuperType());
-      }
-      result.add(type);
-    }  
-    else if (model instanceof IField ||
-             model instanceof IStructure)
-    {   
-      result.add(model);
-    }       
-    return result;       
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IActionProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IActionProvider.java
deleted file mode 100644
index d8443fa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IActionProvider.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-
-
-public interface IActionProvider
-{
-  public String[] getActions(Object object);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IFeedbackHandler.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IFeedbackHandler.java
deleted file mode 100644
index 18e860b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IFeedbackHandler.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-public interface IFeedbackHandler
-{
-  public void addFeedback();
-  public void removeFeedback();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IGraphElement.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IGraphElement.java
deleted file mode 100644
index 1a9167c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IGraphElement.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-public interface IGraphElement
-{
-  boolean isFocusAllowed();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IModelProxy.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IModelProxy.java
deleted file mode 100644
index f263c38..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/IModelProxy.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-
-public interface IModelProxy
-{
-  IModel getModel();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/ReferencedTypeColumn.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/ReferencedTypeColumn.java
deleted file mode 100644
index 95f8970..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editparts/model/ReferencedTypeColumn.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editparts.model;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IField;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IStructure;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IType;
-
-public class ReferencedTypeColumn extends AbstractModelCollection
-{
-  List listenerList = new ArrayList();
-  InternalListener internalListener = new InternalListener();
-  
-  // todo... really this this model object should listen
-  // to the parent of the IType
-  //
-  public ReferencedTypeColumn(IADTObject model)
-  {
-    super(model, "ReferencedTypeColumn"); //$NON-NLS-1$
-    model.registerListener(internalListener);
-    internalListener.recomputeSubListeners();
-  }
-
-  public List getChildren()
-  {
-    List result = new ArrayList();  
-    if (model instanceof IStructure)
-    {
-      IStructure structure = (IStructure)model;
-      for (Iterator i = structure.getFields().iterator(); i.hasNext(); )
-      {
-        IField field = (IField)i.next();
-        IType type = field.getType();
-        if (type != null)  // && type.isComplexType())
-        {
-          if (!result.contains(type))
-          {
-            if (type instanceof IGraphElement)
-            {
-              if (((IGraphElement)type).isFocusAllowed())
-                result.add(type);
-            }
-          }  
-        }  
-      }        
-    }  
-    else if (model instanceof IField)
-    {
-      IField field = (IField)model;
-      IType type = field.getType();
-      if (type != null) //  && type.isComplexType())
-      {
-        if (type instanceof IGraphElement)
-        {
-          if (((IGraphElement)type).isFocusAllowed())
-            result.add(type);        
-        }
-      }
-    }  
-    return result;
-  }  
-  
-  public void registerListener(IADTObjectListener listener)
-  {
-    listenerList.add(listener);
-  }
-
-  public void unregisterListener(IADTObjectListener listener)
-  {
-    listenerList.remove(listener);
-  }   
-  
-  protected void notifyListeners(Object changedObject, String property)
-  {
-    List clonedListenerList = new ArrayList();
-    clonedListenerList.addAll(listenerList);
-    for (Iterator i = clonedListenerList.iterator(); i.hasNext(); )
-    {
-      IADTObjectListener listener = (IADTObjectListener)i.next();
-      listener.propertyChanged(this, null);
-    } 
-  }   
-  
-  protected class InternalListener implements IADTObjectListener
-  {
-    List fields = new ArrayList();
-
-    void recomputeSubListeners()
-    {
-      if (model instanceof IStructure)
-      {  
-        // remove old ones
-        for (Iterator i = fields.iterator(); i.hasNext();)
-        {
-          IField field = (IField) i.next();
-          field.unregisterListener(this);
-        }
-        // add new ones
-        fields.clear();
-        IStructure complexType = (IStructure) model;
-        for (Iterator i = complexType.getFields().iterator(); i.hasNext();)
-        {
-          IField field = (IField) i.next();
-          fields.add(field);
-          field.registerListener(this);
-        }
-      }
-    }
-
-    public void propertyChanged(Object object, String property)
-    {
-      if (object == model)
-      {
-        // we need to update the fields we're listening too
-        // since these may have changed
-        recomputeSubListeners();
-      }
-      else if (object instanceof IField)
-      {
-      }  
-      notifyListeners(object, property);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/ADTDirectEditPolicy.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/ADTDirectEditPolicy.java
deleted file mode 100644
index b7f22b3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/ADTDirectEditPolicy.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editpolicies;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.DirectEditPolicy;
-import org.eclipse.gef.requests.DirectEditRequest;
-import org.eclipse.wst.xsd.ui.internal.adt.design.directedit.ComboBoxCellEditorManager;
-
-public class ADTDirectEditPolicy extends DirectEditPolicy
-{
-  protected ComboBoxCellEditorManager delegate;
-  protected IADTUpdateCommand command;
-
-  public ADTDirectEditPolicy()
-  {
-    super();
-  }
-
-  
-  public void setUpdateCommand(IADTUpdateCommand command)
-  {
-    this.command = command;
-  }
-  
-  protected void showCurrentEditValue(DirectEditRequest request) 
-  {      
-    getHostFigure().getUpdateManager().performUpdate();
-  }
-
-  protected Command getDirectEditCommand(DirectEditRequest request)
-  {
-    command.setRequest(request);
-    return (Command)command; 
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/ADTSelectionFeedbackEditPolicy.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/ADTSelectionFeedbackEditPolicy.java
deleted file mode 100644
index 4787127..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/ADTSelectionFeedbackEditPolicy.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editpolicies;
-
-import org.eclipse.gef.editpolicies.SelectionEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IFeedbackHandler;
-
-public class ADTSelectionFeedbackEditPolicy extends SelectionEditPolicy
-{
-
-  public ADTSelectionFeedbackEditPolicy()
-  {
-    super();
-  }
-
-  protected void hideSelection()
-  {
-    if (getHost() instanceof IFeedbackHandler)
-    {
-      ((IFeedbackHandler) getHost()).removeFeedback();
-    }
-  }
-
-  protected void showSelection()
-  {
-    if (getHost() instanceof IFeedbackHandler)
-    {
-      ((IFeedbackHandler) getHost()).addFeedback();
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/DirectEditPolicyDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/DirectEditPolicyDelegate.java
deleted file mode 100644
index 151b493..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/DirectEditPolicyDelegate.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editpolicies;
-   
-import org.eclipse.jface.viewers.CellEditor;
-
-public interface DirectEditPolicyDelegate
-{       
-  public void performEdit(CellEditor cellEditor);  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/IADTUpdateCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/IADTUpdateCommand.java
deleted file mode 100644
index a4c4eb5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/IADTUpdateCommand.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editpolicies;
-
-import org.eclipse.gef.requests.DirectEditRequest;
-
-public interface IADTUpdateCommand
-{
-  void setRequest(DirectEditRequest request);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/KeyBoardAccessibilityEditPolicy.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/KeyBoardAccessibilityEditPolicy.java
deleted file mode 100644
index a1bf690..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/KeyBoardAccessibilityEditPolicy.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.design.editpolicies;
-
-import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.editpolicies.GraphicalEditPolicy;
-
-public class KeyBoardAccessibilityEditPolicy extends GraphicalEditPolicy
-{
-  public static String KEY = "KeyBoardAccessibilityEditPolicy";
-  
-  public static int OUT_TO_PARENT = PositionConstants.ALWAYS_LEFT;
-  public static int IN_TO_FIRST_CHILD = PositionConstants.ALWAYS_RIGHT;
-  
-  public EditPart getRelativeEditPart(EditPart editPart, int direction)
-  {
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/SimpleDirectEditPolicy.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/SimpleDirectEditPolicy.java
deleted file mode 100644
index 4e38e39..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/editpolicies/SimpleDirectEditPolicy.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.editpolicies;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.editpolicies.DirectEditPolicy;
-import org.eclipse.gef.requests.DirectEditRequest;
-                                   
-public class SimpleDirectEditPolicy extends DirectEditPolicy 
-{
-  protected DirectEditPolicyDelegate delegate;
-
-  public void setDelegate(DirectEditPolicyDelegate delegate)
-  {                                           
-    this.delegate = delegate;
-  }
-
-  protected org.eclipse.gef.commands.Command getDirectEditCommand(final DirectEditRequest request) 
-  { 
-  	return new Command() //AbstractCommand()
-    {
-      public void execute()
-      {                       
-        if (delegate != null)
-        {
-          delegate.performEdit(request.getCellEditor());
-        }  
-      }     
-  
-      public void redo()
-      {
-      }  
-  
-      public void undo()
-      {
-      }     
-  
-      public boolean canExecute()
-      {
-        return true;
-      }
-    };
-  }
-  
-  protected void showCurrentEditValue(DirectEditRequest request) 
-  {      
-  	//hack to prevent async layout from placing the cell editor twice.
-  	getHostFigure().getUpdateManager().performUpdate();
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IADTFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IADTFigure.java
deleted file mode 100644
index 284a260..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IADTFigure.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.figures;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPart;
-
-public interface IADTFigure extends IFigure
-{
-  void editPartAttached(EditPart owner); 
-  void addSelectionFeedback();
-  void removeSelectionFeedback();
-  void refreshVisuals(Object model);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/ICompartmentFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/ICompartmentFigure.java
deleted file mode 100644
index 3e25def..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/ICompartmentFigure.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.figures;
-
-import org.eclipse.draw2d.IFigure;
-
-public interface ICompartmentFigure extends IADTFigure
-{
-  IFigure getContentPane();
-  IFigure getAnnotationPane();  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IFieldFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IFieldFigure.java
deleted file mode 100644
index efabeb0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IFieldFigure.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.figures;
-
-import org.eclipse.draw2d.Label;
-
-
-public interface IFieldFigure extends IADTFigure
-{
-  Label getTypeLabel();
-  Label getNameLabel();
-  Label getNameAnnotationLabel();
-  Label getTypeAnnotationLabel();
-  void recomputeLayout();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IFigureFactory.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IFigureFactory.java
deleted file mode 100644
index d6efe61..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IFigureFactory.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.figures;
-
-public interface IFigureFactory
-{
-  IFieldFigure createFieldFigure(Object model);
-  IStructureFigure createStructureFigure(Object model);
-  ICompartmentFigure createCompartmentFigure(Object model);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IStructureFigure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IStructureFigure.java
deleted file mode 100644
index 5a96af2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/design/figures/IStructureFigure.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.design.figures;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.geometry.Point;
-
-public interface IStructureFigure extends IADTFigure
-{
-  IFigure getContentPane();
-  Label getNameLabel();
-  boolean hitTestHeader(Point point);  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/edit/ComponentReferenceEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/edit/ComponentReferenceEditManager.java
deleted file mode 100644
index 46ac99a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/edit/ComponentReferenceEditManager.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.edit;
-
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider;
-
-public interface ComponentReferenceEditManager
-{
-  public IComponentDialog getBrowseDialog();
-  public IComponentDialog getNewDialog();
-  public void modifyComponentReference(Object referencingObject, ComponentSpecification referencedComponent);
-  public IComponentDescriptionProvider getComponentDescriptionProvider();
-  
-  public ComponentSpecification[] getQuickPicks();
-  public ComponentSpecification[] getHistory();
-  public void addToHistory(ComponentSpecification component);  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/edit/IComponentDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/edit/IComponentDialog.java
deleted file mode 100644
index 4194f9b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/edit/IComponentDialog.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.edit;
-
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-
-public interface IComponentDialog  {
-  
-	/*
-	 * Set the Object being set
-	 */
-	public void setInitialSelection(ComponentSpecification componentSpecification);
-	
-	/*
-	 * Return the Object which should be used as the type.
-	 */
-	public ComponentSpecification getSelectedComponent();
-	
-	/*
-	 * Used to open the Dialog
-	 */
-	public int createAndOpen();
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ADTMultiPageEditor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ADTMultiPageEditor.java
deleted file mode 100644
index f1dee13..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ADTMultiPageEditor.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.editor;
-
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.GraphicalViewer;
-import org.eclipse.gef.editparts.ZoomManager;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.parts.GraphicalViewerImpl;
-import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.StackLayout;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.SetInputToGraphView;
-import org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewGraphicalViewer;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.ADTEditPartFactory;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BackToSchemaEditPart;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ADTContentOutlinePage;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ADTLabelProvider;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public abstract class ADTMultiPageEditor extends CommonMultiPageEditor
-{
-  protected IModel model;
-  private int currentPage = -1;
-  protected Button tableOfContentsButton;
-  
-  /**
-   * Creates a multi-page editor example.
-   */
-  public ADTMultiPageEditor()
-  {
-    super();
-  }
-
-  
-  private class InternalLayout extends StackLayout
-  {
-    public InternalLayout()
-    {
-      super();  
-    }
-    
-    protected void layout(Composite composite, boolean flushCache)
-    {
-      Control children[] = composite.getChildren();
-      Rectangle rect = composite.getClientArea();
-      rect.x += marginWidth;
-      rect.y += marginHeight;
-      rect.width -= 2 * marginWidth;
-      rect.height -= 2 * marginHeight;
-      
-      for (int i = 0; i < children.length; i++) 
-      {
-        if (i == 0)  // For the back to schema button 
-        {  
-          children[i].setBounds(rect.x + 10, rect.y + 10, 26, 26);
-        }
-        else if (i == 1 && modeCombo != null) // For the drop down toolbar
-        {
-          children[i].setBounds(rect.x + rect.width - 90 - maxLength, rect.y + 10, maxLength + 60, 26);
-        }
-        else // For the main graph viewer
-        {
-          children[i].setBounds(rect);          
-        }
-      }       
-    }               
-  }
-  
-  GraphicalViewerImpl toolbarViewer;
-  BackToSchemaEditPart backToSchemaEditPart;
-  protected Composite createGraphPageComposite()
-  {    
-    Composite parent = new Composite(getContainer(), SWT.FLAT);
-    parent.setLayout(new InternalLayout());
-    
-    // the palletViewer extends from this...maybe use it instead?
-    toolbarViewer = new GraphicalViewerImpl();
-    toolbarViewer.createControl(parent);
-    toolbarViewer.getControl().setVisible(true);
-    backToSchemaEditPart = new BackToSchemaEditPart(this);
-    backToSchemaEditPart.setModel(getModel());
-    toolbarViewer.setContents(backToSchemaEditPart);
-    
-    createViewModeToolbar(parent);
-    
-    return parent;
-  }
-  
-  protected void createGraphPage()
-  {
-    super.createGraphPage(); 
-//    toolbarViewer.getControl().moveAbove(graphicalViewer.getControl());
-//    graphicalViewer.getControl().moveBelow(toolbarViewer.getControl());
-  }
-  
-  public String getContributorId()
-  {
-    return "org.eclipse.wst.xsd.ui.internal.editor"; //$NON-NLS-1$
-  }
-  
-  public IContentOutlinePage getContentOutlinePage()
-  {
-    if (fOutlinePage == null || fOutlinePage.getControl() == null || fOutlinePage.getControl().isDisposed())
-    {
-      ADTContentOutlinePage outlinePage = new ADTContentOutlinePage(this);
-      //outlinePage.getTreeViewer().removeF(filter);
-      ITreeContentProvider provider = (ITreeContentProvider)getEditorModeManager().getCurrentMode().getOutlineProvider();
-      outlinePage.setContentProvider(provider);
-      ADTLabelProvider adtLabelProvider = new ADTLabelProvider();
-      outlinePage.setLabelProvider(adtLabelProvider);
-      outlinePage.setModel(getModel());
-      
-      fOutlinePage = outlinePage;
-    }
-    return fOutlinePage;
-  }
-
-  /**
-   * Creates the pages of the multi-page editor.
-   */
-  protected void createPages()
-  {
-    selectionProvider = getSelectionManager();
-    
-    createGraphPage();
-    createSourcePage();
-    
-    getEditorSite().setSelectionProvider(selectionProvider);
-
-    model = buildModel();  // (IFileEditorInput)getEditorInput());
-    
-    initializeGraphicalViewer();
-    
-    int pageIndexToShow = getDefaultPageTypeIndex();
-    setActivePage(pageIndexToShow);
-  }
-
-  protected int getDefaultPageTypeIndex() {
-    int pageIndex = SOURCE_PAGE_INDEX;
-    if (XSDEditorPlugin.getPlugin().getDefaultPage().equals(XSDEditorPlugin.DESIGN_PAGE)) {
-        pageIndex = DESIGN_PAGE_INDEX;
-    }
-
-    return pageIndex;
-  }
-
-  protected void pageChange(int newPageIndex)
-  {
-    currentPage = newPageIndex;
-    super.pageChange(newPageIndex);
-  }
-  
-  private boolean isTableOfContentsApplicable(Object graphViewInput)
-  {
-    return !(graphViewInput instanceof IModel);
-  }
-
-  protected ScrollingGraphicalViewer getGraphicalViewer()
-  {
-    DesignViewGraphicalViewer viewer = new DesignViewGraphicalViewer(this, getSelectionManager());
-    viewer.addInputChangdListener(new ISelectionChangedListener()
-    {
-      public void selectionChanged(SelectionChangedEvent event)
-      {        
-        IStructuredSelection input = (IStructuredSelection)event.getSelection();
-        backToSchemaEditPart.setEnabled(isTableOfContentsApplicable(input.getFirstElement()));
-        backToSchemaEditPart.setModel(getModel());
-      }      
-    });
-    return viewer;
-  }
-  
-  abstract public IModel buildModel();  // (IFileEditorInput editorInput);
-  
-  protected void createActions()
-  {
-    ActionRegistry registry = getActionRegistry();
-    
-    BaseSelectionAction action = new SetInputToGraphView(this);
-    action.setSelectionProvider(getSelectionManager());
-    registry.registerAction(action);
-  }
-
-
-  public IModel getModel()
-  {
-    return model;
-  }
-
-  public Object getAdapter(Class type)
-  {
-    if (type == ZoomManager.class)
-      return graphicalViewer.getProperty(ZoomManager.class.toString());
-    
-    if (type == GraphicalViewer.class)
-      return graphicalViewer;
-    if (type == EditPart.class && graphicalViewer != null)
-      return graphicalViewer.getRootEditPart();
-    if (type == IFigure.class && graphicalViewer != null)
-      return ((GraphicalEditPart) graphicalViewer.getRootEditPart()).getFigure();
-
-    if (type == IContentOutlinePage.class)
-    {
-      return getContentOutlinePage();
-    }
-
-    return super.getAdapter(type);
-  }
-
-  protected EditPartFactory getEditPartFactory() {
-    return new ADTEditPartFactory();
-  }
-
-  protected void initializeGraphicalViewer()
-  {
-    graphicalViewer.setContents(model);
-  }
-  
-  public void dispose()
-  {
-    if (currentPage == SOURCE_PAGE_INDEX)
-    {
-      XSDEditorPlugin.getPlugin().setSourcePageAsDefault();
-    }
-    else
-    {
-      XSDEditorPlugin.getPlugin().setDesignPageAsDefault();
-    }
-    toolbarViewer = null;
-    backToSchemaEditPart = null;
-    super.dispose();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/CommonMultiPageEditor.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/CommonMultiPageEditor.java
deleted file mode 100644
index 105cc13..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/CommonMultiPageEditor.java
+++ /dev/null
@@ -1,736 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.editor;
-
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.EventObject;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.MouseWheelHandler;
-import org.eclipse.gef.MouseWheelZoomHandler;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.commands.CommandStackListener;
-import org.eclipse.gef.editparts.LayerManager;
-import org.eclipse.gef.editparts.ZoomManager;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.actions.UpdateAction;
-import org.eclipse.gef.ui.actions.ZoomInAction;
-import org.eclipse.gef.ui.actions.ZoomOutAction;
-import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer;
-import org.eclipse.gef.ui.parts.SelectionSynchronizer;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IPropertyListener;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.ui.ide.IDE;
-import org.eclipse.ui.ide.IGotoMarker;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageEditorSite;
-import org.eclipse.ui.texteditor.ITextEditor;
-import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.wst.sse.ui.StructuredTextEditor;
-import org.eclipse.wst.xml.core.internal.provisional.contenttype.ContentTypeIdForXML;
-import org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewerGraphicConstants;
-import org.eclipse.wst.xsd.ui.internal.adt.design.FlatCCombo;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.RootEditPart;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public abstract class CommonMultiPageEditor extends MultiPageEditorPart implements IResourceChangeListener, CommandStackListener, ITabbedPropertySheetPageContributor, IPropertyListener, IEditorModeListener
-{
-  public static int SOURCE_PAGE_INDEX = 1, DESIGN_PAGE_INDEX = 0;  
-  
-  protected IContentOutlinePage fOutlinePage;
-  protected DefaultEditDomain editDomain;
-  protected SelectionSynchronizer synchronizer;
-  protected ActionRegistry actionRegistry;
-  protected StructuredTextEditor structuredTextEditor;
-  protected CommonSelectionManager selectionProvider;
-  protected ScrollingGraphicalViewer graphicalViewer;
-  protected EditorModeManager editorModeManager;
-  protected FlatCCombo modeCombo;
-  private EditorModeAndCustomizedName[] editorModeAndCustomizedNames;
-  protected Composite toolbar;
-  protected ModeComboListener modeComboListener;
-  protected int maxLength = 0;
-  
-  public CommonMultiPageEditor()
-  {
-    super();
-    editDomain = new DefaultEditDomain(this)
-    {
-      public void mouseDown(MouseEvent mouseEvent, EditPartViewer viewer)
-      {
-        boolean eatTheEvent = false;      
-        LayerManager manager = (LayerManager)viewer.getEditPartRegistry().get(LayerManager.ID);     
-        IFigure layer = manager.getLayer(DesignViewerGraphicConstants.SCALED_HANDLE_LAYER);
-        if (layer != null)
-        {  
-          Point p = new Point(mouseEvent.x, mouseEvent.y);
-          layer.translateToRelative(p);
-          IFigure figure = layer.findFigureAt(p);     
-          if (figure != null && figure != layer)
-          {
-            // we eat this selection event!
-            eatTheEvent = true;
-          } 
-        }
-        if (!eatTheEvent)
-        {
-          super.mouseDown(mouseEvent, viewer);
-        }  
-      }      
-    };
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
-   */
-  public abstract String getContributorId();
-  
-  
-  /**
-   * 
-   */
-  protected abstract void createActions();
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.part.MultiPageEditorPart#createPages()
-   */
-  protected void createPages()
-  {
-
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
-   */
-  public void doSave(IProgressMonitor monitor)
-  {
-//    getEditor(1).doSave(monitor); 
-    structuredTextEditor.doSave(monitor);
-    getCommandStack().markSaveLocation();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.part.EditorPart#doSaveAs()
-   */
-  public void doSaveAs()
-  {
-    IEditorPart editor = getEditor(1);
-//    editor.doSaveAs();
-    structuredTextEditor.doSaveAs();
-    setInput(structuredTextEditor.getEditorInput());
-    setPartName(editor.getTitle());
-    getCommandStack().markSaveLocation();
-    
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.part.EditorPart#isSaveAsAllowed()
-   */
-  public boolean isSaveAsAllowed()
-  {
-    return true;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.core.resources.IResourceChangeListener#resourceChanged(org.eclipse.core.resources.IResourceChangeEvent)
-   * 
-   * Closes all project files on project close.
-   */
-  public void resourceChanged(final IResourceChangeEvent event)
-  {
-    if (event.getType() == IResourceChangeEvent.PRE_CLOSE)
-    {
-      Display.getDefault().asyncExec(new Runnable()
-      {
-        public void run()
-        {
-          IWorkbenchPage[] pages = getSite().getWorkbenchWindow().getPages();
-          for (int i = 0; i < pages.length; i++)
-          {
-            if (((FileEditorInput) structuredTextEditor.getEditorInput()).getFile().getProject().equals(event.getResource()))
-            {
-              IEditorPart editorPart = pages[i].findEditor(structuredTextEditor.getEditorInput());
-              pages[i].closeEditor(editorPart, true);
-            }
-          }
-        }
-      });
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.gef.commands.CommandStackListener#commandStackChanged(java.util.EventObject)
-   */
-  public void commandStackChanged(EventObject event)
-  {
-    firePropertyChange(PROP_DIRTY);
-  }
-  
-  /**
-   * Indicates that a property has changed.
-   * 
-   * @param source
-   *          the object whose property has changed
-   * @param propId
-   *          the id of the property which has changed; property ids are
-   *          generally defined as constants on the source class
-   */
-  public void propertyChanged(Object source, int propId)
-  {
-    switch (propId)
-    {
-      // had to implement input changed "listener" so that
-      // strucutedText could tell it containing editor that
-      // the input has change, when a 'resource moved' event is
-      // found.
-      case IEditorPart.PROP_INPUT :
-      case IEditorPart.PROP_DIRTY : {
-        if (source == structuredTextEditor)
-        {
-          if (structuredTextEditor.getEditorInput() != getEditorInput())
-          {
-            setInput(structuredTextEditor.getEditorInput());
-            // title should always change when input changes.
-            // create runnable for following post call
-            Runnable runnable = new Runnable()
-            {
-              public void run()
-              {
-                _firePropertyChange(IWorkbenchPart.PROP_TITLE);
-              }
-            };
-            // Update is just to post things on the display queue
-            // (thread). We have to do this to get the dirty
-            // property to get updated after other things on the
-            // queue are executed.
-            postOnDisplayQue(runnable);
-          }
-        }
-        break;
-      }
-      case IWorkbenchPart.PROP_TITLE : {
-        // update the input if the title is changed
-        if (source == structuredTextEditor)
-        {
-          if (structuredTextEditor.getEditorInput() != getEditorInput())
-          {
-            setInput(structuredTextEditor.getEditorInput());
-          }
-        }
-        break;
-      }
-      default : {
-        // propagate changes. Is this needed? Answer: Yes.
-        if (source == structuredTextEditor)
-        {
-          firePropertyChange(propId);
-        }
-        break;
-      }
-    }
-  }
-
-  /**
-   * @return
-   */
-  protected SelectionSynchronizer getSelectionSynchronizer()
-  {
-    if (synchronizer == null)
-      synchronizer = new SelectionSynchronizer();
-    return synchronizer;
-  }
-
-  public CommonSelectionManager getSelectionManager()
-  {
-    if (selectionProvider == null)
-    {
-      selectionProvider = new CommonSelectionManager(this);
-    }
-    return selectionProvider;
-  }
-  
-  /*
-   * This method is just to make firePropertyChanged accessbible from some
-   * (anonomous) inner classes.
-   */
-  protected void _firePropertyChange(int property)
-  {
-    super.firePropertyChange(property);
-  }
-  
-  /**
-   * Posts the update code "behind" the running operation.
-   */
-  protected void postOnDisplayQue(Runnable runnable)
-  {
-    IWorkbench workbench = PlatformUI.getWorkbench();
-    IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
-    if (windows != null && windows.length > 0)
-    {
-      Display display = windows[0].getShell().getDisplay();
-      display.asyncExec(runnable);
-    }
-    else
-      runnable.run();
-  }
-
-  /**
-   * The <code>MultiPageEditorPart</code> implementation of this
-   * <code>IWorkbenchPart</code> method disposes all nested editors.
-   * Subclasses may extend.
-   */
-  public void dispose()
-  {
-    getCommandStack().removeCommandStackListener(this);
-    ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-    actionRegistry.dispose();
-    
-    if (structuredTextEditor != null) {
-      structuredTextEditor.removePropertyListener(this);
-    }
-    structuredTextEditor = null;
-    editDomain = null;
-    fOutlinePage = null;
-    synchronizer = null;
-    actionRegistry = null;
-    selectionProvider = null;
-    graphicalViewer = null;
-    if (modeCombo != null && !modeCombo.isDisposed())
-    {
-      modeCombo.removeSelectionListener(modeComboListener);
-      modeComboListener = null;
-    }
-    
-    super.dispose();
-  }
-
-  protected CommandStack getCommandStack()
-  {
-    return editDomain.getCommandStack();
-  }
-
-  /*
-   * (non-Javadoc) Method declared on IEditorPart
-   */
-  public void gotoMarker(IMarker marker)
-  {
-    setActivePage(SOURCE_PAGE_INDEX);
-    IDE.gotoMarker(structuredTextEditor, marker);
-  }
-
-  /**
-   * The <code>MultiPageEditorExample</code> implementation of this method
-   * checks that the input is an instance of <code>IFileEditorInput</code>.
-   */
-  public void init(IEditorSite site, IEditorInput editorInput) throws PartInitException
-  {
-//    if (!(editorInput instanceof IFileEditorInput))
-//      throw new PartInitException("Invalid Input: Must be IFileEditorInput"); //$NON-NLS-1$
-    super.init(site, editorInput);
-    
-    getCommandStack().addCommandStackListener(this);
-    
-    initializeActionRegistry();
-    
-    String title = null;
-    if (getEditorInput() != null) {
-      title = getEditorInput().getName();
-    }
-    setPartName(title);
-  }
-
-  protected void initializeActionRegistry()
-  {
-    createActions();
-  }
-  
-  protected ActionRegistry getActionRegistry()
-  {
-    if (actionRegistry == null)
-      actionRegistry = new ActionRegistry();
-    return actionRegistry;
-  }
-
-  public Object getAdapter(Class type)
-  {
-    if (type == CommandStack.class)
-      return getCommandStack();
-    if (type == ActionRegistry.class)
-      return getActionRegistry();
-    if (type == EditorModeManager.class)
-      return getEditorModeManager();
-    if (type == IGotoMarker.class) {
-      return new IGotoMarker() {
-        public void gotoMarker(IMarker marker) {
-          CommonMultiPageEditor.this.gotoMarker(marker);
-        }
-      };
-    }
-    if (type == ITextEditor.class)
-      return getTextEditor();
-    
-    return super.getAdapter(type);
-  }
-  
-  protected DefaultEditDomain getEditDomain()
-  {
-    return editDomain;
-  }
-
-  /**
-   * From GEF GraphicalEditor A convenience method for updating a set of actions
-   * defined by the given List of action IDs. The actions are found by looking
-   * up the ID in the {@link #getActionRegistry() action registry}. If the
-   * corresponding action is an {@link UpdateAction}, it will have its
-   * <code>update()</code> method called.
-   * 
-   * @param actionIds
-   *          the list of IDs to update
-   */
-  protected void updateActions(List actionIds)
-  {
-    ActionRegistry registry = getActionRegistry();
-    Iterator iter = actionIds.iterator();
-    while (iter.hasNext())
-    {
-      IAction action = registry.getAction(iter.next());
-      if (action instanceof UpdateAction)
-        ((UpdateAction) action).update();
-    }
-  }
-
-  /**
-   * Returns <code>true</code> if the command stack is dirty
-   * 
-   * @see org.eclipse.ui.ISaveablePart#isDirty()
-   */
-  public boolean isDirty()
-  {
-    if (getCommandStack().isDirty())
-      return true;
-    else
-      return super.isDirty();
-  }
-
-  public StructuredTextEditor getTextEditor()
-  {
-    return structuredTextEditor;
-  }
- 
-  
-  protected Composite createGraphPageComposite()
-  {
-    Composite parent = new Composite(getContainer(), SWT.NONE);    
-    parent.setLayout(new FillLayout());
-    return parent;
-  }
-  
-  protected void createGraphPage()
-  {
-    Composite parent = createGraphPageComposite();
-    
-    graphicalViewer = getGraphicalViewer();
-    graphicalViewer.createControl(parent);
-        
-    getEditDomain().addViewer(graphicalViewer);
-    
-    configureGraphicalViewer();
-    hookGraphicalViewer();    
-    int index = addPage(parent);
-    setPageText(index, Messages._UI_LABEL_DESIGN);
-  }
-
-       /**
-        * @see org.eclipse.ui.part.MultiPageEditorPart#createSite(org.eclipse.ui.IEditorPart)
-        */
-       protected IEditorSite createSite(IEditorPart editor) {
-               IEditorSite site = null;
-               if (editor == structuredTextEditor) {
-                       site = new MultiPageEditorSite(this, editor) {
-                               public String getId() {
-                                       // sets this id so nested editor is considered xml source
-                                       // page
-                                       return ContentTypeIdForXML.ContentTypeID_XML + ".source"; //$NON-NLS-1$;
-                               }
-                       };
-               }
-               else {
-                       site = super.createSite(editor);
-               }
-               return site;
-       }
-  
-  protected void createSourcePage()
-  {
-    structuredTextEditor = new StructuredTextEditor();
-    try
-    {
-      int index = addPage(structuredTextEditor, getEditorInput());
-      setPageText(index, Messages._UI_LABEL_SOURCE);
-      structuredTextEditor.update();
-      structuredTextEditor.setEditorPart(this);
-      structuredTextEditor.addPropertyListener(this);
-      firePropertyChange(PROP_TITLE);
-    }
-    catch (PartInitException e)
-    {
-      ErrorDialog.openError(getSite().getShell(), "Error creating nested text editor", null, e.getStatus()); //$NON-NLS-1$
-    }
-  }
-  
-  protected void configureGraphicalViewer()
-  {
-    graphicalViewer.getControl().setBackground(ColorConstants.listBackground);
-
-    // Set the root edit part
-    // ScalableFreeformRootEditPart root = new ScalableFreeformRootEditPart();
-    RootEditPart root = new RootEditPart();
-    ZoomManager zoomManager = root.getZoomManager();
-    
-    List zoomLevels = new ArrayList(3);
-    zoomLevels.add(ZoomManager.FIT_ALL);
-    zoomLevels.add(ZoomManager.FIT_WIDTH);
-    zoomLevels.add(ZoomManager.FIT_HEIGHT);
-    zoomManager.setZoomLevelContributions(zoomLevels);
-
-    IAction zoomIn = new ZoomInAction(zoomManager);
-    IAction zoomOut = new ZoomOutAction(zoomManager);
-    getActionRegistry().registerAction(zoomIn);
-    getActionRegistry().registerAction(zoomOut);
-
-    getSite().getKeyBindingService().registerAction(zoomIn);
-    getSite().getKeyBindingService().registerAction(zoomOut);
-
-    //ConnectionLayer connectionLayer = (ConnectionLayer) root.getLayer(LayerConstants.CONNECTION_LAYER);
-    //connectionLayer.setConnectionRouter(new BendpointConnectionRouter());
-
-    //connectionLayer.setConnectionRouter(new ShortestPathConnectionRouter(connectionLayer));
-    // connectionLayer.setVisible(false);
-
-    // Zoom
-    zoomManager.setZoom(1.0);
-    // Scroll-wheel Zoom
-    graphicalViewer.setProperty(MouseWheelHandler.KeyGenerator.getKey(SWT.CTRL), MouseWheelZoomHandler.SINGLETON);
-    graphicalViewer.setRootEditPart(root);
-    graphicalViewer.setEditPartFactory(getEditPartFactory());
-  }
-  
-  protected void hookGraphicalViewer()
-  {
-    getSelectionSynchronizer().addViewer(graphicalViewer);
-  }
-  
-  protected abstract ScrollingGraphicalViewer getGraphicalViewer();
-  protected abstract EditPartFactory getEditPartFactory();
-  protected abstract void initializeGraphicalViewer();
-
-  protected EditorModeManager getEditorModeManager()
-  {
-    if (editorModeManager == null)
-    {
-      editorModeManager = createEditorModeManager();
-      editorModeManager.addListener(this);
-      editorModeManager.init();
-    }  
-    return editorModeManager;
-  }
-  
-  protected abstract EditorModeManager createEditorModeManager();
-  
-  
-  private String getEditModeName(EditorMode editorMode, ProductCustomizationProvider productCustomizationProvider)
-  {
-    String result = editorMode.getDisplayName();
-    if (productCustomizationProvider != null)
-    {
-      String customizedName = productCustomizationProvider.getEditorModeDisplayName(editorMode.getId());
-      if (customizedName != null)
-      {
-        result = customizedName;
-      }  
-    } 
-    return result;
-  }
-  
-  class EditorModeAndCustomizedName
-  {
-    EditorMode mode;
-    String name;
-  }
-  
-  protected void createViewModeToolbar(Composite parent)
-  {
-    EditorModeManager manager = (EditorModeManager)getAdapter(EditorModeManager.class);
-    final ProductCustomizationProvider productCustomizationProvider = (ProductCustomizationProvider)getAdapter(ProductCustomizationProvider.class);
-    EditorMode [] modeList = manager.getModes();
-    
-    int modeListLength = modeList.length;
-    boolean showToolBar = modeListLength > 1;
-   
-    if (showToolBar)
-    {
-      toolbar = new Composite(parent, SWT.FLAT | SWT.DRAW_TRANSPARENT);
-      toolbar.setBackground(ColorConstants.white);
-      toolbar.addPaintListener(new PaintListener() {
-
-        public void paintControl(PaintEvent e)
-        {
-          Rectangle clientArea = toolbar.getClientArea(); 
-          e.gc.setForeground(ColorConstants.lightGray);
-          e.gc.drawRectangle(clientArea.x, clientArea.y, clientArea.width - 1, clientArea.height - 1);
-        }
-      });
-      
-      GridLayout gridLayout = new GridLayout(3, false);
-      toolbar.setLayout(gridLayout);
-
-      Label label = new Label(toolbar, SWT.FLAT | SWT.HORIZONTAL);
-      label.setBackground(ColorConstants.white);
-      label.setText(Messages._UI_LABEL_VIEW);
-      label.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
-
-      modeCombo = new FlatCCombo(toolbar, SWT.FLAT);
-      modeCombo.setEditable(false);
-      modeCombo.setText(getEditModeName(manager.getCurrentMode(), productCustomizationProvider)); 
-      GC gc = new GC(modeCombo);
-      int textWidth = 0;
-      maxLength = 0;
-      
-      // populate combo with modes
-      editorModeAndCustomizedNames = new EditorModeAndCustomizedName[modeListLength];      
-      for (int i = 0; i < modeListLength; i++)
-      {  
-        EditorModeAndCustomizedName entry = new EditorModeAndCustomizedName();
-        editorModeAndCustomizedNames[i] = entry;
-        entry.name = getEditModeName(modeList[i], productCustomizationProvider);
-        entry.mode = modeList[i];
-      }        
-      Arrays.sort(editorModeAndCustomizedNames, new Comparator()
-      {
-        public int compare(Object arg0, Object arg1)
-        {
-          EditorModeAndCustomizedName a = (EditorModeAndCustomizedName)arg0;
-          EditorModeAndCustomizedName b = (EditorModeAndCustomizedName)arg1;        
-          return Collator.getInstance().compare(a.name, b.name);
-        }
-      });
-      for (int i = 0; i < editorModeAndCustomizedNames.length; i++ )
-      {
-        EditorModeAndCustomizedName entry = editorModeAndCustomizedNames[i];
-        modeCombo.add(entry.name);
-        maxLength = Math.max (gc.stringExtent(entry.name).x, maxLength);
-        int approxWidthOfStrings = Math.max (gc.stringExtent(entry.name).x, textWidth);
-        if (approxWidthOfStrings > maxLength)
-          maxLength = approxWidthOfStrings;
-      }
-      
-      maxLength += gc.stringExtent(Messages._UI_LABEL_VIEW).x; 
-      gc.dispose();
-      
-      modeComboListener = new ModeComboListener();
-      modeCombo.addSelectionListener(modeComboListener);
-      modeCombo.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_END));
-      modeCombo.setBackground(toolbar.getBackground());
-
-      ImageHyperlink hyperlink = new ImageHyperlink(toolbar, SWT.FLAT);
-      hyperlink.setBackground(ColorConstants.white);
-      // https://bugs.eclipse.org/bugs/show_bug.cgi?id=154457
-      Image image = XSDEditorPlugin.getDefault().getIconImage("etool16/help_contents");
-      hyperlink.setImage(image);
-      hyperlink.setToolTipText(Messages._UI_HOVER_VIEW_MODE_DESCRIPTION);
-      hyperlink.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
-      hyperlink.addMouseListener(new MouseAdapter()
-      {
-        public void mouseDown(MouseEvent e)
-        {
-          if (productCustomizationProvider != null)
-          {
-            productCustomizationProvider.handleAction("showEditorModeHelp");
-          }
-        }
-      });      
-    }
-  }
-  
-  
-  protected class ModeComboListener implements SelectionListener
-  {
-    public ModeComboListener()
-    {
-    }
-    
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-    }
-
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (e.widget == modeCombo)
-      {        
-        EditorModeManager manager = (EditorModeManager)getAdapter(EditorModeManager.class);
-        EditorMode [] modeList = manager.getModes();
-        if (modeList.length >= 1)
-        {
-          EditorModeAndCustomizedName entry = editorModeAndCustomizedNames[modeCombo.getSelectionIndex()];
-          if (manager.getCurrentMode() != entry.mode)
-          {  
-            manager.setCurrentMode(entry.mode);
-            storeCurrentModePreference(entry.mode.getId());
-            ProductCustomizationProvider productCustomizationProvider = (ProductCustomizationProvider) getAdapter(ProductCustomizationProvider.class);
-            if (productCustomizationProvider != null)
-            {
-              productCustomizationProvider.handleAction("editorModeChanged");
-            }
-          }
-        }  
-      }
-    }
-  }
-  
-  protected void storeCurrentModePreference(String id)
-  {
-    // Don't do anything as default.  Allow extenders to implement.
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/CommonSelectionManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/CommonSelectionManager.java
deleted file mode 100644
index 56ead67..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/CommonSelectionManager.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.editor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.part.MultiPageEditorPart;
-import org.eclipse.ui.part.MultiPageSelectionProvider;
-
-public class CommonSelectionManager extends MultiPageSelectionProvider implements ISelectionProvider, ISelectionChangedListener
-{
-
-  public CommonSelectionManager(MultiPageEditorPart multiPageEditor)
-  {
-    super(multiPageEditor);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-   */
-  public void addSelectionChangedListener(ISelectionChangedListener listener)
-  {
-    listenerList.add(listener);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
-   */
-  public ISelection getSelection()
-  {
-    return currentSelection;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-   */
-  public void removeSelectionChangedListener(ISelectionChangedListener listener)
-  {
-    listenerList.remove(listener);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-   */
-  public void setSelection(ISelection selection)
-  {
-    setSelection(selection, this);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
-   */
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    if (enableNotify)
-    {
-      setSelection(event.getSelection(), event.getSelectionProvider());
-    }
-  }
-
-  
-  protected List listenerList = new ArrayList();
-  protected ISelection currentSelection;
-  protected boolean enableNotify = true;
-
-  public boolean getEnableNotify()
-  {
-    return enableNotify;
-  }
-  
-  public void setSelection(ISelection selection, ISelectionProvider source)
-  {  
-    if (enableNotify)
-    {
-      currentSelection = selection;
-      enableNotify = false;
-      try
-      {
-        SelectionChangedEvent event = new SelectionChangedEvent(source, selection);
-        List copyOfListenerList = new ArrayList(listenerList);
-        for (Iterator i = copyOfListenerList.iterator(); i.hasNext(); )
-        {
-          ISelectionChangedListener listener = (ISelectionChangedListener)i.next();
-          listener.selectionChanged(event);
-        }
-      }
-      catch (Exception e)
-      {
-        e.printStackTrace();
-      }
-      finally
-      {
-        enableNotify = true;
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ContextMenuParticipant.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ContextMenuParticipant.java
deleted file mode 100644
index 9c1dfd5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ContextMenuParticipant.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.editor;
-
-import org.eclipse.jface.action.IMenuManager;
-
-public class ContextMenuParticipant
-{  
-  public boolean isApplicable(Object object, String actionId)
-  {
-    return true;
-  }
-  
-  public void contributeActions(Object object, IMenuManager menu)
-  {    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/EditorMode.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/EditorMode.java
deleted file mode 100644
index 4b897fa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/EditorMode.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.editor;
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.gef.EditPartFactory;
-import org.eclipse.jface.viewers.IContentProvider;
-
-public abstract class EditorMode implements IAdaptable
-{
-  public abstract String getId();
-  
-  public abstract String getDisplayName();
-  
-  public abstract EditPartFactory getEditPartFactory();
-  
-  // TODO (cs) this should return ITreeContentProvider
-  public abstract IContentProvider getOutlineProvider();
-  
-  public ContextMenuParticipant getContextMenuParticipant()
-  {
-    return null;
-  }
-  
-  public Object getAdapter(Class adapter)
-  {
-    return null;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/EditorModeManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/EditorModeManager.java
deleted file mode 100644
index 4a24488..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/EditorModeManager.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.editor;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-
-public class EditorModeManager implements IAdaptable
-{
-  private List modeList = new ArrayList();
-  private EditorMode currentMode = null;
-  private List listeners = new ArrayList();
-  private String extensionPointId;
-  private ProductCustomizationProvider productCustomizationProvider;
-  
-  public EditorModeManager(String extensionPointId)
-  {
-    this.extensionPointId = extensionPointId;
-  }
-  
-  public void init()
-  { 
-    readRegistry(extensionPointId);    
-    currentMode = getDefaultMode();
-  }
-  
-  protected EditorMode getDefaultMode()
-  {
-    return (EditorMode)modeList.get(0);    
-  }
-  
-  protected void addMode(EditorMode mode)
-  {
-    modeList.add(mode);
-  }
-  
-  public EditorMode getEditorMode(String editorModeId)
-  {
-    for (Iterator i = modeList.iterator(); i.hasNext(); )
-    {
-      EditorMode editorMode = (EditorMode)i.next();
-      if (editorModeId.equals(editorMode.getId()))
-      {
-        return editorMode;
-      }  
-    }  
-    return null;
-  }
-  
-  public void setCurrentMode(EditorMode mode)
-  {
-    if (modeList.contains(mode))
-    {
-      currentMode = mode;
-      List clonedList = new ArrayList();
-      clonedList.addAll(listeners);
-      for (Iterator i = clonedList.iterator(); i.hasNext(); )
-      {
-        IEditorModeListener listener = (IEditorModeListener)i.next();
-        listener.editorModeChanged(mode);
-      }  
-    }  
-  }
-  
-  public EditorMode getCurrentMode()
-  {
-    return currentMode;
-  }
-  
-  public EditorMode[] getModes()
-  {
-    EditorMode[] modes = new EditorMode[modeList.size()];
-    modeList.toArray(modes);
-    return modes;
-  }
-  
-  public void addListener(IEditorModeListener listener)
-  {
-    if (!listeners.contains(listener))
-    {  
-      listeners.add(listener);
-    }  
-  }
-  
-  public void removeListener(IEditorModeListener listener)
-  {
-    listeners.remove(listener);  
-  }  
-  
-  private void readRegistry(String id)
-  {    
-    IConfigurationElement[] elements = Platform.getExtensionRegistry().getConfigurationElementsFor(id);  
-    for (int i = 0; i < elements.length; i++)
-    {
-      IConfigurationElement element = elements[i];
-      String editorModeId = element.getAttribute("id"); //$NON-NLS-1$
-      if (editorModeId != null && 
-          productCustomizationProvider != null &&
-          !productCustomizationProvider.isEditorModeApplicable(editorModeId))
-      {
-        continue;
-      }  
-      try
-      {
-        EditorMode mode = (EditorMode)element.createExecutableExtension("class");
-        modeList.add(mode);        
-      }
-      catch (Exception e)
-      {        
-      }
-    }
-  }  
-  
-  public Object getAdapter(Class adapter)
-  {
-    return null;
-  }
-
-
-  public void setProductCustomizationProvider(ProductCustomizationProvider productCustomizationProvider)
-  {
-    this.productCustomizationProvider = productCustomizationProvider;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/IEditorModeListener.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/IEditorModeListener.java
deleted file mode 100644
index 4ebfe8b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/IEditorModeListener.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.adt.editor;
-
-public interface IEditorModeListener
-{
-  void editorModeChanged(EditorMode newEditorMode);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/Messages.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/Messages.java
deleted file mode 100644
index bacb0b9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/Messages.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.editor;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS
-{
-  private static final String BUNDLE_NAME = "org.eclipse.wst.xsd.ui.internal.adt.editor.messages"; //$NON-NLS-1$
-
-  private Messages()
-  {
-  }
-
-  static
-  {
-    // initialize resource bundle
-    NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-  }
-  public static String _UI_ACTION_SHOW_PROPERTIES;
-  public static String _UI_ACTION_SET_AS_FOCUS;
-  public static String _UI_ACTION_DELETE;
-  public static String _UI_ACTION_ADD_FIELD;
-  public static String _UI_ACTION_BROWSE;
-  public static String _UI_ACTION_NEW;
-  public static String _UI_ACTION_UPDATE_NAME;
-  public static String _UI_ACTION_UPDATE_TYPE;
-  public static String _UI_ACTION_UPDATE_ELEMENT_REFERENCE;
-  public static String _UI_LABEL_DESIGN;
-  public static String _UI_LABEL_SOURCE;
-  public static String _UI_LABEL_VIEW;
-  public static String _UI_HOVER_VIEW_MODE_DESCRIPTION;
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ProductCustomizationProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ProductCustomizationProvider.java
deleted file mode 100644
index be3d429..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/ProductCustomizationProvider.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.editor;
-
-public abstract class ProductCustomizationProvider
-{
-  public abstract boolean isEditorModeApplicable(String id);
-  public abstract String getEditorModeDisplayName(String id);
- 
-  public String getProductString(String id)
-  {
-    return "";
-  }
-  
-  public String getProductString(String id, Object[] args)
-  {
-    return "";
-  }
-  
-  public void handleAction(String actionId)
-  {    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/messages.properties b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/messages.properties
deleted file mode 100644
index 43cc209..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/editor/messages.properties
+++ /dev/null
@@ -1,24 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 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
-###############################################################################
-
-_UI_ACTION_SHOW_PROPERTIES=Show properties
-_UI_ACTION_SET_AS_FOCUS=Set As Focus
-_UI_ACTION_UPDATE_NAME=Update Name
-_UI_ACTION_UPDATE_TYPE=Update type
-_UI_ACTION_UPDATE_ELEMENT_REFERENCE=Update element reference
-_UI_ACTION_DELETE=Delete
-_UI_ACTION_BROWSE=Browse...
-_UI_LABEL_DESIGN=Design
-_UI_LABEL_SOURCE=Source
-_UI_ACTION_NEW=New...
-_UI_ACTION_ADD_FIELD=Add Field
-_UI_LABEL_VIEW=View:
-_UI_HOVER_VIEW_MODE_DESCRIPTION=Change the view mode of the editor
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IADTObject.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IADTObject.java
deleted file mode 100644
index bea4a83..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IADTObject.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.facade;
-
-public interface IADTObject
-{
-    public void registerListener(IADTObjectListener listener);
-    public void unregisterListener(IADTObjectListener listener);
-    boolean isReadOnly();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IADTObjectListener.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IADTObjectListener.java
deleted file mode 100644
index afc8efb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IADTObjectListener.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.facade;
-
-public interface IADTObjectListener
-{
-  public void propertyChanged(Object object, String property);  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IComplexType.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IComplexType.java
deleted file mode 100644
index 38387ac..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IComplexType.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.facade;
-
-
-
-public interface IComplexType extends IType, IStructure
-{
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IField.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IField.java
deleted file mode 100644
index 59a6280..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IField.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.facade;
-
-import org.eclipse.gef.commands.Command;
-
-public interface IField extends IADTObject
-{
-  String getKind();
-  String getName();
-  String getTypeName();
-  String getTypeNameQualifier();
-  IModel getModel();
-  IType getType();
-  IComplexType getContainerType();
-  int getMinOccurs();
-  int getMaxOccurs();
-  boolean isGlobal();
-  boolean isReference();
-  
-  Command getUpdateMinOccursCommand(int minOccurs);
-  Command getUpdateMaxOccursCommand(int maxOccurs);
-  Command getUpdateTypeNameCommand(String typeName, String quailifier);
-  Command getUpdateNameCommand(String name); 
-  Command getDeleteCommand();  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IModel.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IModel.java
deleted file mode 100644
index 4e42451..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IModel.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.facade;
-
-import java.util.List;
-
-public interface IModel extends IADTObject
-{
-  List getTypes();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IStructure.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IStructure.java
deleted file mode 100644
index 0c0d16e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IStructure.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.facade;
-
-import java.util.List;
-import org.eclipse.gef.commands.Command;
-
-public interface IStructure extends IADTObject
-{
-  String getName();
-  List getFields();
-  IModel getModel();
-  Command getAddNewFieldCommand(String fieldKind);
-  Command getDeleteCommand();  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IType.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IType.java
deleted file mode 100644
index cdc553a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/facade/IType.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.facade;
-
-import org.eclipse.gef.commands.Command;
-
-public interface IType extends IADTObject
-{ 
-  IType getSuperType();
-  String getName();
-  String getQualifier();
-  boolean isComplexType();
-  
-  Command getUpdateNameCommand(String newName);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTContentOutlinePage.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTContentOutlinePage.java
deleted file mode 100644
index f0b86ef..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTContentOutlinePage.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.outline;
-
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.swt.events.KeyAdapter;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.part.MultiPageSelectionProvider;
-import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
-import org.eclipse.wst.xsd.ui.internal.adt.design.DesignViewContextMenuProvider;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IModelProxy;
-import org.eclipse.wst.xsd.ui.internal.adt.editor.ADTMultiPageEditor;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IModel;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-
-public class ADTContentOutlinePage extends ContentOutlinePage
-{
-  protected ADTMultiPageEditor editor;
-  protected int level = 0;
-  protected Object model;
-  protected ITreeContentProvider contentProvider;
-  protected ILabelProvider labelProvider;
-  protected MultiPageSelectionProvider selectionManager;
-  protected SelectionManagerSelectionChangeListener selectionManagerSelectionChangeListener = new SelectionManagerSelectionChangeListener();
-//  protected TreeSelectionChangeListener treeSelectionChangeListener = new TreeSelectionChangeListener();
-
-  /**
-   * 
-   */
-  public ADTContentOutlinePage(ADTMultiPageEditor editor)
-  {
-    super();
-    this.editor = editor;
-  }
-
-  public void setModel(Object newModel)
-  {
-    model = newModel;
-  }
-
-  public void setContentProvider(ITreeContentProvider contentProvider)
-  {
-    this.contentProvider = contentProvider;
-  }
-
-  public void setLabelProvider(ILabelProvider labelProvider)
-  {
-    this.labelProvider = labelProvider;
-  }
-
-  // expose
-  public TreeViewer getTreeViewer()
-  {
-    return super.getTreeViewer();
-  }
-
-  public void createControl(Composite parent)
-  {
-    super.createControl(parent);
-    getTreeViewer().setContentProvider(contentProvider);
-    getTreeViewer().setLabelProvider(labelProvider);
-    getTreeViewer().setInput(model);
-    getTreeViewer().addSelectionChangedListener(this);
-    MenuManager menuManager = new MenuManager("#popup");//$NON-NLS-1$
-    menuManager.setRemoveAllWhenShown(true);
-    Menu menu = menuManager.createContextMenu(getTreeViewer().getControl());
-    getTreeViewer().getControl().setMenu(menu);
-    setSelectionManager(editor.getSelectionManager());
-    
-    // Create menu...for now reuse graph's.  Note edit part viewer = null
-    DesignViewContextMenuProvider menuProvider = new DesignViewContextMenuProvider(editor, null, editor.getSelectionManager());
-    menuManager.addMenuListener(menuProvider);
-    getSite().registerContextMenu("org.eclipse.wst.xsd.ui.popup.outline", menuManager, editor.getSelectionManager()); //$NON-NLS-1$
-
-    // enable popupMenus extension
-    // getSite().registerContextMenu("org.eclipse.wst.xsdeditor.ui.popup.outline",
-    // menuManager, xsdEditor.getSelectionManager());
-
-    // cs... why are we doing this from the outline view?
-    //
-    // xsdTextEditor.getXSDEditor().getSelectionManager().setSelection(new
-    // StructuredSelection(xsdTextEditor.getXSDSchema()));
-    // drill down from outline view
-    getTreeViewer().getControl().addMouseListener(new MouseAdapter()
-    {
-      public void mouseDoubleClick(MouseEvent e)
-      {
-        ISelection iSelection = getTreeViewer().getSelection();
-        if (iSelection instanceof StructuredSelection)
-        {
-          StructuredSelection selection = (StructuredSelection) iSelection;
-          Object obj = selection.getFirstElement();
-          if (obj instanceof XSDConcreteComponent)
-          {
-            XSDConcreteComponent comp = (XSDConcreteComponent) obj;
-            if (comp.getContainer() instanceof XSDSchema)
-            {
-              // getXSDEditor().getGraphViewer().setInput(obj);
-            }
-          }
-        }
-
-      }
-    });
-  }
-
-  class XSDKeyListener extends KeyAdapter
-  {
-  }
-
-  public void dispose()
-  {
-    contentProvider.dispose();
-    super.dispose();
-  }
-
-  public void setExpandToLevel(int i)
-  {
-    level = i;
-  }
-
-  public void setInput(Object value)
-  {
-    getTreeViewer().setInput(value);
-    getTreeViewer().expandToLevel(level);
-  }
-
-  // public ISelection getSelection()
-  // {
-  // if (getTreeViewer() == null)
-  // return StructuredSelection.EMPTY;
-  // return getTreeViewer().getSelection();
-  // }
-  public void setSelectionManager(MultiPageSelectionProvider newSelectionManager)
-  {
-//    TreeViewer treeViewer = getTreeViewer();
-    // disconnect from old one
-    if (selectionManager != null)
-    {
-      selectionManager.removeSelectionChangedListener(selectionManagerSelectionChangeListener);
-//      treeViewer.removeSelectionChangedListener(treeSelectionChangeListener);
-    }
-    selectionManager = newSelectionManager;
-    // connect to new one
-    if (selectionManager != null)
-    {
-      selectionManager.addSelectionChangedListener(selectionManagerSelectionChangeListener);
-//      treeViewer.addSelectionChangedListener(treeSelectionChangeListener);
-    }
-  }
-
-  class SelectionManagerSelectionChangeListener implements ISelectionChangedListener
-  {
-    public void selectionChanged(SelectionChangedEvent event)
-    {
-      if (event.getSelectionProvider() != ADTContentOutlinePage.this)  //getTreeViewer())
-      {
-        StructuredSelection selection = (StructuredSelection)event.getSelection();
-        StructuredSelection currentSelection = (StructuredSelection) getTreeViewer().getSelection();
-        
-        // TODO: Hack to prevent losing a selection when the schema is selected in the
-        // source.  Fix is to prevent the source from firing off selection changes when
-        // the selection source is not the source view.
-        if (selection.getFirstElement() instanceof IModel)
-        {
-          if (!(currentSelection.getFirstElement() instanceof IModelProxy))
-          {
-            getTreeViewer().setSelection(event.getSelection(), true);            
-          }
-        }
-        else
-        {
-          getTreeViewer().setSelection(event.getSelection(), true);
-        }
-      }
-    }
-  }
-
-//  class TreeSelectionChangeListener implements ISelectionChangedListener
-//  {
-//    public void selectionChanged(SelectionChangedEvent event)
-//    {
-//      if (selectionManager != null)
-//      {
-//        ISelection selection = event.getSelection();
-//        if (selection instanceof IStructuredSelection)
-//        {
-//          IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-//          Object o = structuredSelection.getFirstElement();
-//          if (o != null)
-//          {
-//            selectionManager.setSelection(structuredSelection);
-//          }
-//        }
-//      }
-//    }
-//  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTContentOutlineProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTContentOutlineProvider.java
deleted file mode 100644
index 7f8697f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTContentOutlineProvider.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.outline;
-
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObject;
-import org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener;
-
-public class ADTContentOutlineProvider implements ITreeContentProvider, IADTObjectListener
-{
-  protected Viewer viewer = null;
-  protected Object oldInput, newInput;
-
-  public ADTContentOutlineProvider()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
-   */
-  public Object[] getChildren(Object parentElement)
-  {
-    if (parentElement instanceof ITreeElement)
-    {
-      Object[] children = ((ITreeElement) parentElement).getChildren();
-      if (children != null)
-      {
-        int length = children.length;
-        for (int i = 0; i < length; i++)
-        {
-          Object child = children[i];
-          if (child instanceof IADTObject)
-          {
-            ((IADTObject) child).registerListener(this);
-          }
-        }
-      }
-      return children;
-    }
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
-   */
-  public Object getParent(Object element)
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
-   */
-  public boolean hasChildren(Object element)
-  {
-    if (element instanceof ITreeElement)
-    {
-      return ((ITreeElement) element).hasChildren();
-    }
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-   */
-  public Object[] getElements(Object inputElement)
-  {
-    return getChildren(inputElement);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-   */
-  public void dispose()
-  {
-    Object input = viewer.getInput();
-    if (input instanceof IADTObject)
-    {
-      removeListener((IADTObject) input);
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-   */
-  public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-  {
-    this.viewer = viewer;
-    this.oldInput = oldInput;
-    this.newInput = newInput;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xsd.ui.internal.adt.facade.IADTObjectListener#propertyChanged(java.lang.Object, java.lang.String)
-   */
-  public void propertyChanged(Object object, String property)
-  {
-    if (viewer instanceof TreeViewer)
-    {
-      TreeViewer treeViewer = (TreeViewer) viewer;
-      treeViewer.refresh(object);
-      treeViewer.reveal(object);
-    }
-  }
-
-  /**
-   * @param model
-   */
-  private void removeListener(IADTObject model)
-  {
-    model.unregisterListener(this);
-    Object[] children = getChildren(model);
-    if (children != null)
-    {
-      int length = children.length;
-      for (int i = 0; i < length; i++)
-      {
-        Object child = children[i];
-        if (child instanceof IADTObject)
-        {
-          removeListener((IADTObject) child);
-        }
-      }
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTLabelProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTLabelProvider.java
deleted file mode 100644
index 14a6d4d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ADTLabelProvider.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.outline;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.swt.graphics.Image;
-
-public class ADTLabelProvider implements ILabelProvider
-{
-
-  public ADTLabelProvider()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-   */
-  public Image getImage(Object element)
-  {
-    if (element instanceof ITreeElement)
-    {
-      return ((ITreeElement)element).getImage();
-    }
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-   */
-  public String getText(Object element)
-  {
-    if (element instanceof ITreeElement)
-    {
-      return ((ITreeElement)element).getText();
-    }
-    return ""; //$NON-NLS-1$
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
-   */
-  public void addListener(ILabelProviderListener listener)
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
-   */
-  public void dispose()
-  {
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
-   */
-  public boolean isLabelProperty(Object element, String property)
-  {
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
-   */
-  public void removeListener(ILabelProviderListener listener)
-  {
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ITreeElement.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ITreeElement.java
deleted file mode 100644
index a660d9a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/outline/ITreeElement.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.outline;
-
-import org.eclipse.swt.graphics.Image;
-
-public interface ITreeElement
-{
-  public final static ITreeElement[] EMPTY_LIST = {};
-  ITreeElement[] getChildren();
-  ITreeElement getParent();
-  boolean hasChildren();
-  String getText();
-  Image getImage();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/properties/ADTTabbedPropertySheetPage.java b/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/properties/ADTTabbedPropertySheetPage.java
deleted file mode 100644
index 9b5ec3f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-adt/org/eclipse/wst/xsd/ui/internal/adt/properties/ADTTabbedPropertySheetPage.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.adt.properties;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-
-
-public class ADTTabbedPropertySheetPage extends TabbedPropertySheetPage
-{
-  public ADTTabbedPropertySheetPage(ITabbedPropertySheetPageContributor tabbedPropertySheetPageContributor)
-  {
-    super(tabbedPropertySheetPageContributor);
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.ui.ISelectionListener#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public void selectionChanged(IWorkbenchPart part, ISelection selection) {
-
-//      Object selected = ((StructuredSelection)selection).getFirstElement();
-//      if (selected instanceof EditPart)
-//      {
-//        Object model = ((EditPart)selected).getModel();
-//        selection = new StructuredSelection(model);
-//      }
-      super.selectionChanged(part, selection);
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAnyAttributeAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAnyAttributeAction.java
deleted file mode 100644
index 07785fc..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAnyAttributeAction.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDAnyAttributeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-
-public class AddXSDAnyAttributeAction extends XSDBaseAction
-{
-  public static String ID = "org.eclipse.wst.xsd.ui.AddXSDAnyAttributeAction"; //$NON-NLS-1$
-  protected XSDComplexTypeDefinition xsdComplexTypeDefinition;
-  
-  public AddXSDAnyAttributeAction(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_ADD_ANY_ATTRIBUTE);
-    setId(ID);
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      selection = ((XSDBaseAdapter) selection).getTarget();
-    }
-    AddXSDAnyAttributeCommand command = null;
-    if (selection instanceof XSDComplexTypeDefinition)
-    {
-      command = new AddXSDAnyAttributeCommand(Messages._UI_ACTION_ADD_ANY_ATTRIBUTE, (XSDComplexTypeDefinition) selection);
-      getCommandStack().execute(command);
-    }
-    else if (selection instanceof XSDAttributeGroupDefinition)
-    {
-      command = new AddXSDAnyAttributeCommand(Messages._UI_ACTION_ADD_ANY_ATTRIBUTE, (XSDAttributeGroupDefinition)selection);
-      getCommandStack().execute(command);
-    }
-    
-    if (command != null)
-    {
-      addedComponent = command.getAddedComponent();
-      Adapter adapter = XSDAdapterFactory.getInstance().adapt(addedComponent);
-      selectAddedComponent(adapter);
-    }
-  }
-
-
-  protected boolean calculateEnabled()
-  {
-    boolean rc = super.calculateEnabled();
-    if (rc)
-    {
-      Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-      if (selection instanceof XSDBaseAdapter)
-      {
-        selection = ((XSDBaseAdapter) selection).getTarget();
-      }
-      if (selection instanceof XSDComplexTypeDefinition)
-      {
-        return ((XSDComplexTypeDefinition)selection).getAttributeWildcardContent() == null;
-      }
-      else if (selection instanceof XSDAttributeGroupDefinition)
-      {
-        return ((XSDAttributeGroupDefinition)selection).getAttributeWildcardContent() == null;
-      }
-      
-    }
-    return rc;
-  }
-
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAnyElementAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAnyElementAction.java
deleted file mode 100644
index 1f2fb3e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAnyElementAction.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.common.actions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDAnyElementCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDModelGroup;
-
-public class AddXSDAnyElementAction extends XSDBaseAction
-{
-  public static String ID = "org.eclipse.wst.xsd.ui.AddXSDAnyElementAction"; //$NON-NLS-1$
-
-  public AddXSDAnyElementAction(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_ADD_ANY_ELEMENT);
-    setId(ID);
-  }
-
-  public void run()
-  {
-    XSDModelGroup modelGroup = getModelGroup();
-    if (modelGroup != null)
-    {
-      AddXSDAnyElementCommand command = new AddXSDAnyElementCommand(getText(), modelGroup);
-      getCommandStack().execute(command);
-    }
-  }
-
-  private XSDModelGroup getModelGroup()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      selection = ((XSDBaseAdapter) selection).getTarget();
-    }
-    if (selection instanceof XSDModelGroup)
-    {
-      return (XSDModelGroup) selection;
-    }
-    return null;
-  }
-
-  protected boolean calculateEnabled()
-  {
-    return super.calculateEnabled();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeDeclarationAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeDeclarationAction.java
deleted file mode 100644
index 2ac9607..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeDeclarationAction.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDAttributeDeclarationCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddXSDAttributeDeclarationAction extends XSDBaseAction
-{
-  public static String ID = "AddXSDAttributeAction"; //$NON-NLS-1$
-  public static String REF_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDAttributeReferenceAction"; //$NON-NLS-1$
-  boolean isReference = false;
-  
-  public AddXSDAttributeDeclarationAction(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_ADD_ATTRIBUTE);
-    setId(ID);
-    isReference = false;
-  }
-  
-  public AddXSDAttributeDeclarationAction(IWorkbenchPart part, String id, String label, boolean isReference)
-  {
-    super(part);
-    setText(label);
-    setId(id);
-    this.isReference = isReference;
-    doDirectEdit = !isReference;
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      selection = ((XSDBaseAdapter) selection).getTarget();
-    }
-    AddXSDAttributeDeclarationCommand command = null;
-    if (selection instanceof XSDComplexTypeDefinition)
-    {
-      command = new AddXSDAttributeDeclarationCommand(Messages._UI_ACTION_ADD_ATTRIBUTE, (XSDComplexTypeDefinition) selection);
-      command.setReference(isReference);
-      getCommandStack().execute(command);
-    }
-    else if (selection instanceof XSDAttributeUse)
-    {
-      XSDAttributeUse xsdAttributeUse = (XSDAttributeUse) selection;
-      XSDConcreteComponent parent = null;
-      XSDComplexTypeDefinition ct = null;
-      for (parent = xsdAttributeUse.getContainer(); parent != null;)
-      {
-        if (parent instanceof XSDComplexTypeDefinition)
-        {
-          ct = (XSDComplexTypeDefinition) parent;
-          break;
-        }
-        parent = parent.getContainer();
-      }
-      if (ct != null)
-      {
-        command = new AddXSDAttributeDeclarationCommand(Messages._UI_ACTION_ADD_ATTRIBUTE, ct);
-        command.setReference(isReference);
-        getCommandStack().execute(command);
-      }
-    }
-    else if (selection instanceof XSDAttributeGroupDefinition)
-    {
-      command = new AddXSDAttributeDeclarationCommand(Messages._UI_ACTION_ADD_ATTRIBUTE, (XSDAttributeGroupDefinition)selection);
-      command.setReference(isReference);
-      getCommandStack().execute(command);
-    }
-    else if (selection instanceof XSDSchema)
-    {
-      command = new AddXSDAttributeDeclarationCommand(Messages._UI_ACTION_ADD_ATTRIBUTE, (XSDSchema)selection);
-      getCommandStack().execute(command);
-    }
-    
-    if (command != null)
-    {
-      addedComponent = command.getAddedComponent();
-      Adapter adapter = XSDAdapterFactory.getInstance().adapt(addedComponent);
-      selectAddedComponent(adapter);
-    }
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeGroupDefinitionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeGroupDefinitionAction.java
deleted file mode 100644
index f30a3e7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeGroupDefinitionAction.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDAttributeGroupDefinitionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddXSDAttributeGroupDefinitionAction extends XSDBaseAction
-{
-  public static String ID = "AddXSDAttributeGroupDefinitionAction"; //$NON-NLS-1$
-  public static String REF_ID = "AddXSDAttributeGroupDefinitionRefAction"; //$NON-NLS-1$
-
-  public AddXSDAttributeGroupDefinitionAction(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_ADD_ATTRIBUTE_GROUP);
-    setId(ID);
-  }
-  
-  public AddXSDAttributeGroupDefinitionAction(IWorkbenchPart part, String id)
-  {
-    super(part);
-    if (id.equals(REF_ID))
-    {
-      setText(Messages._UI_ACTION_ADD_ATTRIBUTE_GROUP_REF);
-    }
-    else
-    {
-      setText(Messages._UI_ACTION_ADD_ATTRIBUTE_GROUP_DEFINITION);
-    }   
-    setId(id);
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      selection = ((XSDBaseAdapter) selection).getTarget();
-    }
-
-    AddXSDAttributeGroupDefinitionCommand command = null;
-    if (selection instanceof XSDComplexTypeDefinition)
-    {
-      command = new AddXSDAttributeGroupDefinitionCommand(Messages._UI_ACTION_ADD_ATTRIBUTE_GROUP_REF, (XSDComplexTypeDefinition) selection);
-      getCommandStack().execute(command);
-    }
-    else if (selection instanceof XSDSchema)
-    {
-      command = new AddXSDAttributeGroupDefinitionCommand(Messages._UI_ACTION_ADD_ATTRIBUTE_GROUP_DEFINITION, (XSDSchema) selection);
-      getCommandStack().execute(command);
-    }
-
-    if (command != null)
-    {
-      addedComponent = command.getAddedComponent();
-      Adapter adapter = XSDAdapterFactory.getInstance().adapt(addedComponent);
-      selectAddedComponent(adapter);
-    }
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDComplexTypeDefinitionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDComplexTypeDefinitionAction.java
deleted file mode 100644
index c55f4ef..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDComplexTypeDefinitionAction.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDComplexTypeDefinitionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddXSDComplexTypeDefinitionAction extends XSDBaseAction
-{
-  public static final String ID = "org.eclipse.wst.xsd.ui.internal.editor.AddXSDComplexTypeDefinitionAction"; //$NON-NLS-1$
-
-  public AddXSDComplexTypeDefinitionAction(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_ADD_COMPLEX_TYPE);
-    setId(ID);
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      selection = ((XSDBaseAdapter) selection).getTarget();
-    }
-
-    if (selection instanceof XSDSchema)
-    {
-      AddXSDComplexTypeDefinitionCommand command = new AddXSDComplexTypeDefinitionCommand(Messages._UI_ACTION_ADD_COMPLEX_TYPE, (XSDSchema) selection);
-      getCommandStack().execute(command);
-      
-      addedComponent = command.getAddedComponent();
-      Adapter adapter = XSDAdapterFactory.getInstance().adapt(addedComponent);
-      selectAddedComponent(adapter);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDElementAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDElementAction.java
deleted file mode 100644
index 5930728..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDElementAction.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDElementCommand;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDSchema;
-
-//revisit this and see if we can reuse AddFieldAction??
-
-public class AddXSDElementAction extends XSDBaseAction
-{
-  public static String ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction"; //$NON-NLS-1$
-  public static String REF_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementReferenceAction"; //$NON-NLS-1$
-  boolean isReference;
-  
-  public AddXSDElementAction(IWorkbenchPart part, String id, String label, boolean isReference)
-  {
-    super(part);
-    setText(label);
-    setId(id);
-    this.isReference = isReference;
-    doDirectEdit = !isReference;
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      selection = ((XSDBaseAdapter) selection).getTarget();
-    }
-    AddXSDElementCommand command = null;
-    if (selection instanceof XSDComplexTypeDefinition)
-    {
-      command = new AddXSDElementCommand(getText(), (XSDComplexTypeDefinition) selection);
-      command.setReference(isReference);
-      getCommandStack().execute(command);
-    }
-    else if (selection instanceof XSDModelGroupDefinition)
-    {
-      command = new AddXSDElementCommand(getText(), (XSDModelGroupDefinition) selection);
-      command.setReference(isReference);
-      getCommandStack().execute(command);
-    }
-    else if (selection instanceof XSDSchema)
-    {
-      command = new AddXSDElementCommand(getText(), (XSDSchema) selection);
-      getCommandStack().execute(command);
-    }
-    else if (selection instanceof XSDModelGroup)
-    {
-      XSDModelGroup modelGroup = (XSDModelGroup) selection;
-      XSDConcreteComponent component = modelGroup.getContainer();
-      XSDComplexTypeDefinition ct = null;
-      while (component != null)
-      {
-        if (component instanceof XSDComplexTypeDefinition)
-        {
-          ct = (XSDComplexTypeDefinition) component;
-          break;
-        }
-        component = component.getContainer();
-      }
-
-      if (ct != null)
-      {
-        command = new AddXSDElementCommand(getText(), (XSDModelGroup) selection, ct);
-      }
-      else
-      {
-        command = new AddXSDElementCommand(getText(), (XSDModelGroup) selection);
-      }
-      command.setReference(isReference);
-      getCommandStack().execute(command);
-    }
-    else if (selection instanceof XSDElementDeclaration || selection instanceof XSDAttributeUse)
-    {
-      XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent) selection;
-      XSDConcreteComponent parent = null;
-      XSDComplexTypeDefinition ct = null;
-      for (parent = xsdConcreteComponent.getContainer(); parent != null; )
-      {
-        if (parent instanceof XSDComplexTypeDefinition)
-        {
-          ct = (XSDComplexTypeDefinition)parent;
-          break;
-        }
-        parent = parent.getContainer();
-      }
-      if (ct != null)
-      {
-        command = new AddXSDElementCommand(getText(), ct);
-        command.setReference(isReference);
-        getCommandStack().execute(command);
-      }
-    }
-    
-    if (command != null)
-    {
-      addedComponent = command.getAddedComponent();
-      Adapter adapter = XSDAdapterFactory.getInstance().adapt(addedComponent);
-      selectAddedComponent(adapter);
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupAction.java
deleted file mode 100644
index 826334e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupAction.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDModelGroupCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-
-public class AddXSDModelGroupAction extends XSDBaseAction
-{
-  public static String SEQUENCE_ID = "AddXSDSequenceModelGroupAction"; //$NON-NLS-1$
-  public static String CHOICE_ID = "AddXSDChoiceModelGroupAction"; //$NON-NLS-1$
-  public static String ALL_ID = "AddXSDAllModelGroupAction"; //$NON-NLS-1$
-  XSDCompositor xsdCompositor;
-
-  public AddXSDModelGroupAction(IWorkbenchPart part, XSDCompositor compositor, String ID)
-  {
-    super(part);
-    setText(getLabel(compositor));
-    setId(ID);
-    this.xsdCompositor = compositor;
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-    if (selection instanceof XSDBaseAdapter)
-    {
-      XSDConcreteComponent xsdComponent = (XSDConcreteComponent) ((XSDBaseAdapter) selection).getTarget();
-      AddXSDModelGroupCommand command = null;
-      if (xsdComponent instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) xsdComponent;
-
-        command = new AddXSDModelGroupCommand(getLabel(xsdCompositor), xsdElementDeclaration, xsdCompositor);
-        getCommandStack().execute(command);
-      }
-      else if (xsdComponent instanceof XSDModelGroup)
-      {
-        XSDModelGroup xsdModelGroup = (XSDModelGroup) xsdComponent;
-
-        command = new AddXSDModelGroupCommand(getLabel(xsdCompositor), xsdModelGroup, xsdCompositor);
-        getCommandStack().execute(command);
-      }
-      else if (xsdComponent instanceof XSDComplexTypeDefinition)
-      {
-        command = new AddXSDModelGroupCommand(getLabel(xsdCompositor), xsdComponent, xsdCompositor);
-        getCommandStack().execute(command);
-      }
-     
-      if (command != null)
-      {
-        Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent());
-        if (adapter != null)
-          provider.setSelection(new StructuredSelection(adapter));
-      }
-
-    }
-  }
-
-  private String getLabel(XSDCompositor compositor)
-  {
-    String result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SEQUENCE"); //$NON-NLS-1$
-    if (compositor != null)
-    {
-      if (compositor == XSDCompositor.CHOICE_LITERAL)
-      {
-        result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CHOICE"); //$NON-NLS-1$
-      }
-      else if (compositor == XSDCompositor.ALL_LITERAL)
-      {
-        result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ALL");//$NON-NLS-1$
-      }
-    }
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupDefinitionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupDefinitionAction.java
deleted file mode 100644
index d49a367..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupDefinitionAction.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDModelGroupDefinitionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-public class AddXSDModelGroupDefinitionAction extends XSDBaseAction
-{
-  public static final String MODELGROUPDEFINITION_ID = "AddXSDModelGroupDefinitionAction"; //$NON-NLS-1$
-  public static final String MODELGROUPDEFINITIONREF_ID = "AddXSDModelGroupDefinitionRefAction"; //$NON-NLS-1$
-  boolean isReference;
-
-  public AddXSDModelGroupDefinitionAction(IWorkbenchPart part, boolean isReference)
-  {
-    super(part);
-    this.isReference = isReference;
-    if (isReference)
-    {
-      setText(Messages._UI_ACTION_ADD_GROUP_REF);
-      setId(MODELGROUPDEFINITION_ID);
-    }
-    else
-    {
-      setText(Messages._UI_ACTION_ADD_GROUP);
-      setId(MODELGROUPDEFINITIONREF_ID);
-    }
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-    XSDConcreteComponent xsdConcreteComponent = null;
-    if (selection instanceof XSDBaseAdapter)
-    {
-      xsdConcreteComponent = (XSDConcreteComponent) ((XSDBaseAdapter) selection).getTarget();
-    }
-    if (xsdConcreteComponent != null)
-    {
-      AddXSDModelGroupDefinitionCommand command = new AddXSDModelGroupDefinitionCommand(getText(), xsdConcreteComponent, isReference);
-      getCommandStack().execute(command);
-
-      addedComponent = command.getAddedComponent();
-      Adapter adapter = XSDAdapterFactory.getInstance().adapt(addedComponent);
-      selectAddedComponent(adapter);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSchemaDirectiveAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSchemaDirectiveAction.java
deleted file mode 100644
index a9d833a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSchemaDirectiveAction.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDImportCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDIncludeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDRedefineCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.BaseCommand;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddXSDSchemaDirectiveAction extends XSDBaseAction
-{
-  public static String INCLUDE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDIncludeAction"; //$NON-NLS-1$
-  public static String IMPORT_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDImportAction"; //$NON-NLS-1$
-  public static String REDEFINE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDRedefineAction"; //$NON-NLS-1$
-  String label;
-  
-  public AddXSDSchemaDirectiveAction(IWorkbenchPart part, String ID, String label)
-  {
-    super(part);
-    setText(label);
-    setId(ID);
-    this.label = label;
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      selection = ((XSDBaseAdapter) selection).getTarget();
-    }
-
-    BaseCommand command = null;
-    if (selection instanceof XSDSchema)
-    {
-      if (INCLUDE_ID.equals(getId()))
-      {
-        command = new AddXSDIncludeCommand(label, (XSDSchema) selection);
-      }
-      else if (IMPORT_ID.equals(getId()))
-      {
-        command = new AddXSDImportCommand(label, (XSDSchema) selection);
-      }
-      else if (REDEFINE_ID.equals(getId()))
-      {
-        command = new AddXSDRedefineCommand(label, (XSDSchema) selection);
-      }
-      getCommandStack().execute(command);
-    }
-
-    if (command != null)
-    {
-      Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent());
-      if (adapter != null)
-        provider.setSelection(new StructuredSelection(adapter));
-    }
-
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSimpleTypeDefinitionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSimpleTypeDefinitionAction.java
deleted file mode 100644
index bc7cd73..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSimpleTypeDefinitionAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDSimpleTypeDefinitionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddXSDSimpleTypeDefinitionAction extends XSDBaseAction
-{
-  public static final String ID = "org.eclipse.wst.xsd.ui.internal.editor.AddXSDSimpleTypeDefinitionAction"; //$NON-NLS-1$
-
-  public AddXSDSimpleTypeDefinitionAction(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_ADD_SIMPLE_TYPE);
-    setId(ID);
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      selection = ((XSDBaseAdapter) selection).getTarget();
-    }
-
-    if (selection instanceof XSDSchema)
-    {
-      AddXSDSimpleTypeDefinitionCommand command = new AddXSDSimpleTypeDefinitionCommand(Messages._UI_ACTION_ADD_SIMPLE_TYPE, (XSDSchema) selection);
-      getCommandStack().execute(command);
-      
-      addedComponent = command.getAddedComponent();
-      Adapter adapter = XSDAdapterFactory.getInstance().adapt(addedComponent);
-      selectAddedComponent(adapter);
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/DeleteXSDConcreteComponentAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/DeleteXSDConcreteComponentAction.java
deleted file mode 100644
index ef66379..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/DeleteXSDConcreteComponentAction.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import java.util.Iterator;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-public class DeleteXSDConcreteComponentAction extends XSDBaseAction
-{
-  public static final String DELETE_XSD_COMPONENT_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction";   //$NON-NLS-1$
-
-  public DeleteXSDConcreteComponentAction(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_DELETE);
-    setId(DELETE_XSD_COMPONENT_ID);
-    setImageDescriptor(XSDEditorPlugin.getImageDescriptor("icons/delete_obj.gif") ); //$NON-NLS-1$
-  }
-
-  public void run()
-  {
-    for (Iterator i = ((IStructuredSelection) getSelection()).iterator(); i.hasNext();)
-    {
-      Object selection = i.next();
-
-      if (selection instanceof XSDBaseAdapter)
-      {
-        selection = ((XSDBaseAdapter) selection).getTarget();
-      }
-
-      if (selection instanceof XSDConcreteComponent)
-      {
-        DeleteCommand command = new DeleteCommand(getText(), (XSDConcreteComponent) selection);
-        getCommandStack().execute(command);
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/OpenInNewEditor.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/OpenInNewEditor.java
deleted file mode 100644
index 97104b6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/OpenInNewEditor.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.common.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.part.FileEditorInput;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDSchemaDirectiveAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.InternalXSDMultiPageEditor;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDFileEditorInput;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.impl.XSDImportImpl;
-
-public class OpenInNewEditor extends BaseSelectionAction
-{
-  public static final String ID = "OpenInNewEditor"; //$NON-NLS-1$
-
-  public OpenInNewEditor(IWorkbenchPart part)
-  {
-    super(part);
-    setText(Messages._UI_ACTION_OPEN_IN_NEW_EDITOR); //$NON-NLS-1$
-    setId(ID);
-  }
-
-  protected boolean calculateEnabled()
-  {
-    return true;
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      XSDBaseAdapter xsdAdapter = (XSDBaseAdapter) selection;
-      XSDConcreteComponent fComponent = (XSDConcreteComponent) xsdAdapter.getTarget();
-      XSDSchema schema = fComponent.getSchema();
-      
-      if (fComponent.getSchema() != null)
-      {
-        String schemaLocation = URIHelper.removePlatformResourceProtocol(fComponent.getSchema().getSchemaLocation());
-        IPath schemaPath = new Path(schemaLocation);
-        IFile schemaFile = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath);
-        
-        // Special case any imports/includes
-        if (selection instanceof XSDSchemaDirectiveAdapter)
-        {
-          XSDSchemaDirective dir = (XSDSchemaDirective)((XSDSchemaDirectiveAdapter)selection).getTarget();
-          // force load of imported schema
-          if (dir instanceof XSDImportImpl)
-          {
-            ((XSDImportImpl)dir).importSchema();
-          }
-          if (dir.getResolvedSchema() != null)
-          {
-            schemaLocation = URIHelper.removePlatformResourceProtocol(dir.getResolvedSchema().getSchemaLocation());
-            schemaPath = new Path(schemaLocation);
-            schemaFile = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath);
-            schema = dir.getResolvedSchema(); 
-            fComponent = dir.getResolvedSchema();
-          }
-        }
-
-        if (schemaFile != null && schemaFile.exists())
-        {
-          IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-          if (workbenchWindow != null)
-          {
-            IWorkbenchPage page = workbenchWindow.getActivePage();
-            try
-            {
-              // Get the current editor's schema
-              XSDSchema xsdSchema = (XSDSchema)getWorkbenchPart().getAdapter(XSDSchema.class);
-              
-              IEditorPart editorPart = null;
-              // This first check is to ensure that the schema is actually
-              // different than the current one we are editing against in the editor, and that we
-              // are in the same resource file....hence multiple schemas in the same file.
-              if (xsdSchema != null && fComponent.getRootContainer().eResource() == xsdSchema.eResource())
-              {
-                XSDFileEditorInput xsdFileEditorInput = new XSDFileEditorInput(schemaFile, fComponent.getSchema());
-                IEditorPart activeEditor = page.getActiveEditor();
-                String editorName = null; 
-                
-                // will use FileEditorInput's name if still null
-                // Try to use the same editor name as the current one
-                if (activeEditor != null)
-                {
-                  IEditorInput input = activeEditor.getEditorInput();
-                  if (input != null)
-                  {
-                    editorName = input.getName();
-                    xsdFileEditorInput.setEditorName(editorName);
-                  }
-                }
-                
-                IEditorReference [] refs = page.getEditorReferences();
-                int length = refs.length;
-                for (int i = 0; i < length; i++)
-                {
-                  IEditorInput input = refs[i].getEditorInput();
-                  if (input instanceof XSDFileEditorInput)
-                  {
-                    IFile aFile = ((XSDFileEditorInput)input).getFile();
-                    if (aFile.getFullPath().equals(schemaFile.getFullPath()))
-                    {
-                      if (((XSDFileEditorInput)input).getSchema() == schema)
-                      {
-                        editorPart = refs[i].getEditor(true);
-                        page.activate(refs[i].getPart(true));
-                        break;
-                      }
-                    }
-                  }
-                }
-
-                if (editorPart == null)
-                {
-                  editorPart = page.openEditor(xsdFileEditorInput, XSDEditorPlugin.EDITOR_ID, true, 0);
-                }
-              }
-              else
-              {
-                editorPart = page.openEditor(new FileEditorInput(schemaFile), XSDEditorPlugin.EDITOR_ID);
-              }
-
-              if (editorPart instanceof InternalXSDMultiPageEditor)
-              {
-                ((InternalXSDMultiPageEditor) editorPart).openOnGlobalReference(fComponent);
-              }
-            }
-            catch (Exception e)
-            {
-            }
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetMultiplicityAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetMultiplicityAction.java
deleted file mode 100644
index a33996a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetMultiplicityAction.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.SetMultiplicityCommand;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-
-public class SetMultiplicityAction extends XSDBaseAction
-{
-  public static String REQUIRED_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicity.REQUIRED_ID"; //$NON-NLS-1$
-  public static String ZERO_OR_ONE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicity.ZERO_OR_ONE_ID"; //$NON-NLS-1$
-  public static String ZERO_OR_MORE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicity.ZERO_OR_MORE_ID"; //$NON-NLS-1$
-  public static String ONE_OR_MORE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicity.ONE_OR_MORE_ID"; //$NON-NLS-1$
-  
-  SetMultiplicityCommand command;
-  
-  public SetMultiplicityAction(IWorkbenchPart part, String label, String ID)
-  {
-    super(part);
-    setText(label);
-    setId(ID);
-    command = new SetMultiplicityCommand(label);
-  }
-  
-  public void setMaxOccurs(int i)
-  {
-    command.setMaxOccurs(i);
-  }
-
-  public void setMinOccurs(int i)
-  {
-    command.setMinOccurs(i);
-  }
-  
-  protected boolean calculateEnabled()
-  {
-    boolean state = super.calculateEnabled();
-    if (state)
-    {
-      XSDConcreteComponent xsdConcreteComponent = getXSDInput();
-      if (xsdConcreteComponent instanceof XSDElementDeclaration)
-      {
-        return !((XSDElementDeclaration)xsdConcreteComponent).isGlobal();
-      }
-      else if (xsdConcreteComponent instanceof XSDModelGroup)
-      {
-        return !(((XSDModelGroup)xsdConcreteComponent).eContainer() instanceof XSDModelGroupDefinition);
-      }
-    }
-    return state;
-  }
-  
-  private XSDConcreteComponent getXSDInput()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    XSDConcreteComponent xsdConcreteComponent = null;
-    if (selection instanceof XSDBaseAdapter)
-    {
-      xsdConcreteComponent = (XSDConcreteComponent)((XSDBaseAdapter) selection).getTarget();
-    }
-    return xsdConcreteComponent;
-  }
-
-  public void run()
-  {
-    XSDConcreteComponent xsdConcreteComponent = getXSDInput();
-    if (xsdConcreteComponent != null)
-    {
-      command.setXSDConcreteComponent(xsdConcreteComponent);
-      getCommandStack().execute(command);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetTypeAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetTypeAction.java
deleted file mode 100644
index 6b879ad..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetTypeAction.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.commands.SetTypeCommand;
-import org.eclipse.xsd.XSDConcreteComponent;
-
-public class SetTypeAction extends XSDBaseAction
-{
-  public static final String SET_NEW_TYPE_ID = "SetTypeAction_AddType"; //$NON-NLS-1$
-  public static final String SELECT_EXISTING_TYPE_ID = "SetTypeAction_ExistingType"; //$NON-NLS-1$
-
-  SetTypeCommand command;
-
-  public SetTypeAction(String label, String ID, IWorkbenchPart part)
-  {
-    super(part);
-    setText(label);
-    setId(ID);
-  }
-
-  public void run()
-  {
-    Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-
-    if (selection instanceof XSDBaseAdapter)
-    {
-      Object target = ((XSDBaseAdapter) selection).getTarget();
-
-      if (target instanceof XSDConcreteComponent)
-      {
-        command = new SetTypeCommand(getText(), getId(), (XSDConcreteComponent) target);
-        command.setAdapter((XSDBaseAdapter) selection);
-        getCommandStack().execute(command);
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/XSDBaseAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/XSDBaseAction.java
deleted file mode 100644
index 3edf43f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/XSDBaseAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.actions;
-
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.contentoutline.ContentOutline;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction;
-import org.eclipse.wst.xsd.ui.internal.adt.design.editparts.BaseFieldEditPart;
-import org.eclipse.wst.xsd.ui.internal.design.editparts.TopLevelComponentEditPart;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-
-public class XSDBaseAction extends BaseSelectionAction
-{
-  XSDConcreteComponent addedComponent;
-
-  public XSDBaseAction(IWorkbenchPart part)
-  {
-    super(part);
-  }
-
-  protected boolean calculateEnabled()
-  {
-    if (getWorkbenchPart() instanceof IEditorPart)
-    {
-      IEditorPart owningEditor = (IEditorPart)getWorkbenchPart();
-      
-      Object selection = ((IStructuredSelection) getSelection()).getFirstElement();
-      if (selection instanceof XSDBaseAdapter)
-      {
-        selection = ((XSDBaseAdapter) selection).getTarget();
-      }
-      XSDSchema xsdSchema = null;
-      if (selection instanceof XSDConcreteComponent)
-      {
-        xsdSchema = ((XSDConcreteComponent)selection).getSchema();
-      }
-      
-      if (xsdSchema != null && xsdSchema == owningEditor.getAdapter(XSDSchema.class))
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-  
-  protected void doEdit(Object obj, IWorkbenchPart part)
-  {
-    if (obj instanceof TopLevelComponentEditPart)
-    {
-      TopLevelComponentEditPart editPart = (TopLevelComponentEditPart)obj;
-      if (addedComponent == ((XSDBaseAdapter)editPart.getModel()).getTarget())
-      {
-        editPart.setScroll(true);
-        editPart.addFeedback();
-        editPart.doEditName(!(part instanceof ContentOutline));
-      }
-    }
-    else if (obj instanceof BaseFieldEditPart)
-    {
-      BaseFieldEditPart editPart = (BaseFieldEditPart)obj;
-      editPart.doEditName(!(part instanceof ContentOutline));
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddDocumentationCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddDocumentationCommand.java
deleted file mode 100644
index 5647467..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddDocumentationCommand.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class AddDocumentationCommand extends BaseCommand
-{
-  XSDAnnotation xsdAnnotation;
-  XSDConcreteComponent input;
-  String newValue, oldValue;
-  boolean documentationExists;
-  Element documentationElement;
-
-  public AddDocumentationCommand(String label, XSDAnnotation xsdAnnotation, XSDConcreteComponent input, String newValue, String oldValue)
-  {
-    super(label);
-    this.xsdAnnotation = xsdAnnotation;
-    this.input = input;
-    this.newValue = newValue;
-    this.oldValue = oldValue;
-  }
-
-  public void execute()
-  {
-    if (input instanceof XSDSchema)
-    {
-      ensureSchemaElement((XSDSchema)input);
-    }
-    
-    try
-    {
-      beginRecording(input.getElement());
-
-      xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(input, true);
-      Element element = xsdAnnotation.getElement();
-
-      List documentationList = xsdAnnotation.getUserInformation();
-      documentationElement = null;
-      documentationExists = false;
-      if (documentationList.size() > 0)
-      {
-        documentationExists = true;
-        documentationElement = (Element) documentationList.get(0);
-      }
-
-      if (documentationElement == null)
-      {
-        documentationElement = xsdAnnotation.createUserInformation(null);
-        element.appendChild(documentationElement);
-        formatChild(documentationElement);
-        // Defect in model....I create it but the model object doesn't appear
-        // to be updated
-        xsdAnnotation.updateElement();
-        xsdAnnotation.setElement(element);
-      }
-
-      if (documentationElement.hasChildNodes())
-      {
-        if (documentationElement instanceof IDOMElement)
-        {
-          IDOMElement domElement = (IDOMElement) documentationElement;
-
-          Node firstChild = documentationElement.getFirstChild();
-          Node lastChild = documentationElement.getLastChild();
-          int start = 0;
-          int end = 0;
-
-          // IDOMModel model = domElement.getModel();
-          // IDOMDocument doc = model.getDocument();
-          IDOMNode first = null;
-          if (firstChild instanceof IDOMNode)
-          {
-            first = (IDOMNode) firstChild;
-            start = first.getStartOffset();
-          }
-          if (lastChild instanceof IDOMNode)
-          {
-            IDOMNode last = (IDOMNode) lastChild;
-            end = last.getEndOffset();
-          }
-
-          if (domElement != null)
-          {
-            oldValue = domElement.getModel().getStructuredDocument().get(start, end - start);
-            domElement.getModel().getStructuredDocument().replaceText(documentationElement, start, end - start, newValue);
-          }
-        }
-      }
-      else
-      {
-        if (newValue.length() > 0)
-        {
-          oldValue = ""; //$NON-NLS-1$
-          Node childNode = documentationElement.getOwnerDocument().createTextNode(newValue);
-          documentationElement.appendChild(childNode);
-        }
-      }
-      formatChild(xsdAnnotation.getElement());
-    }
-    catch (Exception e)
-    {
-
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  public void undo()
-  {
-    super.undo();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddEnumerationsCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddEnumerationsCommand.java
deleted file mode 100644
index f8c2a51..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddEnumerationsCommand.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDEnumerationFacet;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDSchemaBuildingTools;
-
-public class AddEnumerationsCommand extends BaseCommand
-{
-  XSDSimpleTypeDefinition simpleType;
-  String value;
-  
-  public AddEnumerationsCommand(String label, XSDSimpleTypeDefinition simpleType)
-  {
-    super(label);
-    this.simpleType = simpleType;
-  }
-  
-  public void setValue(String value)
-  {
-    this.value = value; 
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(simpleType.getElement());
-      XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-      XSDEnumerationFacet enumerationFacet = factory.createXSDEnumerationFacet();
-      enumerationFacet.setLexicalValue(value);
-      simpleType.getFacetContents().add(enumerationFacet);
-      formatChild(simpleType.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensibilityElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensibilityElementCommand.java
deleted file mode 100644
index 6747f59..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensibilityElementCommand.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class AddExtensibilityElementCommand extends BaseCommand
-{
-  Element input, elementToAdd;
-  SpecificationForExtensionsSchema extensionSchemaSpec;
-
-  public AddExtensibilityElementCommand(String label, Element input, Element elementToAdd)
-  {
-    super(label);
-    this.input = input;
-    this.elementToAdd = elementToAdd;
-  }
-
-  public void execute()
-  {
-    super.execute();
-    try
-    {
-      beginRecording(input);
-      addElement();
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  public void undo()
-  {
-    super.undo();
-    // TODO
-  }
-
-  public void setSchemaProperties(SpecificationForExtensionsSchema appInfoSchemaSpec)
-  {
-    this.extensionSchemaSpec = appInfoSchemaSpec;
-  }
-
-  private void addElement()
-  {
-    if (input != null)
-    {
-      Document doc = input.getOwnerDocument();
-      String name = elementToAdd.getAttribute("name"); //$NON-NLS-1$
-      try
-      {
-        Element rootElement = doc.createElementNS(extensionSchemaSpec.getNamespaceURI(), name);
-        String prefix = input.getPrefix();
-        rootElement.setPrefix(prefix);
-        String xmlns = (prefix == null || prefix.equals("")) ? "xmlns" : "xmlns:" + prefix; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-        Attr nsURIAttribute = doc.createAttribute(xmlns);
-        nsURIAttribute.setValue(extensionSchemaSpec.getNamespaceURI());
-        rootElement.setAttributeNode(nsURIAttribute);
-        input.appendChild(rootElement);
-
-      }
-      catch (Exception e)
-      {
-
-      }
-
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionAttributeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionAttributeCommand.java
deleted file mode 100644
index 2e6616b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionAttributeCommand.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceInfoManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.w3c.dom.Element;
-
-public class AddExtensionAttributeCommand extends AddExtensionCommand
-{
-  private static DOMNamespaceInfoManager manager = new DOMNamespaceInfoManager();
-  private XSDAttributeDeclaration attribute;
-  private boolean appInfoAttributeAdded = false;
-  private String attributeQName;
-  private String namespacePrefix;
-
-  public AddExtensionAttributeCommand(String label, XSDConcreteComponent component,
-      XSDAttributeDeclaration attribute)
-  {
-    super(label);
-    this.component = component;
-    this.attribute = attribute;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(component.getElement());
-      super.execute();
-      namespacePrefix = handleNamespacePrefices();
-
-      attributeQName = namespacePrefix + ":" + attribute.getName(); //$NON-NLS-1$
-      String value = component.getElement().getAttribute(attributeQName);
-      if (value == null)
-      {
-        appInfoAttributeAdded = true;
-        component.getElement().setAttribute(attributeQName, ""); //$NON-NLS-1$
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  public void undo()
-  {
-    super.undo();
-    if (appInfoAttributeAdded){
-      component.getElement().removeAttribute(attributeQName);
-    }
-  }
-
-  /** Create a namespace prefix if needed, other wise retrieve 
-   * a predefined namespace prefix
-   * @return   */
-  private String handleNamespacePrefices()
-  {
-    Element schemaElement = component.getSchema().getElement();
-    String prefix = null;
-    
-    // If target namespace of the attribute already exists
-    List namespacePrefices = manager.getNamespaceInfoList(schemaElement);
-    for (int i = 0; i < namespacePrefices.size(); i++){
-      NamespaceInfo info = (NamespaceInfo) namespacePrefices.get(i);
-      if ( info.uri.equals(attribute.getTargetNamespace())) {
-        prefix = info.prefix;
-      }
-    }
-    
-    // Create unquie namespace prefix
-    if ( prefix == null){
-      prefix = createUniquePrefix(component);
-    }
-
-    NamespaceInfo info = new NamespaceInfo(attribute.getTargetNamespace(), prefix, ""); //$NON-NLS-1$
-    List infoList = new ArrayList(1);
-    infoList.add(info);
-    manager.addNamespaceInfo(schemaElement, infoList, false);
-    return prefix;
-  }
-  
-  protected String createUniquePrefix(XSDConcreteComponent component)
-  {
-    String prefix = "p"; //$NON-NLS-1$
-    Map prefMapper = component.getSchema().getQNamePrefixToNamespaceMap();
-    if ( prefMapper.get(prefix) != null){
-      int i = 1;
-      while ( prefMapper.get(prefix + i) != null)
-        i++;
-      prefix += i;
-    }
-    return prefix;
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionCommand.java
deleted file mode 100644
index 5672104..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionCommand.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddExtensionCommand extends BaseCommand
-{
-  protected SpecificationForExtensionsSchema extensionsSchemaSpec;
-  protected XSDConcreteComponent component;
-
-  protected AddExtensionCommand(String label)
-  {
-    super(label);
-  }
-
-  public void setSchemaProperties(SpecificationForExtensionsSchema appInfoSchemaSpec)
-  {
-    this.extensionsSchemaSpec = appInfoSchemaSpec;
-  }
-  
-  public Object getNewObject()
-  {
-    return null;
-  }
-
-  public void execute()
-  {
-    if (component instanceof XSDSchema)
-    {
-      ensureSchemaElement((XSDSchema)component);
-    }
-    
-    super.execute();
-  }
-  
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionElementCommand.java
deleted file mode 100644
index ca4d8a8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionElementCommand.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.List;
-import java.util.Map;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceTable;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class AddExtensionElementCommand extends AddExtensionCommand
-{
-  XSDElementDeclaration element;
-  Element appInfo;
-  Element newElement;
-
-  public AddExtensionElementCommand(String label, XSDConcreteComponent input, XSDElementDeclaration element)
-  {
-    super(label);
-    this.component = input;
-    this.element = element;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(component.getElement());
-      super.execute();
-      addAnnotationSet(component.getSchema(), extensionsSchemaSpec);
-      formatChild(component.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  public void undo()
-  {
-    super.undo();
-    XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(component, false);
-    xsdAnnotation.getElement().removeChild(appInfo);
-    List appInfos = xsdAnnotation.getApplicationInformation();
-    appInfos.remove(appInfo);
-    xsdAnnotation.updateElement();
-
-  }
-
-  public void setSchemaProperties(SpecificationForExtensionsSchema spec)
-  {
-    this.extensionsSchemaSpec = spec;
-  }
-
-  public void addAnnotationSet(XSDSchema xsdSchema, SpecificationForExtensionsSchema spec)
-  {
-    XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(component, true);
-    addAnnotationSet(spec, xsdAnnotation);
-  }
-
-  private void addAnnotationSet(SpecificationForExtensionsSchema spec, XSDAnnotation xsdAnnotation)
-  {     
-    XSDSchema schema= xsdAnnotation.getSchema();
-    Element schemaElement = schema.getElement();
-
-    if (xsdAnnotation.getApplicationInformation().size() == 0)
-    {
-      appInfo = xsdAnnotation.createApplicationInformation(null);
-      xsdAnnotation.getElement().appendChild(appInfo);
-      List appInfos = xsdAnnotation.getApplicationInformation();
-      appInfos.add(appInfo);
-    }
-    else
-    {
-      // use the first appInfo
-      appInfo = (Element)xsdAnnotation.getApplicationInformation().get(0);
-    }
-
-    String prefix = addNamespaceDeclarationIfRequired(schemaElement, "p", spec.getNamespaceURI());
-
-    if (appInfo != null)
-    {
-      Document doc = appInfo.getOwnerDocument();
-     
-      newElement = doc.createElementNS(spec.getNamespaceURI(), element.getName());
-      newElement.setPrefix(prefix);   
-      appInfo.appendChild(newElement);
-
-      xsdAnnotation.updateElement();
-    }
-  }
-
-  public Object getNewObject()
-  {
-    return newElement;
-  }
-  
-  /**
-   * @deprecated
-   */
-  protected String createUniquePrefix(XSDConcreteComponent component)
-  {
-    String prefix = "p"; //$NON-NLS-1$
-    Map prefMapper = component.getSchema().getQNamePrefixToNamespaceMap();
-    if ( prefMapper.get(prefix) != null){
-      int i = 1;
-      while ( prefMapper.get(prefix + i) != null)
-        i++;
-      prefix += i;
-    }
-    return prefix;
-  }  
-  
-  // TODO... common this up with wsdl.ui
-  private String addNamespaceDeclarationIfRequired(Element schemaElement, String prefixHint, String namespace)
-  {
-    String prefix = null;      
-    NamespaceTable namespaceTable = new NamespaceTable(schemaElement.getOwnerDocument());
-    namespaceTable.addElement(schemaElement);
-    prefix = namespaceTable.getPrefixForURI(namespace);
-    if (prefix == null)
-    { 
-      String basePrefix = prefixHint;
-      prefix = basePrefix;
-      String xmlnsColon = "xmlns:"; //$NON-NLS-1$
-      String attributeName = xmlnsColon + prefix;
-      int count = 0;
-      while (schemaElement.getAttribute(attributeName) != null)
-      {
-        count++;
-        prefix = basePrefix + count;
-        attributeName = xmlnsColon + prefix;
-      }      
-      schemaElement.setAttribute(attributeName, namespace);  
-    }    
-    return prefix;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAnyAttributeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAnyAttributeCommand.java
deleted file mode 100644
index 211cbc9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAnyAttributeCommand.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDWildcard;
-
-public class AddXSDAnyAttributeCommand extends BaseCommand
-{
-  XSDComplexTypeDefinition xsdComplexTypeDefinition;
-  XSDAttributeGroupDefinition xsdAttributeGroupDefinition;
-  XSDConcreteComponent input;
-
-  public AddXSDAnyAttributeCommand(String label, XSDComplexTypeDefinition xsdComplexTypeDefinition)
-  {
-    super(label);
-    this.xsdComplexTypeDefinition = xsdComplexTypeDefinition;
-    this.input = xsdComplexTypeDefinition; 
-  }
-  
-  public AddXSDAnyAttributeCommand(String label, XSDAttributeGroupDefinition xsdAttributeGroupDefinition)
-  {
-    super(label);
-    this.xsdAttributeGroupDefinition = xsdAttributeGroupDefinition;
-    this.input = xsdAttributeGroupDefinition;
-  }
-  
-  public void execute()
-  {
-    try
-    {
-      beginRecording(input.getElement());
-
-      XSDWildcard anyAttribute = XSDFactory.eINSTANCE.createXSDWildcard();
-      if (xsdComplexTypeDefinition != null)
-      {
-        xsdComplexTypeDefinition.setAttributeWildcardContent(anyAttribute);
-        formatChild(xsdComplexTypeDefinition.getElement());
-      }
-      else if (xsdAttributeGroupDefinition != null)
-      {
-        xsdAttributeGroupDefinition.setAttributeWildcardContent(anyAttribute);
-        formatChild(xsdAttributeGroupDefinition.getElement());
-      }
-      addedXSDConcreteComponent = anyAttribute;
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAnyElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAnyElementCommand.java
deleted file mode 100644
index d777ec3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAnyElementCommand.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDWildcard;
-
-public class AddXSDAnyElementCommand extends BaseCommand
-{
-  XSDModelGroup parent;
-
-  public AddXSDAnyElementCommand(String label, XSDModelGroup parent)
-  {
-    super(label);
-    this.parent = parent;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(parent.getElement());
-      XSDWildcard wildCard = XSDFactory.eINSTANCE.createXSDWildcard();
-      XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle();
-      particle.setContent(wildCard);
-      parent.getContents().add(particle);
-      addedXSDConcreteComponent = wildCard;
-      formatChild(parent.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java
deleted file mode 100644
index 1535564..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Text;
-
-public class AddXSDAttributeDeclarationCommand extends BaseCommand
-{
-  XSDComplexTypeDefinition xsdComplexTypeDefinition;
-  XSDModelGroup xsdModelGroup;
-  XSDConcreteComponent parent;
-  boolean isReference;
-
-  public AddXSDAttributeDeclarationCommand(String label, XSDComplexTypeDefinition xsdComplexTypeDefinition)
-  {
-    super(label);
-    this.xsdComplexTypeDefinition = xsdComplexTypeDefinition;
-  }
-  
-  public AddXSDAttributeDeclarationCommand(String label, XSDConcreteComponent parent)
-  {
-    super(label);
-    this.parent = parent;
-  }
-
-  public void execute()
-  {
-    XSDAttributeDeclaration attribute = XSDFactory.eINSTANCE.createXSDAttributeDeclaration();
-    try
-    {
-      if (parent == null)
-      {
-        beginRecording(xsdComplexTypeDefinition.getElement());
-        if (!isReference)
-        {
-          attribute.setName(getNewName("NewAttribute")); //$NON-NLS-1$
-          attribute.setTypeDefinition(xsdComplexTypeDefinition.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$
-        }
-        else
-        {
-          attribute.setResolvedAttributeDeclaration(setGlobalAttributeReference(xsdComplexTypeDefinition.getSchema()));
-        }
-        XSDAttributeUse attributeUse = XSDFactory.eINSTANCE.createXSDAttributeUse();
-        attributeUse.setAttributeDeclaration(attribute);
-        attributeUse.setContent(attribute);
-
-        if (xsdComplexTypeDefinition.getAttributeContents() != null)
-        {
-          xsdComplexTypeDefinition.getAttributeContents().add(attributeUse);
-          formatChild(xsdComplexTypeDefinition.getElement());
-        }
-      }
-      else
-      {
-        beginRecording(parent.getElement());
-        if (parent instanceof XSDSchema)
-        {
-          XSDSchema xsdSchema = (XSDSchema) parent;
-          attribute = createGlobalXSDAttributeDeclaration(xsdSchema);
-        }
-        else if (parent instanceof XSDAttributeGroupDefinition)
-        {
-          if (!isReference)
-          {
-            attribute.setTypeDefinition(parent.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$
-
-            List list = new ArrayList();
-            Iterator i = ((XSDAttributeGroupDefinition) parent).getResolvedAttributeGroupDefinition().getAttributeUses().iterator();
-            while (i.hasNext())
-            {
-              XSDAttributeUse use = (XSDAttributeUse) i.next();
-              list.add(use.getAttributeDeclaration());
-            }
-            attribute.setName(XSDCommonUIUtils.createUniqueElementName("NewAttribute", list)); //$NON-NLS-1$
-          }
-          else
-          {
-            attribute.setResolvedAttributeDeclaration(setGlobalAttributeReference(parent.getSchema()));
-          }
-
-          XSDAttributeUse attributeUse = XSDFactory.eINSTANCE.createXSDAttributeUse();
-          attributeUse.setAttributeDeclaration(attribute);
-          attributeUse.setContent(attribute);
-
-          ((XSDAttributeGroupDefinition) parent).getResolvedAttributeGroupDefinition().getContents().add(attributeUse);
-          formatChild(parent.getElement());
-        }
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-    addedXSDConcreteComponent = attribute;
-  }
-
-  ArrayList names;
-
-  protected String getNewName(String description)
-  {
-    ArrayList usedAttributeNames = new ArrayList();
-    usedAttributeNames.addAll(XSDCommonUIUtils.getAllAttributes(xsdComplexTypeDefinition));
-    usedAttributeNames.addAll(XSDCommonUIUtils.getInheritedAttributes(xsdComplexTypeDefinition));
-    return XSDCommonUIUtils.createUniqueElementName(description, usedAttributeNames); //$NON-NLS-1$
-  }
-  
-  public void setReference(boolean isReference)
-  {
-    this.isReference = isReference;
-  }
-  
-  protected XSDAttributeDeclaration createGlobalXSDAttributeDeclaration(XSDSchema xsdSchema)
-  {
-    ensureSchemaElement(xsdSchema);
-    XSDAttributeDeclaration attribute = XSDFactory.eINSTANCE.createXSDAttributeDeclaration();
-    attribute.setTypeDefinition(xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$
-    attribute.setName(XSDCommonUIUtils.createUniqueElementName("NewAttribute", xsdSchema.getAttributeDeclarations())); //$NON-NLS-1$
-    Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$
-    xsdSchema.getElement().appendChild(textNode);
-    xsdSchema.getContents().add(attribute);
-    return attribute;
-  }
-
-  protected XSDAttributeDeclaration setGlobalAttributeReference(XSDSchema xsdSchema)
-  {
-    List list = xsdSchema.getAttributeDeclarations();
-    XSDAttributeDeclaration referencedAttribute = null;
-    boolean isUserDefined = false;
-    for (Iterator i = list.iterator(); i.hasNext(); )
-    {
-      Object obj = i.next();
-      if (obj instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration attr = (XSDAttributeDeclaration) obj;
-        if (!XSDConstants.SCHEMA_INSTANCE_URI_2001.equals(attr.getTargetNamespace()))
-        {
-          referencedAttribute = attr;
-          isUserDefined = true;
-          break;
-        }
-      }
-    }
-    if (!isUserDefined)
-    {
-      referencedAttribute = createGlobalXSDAttributeDeclaration(xsdSchema);
-      Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$
-      xsdSchema.getElement().appendChild(textNode);
-      xsdSchema.getContents().add(referencedAttribute);
-    }
-
-    return referencedAttribute;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeGroupDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeGroupDefinitionCommand.java
deleted file mode 100644
index 2ee575e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeGroupDefinitionCommand.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.w3c.dom.Text;
-
-public class AddXSDAttributeGroupDefinitionCommand extends BaseCommand
-{
-  XSDComplexTypeDefinition xsdComplexTypeDefinition;
-  XSDSchema xsdSchema;
-
-  public AddXSDAttributeGroupDefinitionCommand(String label, XSDComplexTypeDefinition xsdComplexTypeDefinition)
-  {
-    super(label);
-    this.xsdComplexTypeDefinition = xsdComplexTypeDefinition;
-  }
-
-  public AddXSDAttributeGroupDefinitionCommand(String label, XSDSchema xsdSchema)
-  {
-    super(label);
-    this.xsdSchema = xsdSchema;
-  }
-
-  public void execute()
-  {
-    XSDAttributeGroupDefinition attributeGroup = XSDFactory.eINSTANCE.createXSDAttributeGroupDefinition();
-    try
-    {
-      if (xsdSchema == null)
-      {
-        beginRecording(xsdComplexTypeDefinition.getElement());
-        attributeGroup.setName(getNewName("AttributeGroup")); //$NON-NLS-1$
-
-        List list = xsdComplexTypeDefinition.getSchema().getAttributeGroupDefinitions();
-        if (list.size() > 0)
-        {
-          attributeGroup.setResolvedAttributeGroupDefinition((XSDAttributeGroupDefinition) list.get(0));
-        }
-        else
-        {
-          attributeGroup.setName(null);
-          XSDAttributeGroupDefinition attributeGroup2 = XSDFactory.eINSTANCE.createXSDAttributeGroupDefinition();
-          attributeGroup2.setName(XSDCommonUIUtils.createUniqueElementName("NewAttributeGroup", xsdComplexTypeDefinition.getSchema().getAttributeGroupDefinitions())); //$NON-NLS-1$
-          xsdComplexTypeDefinition.getSchema().getContents().add(attributeGroup2);
-          attributeGroup.setResolvedAttributeGroupDefinition(attributeGroup2);
-        }
-
-        if (xsdComplexTypeDefinition.getAttributeContents() != null)
-        {
-          xsdComplexTypeDefinition.getAttributeContents().add(attributeGroup);
-        }
-        addedXSDConcreteComponent = attributeGroup;
-      }
-      else
-      {
-        ensureSchemaElement(xsdSchema);
-        // put this after, since we don't have a DOM node yet
-        beginRecording(xsdSchema.getElement());
-        attributeGroup.setName(XSDCommonUIUtils.createUniqueElementName("NewAttributeGroup", xsdSchema.getAttributeGroupDefinitions())); //$NON-NLS-1$
-        Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$
-        xsdSchema.getElement().appendChild(textNode);
-        xsdSchema.getContents().add(attributeGroup);
-        addedXSDConcreteComponent = attributeGroup;
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  ArrayList names;
-
-  protected String getNewName(String description)
-  {
-    String candidateName = "New" + description; //$NON-NLS-1$
-    XSDConcreteComponent parent = xsdComplexTypeDefinition;
-    names = new ArrayList();
-    int i = 1;
-    if (parent instanceof XSDComplexTypeDefinition)
-    {
-      XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition) parent;
-      walkUpInheritance(ct);
-
-      boolean ready = false;
-      while (!ready)
-      {
-        ready = true;
-        for (Iterator iter = names.iterator(); iter.hasNext();)
-        {
-          String attrName = (String) iter.next();
-          if (candidateName.equals(attrName))
-          {
-            ready = false;
-            candidateName = "New" + description + String.valueOf(i); //$NON-NLS-1$
-            i++;
-          }
-        }
-      }
-    }
-    return candidateName;
-  }
-
-  private void walkUpInheritance(XSDComplexTypeDefinition ct)
-  {
-    updateNames(ct);
-    XSDTypeDefinition typeDef = ct.getBaseTypeDefinition();
-    if (ct != ct.getRootType())
-    {
-      if (typeDef instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition ct2 = (XSDComplexTypeDefinition) typeDef;
-        walkUpInheritance(ct2);
-      }
-    }
-  }
-
-  private void updateNames(XSDComplexTypeDefinition ct)
-  {
-    Iterator iter = ct.getAttributeContents().iterator();
-    while (iter.hasNext())
-    {
-      Object obj = iter.next();
-      if (obj instanceof XSDAttributeUse)
-      {
-        XSDAttributeUse use = (XSDAttributeUse) obj;
-        XSDAttributeDeclaration attr = use.getAttributeDeclaration();
-        String attrName = attr.getName();
-        if (attrName != null)
-        {
-          names.add(attrName);
-        }
-      }
-    }
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDComplexTypeDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDComplexTypeDefinitionCommand.java
deleted file mode 100644
index 757feaf..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDComplexTypeDefinitionCommand.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDSchemaBuildingTools;
-import org.w3c.dom.Text;
-
-public final class AddXSDComplexTypeDefinitionCommand extends BaseCommand
-{
-  protected XSDConcreteComponent parent;
-  protected XSDComplexTypeDefinition createdComplexType;
-  private String nameToAdd;
-  
-  public AddXSDComplexTypeDefinitionCommand(String label, XSDConcreteComponent parent)
-  {
-    super(label);
-    this.parent = parent;
-  }
-  
-  public void setNameToAdd(String nameToAdd)
-  {
-    this.nameToAdd = nameToAdd;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.gef.commands.Command#execute()
-   */
-  public void execute()
-  {
-    try
-    {
-      beginRecording(parent.getElement());
-      XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-      XSDComplexTypeDefinition complexType = factory.createXSDComplexTypeDefinition();
-      addedXSDConcreteComponent = complexType;
-      String newName = getNewName(nameToAdd == null ? "NewXSDComplexType" : nameToAdd, parent.getSchema()); //$NON-NLS-1$
-      complexType.setName(newName);
-      if (parent instanceof XSDSchema)
-      {
-        try
-        {
-          XSDSchema xsdSchema = (XSDSchema) parent;
-          ensureSchemaElement(xsdSchema);
-          Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$
-          xsdSchema.getElement().appendChild(textNode);
-          xsdSchema.getContents().add(complexType);
-        }
-        catch (Exception e)
-        {
-
-        }
-      }
-      else if (parent instanceof XSDElementDeclaration)
-      {
-        ((XSDElementDeclaration) parent).setAnonymousTypeDefinition(complexType);
-        formatChild(parent.getElement());
-      }
-      createdComplexType = complexType;
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  protected String getNewName(String description, XSDSchema schema)
-  {
-    String candidateName = description; //$NON-NLS-1$
-    int i = 1;
-
-    List list = schema.getTypeDefinitions();
-    List listOfNames = new ArrayList();
-    for (Iterator iter = list.iterator(); iter.hasNext();)
-    {
-      XSDTypeDefinition typeDef = (XSDTypeDefinition) iter.next();
-      String name = typeDef.getName();
-      if (name == null)
-        name = ""; //$NON-NLS-1$
-      if (typeDef.getTargetNamespace() == schema.getTargetNamespace())
-        listOfNames.add(name);
-    }
-
-    boolean flag = true;
-    while (flag)
-    {
-      if (!listOfNames.contains(candidateName))
-      {
-        flag = false;
-        break;
-      }
-      candidateName = description + String.valueOf(i); //$NON-NLS-1$
-      i++;
-    }
-
-    return candidateName;
-  }
-
-  public XSDComplexTypeDefinition getCreatedComplexType()
-  {
-    return createdComplexType;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDElementCommand.java
deleted file mode 100644
index 448f738..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDElementCommand.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDSchemaBuildingTools;
-import org.w3c.dom.Text;
-
-public class AddXSDElementCommand extends BaseCommand
-{
-  XSDComplexTypeDefinition xsdComplexTypeDefinition;
-  XSDModelGroupDefinition xsdModelGroupDefinition;
-  XSDModelGroup xsdModelGroup;
-  XSDSchema xsdSchema;
-  boolean isReference;
-  private String nameToAdd;
-
-  public AddXSDElementCommand()
-  {
-    super();
-  }
-
-  public AddXSDElementCommand(String label, XSDComplexTypeDefinition xsdComplexTypeDefinition)
-  {
-    super(label);
-    this.xsdComplexTypeDefinition = xsdComplexTypeDefinition;
-    xsdModelGroup = getModelGroup(xsdComplexTypeDefinition);
-  }
-
-  public AddXSDElementCommand(String label, XSDModelGroupDefinition xsdModelGroupDefinition)
-  {
-    super(label);
-    this.xsdModelGroupDefinition = xsdModelGroupDefinition;
-    xsdModelGroup = getModelGroup(xsdModelGroupDefinition);
-  }
-  
-  public AddXSDElementCommand(String label, XSDModelGroup xsdModelGroup, XSDComplexTypeDefinition xsdComplexTypeDefinition)
-  {
-    super(label);
-    this.xsdModelGroup = xsdModelGroup;
-    this.xsdComplexTypeDefinition = xsdComplexTypeDefinition;
-  }
-
-  public AddXSDElementCommand(String label, XSDModelGroup xsdModelGroup)
-  {
-    super(label);
-    this.xsdModelGroup = xsdModelGroup;
-  }
-
-  public AddXSDElementCommand(String label, XSDSchema xsdSchema)
-  {
-    super(label);
-    this.xsdSchema = xsdSchema;
-  }
-
-  public void setReference(boolean isReference)
-  {
-    this.isReference = isReference;
-  }
-  
-  public void setNameToAdd(String name){
-	  nameToAdd = name;
-  }
-  
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.gef.commands.Command#execute()
-   */
-  public void execute()
-  {
-    try
-    {
-      if (xsdSchema != null)
-      {
-        beginRecording(xsdSchema.getElement());
-        XSDElementDeclaration element = createGlobalXSDElementDeclaration();
-        Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$
-        xsdSchema.getElement().appendChild(textNode);
-        xsdSchema.getContents().add(element);
-        addedXSDConcreteComponent = element;
-      }
-      else if (xsdModelGroupDefinition != null)
-      {
-        beginRecording(xsdModelGroupDefinition.getElement());
-        if (xsdModelGroup == null)
-        {
-          XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-          XSDParticle particle = factory.createXSDParticle();
-          xsdModelGroup = factory.createXSDModelGroup();
-          xsdModelGroup.setCompositor(XSDCompositor.SEQUENCE_LITERAL);
-          particle.setContent(xsdModelGroup);
-          xsdModelGroupDefinition.setModelGroup(xsdModelGroup);
-        }
-        xsdSchema = xsdModelGroupDefinition.getSchema();
-        if (!isReference)
-        {
-          xsdModelGroup.getContents().add(createXSDElementDeclarationForModelGroupDefinitions());
-        }
-        else
-        {
-          xsdModelGroup.getContents().add(createXSDElementReference());
-        }
-        formatChild(xsdModelGroupDefinition.getElement());
-      }
-      else if (xsdModelGroup != null && (xsdComplexTypeDefinition == null || xsdModelGroupDefinition == null) )
-      {
-        xsdSchema = xsdModelGroup.getSchema();
-        beginRecording(xsdSchema.getElement());
-        if (!isReference)
-        {
-          xsdModelGroup.getContents().add(createXSDElementDeclaration());
-        }
-        else
-        {
-          xsdModelGroup.getContents().add(createXSDElementReference());
-        }
-        formatChild(xsdModelGroup.getElement());
-      }
-      else
-      {
-        xsdSchema = xsdComplexTypeDefinition.getSchema();
-        beginRecording(xsdSchema.getElement());
-        if (xsdModelGroup == null)
-        {
-          XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-          XSDParticle particle = factory.createXSDParticle();
-          xsdModelGroup = factory.createXSDModelGroup();
-          xsdModelGroup.setCompositor(XSDCompositor.SEQUENCE_LITERAL);
-          particle.setContent(xsdModelGroup);
-          xsdComplexTypeDefinition.setContent(particle);
-        }
-        if (!isReference)
-        {
-          xsdModelGroup.getContents().add(createXSDElementDeclarationForComplexType());
-        }
-        else
-        {
-          xsdModelGroup.getContents().add(createXSDElementReference());
-        }
-        formatChild(xsdComplexTypeDefinition.getElement());
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-  
-  protected XSDParticle createXSDElementDeclaration()
-  {
-    XSDSimpleTypeDefinition type = xsdModelGroup.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string"); //$NON-NLS-1$
-
-    XSDElementDeclaration element = XSDFactory.eINSTANCE.createXSDElementDeclaration();
-
-    XSDConcreteComponent comp = xsdModelGroup.getContainer();
-    ArrayList usedAttributeNames = new ArrayList();
-    usedAttributeNames.addAll(XSDCommonUIUtils.getChildElements(xsdModelGroup));    
-    while (comp != null)
-    {
-      if (comp instanceof XSDModelGroupDefinition)
-      {
-        usedAttributeNames.addAll(XSDCommonUIUtils.getAllAttributes((XSDModelGroupDefinition)comp));
-        break;
-      }
-      else if (comp instanceof XSDComplexTypeDefinition)
-      {
-        usedAttributeNames.addAll(XSDCommonUIUtils.getAllAttributes((XSDComplexTypeDefinition)comp));
-        usedAttributeNames.addAll(XSDCommonUIUtils.getInheritedAttributes((XSDComplexTypeDefinition)comp));
-        break;
-      }
-      comp = comp.getContainer();
-    }
-    element.setName(XSDCommonUIUtils.createUniqueElementName(
-    		nameToAdd == null ? "NewElement" : nameToAdd , usedAttributeNames)); //$NON-NLS-1$
-    element.setTypeDefinition(type);
-
-    XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle();
-    particle.setContent(element);
-    addedXSDConcreteComponent = element;
-    return particle;
-  }
-
-  protected XSDParticle createXSDElementReference()
-  {
-    List list = xsdModelGroup.getSchema().getElementDeclarations();
-    XSDElementDeclaration referencedElement = null;
-    if (list.size() > 0)
-    {
-      referencedElement = (XSDElementDeclaration)list.get(0);
-    }
-    else
-    {
-      referencedElement = createGlobalXSDElementDeclaration();
-      Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$
-      xsdSchema.getElement().appendChild(textNode);
-      xsdSchema.getContents().add(referencedElement);
-    }
-
-    XSDElementDeclaration element = XSDFactory.eINSTANCE.createXSDElementDeclaration();
-    
-    element.setResolvedElementDeclaration(referencedElement);
-    XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle();
-    particle.setContent(element);
-    addedXSDConcreteComponent = element;
-    return particle;
-  }
-
-  protected XSDParticle createXSDElementDeclarationForComplexType()
-  {
-    XSDSimpleTypeDefinition type = xsdModelGroup.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string"); //$NON-NLS-1$
-
-    XSDElementDeclaration element = XSDFactory.eINSTANCE.createXSDElementDeclaration();
-
-    ArrayList usedAttributeNames = new ArrayList();
-    usedAttributeNames.addAll(XSDCommonUIUtils.getAllAttributes(xsdComplexTypeDefinition));
-    usedAttributeNames.addAll(XSDCommonUIUtils.getInheritedAttributes(xsdComplexTypeDefinition));
-    element.setName(XSDCommonUIUtils.createUniqueElementName(
-    		nameToAdd == null ? "NewElement" : nameToAdd , usedAttributeNames)); //$NON-NLS-1$
-    element.setTypeDefinition(type);
-
-    XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle();
-    particle.setContent(element);
-    addedXSDConcreteComponent = element;
-    return particle;
-  }
-  
-  protected XSDParticle createXSDElementDeclarationForModelGroupDefinitions()
-  {
-    XSDSimpleTypeDefinition type = xsdModelGroup.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string"); //$NON-NLS-1$
-
-    XSDElementDeclaration element = XSDFactory.eINSTANCE.createXSDElementDeclaration();
-
-    ArrayList usedAttributeNames = new ArrayList();
-    usedAttributeNames.addAll(XSDCommonUIUtils.getAllAttributes(xsdModelGroupDefinition));
-    element.setName(XSDCommonUIUtils.createUniqueElementName(
-        nameToAdd == null ? "NewElement" : nameToAdd , usedAttributeNames)); //$NON-NLS-1$
-    element.setTypeDefinition(type);
-
-    XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle();
-    particle.setContent(element);
-    addedXSDConcreteComponent = element;
-    return particle;
-  }
-
-  protected XSDElementDeclaration createGlobalXSDElementDeclaration()
-  {
-    ensureSchemaElement(xsdSchema);
-    XSDSimpleTypeDefinition type = xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("string"); //$NON-NLS-1$
-    XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-    XSDElementDeclaration element = factory.createXSDElementDeclaration();
-
-    element.setName(XSDCommonUIUtils.createUniqueElementName(
-    		nameToAdd == null ? "NewElement" : nameToAdd , xsdSchema.getElementDeclarations())); //$NON-NLS-1$
-    element.setTypeDefinition(type);
-
-    return element;
-  }
-  
-  public XSDModelGroup getModelGroup(XSDModelGroupDefinition modelGroupDef)
-  {
-    return modelGroupDef.getModelGroup();
-  }
-
-  //PORT
-  public XSDModelGroup getModelGroup(XSDComplexTypeDefinition cType)
-  {
-    XSDParticle particle = null;
-
-    XSDComplexTypeContent xsdComplexTypeContent = cType.getContent();
-    if (xsdComplexTypeContent instanceof XSDParticle)
-    {
-      particle = (XSDParticle)xsdComplexTypeContent;
-    }
-    
-    if (particle == null)
-    {
-      return null;
-    }
-    
-    Object particleContent = particle.getContent();
-    XSDModelGroup group = null;
-
-    if (particleContent instanceof XSDModelGroupDefinition)
-    {
-      group = ((XSDModelGroupDefinition) particleContent).getResolvedModelGroupDefinition().getModelGroup();
-    }
-    else if (particleContent instanceof XSDModelGroup)
-    {
-      group = (XSDModelGroup) particleContent;
-    }
-
-    if (group == null)
-    {
-      return null;
-    }
-
-//    if (group.getContents().isEmpty() || group.eResource() != cType.eResource())
-//    {
-//      if (cType.getBaseType() != null)
-//      {
-//        XSDComplexTypeContent content = cType.getContent();
-//        if (content instanceof XSDParticle)
-//        {
-//          group = (XSDModelGroup) ((XSDParticle) content).getContent();
-//        }
-//      }
-//    }
-
-    return group;
-  }
-  
-  public XSDConcreteComponent getAddedComponent()
-  {
-    return super.getAddedComponent();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDImportCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDImportCommand.java
deleted file mode 100644
index e91f872..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDImportCommand.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddXSDImportCommand extends AddXSDSchemaDirectiveCommand
-{
-  public AddXSDImportCommand(String label, XSDSchema schema)
-  {
-    super(label);
-    this.xsdSchema = schema;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      super.execute();
-      // Add this after if we don't have a DOM Node yet
-      beginRecording(xsdSchema.getElement());
-      XSDImport xsdImport = XSDFactory.eINSTANCE.createXSDImport();
-      xsdSchema.getContents().add(findNextPositionToInsert(), xsdImport);
-      addedXSDConcreteComponent = xsdImport;
-      formatChild(xsdSchema.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDIncludeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDIncludeCommand.java
deleted file mode 100644
index e69b309..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDIncludeCommand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddXSDIncludeCommand extends AddXSDSchemaDirectiveCommand
-{
-  public AddXSDIncludeCommand(String label, XSDSchema schema)
-  {
-    super(label);
-    this.xsdSchema = schema;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      super.execute();
-      // Add this after if we don't have a DOM Node yet
-      beginRecording(xsdSchema.getElement());
-      XSDInclude xsdInclude = XSDFactory.eINSTANCE.createXSDInclude();
-      xsdInclude.setSchemaLocation(""); //$NON-NLS-1$
-      xsdSchema.getContents().add(findNextPositionToInsert(), xsdInclude);
-      addedXSDConcreteComponent = xsdInclude;
-      formatChild(xsdSchema.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupCommand.java
deleted file mode 100644
index 19872de..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupCommand.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDCompositor;
-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.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDSchemaBuildingTools;
-
-public class AddXSDModelGroupCommand extends BaseCommand
-{
-  XSDConcreteComponent parent;
-  XSDCompositor xsdCompositor;
-  XSDModelGroup newModelGroup;
-
-  public AddXSDModelGroupCommand(String label, XSDConcreteComponent parent, XSDCompositor xsdCompositor)
-  {
-    super(label);
-    this.parent = parent;
-    this.xsdCompositor = xsdCompositor;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(parent.getElement());
-      XSDConcreteComponent owner = getOwner();
-      if (owner != null)
-      {
-        XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle();
-        newModelGroup = createModelGroup();
-        particle.setContent(newModelGroup);
-
-        XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition) owner;
-        ctd.setContent(particle);
-      }
-      formatChild(parent.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-  
-  public void undo()
-  {
-    super.undo();
-    
-    if (parent instanceof XSDModelGroup)
-    {
-      XSDModelGroup model = (XSDModelGroup) parent;
-      model.getContents().remove(newModelGroup.getContainer());
-    }
-  }
-  
-  private XSDConcreteComponent getOwner()
-  {
-    XSDConcreteComponent owner = null;
-    if (parent instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration ed = (XSDElementDeclaration)parent;      
-      if (ed.getTypeDefinition() != null) 
-      {
-        if (ed.getAnonymousTypeDefinition() == null)
-        {
-          ed.setTypeDefinition(null);
-          XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-          ed.setAnonymousTypeDefinition(td);
-          owner = ed.getTypeDefinition();
-        }
-        else
-        {
-          XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-          ed.setAnonymousTypeDefinition(td);
-          owner = td;        
-        }
-      }        
-      else if (ed.getAnonymousTypeDefinition() == null)
-      {
-        XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-        ed.setAnonymousTypeDefinition(td);
-        owner = td;        
-      }
-      else if (ed.getAnonymousTypeDefinition() instanceof XSDComplexTypeDefinition)
-      {
-        owner = ed.getAnonymousTypeDefinition();
-      }
-      else if (ed.getAnonymousTypeDefinition() instanceof XSDSimpleTypeDefinition)
-      {
-        XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
-        ed.setAnonymousTypeDefinition(td);
-        owner = td;        
-      }
-    }
-    else if (parent instanceof XSDModelGroup)
-    {
-      newModelGroup = createModelGroup();
-      ((XSDModelGroup) parent).getContents().add(newModelGroup.getContainer());
-    }
-    else if (parent instanceof XSDComplexTypeDefinition)
-    {
-      XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)parent;
-      owner = parent;
-      if (ct.getContent() instanceof XSDParticle)
-      {
-        XSDParticle particle = (XSDParticle)ct.getContent();
-        if (particle.getContent() instanceof XSDModelGroup)
-        {
-          owner = null;
-          newModelGroup = createModelGroup();
-          XSDModelGroup newParent = (XSDModelGroup)particle.getContent();
-          newParent.getContents().add(newModelGroup.getContainer());
-        }
-        
-      }
-    }
-    return owner;
-  }
-  
-
-  protected boolean adopt(XSDConcreteComponent model)
-  {
-    return false;
-  }
-  
-  protected XSDModelGroup createModelGroup()
-  {
-    
-    XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-    XSDParticle particle = factory.createXSDParticle();
-    XSDModelGroup modelGroup = factory.createXSDModelGroup();
-    modelGroup.setCompositor(xsdCompositor);
-    particle.setContent(modelGroup);
-    addedXSDConcreteComponent = modelGroup;
-    return modelGroup;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupDefinitionCommand.java
deleted file mode 100644
index 8e0596d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupDefinitionCommand.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.List;
-
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDSchemaBuildingTools;
-import org.w3c.dom.Text;
-
-public class AddXSDModelGroupDefinitionCommand extends BaseCommand
-{
-  XSDConcreteComponent parent;
-  boolean isReference;
-
-  public AddXSDModelGroupDefinitionCommand(String label, XSDConcreteComponent parent, boolean isReference)
-  {
-    super(label);
-    this.parent = parent;
-    this.isReference = isReference;
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.gef.commands.Command#execute()
-   */
-  public void execute()
-  {
-    if (parent instanceof XSDSchema)
-    {
-      ensureSchemaElement((XSDSchema)parent);
-    }
-    try
-    {
-      beginRecording(parent.getElement());
-      if (!isReference)
-      {
-        XSDModelGroupDefinition def = createXSDModelGroupDefinition();
-        addedXSDConcreteComponent = def;
-      }
-      else
-      {
-        XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-        XSDModelGroupDefinition def = factory.createXSDModelGroupDefinition();
-        XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle();
-        particle.setContent(def);
-        List list = parent.getSchema().getModelGroupDefinitions();
-        if (list.size() > 0)
-        {
-          def.setResolvedModelGroupDefinition((XSDModelGroupDefinition) list.get(0));
-        }
-        else
-        {
-          XSDModelGroupDefinition newGroupDef = createXSDModelGroupDefinition();
-          def.setResolvedModelGroupDefinition(newGroupDef);
-        }
-
-        if (parent instanceof XSDModelGroup)
-        {
-          ((XSDModelGroup) parent).getContents().add(particle);
-        }
-        formatChild(def.getElement());
-        addedXSDConcreteComponent = def;
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  protected XSDModelGroupDefinition createXSDModelGroupDefinition()
-  {
-    XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-    XSDModelGroupDefinition def = factory.createXSDModelGroupDefinition();
-    List list = parent.getSchema().getModelGroupDefinitions();
-    String newName = XSDCommonUIUtils.createUniqueElementName("ModelGroupDefinition", list); //$NON-NLS-1$
-    def.setName(newName);
-
-    XSDModelGroup modelGroup = createModelGroup();
-    def.setModelGroup(modelGroup);
-    Text textNode = parent.getSchema().getDocument().createTextNode("\n"); //$NON-NLS-1$
-    parent.getSchema().getElement().appendChild(textNode);
-    parent.getSchema().getContents().add(def);
-    formatChild(def.getElement());
-    return def;
-  }
-
-  protected XSDModelGroup createModelGroup()
-  {
-    XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-    XSDParticle particle = factory.createXSDParticle();
-    XSDModelGroup modelGroup = factory.createXSDModelGroup();
-    modelGroup.setCompositor(XSDCompositor.SEQUENCE_LITERAL);
-    particle.setContent(modelGroup);
-
-    return modelGroup;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDRedefineCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDRedefineCommand.java
deleted file mode 100644
index e2fd367..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDRedefineCommand.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-
-public class AddXSDRedefineCommand extends AddXSDSchemaDirectiveCommand
-{
-  public AddXSDRedefineCommand(String label, XSDSchema schema)
-  {
-    super(label);
-    this.xsdSchema = schema;
-  }
-
-  public void execute()
-  {
-    super.execute();
-    try
-    {
-      // Add this after if we don't have a DOM Node yet
-      beginRecording(xsdSchema.getElement());
-      XSDRedefine xsdRedefine = XSDFactory.eINSTANCE.createXSDRedefine();
-      xsdRedefine.setSchemaLocation(""); //$NON-NLS-1$
-      xsdSchema.getContents().add(findNextPositionToInsert(), xsdRedefine);
-      addedXSDConcreteComponent = xsdRedefine;
-      formatChild(xsdSchema.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSchemaDirectiveCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSchemaDirectiveCommand.java
deleted file mode 100644
index a4f9008..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSchemaDirectiveCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.Iterator;
-
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-
-public abstract class AddXSDSchemaDirectiveCommand extends BaseCommand
-{
-  protected XSDSchema xsdSchema;
-  
-  public AddXSDSchemaDirectiveCommand(String label)
-  {
-    super(label);
-  }
-
-  public void undo()
-  {
-    super.undo();
-  }
-
-  protected boolean adopt(XSDConcreteComponent model)
-  {
-    return false;
-  }
-  
-  protected int findNextPositionToInsert()
-  {
-    int index = 0;
-    for (Iterator i = xsdSchema.getContents().iterator(); i.hasNext(); )
-    {
-      Object o = i.next();
-      if (o instanceof XSDSchemaDirective)
-      {
-        index ++;
-      }
-      else
-      {
-        break;
-      }
-    }
-    return index;
-  }
-
-  public void execute()
-  {
-    ensureSchemaElement(xsdSchema);
- }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSimpleTypeDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSimpleTypeDefinitionCommand.java
deleted file mode 100644
index b2bdcc4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSimpleTypeDefinitionCommand.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Text;
-
-public final class AddXSDSimpleTypeDefinitionCommand extends BaseCommand
-{
-  XSDConcreteComponent parent;
-  XSDSimpleTypeDefinition createdSimpleType;
-  private String nameToAdd;
-  
-  public AddXSDSimpleTypeDefinitionCommand(String label, XSDConcreteComponent parent)
-  {
-    super(label);
-    this.parent = parent;
-  }
-
-  public void setNameToAdd(String nameToAdd)
-  {
-    this.nameToAdd = nameToAdd;
-  }
-  
-  public void execute()
-  {
-    if (parent instanceof XSDSchema)
-    {
-      ensureSchemaElement((XSDSchema)parent);
-    }
-    
-    try
-    {
-      beginRecording(parent.getElement());
-      XSDSimpleTypeDefinition typeDef = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-      typeDef.setBaseTypeDefinition(parent.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "string")); //$NON-NLS-1$
-
-      if (parent instanceof XSDSchema)
-      {
-        typeDef.setName(XSDCommonUIUtils.createUniqueElementName(nameToAdd == null ? "XSDSimpleType" : nameToAdd, ((XSDSchema) parent).getTypeDefinitions())); //$NON-NLS-1$
-        createdSimpleType = typeDef;
-        try
-        {
-          XSDSchema xsdSchema = (XSDSchema) parent;
-          Text textNode = xsdSchema.getDocument().createTextNode("\n"); //$NON-NLS-1$
-          xsdSchema.getElement().appendChild(textNode);
-          xsdSchema.getContents().add(typeDef);
-        }
-        catch (Exception e)
-        {
-
-        }
-      }
-      else if (parent instanceof XSDElementDeclaration)
-      {
-        ((XSDElementDeclaration) parent).setAnonymousTypeDefinition(typeDef);
-      }
-      else if (parent instanceof XSDAttributeDeclaration)
-      {
-        ((XSDAttributeDeclaration) parent).setAnonymousTypeDefinition(typeDef);
-      }
-      formatChild(createdSimpleType.getElement());
-
-      addedXSDConcreteComponent = createdSimpleType;
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  public XSDSimpleTypeDefinition getCreatedSimpleType()
-  {
-    return createdSimpleType;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/BaseCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/BaseCommand.java
deleted file mode 100644
index 7a2334e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/BaseCommand.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.sse.core.internal.encoding.CommonEncodingPreferenceNames;
-import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-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.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.ProcessingInstruction;
-import org.w3c.dom.Text;
-
-public class BaseCommand extends Command
-{
-  private static final String XML = "xml"; //$NON-NLS-1$
-
-  XSDConcreteComponent addedXSDConcreteComponent;
-
-  public BaseCommand()
-  {
-    super();
-  }
-
-  public BaseCommand(String label)
-  {
-    super(label);
-  }
-  
-  public XSDConcreteComponent getAddedComponent()
-  {
-    return addedXSDConcreteComponent;
-  }
-  
-  IDOMNode domNode;
-  protected void beginRecording(Object element) {
-    if (element instanceof IDOMNode)
-    {
-      domNode = (IDOMNode) element; 
-      domNode.getModel().beginRecording(this, getUndoDescription());
-    }
-  }
-  
-  protected void endRecording()
-  {
-    if (domNode != null)
-      domNode.getModel().endRecording(this);
-  }
-  
-  protected String getUndoDescription() {
-    return getLabel();
-  }
-
-  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(); 
-      }
-    }
-  }
- 
-  protected static void ensureSchemaElement(XSDSchema schema)
-  {
-    Document document = schema.getDocument();
-    
-    Element schemaElement = document.getDocumentElement();
-
-    if (schemaElement == null)
-    {
-      String targetNamespace = getDefaultNamespace(schema);
-      schema.setTargetNamespace(targetNamespace);
-      Map qNamePrefixToNamespaceMap = schema.getQNamePrefixToNamespaceMap();
-      qNamePrefixToNamespaceMap.put("tns", targetNamespace);      
-      if (XSDEditorPlugin.getDefault().isQualifyXMLSchemaLanguage())
-      {
-        String prefix = XSDEditorPlugin.getDefault().getXMLSchemaPrefix();
-        schema.setSchemaForSchemaQNamePrefix(prefix);
-        qNamePrefixToNamespaceMap.put(prefix, XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);      
-      }
-      else
-      {
-        qNamePrefixToNamespaceMap.put(null, XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);      
-      }
-      
-      schema.updateElement();
-      ensureXMLDirective(document);
-    }
-  }
-
-  private static void ensureXMLDirective(Document document)
-  {
-    if (hasXMLDirective(document))
-    {
-      return;
-    }
-    
-    Node firstChild = document.getFirstChild();
-    ProcessingInstruction xmlDeclaration = getXMLDeclaration(document);
-    document.insertBefore(xmlDeclaration, firstChild);
-    Text textNode = document.createTextNode(System.getProperty("line.separator"));
-    document.insertBefore(textNode, firstChild);
-  }
-  
-  private static boolean hasXMLDirective(Document document)
-  {
-    Node firstChild = document.getFirstChild();
-   
-    if (firstChild == null)
-    {
-      return false;
-    }
-    
-    if (firstChild.getNodeType() != Node.PROCESSING_INSTRUCTION_NODE)
-    {
-      return false;
-    }
-    
-    ProcessingInstruction processingInstruction  = (ProcessingInstruction)firstChild;
-    
-    if (!XML.equals(processingInstruction.getTarget())) 
-    {
-      return false;
-    }
-    
-    return true;
-  }
-
-  private static ProcessingInstruction getXMLDeclaration(Document document)
-  {
-    Preferences preference = XMLCorePlugin.getDefault().getPluginPreferences();
-    String charSet = preference.getString(CommonEncodingPreferenceNames.OUTPUT_CODESET);
-    if (charSet == null || charSet.trim().equals(""))
-    {
-      charSet = "UTF-8";
-    }
-    ProcessingInstruction xmlDeclaration = document.createProcessingInstruction(XML, "version=\"1.0\" encoding=\"" + charSet + "\"");
-    return xmlDeclaration;
-  }
-  
-  private static String getDefaultNamespace(XSDSchema schema)
-  {
-    String namespace = XSDEditorPlugin.getDefault().getXMLSchemaTargetNamespace();
-
-    if (!namespace.endsWith("/"))
-    {
-      namespace = namespace.concat("/");
-    }
-
-    namespace += getFileName(schema) + "/";
-
-    return namespace;
-
-  }
-  
-  private static String getFileName(XSDSchema schema)
-  {
-    URI schemaURI = schema.eResource().getURI();
-    IPath filePath = new Path(schemaURI.toString());
-    return filePath.removeFileExtension().lastSegment().toString();
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ChangeToLocalSimpleTypeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ChangeToLocalSimpleTypeCommand.java
deleted file mode 100644
index bf10d8b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ChangeToLocalSimpleTypeCommand.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDFeature;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class ChangeToLocalSimpleTypeCommand extends BaseCommand
-{
-  XSDFeature parent;
-  XSDSimpleTypeDefinition anonymousSimpleType;
-  XSDSimpleTypeDefinition currentType;
-
-  public ChangeToLocalSimpleTypeCommand(String label, XSDFeature parent)
-  {
-    super(label);
-    this.parent = parent;
-
-//    if (parent instanceof XSDElementDeclaration)
-//    {
-//      XSDElementDeclaration element = (XSDElementDeclaration) parent;
-//      XSDTypeDefinition aType = element.getResolvedElementDeclaration().getTypeDefinition();
-//
-//      if (aType instanceof XSDSimpleTypeDefinition)
-//      {
-//        currentType = (XSDSimpleTypeDefinition) aType;
-//      }
-//    }
-  }
-
-  public void execute()
-  {
-//    anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-//    anonymousSimpleType.setBaseTypeDefinition(currentType);
-    try
-    {
-      beginRecording(parent.getElement());
-
-      if (parent instanceof XSDElementDeclaration)
-      {
-        ((XSDElementDeclaration) parent).setAnonymousTypeDefinition(anonymousSimpleType);
-      }
-      else if (parent instanceof XSDAttributeDeclaration)
-      {
-        ((XSDAttributeDeclaration) parent).setAnonymousTypeDefinition(anonymousSimpleType);
-      }
-      formatChild(parent.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }    
-  }
-  
-  public void setAnonymousSimpleType(XSDSimpleTypeDefinition anonymousSimpleType)
-  {
-    this.anonymousSimpleType = anonymousSimpleType;
-  }
-
-  public XSDSimpleTypeDefinition getAnonymousType()
-  {
-    if (anonymousSimpleType == null)
-    {
-      anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-      anonymousSimpleType.setBaseTypeDefinition(currentType);
-    }
-    return anonymousSimpleType;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/DeleteCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/DeleteCommand.java
deleted file mode 100644
index c86acec..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/DeleteCommand.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDVisitor;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDEnumerationFacet;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class DeleteCommand extends BaseCommand
-{
-  XSDConcreteComponent target;
-
-  public DeleteCommand(String label, XSDConcreteComponent target)
-  {
-    super(label);
-    this.target = target;
-  }
-
-  public void execute()
-  {
-    XSDVisitor visitor = new XSDVisitor()
-    {
-      public void visitElementDeclaration(org.eclipse.xsd.XSDElementDeclaration element)
-      {
-        if (element.getTypeDefinition() == target)
-        {
-          XSDSimpleTypeDefinition type = target.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string"); //$NON-NLS-1$
-          element.setTypeDefinition(type);
-        }
-        super.visitElementDeclaration(element);
-      }
-    };
-
-    XSDConcreteComponent parent = target.getContainer();
-
-    try
-    {
-      beginRecording(parent.getElement());
-
-      if (target instanceof XSDModelGroup || target instanceof XSDElementDeclaration || target instanceof XSDModelGroupDefinition)
-      {
-        if (parent instanceof XSDParticle)
-        {
-          if (parent.getContainer() instanceof XSDModelGroup)
-          {
-            XSDModelGroup modelGroup = (XSDModelGroup) ((XSDParticle) parent).getContainer();
-
-            modelGroup.getContents().remove(parent);
-          }
-          else if (parent.getContainer() instanceof XSDComplexTypeDefinition)
-          {
-            XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) parent.getContainer();
-            complexType.setContent(null);
-          }
-        }
-        else if (parent instanceof XSDSchema)
-        {
-          visitor.visitSchema(target.getSchema());
-          ((XSDSchema) parent).getContents().remove(target);
-        }
-
-      }
-      else if (target instanceof XSDAttributeDeclaration)
-      {
-        if (parent instanceof XSDAttributeUse)
-        {
-          EObject obj = parent.eContainer();
-          XSDComplexTypeDefinition complexType = null;
-          while (obj != null)
-          {
-            if (obj instanceof XSDComplexTypeDefinition)
-            {
-              complexType = (XSDComplexTypeDefinition) obj;
-              break;
-            }
-            obj = obj.eContainer();
-          }
-          if (complexType != null)
-          {
-            complexType.getAttributeContents().remove(parent);
-          }
-
-          if (parent.getContainer() instanceof XSDAttributeGroupDefinition)
-          {
-            XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition) parent.getContainer();
-
-            attrGroup.getContents().remove(parent);
-          }
-        }
-        else if (parent instanceof XSDSchema)
-        {
-          visitor.visitSchema(target.getSchema());
-          ((XSDSchema) parent).getContents().remove(target);
-        }
-      }
-      else if (target instanceof XSDAttributeGroupDefinition && parent instanceof XSDComplexTypeDefinition)
-      {
-        ((XSDComplexTypeDefinition) parent).getAttributeContents().remove(target);
-      }
-      else if (target instanceof XSDEnumerationFacet)
-      {
-        XSDEnumerationFacet enumerationFacet = (XSDEnumerationFacet) target;
-        enumerationFacet.getSimpleTypeDefinition().getFacetContents().remove(enumerationFacet);
-      }
-      else if (target instanceof XSDWildcard)
-      {
-        if (parent instanceof XSDParticle)
-        {
-          if (parent.getContainer() instanceof XSDModelGroup)
-          {
-            XSDModelGroup modelGroup = (XSDModelGroup) ((XSDParticle) parent).getContainer();
-            modelGroup.getContents().remove(parent);
-          }
-        }
-        else if (parent instanceof XSDComplexTypeDefinition)
-        {
-          ((XSDComplexTypeDefinition) parent).setAttributeWildcardContent(null);
-        }
-        else if (parent instanceof XSDAttributeGroupDefinition)
-        {
-          ((XSDAttributeGroupDefinition) parent).setAttributeWildcardContent(null);
-        }
-      }
-      else if (target instanceof XSDComplexTypeDefinition && parent instanceof XSDElementDeclaration)
-      {
-        ((XSDElementDeclaration) parent).setTypeDefinition(target.resolveSimpleTypeDefinition(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "string"));
-      }
-      else
-      {
-        if (parent instanceof XSDSchema)
-        {
-          visitor.visitSchema(target.getSchema());
-          ((XSDSchema) parent).getContents().remove(target);
-        }
-      }
-
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ExtensibleAddExtensionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ExtensibleAddExtensionCommand.java
deleted file mode 100644
index 9e37158..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ExtensibleAddExtensionCommand.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.common.commands;
-
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceTable;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class ExtensibleAddExtensionCommand extends AddExtensionCommand
-{
-  protected XSDElementDeclaration element;
-  protected Element appInfo;
-  protected Element newElement;
-
-  public ExtensibleAddExtensionCommand(String label)
-  {
-    super(label);
-  }
-
-  public XSDElementDeclaration getXSDElementDeclarationElement()
-  {
-    return element;
-  }
-  
-  public Element getNewElement()
-  {
-    return newElement;
-  }
-
-  public Element getAppInfo()
-  {
-    return appInfo;
-  }
-  
-  public XSDSchema getXSDSchema()
-  {
-    return component.getSchema();    
-  }
-
-  public void setInputs(XSDConcreteComponent input, XSDElementDeclaration element)
-  {
-    this.component = input;
-    this.element = element;
-  }
-  
-  public XSDAnnotation getXSDAnnotation()
-  {
-    if (component != null)
-    {
-      XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(component, false);
-      return xsdAnnotation;
-    }
-    return null;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(component.getElement());
-      super.execute();
-      doPreprocessing();
-      addExtensionNode();
-      doCustomizedActions();
-      
-      formatChild(component.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-  
-  protected void doPreprocessing()
-  {
-    
-  }
-  
-  protected void addExtensionNode()
-  {
-    XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(component, true);
-    XSDSchema schema= xsdAnnotation.getSchema();
-    Element schemaElement = schema.getElement();
-
-    if (xsdAnnotation.getApplicationInformation().size() == 0)
-    {
-      appInfo = xsdAnnotation.createApplicationInformation(null);
-      xsdAnnotation.getElement().appendChild(appInfo);
-      List appInfos = xsdAnnotation.getApplicationInformation();
-      appInfos.add(appInfo);
-    }
-    else
-    {
-      // use the first appInfo
-      appInfo = (Element)xsdAnnotation.getApplicationInformation().get(0);
-    }
-
-    if (appInfo != null)
-    {
-      Document doc = appInfo.getOwnerDocument();
-      String prefix = addToNamespaceTable(schemaElement);
-      newElement = doc.createElementNS(extensionsSchemaSpec.getNamespaceURI(), element.getName());
-      newElement.setPrefix(prefix);   
-      appInfo.appendChild(newElement);
-
-      xsdAnnotation.updateElement();
-    }
-  }
-  
-  protected String addToNamespaceTable(Element schemaElement)
-  {
-    String prefix = addNamespaceDeclarationIfRequired(schemaElement, "p", extensionsSchemaSpec.getNamespaceURI());
-    return prefix;
-  }
-
-  
-  protected void doCustomizedActions()
-  {
-   
-  }
-
-  public void undo()
-  {
-    super.undo();
-  }
-
-  public Object getNewObject()
-  {
-    return newElement;
-  }
-  
-  // TODO... common this up with wsdl.ui
-  protected String addNamespaceDeclarationIfRequired(Element schemaElement, String prefixHint, String namespace)
-  {
-    String prefix = null;      
-    NamespaceTable namespaceTable = new NamespaceTable(schemaElement.getOwnerDocument());
-    namespaceTable.addElement(schemaElement);
-    prefix = namespaceTable.getPrefixForURI(namespace);
-    if (prefix == null)
-    { 
-      String basePrefix = prefixHint;
-      prefix = basePrefix;
-      String xmlnsColon = "xmlns:"; //$NON-NLS-1$
-      String attributeName = xmlnsColon + prefix;
-      int count = 0;
-      while (schemaElement.getAttribute(attributeName) != null)
-      {
-        count++;
-        prefix = basePrefix + count;
-        attributeName = xmlnsColon + prefix;
-      }      
-      schemaElement.setAttribute(attributeName, namespace);  
-    }    
-    return prefix;
-  }
-  
-  protected void addSchemaAttribute(Element schemaElement, String namespace, String attributeName, String attributeValue)
-  {
-    String prefix = null;
-    NamespaceTable namespaceTable = new NamespaceTable(schemaElement.getOwnerDocument());
-    namespaceTable.addElement(schemaElement);
-    prefix = namespaceTable.getPrefixForURI(namespace);
-    try
-    {
-      if (prefix != null)
-      {
-        if (schemaElement.getAttributeNode(prefix + ":" + attributeName) == null)
-          schemaElement.setAttribute(prefix + ":" + attributeName, attributeValue);  
-      }
-      else
-      {
-        if (schemaElement.getAttributeNode(attributeName) == null)
-          schemaElement.setAttribute(attributeName, attributeValue);
-      }
-    }
-    catch (Exception e)
-    {
-      
-    }
-  }
-
-  protected void addSourceAttributeToAppInfo(String namespace)
-  {
-    if (appInfo.getAttributeNode(XSDConstants.SOURCE_ATTRIBUTE) == null)
-      appInfo.setAttribute(XSDConstants.SOURCE_ATTRIBUTE, namespace);
-  }
-  
-  /**
-   * 
-   * @param element
-   * @param attributeName
-   * @param attributeValue
-   */
-  protected void addAttribute(Element element, String attributeName, String attributeValue)
-  {
-    element.setAttribute(attributeName, attributeValue);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ExtensibleRemoveExtensionNodeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ExtensibleRemoveExtensionNodeCommand.java
deleted file mode 100644
index cb5ff38..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ExtensibleRemoveExtensionNodeCommand.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.common.commands;
-
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-
-public class ExtensibleRemoveExtensionNodeCommand extends BaseCommand
-{
-  protected Node node;
-  protected XSDConcreteComponent input;
-  
-  public ExtensibleRemoveExtensionNodeCommand(String label)
-  {
-    super(label);
-  }
-  
-  public void setNode(Node node)
-  {
-    this.node = node;
-  }
-
-  public XSDConcreteComponent getInput()
-  {
-    return input;
-  }
-
-  public void setInput(XSDConcreteComponent input)
-  {
-    this.input = input;
-  }
-
-  public void execute()
-  {
-    super.execute();
-    try
-    {
-      beginRecording(node);
-      
-      doPreprocessing();
-      
-      if (node.getNodeType() == Node.ATTRIBUTE_NODE)
-      {
-        Attr attr = (Attr) node;
-        attr.getOwnerElement().removeAttributeNode(attr);
-      }
-      else if (node.getNodeType() == Node.ELEMENT_NODE)
-      {
-        Node parent = node.getParentNode();
-        if (parent != null)
-        {
-          XSDDOMHelper.removeNodeAndWhitespace(node);
-          
-          if (XSDDOMHelper.hasOnlyWhitespace(parent))
-          {
-            if (XSDConstants.APPINFO_ELEMENT_TAG.equals(parent.getLocalName()))
-            {
-              XSDDOMHelper.removeNodeAndWhitespace(parent);
-            }
-          }
-        }
-      }
-      
-      doCustomizedActions();
-
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  protected void doPreprocessing()
-  {
-   
-  }
-
-  protected void doCustomizedActions()
-  {
-   
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionAttributerCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionAttributerCommand.java
deleted file mode 100644
index a173a43..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionAttributerCommand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-
-/**
- * @deprecated
- */
-public class RemoveExtensionAttributerCommand extends Command 
-{
-	Element hostElement;
-	Attr attr;
-	
-	public RemoveExtensionAttributerCommand(String label, Element hostElement, Attr attr)
-	{
-		super(label);
-		this.hostElement = hostElement;
-		this.attr = attr;
-	}
-	
-	public void execute()
-	{
-		super.execute();
-		hostElement.removeAttributeNode(attr);
-	}
-	
-	public void undo()
-	{
-		super.undo();
-		//TODO implement me
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionElementCommand.java
deleted file mode 100644
index d33c756..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionElementCommand.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.xsd.XSDAnnotation;
-import org.w3c.dom.Node;
-
-/**
- * @deprecated
- */
-public class RemoveExtensionElementCommand extends Command
-{
-  XSDAnnotation xsdAnnotation;
-  Node appInfo;
-
-  public RemoveExtensionElementCommand(String label, XSDAnnotation xsdAnnotation, Node appInfo)
-  {
-    super(label);
-    this.xsdAnnotation = xsdAnnotation;
-    this.appInfo = appInfo;
-  }
-
-  public void execute()
-  {
-    super.execute();
-    xsdAnnotation.getApplicationInformation().remove(appInfo);
-    xsdAnnotation.getElement().removeChild(appInfo);
-    xsdAnnotation.updateElement();
-  }
-
-  public void undo()
-  {
-    super.undo();
-    xsdAnnotation.getApplicationInformation().add(appInfo);
-    xsdAnnotation.getElement().appendChild(appInfo);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionNodeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionNodeCommand.java
deleted file mode 100644
index 2626cb3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionNodeCommand.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-
-public class RemoveExtensionNodeCommand extends BaseCommand
-{
-  Node node;
-  
-  public RemoveExtensionNodeCommand(String label, Node node)
-  {
-    super(label);
-    this.node = node;
-  }  
-
-  public void execute()
-  {
-    super.execute();
-    try
-    {
-      beginRecording(node);
-      if (node.getNodeType() == Node.ATTRIBUTE_NODE)
-      {
-        Attr attr = (Attr) node;
-        attr.getOwnerElement().removeAttributeNode(attr);
-      }
-      else if (node.getNodeType() == Node.ELEMENT_NODE)
-      {
-        Node parent = node.getParentNode();
-        if (parent != null)
-        {
-          XSDDOMHelper.removeNodeAndWhitespace(node);
-          
-          if (XSDDOMHelper.hasOnlyWhitespace(parent))
-          {
-            if (XSDConstants.APPINFO_ELEMENT_TAG.equals(parent.getLocalName()))
-            {
-              XSDDOMHelper.removeNodeAndWhitespace(parent);
-            }
-          }
-        }
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}  
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetBaseTypeAndManagerDirectivesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetBaseTypeAndManagerDirectivesCommand.java
deleted file mode 100644
index 82aa5ef..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetBaseTypeAndManagerDirectivesCommand.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.commands;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class SetBaseTypeAndManagerDirectivesCommand extends UpdateTypeReferenceAndManageDirectivesCommand
-{
-
-  public SetBaseTypeAndManagerDirectivesCommand(XSDConcreteComponent concreteComponent, String componentName, String componentNamespace, IFile file)
-  {
-    super(concreteComponent, componentName, componentNamespace, file);
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(concreteComponent.getElement());
-      XSDComponent td = computeComponent();
-      if (td != null && td instanceof XSDTypeDefinition)
-      {
-        SetBaseTypeCommand command = new SetBaseTypeCommand(concreteComponent, (XSDTypeDefinition) td);
-        command.execute();
-      }
-    }
-    catch (Exception e)
-    {
-
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetBaseTypeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetBaseTypeCommand.java
deleted file mode 100644
index e1106e5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetBaseTypeCommand.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDDerivationMethod;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-
-public class SetBaseTypeCommand extends BaseCommand
-{
-  XSDConcreteComponent concreteComponent;
-  XSDTypeDefinition baseType;
-  XSDBaseAdapter adapter;
-  
-
-  public SetBaseTypeCommand(XSDConcreteComponent concreteComponent, XSDTypeDefinition baseType)
-  {
-    super(Messages._UI_ACTION_SET_BASE_TYPE);
-    this.concreteComponent = concreteComponent;
-    this.baseType = baseType;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(concreteComponent.getElement());
-      if (concreteComponent instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) concreteComponent;
-
-        if (baseType instanceof XSDSimpleTypeDefinition)
-        {
-          if (!(complexType.getContent() instanceof XSDSimpleTypeDefinition))
-          {
-            XSDSimpleTypeDefinition simpleContent = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-            complexType.setContent(simpleContent);
-          }
-        }
-
-        complexType.setBaseTypeDefinition(baseType);
-        complexType.setDerivationMethod(XSDDerivationMethod.EXTENSION_LITERAL);
-        formatChild(complexType.getElement());
-      }
-      else if (concreteComponent instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition) concreteComponent;
-        if (baseType instanceof XSDSimpleTypeDefinition)
-        {
-          XSDVariety variety = simpleType.getVariety();
-          if (variety.getValue() == XSDVariety.ATOMIC)
-          {
-            simpleType.setBaseTypeDefinition((XSDSimpleTypeDefinition) baseType);
-          }
-          else if (variety.getValue() == XSDVariety.UNION)
-          {
-            simpleType.getMemberTypeDefinitions().add(baseType);
-          }
-          else if (variety.getValue() == XSDVariety.LIST)
-          {
-            simpleType.setItemTypeDefinition((XSDSimpleTypeDefinition) baseType);
-          }
-        }
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetMultiplicityCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetMultiplicityCommand.java
deleted file mode 100644
index 1679fec..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetMultiplicityCommand.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-
-public class SetMultiplicityCommand extends BaseCommand
-{
-  XSDConcreteComponent parent;
-  int maxOccurs, minOccurs;
-
-  /**
-   * @param parent
-   */
-  public SetMultiplicityCommand(String label)
-  {
-    super(label);
-  }
-  
-  public void setMaxOccurs(int i)
-  {
-    maxOccurs=i;
-  }
-
-  public void setMinOccurs(int i)
-  {
-    minOccurs=i;    
-  }
-
-  public void setXSDConcreteComponent(XSDConcreteComponent parent)
-  {
-    this.parent = parent;
-  }
-  
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.xsd.ui.internal.commands.AbstractCommand#run()
-   */
-  public void execute()
-  {
-    try
-    {
-      beginRecording(parent.getElement());
-      if (parent instanceof XSDParticleContent)
-      {
-        XSDParticleContent xsdParticleContent = (XSDParticleContent) parent;
-        XSDParticle xsdParticle = (XSDParticle) xsdParticleContent.getContainer();
-        if (maxOccurs < 0)
-        {
-          maxOccurs = XSDParticle.UNBOUNDED;
-        }
-        xsdParticle.setMaxOccurs(maxOccurs);
-        xsdParticle.setMinOccurs(minOccurs);
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetTypeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetTypeCommand.java
deleted file mode 100644
index da4cb49..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetTypeCommand.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.actions.SetTypeAction;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDTypeReferenceEditManager;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-
-public class SetTypeCommand extends BaseCommand
-{
-  XSDConcreteComponent parent;
-  private boolean continueApply;
-  XSDBaseAdapter adapter;
-  String action;
-
-  public SetTypeCommand(String label, String ID, XSDConcreteComponent parent)
-  {
-    super(label);
-    this.parent = parent;
-    this.action = ID;
-  }
-  
-  public void setAdapter(XSDBaseAdapter adapter)
-  {
-    this.adapter = adapter;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(parent.getElement());
-      ComponentReferenceEditManager componentReferenceEditManager = getComponentReferenceEditManager();
-      continueApply = true;
-      if (parent instanceof XSDElementDeclaration)
-      {
-        if (action.equals(SetTypeAction.SET_NEW_TYPE_ID))
-        {
-          ComponentSpecification newValue = (ComponentSpecification) invokeDialog(componentReferenceEditManager.getNewDialog());
-          if (continueApply)
-            componentReferenceEditManager.modifyComponentReference(adapter, newValue);
-        }
-        else
-        {
-          ComponentSpecification newValue = (ComponentSpecification) invokeDialog(componentReferenceEditManager.getBrowseDialog());
-          if (continueApply)
-            componentReferenceEditManager.modifyComponentReference(adapter, newValue);
-        }
-        formatChild(parent.getElement());
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  private Object invokeDialog(IComponentDialog dialog)
-  {
-    Object newValue = null;
-
-    if (dialog == null)
-    {
-      return null;
-    }
-
-    if (dialog.createAndOpen() == Window.OK)
-    {
-      newValue = dialog.getSelectedComponent();
-    }
-    else
-    {
-      continueApply = false;
-    }
-
-    return newValue;
-  }
-
-  protected ComponentReferenceEditManager getComponentReferenceEditManager()
-  {
-    ComponentReferenceEditManager result = null;
-    IEditorPart editor = getActiveEditor();
-    if (editor != null)
-    {
-      result = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);
-    }  
-    return result;
-  }
-  
-  private IEditorPart getActiveEditor()
-  {
-    IWorkbench workbench = PlatformUI.getWorkbench();
-    IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-    IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-    return editorPart;
-  }    
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetXSDFacetValueCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetXSDFacetValueCommand.java
deleted file mode 100644
index 3d71717..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetXSDFacetValueCommand.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDFacet;
-
-public class SetXSDFacetValueCommand extends BaseCommand
-{
-  protected XSDFacet facet;
-  protected String value;
-  
-  public SetXSDFacetValueCommand(String label, XSDFacet facet)
-  {
-    super(label);
-    this.facet = facet;
-  }
-  
-  public void setValue(String value)
-  {
-    this.value = value; 
-  }
-  
-  public void execute()
-  {
-    try
-    {
-      beginRecording(facet.getElement());
-      facet.setLexicalValue(value);
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateAttributeValueCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateAttributeValueCommand.java
deleted file mode 100644
index f6dbe81..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateAttributeValueCommand.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.w3c.dom.Element;
-
-/*
- * This command is used from the extension view to edit extension elements
- * and attributes which are implemented as DOM objects (not part of the EMF model)
- * 
- * (trung) also used in XSDComplexTypeAdvancedSection to change attribute of
- * specical attributes like block, restriction which is not part of EMF Model
- */
-public class UpdateAttributeValueCommand  extends BaseCommand
-{
-  Element element;
-  String attributeName;
-  String attributeValue;
-  
-  /** Whether the attribute should be deleted if value to 
-   *   be set is an empty String or null  */
-  protected boolean deleteIfValueEmpty = false;
-  
-  public UpdateAttributeValueCommand(Element element, String attributeName, String attributeValue, boolean deleteIfValueEmpty)
-  {
-    this.element = element;
-    this.attributeName = attributeName;
-    this.attributeValue = attributeValue;
-    this.deleteIfValueEmpty = deleteIfValueEmpty;
-  }
-  
-  public UpdateAttributeValueCommand(Element element, String attributeName, String attributeValue)
-  {
-    this(element, attributeName, attributeValue, false);       
-  }
-
-  public void setDeleteIfEmpty(boolean v)
-  {
-	deleteIfValueEmpty = v;
-  }
-  
-  public void execute()
-  {
-    try
-    {
-      beginRecording(element);
-      if (deleteIfValueEmpty && 
-    		  (attributeValue == null || attributeValue.equals("") ) )
-      {
-    	element.removeAttribute(attributeName);
-      }
-      else
-      {
-        element.setAttribute(attributeName, attributeValue);
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComplexTypeDerivationBy.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComplexTypeDerivationBy.java
deleted file mode 100644
index 6c0bbab..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComplexTypeDerivationBy.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDDerivationMethod;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class UpdateComplexTypeDerivationBy extends BaseCommand
-{
-  private XSDComplexTypeDefinition complexType;
-  private String derivation;
-
-  public UpdateComplexTypeDerivationBy(XSDComplexTypeDefinition complexType, String derivation)
-  {
-    this.complexType = complexType;
-    this.derivation = derivation;
-    // TODO: use new Message bundle mechanism
-    setLabel(XSDEditorPlugin.getXSDString("_UI_DERIVEDBY_CHANGE"));
-  }
-
-  public void execute()
-  {
-    super.execute();
-    try
-    {
-      beginRecording(complexType.getElement());
-      if (derivation.equals(XSDConstants.EXTENSION_ELEMENT_TAG))
-      {
-        complexType.setDerivationMethod(XSDDerivationMethod.EXTENSION_LITERAL);
-      }
-      else if (derivation.equals(XSDConstants.RESTRICTION_ELEMENT_TAG))
-      {
-        complexType.setDerivationMethod(XSDDerivationMethod.RESTRICTION_LITERAL);
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComponentReferenceAndManageDirectivesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComponentReferenceAndManageDirectivesCommand.java
deleted file mode 100644
index fcb9b46..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComponentReferenceAndManageDirectivesCommand.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSchemaDirective;
-import org.eclipse.xsd.util.XSDResourceImpl;
-public abstract class UpdateComponentReferenceAndManageDirectivesCommand extends BaseCommand
-{
-  protected XSDConcreteComponent concreteComponent;
-  protected String componentName;
-  protected String componentNamespace;
-  protected IFile file;
-
-  public UpdateComponentReferenceAndManageDirectivesCommand(XSDConcreteComponent concreteComponent, String componentName, String componentNamespace, IFile file)
-  {
-    this.concreteComponent = concreteComponent;
-    this.componentName = componentName;
-    this.componentNamespace = componentNamespace;
-    this.file = file;
-  }
-
-  protected XSDComponent computeComponent()
-  {
-    XSDComponent result = null;
-    XSDSchema schema = concreteComponent.getSchema();
-    XSDSchemaDirective directive = null;
-    // TODO (cs) handle case where namespace==null
-    //
-    if (componentNamespace != null)
-    {
-      // lets see if the element is already visible to our schema
-      result = getDefinedComponent(schema, componentName, componentNamespace);
-      if (result == null)
-      {
-        // TODO (cs) we need to provide a separate command to do this part
-        //
-        // apparently the element is not yet visible, we need to add
-        // includes/imports to get to it
-        if (componentNamespace.equals(schema.getTargetNamespace()))
-        {
-          // we need to add an include
-          directive = XSDFactory.eINSTANCE.createXSDInclude();
-        }
-        else
-        {
-          // we need to add an import
-          XSDImport xsdImport = XSDFactory.eINSTANCE.createXSDImport();
-          xsdImport.setNamespace(componentNamespace);
-          directive = xsdImport;
-        }
-     
-        String location = computeNiceLocation(schema.getSchemaLocation(), file);       
-        directive.setSchemaLocation(location);
-        // TODO (cs) we should at the directive 'next' in the list of directives
-        // for now I'm just adding as the first thing in the schema :-(
-        //
-        schema.getContents().add(0, directive);
-        XSDSchema resolvedSchema = directive.getResolvedSchema();
-        if (resolvedSchema == null)
-        {
-          String platformLocation = "platform:/resource" + file.getFullPath();
-          Resource resource = concreteComponent.eResource().getResourceSet().createResource(URI.createURI(platformLocation));
-          if (resource instanceof XSDResourceImpl)
-          {
-            try
-            {
-              resource.load(null);
-              XSDResourceImpl resourceImpl = (XSDResourceImpl) resource;
-              resolvedSchema = resourceImpl.getSchema();
-              if (resolvedSchema != null)
-              {
-                directive.setResolvedSchema(resolvedSchema);
-              }
-            }
-            catch (Exception e)
-            {
-            }
-          }
-        }
-        if (resolvedSchema != null)
-        {
-          result = getDefinedComponent(resolvedSchema, componentName, componentNamespace);
-        }
-        else
-        {
-          // TODO (cs) consider setting some error state so that the client can
-          // provide a pop-dialog error
-          // we should also remove the import/include so save from cluttering
-          // the file with bogus directives
-        }
-      }
-    }
-    return result;
-  }
-  
-  private final static String PLATFORM_RESOURCE_PREFIX = "platform:/resource";
-  private String computeNiceLocation(String baseLocation, IFile file)
-  {     
-    if (baseLocation.startsWith(PLATFORM_RESOURCE_PREFIX))
-    {
-      URI baseURI = URI.createURI(baseLocation);
-      URI fileURI = URI.createPlatformResourceURI(file.getFullPath().toString());
-      URI relative = fileURI.deresolve(baseURI, false, true, true);      
-      return relative.toString();
-    }
-    else
-    {
-      URI baseURI = URI.createURI(baseLocation);          
-      URI fileURI = URI.createFileURI(file.getLocation().toOSString());
-      URI relative = fileURI.deresolve(baseURI, false, true, true);     
-      return relative.toString();    
-    } 
-  }
-
-  protected abstract XSDComponent getDefinedComponent(XSDSchema schema, String componentName, String componentNamespace);
-
-  public abstract void execute();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateContentModelCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateContentModelCommand.java
deleted file mode 100644
index 87a560e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateContentModelCommand.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDModelGroup;
-
-public class UpdateContentModelCommand extends BaseCommand
-{
-  XSDModelGroup xsdModelGroup;
-  XSDCompositor oldXSDCompositor, newXSDCompositor;
-  
-  
-  public UpdateContentModelCommand(String label, XSDModelGroup xsdModelGroup, XSDCompositor xsdCompositor)
-  {
-    super(label);
-    this.xsdModelGroup = xsdModelGroup;
-    this.newXSDCompositor = xsdCompositor;
-    this.oldXSDCompositor = xsdModelGroup.getCompositor();
-  }
-
-  
-  public void execute()
-  {
-    try
-    {
-      super.execute();
-      beginRecording(xsdModelGroup.getElement());
-      xsdModelGroup.setCompositor(newXSDCompositor);
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-    
-  public void undo()
-  {
-    xsdModelGroup.setCompositor(oldXSDCompositor);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceAndManageDirectivesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceAndManageDirectivesCommand.java
deleted file mode 100644
index d280181..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceAndManageDirectivesCommand.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-
-public class UpdateElementReferenceAndManageDirectivesCommand extends UpdateComponentReferenceAndManageDirectivesCommand
-{
-  public UpdateElementReferenceAndManageDirectivesCommand(XSDConcreteComponent concreteComponent, String componentName, String componentNamespace, IFile file)
-  {
-    super(concreteComponent, componentName, componentNamespace, file);
-  }
-
-  protected XSDComponent getDefinedComponent(XSDSchema schema, String componentName, String componentNamespace)
-  {
-    XSDElementDeclaration result = schema.resolveElementDeclaration(componentNamespace, componentName);
-    if (result.eContainer() == null)
-    {
-      result = null;
-    }
-    return result;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(concreteComponent.getElement());
-      XSDComponent elementDef = computeComponent();
-      if (elementDef != null)
-      {
-        UpdateElementReferenceCommand command = new UpdateElementReferenceCommand(Messages._UI_ACTION_UPDATE_ELEMENT_REFERENCE, (XSDElementDeclaration) concreteComponent,
-            (XSDElementDeclaration) elementDef);
-        command.execute();
-      }
-    }
-    catch (Exception e)
-    {
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceCommand.java
deleted file mode 100644
index d4b5278..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceCommand.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDElementDeclaration;
-
-public class UpdateElementReferenceCommand extends BaseCommand
-{
-  XSDElementDeclaration element, ref;
-
-  public UpdateElementReferenceCommand(String label, XSDElementDeclaration element, XSDElementDeclaration ref)
-  {
-    super(label);
-    this.element = element;
-    this.ref = ref;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(element.getElement());
-      element.setResolvedElementDeclaration(ref);
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMaxOccursCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMaxOccursCommand.java
deleted file mode 100644
index c49051f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMaxOccursCommand.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class UpdateMaxOccursCommand extends BaseCommand
-{
-	private int oldMaxOccurs;
-	private int newMaxOccurs;
-  private boolean removeMaxOccursAttribute;
-	
-	XSDParticle particle;
-
-  public UpdateMaxOccursCommand(String label, XSDParticle particle, int MaxOccurs)
-	{
-		super(label);
-		this.newMaxOccurs = MaxOccurs;
-		this.particle = particle;
-	}
-	
-	public void execute()
-	{
-    try
-    {
-      Element element = particle.getElement();
-      beginRecording(element);
-      String currentMax = element.getAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-      removeMaxOccursAttribute = (currentMax == null)? true: false;
-		  oldMaxOccurs = particle.getMaxOccurs();
-		  particle.setMaxOccurs(newMaxOccurs);
-    }
-    finally
-    {
-      endRecording();
-    }
-	}
-	
-	public void redo()
-	{
-		execute();
-	}
-	
-	public void undo()
-	{
-    if (removeMaxOccursAttribute)
-    {
-      particle.unsetMaxOccurs();
-    }
-    else
-    {
-		  particle.setMaxOccurs(oldMaxOccurs);
-    }
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMinOccursCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMinOccursCommand.java
deleted file mode 100644
index 364523f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMinOccursCommand.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDAttributeUseCategory;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class UpdateMinOccursCommand extends BaseCommand
-{
-  private int oldMinOccurs;
-  private int newMinOccurs;
-  private boolean removeMinOccursAttribute;
-
-  XSDComponent component;
-
-  public UpdateMinOccursCommand(String label, XSDComponent component, int minOccurs)
-  {
-    super(label);
-    this.newMinOccurs = minOccurs;
-    this.component = component;
-  }
-
-  public void execute()
-  {
-    Element element = component.getElement();
-    try
-    {
-      beginRecording(element);
-      String currentMin = element.getAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-      removeMinOccursAttribute = (currentMin == null) ? true : false;
-
-      if (component instanceof XSDParticle)
-      {
-        oldMinOccurs = ((XSDParticle) component).getMinOccurs();
-        ((XSDParticle) component).setMinOccurs(newMinOccurs);
-      }
-      else if (component instanceof XSDAttributeUse)
-      {
-        oldMinOccurs = (((XSDAttributeUse) component).getUse() == XSDAttributeUseCategory.REQUIRED_LITERAL ? 1 : 0);
-        if (newMinOccurs == 1)
-          ((XSDAttributeUse) component).setUse(XSDAttributeUseCategory.REQUIRED_LITERAL);
-        else
-          ((XSDAttributeUse) component).setUse(XSDAttributeUseCategory.OPTIONAL_LITERAL);
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-  public void undo()
-  {
-    if (component instanceof XSDParticle)
-    {
-      if (removeMinOccursAttribute)
-      {
-        ((XSDParticle) component).unsetMinOccurs();
-      }
-      else
-      {
-        ((XSDParticle) component).setMinOccurs(oldMinOccurs);
-      }
-    }
-    else if (component instanceof XSDAttributeUse)
-    {
-      if (removeMinOccursAttribute)
-      {
-        ((XSDParticle) component).unsetMinOccurs();
-      }
-      else
-      {
-        if (oldMinOccurs == 1)
-          ((XSDAttributeUse) component).setUse(XSDAttributeUseCategory.REQUIRED_LITERAL);
-        else
-          ((XSDAttributeUse) component).setUse(XSDAttributeUseCategory.OPTIONAL_LITERAL);
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNameCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNameCommand.java
deleted file mode 100644
index 064207d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNameCommand.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xsd.ui.internal.refactor.PerformUnsavedRefactoringOperation;
-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.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-
-public class UpdateNameCommand extends BaseCommand
-{
-//  private String oldName;
-  private String newName;
-  private XSDNamedComponent component;
-
-  public UpdateNameCommand(String label, XSDNamedComponent component, String newName)
-  {
-    super(label);
-
-    if (component instanceof XSDComplexTypeDefinition && component.getName() == null && component.eContainer() instanceof XSDNamedComponent && ((XSDNamedComponent) component.eContainer()).getName() != null)
-    {
-      component = (XSDNamedComponent) component.eContainer();
-    }
-
-    this.component = component;
-    this.newName = newName;
-//    this.oldName = component.getName();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.gef.commands.Command#execute()
-   */
-  public void execute()
-  {
-    try
-    {
-      beginRecording(component.getElement());
-      renameComponent(newName);
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-  
-  /**
-   * Performs a rename refactoring to rename the component and all the
-   * references to it within the current schema.
-   * 
-   * @param newName the new component name.
-   */
-  private void renameComponent(String newName)
-  {
-    // this is a 'globally' defined component (e.g. global element)    
-    if (component.eContainer() instanceof XSDSchema)
-    {  
-      RefactoringComponent refactoringComponent = new XMLRefactoringComponent(
-          component,
-          (IDOMElement)component.getElement(), 
-          component.getName(),
-          component.getTargetNamespace());
-
-      RenameComponentProcessor processor = new RenameComponentProcessor(refactoringComponent, newName, true);    
-      RenameRefactoring refactoring = new RenameRefactoring(processor);
-      PerformUnsavedRefactoringOperation operation = new PerformUnsavedRefactoringOperation(refactoring);
-      operation.run(null);
-    } 
-    else
-    {
-      // this is a 'locally' defined component (e.g. local element)
-      // no need to call refactoring since this component can't be referenced      
-      component.setName(newName);
-    }  
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNamespaceInformationCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNamespaceInformationCommand.java
deleted file mode 100644
index f0791b6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNamespaceInformationCommand.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.apache.xerces.util.XMLChar;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.nsedit.TargetNamespaceChangeHandler;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class UpdateNamespaceInformationCommand extends BaseCommand
-{
-  protected XSDSchema xsdSchema;
-  protected String newPrefix, newTargetNamespace;
-  
-  public UpdateNamespaceInformationCommand(String label, XSDSchema xsdSchema, String newPrefix, String newTargetNamespace)
-  {
-    super(label);
-    this.xsdSchema = xsdSchema;
-    this.newPrefix = newPrefix;
-    this.newTargetNamespace = newTargetNamespace;
-  }
-
-  public void execute()
-  {
-    ensureSchemaElement(xsdSchema);
-    
-    Element element = xsdSchema.getElement();
-    try
-    {
-      //DocumentImpl doc = (DocumentImpl) element.getOwnerDocument();
-
-      String modelTargetNamespace = xsdSchema.getTargetNamespace();
-      String oldNamespace = xsdSchema.getTargetNamespace();
-
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      String oldPrefix = helper.getPrefix(element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false);
-
-      if (modelTargetNamespace == null)
-      {
-        modelTargetNamespace = ""; //$NON-NLS-1$
-      }
-
-      String targetNamespace = newTargetNamespace.trim();
-      String prefix = newPrefix.trim();
-
-      if (!validatePrefix(prefix) || !validateTargetNamespace(targetNamespace))
-      {
-        return;
-      }
-
-      if (prefix.length() > 0 && targetNamespace.length() == 0)
-      {
-        // can't have blank targetnamespace and yet specify a prefix
-        return;
-      }
-
-      //doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_TARGETNAMESPACE_CHANGE")); //$NON-NLS-1$
-      beginRecording(element);
-      
-      String xsdForXSDPrefix = xsdSchema.getSchemaForSchemaQNamePrefix();
-      Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-
-      // Check if prefix is blank
-      // if it is, then make sure we have a prefix
-      // for schema for schema
-      if (prefix.length() == 0)
-      {
-        // if prefix for schema for schema is blank
-        // then set it to value specified in preference
-        // and update ALL nodes with this prefix
-        if (xsdForXSDPrefix == null || (xsdForXSDPrefix != null && xsdForXSDPrefix.trim().length() == 0))
-        {
-          // get preference prefix
-          xsdForXSDPrefix = XSDEditorPlugin.getPlugin().getXMLSchemaPrefix();
-          // get a unique prefix by checking what's in the map
-
-          xsdForXSDPrefix = getUniqueSchemaForSchemaPrefix(xsdForXSDPrefix, map);
-          element.setAttribute("xmlns:" + xsdForXSDPrefix, XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001); //$NON-NLS-1$
-
-          updateAllNodes(element, xsdForXSDPrefix);
-
-          // remove the old xmlns attribute for the schema for schema
-          if (element.getAttribute("xmlns") != null && //$NON-NLS-1$
-              element.getAttribute("xmlns").equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001)) //$NON-NLS-1$
-          {
-            element.removeAttribute("xmlns"); //$NON-NLS-1$
-          }
-        }
-      }
-
-      if (targetNamespace.length() > 0 || (targetNamespace.length() == 0 && prefix.length() == 0))
-      {
-        // clean up the old prefix for this schema
-        if (oldPrefix != null && oldPrefix.length() > 0)
-        {
-          element.removeAttribute("xmlns:" + oldPrefix); //$NON-NLS-1$
-          // element.setAttribute("xmlns:" + prefix, targetNamespace);
-          // java.util.Map prefixToNameSpaceMap =
-          // xsdSchema.getQNamePrefixToNamespaceMap();
-          // prefixToNameSpaceMap.remove(oldPrefix);
-        }
-        else
-        // if no prefix
-        {
-          if (element.getAttribute("xmlns") != null) //$NON-NLS-1$
-          {
-            if (!element.getAttribute("xmlns").equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001)) //$NON-NLS-1$
-            {
-              element.removeAttribute("xmlns"); //$NON-NLS-1$
-            }
-          }
-        }
-      }
-
-      if (targetNamespace.length() > 0)
-      {
-        if (!modelTargetNamespace.equals(targetNamespace))
-        {
-          element.setAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE, targetNamespace);
-        }
-        // now set the new xmlns:prefix attribute
-        if (prefix.length() > 0)
-        {
-          element.setAttribute("xmlns:" + prefix, targetNamespace); //$NON-NLS-1$
-        }
-        else
-        {
-          element.setAttribute("xmlns", targetNamespace); //$NON-NLS-1$
-        }
-        // set the targetNamespace attribute
-      }
-      else
-      // else targetNamespace is blank
-      {
-        if (prefix.length() == 0)
-        {
-          element.removeAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE);
-        }
-      }
-
-      // do our own referential integrity
-      TargetNamespaceChangeHandler targetNamespaceChangeHandler = new TargetNamespaceChangeHandler(xsdSchema, oldNamespace, targetNamespace);
-      targetNamespaceChangeHandler.resolve();
-
-      updateElement(xsdSchema);
-
-      //doc.getModel().endRecording(this);
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-  
-  
-  // issue (cs) I don't have a clue why we need to call this method
-  //
-  private static void updateElement(XSDConcreteComponent concreteComp)
-  {
-    try
-    {
-      concreteComp.updateElement();
-    }
-    catch (Exception e)
-    {
-      for (Iterator containments = concreteComp.eClass().getEAllReferences().iterator(); containments.hasNext(); )
-      {
-        EReference eReference = (EReference)containments.next();
-        if (eReference.isContainment())
-        {
-          if (eReference.isMany())
-          {
-            for (Iterator objects = ((Collection)concreteComp.eGet(eReference)).iterator(); objects.hasNext(); )
-            {
-              XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent)objects.next();
-              try
-              {
-                xsdConcreteComponent.updateElement();
-              }
-              catch (Exception ex) {}
-            }
-          }
-          else
-          {
-            XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent)concreteComp.eGet(eReference);
-            if (xsdConcreteComponent != null)
-            {
-              try
-              {
-                xsdConcreteComponent.updateElement();
-              }
-              catch (Exception ex) {}
-            }
-          }
-        }
-      }
-    }
-  }      
-  private String getUniqueSchemaForSchemaPrefix(String xsdForXSDPrefix, Map map)
-  {
-    if (xsdForXSDPrefix == null || (xsdForXSDPrefix != null && xsdForXSDPrefix.trim().length() == 0))
-    {
-      xsdForXSDPrefix = "xsd"; //$NON-NLS-1$
-    }
-    // ensure prefix is unique
-    int prefixExtension = 1;
-    while (map.containsKey(xsdForXSDPrefix) && prefixExtension < 100)
-    {
-      xsdForXSDPrefix = xsdForXSDPrefix + String.valueOf(prefixExtension);
-      prefixExtension++;
-    }
-    return xsdForXSDPrefix;
-  }
-
-  private void updateAllNodes(Element element, String prefix)
-  {
-    element.setPrefix(prefix);
-    NodeList list = element.getChildNodes();
-    if (list != null)
-    {
-      for (int i = 0; i < list.getLength(); i++)
-      {
-        Node child = list.item(i);
-        if (child != null && child instanceof Element)
-        {
-          child.setPrefix(prefix);
-          if (child.hasChildNodes())
-          {
-            updateAllNodes((Element) child, prefix);
-          }
-        }
-      }
-    }
-  }
-
-  private boolean validateTargetNamespace(String ns)
-  {
-    // will allow blank namespace !!
-    if (ns.equals("")) //$NON-NLS-1$
-    {
-      return true;
-    }
-
-    String errorMessage = null;
-    try
-    {
-      URI testURI = new URI(ns);
-      testURI.isAbsolute();
-    }
-    catch (URISyntaxException e)
-    {
-      errorMessage = XSDEditorPlugin.getXSDString("_WARN_INVALID_TARGET_NAMESPACE"); //$NON-NLS-1$
-    }
-
-    if (errorMessage == null || errorMessage.length() == 0)
-    {
-      return true;
-    }
-    return false;
-  }
-  
-  protected boolean validatePrefix(String prefix)
-  {
-    if (prefix != null && prefix.equals("")) return true;
-    return XMLChar.isValidNCName(prefix);
-  }
-  
-  public void redo()
-  {
-    execute();
-  }
-  
-  public void undo()
-  {
-  }
-  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNumericBoundsFacetCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNumericBoundsFacetCommand.java
deleted file mode 100644
index 0f5cea9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNumericBoundsFacetCommand.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDMaxExclusiveFacet;
-import org.eclipse.xsd.XSDMaxInclusiveFacet;
-import org.eclipse.xsd.XSDMinExclusiveFacet;
-import org.eclipse.xsd.XSDMinInclusiveFacet;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class UpdateNumericBoundsFacetCommand extends BaseCommand
-{
-  XSDSimpleTypeDefinition xsdSimpleType;
-  String max, min;
-  boolean includeMin, includeMax;
-  private boolean doUpdateMax = false, doUpdateMin = false;
-  XSDMinInclusiveFacet minInclusiveFacet;
-  XSDMinExclusiveFacet minExclusiveFacet;
-  XSDMaxInclusiveFacet maxInclusiveFacet;
-  XSDMaxExclusiveFacet maxExclusiveFacet;
-
-
-  public UpdateNumericBoundsFacetCommand(String label, XSDSimpleTypeDefinition xsdSimpleType, boolean includeMin, boolean includeMax)
-  {
-    super(label);
-    this.xsdSimpleType = xsdSimpleType;
-    this.includeMin = includeMin;
-    this.includeMax = includeMax;
-    
-    minInclusiveFacet = xsdSimpleType.getMinInclusiveFacet();
-    minExclusiveFacet = xsdSimpleType.getMinExclusiveFacet();
-    maxInclusiveFacet = xsdSimpleType.getMaxInclusiveFacet();
-    maxExclusiveFacet = xsdSimpleType.getMaxExclusiveFacet();
-
-  }
-
-  public void setMin(String min)
-  {
-    this.min = min;
-    doUpdateMin = true;
-  }
-  
-  public void setMax(String max)
-  {
-    this.max = max;
-    doUpdateMax = true;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(xsdSimpleType.getElement());
-
-      if (doUpdateMin)
-      {
-        if (includeMin)
-        {
-          if (minInclusiveFacet == null && min != null)
-          {
-            minInclusiveFacet = XSDFactory.eINSTANCE.createXSDMinInclusiveFacet();
-            minInclusiveFacet.setLexicalValue(min);
-            xsdSimpleType.getFacetContents().add(minInclusiveFacet);
-
-            if (minExclusiveFacet != null)
-            {
-              xsdSimpleType.getFacetContents().remove(minExclusiveFacet);
-            }
-          }
-          else if (minInclusiveFacet != null && min != null)
-          {
-            minInclusiveFacet.setLexicalValue(min);
-          }
-          else if (minInclusiveFacet != null && min == null)
-          {
-            xsdSimpleType.getFacetContents().remove(minInclusiveFacet);
-          }
-        }
-        else
-        // !includeMin
-        {
-          if (minExclusiveFacet == null && min != null)
-          {
-            minExclusiveFacet = XSDFactory.eINSTANCE.createXSDMinExclusiveFacet();
-            minExclusiveFacet.setLexicalValue(min);
-            xsdSimpleType.getFacetContents().add(minExclusiveFacet);
-
-            if (minInclusiveFacet != null)
-            {
-              xsdSimpleType.getFacetContents().remove(minInclusiveFacet);
-            }
-          }
-          else if (minExclusiveFacet != null && min != null)
-          {
-            minExclusiveFacet.setLexicalValue(min);
-          }
-          else if (minExclusiveFacet != null && min == null)
-          {
-            xsdSimpleType.getFacetContents().remove(minExclusiveFacet);
-          }
-        }
-      }
-      else if (doUpdateMax)
-      {
-        if (includeMax)
-        {
-          if (maxInclusiveFacet == null && max != null)
-          {
-            maxInclusiveFacet = XSDFactory.eINSTANCE.createXSDMaxInclusiveFacet();
-            maxInclusiveFacet.setLexicalValue(max);
-            xsdSimpleType.getFacetContents().add(maxInclusiveFacet);
-
-            if (maxExclusiveFacet != null)
-            {
-              xsdSimpleType.getFacetContents().remove(maxExclusiveFacet);
-            }
-          }
-          else if (maxInclusiveFacet != null && max != null)
-          {
-            maxInclusiveFacet.setLexicalValue(max);
-          }
-          else if (maxInclusiveFacet != null && max == null)
-          {
-            xsdSimpleType.getFacetContents().remove(maxInclusiveFacet);
-          }
-        }
-        else
-        // !includeMax
-        {
-          if (maxExclusiveFacet == null && max != null)
-          {
-            maxExclusiveFacet = XSDFactory.eINSTANCE.createXSDMaxExclusiveFacet();
-            maxExclusiveFacet.setLexicalValue(max);
-            xsdSimpleType.getFacetContents().add(maxExclusiveFacet);
-
-            if (maxInclusiveFacet != null)
-            {
-              xsdSimpleType.getFacetContents().remove(maxInclusiveFacet);
-            }
-          }
-          else if (maxExclusiveFacet != null && max != null)
-          {
-            maxExclusiveFacet.setLexicalValue(max);
-          }
-          else if (maxExclusiveFacet != null && max == null)
-          {
-            xsdSimpleType.getFacetContents().remove(maxExclusiveFacet);
-          }
-        }
-      }
-
-      formatChild(xsdSimpleType.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateStringLengthFacetCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateStringLengthFacetCommand.java
deleted file mode 100644
index b5e78e9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateStringLengthFacetCommand.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDLengthFacet;
-import org.eclipse.xsd.XSDMaxLengthFacet;
-import org.eclipse.xsd.XSDMinLengthFacet;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class UpdateStringLengthFacetCommand extends BaseCommand
-{
-  XSDSimpleTypeDefinition xsdSimpleType;
-  String max, min;
-  private boolean doUpdateMax = false, doUpdateMin = false;
-
-  public UpdateStringLengthFacetCommand(String label, XSDSimpleTypeDefinition xsdSimpleType)
-  {
-    super(label);
-    this.xsdSimpleType = xsdSimpleType;
-  }
-  
-  public void setMin(String min)
-  {
-    this.min = min;
-    doUpdateMin = true;
-  }
-  
-  public void setMax(String max)
-  {
-    this.max = max;
-    doUpdateMax = true;
-  }
-  
-  public void execute()
-  {
-    try
-    {
-      beginRecording(xsdSimpleType.getElement());
-      XSDLengthFacet lengthFacet = xsdSimpleType.getEffectiveLengthFacet();
-      XSDMinLengthFacet minLengthFacet = xsdSimpleType.getEffectiveMinLengthFacet();
-      XSDMaxLengthFacet maxLengthFacet = xsdSimpleType.getEffectiveMaxLengthFacet();
-
-      String currentLength = null, currentMin = null, currentMax = null;
-      if (lengthFacet != null)
-      {
-        currentLength = lengthFacet.getLexicalValue();
-      }
-      if (minLengthFacet != null)
-      {
-        currentMin = minLengthFacet.getLexicalValue();
-      }
-      if (maxLengthFacet != null)
-      {
-        currentMax = maxLengthFacet.getLexicalValue();
-      }
-
-      if (doUpdateMax && !doUpdateMin)
-      {
-        if (maxLengthFacet != null)
-        {
-          if (max != null)
-          {
-            if (max.equals(currentMin))
-            {
-              lengthFacet = XSDFactory.eINSTANCE.createXSDLengthFacet();
-              lengthFacet.setLexicalValue(max);
-              xsdSimpleType.getFacetContents().add(lengthFacet);
-              xsdSimpleType.getFacetContents().remove(maxLengthFacet);
-              xsdSimpleType.getFacetContents().remove(minLengthFacet);
-            }
-            else
-            {
-              if (lengthFacet != null)
-              {
-                xsdSimpleType.getFacetContents().remove(lengthFacet);
-              }
-              if (minLengthFacet == null && currentLength != null)
-              {
-                minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet();
-                minLengthFacet.setLexicalValue(currentLength);
-                xsdSimpleType.getFacetContents().add(minLengthFacet);
-              }
-              maxLengthFacet.setLexicalValue(max);
-            }
-          }
-          else
-          {
-            xsdSimpleType.getFacetContents().remove(maxLengthFacet);
-          }
-        }
-        else
-        {
-          if (currentMin != null && currentMin.equals(max))
-          {
-            if (lengthFacet == null)
-            {
-              lengthFacet = XSDFactory.eINSTANCE.createXSDLengthFacet();
-              xsdSimpleType.getFacetContents().add(lengthFacet);
-            }
-            lengthFacet.setLexicalValue(max);
-            xsdSimpleType.getFacetContents().remove(minLengthFacet);
-          }
-          else if (currentLength != null && !currentLength.equals(max))
-          {
-            xsdSimpleType.getFacetContents().remove(lengthFacet);
-
-            if (max != null)
-            {
-              maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet();
-              maxLengthFacet.setLexicalValue(max);
-              xsdSimpleType.getFacetContents().add(maxLengthFacet);
-            }
-
-            minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet();
-            minLengthFacet.setLexicalValue(currentLength);
-            xsdSimpleType.getFacetContents().add(minLengthFacet);
-          }
-          else
-          {
-            if (lengthFacet != null)
-            {
-              xsdSimpleType.getFacetContents().remove(lengthFacet);
-
-              minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet();
-              minLengthFacet.setLexicalValue(currentLength);
-              xsdSimpleType.getFacetContents().add(minLengthFacet);
-
-            }
-            maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet();
-            maxLengthFacet.setLexicalValue(max);
-            xsdSimpleType.getFacetContents().add(maxLengthFacet);
-          }
-        }
-      }
-      else if (!doUpdateMax && doUpdateMin)
-      {
-        if (minLengthFacet != null)
-        {
-          if (min != null)
-          {
-            if (min.equals(currentMax))
-            {
-              lengthFacet = XSDFactory.eINSTANCE.createXSDLengthFacet();
-              lengthFacet.setLexicalValue(min);
-              xsdSimpleType.getFacetContents().add(lengthFacet);
-              xsdSimpleType.getFacetContents().remove(maxLengthFacet);
-              xsdSimpleType.getFacetContents().remove(minLengthFacet);
-            }
-            else
-            {
-              if (lengthFacet != null)
-              {
-                xsdSimpleType.getFacetContents().remove(lengthFacet);
-              }
-              if (maxLengthFacet == null && currentLength != null)
-              {
-                maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet();
-                maxLengthFacet.setLexicalValue(currentLength);
-                xsdSimpleType.getFacetContents().add(maxLengthFacet);
-              }
-              minLengthFacet.setLexicalValue(min);
-            }
-          }
-          else
-          {
-            xsdSimpleType.getFacetContents().remove(minLengthFacet);
-          }
-        }
-        else
-        {
-          if (currentMax != null && currentMax.equals(min))
-          {
-            if (lengthFacet == null)
-            {
-              lengthFacet = XSDFactory.eINSTANCE.createXSDLengthFacet();
-              xsdSimpleType.getFacetContents().add(lengthFacet);
-            }
-            lengthFacet.setLexicalValue(min);
-            xsdSimpleType.getFacetContents().remove(maxLengthFacet);
-          }
-          else if (currentLength != null && !currentLength.equals(min))
-          {
-            xsdSimpleType.getFacetContents().remove(lengthFacet);
-
-            if (min != null)
-            {
-              minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet();
-              minLengthFacet.setLexicalValue(min);
-              xsdSimpleType.getFacetContents().add(minLengthFacet);
-            }
-
-            maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet();
-            maxLengthFacet.setLexicalValue(currentLength);
-            xsdSimpleType.getFacetContents().add(maxLengthFacet);
-          }
-          else
-          {
-            minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet();
-            minLengthFacet.setLexicalValue(min);
-            xsdSimpleType.getFacetContents().add(minLengthFacet);
-
-            if (lengthFacet != null)
-            {
-              xsdSimpleType.getFacetContents().remove(lengthFacet);
-
-              maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet();
-              maxLengthFacet.setLexicalValue(currentLength);
-              xsdSimpleType.getFacetContents().add(maxLengthFacet);
-            }
-          }
-        }
-      }
-      formatChild(xsdSimpleType.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTextValueCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTextValueCommand.java
deleted file mode 100644
index 6663646..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTextValueCommand.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.wst.xml.ui.internal.tabletree.TreeContentHelper;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-/*
- * This command is used from the extension view to edit extension elements
- * and which are implemented as DOM objects (not part of the EMF model)
- */
-public class UpdateTextValueCommand  extends BaseCommand
-{
-  Element element;
-  String value;
-  
-  public UpdateTextValueCommand(Element element, String value)
-  {
-    this.element = element;
-    this.value = value;
-  }
-
-  
-  public void execute()
-  {
-    try
-    {
-      beginRecording(element);      
-      Node textNode = null;
-      TreeContentHelper helper = new TreeContentHelper();
-      for (Node node = element.getFirstChild(); node != null; node = node.getNextSibling()) 
-      {
-        if (node.getNodeType() == Node.TEXT_NODE &&
-            !helper.isIgnorableText(node)) 
-        {
-          textNode = node;
-          break;
-        }         
-      }       
-      if (textNode == null)
-      {
-        textNode = element.getOwnerDocument().createTextNode("");
-        element.appendChild(textNode);
-      }  
-      helper.setNodeValue(textNode, value);        
-    }
-    finally
-    {
-      endRecording();
-    }
-  } 
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceAndManageDirectivesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceAndManageDirectivesCommand.java
deleted file mode 100644
index fa34bbe..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceAndManageDirectivesCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class UpdateTypeReferenceAndManageDirectivesCommand extends UpdateComponentReferenceAndManageDirectivesCommand
-{
-
-  public UpdateTypeReferenceAndManageDirectivesCommand(XSDConcreteComponent concreteComponent,
-		  String componentName, String componentNamespace, IFile file)
-  {
-	  super(concreteComponent, componentName, componentNamespace, file);
-  }
-
-  
-  protected XSDComponent getDefinedComponent(XSDSchema schema, String componentName, String componentNamespace)
-  {
-    XSDTypeDefinition result = schema.resolveTypeDefinition(componentNamespace, componentName);
-    if (result.eContainer() == null)
-    {
-      result = null;
-    }      
-    return result;
-  }
-  
-  
-  public void execute()
-  {
-    try
-    {
-      beginRecording(concreteComponent.getElement());
-      XSDComponent td = computeComponent();
-      if (td != null && td instanceof XSDTypeDefinition)
-      {
-        UpdateTypeReferenceCommand command = new UpdateTypeReferenceCommand(concreteComponent, (XSDTypeDefinition) td);
-        command.execute();
-      }
-    }
-    catch (Exception e)
-    {
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceCommand.java
deleted file mode 100644
index cda106c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceCommand.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class UpdateTypeReferenceCommand extends BaseCommand
-{
-  XSDConcreteComponent concreteComponent;
-  XSDTypeDefinition newType;
-  
-  public UpdateTypeReferenceCommand(XSDConcreteComponent concreteComponent, XSDTypeDefinition newType)
-  {
-    this.concreteComponent = concreteComponent;
-    this.newType = newType;
-  }
-   
-  public void execute()
-  {
-    try
-    {
-      beginRecording(concreteComponent.getElement());
-
-      if (concreteComponent instanceof XSDElementDeclaration)
-      {
-        setElementType((XSDElementDeclaration) concreteComponent);
-      }
-      else if (concreteComponent instanceof XSDAttributeUse)
-      {
-        setAttributeType((XSDAttributeUse) concreteComponent);
-      }
-      else if (concreteComponent instanceof XSDAttributeDeclaration)
-      {
-        setAttributeType((XSDAttributeDeclaration) concreteComponent);
-      }
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
- 
-  protected void setElementType(XSDElementDeclaration ed)
-  {
-    ed = ed.getResolvedElementDeclaration();
-    if (ed != null)
-    {  
-      ed.setTypeDefinition(newType);
-    }      
-  }
-  
-  protected void setAttributeType(XSDAttributeUse attributeUse)
-  {
-    setAttributeType(attributeUse.getAttributeDeclaration());
-  }
-  
-  protected void setAttributeType(XSDAttributeDeclaration ad)
-  {
-    ad = ad.getResolvedAttributeDeclaration();
-    if (ad != null && newType instanceof XSDSimpleTypeDefinition)
-    {
-      ad.setTypeDefinition((XSDSimpleTypeDefinition)newType);
-    }  
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDPatternFacetCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDPatternFacetCommand.java
deleted file mode 100644
index 3d1b6ad..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDPatternFacetCommand.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDPatternFacet;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-
-public class UpdateXSDPatternFacetCommand extends BaseCommand
-{
-  public static final int ADD = 0;
-  public static final int DELETE = 1;
-  public static final int UPDATE = 2;
-  
-  XSDSimpleTypeDefinition xsdSimpleTypeDefinition;
-  String value;
-  int actionType;
-  XSDPatternFacet patternToEdit;
-  
-  public UpdateXSDPatternFacetCommand(String label, XSDSimpleTypeDefinition xsdSimpleTypeDefinition, int actionType)
-  {
-    super(label);
-    this.xsdSimpleTypeDefinition = xsdSimpleTypeDefinition;
-    this.actionType = actionType;
-    
-  }
-  
-  public void setValue(String value)
-  {
-    this.value = value;
-  }
-  
-  public void setPatternToEdit(XSDPatternFacet patternToEdit)
-  {
-    this.patternToEdit = patternToEdit;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(xsdSimpleTypeDefinition.getElement());
-      if (actionType == ADD)
-      {
-        XSDPatternFacet pattern = XSDFactory.eINSTANCE.createXSDPatternFacet();
-        pattern.setLexicalValue(value);
-        xsdSimpleTypeDefinition.getFacetContents().add(pattern);
-      }
-      else if (actionType == DELETE)
-      {
-        Assert.isNotNull(patternToEdit);
-        if (xsdSimpleTypeDefinition.getFacetContents().contains(patternToEdit))
-          xsdSimpleTypeDefinition.getFacetContents().remove(patternToEdit);
-      }
-      else if (actionType == UPDATE)
-      {
-        Assert.isNotNull(patternToEdit);
-        patternToEdit.setLexicalValue(value);
-      }
-      formatChild(xsdSimpleTypeDefinition.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDWhiteSpaceFacetCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDWhiteSpaceFacetCommand.java
deleted file mode 100644
index bd92c3f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDWhiteSpaceFacetCommand.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.commands;
-
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDWhiteSpace;
-import org.eclipse.xsd.XSDWhiteSpaceFacet;
-
-public class UpdateXSDWhiteSpaceFacetCommand extends BaseCommand
-{
-  XSDSimpleTypeDefinition xsdSimpleTypeDefinition;
-  boolean doAddFacet;
-  
-  public UpdateXSDWhiteSpaceFacetCommand(String label, XSDSimpleTypeDefinition xsdSimpleType, boolean doAddFacet)
-  {
-    super(label);
-    this.xsdSimpleTypeDefinition = xsdSimpleType;
-    this.doAddFacet = doAddFacet;
-  }
-
-  public void execute()
-  {
-    try
-    {
-      beginRecording(xsdSimpleTypeDefinition.getElement());
-      XSDWhiteSpaceFacet whitespaceFacet = xsdSimpleTypeDefinition.getWhiteSpaceFacet();
-
-      if (doAddFacet)
-      {
-        if (whitespaceFacet == null)
-        {
-          whitespaceFacet = XSDFactory.eINSTANCE.createXSDWhiteSpaceFacet();
-          xsdSimpleTypeDefinition.getFacetContents().add(whitespaceFacet);
-        }
-        whitespaceFacet.setLexicalValue(XSDWhiteSpace.COLLAPSE_LITERAL.getName());
-      }
-      else
-      {
-        if (whitespaceFacet != null)
-        {
-          xsdSimpleTypeDefinition.getFacetContents().remove(whitespaceFacet);
-        }
-      }
-      formatChild(xsdSimpleTypeDefinition.getElement());
-    }
-    finally
-    {
-      endRecording();
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/providers/XSDSectionLabelProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/providers/XSDSectionLabelProvider.java
deleted file mode 100644
index ef9b469..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/providers/XSDSectionLabelProvider.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.providers;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter;
-import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDSectionLabelProvider extends LabelProvider
-{
-  /**
-   * 
-   */
-  public XSDSectionLabelProvider()
-  {
-    super();
-  }
-
-  /**
-   * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-   */
-  public Image getImage(Object object)
-  {
-    if (object == null || object.equals(StructuredSelection.EMPTY))
-    {
-      return null;
-    }
-    Image result = null;
-    if (object instanceof StructuredSelection)
-    {
-      Object selected = ((StructuredSelection) object).getFirstElement();
-
-      if (selected instanceof XSDConcreteComponent)
-      {
-        XSDBaseAdapter adapter = (XSDBaseAdapter)XSDAdapterFactory.getInstance().adapt((XSDConcreteComponent)selected);
-        return ((ITreeElement)adapter).getImage();
-      }
-    }
-    return result;
-  }
-
-  /**
-   * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-   */
-  public String getText(Object object)
-  {
-    if (object == null || object.equals(StructuredSelection.EMPTY))
-    {
-      return org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_NO_ITEMS_SELECTED;
-    }
-
-    String result = null;
-
-    boolean isReference = false;
-    Object selected = null;
-    if (object instanceof StructuredSelection)
-    {
-      selected = ((StructuredSelection) object).getFirstElement();
-
-      if (selected instanceof XSDConcreteComponent)
-      {
-        if (selected instanceof XSDElementDeclaration)
-        {
-          XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) selected;
-          if (xsdElementDeclaration.isElementDeclarationReference())
-          {
-            isReference = true;
-          }
-        } else if (selected instanceof XSDAttributeDeclaration)
-        {
-          if (((XSDAttributeDeclaration) selected).isAttributeDeclarationReference())
-          {
-            isReference = true;
-          }
-        } else if (selected instanceof XSDModelGroupDefinition)
-        {
-          if (((XSDModelGroupDefinition) selected).isModelGroupDefinitionReference())
-          {
-            isReference = true;
-          }
-        }
-        StringBuffer sb = new StringBuffer();
-        Element element = ((XSDConcreteComponent) selected).getElement();
-        if (element != null)
-        {
-          sb.append(((XSDConcreteComponent) selected).getElement().getLocalName());
-
-          if (isReference)
-          {
-            sb.append(" ref");//$NON-NLS-1$
-            // This string is not easily translatable to other languages.
-            // For now, make it english-only since we use the element tag as the title anyway
-//            sb.append(Messages.UI_PAGE_HEADING_REFERENCE);
-          }
-
-          IWorkbench workbench = PlatformUI.getWorkbench();
-          IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-          if (workbenchWindow != null)
-          {
-            IWorkbenchPage page = workbenchWindow.getActivePage();
-            if (page != null)
-            {
-              IEditorPart editorPart = page.getActiveEditor();
-              XSDSchema xsdSchema = ((XSDConcreteComponent) selected).getSchema();
-              if (editorPart != null && xsdSchema != editorPart.getAdapter(XSDSchema.class))
-              {
-                sb.append(" (" + Messages.UI_LABEL_READ_ONLY + ")"); //$NON-NLS-1$ //$NON-NLS-2$
-              }
-            }
-          }
-          return sb.toString();
-        }
-        else
-        {
-          // If the element is null, then let's use the model object to find
-          // an appropriate name
-          if ((XSDConcreteComponent) selected instanceof XSDNamedComponent)
-          {
-            return ((XSDNamedComponent)selected).getName();
-          }
-          else if ((XSDConcreteComponent) selected instanceof XSDSchema)
-          {
-            return XSDConstants.SCHEMA_ELEMENT_TAG;
-          }
-          // last resort....
-          return "(" + Messages.UI_LABEL_READ_ONLY + ")"; //$NON-NLS-1$ //$NON-NLS-2$
-        }
-      }
-
-      if (object instanceof Element)
-      {
-        return ((Element) object).getLocalName();
-      }
-    }
-
-    return result;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java
deleted file mode 100644
index 4abc23d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java
+++ /dev/null
@@ -1,609 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.common.properties.sections;
-
-import java.util.List;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.MouseTrackAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.forms.widgets.Section;
-import org.eclipse.ui.views.properties.PropertySheet;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.AddExtensionsComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.DOMExtensionDetailsContentProvider;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.DOMExtensionItemMenuListener;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.ExtensionDetailsViewer;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.ExtensionsSchemasRegistry;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public abstract class AbstractExtensionsSection extends AbstractSection
-{
-  protected ExtensionDetailsViewer extensionDetailsViewer;
-  protected TreeViewer extensionTreeViewer;
-  protected ITreeContentProvider extensionTreeContentProvider;
-  protected ILabelProvider extensionTreeLabelProvider;
-  protected Label contentLabel;
-  protected ISelectionChangedListener elementSelectionChangedListener;
-  protected IDocumentChangedNotifier documentChangeNotifier;
-  protected INodeAdapter internalNodeAdapter = new InternalNodeAdapter();
-
-  private Composite page;
-  protected Button addButton, removeButton;
-  private Object prevInput;
-  private SpecificationForExtensionsSchema prevCategory;
-
-  /**
-   * 
-   */
-  public AbstractExtensionsSection()
-  {
-    super();    
-  }
-  
-  class InternalNodeAdapter implements INodeAdapter
-  {
-
-    public boolean isAdapterForType(Object type)
-    {
-      // this method should never be called
-      // we don't use objects of this class as 'standard' adapters
-      return true;
-    }
-
-    public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos)
-    {     
-      boolean isRoot = false;
-      if (notifier instanceof Element)
-      {
-        if (isTreeViewerInputElement((Element)notifier))// TODO
-        {
-          isRoot = true;
-          extensionTreeViewer.refresh(extensionTreeViewer.getInput());
-        }  
-      }
-      if (!isRoot)
-      {  
-        extensionTreeViewer.refresh(notifier);
-        if ( newValue instanceof Element)
-        {
-          extensionTreeViewer.expandToLevel(notifier, 1);
-          extensionTreeViewer.setSelection(new StructuredSelection(newValue));
-        }
-      }  
-    }    
-  }
-  
-  protected boolean isTreeViewerInputElement(Element element)
-  {
-    return false;
-  }
-
-  public void createContents(Composite parent)
-  {
-    // TODO (cs) add assertion
-    if (extensionTreeContentProvider == null)
-       return;
-    
-    IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-    documentChangeNotifier = (IDocumentChangedNotifier)editor.getAdapter(IDocumentChangedNotifier.class);
-    
-    if (documentChangeNotifier != null)
-    {
-      documentChangeNotifier.addListener(internalNodeAdapter);
-    }  
-    
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 1;
-    composite.setLayout(gridLayout);
-
-    GridData gridData = new GridData();
-
-    page = getWidgetFactory().createComposite(composite);
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 1;
-    page.setLayout(gridLayout);
-
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    page.setLayoutData(gridData);
-    
-    SashForm sashForm = new SashForm(page, SWT.HORIZONTAL);
-    // Try to limit the initial width of the section
-    
-    int w = SWT.DEFAULT;
-    try
-    {
-      IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
-
-      // Find the width of the Tabbed Property Sheet's composite excluding the tab
-      if (part instanceof PropertySheet)
-      {
-        PropertySheet sheet = (PropertySheet)part;
-        if (sheet.getCurrentPage() instanceof TabbedPropertySheetPage)
-        {
-          TabbedPropertySheetPage tabbedPage = (TabbedPropertySheetPage)sheet.getCurrentPage();
-          Composite targetComposite = null;
-          if (tabbedPage.getControl() instanceof Composite)
-          {
-            Composite c = (Composite)tabbedPage.getControl();
-            int length = c.getChildren().length;
-            for (int i = 0; i < length; i++)
-            {
-              Control ctrl = c.getChildren()[i];
-              int length2  = (((Composite)ctrl).getChildren()).length;
-              for (int j = 0; j < length2; j++ )
-              {
-                if ((((Composite)ctrl).getChildren())[j] instanceof ScrolledComposite)
-                {
-                  targetComposite = (Composite)(((Composite)ctrl).getChildren())[j];
-                  break;
-                }
-              }
-            }
-          }
-          if (targetComposite != null)
-          {
-            w = targetComposite.getSize().x - 20;  // ensure scrollbars don't show
-          }
-          // The above can be accomplished by the following code
-          // but because TabbedPropertyComposite is in an internal package, I will get a discouraged
-          // access warning.
-          // w = ((TabbedPropertyComposite)(tabbedPage.getControl())).getTabComposite().getSize().x;
-        }
-      }
-    }
-    catch(Exception e)
-    {
-      w = SWT.DEFAULT;
-    }
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    // The initial size should be set, not the widthHint, which forces the width
-    // to remain constant.
-    sashForm.setSize(w, SWT.DEFAULT);
-    sashForm.setLayoutData(gridData);
-    sashForm.setForeground(ColorConstants.white);
-    sashForm.setBackground(ColorConstants.white);
-    Control[] children = sashForm.getChildren();
-    for (int i = 0; i < children.length; i++)
-    {
-      children[i].setVisible(false);
-    }
-    Composite leftContent = getWidgetFactory().createComposite(sashForm, SWT.FLAT);
-    gridLayout = new GridLayout();
-    gridLayout.numColumns = 1;
-    leftContent.setLayout(gridLayout);
-
-    Section section = getWidgetFactory().createSection(leftContent, SWT.FLAT | ExpandableComposite.TITLE_BAR);
-    section.setText(Messages._UI_LABEL_EXTENSIONS);
-    section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    Composite tableAndButtonComposite = getWidgetFactory().createComposite(leftContent, SWT.FLAT);
-    tableAndButtonComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-    gridLayout = new GridLayout();
-    gridLayout.numColumns = 2;
-    tableAndButtonComposite.setLayout(gridLayout);    
-    
-    extensionTreeViewer = new TreeViewer(tableAndButtonComposite, SWT.FLAT | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.LINE_SOLID);
-    MenuManager menuManager = new MenuManager();    
-    extensionTreeViewer.getTree().setMenu(menuManager.createContextMenu(extensionTreeViewer.getTree()));
-    menuManager.addMenuListener(new DOMExtensionItemMenuListener(extensionTreeViewer));
-    
-    gridLayout = new GridLayout();
-    gridLayout.numColumns = 1;
-    extensionTreeViewer.getTree().setLayout(gridLayout);
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-   
-    extensionTreeViewer.getTree().setLayoutData(gridData);
-    extensionTreeViewer.setContentProvider(extensionTreeContentProvider);
-    extensionTreeViewer.setLabelProvider(extensionTreeLabelProvider);
-    elementSelectionChangedListener = new ElementSelectionChangedListener();
-    extensionTreeViewer.addSelectionChangedListener(elementSelectionChangedListener);
-    extensionTreeViewer.getTree().addMouseTrackListener(new MouseTrackAdapter()
-    {
-      public void mouseHover(org.eclipse.swt.events.MouseEvent e)
-      {
-        ISelection selection = extensionTreeViewer.getSelection();
-        if (selection instanceof StructuredSelection)
-        {
-          Object obj = ((StructuredSelection) selection).getFirstElement();
-          if (obj instanceof Element)
-          {
-            Element element = (Element) obj;
-            ExtensionsSchemasRegistry registry = getExtensionsSchemasRegistry();
-            // ApplicationSpecificSchemaProperties[] properties =
-            // registry.getAllApplicationSpecificSchemaProperties();
-            // ApplicationSpecificSchemaProperties[] properties =
-            // (ApplicationSpecificSchemaProperties[])
-            // registry.getAllApplicationSpecificSchemaProperties().toArray(new
-            // ApplicationSpecificSchemaProperties[0]);
-            List properties = registry.getAllExtensionsSchemasContribution();
-
-            int length = properties.size();
-            for (int i = 0; i < length; i++)
-            {
-              SpecificationForExtensionsSchema current = (SpecificationForExtensionsSchema) properties.get(i);
-              if (current.getNamespaceURI().equals(element.getNamespaceURI()))
-              {
-                extensionTreeViewer.getTree().setToolTipText(current.getDescription());
-                break;
-              }
-            }
-          }
-        }
-      }
-
-    });
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(extensionTreeViewer.getControl(),
-    		XSDEditorCSHelpIds.EXTENSIONS_TAB__EXTENSIONS); 
-    
-    Composite buttonComposite = getWidgetFactory().createComposite(tableAndButtonComposite, SWT.FLAT);
-    //ColumnLayout columnLayout = new ColumnLayout();
-    //buttonComposite.setLayout(columnLayout);
-    buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 1;
-    gridLayout.makeColumnsEqualWidth = true;
-    buttonComposite.setLayout(gridLayout);
-    
-    addButton = getWidgetFactory().createButton(buttonComposite, Messages._UI_ACTION_ADD_WITH_DOTS, SWT.FLAT);   
-    addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-    addButton.addSelectionListener(this);
-    addButton.setToolTipText(Messages._UI_ACTION_ADD_EXTENSION_COMPONENT);
-    //addButton.setLayoutData(new ColumnLayoutData(ColumnLayoutData.FILL));
-    addButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(addButton,
-    		XSDEditorCSHelpIds.EXTENSIONS_TAB__ADD);     
-    
-    removeButton = getWidgetFactory().createButton(buttonComposite, Messages._UI_ACTION_DELETE, SWT.FLAT);
-    removeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-    removeButton.addSelectionListener(this);
-    removeButton.setToolTipText(Messages._UI_ACTION_DELETE_EXTENSION_COMPONENT);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(removeButton,
-    		XSDEditorCSHelpIds.EXTENSIONS_TAB__DELETE);   
-    
-    //removeButton.setLayoutData(new ColumnLayoutData(ColumnLayoutData.FILL));
-
-    // TODO (cs) uncomment the up/down button when we have time to implement
-    //
-    //Button up = getWidgetFactory().createButton(buttonComposite, Messages._UI_LABEL_UP, SWT.FLAT);
-    //up.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    
-    //Button down = getWidgetFactory().createButton(buttonComposite, Messages._UI_LABEL_DOWN, SWT.FLAT);
-    //down.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-
-    Composite rightContent = getWidgetFactory().createComposite(sashForm, SWT.FLAT);
-    Section section2 = getWidgetFactory().createSection(rightContent, SWT.FLAT | ExpandableComposite.TITLE_BAR);
-    section2.setText(Messages._UI_LABEL_EXTENSION_DETAILS);
-    section2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    //contentLabel = getWidgetFactory().createLabel(rightContent, "Content");
-
-    Composite testComp = getWidgetFactory().createComposite(rightContent, SWT.FLAT);
-
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.marginLeft = 0;
-    gridLayout.marginRight = 0;
-    gridLayout.numColumns = 1;
-    gridLayout.marginHeight = 3;
-    gridLayout.marginWidth = 3;
-    rightContent.setLayout(gridLayout);
-
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    rightContent.setLayoutData(gridData);
-
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginLeft = 0;
-    gridLayout.marginRight = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.marginHeight = 3;
-    gridLayout.marginWidth = 3;
-    gridLayout.numColumns = 2;
-    testComp.setLayout(gridLayout);
-
-    gridData = new GridData();
-    gridData.grabExcessHorizontalSpace = true;
-    gridData.grabExcessVerticalSpace = true;
-    gridData.verticalAlignment = GridData.FILL;
-    gridData.horizontalAlignment = GridData.FILL;
-    testComp.setLayoutData(gridData);
-
-    createElementContentWidget(testComp);
-
-    int[] weights = { 40, 60 };
-    sashForm.setWeights(weights);
-  }
-
-  protected void createElementContentWidget(Composite parent)
-  {
-    extensionDetailsViewer = new ExtensionDetailsViewer(parent, getWidgetFactory());
-    extensionDetailsViewer.setContentProvider(new DOMExtensionDetailsContentProvider());    
-    extensionDetailsViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH));
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(extensionDetailsViewer.getControl(),
-    		XSDEditorCSHelpIds.EXTENSIONS_TAB__EXTENSIONS_DETAILS);   
-  }
-  
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    setListenerEnabled(false);
-    if (input != null)
-    {
-      if ( prevInput == input)
-    	  return;
-      else
-    	  prevInput = input;
-      
-      Tree tree = extensionTreeViewer.getTree();
-      extensionDetailsViewer.setInput(null);
-      tree.removeAll();
-      
-      addButton.setEnabled(!isReadOnly);
-      
-      extensionTreeViewer.setInput(input);
-      if (tree.getSelectionCount() == 0 && tree.getItemCount() > 0)
-      {       
-        TreeItem treeItem = tree.getItem(0);     
-        extensionTreeViewer.setSelection(new StructuredSelection(treeItem.getData()));
-      }
-      removeButton.setEnabled(tree.getSelectionCount() > 0  && !isReadOnly);
-      // Bugzilla 197315.  Make this bulletproof for maintenance release.
-      Control detailsViewerControl = extensionDetailsViewer.getControl();
-      if (detailsViewerControl != null && !detailsViewerControl.isDisposed())
-      {
-        detailsViewerControl.setEnabled(!isReadOnly);
-      }
-    }
-    setListenerEnabled(true);
-  }
-
-  public Composite getPage()
-  {
-    return page;
-  }
-
-  protected abstract AddExtensionCommand getAddExtensionCommand(Object o);
-  protected abstract Command getRemoveExtensionCommand(Object o);  
-  protected abstract ExtensionsSchemasRegistry getExtensionsSchemasRegistry();
-  
-  protected AddExtensionsComponentDialog createAddExtensionsComponentDialog()
-  {
-    return new AddExtensionsComponentDialog(composite.getShell(), getExtensionsSchemasRegistry());
-  }
-    
-  public void widgetSelected(SelectionEvent event)
-  {
-    if (event.widget == addButton)
-    {
-      ExtensionsSchemasRegistry registry = getExtensionsSchemasRegistry();
-      AddExtensionsComponentDialog dialog = createAddExtensionsComponentDialog();
-
-      List properties = registry.getAllExtensionsSchemasContribution();
-
-      dialog.setInput(properties);
-      dialog.setBlockOnOpen(true);
-      dialog.setPrefStore( getPrefStore() );
-      
-      if (prevCategory != null)
-    	  dialog.setInitialCategorySelection(prevCategory);
-
-      if (dialog.open() == Window.OK)
-      {
-        Object newSelection = null;          
-        Object[] result = dialog.getResult();      
-        if (result != null)
-        {
-          SpecificationForExtensionsSchema extensionsSchemaSpec = (SpecificationForExtensionsSchema) result[1];
-          AddExtensionCommand addExtensionCommand = getAddExtensionCommand(result[0]);
-          if (addExtensionCommand != null)
-          {  
-            addExtensionCommand.setSchemaProperties(extensionsSchemaSpec);
-            if (getCommandStack() != null)
-            {
-              getCommandStack().execute(addExtensionCommand);
-              newSelection = addExtensionCommand.getNewObject();
-            }
-          }
-        }
-        //refresh();
-        if (newSelection != null)
-        {
-          extensionTreeViewer.setSelection(new StructuredSelection(newSelection));
-        }
-      }
-
-      prevCategory = dialog.getSelectedCategory();
-    }
-    else if (event.widget == removeButton)
-    {
-      ISelection selection = extensionTreeViewer.getSelection();
-      
-      if (selection instanceof StructuredSelection)
-      {
-        Object o = ((StructuredSelection) selection).getFirstElement();
-        Command command = getRemoveExtensionCommand(o);            
-        if (getCommandStack() != null)
-        {
-          getCommandStack().execute(command);
-        }
-      }
-    }
-    else if (event.widget == extensionTreeViewer.getTree())
-    {
-
-    }
-  }
-
-  // TODO make this one an abstract method. XSDEditor and WSDLEditor should return
-  // diferent IpreferenceStore objects
-  protected IPreferenceStore getPrefStore() {
-	return null;
-  }
-
-  public void widgetDefaultSelected(SelectionEvent event)
-  {
-
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-  public void dispose()
-  {
-    if (documentChangeNotifier != null)
-      documentChangeNotifier.removeListener(internalNodeAdapter);
-  }
- 
-
-  Node selectedNode;
-
-  class ElementSelectionChangedListener implements ISelectionChangedListener
-  {
-    public void selectionChanged(SelectionChangedEvent event)
-    {   
-      boolean isDeleteEnabled = false;
-      ISelection selection = event.getSelection();
-      if (selection instanceof StructuredSelection)
-      {
-        StructuredSelection structuredSelection = (StructuredSelection)selection;
-        if (structuredSelection.size() > 0)
-        {  
-          Object obj = structuredSelection.getFirstElement();
-          if (obj instanceof Node)
-          {
-            selectedNode = (Node) obj;
-            extensionDetailsViewer.setInput(obj);
-            isDeleteEnabled = true;         
-          }
-        }  
-        else
-        {
-          // if nothing is selected then don't show any details
-          //
-          extensionDetailsViewer.setInput(null);
-        }
-
-        // Upon element selection, the details view populates fine, but there is no vertical scrollbar,
-        // so it misleads the user into thinking there are no other attributes available
-        // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=174073
-        // This is a workaround to force a layout of the tab composite
-        IWorkbenchPart part = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart();
-        if (part instanceof PropertySheet)
-        {
-          PropertySheet sheet = (PropertySheet)part;
-          if (sheet.getCurrentPage() instanceof TabbedPropertySheetPage)
-          {
-            TabbedPropertySheetPage tabbedPage = (TabbedPropertySheetPage)sheet.getCurrentPage();
-            if (tabbedPage.getControl() instanceof Composite)
-            {
-              Composite c = (Composite)tabbedPage.getControl();
-              Point p = c.getSize();
-              // c.layout(true, true) doesn't appear to work.
-              // But this forces a relayout:
-              c.setSize(p.x, p.y + 1);
-              // Change the size back to the original
-              c.setSize(p.x, p.y);
-            }
-          }
-        }
-      }
-      removeButton.setEnabled(isDeleteEnabled && !isReadOnly);
-    }
-  }
-
-  public ITreeContentProvider getExtensionTreeContentProvider()
-  {
-    return extensionTreeContentProvider;
-  }
-
-  public void setExtensionTreeContentProvider(ITreeContentProvider extensionTreeContentProvider)
-  {
-    this.extensionTreeContentProvider = extensionTreeContentProvider;
-  }
-
-  public ILabelProvider getExtensionTreeLabelProvider()
-  {
-    return extensionTreeLabelProvider;
-  }
-
-  public void setExtensionTreeLabelProvider(ILabelProvider extensionTreeLabelProvider)
-  {
-    this.extensionTreeLabelProvider = extensionTreeLabelProvider;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSection.java
deleted file mode 100644
index c90c0a9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSection.java
+++ /dev/null
@@ -1,365 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.jface.action.IStatusLineManager;
-import org.eclipse.jface.action.SubContributionManager;
-import org.eclipse.jface.action.SubStatusLineManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.FormColors;
-import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDComponent;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDSchema;
-
-public abstract class AbstractSection extends AbstractPropertySection implements SelectionListener, Listener
-{
-  protected Composite composite;
-  protected PaintListener painter;
-  protected XSDSchema xsdSchema;
-  protected Object input;
-  protected boolean isReadOnly;
-  protected boolean listenerEnabled = true;
-  protected boolean isSimple;
-  protected CustomListener customListener = new CustomListener();
-  protected IEditorPart owningEditor;
-  private IStatusLineManager statusLine;
-  
-  public static final Image ICON_ERROR = XSDEditorPlugin.getDefault().getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
-  
-  public AbstractSection()
-  {
-    super();
-  }
-  
-  public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage)
-  {
-    super.createControls(parent, aTabbedPropertySheetPage);
-    isSimple = getIsSimple();
-    createContents(parent);
-  }
-  
-  protected abstract void createContents(Composite parent);
-
-    protected PaintListener createPainter() {
-        return new PaintListener() {
-
-            public void paintControl(PaintEvent e) {
-//                Rectangle bounds = composite.getClientArea();
-                GC gc = e.gc;
-
-                gc.setForeground(gc.getBackground());
-                gc.setBackground(getWidgetFactory().getColors().getColor(
-                    FormColors.TB_BG));
-
-//                gc.fillGradientRectangle(4 + bounds.width / 2, 0,
-//                    bounds.width / 2 - 9, bounds.height, false);
-
-                gc.setForeground(getWidgetFactory().getColors().getColor(
-                    FormColors.TB_BORDER));
-//                gc.drawLine(bounds.width - 5, 0, bounds.width - 5,
-//                    bounds.height);
-            }
-
-        };
-
-    }
-    
-    public void dispose()
-    {
-        if (composite != null && ! composite.isDisposed() && painter != null)
-            composite.removePaintListener(painter);
-        
-        super.dispose();
-    }
-
-    public void setInput(IWorkbenchPart part, ISelection selection) {
-        super.setInput(part, selection);
-        isSimple = getIsSimple();
-        Object input = ((IStructuredSelection)selection).getFirstElement();
-        this.input = input;
-        
-        if (input instanceof XSDConcreteComponent)
-        {
-          xsdSchema = ((XSDConcreteComponent)input).getSchema();
-        }
-        
-        // set owning editor of this section
-        if (part!=null)
-        {
-            if (part instanceof IEditorPart)
-            {
-                owningEditor = (IEditorPart)part;
-            }
-            else
-            {
-                owningEditor = part.getSite().getWorkbenchWindow().getActivePage().getActiveEditor();
-            }
-        }
-        if (xsdSchema == owningEditor.getAdapter(XSDSchema.class))
-        {
-          isReadOnly = false;
-        }
-        else
-        {
-          isReadOnly = true;
-        }
-
-    }
-
-    public void refresh()
-    {
-      super.refresh();
-
-      if (isReadOnly)
-      {
-        composite.setEnabled(false);
-      }
-      else
-      {
-        composite.setEnabled(true);
-      }
-    }
-
-    public void applyAllListeners(Control control)
-    {
-      control.addListener(SWT.Modify, customListener);
-      control.addListener(SWT.FocusOut, customListener);
-      control.addListener(SWT.KeyDown, customListener);
-    }
-    
-    public void applyModifyListeners(Control control)
-    {
-      control.addListener(SWT.Modify, customListener);
-      control.addListener(SWT.FocusOut, customListener);
-    }
-
-    public void applyKeyListener(Control control)
-    {
-      control.addListener(SWT.KeyDown, customListener);
-    }
-
-    public void removeListeners(Control control)
-    {
-      control.removeListener(SWT.Modify, customListener);
-      control.removeListener(SWT.FocusOut, customListener);
-      control.removeListener(SWT.KeyDown, customListener);
-    }
-    
-    public void doWidgetDefaultSelected(SelectionEvent e)
-    {}
-    
-    public void doWidgetSelected(SelectionEvent e)
-    {}
-
-    public void widgetSelected(SelectionEvent e)
-    {
-      if (isListenerEnabled() &&
-          input != null &&
-          !isReadOnly) 
-      {
-        doWidgetSelected(e);
-      }
-    }
-
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-      if (isListenerEnabled() &&
-          input != null &&
-          !isReadOnly) 
-      {
-        doWidgetDefaultSelected(e);
-      }
-    }
-
-    /**
-     * Get the value of listenerEnabled.
-     * @return value of listenerEnabled.
-     */
-    public boolean isListenerEnabled() 
-    {
-      return listenerEnabled;
-    }
-    
-    /**
-     * Set the value of listenerEnabled.
-     * @param v  Value to assign to listenerEnabled.
-     */
-    public void setListenerEnabled(boolean  v) 
-    {
-      this.listenerEnabled = v;
-    }
-
-    /**
-     * Sent when an event that the receiver has registered for occurs.
-     *
-     * @param event the event which occurred
-     */
-    public void handleEvent(Event event)
-    {
-      if (isListenerEnabled() && !isReadOnly) 
-      {
-        doHandleEvent(event);
-      }
-    }
-
-    /**
-     * Subclasses should override
-     * @param event
-     */
-    protected void doHandleEvent(Event event)
-    {
-    }
-
-    protected IEditorPart getActiveEditor()
-    {
-      IWorkbench workbench = PlatformUI.getWorkbench();
-      IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
-      IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
-      this.owningEditor = editorPart;
-      return editorPart;
-    }
-    
-    public CommandStack getCommandStack()
-    {
-      Object commandStack = owningEditor.getAdapter(CommandStack.class); 
-          
-      if (commandStack==null)
-          return null;
-      else
-          return (CommandStack)commandStack;
-    }
-    
-    public boolean getIsSimple()
-    {
-      return false;
-    }
-    
-    
-    
-    /**
-     * Intended to display error messages.
-     * @return
-     */
-    private IStatusLineManager getStatusLineManager()
-    {
-      if (statusLine==null && getPart()!=null)
-      {
-        if(getPart().getSite() instanceof IEditorSite)
-          statusLine = ((IEditorSite)getPart().getSite()).getActionBars().getStatusLineManager();
-        else if (getPart().getSite() instanceof IViewSite)
-          statusLine = ((IViewSite)getPart().getSite()).getActionBars().getStatusLineManager();
-        
-        /* 
-         * We must manually set the visibility of the status line since the action bars are from the editor
-         * which means the status line only shows up when the editor is in focus (by default).
-         * Note only a SubStatusLineManager can set the visibility.
-         */
-        if (statusLine instanceof SubStatusLineManager)
-          ((SubStatusLineManager)statusLine).setVisible(true);
-      }
-      
-      return statusLine;
-    }
-
-    /**
-     * Display an error message in the status line.
-     * Call setErrorMessage(null) to clear the status line.
-     * @param text 
-     */
-    public void setErrorMessage(String text)
-    {
-      IStatusLineManager statusLine = getStatusLineManager();
-
-      if (statusLine!=null)
-      {
-        if (text==null || text.length()<1)
-          statusLine.setErrorMessage(null);
-        else
-          statusLine.setErrorMessage(ICON_ERROR, text);
-
-        // ensure our message gets displayed
-        if (statusLine instanceof SubContributionManager)
-          ((SubContributionManager)statusLine).setVisible(true);
-        
-        statusLine.update(true);
-      }
-    }
-
-    
-    protected EObject getModel()
-    {
-      return (XSDComponent)input;
-    }
-
-    
-    class CustomListener implements Listener
-    {
-      boolean handlingEvent = false;
-      public void handleEvent(Event event)
-      {
-        if (isListenerEnabled() && !isReadOnly) 
-        {
-          switch (event.type)
-          {
-            case SWT.KeyDown :
-            {
-              if (event.character == SWT.CR)
-              {
-                if (!handlingEvent)
-                {
-                  handlingEvent = true;
-                  doHandleEvent(event);
-                  handlingEvent = false;
-                }
-              }
-              break;
-            }
-            case SWT.FocusOut :
-            {
-              if (!handlingEvent)
-              {
-                handlingEvent = true;
-                doHandleEvent(event);
-                handlingEvent = false;
-              }
-              break;
-            }
-          }
-        }
-      }
-    }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSectionDescriptor.java
deleted file mode 100644
index e0b33bb..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSectionDescriptor.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.views.properties.tabbed.ISection;
-import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.w3c.dom.Element;
-
-public class AbstractSectionDescriptor implements ISectionDescriptor
-{
-  /**
-   * 
-   */
-  public AbstractSectionDescriptor()
-  {
-    super();
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId()
-   */
-  public String getId()
-  {
-    return ""; //$NON-NLS-1$
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getFilter()
-   */
-  public IFilter getFilter()
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes()
-   */
-  public List getInputTypes()
-  {
-    List list = new ArrayList();
-    list.add(XSDConcreteComponent.class);
-    return list;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass()
-   */
-  public ISection getSectionClass()
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab()
-   */
-  public String getTargetTab()
-  {
-    return null;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-   */
-  public boolean appliesTo(IWorkbenchPart part, ISelection selection)
-  {
-    Object object = null;
-    if (selection instanceof StructuredSelection)
-    {
-      StructuredSelection structuredSelection = (StructuredSelection)selection;
-      object = structuredSelection.getFirstElement();
-      if (object instanceof XSDConcreteComponent || object instanceof Element)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getAfterSection()
-   */
-  public String getAfterSection()
-  {
-    return ""; //$NON-NLS-1$
-  }
-
-  
-  public int getEnablesFor()
-  {
-	return ENABLES_FOR_ANY;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AnnotationSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AnnotationSection.java
deleted file mode 100644
index 2215338..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AnnotationSection.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.io.IOException;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddDocumentationCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class AnnotationSection extends AbstractSection
-{
-  Text simpleText;
-
-  public void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    simpleText = getWidgetFactory().createText(composite, "", SWT.V_SCROLL | SWT.H_SCROLL); //$NON-NLS-1$
-    simpleText.addListener(SWT.Modify, this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(simpleText,
-    		XSDEditorCSHelpIds.DOCUMENTATION_TAB__NO_LABEL); 
-    
-
-    FormData data = new FormData();
-    data.left = new FormAttachment(0, 1);
-    data.right = new FormAttachment(100, -1);
-    data.top = new FormAttachment(0, 1);
-    data.bottom = new FormAttachment(100, -1);
-    simpleText.setLayoutData(data);
-  }
-
-  public AnnotationSection()
-  {
-    super();
-  }
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    super.refresh();
-    
-    if (simpleText.isFocusControl()) return;
-    setListenerEnabled(false);
-    if (input instanceof XSDConcreteComponent)
-    {
-      XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation((XSDConcreteComponent) input, false);
-      setInitialText(xsdAnnotation);
-    }
-    setListenerEnabled(true);
-  }
-
-  public void doHandleEvent(Event event)
-  {
-    if (input instanceof XSDConcreteComponent)
-    {
-      if (event.widget == simpleText)
-      {
-        AddDocumentationCommand command = new AddDocumentationCommand(Messages._UI_ACTION_ADD_DOCUMENTATION, null, (XSDConcreteComponent) input, simpleText.getText(), ""); //$NON-NLS-1$
-        getCommandStack().execute(command);
-      }
-    }
-
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-  public void dispose()
-  {
-
-  }
-
-  private void setInitialText(XSDAnnotation an)
-  {
-    if (an != null)
-    {
-      try
-      {
-        List documentationList = an.getUserInformation();
-        if (documentationList.size() > 0)
-        {
-          Element docElement = (Element) documentationList.get(0);
-          if (docElement != null)
-          {
-            simpleText.setText(doSerialize(docElement));
-          }
-        }
-      }
-      catch (Exception e)
-      {
-
-      }
-    }
-    else
-    {
-      simpleText.setText(""); //$NON-NLS-1$
-    }
-  }
-
-  private String doSerialize(Element element) throws IOException
-  {
-    String source = ""; //$NON-NLS-1$
-
-    Node firstChild = element.getFirstChild();
-    Node lastChild = element.getLastChild();
-    int start = 0;
-    int end = 0;
-
-    if (element instanceof IDOMElement)
-    {
-      IDOMElement domElement = (IDOMElement) element;
-      IDOMModel model = domElement.getModel();
-      IDOMDocument doc = model.getDocument();
-
-      if (firstChild instanceof IDOMNode)
-      {
-        IDOMNode first = (IDOMNode) firstChild;
-        start = first.getStartOffset();
-      }
-      if (lastChild instanceof IDOMNode)
-      {
-        IDOMNode last = (IDOMNode) lastChild;
-        end = last.getEndOffset();
-      }
-      source = doc.getSource().substring(start, end);
-    }
-
-    return source;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/CommonDirectivesSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/CommonDirectivesSection.java
deleted file mode 100644
index 652d247..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/CommonDirectivesSection.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDParser;
-
-public abstract class CommonDirectivesSection extends AbstractSection
-{
-  Text schemaLocationText;
-  Button wizardButton;
-  StyledText errorText;
-  Color red;
-  protected boolean isValidSchemaLocation = true;
-
-  // TODO: common up code with XSDSelectIncludeFileWizard
-  public void doHandleEvent(Event event)
-  {
-    errorText.setText(""); //$NON-NLS-1$
-
-    if (event.widget == schemaLocationText)
-    {
-        String errorMessage = ""; //$NON-NLS-1$
-        isValidSchemaLocation = true;
-        String xsdModelFile = schemaLocationText.getText();
-        String namespace = ""; //$NON-NLS-1$
-        XSDSchema externalSchema = null;
-        
-        if (xsdModelFile.length() == 0)
-        {
-          handleSchemaLocationChange(xsdModelFile, "", null); //$NON-NLS-1$
-          return;
-        }
-
-        try
-        {
-          IFile currentIFile = ((IFileEditorInput)getActiveEditor().getEditorInput()).getFile();
-
-          URI newURI = URI.createURI(xsdModelFile);
-          String xsdFile = URIHelper.getRelativeURI(newURI.toString(), currentIFile.getFullPath().toString());
-          final String normalizedXSDFile = URIHelper.normalize(xsdFile, currentIFile.getLocation().toString(), ""); //$NON-NLS-1$
-          
-          XSDParser parser = new XSDParser();
-          parser.parse(normalizedXSDFile);
-          
-          externalSchema = parser.getSchema();
-
-          if (externalSchema != null)
-          {
-            String extNamespace = externalSchema.getTargetNamespace();
-            if (extNamespace == null) extNamespace = ""; //$NON-NLS-1$
-            namespace = extNamespace;
-            
-            if (externalSchema.getDiagnostics() != null &&
-                externalSchema.getDiagnostics().size() > 0)
-            {
-              isValidSchemaLocation = false;
-              errorMessage = XSDEditorPlugin.getResourceString("_UI_INCORRECT_XML_SCHEMA", xsdModelFile); //$NON-NLS-1$
-            }  
-            else
-            {
-              String currentNameSpace = xsdSchema.getTargetNamespace();
-              if (input instanceof XSDInclude || input instanceof XSDRedefine)
-              {  
-                // Check the namespace to make sure they are the same as current file
-                if (extNamespace != null)
-                {
-                  if (currentNameSpace != null && !extNamespace.equals(currentNameSpace))
-                  {
-                    errorMessage = XSDEditorPlugin.getResourceString("_UI_DIFFERENT_NAME_SPACE", xsdModelFile); //$NON-NLS-1$
-                    isValidSchemaLocation = false;
-                  }
-                }
-              }
-              else
-              {  
-                // Check the namespace to make sure they are different from the current file
-                if (extNamespace != null)
-                {
-                  if (currentNameSpace != null && extNamespace.equals(currentNameSpace))
-                  {
-                    errorMessage = XSDEditorPlugin.getResourceString("_UI_SAME_NAME_SPACE", xsdModelFile); //$NON-NLS-1$
-                    isValidSchemaLocation = false;
-                  }
-                }
-              }
-            }
-          }
-          else
-          {
-            errorMessage = Messages._UI_ERROR_INVALID_FILE;
-            isValidSchemaLocation = false;
-          }
-        }
-        catch(Exception e)
-        {
-          errorMessage = Messages._UI_ERROR_INVALID_FILE;
-          isValidSchemaLocation = false;
-        }
-        finally
-        {
-          if (!isValidSchemaLocation)
-          {
-            errorText.setText(errorMessage);
-            int length = errorText.getText().length();
-            red = new Color(null, 255, 0, 0);
-            StyleRange style = new StyleRange(0, length, red, schemaLocationText.getBackground());
-            errorText.setStyleRange(style);
-          }
-          else
-          {
-            handleSchemaLocationChange(xsdModelFile, namespace, externalSchema);          
-          }
-        }
-      }
-  }
-  
-  protected void handleSchemaLocationChange(String schemaFileString, String namespace, XSDSchema externalSchema)
-  {
-    
-  }
-
-  
-  public void dispose()
-  {
-    super.dispose();
-    if (red != null)
-    {
-      red.dispose();
-      red = null;
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/EnumerationsSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/EnumerationsSection.java
deleted file mode 100644
index e33e4a1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/EnumerationsSection.java
+++ /dev/null
@@ -1,405 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.internal.viewers.NavigableTableViewer;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddEnumerationsCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.SetXSDFacetValueCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.widgets.EnumerationsDialog;
-import org.eclipse.xsd.XSDEnumerationFacet;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class EnumerationsSection extends AbstractSection
-{
-  private EnumerationsTableViewer enumerationsTable;
-  private Button addButton;
-  private Button addManyButton;
-  private Button deleteButton;
-
-  /**
-   * 
-   */
-  public EnumerationsSection()
-  {
-    super();
-  }
-
-  public void widgetSelected(SelectionEvent e)
-  {
-    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input;
-
-    if (e.widget == addButton)
-    {
-      List enumList = st.getEnumerationFacets();
-      StringBuffer newName = new StringBuffer("value1"); //$NON-NLS-1$
-      int suffix = 1;
-      for (Iterator i = enumList.iterator(); i.hasNext();)
-      {
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) i.next();
-        String value = enumFacet.getLexicalValue();
-        if (value != null)
-        {
-          if (value.equals(newName.toString()))
-          {
-            suffix++;
-            newName = new StringBuffer("value" + String.valueOf(suffix)); //$NON-NLS-1$
-          }
-        }
-      }
-
-      AddEnumerationsCommand command = new AddEnumerationsCommand(Messages._UI_ACTION_ADD_ENUMERATION, (XSDSimpleTypeDefinition) input);
-      command.setValue(newName.toString());
-      getCommandStack().execute(command);
-
-      enumerationsTable.refresh();
-      int newItemIndex = enumerationsTable.getTable().getItemCount() - 1;
-      enumerationsTable.editElement(enumerationsTable.getElementAt(newItemIndex), 0);
-    }
-    else if (e.widget == addManyButton)
-    {
-      Display display = Display.getCurrent();
-      // if it is null, get the default one
-      display = display == null ? Display.getDefault() : display;
-      Shell parentShell = display.getActiveShell();
-      EnumerationsDialog dialog = new EnumerationsDialog(parentShell);
-      dialog.setBlockOnOpen(true);
-      int result = dialog.open();
-
-      if (result == Window.OK)
-      {
-        String text = dialog.getText();
-        String delimiter = dialog.getDelimiter();
-        StringTokenizer tokenizer = new StringTokenizer(text, delimiter);
-        CompoundCommand compoundCommand = new CompoundCommand(Messages._UI_ACTION_ADD_ENUMERATIONS);
-        while (tokenizer.hasMoreTokens())
-        {
-          String token = tokenizer.nextToken();
-          if (dialog.isPreserveWhitespace() == false)
-          {
-            token = token.trim();
-          }
-          AddEnumerationsCommand command = new AddEnumerationsCommand(Messages._UI_ACTION_ADD_ENUMERATIONS, (XSDSimpleTypeDefinition) input);
-          command.setValue(token);
-          compoundCommand.add(command);
-        }
-        getCommandStack().execute(compoundCommand);
-      }
-      enumerationsTable.refresh();
-    }
-    else if (e.widget == deleteButton)
-    {
-      StructuredSelection selection = (StructuredSelection) enumerationsTable.getSelection();
-      if (selection != null)
-      {
-        Iterator i = selection.iterator();
-        CompoundCommand compoundCommand = new CompoundCommand(Messages._UI_ACTION_DELETE_ENUMERATION);
-        while (i.hasNext())
-        {
-          Object obj = i.next();
-          if (obj != null)
-          {
-            if (obj instanceof XSDEnumerationFacet)
-            {
-              XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) obj;
-
-              DeleteCommand deleteCommand = new DeleteCommand(Messages._UI_ACTION_DELETE_ENUMERATION, enumFacet);
-              compoundCommand.add(deleteCommand);
-            }
-          }
-        }
-        getCommandStack().execute(compoundCommand);
-        enumerationsTable.refresh();
-      }
-    }
-    else if (e.widget == enumerationsTable.getTable())
-    {
-      StructuredSelection selection = (StructuredSelection) enumerationsTable.getSelection();
-      if (selection.getFirstElement() != null)
-      {
-        deleteButton.setEnabled(true);
-      }
-      else
-      {
-        deleteButton.setEnabled(false);
-      }
-    }
-
-  }
-
-  public void widgetDefaultSelected(SelectionEvent e)
-  {
-
-  }
-
-  public void createContents(Composite parent)
-  {
-    TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
-    composite = factory.createFlatFormComposite(parent);
-
-    enumerationsTable = new EnumerationsTableViewer(getWidgetFactory().createTable(composite, SWT.MULTI | SWT.FULL_SELECTION));
-    enumerationsTable.setInput(input);
-    Table table = enumerationsTable.getTable();
-    table.addSelectionListener(this);
-
-    addButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_ADD_BUTTON_LABEL"), SWT.PUSH); //$NON-NLS-1$
-    addManyButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_ADD_BUTTON_LABEL") + "...", SWT.PUSH); //$NON-NLS-1$ //$NON-NLS-2$
-    deleteButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_INCLUDE"), SWT.PUSH); //$NON-NLS-1$
-
-    FormData data2 = new FormData();
-    data2.top = new FormAttachment(0, 0);
-    data2.left = new FormAttachment(100, -100);
-    data2.right = new FormAttachment(100, 0);
-    // data2.width = 50;
-    addButton.setLayoutData(data2);
-    addButton.addSelectionListener(this);
-
-    FormData data = new FormData();
-    data.left = new FormAttachment(addButton, 0, SWT.LEFT);
-    data.right = new FormAttachment(100, 0);
-    data.top = new FormAttachment(addButton, 0);
-    addManyButton.setLayoutData(data);
-    addManyButton.addSelectionListener(this);
-
-    data = new FormData();
-    data.left = new FormAttachment(addButton, 0, SWT.LEFT);
-    data.right = new FormAttachment(100, 0);
-    data.top = new FormAttachment(addManyButton, 0);
-    deleteButton.setLayoutData(data);
-    deleteButton.setEnabled(false);
-    deleteButton.addSelectionListener(this);
-
-    data = new FormData();
-    data.top = new FormAttachment(0, 0);
-    data.left = new FormAttachment(0, 0);
-    data.right = new FormAttachment(addButton, 0);
-    data.bottom = new FormAttachment(100, 0);
-    data.width = 50;
-    table.setLayoutData(data);
-    table.addListener(SWT.Resize, this);
-  }
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input;
-
-    Iterator validFacets = st.getValidFacets().iterator();
-
-    boolean isApplicable = false;
-    while (validFacets.hasNext())
-    {
-      String aValidFacet = (String) validFacets.next();
-      if (aValidFacet.equals(XSDConstants.ENUMERATION_ELEMENT_TAG))
-      {
-        isApplicable = true;
-      }
-    }
-
-    if (isApplicable)
-    {
-      addButton.setEnabled(true);
-      addManyButton.setEnabled(true);
-    }
-    else
-    {
-      addButton.setEnabled(false);
-      addManyButton.setEnabled(false);
-    }
-    enumerationsTable.setInput(input);
-  }
-
-  public void handleEvent(Event event)
-  {
-    Table table = enumerationsTable.getTable();
-    if (event.type == SWT.Resize && event.widget == table)
-    {
-      TableColumn tableColumn = table.getColumn(0);
-      tableColumn.setWidth(table.getSize().x);
-    }
-  }
-
-  public void dispose()
-  {
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-  class EnumerationsTableViewer extends NavigableTableViewer implements ICellModifier
-  {
-    protected String[] columnProperties = { XSDConstants.ENUMERATION_ELEMENT_TAG };
-
-    protected CellEditor[] cellEditors;
-
-    Table table;
-
-    public EnumerationsTableViewer(Table table)
-    {
-      super(table);
-      table = getTable();
-
-      table.setLinesVisible(true);
-
-      setContentProvider(new EnumerationsTableContentProvider());
-      setLabelProvider(new EnumerationsTableLabelProvider());
-      setColumnProperties(columnProperties);
-
-      setCellModifier(this);
-
-      TableColumn column = new TableColumn(table, SWT.NONE, 0);
-      column.setText(columnProperties[0]);
-      column.setAlignment(SWT.LEFT);
-      column.setResizable(true);
-
-      cellEditors = new CellEditor[1];
-
-      TableLayout layout = new TableLayout();
-      ColumnWeightData data = new ColumnWeightData(100);
-
-      layout.addColumnData(data);
-      cellEditors[0] = new TextCellEditor(table);
-
-      getTable().setLayout(layout);
-      setCellEditors(cellEditors);
-    }
-
-    public boolean canModify(Object element, String property)
-    {
-      return true;
-    }
-
-    public void modify(Object element, String property, Object value)
-    {
-      if (element instanceof TableItem && (value != null))
-      {
-        TableItem item = (TableItem) element;
-
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) item.getData();
-        SetXSDFacetValueCommand command = new SetXSDFacetValueCommand(Messages._UI_ACTION_SET_ENUMERATION_VALUE, enumFacet);
-        command.setValue((String) value);
-        getCommandStack().execute(command);
-        item.setData(enumFacet);
-        item.setText((String) value);
-      }
-    }
-
-    public Object getValue(Object element, String property)
-    {
-      if (element instanceof XSDEnumerationFacet)
-      {
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) element;
-        String value = enumFacet.getLexicalValue();
-        if (value == null)
-          value = ""; //$NON-NLS-1$
-        return value;
-      }
-      return ""; //$NON-NLS-1$
-    }
-
-  }
-
-  class EnumerationsTableContentProvider implements IStructuredContentProvider
-  {
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-    }
-
-    public java.lang.Object[] getElements(java.lang.Object inputElement)
-    {
-      java.util.List list = new ArrayList();
-      if (inputElement instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) inputElement;
-        return st.getEnumerationFacets().toArray();
-      }
-      return list.toArray();
-    }
-
-    public void dispose()
-    {
-    }
-  }
-
-  class EnumerationsTableLabelProvider extends LabelProvider implements ITableLabelProvider
-  {
-    public EnumerationsTableLabelProvider()
-    {
-
-    }
-
-    public Image getColumnImage(Object element, int columnIndex)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/XSDSimpleEnum.gif"); //$NON-NLS-1$
-    }
-
-    public String getColumnText(Object element, int columnIndex)
-    {
-      if (element instanceof XSDEnumerationFacet)
-      {
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) element;
-        String value = enumFacet.getLexicalValue();
-        if (value == null)
-          value = ""; //$NON-NLS-1$
-        return value;
-      }
-      return ""; //$NON-NLS-1$
-    }
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/ExtensionsSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/ExtensionsSection.java
deleted file mode 100644
index 1fad510..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/ExtensionsSection.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.common.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionAttributeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionElementCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.ExtensibleAddExtensionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.ExtensibleRemoveExtensionNodeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.RemoveExtensionNodeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.AddExtensionsComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.CategoryProvider;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.DOMExtensionTreeLabelProvider;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.ExtensionItemFilter;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.ExtensionsSchemasRegistry;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.XSDExtensionTreeContentProvider;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeFilter;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.text.XSDModelAdapter;
-import org.eclipse.wst.xsd.ui.internal.util.ModelReconcileAdapter;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class ExtensionsSection extends AbstractExtensionsSection
-{
-  XSDModelAdapter adapter = null;
-  
-  public ExtensionsSection()
-  {
-    super();
-    setExtensionTreeLabelProvider(new DOMExtensionTreeLabelProvider());
-    setExtensionTreeContentProvider(new XSDExtensionTreeContentProvider());
-  }
-  
-  protected AddExtensionsComponentDialog createAddExtensionsComponentDialog()
-  {
-    AddExtensionsComponentDialog dialog =  new AddExtensionsComponentDialog(composite.getShell(), getExtensionsSchemasRegistry())
-    {
-      protected IStructuredContentProvider getCategoryContentProvider()
-      {
-        return new XSDCategoryContentProvider();
-      }
-    };
-    dialog.addElementsTableFilter(new AddExtensionsComponentDialogFilter(input, dialog));    
-    return dialog;   
-  }
-   
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection); 
-    if (adapter == null)
-    {
-      if (selection instanceof StructuredSelection)
-      {
-        Object obj = ((StructuredSelection) selection).getFirstElement();
-        if (obj instanceof XSDConcreteComponent)
-        {  
-          Element element = ((XSDConcreteComponent)obj).getElement();
-          if (element != null)
-          {
-            adapter = XSDModelAdapter.lookupOrCreateModelAdapter(element.getOwnerDocument());
-            if (adapter != null)
-            {
-              ModelReconcileAdapter modelReconcileAdapter = adapter.getModelReconcileAdapter();
-              if (modelReconcileAdapter != null)
-              {
-                modelReconcileAdapter.addListener(internalNodeAdapter);
-              }
-            }  
-          }
-        }
-      }
-    }
-    extensionTreeViewer.expandToLevel(2);
-  }
-  
-  public void dispose()
-  {
-    super.dispose();
-    if (adapter != null)
-    {
-      ModelReconcileAdapter modelReconcileAdapter = adapter.getModelReconcileAdapter();
-      if (modelReconcileAdapter != null)
-      {
-        modelReconcileAdapter.removeListener(internalNodeAdapter);
-      }
-    }  
-  }
-
-  protected AddExtensionCommand getAddExtensionCommand(Object o)
-  {
-    AddExtensionCommand addExtensionCommand = null;
-    if (o instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration element = (XSDElementDeclaration) o;
-      ExtensibleAddExtensionCommand extensibleAddExtensionCommand = getExtensionsSchemasRegistry().getAddExtensionCommand(element.getTargetNamespace());
-      if (extensibleAddExtensionCommand != null)
-      {
-        extensibleAddExtensionCommand.setInputs((XSDConcreteComponent) input, element);
-        addExtensionCommand = extensibleAddExtensionCommand;
-      }
-      else
-      {
-        addExtensionCommand = new AddExtensionElementCommand(Messages._UI_ACTION_ADD_APPINFO_ELEMENT, (XSDConcreteComponent) input, element);
-      }
-    }
-    else if (o instanceof XSDAttributeDeclaration)
-    {
-      XSDAttributeDeclaration attribute = (XSDAttributeDeclaration) o;
-      addExtensionCommand = new AddExtensionAttributeCommand(Messages._UI_ACTION_ADD_APPINFO_ATTRIBUTE, (XSDConcreteComponent) input, attribute);
-    }
-    return addExtensionCommand;
-  }
-
-  protected Command getRemoveExtensionCommand(Object o)
-  {
-    Command command = null;
-    try
-    {
-      if (o instanceof Node)
-      {
-        Node node = (Node)o;
-        ExtensibleRemoveExtensionNodeCommand removeCommand = getExtensionsSchemasRegistry().getRemoveExtensionNodeCommand(node.getNamespaceURI());
-        if (removeCommand != null)
-        {
-          removeCommand.setInput((XSDConcreteComponent)input);
-          removeCommand.setNode(node);
-          return removeCommand;
-        }
-        else
-        {
-          command = new RemoveExtensionNodeCommand(Messages._UI_ACTION_DELETE_APPINFO_ELEMENT, node);  
-          // command.execute();
-        }
-      }
-    }
-    catch (Exception e)
-    {
-    }
-    return command;
-  }  
-  
-  protected ExtensionsSchemasRegistry getExtensionsSchemasRegistry()
-  {
-    return XSDEditorPlugin.getDefault().getExtensionsSchemasRegistry();
-  }
-  
-  protected boolean isTreeViewerInputElement(Element element)
-  {     
-    if (input instanceof XSDConcreteComponent)
-    {  
-      XSDConcreteComponent component = (XSDConcreteComponent)input;
-      Element componentElement = component.getElement();
-      Node parent = element.getParentNode();
-      Node grandParent = parent != null ? parent.getParentNode() : null;
-      return componentElement == element || componentElement == parent || componentElement == grandParent;
-    }
-    return false;
-  }
-  
-  protected IPreferenceStore getPrefStore()
-  {
-    return XSDEditorPlugin.getPlugin().getPreferenceStore();
-  }
-  
-  static class XSDCategoryContentProvider implements IStructuredContentProvider
-  {
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-     */
-    public Object[] getElements(Object inputElement)
-    {    
-      SpecificationForExtensionsSchema[] extensionsSchemaSpecs = null;
-      try
-      {
-        List inputList = (List) inputElement;
-        
-        List total = new ArrayList();
-        total.addAll(inputList);
-        
-        List dynamicCategories = XSDEditorPlugin.getPlugin().getExtensionsSchemasRegistry().getCategoryProviders();
-        for (Iterator iter = dynamicCategories.iterator(); iter.hasNext(); )
-        {
-          CategoryProvider categoryProvider = (CategoryProvider)iter.next();
-          for (Iterator it = categoryProvider.getCategories().iterator(); it.hasNext(); )
-          {
-            SpecificationForExtensionsSchema sp = (SpecificationForExtensionsSchema)it.next();
-            total.add(sp);
-          }
-        }
-
-        extensionsSchemaSpecs = (SpecificationForExtensionsSchema[]) total.toArray(new SpecificationForExtensionsSchema[0]);
-      }
-      catch (Exception e)
-      {
-      }
-      return extensionsSchemaSpecs;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-     */
-    public void dispose()
-    {
-      // Do nothing
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-     *      java.lang.Object, java.lang.Object)
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-      // Do nothing
-
-    }           
-  }
-  
-  /**
-   * This filter is to be used by the dialog invoked when addButton is pressed
-   */
-  protected class AddExtensionsComponentDialogFilter extends ViewerFilter
-  {
-    private Object input;
-    private AddExtensionsComponentDialog dialog;
-
-    public AddExtensionsComponentDialogFilter(Object input, AddExtensionsComponentDialog dialog)
-    {
-      this.input = input;
-      this.dialog = dialog;
-    }
-
-    public boolean select(Viewer viewer, Object parentElement, Object element)
-    {      
-      if (input instanceof XSDConcreteComponent &&
-          element instanceof XSDConcreteComponent)
-      {              
-        SpecificationForExtensionsSchema spec = dialog.getSelectedCategory();
-        // here we obtain the node filter that was registered for the applicable namespace
-        // notied
-        NodeFilter filter = XSDEditorPlugin.getPlugin().getNodeCustomizationRegistry().getNodeFilter(spec.getNamespaceURI());
-        
-        if (filter == null)
-        {
-          // Check if a node filter has been specified, if so, then use it
-          filter = spec.getNodeFilter();
-        }
-
-        if (filter instanceof ExtensionItemFilter)
-        {
-          ExtensionItemFilter extensionItemFilter = (ExtensionItemFilter)filter;
-          return extensionItemFilter.isApplicableContext((XSDConcreteComponent)input, (XSDConcreteComponent)element);               
-        }
-        else
-        {
-          // TODO cs: even if it's just a plain old NodeFilter we should still be able to use it! 
-        }
-      }
-      return true;
-    }
-  }  
-
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/FacetViewer.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/FacetViewer.java
deleted file mode 100644
index e13d74d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/FacetViewer.java
+++ /dev/null
@@ -1,559 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-//import java.util.ArrayList;
-//import java.util.Iterator;
-//import java.util.List;
-//
-//import org.eclipse.jface.viewers.CellEditor;
-//import org.eclipse.jface.viewers.ColumnWeightData;
-//import org.eclipse.jface.viewers.ICellModifier;
-//import org.eclipse.jface.viewers.ISelectionChangedListener;
-//import org.eclipse.jface.viewers.IStructuredContentProvider;
-//import org.eclipse.jface.viewers.ITableLabelProvider;
-//import org.eclipse.jface.viewers.LabelProvider;
-//import org.eclipse.jface.viewers.SelectionChangedEvent;
-//import org.eclipse.jface.viewers.StructuredSelection;
-//import org.eclipse.jface.viewers.TableLayout;
-//import org.eclipse.jface.viewers.TextCellEditor;
-//import org.eclipse.jface.viewers.Viewer;
-//import org.eclipse.swt.SWT;
-//import org.eclipse.swt.events.MouseEvent;
-//import org.eclipse.swt.events.MouseTrackAdapter;
-//import org.eclipse.swt.graphics.Image;
-//import org.eclipse.swt.graphics.Point;
-//import org.eclipse.swt.widgets.Composite;
-//import org.eclipse.swt.widgets.Table;
-//import org.eclipse.swt.widgets.TableColumn;
-//import org.eclipse.swt.widgets.TableItem;
-//import org.eclipse.wst.common.ui.internal.viewers.NavigableTableViewer;
-//import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-//import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-//import org.eclipse.wst.xsd.ui.internal.properties.XSDComboBoxPropertyDescriptor;
-//import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-//import org.eclipse.xsd.XSDConstrainingFacet;
-//import org.eclipse.xsd.XSDFactory;
-//import org.eclipse.xsd.XSDMaxExclusiveFacet;
-//import org.eclipse.xsd.XSDMaxFacet;
-//import org.eclipse.xsd.XSDMaxInclusiveFacet;
-//import org.eclipse.xsd.XSDMinExclusiveFacet;
-//import org.eclipse.xsd.XSDMinFacet;
-//import org.eclipse.xsd.XSDMinInclusiveFacet;
-//import org.eclipse.xsd.XSDSimpleTypeDefinition;
-//import org.eclipse.xsd.util.XSDConstants;
-//import org.eclipse.xsd.util.XSDSchemaBuildingTools;
-//import org.w3c.dom.Element;
-
-public class FacetViewer //extends NavigableTableViewer implements ICellModifier
-{
-//  public static final String FACET_NAME = XSDEditorPlugin.getXSDString("_UI_FACET_NAME"); // "Name";
-//  public static final String FACET_VALUE = XSDEditorPlugin.getXSDString("_UI_FACET_VALUE"); // "Value";
-//  public static final String FACET_OTHER = XSDEditorPlugin.getXSDString("_UI_FACET_FIXED"); // "Fixed";
-//
-//  protected FacetsTableLabelProvider facetsTableLabelProvider = new FacetsTableLabelProvider();
-//  protected FacetsTableContentProvider facetsTableContentProvider = new FacetsTableContentProvider();
-//  protected String[] columnProperties = { FACET_NAME, FACET_VALUE, FACET_OTHER };
-//  protected CellEditor[] cellEditors; // these cellEditors are used when
-//                                      // non-whitespace facet is selected
-//  protected CellEditor[] altCellEditors; // these cellEditors are used when
-//                                          // whitespace facet is selected
-//
-//  protected String[] whiteSpaceValues = new String[] { "", "preserve", "replace", "collapse" };
-//  protected String[] trueFalseValues = new String[] { "", "false", "true" };
-//
-//  /**
-//   * @param parent
-//   */
-//  public FacetViewer(Composite parent)
-//  {
-//    super(new Table(parent, SWT.FULL_SELECTION | SWT.SINGLE));
-//
-//    getTable().setLinesVisible(true);
-//    getTable().setHeaderVisible(true);
-//
-//    addSelectionChangedListener(new SelectionChangedListener());
-//    getTable().addMouseTrackListener(new MyMouseTrackListener());
-//
-//    setContentProvider(facetsTableContentProvider);
-//    setLabelProvider(facetsTableLabelProvider);
-//    setColumnProperties(columnProperties);
-//
-//    setCellModifier(this);
-//
-//    for (int i = 0; i < 3; i++)
-//    {
-//      TableColumn column = new TableColumn(getTable(), SWT.NONE, i);
-//      column.setText(columnProperties[i]);
-//      column.setAlignment(SWT.LEFT);
-//      column.setResizable(true);
-//    }
-//
-//    cellEditors = new CellEditor[3];
-//    altCellEditors = new CellEditor[3];
-//
-//    TableLayout layout = new TableLayout();
-//    ColumnWeightData data = new ColumnWeightData(60, 80, true);
-//    layout.addColumnData(data);
-//    cellEditors[0] = null;
-//
-//    ColumnWeightData data2 = new ColumnWeightData(120, 80, true);
-//    layout.addColumnData(data2);
-//
-//    cellEditors[1] = new TextCellEditor(getTable());
-//    XSDComboBoxPropertyDescriptor pd = new XSDComboBoxPropertyDescriptor("combo", "whitespace", whiteSpaceValues);
-//    altCellEditors[1] = pd.createPropertyEditor(getTable());
-//
-//    ColumnWeightData data3 = new ColumnWeightData(60, 60, true);
-//    layout.addColumnData(data3);
-//
-//    XSDComboBoxPropertyDescriptor pd2 = new XSDComboBoxPropertyDescriptor("combo", "other", trueFalseValues);
-//    cellEditors[2] = pd2.createPropertyEditor(getTable());
-//    altCellEditors[2] = pd2.createPropertyEditor(getTable());
-//
-//    getTable().setLayout(layout);
-//    setCellEditors(cellEditors);
-//
-//  }
-//
-//  /*
-//   * (non-Javadoc)
-//   * 
-//   * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object,
-//   *      java.lang.String)
-//   */
-//  public boolean canModify(Object element, String property)
-//  {
-//    return property.equals(FACET_VALUE) || property.equals(FACET_OTHER);
-//  }
-//
-//  /*
-//   * (non-Javadoc)
-//   * 
-//   * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object,
-//   *      java.lang.String)
-//   */
-//  public Object getValue(Object element, String property)
-//  {
-//    int column = 0;
-//    if (property.equals(columnProperties[0]))
-//    {
-//      column = 0;
-//    }
-//    else if (property.equals(columnProperties[1]))
-//    {
-//      column = 1;
-//    }
-//    else if (property.equals(columnProperties[2]))
-//    {
-//      column = 2;
-//    }
-//
-//    return facetsTableLabelProvider.getColumnText(element, column);
-//  }
-//
-//  /*
-//   * (non-Javadoc)
-//   * 
-//   * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object,
-//   *      java.lang.String, java.lang.Object)
-//   */
-//  public void modify(Object element, String property, Object value)
-//  {
-//    XSDSimpleTypeDefinition xsdSimpleType = (XSDSimpleTypeDefinition) getInput();
-//    TableItem item = (TableItem) element;
-//    if (item != null)
-//    {
-//      Object o = item.getData();
-//      if (o != null)
-//      {
-//        if (o instanceof String)
-//        {
-//          String facet = (String) o;
-//
-//          Element simpleTypeElement = xsdSimpleType.getElement();
-//          XSDDOMHelper xsdDOMHelper = new XSDDOMHelper();
-//          Element derivedByElement = xsdDOMHelper.getDerivedByElement(simpleTypeElement);
-//
-//          String prefix = simpleTypeElement.getPrefix();
-//          prefix = (prefix == null) ? "" : (prefix + ":");
-//
-//          Element childNodeElement = null;
-//          DOMAttribute valueAttr = null;
-//
-//          XSDConstrainingFacet targetFacet = getXSDConstrainingFacet(facet);
-//
-//          String newValue = "";
-//          if (value != null && value instanceof String)
-//          {
-//            newValue = (String) value;
-//          }
-//
-//          if (property.equals(columnProperties[1]))
-//          {
-//            if (targetFacet == null && newValue.length() > 0)
-//            {
-//              targetFacet = createFacet(facet);
-//              childNodeElement = (derivedByElement.getOwnerDocument()).createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + facet);
-//              valueAttr = new DOMAttribute(XSDConstants.VALUE_ATTRIBUTE, newValue);
-//              childNodeElement.setAttribute(valueAttr.getName(), valueAttr.getValue());
-//              // add and format child
-//              derivedByElement.appendChild(childNodeElement);
-//              targetFacet.setElement(childNodeElement);
-//              XSDDOMHelper.formatChild(childNodeElement);
-//
-//              // XSDSchemaHelper.updateElement(xsdSimpleType);
-//            }
-//            if (targetFacet == null)
-//            {
-//              return;
-//            }
-//
-//            if (newValue.length() > 0)
-//            {
-//              targetFacet.setLexicalValue(newValue);
-//
-//              if (targetFacet instanceof XSDMaxFacet || targetFacet instanceof XSDMinFacet)
-//              {
-//                if (targetFacet instanceof XSDMaxFacet)
-//                {
-//                  if (targetFacet instanceof XSDMaxExclusiveFacet)
-//                  {
-//                    XSDMaxInclusiveFacet xsdMaxInclusiveFacet = xsdSimpleType.getMaxInclusiveFacet();
-//                    if (xsdMaxInclusiveFacet != null)
-//                    {
-//                      Element xsdMaxInclusiveFacetElement = xsdMaxInclusiveFacet.getElement();
-//                      XSDDOMHelper.removeNodeAndWhitespace(xsdMaxInclusiveFacetElement);
-//                    }
-//                  }
-//                  else if (targetFacet instanceof XSDMaxInclusiveFacet)
-//                  {
-//                    XSDMaxExclusiveFacet xsdMaxExclusiveFacet = xsdSimpleType.getMaxExclusiveFacet();
-//                    if (xsdMaxExclusiveFacet != null)
-//                    {
-//                      Element xsdMaxExclusiveFacetElement = xsdMaxExclusiveFacet.getElement();
-//                      XSDDOMHelper.removeNodeAndWhitespace(xsdMaxExclusiveFacetElement);
-//                    }
-//                  }
-//                }
-//                else if (targetFacet instanceof XSDMinFacet)
-//                {
-//                  if (targetFacet instanceof XSDMinExclusiveFacet)
-//                  {
-//                    XSDMinInclusiveFacet xsdMinInclusiveFacet = xsdSimpleType.getMinInclusiveFacet();
-//                    if (xsdMinInclusiveFacet != null)
-//                    {
-//                      Element xsdMinInclusiveFacetElement = xsdMinInclusiveFacet.getElement();
-//                      XSDDOMHelper.removeNodeAndWhitespace(xsdMinInclusiveFacetElement);
-//                    }
-//                  }
-//                  else if (targetFacet instanceof XSDMinInclusiveFacet)
-//                  {
-//                    XSDMinExclusiveFacet xsdMinExclusiveFacet = xsdSimpleType.getMinExclusiveFacet();
-//                    if (xsdMinExclusiveFacet != null)
-//                    {
-//                      Element xsdMinExclusiveFacetElement = xsdMinExclusiveFacet.getElement();
-//                      XSDDOMHelper.removeNodeAndWhitespace(xsdMinExclusiveFacetElement);
-//                    }
-//                  }
-//                }
-//              }
-//            }
-//            else
-//            // newValue.length == 0
-//            {
-//              Element targetFacetElement = targetFacet.getElement();
-//              XSDDOMHelper.removeNodeAndWhitespace(targetFacetElement);
-//            }
-//          }
-//          else if (property.equals(columnProperties[2]))
-//          {
-//            if (targetFacet != null)
-//            {
-//              if (newValue.length() > 0)
-//              {
-//                targetFacet.getElement().setAttribute(XSDConstants.FIXED_ATTRIBUTE, newValue);
-//              }
-//              else
-//              {
-//                targetFacet.getElement().removeAttribute(XSDConstants.FIXED_ATTRIBUTE);
-//              }
-//            }
-//          }
-//          xsdSimpleType.setElement(simpleTypeElement);
-//          // xsdSimpleType.updateElement();
-//          refresh();
-//        }
-//      }
-//    }
-//  }
-//
-//  private XSDConstrainingFacet getXSDConstrainingFacet(String facetString)
-//  {
-//    XSDSimpleTypeDefinition xsdSimpleType = (XSDSimpleTypeDefinition) getInput();
-//    List list = xsdSimpleType.getFacetContents();
-//    if (list == null)
-//    {
-//      return null;
-//    }
-//    Iterator iter = list.iterator();
-//    XSDConstrainingFacet targetFacet = null;
-//
-//    while (iter.hasNext())
-//    {
-//      XSDConstrainingFacet xsdConstrainingFacet = (XSDConstrainingFacet) iter.next();
-//      if (xsdConstrainingFacet.getFacetName().equals(facetString))
-//      {
-//        targetFacet = xsdConstrainingFacet;
-//        break;
-//      }
-//    }
-//    return targetFacet;
-//  }
-//
-//  private XSDConstrainingFacet createFacet(String facet)
-//  {
-//    XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory();
-//    XSDConstrainingFacet xsdFacet = null;
-//    if (facet.equals("length"))
-//    {
-//      xsdFacet = factory.createXSDLengthFacet();
-//    }
-//    else if (facet.equals("minLength"))
-//    {
-//      xsdFacet = factory.createXSDMinLengthFacet();
-//    }
-//    else if (facet.equals("maxLength"))
-//    {
-//      xsdFacet = factory.createXSDMaxLengthFacet();
-//    }
-//    else if (facet.equals("minInclusive"))
-//    {
-//      xsdFacet = factory.createXSDMinInclusiveFacet();
-//    }
-//    else if (facet.equals("minExclusive"))
-//    {
-//      xsdFacet = factory.createXSDMinExclusiveFacet();
-//    }
-//    else if (facet.equals("maxInclusive"))
-//    {
-//      xsdFacet = factory.createXSDMaxInclusiveFacet();
-//    }
-//    else if (facet.equals("maxExclusive"))
-//    {
-//      xsdFacet = factory.createXSDMaxExclusiveFacet();
-//    }
-//
-//    else if (facet.equals("totalDigits"))
-//    {
-//      xsdFacet = factory.createXSDTotalDigitsFacet();
-//    }
-//    else if (facet.equals("fractionDigits"))
-//    {
-//      xsdFacet = factory.createXSDFractionDigitsFacet();
-//    }
-//    else if (facet.equals("whiteSpace"))
-//    {
-//      xsdFacet = factory.createXSDWhiteSpaceFacet();
-//    }
-//    return xsdFacet;
-//  }
-//
-//  /**
-//   * Get the tooltip for the facet
-//   */
-//  public String getToolTip(String facet)
-//  {
-//    String key = "";
-//    if (facet.equals("length"))
-//    {
-//      key = "_UI_TOOLTIP_LENGTH";
-//    }
-//    else if (facet.equals("minLength"))
-//    {
-//      key = "_UI_TOOLTIP_MIN_LEN";
-//    }
-//    else if (facet.equals("maxLength"))
-//    {
-//      key = "_UI_TOOLTIP_MAX_LEN";
-//    }
-//
-//    else if (facet.equals("minInclusive"))
-//    {
-//      key = "_UI_TOOLTIP_MIN_INCLUSIVE";
-//    }
-//    else if (facet.equals("minExclusive"))
-//    {
-//      key = "_UI_TOOLTIP_MIN_EXCLUSIVE";
-//    }
-//
-//    else if (facet.equals("maxInclusive"))
-//    {
-//      key = "_UI_TOOLTIP_MAX_INCLUSIVE";
-//    }
-//    else if (facet.equals("maxExclusive"))
-//    {
-//      key = "_UI_TOOLTIP_MAX_EXCLUSIVE";
-//    }
-//
-//    else if (facet.equals("totalDigits"))
-//    {
-//      key = "_UI_TOOLTIP_TOTAL_DIGITS";
-//    }
-//    else if (facet.equals("fractionDigits"))
-//    {
-//      key = "_UI_TOOLTIP_FRACTION_DIGITS";
-//    }
-//
-//    else if (facet.equals("whiteSpace"))
-//    {
-//      key = "_UI_TOOLTIP_WHITE_SPACE";
-//    }
-//
-//    return (key != null) ? XSDEditorPlugin.getXSDString(key) : "";
-//  }
-//
-//  /**
-//   * This listener detects which row is selected and add a tool tip for that row
-//   */
-//  public class MyMouseTrackListener extends MouseTrackAdapter
-//  {
-//    public void mouseHover(MouseEvent e)
-//    {
-//      TableItem item = getTable().getItem(new Point(e.x, e.y));
-//      if (item != null)
-//      {
-//        Object o = item.getData();
-//        if (o != null)
-//        {
-//          String facetName = (String) o;
-//          getTable().setToolTipText(getToolTip(facetName));
-//        }
-//      }
-//    }
-//  }
-//
-//  /**
-//   * Based on the selection, detects if it is a white space or not, and add the
-//   * corresponding cell editors
-//   */
-//  public class SelectionChangedListener implements ISelectionChangedListener
-//  {
-//    public void selectionChanged(SelectionChangedEvent event)
-//    {
-//      Object selection = event.getSelection();
-//      if (selection instanceof StructuredSelection)
-//      {
-//        Object o = ((StructuredSelection) selection).getFirstElement();
-//        if (o != null)
-//        {
-//          String facet = (String) o;
-//          if (facet.equals("whiteSpace"))
-//          {
-//            setCellEditors(altCellEditors);
-//          }
-//          else
-//          {
-//            setCellEditors(cellEditors);
-//          }
-//        }
-//      }
-//    }
-//  }
-//
-//  class FacetsTableContentProvider implements IStructuredContentProvider
-//  {
-//    protected String facet;
-//
-//    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-//    {
-//    }
-//
-//    public java.lang.Object[] getElements(java.lang.Object inputElement)
-//    {
-//      List v = new ArrayList();
-//      XSDSimpleTypeDefinition inputXSDSimpleType = (XSDSimpleTypeDefinition) inputElement;
-//      XSDSimpleTypeDefinition base = inputXSDSimpleType.getPrimitiveTypeDefinition();
-//
-//      if (base != null)
-//      {
-//        Iterator validFacets = inputXSDSimpleType.getValidFacets().iterator();
-//        while (validFacets.hasNext())
-//        {
-//          String aValidFacet = (String) validFacets.next();
-//          if (!(aValidFacet.equals("pattern") || aValidFacet.equals("enumeration")))
-//          {
-//            v.add(aValidFacet);
-//          }
-//        }
-//      }
-//      return v.toArray();
-//    }
-//
-//    public void dispose()
-//    {
-//    }
-//  }
-//
-//  class FacetsTableLabelProvider extends LabelProvider implements ITableLabelProvider
-//  {
-//    public Image getColumnImage(Object element, int columnIndex)
-//    {
-//      return null;
-//    }
-//
-//    public String getColumnText(Object element, int columnIndex)
-//    {
-//      if (element instanceof String)
-//      {
-//        String value = null;
-//        XSDConstrainingFacet targetFacet = getXSDConstrainingFacet((String) element);
-//        switch (columnIndex)
-//        {
-//        case 0:
-//        {
-//          value = (String) element;
-//          break;
-//        }
-//        case 1:
-//        {
-//          if (targetFacet == null)
-//          {
-//            value = "";
-//          }
-//          else
-//          {
-//            value = targetFacet.getLexicalValue();
-//          }
-//
-//          break;
-//        }
-//        case 2:
-//        {
-//          if (targetFacet == null)
-//          {
-//            value = "";
-//          }
-//          else
-//          {
-//            Element elem = targetFacet.getElement();
-//            value = elem.getAttribute(XSDConstants.FIXED_ATTRIBUTE);
-//            if (value == null)
-//              value = "";
-//          }
-//        }
-//        }
-//        return value;
-//      }
-//      return "";
-//    }
-//  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/IDocumentChangedNotifier.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/IDocumentChangedNotifier.java
deleted file mode 100644
index a72e632..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/IDocumentChangedNotifier.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-
-public interface IDocumentChangedNotifier
-{
-  public void addListener(INodeAdapter adapter);
-  public void removeListener(INodeAdapter adapter);  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/MultiplicitySection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/MultiplicitySection.java
deleted file mode 100644
index 94593d4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/MultiplicitySection.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateMaxOccursCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateMinOccursCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDParticleContent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-
-public class MultiplicitySection extends RefactoringSection
-{
-  protected CCombo minCombo, maxCombo;
-
-  public MultiplicitySection()
-  {
-    super();
-  }
-
-  protected void createContents(Composite parent)
-  {
-  }
-
-  
-  public void doHandleEvent(Event event)
-  {
-    if (event.widget == minCombo)
-    {
-      updateMinAttribute();
-    }
-    else if (event.widget == maxCombo)
-    {
-      updateMaxAttribute();
-    }
-  }
-
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == minCombo)
-    {
-      updateMinAttribute();
-    }
-    else if (e.widget == maxCombo)
-    {
-      updateMaxAttribute();
-    }
-    super.doWidgetSelected(e);
-  }
-
-  protected void updateMaxAttribute()
-  {
-    setErrorMessage(null);
-    XSDParticle particle = null;
-
-    if (input instanceof XSDParticleContent)
-    {
-      particle = getAssociatedParticle((XSDParticleContent) input);
-    }
-    if (particle != null)
-    {
-      String newValue = maxCombo.getText().trim();
-      
-      if (newValue.length() == 0)
-      {
-        particle.unsetMaxOccurs();
-        return;
-      }
-      try
-      {
-        int newMax = 1;
-        if (newValue.equals("unbounded") || newValue.equals("*")) //$NON-NLS-1$ //$NON-NLS-2$
-        {
-          newMax = XSDParticle.UNBOUNDED;
-        }
-        else
-        {
-          if (newValue.length() > 0)
-          {
-            newMax = Integer.parseInt(newValue);
-          }
-        }
-        setListenerEnabled(false);
-        UpdateMaxOccursCommand command = new UpdateMaxOccursCommand(Messages._UI_ACTION_CHANGE_MAXIMUM_OCCURRENCE, particle, newMax);
-        getCommandStack().execute(command);
-        setListenerEnabled(true);
-
-      }
-      catch (NumberFormatException e)
-      {
-        setErrorMessage(Messages._UI_ERROR_INVALID_VALUE_FOR_MAXIMUM_OCCURRENCE);
-      }
-    }
-  }
-
-  protected void updateMinAttribute()
-  {
-    setErrorMessage(null);
-    XSDParticle particle = null;
-
-    if (input instanceof XSDParticleContent)
-    {
-      particle = getAssociatedParticle((XSDParticleContent) input);
-    }
-    if (particle != null)
-    {
-      String newValue = minCombo.getText();
-      if (newValue.length() == 0)
-      {
-        particle.unsetMinOccurs();
-      }
-      try
-      {
-        int newMin = 1;
-        if (newValue.equals("unbounded") || newValue.equals("*")) //$NON-NLS-1$ //$NON-NLS-2$
-        {
-          newMin = XSDParticle.UNBOUNDED;
-        }
-        else
-        {
-          newMin = Integer.parseInt(newValue);
-        }
-        UpdateMinOccursCommand command = new UpdateMinOccursCommand(Messages._UI_ACTION_CHANGE_MINIMUM_OCCURRENCE, particle, newMin);
-        getCommandStack().execute(command);
-      }
-      catch (NumberFormatException e)
-      {
-
-      }
-    }
-  }
-  
-  protected void refreshMinMax()
-  {
-    boolean refreshMinText = true;
-    boolean refreshMaxText = true;
-    if (minCombo.isFocusControl())
-    {
-      refreshMinText = false;
-    }
-    if (maxCombo.isFocusControl())
-    {
-      refreshMaxText = false;
-    }
-    if (refreshMinText)
-    {
-      minCombo.setText(""); //$NON-NLS-1$
-    }
-    if (refreshMaxText)
-    {
-      maxCombo.setText(""); //$NON-NLS-1$
-    }
-
-    if (input != null)
-    {
-      if (input instanceof XSDParticleContent)
-      {
-        XSDParticle particle = getAssociatedParticle((XSDParticleContent) input);
-        if (particle != null)
-        {
-          // minText.setText(String.valueOf(particle.getMinOccurs()));
-          // maxText.setText(String.valueOf(particle.getMaxOccurs()));
-          Element element = particle.getElement();
-          if (element != null)
-          {
-            String min = element.getAttribute(XSDConstants.MINOCCURS_ATTRIBUTE);
-            String max = element.getAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE);
-            if (min != null && refreshMinText)
-            {
-              minCombo.setText(min);
-            }
-            if (max != null && refreshMaxText)
-            {
-              maxCombo.setText(max);
-            }
-          }
-        }
-      }
-    }
-  }
-
-  protected XSDParticle getAssociatedParticle(XSDParticleContent particleContent)
-  {
-    XSDConcreteComponent xsdComp = particleContent.getContainer();
-    if (xsdComp instanceof XSDParticle)
-    {
-      return (XSDParticle) xsdComp;
-    }
-    return null;
-  }
-  
-  public void dispose()
-  {
-    if (minCombo != null && !minCombo.isDisposed())
-      removeListeners(minCombo);
-    if (maxCombo != null && !maxCombo.isDisposed())
-      removeListeners(maxCombo);
-    super.dispose();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/RefactoringSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/RefactoringSection.java
deleted file mode 100644
index a209eb0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/RefactoringSection.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.events.HyperlinkEvent;
-import org.eclipse.ui.forms.events.IHyperlinkListener;
-import org.eclipse.ui.forms.widgets.ImageHyperlink;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.ISelectionMapper;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.refactor.actions.RenameComponentAction;
-import org.eclipse.xsd.XSDSchema;
-
-public abstract class RefactoringSection extends AbstractSection implements IHyperlinkListener
-{
-  /**
-   * Clicking on it invokes the refactor->rename action.
-   */
-  private ImageHyperlink renameHyperlink;
-
-  /**
-   * Invokes the refactor->rename action on the current selection.
-   */
-  private void invokeRenameRefactoring()
-  {
-    IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
-    XSDSchema schema = (XSDSchema) editor.getAdapter(XSDSchema.class);
-    ISelection selection = editor.getSite().getSelectionProvider().getSelection();
-    ISelectionMapper mapper = (ISelectionMapper) editor.getAdapter(ISelectionMapper.class);
-    selection = mapper != null ? mapper.mapSelection(selection) : selection;
-    RenameComponentAction action = new RenameComponentAction(selection, schema);
-    action.update(selection);
-    action.run();
-  }
-
-  /**
-   * Creates the refactor/rename hyperlink shown beside a component name.
-   * Clicking on the hyperlink invokes the refactor/rename action.
-   * 
-   * @param parent
-   *          the parent composite. Must not be null.
-   */
-  protected void createRenameHyperlink(Composite parent)
-  {
-    renameHyperlink = getWidgetFactory().createImageHyperlink(parent, SWT.NONE);
-
-    renameHyperlink.setImage(XSDEditorPlugin.getXSDImage("icons/quickassist.gif")); //$NON-NLS-1$
-    renameHyperlink.setToolTipText(Messages._UI_TOOLTIP_RENAME_REFACTOR);
-    renameHyperlink.addHyperlinkListener(this);
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.ui.forms.events.IHyperlinkListener#linkActivated(org.eclipse.ui.forms.events.HyperlinkEvent)
-   */
-  public void linkActivated(HyperlinkEvent e)
-  {
-    invokeRenameRefactoring();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.ui.forms.events.IHyperlinkListener#linkEntered(org.eclipse.ui.forms.events.HyperlinkEvent)
-   */
-  public void linkEntered(HyperlinkEvent e)
-  {
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.ui.forms.events.IHyperlinkListener#linkExited(org.eclipse.ui.forms.events.HyperlinkEvent)
-   */
-  public void linkExited(HyperlinkEvent e)
-  {
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SchemaLocationSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SchemaLocationSection.java
deleted file mode 100644
index 129eafd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SchemaLocationSection.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.viewers.ResourceFilter;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.wizards.XSDSelectIncludeFileWizard;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.impl.XSDIncludeImpl;
-import org.eclipse.xsd.impl.XSDRedefineImpl;
-import org.w3c.dom.Element;
-
-public class SchemaLocationSection extends CommonDirectivesSection
-{
-	  IWorkbenchPart part;
-	  
-	  /**
-	   * 
-	   */
-	  public SchemaLocationSection()
-	  {
-	    super();
-	  }
-
-		/**
-		 * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-		 */
-		public void createContents(Composite parent)
-		{
-			composite = getWidgetFactory().createFlatFormComposite(parent);
-
-      GridLayout gridLayout = new GridLayout();
-      gridLayout.marginTop = 0;
-      gridLayout.marginBottom = 0;
-      gridLayout.numColumns = 3;
-      composite.setLayout(gridLayout);
-      
-      GridData data = new GridData();
-
-			// Create Schema Location Label
-			CLabel schemaLocationLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_LOCATION")); //$NON-NLS-1$
-      data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-      data.grabExcessHorizontalSpace = false;
-      schemaLocationLabel.setLayoutData(data);
-			
-      // Create Schema Location Text
-      schemaLocationText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-      schemaLocationText.setEditable(true);
-      applyAllListeners(schemaLocationText);       
-
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-      schemaLocationText.setLayoutData(data);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(schemaLocationText,
-      		XSDEditorCSHelpIds.GENERAL_TAB__INCLUDE_REDEFINE__SCHEMALOCATION);
-      
-			// Create Wizard Button
-			wizardButton = getWidgetFactory().createButton(composite, "", SWT.NONE); //$NON-NLS-1$
-      wizardButton.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$
-      data = new GridData();
-      data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-      data.grabExcessHorizontalSpace = false;
-			wizardButton.setLayoutData(data);
-			wizardButton.addSelectionListener(this);
-			
-      // error text
-      errorText = new StyledText(composite, SWT.FLAT);
-      errorText.setEditable(false);
-      errorText.setEnabled(false);
-      errorText.setText(""); //$NON-NLS-1$
-      
-      data = new GridData();
-      data.horizontalAlignment = GridData.FILL;
-      data.horizontalSpan = 3;
-      data.grabExcessHorizontalSpace = true;
-      errorText.setLayoutData(data);
-
-		}
-		
-		public void doWidgetSelected(SelectionEvent event)
-    {
-			if (event.widget == wizardButton)
-      {
-				Shell shell = Display.getCurrent().getActiveShell();
-			    
-				IFile currentIFile = ((IFileEditorInput)getActiveEditor().getEditorInput()).getFile();
-				ViewerFilter filter = new ResourceFilter(new String[] { ".xsd" },  //$NON-NLS-1$
-			            new IFile[] { currentIFile },
-			            null);
-			      
-			  XSDSelectIncludeFileWizard fileSelectWizard = 
-			      new XSDSelectIncludeFileWizard(xsdSchema, true,
-			          XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_SCHEMA"), //$NON-NLS-1$
-			          XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_DESC"), //$NON-NLS-1$
-			          filter,
-			          (IStructuredSelection) getSelection());
-
-			  WizardDialog wizardDialog = new WizardDialog(shell, fileSelectWizard);
-			  wizardDialog.create();
-			  wizardDialog.setBlockOnOpen(true);
-			  int result = wizardDialog.open();
-				  
-	      String value = schemaLocationText.getText();
-	      if (result == Window.OK)
-	      {
-          errorText.setText(""); //$NON-NLS-1$
-	        IFile selectedIFile = fileSelectWizard.getResultFile();
-	        String schemaFileString = value;
-	        if (selectedIFile != null) 
-	        {
-	          schemaFileString = URIHelper.getRelativeURI(selectedIFile.getLocation(), currentIFile.getLocation());
-	        }
-	        else
-	        {
-	          schemaFileString = fileSelectWizard.getURL();
-	        }
-
-          handleSchemaLocationChange(schemaFileString, fileSelectWizard.getNamespace(), null);
-	        refresh();
-			  } 
-			}
-		}
-
-		/*
-		 * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-		 */
-		public void refresh()
-		{
-				setListenerEnabled(false);
-
-				Element element = null;
-				if (input instanceof XSDInclude)
-        { 
-					element = ((XSDIncludeImpl) input).getElement();
-				}
-				else if (input instanceof XSDRedefine)
-        {
-					element = ((XSDRedefineImpl) input).getElement();
-				}
-				
-				if (element != null)
-        {
-					String location = ""; //$NON-NLS-1$
-					location = element.getAttribute("schemaLocation"); //$NON-NLS-1$
-          if (location == null)
-          {
-            location = ""; //$NON-NLS-1$
-          }
-					schemaLocationText.setText(location);
-				}
-
-        setListenerEnabled(true);
-		}
-
-	  /* (non-Javadoc)
-	   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#shouldUseExtraSpace()
-	   */
-	  public boolean shouldUseExtraSpace()
-	  {
-	    return true;
-	  }
-    
-    protected void handleSchemaLocationChange(String schemaFileString, String namespace, XSDSchema externalSchema)
-    {
-      if (input instanceof XSDInclude)
-      {
-        Element element = ((XSDIncludeImpl) input).getElement();
-        element.setAttribute("schemaLocation", schemaFileString); //$NON-NLS-1$
-      }
-      else if (input instanceof XSDRedefine)
-      {
-        Element element = ((XSDRedefineImpl) input).getElement();
-        element.setAttribute("schemaLocation", schemaFileString); //$NON-NLS-1$
-      }
-    }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SimpleContentUnionMemberTypesDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SimpleContentUnionMemberTypesDialog.java
deleted file mode 100644
index a090be1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SimpleContentUnionMemberTypesDialog.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.util.ViewUtility;
-import org.eclipse.wst.xsd.ui.internal.widgets.TypeSection;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-
-
-public class SimpleContentUnionMemberTypesDialog extends Dialog implements SelectionListener
-{
-  XSDSimpleTypeDefinition simpleType;
-  /**
-   * @param parentShell
-   */
-  public SimpleContentUnionMemberTypesDialog(Shell parentShell, XSDSimpleTypeDefinition simpleType)
-  {
-    super(parentShell);
-    this.simpleType = simpleType;
-  }
-  
-  Table table;
-  TypeSection typeSection;
-  Button addButton, removeButton;
-  org.eclipse.swt.widgets.List memberTypesList;
-  
-  private String result;
-
-  protected void configureShell(Shell shell)
-  {
-    super.configureShell(shell);
-  }
-
-  protected void buttonPressed(int buttonId)
-  {
-    if (buttonId == Window.OK)
-    {
-      StringBuffer sb = new StringBuffer();
-      int length = memberTypesList.getItemCount();
-      for (int i=0 ; i < length; i++)
-      {
-        sb.append(memberTypesList.getItem(i));
-        if (i < length - 1)
-        {
-          sb.append(" "); //$NON-NLS-1$
-        }
-      }
-      result = sb.toString();
-    }
-    super.buttonPressed(buttonId);
-  }
-
-  public String getResult() { return result; }
-
-  //
-  // Create the controls
-  //
-  public Control createDialogArea(Composite parent)
-  {
-    Composite client = (Composite)super.createDialogArea(parent);
-    getShell().setText("Union " + XSDConstants.MEMBERTYPES_ATTRIBUTE);  //$NON-NLS-1$
-    
-    Label instructions = new Label(client, SWT.LEFT | SWT.WRAP);
-    instructions.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_SELECT_MEMBERTYPES")); //$NON-NLS-1$
-    
-    Composite columnsComposite = new Composite(client, SWT.NONE);
-    GridLayout ccGL = new GridLayout();
-    ccGL.verticalSpacing = 0;
-    ccGL.horizontalSpacing = 0;
-    ccGL.marginHeight = 0;
-    ccGL.marginWidth = 0;
-    ccGL.makeColumnsEqualWidth = true;
-    ccGL.numColumns = 3;
-    columnsComposite.setLayout(ccGL);
-    
-    GridData ccGD = new GridData();
-    ccGD.grabExcessHorizontalSpace = true;
-    ccGD.horizontalAlignment = GridData.FILL;
-    columnsComposite.setLayoutData(ccGD);     
-                           
-    typeSection = new TypeSection(columnsComposite);
-    typeSection.setShowUserComplexType(false);
-
-    typeSection.createClient(columnsComposite);
-    typeSection.getSimpleType().setSelection(false);
-    typeSection.getSimpleType().addSelectionListener(this);
-    typeSection.getUserSimpleType().addSelectionListener(this);
-    
-    ViewUtility.createHorizontalFiller(columnsComposite, 1);
-    
-    Label memberListLabel = new Label(columnsComposite, SWT.LEFT);
-    memberListLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES_VALUE")); //$NON-NLS-1$
-    
-    Composite dataComposite = new Composite(client, SWT.NONE);
-    GridLayout dcGL = new GridLayout();
-    dcGL.verticalSpacing = 0;
-    dcGL.marginHeight = 0;
-    dcGL.marginWidth = 0;
-    dcGL.numColumns = 3;
-    dataComposite.setLayout(dcGL);
-    
-    GridData dcGD = new GridData();
-    dcGD.grabExcessHorizontalSpace = true;
-    dcGD.grabExcessVerticalSpace = true;
-    dataComposite.setLayoutData(dcGD);
-    
-    table = new Table(dataComposite,
-        SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); 
-    table.setHeaderVisible(false);
-    table.setLinesVisible(true);
-    GridData gd2 = new GridData();
-    gd2.grabExcessHorizontalSpace = true;
-    gd2.grabExcessVerticalSpace = true;
-    gd2.horizontalAlignment = GridData.FILL;
-    gd2.verticalAlignment = GridData.FILL;
-    gd2.heightHint = 200;
-    gd2.widthHint = 200;
-    table.setLayoutData(gd2);
-
-    // Fill table
-    handleSetInput();
-    table.getItemCount();
-
-    TableColumn tc = new TableColumn(table, SWT.LEFT);
-    tc.setWidth(200);
-    tc.setResizable(true);
-    
-    Composite buttonComposite = new Composite(dataComposite, SWT.NONE);
-    GridLayout bcGL = new GridLayout();
-    bcGL.numColumns = 1;
-    buttonComposite.setLayout(bcGL);
-    addButton = new Button(buttonComposite, SWT.PUSH);
-    addButton.setText(">"); //$NON-NLS-1$
-    addButton.addSelectionListener(this);
-    removeButton = new Button(buttonComposite, SWT.PUSH);
-    removeButton.setText("<"); //$NON-NLS-1$
-    removeButton.addSelectionListener(this);
-    
-    Composite listComposite = new Composite(dataComposite, SWT.NONE);
-    GridLayout mtGL = new GridLayout();
-    mtGL.numColumns = 1;
-    mtGL.marginHeight = 0;
-    mtGL.marginWidth = 0;
-    mtGL.horizontalSpacing = 0;
-    mtGL.verticalSpacing = 0;
-    listComposite.setLayout(mtGL);
-
-    GridData mtGD = new GridData();
-    mtGD.grabExcessHorizontalSpace = true;
-    mtGD.grabExcessVerticalSpace = true;
-    mtGD.verticalAlignment = GridData.FILL;
-    mtGD.horizontalAlignment = GridData.FILL;
-    listComposite.setLayoutData(mtGD);
-    
-    memberTypesList = new org.eclipse.swt.widgets.List(listComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-    GridData mtlGD = new GridData();
-    mtlGD.grabExcessHorizontalSpace = true;
-    mtlGD.grabExcessVerticalSpace = true;
-    mtlGD.verticalAlignment = GridData.FILL;
-    mtlGD.horizontalAlignment = GridData.FILL;
-    mtlGD.heightHint = 200;
-    mtlGD.widthHint = 200;
-    memberTypesList.setLayoutData(mtlGD);
-    
-    initializeMemberListContent();
-    return client;
-  }
-
-  private void initializeMemberListContent()
-  {
-//    String result = element.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-//    if (result == null)
-//    {
-//      return;
-//    }
-//    StringTokenizer token = new StringTokenizer(result);
-//    while (token.hasMoreTokens())
-//    {
-//      memberTypesList.add(token.nextToken());
-//    }
-    XSDSchema schema = simpleType.getSchema();
-    for (Iterator i = simpleType.getMemberTypeDefinitions().iterator(); i.hasNext(); )
-    {
-      String name = ((XSDSimpleTypeDefinition)i.next()).getQName(schema);
-      if (name != null)
-      memberTypesList.add(name);
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == typeSection.getSimpleType() && typeSection.getSimpleType().getSelection())
-     {
-      populateBuiltInType();
-    }
-    else if (e.widget == typeSection.getUserSimpleType() && typeSection.getUserSimpleType().getSelection())
-     {
-      populateUserSimpleType(false);
-    }
-    else if (e.widget == addButton)
-    {
-      TableItem[] items = table.getItems();
-      int selection = table.getSelectionIndex();
-      if (items != null && items.length > 0 && selection >= 0)
-      {
-        String typeToAdd = items[selection].getData().toString();
-        if (memberTypesList.indexOf(typeToAdd) < 0)
-        {
-          memberTypesList.add(items[selection].getData().toString());
-        }
-      }
-    }
-    else if (e.widget == removeButton)
-    {
-      String[] typesToRemove = memberTypesList.getSelection();
-      for (int i=0; i < typesToRemove.length; i++)
-      {
-        memberTypesList.remove(typesToRemove[i]);
-      }
-    }
-  }
-
-  /* (non-Javadoc)
-   * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-   */
-  public void widgetDefaultSelected(SelectionEvent e)
-  {
-  }
-  
-  public void handleSetInput()
-  {
-    populateBuiltInType();
-  }
-  
-  public void populateBuiltInType()
-  {
-    table.removeAll();
-    List items = getBuiltInTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-     {
-      TableItem item = new TableItem(table, SWT.NONE);
-      item.setText(items.get(i).toString());
-      item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif")); //$NON-NLS-1$
-      item.setData(items.get(i));
-    }
-  }
-
-  public void populateUserSimpleType(boolean showAnonymous)
-  {
-    table.removeAll();
-    if (showAnonymous)
-     {
-      TableItem anonymousItem = new TableItem(table, SWT.NONE);
-      anonymousItem.setText("**anonymous**"); //$NON-NLS-1$
-      anonymousItem.setData("**anonymous**"); //$NON-NLS-1$
-    }
-    List items = getUserSimpleTypeNamesList();
-    for (int i = 0; i < items.size(); i++)
-     {
-      TableItem item = new TableItem(table, SWT.NONE);
-      item.setText(items.get(i).toString());
-      item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif")); //$NON-NLS-1$
-      item.setData(items.get(i));
-    }
-  }
-  
-  public java.util.List getBuiltInTypeNamesList()
-  {
-    TypesHelper helper = new TypesHelper(simpleType.getSchema());
-    return helper.getBuiltInTypeNamesList();
-  }
-
-  public java.util.List getUserSimpleTypeNamesList()
-  {
-    TypesHelper helper = new TypesHelper(simpleType.getSchema());
-    return helper.getUserSimpleTypeNamesList();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SpecificConstraintsWidget.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SpecificConstraintsWidget.java
deleted file mode 100644
index 4d9baa0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SpecificConstraintsWidget.java
+++ /dev/null
@@ -1,692 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import com.ibm.icu.util.StringTokenizer;
-
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.viewers.CellEditor;
-import org.eclipse.jface.viewers.ColumnWeightData;
-import org.eclipse.jface.viewers.ICellModifier;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableLayout;
-import org.eclipse.jface.viewers.TextCellEditor;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-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.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.internal.viewers.NavigableTableViewer;
-import org.eclipse.wst.xsd.ui.internal.common.commands.AddEnumerationsCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.ChangeToLocalSimpleTypeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.SetXSDFacetValueCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateXSDPatternFacetCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.widgets.EnumerationsDialog;
-import org.eclipse.wst.xsd.ui.internal.wizards.RegexWizard;
-import org.eclipse.xsd.XSDEnumerationFacet;
-import org.eclipse.xsd.XSDFacet;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDFeature;
-import org.eclipse.xsd.XSDPatternFacet;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class SpecificConstraintsWidget implements SelectionListener, Listener
-{
-  public static int ENUMERATION = 0;
-  public static int PATTERN = 1;
-  
-  int kind;
-  ConstraintsTableViewer constraintsTableViewer;
-  Button addButton;
-  Button addUsingDialogButton;
-  Button deleteButton;
-  Button editButton;
-  Composite composite;
-  boolean isEnabled;
-  TabbedPropertySheetWidgetFactory factory;
-  XSDSimpleTypeDefinition input;
-  XSDFeature feature;
-  boolean isReadOnly;
-  CommandStack commandStack;
-  XSDFacetSection facetSection;
-
-  public SpecificConstraintsWidget(Composite composite, TabbedPropertySheetWidgetFactory factory, XSDFeature feature, XSDSimpleTypeDefinition input, XSDFacetSection facetSection)
-  {
-    this.factory = factory;
-    this.input = input;
-    this.composite = composite;
-    this.feature = feature;
-    this.facetSection = facetSection;
-    createControl(composite);
-  }
-
-  public void setCommandStack(CommandStack commandStack)
-  {
-    this.commandStack = commandStack; 
-  }
-
-  public void setIsReadOnly(boolean isReadOnly)
-  {
-    this.isReadOnly = isReadOnly;
-  }
-
-  public TabbedPropertySheetWidgetFactory getWidgetFactory()
-  {
-    return factory;
-  }
-  
-  public Control getControl()
-  {
-    return composite;
-  }
-  
-  public void setEnabled(boolean isEnabled)
-  {
-    this.isEnabled = isEnabled;
-    addButton.setEnabled(isEnabled);
-    addUsingDialogButton.setEnabled(isEnabled);
-    editButton.setEnabled(isEnabled);
-    constraintsTableViewer.getTable().setEnabled(isEnabled);
-    composite.setEnabled(isEnabled);
-  }
-
-  public Control createControl(Composite parent)
-  {
-    composite = factory.createFlatFormComposite(parent);
-    GridData data = new GridData();
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 2;
-    composite.setLayout(gridLayout);
-
-    constraintsTableViewer = new ConstraintsTableViewer(getWidgetFactory().createTable(composite, SWT.MULTI | SWT.FULL_SELECTION));
-    constraintsTableViewer.setInput(input);
-    Table table = constraintsTableViewer.getTable();
-    table.addSelectionListener(this);
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = true;
-    data.widthHint = 150;
-    data.grabExcessVerticalSpace = true;
-    table.setLayoutData(data);
-    table.addListener(SWT.Resize, this);
-    
-    Composite buttonComposite = getWidgetFactory().createComposite(composite, SWT.FLAT);
-    GridLayout buttonCompositeLayout = new GridLayout();
-    buttonCompositeLayout.marginTop = 0;
-    buttonCompositeLayout.marginBottom = 0;
-    buttonCompositeLayout.numColumns = 1;
-    buttonComposite.setLayout(buttonCompositeLayout);
-    data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.grabExcessHorizontalSpace = false;
-    buttonComposite.setLayoutData(data);
-
-    
-    addButton = getWidgetFactory().createButton(buttonComposite, Messages._UI_ACTION_ADD, SWT.PUSH);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = GridData.BEGINNING;
-    addButton.setLayoutData(data);
-    addButton.addSelectionListener(this);
-    
-    addUsingDialogButton = getWidgetFactory().createButton(buttonComposite, Messages._UI_ACTION_ADD_WITH_DOTS, SWT.PUSH);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = GridData.BEGINNING;
-    addUsingDialogButton.setLayoutData(data);
-    addUsingDialogButton.addSelectionListener(this);
-
-    editButton = getWidgetFactory().createButton(buttonComposite, Messages._UI_ACTION_EDIT_WITH_DOTS, SWT.PUSH);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    editButton.setLayoutData(data);
-    editButton.setEnabled(false);
-    editButton.addSelectionListener(this);
-    
-    
-    deleteButton = getWidgetFactory().createButton(buttonComposite, Messages._UI_ACTION_DELETE, SWT.PUSH);
-
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    deleteButton.setLayoutData(data);
-    deleteButton.setEnabled(false);
-    deleteButton.addSelectionListener(this);
-
-
-    return composite;
-  }
-
-  public void handleEvent(Event event)
-  {
-    Table table = constraintsTableViewer.getTable();
-    if (event.type == SWT.Resize && event.widget == table)
-    {
-      TableColumn tableColumn = table.getColumn(0);
-      tableColumn.setWidth(table.getSize().x);
-    }
-  }
-
-  public void setInput(Object input)
-  {
-    constraintsTableViewer.setInput(input);
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-//    constraintsTableViewer.refresh();
-  }
-
-  public void widgetSelected(SelectionEvent e)
-  {
-    XSDSimpleTypeDefinition st = input;
-    Element element = st.getElement();
-
-    if (e.widget == addButton)
-    {
-      List enumList = st.getEnumerationFacets();
-      StringBuffer newName = new StringBuffer("value1"); //$NON-NLS-1$
-      int suffix = 1;
-      for (Iterator i = enumList.iterator(); i.hasNext();)
-      {
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) i.next();
-        String value = enumFacet.getLexicalValue();
-        if (value != null)
-        {
-          if (value.equals(newName.toString()))
-          {
-            suffix++;
-            newName = new StringBuffer("value" + String.valueOf(suffix)); //$NON-NLS-1$
-          }
-        }
-      }
-
-      if (kind == ENUMERATION)
-      {
-        CompoundCommand compoundCommand = new CompoundCommand();
-        XSDSimpleTypeDefinition targetSimpleType = null;
-        if (feature != null)
-        {
-          XSDSimpleTypeDefinition anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType(feature, input);
-          if (anonymousSimpleType == null)
-          {
-            anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-            anonymousSimpleType.setBaseTypeDefinition(input);
-
-            ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand(Messages._UI_ACTION_CHANGE_PATTERN, feature);
-            changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType);
-            compoundCommand.add(changeToAnonymousCommand);
-            input = anonymousSimpleType;
-          }
-          targetSimpleType = anonymousSimpleType;
-        }
-        else
-        {
-          targetSimpleType = input;
-        }
-
-        AddEnumerationsCommand command = new AddEnumerationsCommand(Messages._UI_ACTION_ADD_ENUMERATION, targetSimpleType);
-        command.setValue(newName.toString());
-        compoundCommand.add(command);
-        commandStack.execute(compoundCommand);
-        setInput(input);
-        constraintsTableViewer.refresh();
-        int newItemIndex = constraintsTableViewer.getTable().getItemCount() - 1;
-        constraintsTableViewer.editElement(constraintsTableViewer.getElementAt(newItemIndex), 0);
-      }
-    }
-    else if (e.widget == addUsingDialogButton)
-    {
-      Display display = Display.getCurrent();
-      // if it is null, get the default one
-      display = display == null ? Display.getDefault() : display;
-      Shell shell = display.getActiveShell();
-
-      if (kind == PATTERN)
-      {
-        String initialValue = ""; //$NON-NLS-1$
-        RegexWizard wizard = new RegexWizard(initialValue);
-
-        WizardDialog wizardDialog = new WizardDialog(shell, wizard);
-        wizardDialog.setBlockOnOpen(true);
-        wizardDialog.create();
-
-        int result = wizardDialog.open();
-
-        if (result == Window.OK)
-        {
-          String newPattern = wizard.getPattern();
-          CompoundCommand compoundCommand = new CompoundCommand();
-          XSDSimpleTypeDefinition targetSimpleType = null;
-          if (feature != null)
-          {
-            XSDSimpleTypeDefinition anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType(feature, input);
-            if (anonymousSimpleType == null)
-            {
-              anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-              anonymousSimpleType.setBaseTypeDefinition(input);
-
-              ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand(Messages._UI_ACTION_CHANGE_PATTERN, feature);
-              changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType);
-              compoundCommand.add(changeToAnonymousCommand);
-              input = anonymousSimpleType;
-            }
-            targetSimpleType = anonymousSimpleType;
-          }
-          else
-          {
-            targetSimpleType = input;
-          }
-          
-          UpdateXSDPatternFacetCommand command = new UpdateXSDPatternFacetCommand(Messages._UI_ACTION_ADD_PATTERN, targetSimpleType, UpdateXSDPatternFacetCommand.ADD);
-          command.setValue(newPattern);
-          setInput(input);
-          compoundCommand.add(command);
-          commandStack.execute(compoundCommand);
-          facetSection.doSetInput();
-        }
-        constraintsTableViewer.refresh();
-      }
-      else
-      {
-        EnumerationsDialog dialog = new EnumerationsDialog(shell);
-        dialog.setBlockOnOpen(true);
-        int result = dialog.open();
-
-        if (result == Window.OK)
-        {
-          String text = dialog.getText();
-          String delimiter = dialog.getDelimiter();
-          StringTokenizer tokenizer = new StringTokenizer(text, delimiter);
-          CompoundCommand compoundCommand = new CompoundCommand(Messages._UI_ACTION_ADD_ENUMERATIONS);
-          
-          XSDSimpleTypeDefinition targetSimpleType = null;
-          if (feature != null)
-          {
-            XSDSimpleTypeDefinition anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType(feature, input);
-            if (anonymousSimpleType == null)
-            {
-              anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-              anonymousSimpleType.setBaseTypeDefinition(input);
-
-              ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand("", feature); //$NON-NLS-1$
-              changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType);
-              compoundCommand.add(changeToAnonymousCommand);
-              input = anonymousSimpleType;
-            }
-            targetSimpleType = anonymousSimpleType;
-          }
-          else
-          {
-            targetSimpleType = input;
-          }
-
-          while (tokenizer.hasMoreTokens())
-          {
-            String token = tokenizer.nextToken();
-            if (dialog.isPreserveWhitespace() == false)
-            {
-              token = token.trim();
-            }
-            AddEnumerationsCommand command = new AddEnumerationsCommand(Messages._UI_ACTION_ADD_ENUMERATIONS, targetSimpleType);
-            command.setValue(token);
-            compoundCommand.add(command);
-          }
-          commandStack.execute(compoundCommand);
-        }
-        //setInput(input);
-        facetSection.doSetInput();
-        constraintsTableViewer.refresh();
-      }
-    }
-    else if (e.widget == deleteButton)
-    {
-      StructuredSelection selection = (StructuredSelection) constraintsTableViewer.getSelection();
-      CompoundCommand compoundCommand = new CompoundCommand();
-      if (selection != null)
-      {
-        Iterator i = selection.iterator();
-        if (selection.size() > 0)
-        {
-          compoundCommand.setLabel(Messages._UI_ACTION_DELETE_CONSTRAINTS);
-        }
-        else
-        {
-          compoundCommand.setLabel(Messages._UI_ACTION_DELETE_PATTERN);
-        }
-        while (i.hasNext())
-        {
-          Object obj = i.next();
-          if (obj != null)
-          {
-            if (obj instanceof XSDPatternFacet)
-            {
-              UpdateXSDPatternFacetCommand command = new UpdateXSDPatternFacetCommand("", input, UpdateXSDPatternFacetCommand.DELETE); //$NON-NLS-1$
-              command.setPatternToEdit((XSDPatternFacet)obj);
-              compoundCommand.add(command);
-            }
-            else if (obj instanceof XSDEnumerationFacet)
-            {
-              XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) obj;
-              DeleteCommand deleteCommand = new DeleteCommand(Messages._UI_ACTION_DELETE_ENUMERATION, enumFacet);
-              compoundCommand.add(deleteCommand);
-            }
-          }
-        }
-        commandStack.execute(compoundCommand);
-        constraintsTableViewer.refresh();
-
-        if (constraintsTableViewer.getTable().getItemCount() == 0)
-        {
-          editButton.setEnabled(false);
-          deleteButton.setEnabled(false);
-        }
-      }
-    }
-    else if (e.widget == editButton)
-    {
-      StructuredSelection selection = (StructuredSelection) constraintsTableViewer.getSelection();
-      if (selection != null)
-      {
-        Object obj = selection.getFirstElement();
-        if (obj instanceof XSDPatternFacet)
-        {
-          XSDPatternFacet pattern = (XSDPatternFacet) obj;
-          String initialValue = pattern.getLexicalValue();
-          if (initialValue == null)
-          {
-            initialValue = ""; //$NON-NLS-1$
-          }
-
-          Shell shell = Display.getCurrent().getActiveShell();
-
-          RegexWizard wizard = new RegexWizard(initialValue);
-
-          WizardDialog wizardDialog = new WizardDialog(shell, wizard);
-          wizardDialog.setBlockOnOpen(true);
-          wizardDialog.create();
-
-          int result = wizardDialog.open();
-
-          if (result == Window.OK)
-          {
-            String newPattern = wizard.getPattern();
-            element.setAttribute(XSDConstants.VALUE_ATTRIBUTE, newPattern);
-            pattern.setLexicalValue(newPattern);
-            constraintsTableViewer.refresh();
-          }
-        }
-      }
-    }
-    else if (e.widget == constraintsTableViewer.getTable())
-    {
-      StructuredSelection selection = (StructuredSelection) constraintsTableViewer.getSelection();
-      if (selection.getFirstElement() != null)
-      {
-        editButton.setEnabled(true);
-        deleteButton.setEnabled(true);
-      }
-      else
-      {
-        editButton.setEnabled(false);
-        deleteButton.setEnabled(false);
-      }
-    }
-  }
-  
-  public void widgetDefaultSelected(SelectionEvent e)
-  {
-
-  }
-
-  
-  public void setConstraintKind(int kind)
-  {
-    this.kind = kind;
-    constraintsTableViewer.setInput(input);
-    constraintsTableViewer.refresh();
-  }
-  
-  public void doModify(Object element, String property, Object value)
-  {
-    if (element instanceof TableItem && (value != null))
-    {
-      TableItem item = (TableItem) element;
-
-      if (item.getData() instanceof XSDPatternFacet)
-      {
-        XSDPatternFacet patternFacet = (XSDPatternFacet) item.getData();
-        patternFacet.setLexicalValue((String) value);
-
-        item.setData(patternFacet);
-        item.setText((String) value);
-      }
-      else if (item.getData() instanceof XSDEnumerationFacet)
-      {
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) item.getData();
-        SetXSDFacetValueCommand command = new SetXSDFacetValueCommand(Messages._UI_ACTION_SET_ENUMERATION_VALUE, enumFacet);
-        command.setValue((String) value);
-        commandStack.execute(command);
-        item.setData(enumFacet);
-        item.setText((String) value);
-      }
-    }
-  }
-  
-  public Object doGetValue(Object element, String property)
-  {
-    if (element instanceof XSDPatternFacet)
-    {
-      XSDPatternFacet patternFacet = (XSDPatternFacet) element;
-      String value = patternFacet.getLexicalValue();
-      if (value == null)
-        value = ""; //$NON-NLS-1$
-      return value;
-    }
-    else if (element instanceof XSDEnumerationFacet)
-    {
-      XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) element;
-      String value = enumFacet.getLexicalValue();
-      if (value == null)
-        value = ""; //$NON-NLS-1$
-      return value;
-    }
-
-    return ""; //$NON-NLS-1$
-  }
-  
-  class ConstraintsTableViewer extends NavigableTableViewer implements ICellModifier
-  {
-    protected String[] columnProperties = { Messages._UI_LABEL_PATTERN };
-
-    protected CellEditor[] cellEditors;
-
-    Table table;
-
-    public ConstraintsTableViewer(Table table)
-    {
-      super(table);
-      table = getTable();
-
-      table.setLinesVisible(true);
-
-      setContentProvider(new ConstraintsContentProvider());
-      setLabelProvider(new ConstraintsTableLabelProvider());
-      setColumnProperties(columnProperties);
-
-      setCellModifier(this);
-
-      TableColumn column = new TableColumn(table, SWT.NONE, 0);
-      column.setText(columnProperties[0]);
-      column.setAlignment(SWT.LEFT);
-      column.setResizable(true);
-
-      cellEditors = new CellEditor[1];
-
-      TableLayout layout = new TableLayout();
-      ColumnWeightData data = new ColumnWeightData(100);
-
-      layout.addColumnData(data);
-      cellEditors[0] = new TextCellEditor(table);
-
-      getTable().setLayout(layout);
-      setCellEditors(cellEditors);
-    }
-    
-    public boolean canModify(Object element, String property)
-    {
-      return true;
-    }
-
-    public void modify(Object element, String property, Object value)
-    {
-      doModify(element, property, value);
-    }
-
-    public Object getValue(Object element, String property)
-    {
-      return doGetValue(element, property);
-    }
-
-  }
-
-  class ConstraintsContentProvider implements IStructuredContentProvider
-  {
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-    }
-
-    public java.lang.Object[] getElements(java.lang.Object inputElement)
-    {
-      java.util.List list = new ArrayList();
-      if (inputElement instanceof XSDSimpleTypeDefinition)
-      {
-        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) inputElement;
-        boolean isDefined = false;
-        Iterator iter;
-        if (kind == PATTERN)
-        {
-          iter = st.getPatternFacets().iterator();
-        }
-        else
-        {
-          iter = st.getEnumerationFacets().iterator();
-        }
-
-        while (iter.hasNext())
-        {
-          XSDFacet facet = (XSDFacet) iter.next();
-          isDefined = (facet.getRootContainer() == facetSection.xsdSchema);
-        }
-
-        if (kind == PATTERN)
-        {
-          if (isDefined)
-          {
-            return st.getPatternFacets().toArray();
-          }
-        }
-        else
-        {
-          if (isDefined)
-          {
-            return st.getEnumerationFacets().toArray();
-          }
-        }
-      }
-      return list.toArray();
-    }
-
-    public void dispose()
-    {
-    }
-  }
-
-  class ConstraintsTableLabelProvider extends LabelProvider implements ITableLabelProvider
-  {
-    public ConstraintsTableLabelProvider()
-    {
-
-    }
-
-    public Image getColumnImage(Object element, int columnIndex)
-    {
-      if (kind == PATTERN)
-      {
-        return XSDEditorPlugin.getXSDImage("icons/XSDSimplePattern.gif"); //$NON-NLS-1$
-      }
-      else
-      {
-        return XSDEditorPlugin.getXSDImage("icons/XSDSimpleEnum.gif"); //$NON-NLS-1$
-      }
-    }
-
-    public String getColumnText(Object element, int columnIndex)
-    {
-      if (element instanceof XSDPatternFacet)
-      {
-        XSDPatternFacet pattern = (XSDPatternFacet) element;
-        String value = pattern.getLexicalValue();
-        if (value == null)
-          value = ""; //$NON-NLS-1$
-        return value;
-      }
-      else if (element instanceof XSDEnumerationFacet)
-      {
-        XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) element;
-        String value = enumFacet.getLexicalValue();
-        if (value == null)
-          value = ""; //$NON-NLS-1$
-        return value;
-      }
-      return ""; //$NON-NLS-1$
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDActionManager.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDActionManager.java
deleted file mode 100644
index b31fa6c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDActionManager.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CommandStack;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.ui.internal.XMLUIMessages;
-import org.eclipse.wst.xml.ui.internal.actions.EditAttributeAction;
-import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class XSDActionManager extends XMLNodeActionManager {
-
-  private CommandStack commandStack;
-  
-	public XSDActionManager(IStructuredModel model, Viewer viewer) {
-		super(model, viewer);
-	}
-  
-  public void setCommandStack(CommandStack commandStack) {
-    this.commandStack = commandStack;
-  }
-
-  protected Action createAddCDataSectionAction(Node parent, int index)
-  {
-    return null;
-  }
-  
-  protected Action createAddPCDataAction(Node parent, CMDataType dataType, int index) {
-    return null;
-  }
-  
-  
-	protected void contributeAddDocumentChildActions(IMenuManager menu, Document document, int ic, int vc) {
-	}
-  
-	protected void contributeEditGrammarInformationActions(IMenuManager menu, Node node) {
-	}
-	
-	protected void contributePIAndCommentActions(IMenuManager menu, Document document, int index) {
-	}
-	
-	protected void contributePIAndCommentActions(IMenuManager menu, Element parentElement, CMElementDeclaration parentEd, int index) {
-	}
-	
-	protected void contributeTextNodeActions(IMenuManager menu, Element parentElement, CMElementDeclaration parentEd, int index) {
-		super.contributeTextNodeActions(menu, parentElement, parentEd, index);
-	}
-  
-  protected Action createAddAttributeAction(Element parent, CMAttributeDeclaration ad) {
-    Action action = null;
-    if (ad == null) {
-      action = new EditAttributeAction(this, parent, null, XMLUIMessages._UI_MENU_NEW_ATTRIBUTE, XMLUIMessages._UI_MENU_NEW_ATTRIBUTE_TITLE); //$NON-NLS-1$ //$NON-NLS-2$
-    } else {
-      action = new AddNodeAction(ad, parent, -1);
-    }
-    
-    WrapperCommand command = new WrapperCommand(action, parent, ad);
-    WrapperAction wrapperAction = new WrapperAction(command);
-    return wrapperAction;
-  }
-  
-  class WrapperAction extends Action
-  {
-    WrapperCommand command;
-    
-    public WrapperAction(WrapperCommand command)
-    {
-      super();
-      this.command = command;
-    }
-    
-    public String getText()
-    {
-      return command.getAction().getText();
-    }
-
-    public void run()
-    {
-      // Some editors may not use a command stack
-      if (commandStack != null)
-      {
-        commandStack.execute(command);
-      }
-      else
-      {
-        command.execute();
-      }
-    }
-  }
-
-  class WrapperCommand extends Command
-  {
-    Action action;
-    Element parent;
-    CMAttributeDeclaration ad;
-    public WrapperCommand(Action action, Element parent, CMAttributeDeclaration ad)
-    {
-      super();
-      this.action = action;
-      this.parent = parent;
-      this.ad = ad;
-    }
-    
-    public String getLabel()
-    {
-      return action.getText();
-    }
-    
-    public Action getAction()
-    {
-      return action;
-    }
-    
-    public void execute()
-    {
-      action.run();
-    }
-    
-    public void undo() {
-      
-//      ((Element)parent).removeAttribute(ad.getAttrName());
-
-      getModel().getUndoManager().undo();
-
-    } 
-        
-
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAnyElementContentsSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAnyElementContentsSection.java
deleted file mode 100644
index 63e4898..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAnyElementContentsSection.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.Iterator;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDProcessContents;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDAnyElementContentsSection extends MultiplicitySection
-{
-  CCombo namespaceCombo;
-  CCombo processContentsCombo;
-
-  private String[] namespaceComboValues = { "", //$NON-NLS-1$
-      "##any", //$NON-NLS-1$
-      "##other", //$NON-NLS-1$
-      "##targetNamespace", //$NON-NLS-1$
-      "##local" //$NON-NLS-1$
-  };
-
-  /**
-   * 
-   */
-  public XSDAnyElementContentsSection()
-  {
-    super();
-  }
-
-  protected void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridData data = new GridData();
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 2;
-    composite.setLayout(gridLayout);
-
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    CLabel namespaceLabel = getWidgetFactory().createCLabel(composite, XSDConstants.NAMESPACE_ATTRIBUTE);
-    namespaceLabel.setLayoutData(data);
-
-    namespaceCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    namespaceCombo.setLayoutData(data);
-    namespaceCombo.setItems(namespaceComboValues);
-    namespaceCombo.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(namespaceCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ANYELEMENT__NAMESPACE);
-
-    CLabel processContentsLabel = getWidgetFactory().createCLabel(composite, XSDConstants.PROCESSCONTENTS_ATTRIBUTE);
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    processContentsLabel.setLayoutData(data);
-
-    processContentsCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    processContentsCombo.setLayoutData(data);
-    Iterator list = XSDProcessContents.VALUES.iterator();
-    processContentsCombo.add(""); //$NON-NLS-1$
-    while (list.hasNext())
-    {
-      processContentsCombo.add(((XSDProcessContents) list.next()).getName());
-    }
-    processContentsCombo.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(processContentsCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ANYELEMENT__PROCESSCONTENTS);
-
-    // ------------------------------------------------------------------
-    // min property
-    // ------------------------------------------------------------------
-
-    getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MINOCCURS);
-
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    minCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    minCombo.setLayoutData(data);
-    minCombo.add("0"); //$NON-NLS-1$
-    minCombo.add("1"); //$NON-NLS-1$
-    applyAllListeners(minCombo);
-    minCombo.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(minCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ANYELEMENT__MIN_OCCURENCE);
-
-    // ------------------------------------------------------------------
-    // max property
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MAXOCCURS);
-
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    maxCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    maxCombo.setLayoutData(data);
-    maxCombo.add("0"); //$NON-NLS-1$
-    maxCombo.add("1"); //$NON-NLS-1$
-    maxCombo.add("unbounded"); //$NON-NLS-1$
-    applyAllListeners(maxCombo);
-    maxCombo.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(maxCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ANYELEMENT__MAX_OCCURENCE);
-  }
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    setListenerEnabled(false);
-    namespaceCombo.setText(""); //$NON-NLS-1$
-    processContentsCombo.setText(""); //$NON-NLS-1$
-    if (input != null)
-    {
-      if (input instanceof XSDWildcard)
-      {
-        XSDWildcard wildcard = (XSDWildcard) input;
-        if (wildcard.isSetLexicalNamespaceConstraint())
-        {
-          namespaceCombo.setText(wildcard.getStringLexicalNamespaceConstraint());
-        }
-        else
-        {
-          namespaceCombo.setText("");
-        }
-        if (wildcard.isSetProcessContents())
-        {
-          XSDProcessContents pc = wildcard.getProcessContents();
-          processContentsCombo.setText(pc.getName());
-        }
-        
-        if (wildcard.eContainer() instanceof XSDParticle)
-        {
-          minCombo.setEnabled(!isReadOnly);
-          maxCombo.setEnabled(!isReadOnly);
-        }
-        else
-        {
-          minCombo.setEnabled(false);
-          maxCombo.setEnabled(false);
-        }
-      }
-    }
-    refreshMinMax();
-    setListenerEnabled(true);
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    XSDConcreteComponent concreteComponent = (XSDConcreteComponent) input;
-    if (concreteComponent instanceof XSDWildcard)
-    {
-      XSDWildcard wildcard = (XSDWildcard) concreteComponent;
-      if (e.widget == namespaceCombo)
-      {
-        String newValue = namespaceCombo.getText();
-        boolean removeAttribute = false;
-        if (newValue.length() == 0)
-        {
-          removeAttribute = true;
-        }
-        // TODO use commands
-        // beginRecording(XSDEditorPlugin.getXSDString("_UI_NAMESPACE_CHANGE"),
-        // element); //$NON-NLS-1$
-        if (removeAttribute)
-        {
-          wildcard.unsetLexicalNamespaceConstraint();
-        }
-        else
-        {
-          wildcard.setStringLexicalNamespaceConstraint(newValue);
-        }
-        // endRecording(element);
-      }
-      else if (e.widget == processContentsCombo)
-      {
-        String newValue = processContentsCombo.getText();
-        boolean removeAttribute = false;
-        if (newValue.length() == 0)
-        {
-          removeAttribute = true;
-        }
-        // beginRecording(XSDEditorPlugin.getXSDString("_UI_PROCESSCONTENTS_CHANGE"),
-        // element); //$NON-NLS-1$
-        if (removeAttribute)
-        {
-          wildcard.unsetProcessContents();
-        }
-        else
-        {
-          wildcard.setProcessContents(XSDProcessContents.get(processContentsCombo.getItem(processContentsCombo.getSelectionIndex())));
-        }
-        // endRecording(element);
-      }
-    }
-    super.doWidgetSelected(e);
-  }
-
-  public void dispose()
-  {
-    if (minCombo != null && !minCombo.isDisposed())
-      minCombo.removeSelectionListener(this);
-    if (maxCombo != null && !maxCombo.isDisposed())
-      maxCombo.removeSelectionListener(this);
-    super.dispose();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java
deleted file mode 100644
index 994a414..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java
+++ /dev/null
@@ -1,399 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.apache.xerces.util.XMLChar;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.dialogs.NewTypeDialog;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDTypeReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.editor.search.XSDSearchListDialogDelegate;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDAttributeDeclarationSection extends RefactoringSection
-{
-  protected Text nameText;
-  protected CCombo typeCombo, usageCombo;
-  protected String typeName = ""; //$NON-NLS-1$
-  boolean isAttributeReference;
-  
-  public XSDAttributeDeclarationSection()
-  {
-    super();
-  }
-
-  protected void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    String typeLabel = Messages.UI_LABEL_TYPE; //$NON-NLS-1$
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 3;
-    composite.setLayout(gridLayout);
-
-    // ------------------------------------------------------------------
-    // NameLabel
-    // ------------------------------------------------------------------
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    CLabel nameLabel = getWidgetFactory().createCLabel(composite, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_NAME);
-    nameLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // NameText
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-    nameText.setLayoutData(data);
-    applyAllListeners(nameText);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ATTRIBUTE__NAME);
-
-    // ------------------------------------------------------------------
-    // Refactor/rename hyperlink
-    // ------------------------------------------------------------------
-    createRenameHyperlink(composite);
-
-    // ------------------------------------------------------------------
-    // typeLabel
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, typeLabel); //$NON-NLS-1$
-
-    // ------------------------------------------------------------------
-    // typeCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    typeCombo = getWidgetFactory().createCCombo(composite);
-    typeCombo.setLayoutData(data);
-    typeCombo.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(typeCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ATTRIBUTE__TYPE);
-
-    // dummy
-    getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-    
-    // ------------------------------------------------------------------
-    // UsageLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    CLabel useLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_USAGE"));
-    useLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // UsageCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    usageCombo = getWidgetFactory().createCCombo(composite);
-    usageCombo.setLayoutData(data);
-    usageCombo.addSelectionListener(this);
-    usageCombo.add("");
-    usageCombo.add("required"); //$NON-NLS-1$
-    usageCombo.add("optional"); //$NON-NLS-1$
-    usageCombo.add("prohibited"); //$NON-NLS-1$
-    usageCombo.addSelectionListener(this);
-    
-    // dummy
-    getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-  }
-
-  private void fillTypesCombo()
-  {
-    IEditorPart editor = getActiveEditor();
-    XSDTypeReferenceEditManager manager = (XSDTypeReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);    
-    ComponentSpecification[] items = manager.getQuickPicks();
-    
-    typeCombo.removeAll();
-    typeCombo.add(Messages._UI_ACTION_BROWSE);
-    typeCombo.add(Messages._UI_ACTION_NEW);
-    for (int i = 0; i < items.length; i++)
-    {
-      typeCombo.add(items[i].getName());
-    }
-
-    XSDAttributeDeclaration namedComponent = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
-    XSDTypeDefinition namedComponentType = namedComponent.getType();
-    if (namedComponentType != null)
-    {
-      String currentTypeName = namedComponentType.getQName(xsdSchema); // no prefix
-      ComponentSpecification ret = getComponentSpecFromQuickPickForValue(currentTypeName, manager);
-      if (ret == null) //not in quickPick
-        typeCombo.add(currentTypeName);
-    }
-  }
-  
-  private ComponentSpecification getComponentSpecFromQuickPickForValue(String value, ComponentReferenceEditManager editManager)
-  {
-    if (editManager != null)
-    {  
-      ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-      if (quickPicks != null)
-      {
-        for (int i=0; i < quickPicks.length; i++)
-        {
-          ComponentSpecification componentSpecification = quickPicks[i];
-          if (value.equals(componentSpecification.getName()))
-          {
-            return componentSpecification;
-          }                
-        }  
-      }
-    }
-    return null;
-  }
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    super.refresh();
-
-    setListenerEnabled(false);
-
-    // refresh name
-
-    nameText.setText(""); //$NON-NLS-1$
-    if (input instanceof XSDAttributeDeclaration)
-    {
-      XSDAttributeDeclaration namedComponent = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
-
-      String name = namedComponent.getName();
-      if (name != null)
-      {
-        nameText.setText(name);
-      }
-    }
-
-    // refresh type
-
-    typeCombo.setText(""); //$NON-NLS-1$
-    if (input != null)
-    {
-      if (input instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration xsdAttribute = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
-        isAttributeReference = ((XSDAttributeDeclaration)input).isAttributeDeclarationReference();
-        XSDTypeDefinition typeDef = xsdAttribute.getTypeDefinition();
-        boolean isAnonymous = xsdAttribute.getAnonymousTypeDefinition() != null;
-
-        if (isAnonymous)
-        {
-          typeCombo.setText("**anonymous**"); //$NON-NLS-1$
-        }
-        else
-        {
-          fillTypesCombo();
-          if (typeDef != null)
-          {
-            typeName = typeDef.getQName(xsdSchema);
-            if (typeName == null)
-            {
-              typeName = ""; //$NON-NLS-1$
-            }
-            typeCombo.setText(typeName);
-          }
-          else
-          {
-            typeCombo.setText(Messages.UI_NO_TYPE); //$NON-NLS-1$
-          }
-        }
-
-        usageCombo.setText("");
-        usageCombo.setEnabled(!xsdAttribute.isGlobal());
-        
-        Element element = xsdAttribute.getElement();
-        boolean hasUseAttribute = false;
-        if (element != null)
-        {
-          hasUseAttribute = element.hasAttribute(XSDConstants.USE_ATTRIBUTE);
-          if (hasUseAttribute)
-          {
-            String usage = element.getAttribute(XSDConstants.USE_ATTRIBUTE);
-            usageCombo.setText(usage);
-          }
-        }
-      }
-    }
-
-    setListenerEnabled(true);
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-  
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == typeCombo)
-    {
-      IEditorPart editor = getActiveEditor();
-      if (editor == null) return;
-      ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);    
-
-      String selection = typeCombo.getText();
-      ComponentSpecification newValue;
-      IComponentDialog dialog= null;
-      if ( selection.equals(Messages._UI_ACTION_BROWSE))
-      {
-        dialog = manager.getBrowseDialog();
-        ((XSDSearchListDialogDelegate) dialog).showComplexTypes(false);
-      }
-      else if ( selection.equals(Messages._UI_ACTION_NEW))
-      {
-        dialog = manager.getNewDialog();
-        ((NewTypeDialog) dialog).allowComplexType(false);
-      }
-
-      if (dialog != null)
-      {
-        if (dialog.createAndOpen() == Window.OK)
-        {
-          newValue = dialog.getSelectedComponent();
-          manager.modifyComponentReference(input, newValue);
-        }
-        else{
-        	typeCombo.setText(typeName);
-        }
-      }
-      else //use the value from selected quickPick item
-      {
-        newValue = getComponentSpecFromQuickPickForValue(selection, manager);
-        if (newValue != null)
-          manager.modifyComponentReference(input, newValue);
-      }
-    } 
-    else if (e.widget == usageCombo)
-    {
-      XSDAttributeDeclaration xsdAttribute = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
-      String newValue = usageCombo.getText();
-      Element element = xsdAttribute.getElement();
-      if (element != null)
-      {
-        if (newValue.length() == 0)
-          element.removeAttribute(XSDConstants.USE_ATTRIBUTE);
-        else
-          element.setAttribute(XSDConstants.USE_ATTRIBUTE, newValue);
-      }
-    }
-    super.doWidgetSelected(e);
-  }
-
-  protected void doHandleEvent(Event event)
-  {
-    super.doHandleEvent(event);
-    if (event.widget == nameText)
-    {
-      if (!nameText.getEditable())
-        return;
-
-      String newValue = nameText.getText().trim();
-      if (input instanceof XSDAttributeDeclaration)
-      {
-        XSDAttributeDeclaration namedComponent = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
-
-        if (!validateSection())
-          return;
-
-        Command command = null;
-
-        // Make sure an actual name change has taken place
-        String oldName = namedComponent.getName();
-        if (!newValue.equals(oldName))
-        {
-          command = new UpdateNameCommand(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ACTION_RENAME, namedComponent, newValue);
-        }
-
-        if (command != null && getCommandStack() != null)
-        {
-          getCommandStack().execute(command);
-        }
-        
-        if (isAttributeReference)
-        {
-          XSDAttributeDeclaration attrRef = (XSDAttributeDeclaration)input;
-          String qname = attrRef.getResolvedAttributeDeclaration().getQName();
-          attrRef.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, qname);
-          
-//          TypesHelper helper = new TypesHelper(xsdSchema);
-//          List items = new ArrayList();
-//          items = helper.getGlobalElements();
-//          items.add(0, "");
-//          componentNameCombo.setItems((String [])items.toArray(new String[0]));
-//
-//          refreshRefCombo();
-        }
-
-      }
-    }
-  }
-  
-  protected boolean validateSection()
-  {
-    if (nameText == null || nameText.isDisposed())
-      return true;
-
-    setErrorMessage(null);
-
-    String name = nameText.getText().trim();
-
-    // validate against NCName
-    if (name.length() < 1 || !XMLChar.isValidNCName(name))
-    {
-      setErrorMessage(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ERROR_INVALID_NAME);
-      return false;
-    }
-
-    return true;
-  }
-  
-  public void dispose()
-  {
-    if (nameText != null && !nameText.isDisposed())
-      removeListeners(nameText);
-    if (typeCombo != null && !typeCombo.isDisposed())
-      typeCombo.removeSelectionListener(this);
-    super.dispose();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeGroupDefinitionSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeGroupDefinitionSection.java
deleted file mode 100644
index 7a077ff..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeGroupDefinitionSection.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.xerces.util.XMLChar;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDAttributeGroupDefinitionSection extends RefactoringSection
-{
-  protected Text nameText;
-  protected CCombo refCombo;
-  boolean isReference;
-
-  public XSDAttributeGroupDefinitionSection()
-  {
-    super();
-  }
-
-  protected void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 3;
-    composite.setLayout(gridLayout);
-
-    if (isReference)
-    {
-      // ------------------------------------------------------------------
-      // Ref Label
-      // ------------------------------------------------------------------
-      GridData data = new GridData();
-      data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-      data.grabExcessHorizontalSpace = false;
-      CLabel refLabel = getWidgetFactory().createCLabel(composite, XSDConstants.REF_ATTRIBUTE + ":");  //$NON-NLS-1$
-      refLabel.setLayoutData(data);
-
-      // ------------------------------------------------------------------
-      // Ref Combo
-      // ------------------------------------------------------------------
-
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-
-      refCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-      refCombo.addSelectionListener(this);
-      refCombo.setLayoutData(data);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(refCombo,
-      		XSDEditorCSHelpIds.GENERAL_TAB__ATTRIBUTEGROUP_REFS__REF);
-    }
-    else
-    {
-      // ------------------------------------------------------------------
-      // NameLabel
-      // ------------------------------------------------------------------
-      GridData data = new GridData();
-      data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-      data.grabExcessHorizontalSpace = false;
-      CLabel nameLabel = getWidgetFactory().createCLabel(composite, Messages._UI_LABEL_NAME);
-      nameLabel.setLayoutData(data);
-
-      // ------------------------------------------------------------------
-      // NameText
-      // ------------------------------------------------------------------
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-      nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-      nameText.setLayoutData(data);
-      applyAllListeners(nameText);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
-      		XSDEditorCSHelpIds.GENERAL_TAB__ATTRIBUTEGROUP__NAME);
-
-      // ------------------------------------------------------------------
-      // Refactor/rename hyperlink 
-      // ------------------------------------------------------------------
-      createRenameHyperlink(composite);
-    }
-  }
-
-  public void refresh()
-  {
-    super.refresh();
-
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-
-    setListenerEnabled(false);
-
-    XSDNamedComponent namedComponent = (XSDNamedComponent)input;
-    
-    if (isReference)
-    {
-      Element element = namedComponent.getElement();
-      if (element != null)
-      {
-        String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE);
-        if (attrValue == null)
-        {
-          attrValue = ""; //$NON-NLS-1$
-        }
-        refCombo.setText(attrValue);
-      }
-    }
-    else
-    {
-      // refresh name
-      nameText.setText(""); //$NON-NLS-1$
-
-      String name = namedComponent.getName();
-      if (name != null)
-      {
-        nameText.setText(name);
-      }
-    }
-    setListenerEnabled(true);
-  }
-
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection);
-    init();
-    relayout();
-    
-    if (isReference)
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      List items = new ArrayList();
-      items = helper.getGlobalAttributeGroups();
-      items.add(0, ""); //$NON-NLS-1$
-      refCombo.setItems((String [])items.toArray(new String[0]));
-    }
-  }
-  
-  protected void relayout()
-  {
-    Composite parentComposite = composite.getParent();
-    parentComposite.getParent().setRedraw(false);
-
-    if (parentComposite != null && !parentComposite.isDisposed())
-    {
-      Control[] children = parentComposite.getChildren();
-      for (int i = 0; i < children.length; i++)
-      {
-        children[i].dispose();
-      }
-    }
-
-    // Now initialize the new handler
-    createContents(parentComposite);
-    parentComposite.getParent().layout(true, true);
-
-    // Now turn painting back on
-    parentComposite.getParent().setRedraw(true);
-    refresh();
-  }
-  
-  protected void init()
-  {
-    if (input instanceof XSDAttributeGroupDefinition)
-    {
-      XSDAttributeGroupDefinition group = (XSDAttributeGroupDefinition) input;
-      isReference = group.isAttributeGroupDefinitionReference();
-    }
-  }
-  
-  public void doHandleEvent(Event event)
-  {
-    super.doHandleEvent(event);
-    if (event.widget == nameText)
-    {
-      String newValue = nameText.getText().trim();
-      if (input instanceof XSDNamedComponent)
-      {
-        XSDNamedComponent namedComponent = (XSDNamedComponent) input;
-        if (!validateSection())
-          return;
-
-        Command command = null;
-
-        // Make sure an actual name change has taken place
-        String oldName = namedComponent.getName();
-        if (!newValue.equals(oldName))
-        {
-          command = new UpdateNameCommand(Messages._UI_ACTION_RENAME, namedComponent, newValue);
-        }
-
-        if (command != null && getCommandStack() != null)
-        {
-          getCommandStack().execute(command);
-        }
-        // doReferentialIntegrityCheck(namedComponent, newValue);
-      }
-    }
-  }
-
-  protected boolean validateSection()
-  {
-    if (nameText == null || nameText.isDisposed())
-      return true;
-
-    setErrorMessage(null);
-
-    String name = nameText.getText().trim();
-
-    // validate against NCName
-    if (name.length() < 1 || !XMLChar.isValidNCName(name))
-    {
-      setErrorMessage(Messages._UI_ERROR_INVALID_NAME);
-      return false;
-    }
-
-    return true;
-  }
-
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == refCombo)
-    {
-      String newValue = refCombo.getText();
-      if (input instanceof XSDNamedComponent)
-      {
-        XSDNamedComponent namedComponent = (XSDNamedComponent)input;
-        Element element = namedComponent.getElement();
-
-        if (namedComponent instanceof XSDAttributeGroupDefinition)
-        {
-          element.setAttribute(XSDConstants.REF_ATTRIBUTE, newValue);
-        }
-      }
-    }
-    super.doWidgetSelected(e);
-  }
-
-
-  public void dispose()
-  {
-    if (nameText != null && !nameText.isDisposed())
-      removeListeners(nameText);
-    super.dispose();
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeAdvancedSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeAdvancedSection.java
deleted file mode 100644
index 0e5cb73..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeAdvancedSection.java
+++ /dev/null
@@ -1,221 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateAttributeValueCommand;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDComplexTypeAdvancedSection extends AbstractSection
-{
-  private static final String EMPTY = ""; //$NON-NLS-1$
-  private static final String FALSE = "false"; //$NON-NLS-1$
-  private static final String TRUE = "true"; //$NON-NLS-1$
-  protected CCombo blockCombo;
-  protected CCombo finalCombo;
-
-  private String finalValues[] = { EMPTY, XSDConstants.RESTRICTION_ELEMENT_TAG, //$NON-NLS-1$
-      XSDConstants.EXTENSION_ELEMENT_TAG, "#" + XSDConstants.ALL_ELEMENT_TAG }; //$NON-NLS-1$
-
-  private String blockValues[] = { EMPTY, XSDConstants.RESTRICTION_ELEMENT_TAG, //$NON-NLS-1$
-      XSDConstants.EXTENSION_ELEMENT_TAG, "#" + XSDConstants.ALL_ELEMENT_TAG }; //$NON-NLS-1$
-
-  private String abstractValues[] = { EMPTY, TRUE, FALSE }; // TODO use some
-                                                            // external string
-                                                            // here instead
-  private CCombo abstractCombo;
-
-  protected void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 2;
-    composite.setLayout(gridLayout);
-
-    // ------------------------------------------------------------------
-    // BlockLabel
-    // ------------------------------------------------------------------
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    // TODO Should be a translatable string here
-    CLabel blockLabel = getWidgetFactory().createCLabel(composite, XSDConstants.BLOCK_ATTRIBUTE + ":");
-    blockLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // BlockCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    blockCombo = getWidgetFactory().createCCombo(composite);
-    blockCombo.setLayoutData(data);
-    blockCombo.setEditable(false);
-
-    blockCombo.setItems(blockValues);
-    blockCombo.addSelectionListener(this);
-
-    // ------------------------------------------------------------------
-    // FinalLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    // TODO Should be a translatable string here
-    CLabel finalLabel = getWidgetFactory().createCLabel(composite, XSDConstants.FINAL_ATTRIBUTE + ":");
-    finalLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // FinalCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    finalCombo = getWidgetFactory().createCCombo(composite);
-    finalCombo.setLayoutData(data);
-    finalCombo.setEditable(false);
-
-    finalCombo.setItems(finalValues);
-    finalCombo.addSelectionListener(this);
-
-    // ------------------------------------------------------------------
-    // AbstractLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    // TODO Should be a translatable string here
-    CLabel abstractLabel = getWidgetFactory().createCLabel(composite, XSDConstants.ABSTRACT_ATTRIBUTE + ":");
-    abstractLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // FinalCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    abstractCombo = getWidgetFactory().createCCombo(composite);
-    abstractCombo.setLayoutData(data);
-    abstractCombo.setEditable(false);
-
-    abstractCombo.setItems(abstractValues);
-    abstractCombo.addSelectionListener(this);
-  }
-
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == blockCombo)
-    {
-      XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input;
-      String value = blockCombo.getText();
-
-      UpdateAttributeValueCommand command = new UpdateAttributeValueCommand(complexType.getElement(), XSDConstants.BLOCK_ATTRIBUTE, value);
-      command.setDeleteIfEmpty(true);
-      getCommandStack().execute(command);
-    }
-    else if (e.widget == finalCombo)
-    {
-      XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input;
-      String value = finalCombo.getText();
-
-      UpdateAttributeValueCommand command = new UpdateAttributeValueCommand(complexType.getElement(), XSDConstants.FINAL_ATTRIBUTE, value);
-      command.setDeleteIfEmpty(true);
-      getCommandStack().execute(command);
-    }
-    else if (e.widget == abstractCombo)
-    {
-      XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input;
-      String value = abstractCombo.getText();
-
-      if (value.equals(EMPTY))
-        complexType.getElement().removeAttribute(XSDConstants.ABSTRACT_ATTRIBUTE);
-      else
-      {
-        if (value.equals(TRUE))
-          complexType.setAbstract(true);
-        else if (value.equals(FALSE))
-          complexType.setAbstract(false);
-      }
-    }
-  }
-
-  public void refresh()
-  {
-    super.refresh();
-
-    setListenerEnabled(false);
-    try
-    {
-      if (input instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input;
-        
-        if (complexType.getContainer() instanceof XSDSchema)
-        {
-          composite.setEnabled(!isReadOnly);
-        }
-        else
-        {
-          composite.setEnabled(false);
-        }
-        
-        String blockAttValue = complexType.getElement().getAttribute(XSDConstants.BLOCK_ATTRIBUTE);
-        if (blockAttValue != null)
-        {
-          blockCombo.setText(blockAttValue);
-        }
-        else
-        {
-          blockCombo.setText(EMPTY);
-        }
-
-        String finalAttValue = complexType.getElement().getAttribute(XSDConstants.FINAL_ATTRIBUTE);
-        if (finalAttValue != null)
-        {
-          finalCombo.setText(finalAttValue);
-        }
-        else
-        {
-          finalCombo.setText(EMPTY);
-        }
-
-        if (complexType.getElement().hasAttribute(XSDConstants.ABSTRACT_ATTRIBUTE))
-        {
-          boolean absAttValue = complexType.isAbstract();
-          if (absAttValue)
-            abstractCombo.setText(TRUE);
-          else
-            abstractCombo.setText(FALSE);
-        }
-        else
-        {
-          abstractCombo.setText(EMPTY);
-        }
-      }
-    }
-    catch (Exception e)
-    {
-    }
-    setListenerEnabled(true);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeSection.java
deleted file mode 100644
index b5e1de4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeSection.java
+++ /dev/null
@@ -1,357 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.apache.xerces.util.XMLChar;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateComplexTypeDerivationBy;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDComplexTypeBaseTypeEditManager;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDDerivationMethod;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDComplexTypeSection extends RefactoringSection implements SelectionListener
-{
-  protected Text nameText;
-  protected CCombo baseTypeCombo;
-  protected CCombo derivedByCombo;
-  private String derivedByChoicesComboValues[] = { "", XSDConstants.RESTRICTION_ELEMENT_TAG, XSDConstants.EXTENSION_ELEMENT_TAG }; //$NON-NLS-1$
-
-  public XSDComplexTypeSection()
-  {
-    super();
-  }
-
-  /**
-   * Contents of the property tab
-   * 
-   * NameLabel NameText DummyLabel BaseTypeLabel BaseTypeCombo BaseTypeButton
-   * DerivedByLabel DerivedByCombo
-   */
-  public void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 3;
-    composite.setLayout(gridLayout);
-
-    // ------------------------------------------------------------------
-    // NameLabel
-    // ------------------------------------------------------------------
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    CLabel nameLabel = getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_NAME);
-    nameLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // NameText
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-    nameText.setLayoutData(data);
-    applyAllListeners(nameText);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
-    		XSDEditorCSHelpIds.GENERAL_TAB__COMPLEX_TYPE__NAME);
-
-    // ------------------------------------------------------------------
-    // Refactor/rename hyperlink 
-    // ------------------------------------------------------------------
-    createRenameHyperlink(composite);
-    
-    // ------------------------------------------------------------------
-    // BaseTypeLabel
-    // ------------------------------------------------------------------
-
-    getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_INHERIT_FROM); //$NON-NLS-1$
-
-    // ------------------------------------------------------------------
-    // BaseTypeCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    baseTypeCombo = getWidgetFactory().createCCombo(composite);
-    baseTypeCombo.setEditable(false);
-    baseTypeCombo.setLayoutData(data);
-    baseTypeCombo.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(baseTypeCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__COMPLEX_TYPE__INHERIT_FROM);
-
-
-    // ------------------------------------------------------------------
-    // Spacer label
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, "");
-
-    // ------------------------------------------------------------------
-    // DerivedByLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    CLabel derivedByLabel = getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_INHERIT_BY); //$NON-NLS-1$
-    derivedByLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // DerivedByCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    derivedByCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    derivedByCombo.setLayoutData(data);
-    derivedByCombo.setItems(derivedByChoicesComboValues);
-    derivedByCombo.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(derivedByCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__COMPLEX_TYPE__INHERIT_BY);
-
-    // ------------------------------------------------------------------
-    // Spacer label
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, "");
-  }
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    super.refresh();
-    if (Display.getCurrent() == null)
-      return;
-
-    setListenerEnabled(false);
-
-    try
-    {
-      nameText.setText(""); //$NON-NLS-1$
-      baseTypeCombo.setText(""); //$NON-NLS-1$
-      fillTypesCombo();
-
-      if (input instanceof XSDComplexTypeDefinition)
-      {
-        XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input;
-        String name = complexType.getName();
-        if (name == null)
-          name = ""; //$NON-NLS-1$
-
-        boolean isAnonymousType = name.equals("") ? true : false; //$NON-NLS-1$
-        if (isAnonymousType)
-        {
-          nameText.setText("**anonymous**"); //$NON-NLS-1$
-          nameText.setEditable(false);
-        }
-        else
-        {
-          nameText.setText(name);
-          nameText.setEditable(true);
-        }
-
-        XSDTypeDefinition baseTypeDefinition = complexType.getBaseTypeDefinition();
-        String baseType = ""; //$NON-NLS-1$
-        if (baseTypeDefinition != null)
-        {
-          baseType = baseTypeDefinition.getName();
-          if (baseType == null)
-          {
-            baseType = ""; //$NON-NLS-1$
-          }
-          else if (baseType.equals("anyType"))
-          {
-            baseType = ""; //$NON-NLS-1$
-          }
-        }
-        baseTypeCombo.setText(baseType);
-
-        derivedByCombo.setText(""); //$NON-NLS-1$
-        int derivationMethod = complexType.getDerivationMethod().getValue();
-        if (derivationMethod == XSDDerivationMethod.EXTENSION)
-        {
-          derivedByCombo.setText(XSDConstants.EXTENSION_ELEMENT_TAG);
-        }
-        else if (derivationMethod == XSDDerivationMethod.RESTRICTION)
-        {
-          derivedByCombo.setText(XSDConstants.RESTRICTION_ELEMENT_TAG);
-        }
-      }
-
-    }
-    finally
-    {
-      setListenerEnabled(true);
-    }
-  }
-
-  /**
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent)
-   */
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == baseTypeCombo)
-    {
-      IEditorPart editor = getActiveEditor();
-      if (editor == null) return;
-      ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDComplexTypeBaseTypeEditManager.class);    
-
-      String selection = baseTypeCombo.getText();
-      ComponentSpecification newValue;
-      IComponentDialog dialog= null;
-      if ( selection.equals(Messages._UI_ACTION_BROWSE))
-      {
-        dialog = manager.getBrowseDialog();
-      }
-      else if ( selection.equals(Messages._UI_ACTION_NEW))
-      {
-        dialog = manager.getNewDialog();
-      }
-
-      if (dialog != null)
-      {
-        if (dialog.createAndOpen() == Window.OK)
-        {
-          newValue = dialog.getSelectedComponent();
-          manager.modifyComponentReference(input, newValue);
-        }
-        else
-        {
-          refresh();
-        }
-      }
-    }
-    else if (e.widget == derivedByCombo)
-    {
-      XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input;
-      String value = derivedByCombo.getText();
-      Command command = new UpdateComplexTypeDerivationBy(complexType, value);
-      
-      if (getCommandStack() != null)
-      {
-        getCommandStack().execute(command);
-      }
-    }
-    super.doWidgetSelected(e);
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  public void dispose()
-  {
-    super.dispose();
-  }
-
-  public void doHandleEvent(Event event)
-  {
-    super.doHandleEvent(event);
-    if (event.widget == nameText)
-    {
-      if (!nameText.getEditable())
-        return;
-
-      String newValue = nameText.getText().trim();
-      if (input instanceof XSDNamedComponent)
-      {
-        XSDNamedComponent namedComponent = (XSDNamedComponent) input;
-
-        if (!validateSection())
-          return;
-
-        Command command = null;
-
-        // Make sure an actual name change has taken place
-        String oldName = namedComponent.getName();
-        if (!newValue.equals(oldName))
-        {
-          command = new UpdateNameCommand(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ACTION_RENAME, namedComponent, newValue);
-        }
-
-        if (command != null && getCommandStack() != null)
-        {
-          getCommandStack().execute(command);
-        }
-        // doReferentialIntegrityCheck(namedComponent, newValue);
-      }
-    }
-  }
-
-  protected boolean validateSection()
-  {
-    if (nameText == null || nameText.isDisposed())
-      return true;
-
-    setErrorMessage(null);
-
-    String name = nameText.getText().trim();
-
-    // validate against NCName
-    if (name.length() < 1 || !XMLChar.isValidNCName(name))
-    {
-      setErrorMessage(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ERROR_INVALID_NAME);
-      return false;
-    }
-
-    return true;
-  }
-
-  private void fillTypesCombo()
-  {
-    baseTypeCombo.removeAll();
-    baseTypeCombo.add(Messages._UI_ACTION_BROWSE);
-    baseTypeCombo.add(Messages._UI_ACTION_NEW);
-    // Add the current Type of this attribute if needed
-    XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input;
-    XSDTypeDefinition baseType = complexType.getBaseType();
-    if (baseType != null && baseType.getQName() != null)
-    {
-      String currentTypeName = baseType.getQName(xsdSchema); //no prefix
-      if (currentTypeName != null && !currentTypeName.equals("anyType"))
-        baseTypeCombo.add(currentTypeName);
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationAdvancedSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationAdvancedSection.java
deleted file mode 100644
index 53ad36f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationAdvancedSection.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateAttributeValueCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDSubstitutionGroupEditManager;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDElementDeclarationAdvancedSection extends AbstractSection
-{
-  private static final String EMPTY = ""; //$NON-NLS-1$
-  private static final String FALSE = "false"; //$NON-NLS-1$
-  private static final String TRUE = "true"; //$NON-NLS-1$
-  protected CCombo blockCombo;
-  protected CCombo finalCombo;
-  protected CCombo abstractCombo;
-  protected CCombo substGroupCombo;
-
-  private String blockValues[] = { EMPTY, "#" + XSDConstants.ALL_ELEMENT_TAG, //$NON-NLS-1$
-      XSDConstants.EXTENSION_ELEMENT_TAG, XSDConstants.RESTRICTION_ELEMENT_TAG,
-      "substitution" }; //$NON-NLS-1$
-
-  private String finalValues[] = { EMPTY, "#" + XSDConstants.ALL_ELEMENT_TAG, XSDConstants.EXTENSION_ELEMENT_TAG, //$NON-NLS-1$
-      XSDConstants.RESTRICTION_ELEMENT_TAG }; //$NON-NLS-1$
-
-  private String abstractValues[] = { EMPTY, TRUE, FALSE }; // TODO use some external string here instead
-
-  protected void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 2;
-    composite.setLayout(gridLayout);
-
-    // ------------------------------------------------------------------
-    // AbstractLabel
-    // ------------------------------------------------------------------
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    // TODO Should be a translatable string here
-    CLabel abstractLabel = getWidgetFactory().createCLabel(composite, XSDConstants.ABSTRACT_ATTRIBUTE + ":");
-    abstractLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // AbstractCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    abstractCombo = getWidgetFactory().createCCombo(composite);
-    abstractCombo.setLayoutData(data);
-    abstractCombo.setEditable(false);
-
-    abstractCombo.setItems(abstractValues);
-    abstractCombo.addSelectionListener(this);
-
-    // ------------------------------------------------------------------
-    // BlockLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    // TODO Should be a translatable string here
-    CLabel blockLabel = getWidgetFactory().createCLabel(composite, XSDConstants.BLOCK_ATTRIBUTE + ":");
-    blockLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // BlockCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    blockCombo = getWidgetFactory().createCCombo(composite);
-    blockCombo.setLayoutData(data);
-    blockCombo.setEditable(false);
-
-    blockCombo.setItems(blockValues);
-    blockCombo.addSelectionListener(this);
-
-    // ------------------------------------------------------------------
-    // FinalLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    // TODO Should be a translatable string here
-    CLabel finalLabel = getWidgetFactory().createCLabel(composite, XSDConstants.FINAL_ATTRIBUTE + ":");
-    finalLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // FinalCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    finalCombo = getWidgetFactory().createCCombo(composite);
-    finalCombo.setLayoutData(data);
-    finalCombo.setEditable(false);
-
-    finalCombo.setItems(finalValues);
-    finalCombo.addSelectionListener(this);
-
-    // ------------------------------------------------------------------
-    // Substitution Group Label
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-
-    // TODO Should be a translatable string here
-    CLabel subGroupLabel = getWidgetFactory().createCLabel(composite, XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE + ":");
-    subGroupLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // Substitution Group Combo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    substGroupCombo = getWidgetFactory().createCCombo(composite);
-    substGroupCombo.setLayoutData(data);
-    substGroupCombo.setEditable(true);
-    substGroupCombo.addSelectionListener(this);
-    applyAllListeners(substGroupCombo);
-  }
-
-  public void doHandleEvent(Event e)
-  {
-    if (e.widget == substGroupCombo)
-    {
-      XSDElementDeclaration eleDec = (XSDElementDeclaration) input;
-      String value = substGroupCombo.getText();
-      String oldValue = eleDec.getElement().getAttribute(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE);
-      if (oldValue == null)
-        oldValue = EMPTY;
-      if (value.equals(oldValue))
-        return;
-
-      UpdateAttributeValueCommand command = new UpdateAttributeValueCommand(eleDec.getElement(), XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE, value);
-      command.setDeleteIfEmpty(true);
-      getCommandStack().execute(command);
-    }
-  }
-
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == blockCombo)
-    {
-      XSDElementDeclaration eleDec = (XSDElementDeclaration) input;
-      String value = blockCombo.getText();
-
-      UpdateAttributeValueCommand command = new UpdateAttributeValueCommand(eleDec.getElement(), XSDConstants.BLOCK_ATTRIBUTE, value);
-      command.setDeleteIfEmpty(true);
-      getCommandStack().execute(command);
-    }
-    else if (e.widget == finalCombo)
-    {
-      XSDElementDeclaration eleDec = (XSDElementDeclaration) input;
-      String value = finalCombo.getText();
-
-      UpdateAttributeValueCommand command = new UpdateAttributeValueCommand(eleDec.getElement(), XSDConstants.FINAL_ATTRIBUTE, value);
-      command.setDeleteIfEmpty(true);
-      getCommandStack().execute(command);
-    }
-    else if (e.widget == abstractCombo)
-    {
-      XSDElementDeclaration eleDec = (XSDElementDeclaration) input;
-      String value = abstractCombo.getText();
-
-      if (value.equals(EMPTY))
-        eleDec.getElement().removeAttribute(XSDConstants.ABSTRACT_ATTRIBUTE);
-      else
-      {
-        if (value.equals(TRUE))
-          eleDec.setAbstract(true);
-        else if (value.equals(FALSE))
-          eleDec.setAbstract(false);
-      }
-    }
-    else if (e.widget == substGroupCombo)
-    {
-      IEditorPart editor = getActiveEditor();
-      if (editor == null) return;
-      ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDSubstitutionGroupEditManager.class);    
-
-      String selection = substGroupCombo.getText();
-      ComponentSpecification newValue;
-      IComponentDialog dialog= null;
-      if ( selection.equals(Messages._UI_ACTION_BROWSE))
-      {
-        dialog = manager.getBrowseDialog();
-      }
-      else if ( selection.equals(Messages._UI_ACTION_NEW))
-      {
-        dialog = manager.getNewDialog();
-      }
-
-      if (dialog != null)
-      {
-        if (dialog.createAndOpen() == Window.OK)
-        {
-          newValue = dialog.getSelectedComponent();
-          manager.modifyComponentReference(input, newValue);
-        }
-        else
-        {
-          substGroupCombo.setText("");
-        }
-      }
-      else //use the value from selected quickPick item
-      {
-        newValue = getComponentSpecFromQuickPickForValue(selection, manager);
-        if (newValue != null)
-          manager.modifyComponentReference(input, newValue);
-      }
-    }
-  }
-
-  public void refresh()
-  {
-    super.refresh();
-    fillSubstitutionGroupCombo();
-    setListenerEnabled(false);
-    try
-    {
-      if (input instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration eleDec = (XSDElementDeclaration) input;
-
-        composite.setEnabled(!isReadOnly);
-        if (eleDec.getContainer() instanceof XSDSchema) // global element
-        {
-          abstractCombo.setEnabled(true);
-          finalCombo.setEnabled(true);
-          substGroupCombo.setEnabled(true);
-        }
-        else
-        {
-          abstractCombo.setEnabled(false);
-          finalCombo.setEnabled(false);
-          substGroupCombo.setEnabled(false);
-        }
-
-        Element element = eleDec.getElement();
-        String blockAttValue = element.getAttribute(XSDConstants.BLOCK_ATTRIBUTE);
-        if (blockAttValue != null)
-        {
-          blockCombo.setText(blockAttValue);
-        }
-        else
-        {
-          blockCombo.setText(EMPTY);
-        }
-
-        String finalAttValue = element.getAttribute(XSDConstants.FINAL_ATTRIBUTE);
-        if (finalAttValue != null)
-        {
-          finalCombo.setText(finalAttValue);
-        }
-        else
-        {
-          finalCombo.setText(EMPTY);
-        }
-
-        if (element.hasAttribute(XSDConstants.ABSTRACT_ATTRIBUTE))
-        {
-          boolean absAttValue = eleDec.isAbstract();
-          if (absAttValue)
-            abstractCombo.setText(TRUE);
-          else
-            abstractCombo.setText(FALSE);
-        }
-        else
-          abstractCombo.setText(EMPTY);
-
-        if (element.hasAttribute(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE))
-        {
-          substGroupCombo.setText(element.getAttribute(XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE));
-        }
-        else
-        {
-          substGroupCombo.setText(EMPTY);
-        }
-      }
-    }
-    catch (Exception e)
-    {
-    }
-    setListenerEnabled(true);
-  }
-  
-  private void fillSubstitutionGroupCombo()
-  {
-    IEditorPart editor = getActiveEditor();
-    ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDSubstitutionGroupEditManager.class);    
-    ComponentSpecification[] items = manager.getQuickPicks();
-    
-    substGroupCombo.removeAll();
-    substGroupCombo.add(Messages._UI_ACTION_BROWSE);
-    substGroupCombo.add(Messages._UI_ACTION_NEW);
-    for (int i = 0; i < items.length; i++)
-    {
-      substGroupCombo.add(items[i].getName());
-    }
-    // Add the current substitution group if needed
-    XSDElementDeclaration namedComponent = ((XSDElementDeclaration) input).getSubstitutionGroupAffiliation();
-    if (namedComponent != null)
-    {  
-      ComponentSpecification ret = getComponentSpecFromQuickPickForValue(namedComponent.getName(),manager);
-      if (ret == null)
-      {
-        substGroupCombo.add(namedComponent.getQName(xsdSchema));
-      }
-    } 
-  }
-  
-  private ComponentSpecification getComponentSpecFromQuickPickForValue(String value, ComponentReferenceEditManager editManager)
-  {
-    if (editManager != null)
-    {  
-      ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-      if (quickPicks != null)
-      {
-        for (int i=0; i < quickPicks.length; i++)
-        {
-          ComponentSpecification componentSpecification = quickPicks[i];
-          if (value != null && value.equals(componentSpecification.getName()))
-          {
-            return componentSpecification;
-          }                
-        }  
-      }
-    }
-    return null;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationSection.java
deleted file mode 100644
index a44cbc3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationSection.java
+++ /dev/null
@@ -1,583 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.apache.xerces.util.XMLChar;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.dialogs.NewTypeDialog;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDElementReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDTypeReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.editor.search.XSDSearchListDialogDelegate;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDElementDeclarationSection extends MultiplicitySection
-{
-  protected Text nameText;
-  protected CCombo typeCombo;
-  protected CCombo componentNameCombo;
-  boolean isElementReference;
-  protected String typeName = ""; //$NON-NLS-1$
-
-  private XSDTypeDefinition typeDefinition;
-
-  public XSDElementDeclarationSection()
-  {
-    super();
-  }
-
-  /**
-   * Contents of the property tab
-   */
-  public void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-    TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
-
-    String typeLabel = Messages.UI_LABEL_TYPE; //$NON-NLS-1$
-
-    GridData data = new GridData();
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 3;
-    composite.setLayout(gridLayout);
-    
-      // ------------------------------------------------------------------
-      // NameLabel
-      // ------------------------------------------------------------------
-
-      data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-      data.grabExcessHorizontalSpace = false;
-      CLabel nameLabel = factory.createCLabel(composite, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_NAME);
-      nameLabel.setLayoutData(data);
-
-      // ------------------------------------------------------------------
-      // NameText
-      // ------------------------------------------------------------------
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-      nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-      nameText.setLayoutData(data);
-      applyAllListeners(nameText);   
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
-        		XSDEditorCSHelpIds.GENERAL_TAB__ELEMENT__NAME);
-     
-      // ------------------------------------------------------------------
-      // Refactor/rename hyperlink 
-      // ------------------------------------------------------------------
-      createRenameHyperlink(composite);
-
-    // ------------------------------------------------------------------
-    // Ref Label
-    // ------------------------------------------------------------------
-    if (isElementReference)
-    {
-      data = new GridData();
-      data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-      data.grabExcessHorizontalSpace = false;
-      CLabel refLabel = getWidgetFactory().createCLabel(composite, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_REFERENCE);
-      refLabel.setLayoutData(data);
-
-      // ------------------------------------------------------------------
-      // Ref Combo
-      // ------------------------------------------------------------------
-
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-
-      componentNameCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-      componentNameCombo.addSelectionListener(this);
-      componentNameCombo.setLayoutData(data);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(componentNameCombo,
-      		XSDEditorCSHelpIds.GENERAL_TAB__ELEMENT__REFERENCE);
-
-      getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-    }
-
-    // ------------------------------------------------------------------
-    // typeLabel
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, typeLabel);
-
-    // ------------------------------------------------------------------
-    // typeCombo
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    typeCombo = getWidgetFactory().createCCombo(composite); //$NON-NLS-1$
-    typeCombo.setEditable(false);
-    typeCombo.setLayoutData(data);
-    typeCombo.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(typeCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ELEMENT__TYPE);
-    
-    // ------------------------------------------------------------------
-    // DummyLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
-    // ------------------------------------------------------------------
-    // min property
-    // ------------------------------------------------------------------
-
-    getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MINOCCURS);
-
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    minCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    minCombo.setLayoutData(data);
-    minCombo.add("0"); //$NON-NLS-1$
-    minCombo.add("1"); //$NON-NLS-1$
-    applyAllListeners(minCombo);
-    minCombo.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(minCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ELEMENT__MIN_OCCURENCE);    
-
-    // ------------------------------------------------------------------
-    // DummyLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
-    // ------------------------------------------------------------------
-    // max property
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MAXOCCURS);
-
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    maxCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    maxCombo.setLayoutData(data);
-    maxCombo.add("0"); //$NON-NLS-1$
-    maxCombo.add("1"); //$NON-NLS-1$
-    maxCombo.add("unbounded"); //$NON-NLS-1$
-    applyAllListeners(maxCombo);
-    maxCombo.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(maxCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__ELEMENT__MAX_OCCURENCE);    
-  }
-
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection);
-    setListenerEnabled(false);
-    init();
-    relayout();
-    
-    setListenerEnabled(true);
-  }
-  
-  protected void init()
-  {
-    if (input instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) input;
-      isElementReference = xsdElementDeclaration.isElementDeclarationReference();
-
-      typeDefinition = xsdElementDeclaration.getResolvedElementDeclaration().getTypeDefinition();
-    }
-  }
-  
-  private void fillTypesCombo()
-  {
-    IEditorPart editor = getActiveEditor();
-    ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);    
-    ComponentSpecification[] items = manager.getQuickPicks();
-    
-    typeCombo.removeAll();
-    typeCombo.add(Messages._UI_ACTION_BROWSE);
-    typeCombo.add(Messages._UI_ACTION_NEW);
-    for (int i = 0; i < items.length; i++)
-    {
-      typeCombo.add(items[i].getName());
-    }
-    // Add the current Type of this element if needed
-    XSDElementDeclaration namedComponent = ((XSDElementDeclaration) input).getResolvedElementDeclaration();
-    XSDTypeDefinition td = namedComponent.getType();
-    if (td != null)
-    {  
-      String currentTypeName = td.getQName(xsdSchema);
-      if (currentTypeName == null) // anonymous type
-    	currentTypeName = "**Anonymous**";
-      ComponentSpecification ret = getComponentSpecFromQuickPickForValue(currentTypeName,manager);
-      if (ret == null && currentTypeName != null) //not in quickPick
-      {
-        typeCombo.add(currentTypeName);
-      }
-    } 
-  }
-  
-  private ComponentSpecification getComponentSpecFromQuickPickForValue(String value, ComponentReferenceEditManager editManager)
-  {
-    if (editManager != null)
-    {  
-      ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-      if (quickPicks != null)
-      {
-        for (int i=0; i < quickPicks.length; i++)
-        {
-          ComponentSpecification componentSpecification = quickPicks[i];
-          if (value != null && value.equals(componentSpecification.getName()))
-          {
-            return componentSpecification;
-          }                
-        }  
-      }
-    }
-    return null;
-  }
-  
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    setListenerEnabled(false);
-
-    super.refresh();
-
-    XSDElementDeclaration xsdElementDeclaration = ((XSDElementDeclaration) input).getResolvedElementDeclaration();
-
-    // refresh name
-    nameText.setText(""); //$NON-NLS-1$
-    typeCombo.setText(""); //$NON-NLS-1$
-    String name = xsdElementDeclaration.getName();
-    if (name != null)
-    {
-      nameText.setText(name);
-    }
-    
-    if (isElementReference)
-    {
-      refreshRefCombo();
-    }
-
-    // refresh type
-    if (input != null)
-    {
-      if (input instanceof XSDElementDeclaration)
-      {
-        boolean isAnonymous = xsdElementDeclaration.getAnonymousTypeDefinition() != null;
-        //XSDTypeDefinition typeDef = XSDUtils.getResolvedType(xsdElementDeclaration);
-        XSDTypeDefinition typeDef = xsdElementDeclaration.getResolvedElementDeclaration().getTypeDefinition();
-         
-        if (typeDef != null)
-          typeName = typeDef.getQName(xsdSchema);
-
-        if (typeName == null)
-        {
-          typeName = ""; //$NON-NLS-1$
-        }
-
-        fillTypesCombo();
-        if (isAnonymous)
-        {
-        	typeCombo.setText("**Anonymous**");
-          typeName = "**Anonymous**";
-        }
-        else
-        {
-          if (typeDefinition != null)
-          {
-            typeCombo.setText(typeName);
-          }
-          else
-          {
-            typeCombo.setText(Messages.UI_NO_TYPE); //$NON-NLS-1$
-          }
-        }
-
-        maxCombo.setEnabled(!xsdElementDeclaration.isGlobal() || isElementReference);
-        minCombo.setEnabled(!xsdElementDeclaration.isGlobal() || isElementReference);
-      }
-    }
-
-    // refresh min max
-    refreshMinMax();
-
-    setListenerEnabled(true);
-
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == typeCombo)
-    {
-      IEditorPart editor = getActiveEditor();
-      if (editor == null) return;
-      ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);    
-
-      String selection = typeCombo.getText();
-      ComponentSpecification newValue;
-      IComponentDialog dialog= null;
-      if ( selection.equals(Messages._UI_ACTION_BROWSE))
-      {
-        dialog = manager.getBrowseDialog();
-        ((XSDSearchListDialogDelegate) dialog).showComplexTypes(true);
-      }
-      else if ( selection.equals(Messages._UI_ACTION_NEW))
-      {
-        dialog = manager.getNewDialog();
-        ((NewTypeDialog) dialog).allowComplexType(true);
-      }
-
-      if (dialog != null)
-      {
-        if (dialog.createAndOpen() == Window.OK)
-        {
-          newValue = dialog.getSelectedComponent();
-          manager.modifyComponentReference(input, newValue);
-        }
-        else
-        {
-          typeCombo.setText(typeName );
-        }
-      }
-      else //use the value from selected quickPick item
-      {
-        newValue = getComponentSpecFromQuickPickForValue(selection, manager);
-        if (newValue != null)
-          manager.modifyComponentReference(input, newValue);
-      }
-    }
-    else if (e.widget == componentNameCombo)
-    {
-      IEditorPart editor = getActiveEditor();
-      if (editor == null) return;
-      ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDElementReferenceEditManager.class);    
-
-      String selection = componentNameCombo.getText();
-      ComponentSpecification newValue;
-      IComponentDialog dialog= null;
-      if ( selection.equals(Messages._UI_ACTION_BROWSE))
-      {
-        dialog = manager.getBrowseDialog();
-      }
-      else if ( selection.equals(Messages._UI_ACTION_NEW))
-      {
-        dialog = manager.getNewDialog();
-      }
-
-      if (dialog != null)
-      {
-        if (dialog.createAndOpen() == Window.OK)
-        {
-          newValue = dialog.getSelectedComponent();
-          manager.modifyComponentReference(input, newValue);
-        }
-        else
-        {
-          componentNameCombo.setText("");
-        }
-      }
-      else //use the value from selected quickPick item
-      {
-        newValue = getComponentSpecFromQuickPickForValue(selection, manager);
-        if (newValue != null)
-          manager.modifyComponentReference(input, newValue);
-      }
-
-    }
-    else if (e.widget == maxCombo)
-    {
-      updateMaxAttribute();
-    }
-    else if (e.widget == minCombo)
-    {
-      updateMinAttribute();
-    }
-  }
-
-  protected void relayout()
-  {
-    Composite parentComposite = composite.getParent();
-    parentComposite.getParent().setRedraw(false);
-
-    if (parentComposite != null && !parentComposite.isDisposed())
-    {
-      Control[] children = parentComposite.getChildren();
-      for (int i = 0; i < children.length; i++)
-      {
-        children[i].dispose();
-      }
-    }
-
-    // Now initialize the new handler
-    createContents(parentComposite);
-    parentComposite.getParent().layout(true, true);
-
-    // Now turn painting back on
-    parentComposite.getParent().setRedraw(true);
-    refresh();
-  }
-
-  public void doHandleEvent(Event event)
-  {
-    super.doHandleEvent(event);
-    if (event.widget == nameText)
-    {
-      String newValue = nameText.getText().trim();
-      if (input instanceof XSDElementDeclaration)
-      {
-        XSDElementDeclaration namedComponent = ((XSDElementDeclaration) input).getResolvedElementDeclaration();
-        if (!validateSection())
-          return;
-
-        Command command = null;
-
-        // Make sure an actual name change has taken place
-        String oldName = namedComponent.getName();
-        if (!newValue.equals(oldName))
-        {
-          command = new UpdateNameCommand(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ACTION_RENAME, namedComponent, newValue);
-        }
-
-        if (command != null && getCommandStack() != null)
-        {
-          getCommandStack().execute(command);
-        }
-
-        // doReferentialIntegrityCheck(namedComponent, newValue);
-      }
-    }
-  }
-
-  protected boolean validateSection()
-  {
-    if (nameText == null || nameText.isDisposed())
-      return true;
-
-    setErrorMessage(null);
-
-    String name = nameText.getText().trim();
-
-    // validate against NCName
-    if (name.length() < 1 || !XMLChar.isValidNCName(name))
-    {
-      setErrorMessage(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ERROR_INVALID_NAME);
-      return false;
-    }
-
-    return true;
-  }
-
-  public void dispose()
-  {
-    if (componentNameCombo != null && !componentNameCombo.isDisposed())
-      componentNameCombo.removeSelectionListener(this);
-    if (minCombo != null && !minCombo.isDisposed())
-      minCombo.removeSelectionListener(this);
-    if (maxCombo != null && !maxCombo.isDisposed())
-      maxCombo.removeSelectionListener(this);
-    if (typeCombo != null && !typeCombo.isDisposed())
-      typeCombo.removeSelectionListener(this);
-    if (nameText != null && !nameText.isDisposed())
-      removeListeners(nameText);
-    super.dispose();
-  }
-
-  protected void refreshRefCombo()
-  {
-    componentNameCombo.setText(""); //$NON-NLS-1$
-    fillElementsCombo();
-  }
-  
-  private void fillElementsCombo()
-  {
-    IEditorPart editor = getActiveEditor();
-    ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDElementReferenceEditManager.class);    
-    
-    componentNameCombo.removeAll();
-    componentNameCombo.add(Messages._UI_ACTION_BROWSE);
-    componentNameCombo.add(Messages._UI_ACTION_NEW);
-    ComponentSpecification[] quickPicks = manager.getQuickPicks();
-    if (quickPicks != null)
-    {
-      for (int i=0; i < quickPicks.length; i++)
-      {
-        ComponentSpecification componentSpecification = quickPicks[i];
-        componentNameCombo.add(componentSpecification.getName());
-      }  
-    }
-    ComponentSpecification[] history = manager.getHistory();
-    if (history != null)
-    {
-      for (int i=0; i < history.length; i++)
-      {
-        ComponentSpecification componentSpecification = history[i];
-        componentNameCombo.add(componentSpecification.getName());
-      }  
-    }
-    
-    XSDElementDeclaration namedComponent = (XSDElementDeclaration) input;
-    Element element = namedComponent.getElement();
-    if (element != null)
-    {
-      String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE);
-      if (attrValue == null)
-      {
-        attrValue = ""; //$NON-NLS-1$
-      }
-      ComponentSpecification ret = getComponentSpecFromQuickPickForValue(attrValue, manager);
-      if (ret == null)
-      {
-        componentNameCombo.add(attrValue);
-      }
-      componentNameCombo.setText(attrValue);
-    } 
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSection.java
deleted file mode 100644
index 48e7c7d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSection.java
+++ /dev/null
@@ -1,979 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.gef.commands.CompoundCommand;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-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.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.common.commands.ChangeToLocalSimpleTypeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNumericBoundsFacetCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateStringLengthFacetCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateXSDWhiteSpaceFacetCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDFeature;
-import org.eclipse.xsd.XSDLengthFacet;
-import org.eclipse.xsd.XSDMaxExclusiveFacet;
-import org.eclipse.xsd.XSDMaxFacet;
-import org.eclipse.xsd.XSDMaxInclusiveFacet;
-import org.eclipse.xsd.XSDMaxLengthFacet;
-import org.eclipse.xsd.XSDMinExclusiveFacet;
-import org.eclipse.xsd.XSDMinFacet;
-import org.eclipse.xsd.XSDMinInclusiveFacet;
-import org.eclipse.xsd.XSDMinLengthFacet;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWhiteSpace;
-import org.eclipse.xsd.XSDWhiteSpaceFacet;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDFacetSection extends AbstractSection
-{
-  private String minLengthString, maxLengthString, titleString;
-  Font titleFont;
-  CLabel title;
-  Label minLengthLabel;
-  Text minLengthText;
-  Label maxLengthLabel;
-  Text maxLengthText;
-  Group simpleTypeModifierGroup;
-  String simpleTypeModifierGroupTitle = ""; //$NON-NLS-1$
-  Button collapseWhitespaceButton;
-  Button useEnumerationsButton, usePatternsButton;
-  Button minimumInclusiveCheckbox;
-  Button maximumInclusiveCheckbox;
-  boolean isNumericBaseType;
-  private XSDTypeDefinition typeDefinition;
-  private XSDSimpleTypeDefinition xsdSimpleTypeDefinition;
-  private XSDSimpleTypeDefinition currentPrimitiveType, previousPrimitiveType;
-  private XSDElementDeclaration xsdElementDeclaration;
-  private XSDAttributeDeclaration xsdAttributeDeclaration;
-  private XSDFeature xsdFeature;
-  boolean hasMaxMinFacets;
-
-  SpecificConstraintsWidget constraintsWidget;
-
-  public XSDFacetSection()
-  {
-    super();
-  }
-
-  protected void createContents(Composite parent)
-  {
-    TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
-    composite = factory.createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 1;
-    composite.setLayout(gridLayout);
-
-    title = factory.createCLabel(composite, ""); //$NON-NLS-1$
-    FontData fontData = composite.getFont().getFontData()[0];
-    title.setFont(JFaceResources.getFontRegistry().getBold(fontData.getName()));
-    title.setText(titleString + (isReadOnly ? " - " + Messages._UI_LABEL_READONLY : "")); //$NON-NLS-1$ //$NON-NLS-2$
-
-    Composite facetComposite = factory.createComposite(composite, SWT.FLAT);
-
-    GridData data = new GridData();
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 2;
-    facetComposite.setLayout(gridLayout);
-    data.grabExcessVerticalSpace = true;
-    data.grabExcessHorizontalSpace = true;
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-    facetComposite.setLayoutData(data);
-
-    data = new GridData();
-    data.grabExcessVerticalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = GridData.FILL;
-
-    simpleTypeModifierGroup = getWidgetFactory().createGroup(facetComposite, simpleTypeModifierGroupTitle);
-    GridLayout groupGrid = new GridLayout();
-    groupGrid.marginTop = 0;
-    groupGrid.marginBottom = 0;
-    groupGrid.numColumns = 1;
-    simpleTypeModifierGroup.setLayoutData(data);
-    simpleTypeModifierGroup.setLayout(groupGrid);
-
-    Composite simpleTypeModifierComposite = getWidgetFactory().createFlatFormComposite(simpleTypeModifierGroup);
-    data = new GridData();
-    data.grabExcessVerticalSpace = true;
-    data.verticalAlignment = GridData.FILL;
-    data.horizontalAlignment = GridData.FILL;
-
-    GridLayout grid = new GridLayout();
-    grid.marginTop = 0;
-    grid.marginBottom = 0;
-    grid.numColumns = 3;
-    simpleTypeModifierComposite.setLayout(grid);
-    simpleTypeModifierComposite.setLayoutData(data);
-    if (hasMaxMinFacets)
-    {
-      boolean isLinux = java.io.File.separator.equals("/");
-      minLengthLabel = factory.createLabel(simpleTypeModifierComposite, minLengthString);
-      minLengthText = factory.createText(simpleTypeModifierComposite, ""); //$NON-NLS-1$
-      if (isLinux)
-      {
-      	minLengthText.addListener(SWT.Modify, customListener);
-      	minLengthText.addListener(SWT.KeyDown, customListener);
-      }
-      else
-        applyAllListeners(minLengthText);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(minLengthText,
-      		XSDEditorCSHelpIds.CONSTRAINTS_TAB__MINIMUM_LENGTH);
-
-      GridData minGridData = new GridData();
-      minGridData.widthHint = 100;
-      minLengthText.setLayoutData(minGridData);
-      minimumInclusiveCheckbox = factory.createButton(simpleTypeModifierComposite, Messages._UI_LABEL_INCLUSIVE, SWT.CHECK);
-      minimumInclusiveCheckbox.addSelectionListener(this);
-
-      maxLengthLabel = factory.createLabel(simpleTypeModifierComposite, maxLengthString);
-      maxLengthText = factory.createText(simpleTypeModifierComposite, ""); //$NON-NLS-1$
-      if (isLinux)
-      {
-    	  maxLengthText.addListener(SWT.Modify, customListener);
-    	  maxLengthText.addListener(SWT.KeyDown, customListener);
-      }
-      else
-        applyAllListeners(maxLengthText);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(maxLengthText,
-        		XSDEditorCSHelpIds.CONSTRAINTS_TAB__MAXIMUM_LENGTH);
-
-      GridData maxGridData = new GridData();
-      maxGridData.widthHint = 100;
-      maxLengthText.setLayoutData(maxGridData);
-
-      maximumInclusiveCheckbox = factory.createButton(simpleTypeModifierComposite, Messages._UI_LABEL_INCLUSIVE, SWT.CHECK);
-      maximumInclusiveCheckbox.addSelectionListener(this);
-
-      minimumInclusiveCheckbox.setVisible(isNumericBaseType);
-      maximumInclusiveCheckbox.setVisible(isNumericBaseType);
-    }
-    collapseWhitespaceButton = factory.createButton(simpleTypeModifierComposite, Messages._UI_LABEL_COLLAPSE_WHITESPACE, SWT.CHECK);
-    collapseWhitespaceButton.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(collapseWhitespaceButton,
-      		XSDEditorCSHelpIds.CONSTRAINTS_TAB__COLLAPSE_WHITESPACE);
-
-    Group specificValueConstraintsGroup = factory.createGroup(facetComposite, Messages._UI_LABEL_SPECIFIC_CONSTRAINT_VALUES);
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 2;
-    specificValueConstraintsGroup.setLayout(gridLayout);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.grabExcessVerticalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = GridData.FILL;
-    specificValueConstraintsGroup.setLayoutData(data);
-
-    Composite compositeForButtons = factory.createFlatFormComposite(specificValueConstraintsGroup);
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.verticalSpacing = 1;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 1;
-    compositeForButtons.setLayout(gridLayout);
-    data = new GridData();
-    data.verticalAlignment = GridData.BEGINNING;
-    compositeForButtons.setLayoutData(data);
-
-    factory.createCLabel(compositeForButtons, Messages._UI_LABEL_RESTRICT_VALUES_BY);
-//    useDefinedValuesButton = factory.createButton(compositeForButtons, "Only permit certain values", SWT.CHECK);
-//    useDefinedValuesButton.addSelectionListener(this);
-
-    Composite compositeForRadioButtons = factory.createFlatFormComposite(compositeForButtons);
-    gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginLeft = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 1;
-    compositeForRadioButtons.setLayout(gridLayout);
-    useEnumerationsButton = factory.createButton(compositeForRadioButtons, Messages._UI_LABEL_ENUMERATIONS, SWT.RADIO);
-    useEnumerationsButton.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(useEnumerationsButton,
-      		XSDEditorCSHelpIds.CONSTRAINTS_TAB__ENUMERATIONS);
-    usePatternsButton = factory.createButton(compositeForRadioButtons, Messages._UI_LABEL_PATTERNS, SWT.RADIO);
-    usePatternsButton.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(usePatternsButton,
-      		XSDEditorCSHelpIds.CONSTRAINTS_TAB__PATTERNS);    
-    
-    constraintsWidget = new SpecificConstraintsWidget(specificValueConstraintsGroup, factory, (input instanceof XSDFeature) ? (XSDFeature)input : null, xsdSimpleTypeDefinition, this);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.grabExcessVerticalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    data.verticalAlignment = GridData.FILL;
-    constraintsWidget.getControl().setLayoutData(data);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(constraintsWidget.getControl(),
-      		XSDEditorCSHelpIds.CONSTRAINTS_TAB__NO_LABEL);
-  }
-  
-  public void doSetInput()
-  {
-    setInput(getPart(), getSelection());
-  }
-
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection);
-    init();
-    
-    XSDSchema schemaOfType = null;
-
-    if (!isReadOnly)
-    {
-      schemaOfType = xsdSimpleTypeDefinition.getSchema();
-    }
-    if (schemaOfType == owningEditor.getAdapter(XSDSchema.class))
-    {
-      isReadOnly = false;
-    }
-    else
-    {
-      if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace()))
-        isReadOnly = true;
-    }
-    if (hasMaxMinFacets)
-    {
-      title.setText(titleString + (isReadOnly ? " - " + Messages._UI_LABEL_READONLY : "")); //$NON-NLS-1$ //$NON-NLS-2$
-    }
-    relayout();
-    constraintsWidget.setCommandStack(getCommandStack());
-  }
-
-  protected void init()
-  {
-    hasMaxMinFacets = false;
-    try
-    {
-    updateInput();
-    
-    if (xsdSimpleTypeDefinition != null)
-    {
-      XSDSimpleTypeDefinition targetST = xsdSimpleTypeDefinition;
-      
-      while (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(targetST.getTargetNamespace()) && targetST != null)
-      {
-        targetST = targetST.getBaseTypeDefinition();
-      }
-      
-      minLengthString = ""; //$NON-NLS-1$
-      maxLengthString = ""; //$NON-NLS-1$
-      if (targetST.getValidFacets().contains("length")) //$NON-NLS-1$
-      {
-        minLengthString = Messages._UI_LABEL_MINIMUM_LENGTH;
-        maxLengthString = Messages._UI_LABEL_MAXIMUM_LENGTH;
-        simpleTypeModifierGroupTitle = Messages._UI_LABEL_CONSTRAINTS_ON_LENGTH_OF + targetST.getName();
-        isNumericBaseType = false;
-        hasMaxMinFacets = true;
-      }
-      else if (targetST.getValidFacets().contains("maxInclusive")) //$NON-NLS-1$
-      {
-        simpleTypeModifierGroupTitle = Messages._UI_LABEL_CONSTRAINTS_ON_VALUE_OF + targetST.getName();
-        minLengthString = Messages._UI_LABEL_MINIMUM_VALUE;
-        maxLengthString = Messages._UI_LABEL_MAXIMUM_VALUE;
-        isNumericBaseType = true;
-        hasMaxMinFacets = true;
-      }
-      else
-      {
-        simpleTypeModifierGroupTitle = Messages._UI_LABEL_CONTRAINTS_ON + (targetST != null ? targetST.getName() : "anyType"); //$NON-NLS-1$
-      }
-    }
-    }
-    catch(Exception e)
-    {
-    }
-  }
-  
-  private void updateInput()
-  {
-    previousPrimitiveType = currentPrimitiveType;
-    if (input instanceof XSDFeature)
-    {
-      xsdFeature = (XSDFeature) input;
-      typeDefinition = xsdFeature.getResolvedFeature().getType();
-      XSDTypeDefinition anonymousTypeDefinition = null;
-      if (xsdFeature instanceof XSDElementDeclaration)
-      {
-        xsdElementDeclaration = (XSDElementDeclaration)xsdFeature;
-        anonymousTypeDefinition = xsdElementDeclaration.getResolvedElementDeclaration().getAnonymousTypeDefinition();
-      }
-      else if (xsdFeature instanceof XSDAttributeDeclaration)
-      {
-        xsdAttributeDeclaration = (XSDAttributeDeclaration)xsdFeature;
-        anonymousTypeDefinition = xsdAttributeDeclaration.getResolvedAttributeDeclaration().getAnonymousTypeDefinition();
-      }
-      
-      if (typeDefinition instanceof XSDSimpleTypeDefinition)
-      {
-        xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition) typeDefinition;
-      }
-      
-      if (anonymousTypeDefinition instanceof XSDSimpleTypeDefinition)
-      {
-        xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition)anonymousTypeDefinition;
-      }
-      
-      if (xsdSimpleTypeDefinition != null)
-      {
-        if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace()))
-        {
-          XSDSimpleTypeDefinition basePrimitiveType = xsdSimpleTypeDefinition.getBaseTypeDefinition();
-          String basePrimitiveTypeString = basePrimitiveType != null ? basePrimitiveType.getName() : "";
-          currentPrimitiveType = basePrimitiveType;
-          titleString = Messages._UI_LABEL_TYPE + (anonymousTypeDefinition != null ? "(" + xsdFeature.getResolvedFeature().getName() + "Type)" : xsdSimpleTypeDefinition.getName())  + " , " + Messages._UI_LABEL_BASE + ": " + basePrimitiveTypeString; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-        }
-        else
-        {
-          currentPrimitiveType = xsdSimpleTypeDefinition;
-          titleString = Messages._UI_LABEL_TYPE + (anonymousTypeDefinition != null ? "(" + xsdFeature.getResolvedFeature().getName() + "Type)" : xsdSimpleTypeDefinition.getName());
-        }
-      }
-    }
-    else if (input instanceof XSDSimpleTypeDefinition)
-    {
-      xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition) input;
-      currentPrimitiveType = xsdSimpleTypeDefinition;
-      titleString = Messages._UI_LABEL_TYPE + (xsdSimpleTypeDefinition.getName() == null ? "(localType)" : xsdSimpleTypeDefinition.getName()) + " , " + Messages._UI_LABEL_BASE + ": " + xsdSimpleTypeDefinition.getBaseTypeDefinition().getName(); //$NON-NLS-1$ //$NON-NLS-2$
-    }
-  }
-
-  public void refresh()
-  {
-    super.refresh();
-    init();
-    
-    if (currentPrimitiveType != previousPrimitiveType)
-    {
-      relayout();      
-    }
-    
-    setListenerEnabled(false);
-    
-    XSDWhiteSpaceFacet whitespaceFacet = xsdSimpleTypeDefinition.getWhiteSpaceFacet();
-    if (whitespaceFacet != null)
-    {
-      if (xsdSimpleTypeDefinition.getFacetContents().contains(whitespaceFacet))
-      {
-        if (XSDWhiteSpace.COLLAPSE_LITERAL.equals(whitespaceFacet.getValue()))
-        {
-          if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace()))
-          {
-            collapseWhitespaceButton.setSelection(true);
-          }
-          else
-          {
-            collapseWhitespaceButton.setSelection(false);
-          }
-        }
-      }
-    }
-
-    if (hasMaxMinFacets && !minLengthLabel.isDisposed() && !maxLengthLabel.isDisposed())
-    {
-      minLengthLabel.setText(minLengthString);
-      maxLengthLabel.setText(maxLengthString);
-
-      if (!isNumericBaseType)
-        refreshStringLength();
-      else
-        refreshValueLengths();
-    }
-
-    if (xsdSimpleTypeDefinition.getEnumerationFacets().size() > 0) 
-    {
-      usePatternsButton.setSelection(false);
-      useEnumerationsButton.setSelection(true);
-      constraintsWidget.setConstraintKind(SpecificConstraintsWidget.ENUMERATION);
-      constraintsWidget.addButton.setEnabled(true);
-    }
-    else if (xsdSimpleTypeDefinition.getPatternFacets().size() > 0)
-    {
-      usePatternsButton.setSelection(true);
-      useEnumerationsButton.setSelection(false);
-      constraintsWidget.setConstraintKind(SpecificConstraintsWidget.PATTERN);
-      constraintsWidget.addButton.setEnabled(false);
-    }
-    else
-    {
-      usePatternsButton.setSelection(false);
-      useEnumerationsButton.setSelection(true);
-      constraintsWidget.setConstraintKind(SpecificConstraintsWidget.ENUMERATION);
-      constraintsWidget.addButton.setEnabled(true);
-    }
-    constraintsWidget.setInput(xsdSimpleTypeDefinition);
-
-    setListenerEnabled(true);
-  }
-
-  protected void relayout()
-  {
-    Composite parent = composite.getParent();
-    parent.getParent().setRedraw(false);
-
-    if (parent != null && !parent.isDisposed())
-    {
-      Control[] children = parent.getChildren();
-      for (int i = 0; i < children.length; i++)
-      {
-        children[i].dispose();
-      }
-    }
-    createContents(parent);
-    parent.getParent().layout(true, true);
-    parent.getParent().setRedraw(true);
-    refresh();
-  }
-
-  public void dispose()
-  {
-    if (titleFont != null && !titleFont.isDisposed())
-      titleFont.dispose();
-    titleFont = null;
-    
-    if (minimumInclusiveCheckbox != null && !minimumInclusiveCheckbox.isDisposed())
-      minimumInclusiveCheckbox.removeSelectionListener(this);
-    if (maximumInclusiveCheckbox != null && !maximumInclusiveCheckbox.isDisposed())
-      maximumInclusiveCheckbox.removeSelectionListener(this);
-    
-    if (collapseWhitespaceButton != null && !collapseWhitespaceButton.isDisposed())
-      collapseWhitespaceButton.removeSelectionListener(this);
-
-    if (maxLengthText != null && !maxLengthText.isDisposed())
-      removeListeners(maxLengthText);
-    if (minLengthText != null && !minLengthText.isDisposed())
-      removeListeners(minLengthText);
-    
-    super.dispose();
-  }
-
-  public void refreshStringLength()
-  {
-    XSDMinLengthFacet minLengthFacet = xsdSimpleTypeDefinition.getMinLengthFacet();
-    XSDMaxLengthFacet maxLengthFacet = xsdSimpleTypeDefinition.getMaxLengthFacet();
-    XSDLengthFacet lengthFacet = xsdSimpleTypeDefinition.getLengthFacet();
-
-    try
-    {
-      if (minLengthFacet != null)
-      {
-        int minLengthValue = minLengthFacet.getValue();
-        if (minLengthValue >= 0 && minLengthFacet.getRootContainer() == xsdSchema)
-        {
-          minLengthText.setText(Integer.toString(minLengthValue));
-        }
-        else
-        {
-          minLengthText.setText(""); //$NON-NLS-1$
-        }
-      }
-      if (maxLengthFacet != null)
-      {
-        int maxLength = maxLengthFacet.getValue();
-        if (maxLength >= 0 && maxLengthFacet.getRootContainer() == xsdSchema)
-        {
-          maxLengthText.setText(Integer.toString(maxLength));
-        }
-        else
-        {
-          maxLengthText.setText(""); //$NON-NLS-1$
-        }
-      }
-      if (lengthFacet != null)
-      {
-        int length = lengthFacet.getValue();
-        if (length >= 0 && lengthFacet.getRootContainer() == xsdSchema)
-        {
-          minLengthText.setText(Integer.toString(length));
-          maxLengthText.setText(Integer.toString(length));
-        }
-      }
-    }
-    catch (Exception e)
-    {
-
-    }
-
-  }
-
-  public void refreshValueLengths()
-  {
-    XSDSimpleTypeDefinition type = xsdSimpleTypeDefinition;
-    XSDMinFacet minFacet = type.getMinFacet();
-    XSDMaxFacet maxFacet = type.getMaxFacet();
-
-    minimumInclusiveCheckbox.removeSelectionListener(this);
-    maximumInclusiveCheckbox.removeSelectionListener(this);
-    try
-    {
-      minimumInclusiveCheckbox.setSelection(false);
-      minimumInclusiveCheckbox.setEnabled(false);
-      if (minFacet != null && minFacet.getRootContainer() == xsdSchema)
-      {
-        if (minFacet.getElement().getLocalName().equals(XSDConstants.MINEXCLUSIVE_ELEMENT_TAG) ||
-            minFacet.getElement().getLocalName().equals(XSDConstants.MININCLUSIVE_ELEMENT_TAG))
-        {
-          minLengthText.setText(minFacet.getLexicalValue());
-          minimumInclusiveCheckbox.setSelection(minFacet.isInclusive());
-          minimumInclusiveCheckbox.setEnabled(true);
-        }
-        else
-        {
-          minLengthText.setText(""); //$NON-NLS-1$
-        }
-      }
-
-      maximumInclusiveCheckbox.setSelection(false);
-      maximumInclusiveCheckbox.setEnabled(false);
-      if (maxFacet != null && maxFacet.getRootContainer() == xsdSchema)
-      {
-        if (maxFacet.getElement().getLocalName().equals(XSDConstants.MAXEXCLUSIVE_ELEMENT_TAG) ||
-            maxFacet.getElement().getLocalName().equals(XSDConstants.MAXINCLUSIVE_ELEMENT_TAG))
-        {
-          maxLengthText.setText(maxFacet.getLexicalValue());
-          maximumInclusiveCheckbox.setSelection(maxFacet.isInclusive());
-          maximumInclusiveCheckbox.setEnabled(true);
-        }
-        else
-        {
-          maxLengthText.setText(""); //$NON-NLS-1$
-        }
-      }
-    }
-    finally
-    {
-      minimumInclusiveCheckbox.addSelectionListener(this);
-      maximumInclusiveCheckbox.addSelectionListener(this);
-    }
-  }
-
-  protected void doHandleEvent(Event event)
-  {
-    super.doHandleEvent(event);
-    Command command = null;
-    boolean doUpdateMax = false, doUpdateMin = false;
-    boolean doSetInput = false;
-    
-    String minValue = minLengthText.getText().trim();
-    String maxValue = maxLengthText.getText().trim();
-
-    XSDLengthFacet lengthFacet = xsdSimpleTypeDefinition.getLengthFacet();
-    XSDMinLengthFacet minLengthFacet = xsdSimpleTypeDefinition.getMinLengthFacet();
-    XSDMaxLengthFacet maxLengthFacet = xsdSimpleTypeDefinition.getMaxLengthFacet();
-    
-    XSDMinInclusiveFacet minInclusiveFacet = xsdSimpleTypeDefinition.getMinInclusiveFacet();
-    XSDMinExclusiveFacet minExclusiveFacet = xsdSimpleTypeDefinition.getMinExclusiveFacet();
-    XSDMaxInclusiveFacet maxInclusiveFacet = xsdSimpleTypeDefinition.getMaxInclusiveFacet();
-    XSDMaxExclusiveFacet maxExclusiveFacet = xsdSimpleTypeDefinition.getMaxExclusiveFacet();
-
-    String currentMinInclusive = null, currentMinExclusive = null, currentMaxInclusive = null, currentMaxExclusive = null;
-    if (minInclusiveFacet != null)
-    {
-      currentMinInclusive = minInclusiveFacet.getLexicalValue();
-    }
-    if (minExclusiveFacet != null)
-    {
-      currentMinExclusive = minExclusiveFacet.getLexicalValue();
-    }
-    if (maxInclusiveFacet != null)
-    {
-      currentMaxInclusive = maxInclusiveFacet.getLexicalValue();
-    }
-    if (maxExclusiveFacet != null)
-    {
-      currentMaxExclusive = maxExclusiveFacet.getLexicalValue();
-    }
-    
-    
-    String currentLength = null, currentMin = null, currentMax = null;
-    if (lengthFacet != null)
-    {
-      currentLength = lengthFacet.getLexicalValue();
-    }
-    if (minLengthFacet != null)
-    {
-      currentMin = minLengthFacet.getLexicalValue();
-    }
-    if (maxLengthFacet != null)
-    {
-      currentMax = maxLengthFacet.getLexicalValue();
-    }
-    
-    if (event.widget == minLengthText)
-    {
-      try
-      {
-        if (minValue.length() > 0)
-        {
-          if (!isNumericBaseType)
-          {
-            Number big = new BigInteger(minValue);
-            big.toString();
-            if (minLengthFacet != null)
-            {
-              if (minValue.equals(currentMin) || minValue.equals(currentLength))
-                return;
-            }
-            else
-            {
-              if (maxValue != null && minValue.equals(maxValue) && lengthFacet != null)
-              {
-                return;
-              }
-            }
-          }
-          else
-          {
-            if (xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("double").equals(xsdSimpleTypeDefinition) || //$NON-NLS-1$
-                xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("float").equals(xsdSimpleTypeDefinition) || //$NON-NLS-1$
-                xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("decimal").equals(xsdSimpleTypeDefinition)) //$NON-NLS-1$
-            {
-              BigDecimal bigDecimal = new BigDecimal(minValue);
-              bigDecimal.toString();
-              if ( (currentMinInclusive != null && minValue.equals(currentMinInclusive)) ||
-                   (currentMinExclusive != null && minValue.equals(currentMinExclusive)) )
-              {
-                return;
-              }
-            }
-            else
-            {
-              Number big = new BigInteger(minValue);
-              big.toString();
-            }
-            minimumInclusiveCheckbox.setEnabled(true);
-          }
-        }
-        else
-        {
-          if (!isNumericBaseType)
-          {
-            if (currentMin == null && currentLength == null)
-              return;
-          }
-          else
-          {
-            if (currentMinInclusive == null && minimumInclusiveCheckbox.getSelection())
-            {
-              return;
-            }
-            else if (currentMinExclusive == null && !minimumInclusiveCheckbox.getSelection())
-            {
-              return;
-            }
-          }
-          minimumInclusiveCheckbox.setEnabled(false);
-          minValue = null;
-        }
-        doUpdateMin = true;
-      }
-      catch (NumberFormatException e)
-      {
-        // TODO show error message
-        doUpdateMin = false;
-      }
-    }
-    if (event.widget == maxLengthText)
-    {
-      try
-      {
-        if (maxValue.length() > 0)
-        {
-          if (!isNumericBaseType)
-          {
-            Number big = new BigInteger(maxValue);
-            big.toString();
-            if (maxLengthFacet != null)
-            {
-              if (maxValue.equals(currentMax) || maxValue.equals(currentLength))
-                return;
-            }
-            else
-            {
-              if (minValue != null && maxValue.equals(minValue) && lengthFacet != null)
-              {
-                return;
-              }
-            }
-          }
-          else
-          {
-            if (xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("double").equals(xsdSimpleTypeDefinition) || //$NON-NLS-1$
-                xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("float").equals(xsdSimpleTypeDefinition) || //$NON-NLS-1$
-                xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("decimal").equals(xsdSimpleTypeDefinition)) //$NON-NLS-1$
-            {
-              BigDecimal bigDecimal = new BigDecimal(maxValue);
-              bigDecimal.toString();
-            }
-            else
-            {
-              Number big = new BigInteger(maxValue);
-              big.toString();
-            }
-            maximumInclusiveCheckbox.setEnabled(true);
-          }
-        }
-        else
-        {
-          if (!isNumericBaseType)
-          {
-            if (currentMax == null && currentLength == null)
-              return;
-          }
-          else
-          {
-            if (currentMaxInclusive == null && maximumInclusiveCheckbox.getSelection())
-            {
-              return;
-            }
-            else if (currentMaxExclusive == null && !maximumInclusiveCheckbox.getSelection())
-            {
-              return;
-            }
-            maximumInclusiveCheckbox.setEnabled(false);
-          }
-          maxValue = null;
-        }
-
-        doUpdateMax = true;
-      }
-      catch (NumberFormatException e)
-      {
-        doUpdateMax = false;
-        // TODO show error message
-      }
-    }
-    
-    if (XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace()) && (doUpdateMax || doUpdateMin))
-    {
-      XSDSimpleTypeDefinition anonymousSimpleType = null;
-      CompoundCommand compoundCommand = new CompoundCommand();
-      ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = null;
-      if (input instanceof XSDFeature)
-      {
-        anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType((XSDFeature)input, xsdSimpleTypeDefinition);
-        if (anonymousSimpleType == null)
-        {
-          anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-          anonymousSimpleType.setBaseTypeDefinition(xsdSimpleTypeDefinition);
-       
-          changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand(Messages._UI_ACTION_CONSTRAIN_LENGTH, (XSDFeature)input);
-          changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType);
-          compoundCommand.add(changeToAnonymousCommand);
-          doSetInput = true;
-        }
-
-        if (!isNumericBaseType)
-        {
-          UpdateStringLengthFacetCommand updateCommand = new UpdateStringLengthFacetCommand("", anonymousSimpleType); //$NON-NLS-1$
-          if (doUpdateMax)
-          {
-            updateCommand.setMax(maxValue);
-          }
-          if (doUpdateMin)
-          {
-            updateCommand.setMin(minValue);
-          }
-          compoundCommand.add(updateCommand);
-        }
-        else
-        {
-          UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand(Messages._UI_ACTION_UPDATE_BOUNDS, anonymousSimpleType, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection());
-          if (doUpdateMax)
-          {
-            updateCommand.setMax(maxValue);
-          }
-          if (doUpdateMin)
-          {
-            updateCommand.setMin(minValue);
-          }
-          compoundCommand.add(updateCommand);
-        }
-        command = compoundCommand;
-        getCommandStack().execute(command);
-      }
-      else if (input instanceof XSDSimpleTypeDefinition)
-      {
-        if (!isNumericBaseType)
-        {
-          UpdateStringLengthFacetCommand updateCommand = new UpdateStringLengthFacetCommand("", xsdSimpleTypeDefinition); //$NON-NLS-1$
-          if (doUpdateMax)
-          {
-            updateCommand.setMax(maxValue);
-          }
-          if (doUpdateMin)
-          {
-            updateCommand.setMin(minValue);
-          }
-          command = updateCommand;
-        }
-        else
-        {
-          UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand(Messages._UI_ACTION_UPDATE_BOUNDS, xsdSimpleTypeDefinition, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection());
-          if (doUpdateMax)
-          {
-            updateCommand.setMax(maxValue);
-          }
-          if (doUpdateMin)
-          {
-            updateCommand.setMin(minValue);
-          }
-          command = updateCommand;
-        }
-        getCommandStack().execute(command);
-      }
-    }
-    else
-    {
-      if (!isNumericBaseType)
-      {
-        UpdateStringLengthFacetCommand updateCommand = new UpdateStringLengthFacetCommand("", xsdSimpleTypeDefinition); //$NON-NLS-1$
-        if (doUpdateMax)
-        {
-          updateCommand.setMax(maxValue);
-        }
-        if (doUpdateMin)
-        {
-          updateCommand.setMin(minValue);
-        }
-        getCommandStack().execute(updateCommand);
-      }
-      else
-      {
-        UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand(Messages._UI_ACTION_UPDATE_BOUNDS, xsdSimpleTypeDefinition, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection());
-        if (doUpdateMax)
-        {
-          updateCommand.setMax(maxValue);
-        }
-        if (doUpdateMin)
-        {
-          updateCommand.setMin(minValue);
-        }
-        getCommandStack().execute(updateCommand);
-      }
-      
-    }
-    if (doSetInput)
-      setInput(getPart(), getSelection());
-  }
-  
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == collapseWhitespaceButton)
-    {
-       CompoundCommand compoundCommand = new CompoundCommand();
-       XSDSimpleTypeDefinition anonymousSimpleType = null;
-       if (XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace()))
-       {
-         if (input instanceof XSDFeature)
-         {
-           anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType((XSDFeature)input, xsdSimpleTypeDefinition);
-           if (anonymousSimpleType == null)
-           {
-             anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition();
-             anonymousSimpleType.setBaseTypeDefinition(xsdSimpleTypeDefinition);
-           
-             ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand(Messages._UI_ACTION_CONSTRAIN_LENGTH, (XSDFeature)input);
-             changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType);
-             compoundCommand.add(changeToAnonymousCommand);
-           }
-  
-           UpdateXSDWhiteSpaceFacetCommand whiteSpaceCommand = new UpdateXSDWhiteSpaceFacetCommand(Messages._UI_ACTION_COLLAPSE_WHITESPACE, anonymousSimpleType, collapseWhitespaceButton.getSelection());
-           compoundCommand.add(whiteSpaceCommand);
-            
-           getCommandStack().execute(compoundCommand);
-        }
-         setInput(getPart(), getSelection());
-      }
-      else
-      {
-        UpdateXSDWhiteSpaceFacetCommand whiteSpaceCommand = new UpdateXSDWhiteSpaceFacetCommand(Messages._UI_ACTION_COLLAPSE_WHITESPACE, xsdSimpleTypeDefinition, collapseWhitespaceButton.getSelection());
-        getCommandStack().execute(whiteSpaceCommand);
-      }
-    }
-    else if (e.widget == minimumInclusiveCheckbox)
-    {
-      String minValue = minLengthText.getText().trim();
-      if (minValue.length() == 0) minValue = null;
-
-      UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand(Messages._UI_ACTION_UPDATE_BOUNDS, xsdSimpleTypeDefinition, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection());
-      updateCommand.setMin(minValue);
-      
-      if (minValue != null)
-        getCommandStack().execute(updateCommand);
-    }
-    else if (e.widget == maximumInclusiveCheckbox)
-    {
-      String maxValue = maxLengthText.getText().trim();
-      if (maxValue.length() == 0) maxValue = null;
-      UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand(Messages._UI_ACTION_UPDATE_BOUNDS, xsdSimpleTypeDefinition, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection());
-      updateCommand.setMax(maxValue);
-      if (maxValue != null)
-        getCommandStack().execute(updateCommand);
-    }
-    else if (e.widget == useEnumerationsButton)
-    {
-      constraintsWidget.addButton.setEnabled(true);
-      if (isListenerEnabled())
-        constraintsWidget.setConstraintKind(SpecificConstraintsWidget.ENUMERATION);
-    }
-    else if (e.widget == usePatternsButton)
-    {
-      constraintsWidget.addButton.setEnabled(false);
-      if (isListenerEnabled())
-        constraintsWidget.setConstraintKind(SpecificConstraintsWidget.PATTERN);
-    }
-  }
-  
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSectionFilter.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSectionFilter.java
deleted file mode 100644
index bdc57c5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSectionFilter.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.jface.viewers.IFilter;
-import org.eclipse.xsd.XSDFeature;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-
-public class XSDFacetSectionFilter implements IFilter
-{
-  public boolean select(Object toTest)
-  {
-    if (toTest instanceof XSDFeature)
-    {
-      XSDTypeDefinition type = ((XSDFeature)toTest).getResolvedFeature().getType();
-      if (type instanceof XSDSimpleTypeDefinition)
-      {
-        return true;
-      }
-    }
-    else if (toTest instanceof XSDSimpleTypeDefinition)
-    {
-      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)toTest;
-      if (st.eContainer() instanceof XSDSchema ||
-          st.eContainer() instanceof XSDFeature)
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDImportSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDImportSection.java
deleted file mode 100644
index 1c7df7e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDImportSection.java
+++ /dev/null
@@ -1,376 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections;
-
-import java.util.Map;
-
-import org.apache.xerces.util.XMLChar;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.viewers.ResourceFilter;
-import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.wst.xsd.ui.internal.wizards.XSDSelectIncludeFileWizard;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDImportSection extends SchemaLocationSection
-{
-  protected Text namespaceText, prefixText;
-  protected String oldPrefixValue;
-
-  public XSDImportSection()
-  {
-    super();
-  }
-
-  /**
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-   *      org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-   */
-  public void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 3;
-    composite.setLayout(gridLayout);
-
-    GridData data = new GridData();
-
-    // Create Schema Location Label
-    CLabel namespaceLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_NAMESPACE")); //$NON-NLS-1$
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    namespaceLabel.setLayoutData(data);
-
-    namespaceText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-    namespaceText.setEditable(false);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    applyAllListeners(namespaceText);
-    namespaceText.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // DummyLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
-    CLabel prefixLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_PREFIX")); //$NON-NLS-1$
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    prefixLabel.setLayoutData(data);
-
-    prefixText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-    prefixText.setEditable(true);
-    applyAllListeners(prefixText);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    prefixText.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // DummyLabel
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
-    // Create Schema Location Label
-    CLabel schemaLocationLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_LOCATION")); //$NON-NLS-1$
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    schemaLocationLabel.setLayoutData(data);
-
-    // Create Schema Location Text
-    schemaLocationText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-    schemaLocationText.setEditable(true);
-    applyAllListeners(schemaLocationText);
-
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    schemaLocationText.setLayoutData(data);
-
-    // Create Wizard Button
-    wizardButton = getWidgetFactory().createButton(composite, "", SWT.NONE); //$NON-NLS-1$
-    wizardButton.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    wizardButton.setLayoutData(data);
-    wizardButton.addSelectionListener(this);
-
-    // error text
-    errorText = new StyledText(composite, SWT.FLAT);
-    errorText.setEditable(false);
-    errorText.setEnabled(false);
-    errorText.setText(""); //$NON-NLS-1$
-
-    data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.horizontalSpan = 3;
-    data.grabExcessHorizontalSpace = true;
-    errorText.setLayoutData(data);
-
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(schemaLocationText,
-    		XSDEditorCSHelpIds.GENERAL_TAB__IMPORT__SCHEMALOCATION);
-
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(namespaceText,
-    		XSDEditorCSHelpIds.GENERAL_TAB__IMPORT__NAMESPACE);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(prefixText,
-    		XSDEditorCSHelpIds.GENERAL_TAB__IMPORT__PREFIX);
-
-  }
-
-  public void refresh()
-  {
-    setListenerEnabled(false);
-
-    errorText.setText("");
-    Element element = null;
-    if (input instanceof XSDImport)
-    {
-      element = ((XSDImport) input).getElement();
-
-      String namespace = element.getAttribute("namespace"); //$NON-NLS-1$
-      String schemaLocation = element.getAttribute("schemaLocation"); //$NON-NLS-1$
-
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      String prefix = helper.getPrefix(element.getAttribute(XSDConstants.NAMESPACE_ATTRIBUTE), false);
-
-      if (namespace == null)
-      {
-        namespace = ""; //$NON-NLS-1$
-      }
-
-      if (prefix == null)
-      {
-        prefix = ""; //$NON-NLS-1$
-      }
-
-      if (schemaLocation == null)
-      {
-        schemaLocation = ""; //$NON-NLS-1$
-      }
-
-      namespaceText.setText(namespace);
-      prefixText.setText(prefix);
-      schemaLocationText.setText(schemaLocation);
-      oldPrefixValue = prefixText.getText();
-    }
-
-    setListenerEnabled(true);
-  }
-
-  public void widgetSelected(SelectionEvent event)
-  {
-    if (event.widget == wizardButton)
-    {
-      setListenerEnabled(false);
-      Shell shell = Display.getCurrent().getActiveShell();
-
-      IFile currentIFile = ((IFileEditorInput) getActiveEditor().getEditorInput()).getFile();
-      ViewerFilter filter = new ResourceFilter(new String[] { ".xsd" }, //$NON-NLS-1$ 
-          new IFile[] { currentIFile }, null);
-
-      XSDSelectIncludeFileWizard fileSelectWizard = new XSDSelectIncludeFileWizard(xsdSchema, false, XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_SCHEMA"), //$NON-NLS-1$
-          XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_DESC"), //$NON-NLS-1$
-          filter, (IStructuredSelection) getSelection());
-
-      WizardDialog wizardDialog = new WizardDialog(shell, fileSelectWizard);
-      wizardDialog.create();
-      wizardDialog.setBlockOnOpen(true);
-      int result = wizardDialog.open();
-
-      String value = schemaLocationText.getText();
-      prefixText.removeListener(SWT.Modify, this);
-      if (result == Window.OK)
-      {
-        errorText.setText("");
-        IFile selectedIFile = fileSelectWizard.getResultFile();
-        String schemaFileString = value;
-        if (selectedIFile != null)
-        {
-          schemaFileString = URIHelper.getRelativeURI(selectedIFile.getLocation(), currentIFile.getLocation());
-        }
-        else
-        {
-          schemaFileString = fileSelectWizard.getURL();
-        }
-
-        String namespace = fileSelectWizard.getNamespace();
-        if (namespace == null)
-          namespace = "";
-
-        XSDSchema externalSchema = fileSelectWizard.getExternalSchema();
-        handleSchemaLocationChange(schemaFileString, namespace, externalSchema);
-      }
-      setListenerEnabled(true);
-      prefixText.addListener(SWT.Modify, this);
-    }
-  }
-
-  protected void handleSchemaLocationChange(String schemaFileString, String namespace, XSDSchema externalSchema)
-  {
-    if (input instanceof XSDImport)
-    {
-      XSDImport xsdImport = (XSDImport) input;
-
-      xsdImport.setNamespace(namespace);
-      xsdImport.setSchemaLocation(schemaFileString);
-      xsdImport.setResolvedSchema(externalSchema);
-
-      java.util.Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-
-      // Referential integrity on old import
-      // How can we be sure that if the newlocation is the same as the
-      // oldlocation
-      // the file hasn't changed
-
-//      XSDSchema referencedSchema = xsdImport.getResolvedSchema();
-//      if (referencedSchema != null)
-//      {
-//        XSDExternalFileCleanup cleanHelper = new
-//        XSDExternalFileCleanup(referencedSchema);
-//        cleanHelper.visitSchema(xsdSchema);
-//      }
-
-      Element schemaElement = xsdSchema.getElement();
-
-      // update the xmlns in the schema element first, and then update the
-      // import element next
-      // so that the last change will be in the import element. This keeps the
-      // selection
-      // on the import element
-      TypesHelper helper = new TypesHelper(externalSchema);
-      String prefix = helper.getPrefix(namespace, false);
-
-      if (map.containsKey(prefix))
-      {
-        prefix = null;
-      }
-
-      if (prefix == null || (prefix != null && prefix.length() == 0))
-      {
-        StringBuffer newPrefix = new StringBuffer("pref"); //$NON-NLS-1$
-        int prefixExtension = 1;
-        while (map.containsKey(newPrefix.toString()) && prefixExtension < 100)
-        {
-          newPrefix = new StringBuffer("pref" + String.valueOf(prefixExtension));
-          prefixExtension++;
-        }
-        prefix = newPrefix.toString();
-      }
-
-      if (namespace.length() > 0)
-      {
-        // if ns already in map, use its corresponding prefix
-        if (map.containsValue(namespace))
-        {
-          TypesHelper typesHelper = new TypesHelper(xsdSchema);
-          prefix = typesHelper.getPrefix(namespace, false);
-        }
-        else
-        // otherwise add to the map
-        {
-          schemaElement.setAttribute("xmlns:" + prefix, namespace);
-        }
-        prefixText.setText(prefix);
-      }
-      else
-      {
-        prefixText.setText("");
-        namespaceText.setText("");
-      }
-    }
-    refresh();
-  }
-
-  public void doHandleEvent(Event event)
-  {
-    setErrorMessage(null);
-    super.doHandleEvent(event);
-    if (event.widget == prefixText)
-    {
-      String newPrefix = prefixText.getText();
-      if (oldPrefixValue.equals(newPrefix) || !isValidSchemaLocation)
-        return;
-      Map map = xsdSchema.getQNamePrefixToNamespaceMap();
-      String key = prefixText.getText();      
-      if (key.length() == 0) key = null;
-      
-      if (validatePrefix(newPrefix) && schemaLocationText.getText().trim().length() > 0)
-      {
-        if (map.containsKey(key))
-        {
-          setErrorMessage(XSDEditorPlugin.getXSDString("_ERROR_LABEL_PREFIX_EXISTS"));
-        }
-        else
-        {
-          Element schemaElement = xsdSchema.getElement();
-          
-          if (key != null) {
-            if (oldPrefixValue.length() == 0) 
-              schemaElement.removeAttribute("xmlns");
-            else 
-              schemaElement.removeAttribute("xmlns:"+oldPrefixValue);
-            
-            schemaElement.setAttribute("xmlns:" + newPrefix, namespaceText.getText());
-          } 
-          else {
-            schemaElement.removeAttribute("xmlns:"+oldPrefixValue);
-            schemaElement.setAttribute("xmlns", namespaceText.getText());
-          }
-          xsdSchema.updateElement();
-          setErrorMessage(null);
-          oldPrefixValue = newPrefix;
-        }
-      }
-      else
-      {
-        setErrorMessage(XSDEditorPlugin.getXSDString("_ERROR_LABEL_INVALID_PREFIX"));
-      }
-    }
-  }
-
-  public void aboutToBeHidden()
-  {
-    setErrorMessage(null);
-    super.aboutToBeHidden();
-  }
-  
-  protected boolean validatePrefix(String prefix)
-  {
-    if (prefix.length() == 0) return true;
-    return XMLChar.isValidNCName(prefix);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupDefinitionSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupDefinitionSection.java
deleted file mode 100644
index 4e2a055..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupDefinitionSection.java
+++ /dev/null
@@ -1,334 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.xerces.util.XMLChar;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDModelGroupDefinitionSection extends MultiplicitySection
-{
-  protected Text nameText;
-  protected CCombo componentNameCombo;
-  boolean isReference;
-
-  public XSDModelGroupDefinitionSection()
-  {
-    super();
-  }
-
-  protected void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 3;
-    composite.setLayout(gridLayout);
-
-    if (isReference)
-    {
-      // ------------------------------------------------------------------
-      // Ref Label
-      // ------------------------------------------------------------------
-      GridData data = new GridData();
-      data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-      data.grabExcessHorizontalSpace = false;
-      CLabel refLabel = getWidgetFactory().createCLabel(composite, XSDConstants.REF_ATTRIBUTE + ":"); //$NON-NLS-1$
-      refLabel.setLayoutData(data);
-
-      // ------------------------------------------------------------------
-      // Ref Combo
-      // ------------------------------------------------------------------
-
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-      data.horizontalSpan = 2;
-
-      componentNameCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-      componentNameCombo.addSelectionListener(this);
-      componentNameCombo.setLayoutData(data);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(componentNameCombo,
-      		XSDEditorCSHelpIds.GENERAL_TAB__MODELGROUP_REFS__REF);
-      
-      // ------------------------------------------------------------------
-      // min property
-      // ------------------------------------------------------------------
-      getWidgetFactory().createCLabel(composite, 
-    		  org.eclipse.wst.xsd.ui.internal.editor.Messages.UI_LABEL_MINOCCURS);
-      
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-      data.horizontalSpan = 2;
-
-      minCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-      minCombo.setLayoutData(data);
-      minCombo.add("0"); //$NON-NLS-1$
-      minCombo.add("1"); //$NON-NLS-1$
-      applyAllListeners(minCombo);
-      minCombo.addSelectionListener(this);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(minCombo,
-      		XSDEditorCSHelpIds.GENERAL_TAB__MODELGROUP__MIN_OCCURENCE);
-
-      // ------------------------------------------------------------------
-      // max property
-      // ------------------------------------------------------------------
-      getWidgetFactory().createCLabel(composite, 
-    		  org.eclipse.wst.xsd.ui.internal.editor.Messages.UI_LABEL_MAXOCCURS);
-
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-      data.horizontalSpan = 2;
-
-      maxCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-      maxCombo.setLayoutData(data);
-      maxCombo.add("0"); //$NON-NLS-1$
-      maxCombo.add("1"); //$NON-NLS-1$
-      maxCombo.add("unbounded"); //$NON-NLS-1$
-      applyAllListeners(maxCombo);
-      maxCombo.addSelectionListener(this);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(maxCombo,
-      		XSDEditorCSHelpIds.GENERAL_TAB__MODELGROUP__MAX_OCCURENCE);
-      
-    }
-    else
-    {
-      // ------------------------------------------------------------------
-      // NameLabel
-      // ------------------------------------------------------------------
-      GridData data = new GridData();
-      data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-      data.grabExcessHorizontalSpace = false;
-      CLabel nameLabel = getWidgetFactory().createCLabel(composite, Messages._UI_LABEL_NAME);
-      nameLabel.setLayoutData(data);
-
-      // ------------------------------------------------------------------
-      // NameText
-      // ------------------------------------------------------------------
-      data = new GridData();
-      data.grabExcessHorizontalSpace = true;
-      data.horizontalAlignment = GridData.FILL;
-      nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-      nameText.setLayoutData(data);
-      applyAllListeners(nameText);
-      
-      PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
-      		XSDEditorCSHelpIds.GENERAL_TAB__MODELGROUP_DEFINITION__NAME);
-
-      // ------------------------------------------------------------------
-      // Refactor/rename hyperlink 
-      // ------------------------------------------------------------------
-      createRenameHyperlink(composite);
-    }
-  }
-
-  public void refresh()
-  {
-    super.refresh();
-
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-
-    setListenerEnabled(false);
-
-    XSDNamedComponent namedComponent = (XSDNamedComponent) input;
-
-    if (isReference)
-    {
-      Element element = namedComponent.getElement();
-      if (element != null)
-      {
-        String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE);
-        if (attrValue == null)
-        {
-          attrValue = ""; //$NON-NLS-1$
-        }
-        componentNameCombo.setText(attrValue);
-
-        // refresh min max
-        if (minCombo != null && maxCombo != null)
-        {
-          refreshMinMax();
-        }
-      }
-    }
-    else
-    {
-      // refresh name
-      nameText.setText(""); //$NON-NLS-1$
-
-      String name = namedComponent.getName();
-      if (name != null)
-      {
-        nameText.setText(name);
-      }
-    }
-
-    setListenerEnabled(true);
-  }
-
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection);
-    init();
-    relayout();
-    
-    if (isReference)
-    {
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      List items = new ArrayList();
-      items = helper.getModelGroups();
-      items.add(0, ""); //$NON-NLS-1$
-      componentNameCombo.setItems((String [])items.toArray(new String[0]));
-    }
-  }
-
-  protected void init()
-  {
-    if (input instanceof XSDModelGroupDefinition)
-    {
-      XSDModelGroupDefinition group = (XSDModelGroupDefinition) input;
-      isReference = group.isModelGroupDefinitionReference();
-    }
-  }
-
-  protected void relayout()
-  {
-    Composite parentComposite = composite.getParent();
-    parentComposite.getParent().setRedraw(false);
-
-    if (parentComposite != null && !parentComposite.isDisposed())
-    {
-      Control[] children = parentComposite.getChildren();
-      for (int i = 0; i < children.length; i++)
-      {
-        children[i].dispose();
-      }
-    }
-
-    // Now initialize the new handler
-    createContents(parentComposite);
-    parentComposite.getParent().layout(true, true);
-
-    // Now turn painting back on
-    parentComposite.getParent().setRedraw(true);
-    refresh();
-  }
-
-  public void doHandleEvent(Event event)
-  {
-    super.doHandleEvent(event);
-    if (event.widget == nameText)
-    {
-      String newValue = nameText.getText().trim();
-      if (input instanceof XSDNamedComponent)
-      {
-        XSDNamedComponent namedComponent = (XSDNamedComponent) input;
-        if (!validateSection())
-          return;
-
-        Command command = null;
-
-        // Make sure an actual name change has taken place
-        String oldName = namedComponent.getName();
-        if (!newValue.equals(oldName))
-        {
-          command = new UpdateNameCommand(Messages._UI_ACTION_RENAME, namedComponent, newValue);
-        }
-
-        if (command != null && getCommandStack() != null)
-        {
-          getCommandStack().execute(command);
-        }
-        // doReferentialIntegrityCheck(namedComponent, newValue);
-      }
-    }
-  }
-
-  protected boolean validateSection()
-  {
-    if (nameText == null || nameText.isDisposed())
-      return true;
-
-    setErrorMessage(null);
-
-    String name = nameText.getText().trim();
-
-    // validate against NCName
-    if (name.length() < 1 || !XMLChar.isValidNCName(name))
-    {
-      setErrorMessage(Messages._UI_ERROR_INVALID_NAME);
-      return false;
-    }
-
-    return true;
-  }
-  
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == componentNameCombo)
-    {
-      String newValue = componentNameCombo.getText();
-      if (input instanceof XSDNamedComponent)
-      {
-        XSDNamedComponent namedComponent = (XSDNamedComponent)input;
-        Element element = namedComponent.getElement();
-
-        if (namedComponent instanceof XSDModelGroupDefinition)
-        {
-          element.setAttribute(XSDConstants.REF_ATTRIBUTE, newValue);
-        }
-      }
-    }
-    super.doWidgetSelected(e);
-  }
-  
-  public void dispose()
-  {
-    if (nameText != null && !nameText.isDisposed())
-      removeListeners(nameText);
-    super.dispose();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupSection.java
deleted file mode 100644
index c695f7c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupSection.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateContentModelCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.xsd.XSDCompositor;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-
-public class XSDModelGroupSection extends MultiplicitySection
-{
-  protected CCombo modelGroupCombo;
-  private String[] modelGroupComboValues = { "sequence", "choice", "all" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
-  public XSDModelGroupSection()
-  {
-    super();
-  }
-
-  public void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 2;
-    composite.setLayout(gridLayout);
-
-    // ------------------------------------------------------------------
-    // NameLabel
-    // ------------------------------------------------------------------
-    GridData data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    CLabel nameLabel = getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_KIND);
-    nameLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // NameText
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    modelGroupCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    modelGroupCombo.setLayoutData(data);
-    modelGroupCombo.addSelectionListener(this);
-    modelGroupCombo.setItems(modelGroupComboValues);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(modelGroupCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__MODELGROUP__KIND);
-
-
-    // ------------------------------------------------------------------
-    // min property
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MINOCCURS);
-    
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    minCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    minCombo.setLayoutData(data);
-    minCombo.add("0"); //$NON-NLS-1$
-    minCombo.add("1"); //$NON-NLS-1$
-    applyAllListeners(minCombo);
-    minCombo.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(minCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__MODELGROUP__MIN_OCCURENCE);
-
-    // ------------------------------------------------------------------
-    // max property
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MAXOCCURS);
-
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    maxCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    maxCombo.setLayoutData(data);
-    maxCombo.add("0"); //$NON-NLS-1$
-    maxCombo.add("1"); //$NON-NLS-1$
-    maxCombo.add("unbounded"); //$NON-NLS-1$
-    applyAllListeners(maxCombo);
-    maxCombo.addSelectionListener(this);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(maxCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__MODELGROUP__MAX_OCCURENCE);
-  }
-
-  
-  public void refresh()
-  {
-    super.refresh();
-
-    if (isReadOnly)
-    {
-      composite.setEnabled(false);
-    }
-    else
-    {
-      composite.setEnabled(true);
-    }
-
-    setListenerEnabled(false);
-
-    if (input != null)
-    {
-      if (input instanceof XSDModelGroup)
-      {
-        XSDModelGroup particle = (XSDModelGroup)input;
-        String modelType = particle.getCompositor().getName();
-        modelGroupCombo.setText(modelType);
-        
-        minCombo.setEnabled(!(particle.eContainer() instanceof XSDModelGroupDefinition));
-        maxCombo.setEnabled(!(particle.eContainer() instanceof XSDModelGroupDefinition));
-      }
-    }
-    
-    refreshMinMax();
-
-    setListenerEnabled(true);
-  }
-  
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    XSDModelGroup particle = (XSDModelGroup)input;
-    if (e.widget == modelGroupCombo)
-    {
-      XSDCompositor newValue = XSDCompositor.get(modelGroupCombo.getText());
-      UpdateContentModelCommand command = new UpdateContentModelCommand(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ACTION_CHANGE_CONTENT_MODEL, particle, newValue);
-      getCommandStack().execute(command);
-    }
-    super.doWidgetSelected(e);
-  }
-  
-  public void dispose()
-  {
-    if (minCombo != null && !minCombo.isDisposed())
-      minCombo.removeSelectionListener(this);
-    if (maxCombo != null && !maxCombo.isDisposed())
-      maxCombo.removeSelectionListener(this);
-    super.dispose();
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSchemaSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSchemaSection.java
deleted file mode 100644
index 7ae8af5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSchemaSection.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.custom.StyleRange;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Color;
-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.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceInfoManager;
-import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.actions.XSDEditNamespacesAction;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNamespaceInformationCommand;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.nsedit.TargetNamespaceChangeHandler;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDSchemaSection extends AbstractSection
-{
-  IWorkbenchPart part;
-  Text prefixText;
-  Text targetNamespaceText;
-  Button editButton;
-  StyledText errorText;
-  Color red;
-
-  /**
-   * 
-   */
-  public XSDSchemaSection()
-  {
-    super();
-  }
-
-  /**
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite,
-   *      org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory)
-   */
-  public void createContents(Composite parent)
-  {
-    composite = getWidgetFactory().createFlatFormComposite(parent);
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 2;
-    composite.setLayout(gridLayout);
-
-    GridData data = new GridData();
-
-    // Create Prefix Label
-    CLabel prefixLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_PREFIX")); //$NON-NLS-1$
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    prefixLabel.setLayoutData(data);
-
-    // Create Prefix Text
-    prefixText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    prefixText.setLayoutData(data);
-    applyAllListeners(prefixText);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(prefixText,
-      		XSDEditorCSHelpIds.GENERAL_TAB__SCHEMA__PREFIX);
-
-    // Create TargetNamespace Label
-    CLabel targetNamespaceLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_TARGET_NAME_SPACE")); //$NON-NLS-1$
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    targetNamespaceLabel.setLayoutData(data);
-
-    // Create TargetNamespace Text
-    targetNamespaceText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    targetNamespaceText.setLayoutData(data);
-    applyAllListeners(targetNamespaceText);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(targetNamespaceText,
-      		XSDEditorCSHelpIds.GENERAL_TAB__SCHEMA__TARGETNAMESPACE);
-
-    // Advanced Button
-    editButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_SECTION_ADVANCED_ATTRIBUTES") + "...", SWT.PUSH); //$NON-NLS-1$ //$NON-NLS-2$
-    data = new GridData(SWT.END, SWT.CENTER, true, false);
-    data.horizontalSpan = 2;
-    editButton.setLayoutData(data);
-    editButton.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(editButton,
-      		XSDEditorCSHelpIds.GENERAL_TAB__SCHEMA__ADVANCED);
-
-    // error text
-    errorText = new StyledText(composite, SWT.FLAT);
-    errorText.setEditable(false);
-    errorText.setEnabled(false);
-    errorText.setText(""); //$NON-NLS-1$
-    data = new GridData();
-    data.horizontalAlignment = GridData.FILL;
-    data.horizontalSpan = 2;
-    data.grabExcessHorizontalSpace = true;
-    errorText.setLayoutData(data);
-
-  }
-
-  /*
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
-   */
-  public void refresh()
-  {
-    setListenerEnabled(false);
-
-    Element element = xsdSchema.getElement();
-
-    if (element != null)
-    {
-      // Handle prefixText
-      TypesHelper helper = new TypesHelper(xsdSchema);
-      String aPrefix = helper.getPrefix(element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false);
-
-      if (aPrefix != null && aPrefix.length() > 0)
-      {
-        prefixText.setText(aPrefix);
-      }
-      else
-      {
-        prefixText.setText(""); //$NON-NLS-1$
-      }
-
-      // Handle TargetNamespaceText
-      String tns = element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE);
-      if (tns != null && tns.length() > 0)
-      {
-        targetNamespaceText.setText(tns);
-      }
-      else
-      {
-        targetNamespaceText.setText(""); //$NON-NLS-1$
-      }
-      errorText.setText(""); //$NON-NLS-1$
-    }
-    setListenerEnabled(true);
-  }
-
-  public void doHandleEvent(Event event)
-  {
-    errorText.setText(""); //$NON-NLS-1$
-    String prefixValue = prefixText.getText();
-    String tnsValue = targetNamespaceText.getText();
-
-    Element element = xsdSchema.getElement();
-    TypesHelper helper = new TypesHelper(xsdSchema);
-    String currentPrefix = helper.getPrefix(element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false);
-    String currentNamespace = xsdSchema.getTargetNamespace();
-    
-    if (tnsValue.trim().length() == 0)
-    {
-      if (prefixValue.trim().length() > 0)
-      {
-        errorText.setText(XSDEditorPlugin.getXSDString("_ERROR_TARGET_NAMESPACE_AND_PREFIX")); //$NON-NLS-1$
-        int length = errorText.getText().length();
-        red = new Color(null, 255, 0, 0);
-        StyleRange style = new StyleRange(0, length, red, targetNamespaceText.getBackground());
-        errorText.setStyleRange(style);
-        return;
-      }
-    }
-
-    if (event.widget == prefixText)
-    {
-      // If the prefix is the same, just return.   This may happen if the
-      // widget loses focus.
-      if (prefixValue.equals(currentPrefix)) 
-        return;
-      updateNamespaceInfo(prefixValue, tnsValue);
-    }
-    else if (event.widget == targetNamespaceText)
-    {
-      // If the ns is the same, just return.   This may happen if the
-      // widget loses focus.
-      if (tnsValue.equals(currentNamespace)) 
-        return;
-
-      DOMNamespaceInfoManager namespaceInfoManager = new DOMNamespaceInfoManager();
-      List namespaceInfoList = namespaceInfoManager.getNamespaceInfoList(xsdSchema.getElement());
-
-      Element xsdSchemaElement = xsdSchema.getElement();
-      DocumentImpl doc = (DocumentImpl) xsdSchemaElement.getOwnerDocument();
-
-      try
-      {
-        doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_NAMESPACE_CHANGE"));
-        
-        if (tnsValue.trim().length() == 0 ) //remove the targetNamespace attribute
-        {
-          xsdSchemaElement.removeAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE);
-          return;
-        }
-
-        // Now replace the namespace for the xmlns entry
-        for (Iterator i = namespaceInfoList.iterator(); i.hasNext();)
-        {
-          NamespaceInfo info = (NamespaceInfo) i.next();
-          if (info.uri.equals(currentNamespace))
-          {
-            info.uri = tnsValue;
-          }
-        }
-
-        xsdSchema.setIncrementalUpdate(false);
-        // set the new xmlns entries
-        namespaceInfoManager.removeNamespaceInfo(element);
-        namespaceInfoManager.addNamespaceInfo(element, namespaceInfoList, false);
-        xsdSchema.setIncrementalUpdate(true);
-
-        // set the targetNamespace attribute
-        xsdSchema.setTargetNamespace(tnsValue);
-        
-        TargetNamespaceChangeHandler targetNamespaceChangeHandler = new TargetNamespaceChangeHandler(xsdSchema, currentNamespace, tnsValue);
-        targetNamespaceChangeHandler.resolve();
-      }
-      catch (Exception e)
-      {
-
-      }
-      finally
-      {
-        try
-        {
-          xsdSchema.update();
-        }
-        finally
-        {
-          doc.getModel().endRecording(this);
-        }
-      }
-    }
-  }
-
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == editButton)
-    {
-      XSDEditNamespacesAction nsAction = new XSDEditNamespacesAction(XSDEditorPlugin.getXSDString("_UI_ACTION_EDIT_NAMESPACES"), xsdSchema.getElement(), null, xsdSchema); //$NON-NLS-1$ 
-      nsAction.run();
-      refresh();
-    }
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#shouldUseExtraSpace()
-   */
-  public boolean shouldUseExtraSpace()
-  {
-    return true;
-  }
-
-  private void updateNamespaceInfo(String newPrefix, String newTargetNamespace)
-  {
-    UpdateNamespaceInformationCommand command = new UpdateNamespaceInformationCommand("", xsdSchema, newPrefix, newTargetNamespace);
-    command.execute();
-  }
-
-  public void dispose()
-  {
-    if (prefixText != null && !prefixText.isDisposed())
-      removeListeners(prefixText);
-    if (targetNamespaceText != null && !targetNamespaceText.isDisposed())
-      removeListeners(targetNamespaceText);
-    
-    if (red != null)
-    {
-      red.dispose();
-      red = null;
-    }
-    super.dispose();
-  }
-
-  /**
-   * @deprecated
-   */
-  protected boolean validatePrefix(String prefix)
-  {
-    return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSimpleTypeSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSimpleTypeSection.java
deleted file mode 100644
index b17c3fd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSimpleTypeSection.java
+++ /dev/null
@@ -1,752 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.xerces.util.XMLChar;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.custom.CLabel;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-import org.eclipse.wst.xsd.ui.internal.actions.CreateElementAction;
-import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.dialogs.NewTypeDialog;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDComplexTypeBaseTypeEditManager;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDTypeReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.editor.search.XSDSearchListDialogDelegate;
-import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDVariety;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import com.ibm.icu.util.StringTokenizer;
-
-public class XSDSimpleTypeSection extends RefactoringSection
-{
-  protected Text nameText;
-  CCombo varietyCombo;
-  CCombo typesCombo;
-  CLabel typesLabel;
-
-  XSDSimpleTypeDefinition memberTypeDefinition, itemTypeDefinition, baseTypeDefinition;
-
-  public XSDSimpleTypeSection()
-  {
-    super();
-  }
-
-  protected void createContents(Composite parent)
-  {
-    TabbedPropertySheetWidgetFactory factory = getWidgetFactory();
-    composite = factory.createFlatFormComposite(parent);
-
-    GridData data = new GridData();
-
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.marginTop = 0;
-    gridLayout.marginBottom = 0;
-    gridLayout.numColumns = 3;
-    composite.setLayout(gridLayout);
-
-    // ------------------------------------------------------------------
-    // NameLabel
-    // ------------------------------------------------------------------
-
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    CLabel nameLabel = factory.createCLabel(composite, Messages._UI_LABEL_NAME);
-    nameLabel.setLayoutData(data);
-
-    // ------------------------------------------------------------------
-    // NameText
-    // ------------------------------------------------------------------
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
-    nameText.setLayoutData(data);
-    applyAllListeners(nameText);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
-    		XSDEditorCSHelpIds.GENERAL_TAB__SIMPLE_TYPE__NAME);
-    
-
-    // ------------------------------------------------------------------
-    // Refactor/rename hyperlink 
-    // ------------------------------------------------------------------
-    createRenameHyperlink(composite);
-
-    // Variety Label
-    CLabel label = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_VARIETY")); //$NON-NLS-1$
-
-    // Variety Combo
-    data = new GridData();
-    data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
-    data.grabExcessHorizontalSpace = false;
-    label.setLayoutData(data);
-
-    varietyCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT);
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-
-    List list = XSDVariety.VALUES;
-    Iterator iter = list.iterator();
-    while (iter.hasNext())
-    {
-      varietyCombo.add(((XSDVariety) iter.next()).getName());
-    }
-    varietyCombo.addSelectionListener(this);
-    varietyCombo.setLayoutData(data);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(varietyCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__SIMPLE_TYPE__VARIETY);
-
-
-    // ------------------------------------------------------------------
-    // DummyLabel
-    // ------------------------------------------------------------------
-    getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
-    // ------------------------------------------------------------------
-    // Types Label
-    // ------------------------------------------------------------------
-    typesLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$
-
-    // ------------------------------------------------------------------
-    // Types Combo
-    // ------------------------------------------------------------------
-    typesCombo = getWidgetFactory().createCCombo(composite);
-    typesCombo.setEditable(false);
-    typesCombo.setLayoutData(data);
-    typesCombo.addSelectionListener(this);
-
-    
-    data = new GridData();
-    data.grabExcessHorizontalSpace = true;
-    data.horizontalAlignment = GridData.FILL;
-    typesCombo.setLayoutData(data);
-    
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(typesCombo,
-    		XSDEditorCSHelpIds.GENERAL_TAB__SIMPLE_TYPE__BASE_TYPE);
-
-  }
-  
-  public void setInput(IWorkbenchPart part, ISelection selection)
-  {
-    super.setInput(part, selection);
-    relayout();
-  }
-
-  protected void relayout()
-  {
-    Composite parentComposite = composite.getParent();
-    parentComposite.getParent().setRedraw(false);
-
-    if (parentComposite != null && !parentComposite.isDisposed())
-    {
-      Control[] children = parentComposite.getChildren();
-      for (int i = 0; i < children.length; i++)
-      {
-        children[i].dispose();
-      }
-    }
-
-    // Now initialize the new handler
-    createContents(parentComposite);
-    parentComposite.getParent().layout(true, true);
-
-    // Now turn painting back on
-    parentComposite.getParent().setRedraw(true);
-    refresh();
-  }
-
-  public void refresh()
-  {
-    super.refresh();
-
-    setListenerEnabled(false);
-
-    nameText.setText(""); //$NON-NLS-1$
-    varietyCombo.setText(""); //$NON-NLS-1$
-    typesCombo.setText(""); //$NON-NLS-1$
-    fillTypesCombo();
-    typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$
-
-    if (input instanceof XSDSimpleTypeDefinition)
-    {
-      XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input;
-      String simpleTypeName = st.getName();
-      if (simpleTypeName != null)
-      {
-        nameText.setText(simpleTypeName);
-      }
-      else
-      {
-        nameText.setText("**anonymous**"); //$NON-NLS-1$
-      }
-      
-      String variety = st.getVariety().getName();
-      int intVariety = st.getVariety().getValue();
-
-      if (variety != null)
-      {
-        varietyCombo.setText(variety);
-        if (intVariety == XSDVariety.ATOMIC)
-        {
-          baseTypeDefinition = st.getBaseTypeDefinition();
-          String name = ""; //$NON-NLS-1$
-          if (baseTypeDefinition != null)
-          {
-            name = baseTypeDefinition.getName();
-          }
-          typesCombo.setText(name);
-          typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$
-        }
-        else if (intVariety == XSDVariety.LIST)
-        {
-          itemTypeDefinition = st.getItemTypeDefinition();
-          String name = ""; //$NON-NLS-1$
-          if (itemTypeDefinition != null)
-          {
-            name = itemTypeDefinition.getName();
-          }
-          typesCombo.setText(name);
-          typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_ITEM_TYPE")); //$NON-NLS-1$
-        }
-        else if (intVariety == XSDVariety.UNION)
-        {
-          List memberTypesList = st.getMemberTypeDefinitions();
-          StringBuffer sb = new StringBuffer();
-          for (Iterator i = memberTypesList.iterator(); i.hasNext();)
-          {
-            XSDSimpleTypeDefinition typeObject = (XSDSimpleTypeDefinition) i.next();
-            String name = typeObject.getQName();
-            if (name != null)
-            {
-              sb.append(name);
-              if (i.hasNext())
-              {
-                sb.append(" "); //$NON-NLS-1$
-              }
-            }
-          }
-          String memberTypes = sb.toString();
-          typesCombo.setText(memberTypes);
-          typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$
-        }
-      }
-    }
-    setListenerEnabled(true);
-
-  }
-
-  public void doWidgetSelected(SelectionEvent e)
-  {
-    if (e.widget == typesCombo)
-    {
-      IEditorPart editor = getActiveEditor();
-      if (editor == null) return;
-      ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDComplexTypeBaseTypeEditManager.class);    
-
-      String selection = typesCombo.getText();
-      ComponentSpecification newValue;
-      IComponentDialog dialog= null;
-      if ( selection.equals(org.eclipse.wst.xsd.ui.internal.editor.Messages._UI_ACTION_BROWSE))
-      {
-        dialog = manager.getBrowseDialog();
-        ((XSDSearchListDialogDelegate) dialog).showComplexTypes(false);
-      }
-      else if ( selection.equals(org.eclipse.wst.xsd.ui.internal.editor.Messages._UI_ACTION_NEW))
-      {
-        dialog = manager.getNewDialog();
-        ((NewTypeDialog) dialog).allowComplexType(false);
-      }
-
-      if (dialog != null)
-      {
-        if (dialog.createAndOpen() == Window.OK)
-        {
-          newValue = dialog.getSelectedComponent();
-          manager.modifyComponentReference(input, newValue);
-        }
-      }
-      else //use the value from selected quickPick item
-      {
-        newValue = getComponentSpecFromQuickPickForValue(selection, manager);
-        if (newValue != null)
-          manager.modifyComponentReference(input, newValue);
-      }
-    }
-    else if (e.widget == varietyCombo)
-    {
-      if (input != null)
-      {
-        if (input instanceof XSDSimpleTypeDefinition)
-        {
-          XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input;
-          Element parent = st.getElement();
-
-          String variety = varietyCombo.getText();
-          if (variety.equals(XSDVariety.ATOMIC_LITERAL.getName()))
-          {
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$
-            st.setVariety(XSDVariety.ATOMIC_LITERAL);
-            addCreateElementActionIfNotExist(XSDConstants.RESTRICTION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_RESTRICTION"), parent, null); //$NON-NLS-1$
-          }
-          else if (variety.equals(XSDVariety.UNION_LITERAL.getName()))
-          {
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$
-            st.setVariety(XSDVariety.UNION_LITERAL);
-            addCreateElementActionIfNotExist(XSDConstants.UNION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_UNION"), parent, null); //$NON-NLS-1$
-          }
-          else if (variety.equals(XSDVariety.LIST_LITERAL.getName()))
-          {
-            typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_ITEM_TYPE")); //$NON-NLS-1$
-            st.setVariety(XSDVariety.LIST_LITERAL);
-            addCreateElementActionIfNotExist(XSDConstants.LIST_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LIST"), parent, null); //$NON-NLS-1$
-          }
-        }
-      }
-    }
-//    else if (e.widget == button)
-//    {
-//      Shell shell = Display.getCurrent().getActiveShell();
-//      Element element = ((XSDConcreteComponent) input).getElement();
-//      Dialog dialog = null;
-//      String property = "";
-//      Element secondaryElement = null;
-
-//      IFile currentIFile = ((IFileEditorInput) getActiveEditor().getEditorInput()).getFile();
-      
-      // issue (cs) need to move to common.ui's selection dialog
-/*
-      XSDComponentSelectionProvider provider = new XSDComponentSelectionProvider(currentIFile, xsdSchema);
-      dialog = new XSDComponentSelectionDialog(shell, XSDEditorPlugin.getXSDString("_UI_LABEL_SET_TYPE"), provider);
-      provider.setDialog((XSDComponentSelectionDialog) dialog);
-*/
-//      if (input instanceof XSDSimpleTypeDefinition)
-//      {
-//        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input;
-//        Element simpleTypeElement = st.getElement();
-//        if (st.getVariety() == XSDVariety.LIST_LITERAL)
-//        {
-//          Element listElement = (Element) itemTypeDefinition.getElement();
-//          // dialog = new TypesDialog(shell, listElement,
-//          // XSDConstants.ITEMTYPE_ATTRIBUTE, xsdSchema);
-//          // dialog.showComplexTypes = false;
-//          provider.showComplexTypes(false);
-//
-//          secondaryElement = listElement;
-//          property = XSDConstants.ITEMTYPE_ATTRIBUTE;
-//        }
-//        else if (st.getVariety() == XSDVariety.ATOMIC_LITERAL)
-//        {
-//          Element derivedByElement = (Element) baseTypeDefinition.getElement();
-//          if (derivedByElement != null)
-//          {
-//            // dialog = new TypesDialog(shell, derivedByElement,
-//            // XSDConstants.BASE_ATTRIBUTE, xsdSchema);
-//            // dialog.showComplexTypes = false;
-//            provider.showComplexTypes(false);
-//
-//            secondaryElement = derivedByElement;
-//            property = XSDConstants.BASE_ATTRIBUTE;
-//          }
-//          else
-//          {
-//            return;
-//          }
-//        }
-//        if (st.getVariety() == XSDVariety.UNION_LITERAL)
-//        {
-//          SimpleContentUnionMemberTypesDialog unionDialog = new SimpleContentUnionMemberTypesDialog(shell, st);
-//          unionDialog.setBlockOnOpen(true);
-//          unionDialog.create();
-//
-//          int result = unionDialog.open();
-//          if (result == Window.OK)
-//          {
-//            String newValue = unionDialog.getResult();
-//            // beginRecording(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES_CHANGE"),
-//            // element); //$NON-NLS-1$
-//            Element unionElement = memberTypeDefinition.getElement();
-//            unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, newValue);
-//
-//            if (newValue.length() > 0)
-//            {
-//              unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, newValue);
-//            }
-//            else
-//            {
-//              unionElement.removeAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-//            }
-//            // endRecording(unionElement);
-//            refresh();
-//          }
-//          return;
-//        }
-//        else
-//        {
-//          property = "type";
-//        }
-//      }
-//      else
-//      {
-//        property = "type";
-//      }
-      // beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"),
-      // element); //$NON-NLS-1$
-//      dialog.setBlockOnOpen(true);
-//      dialog.create();
-//      int result = dialog.open();
-//
-//      if (result == Window.OK)
-//      {
-//        if (secondaryElement == null)
-//        {
-//          secondaryElement = element;
-//        }
-//        XSDSetTypeHelper helper = new XSDSetTypeHelper(currentIFile, xsdSchema);
-//        helper.setType(secondaryElement, property, ((XSDComponentSelectionDialog) dialog).getSelection());
-
-//        XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input;
-//        st.setElement(element);
-//        updateSimpleTypeFacets();*/
-//      }
-      // endRecording(element);
-//    }  
-//    refresh();
-  }
-
-  public boolean shouldUseExtraSpace()
-  {
-    return false;
-  }
-
-  // issue (cs) this method seems to be utilizing 'old' classes, can we reimplement?
-  // (e.g. ChangeElementAction, XSDDOMHelper, etc)
-  protected boolean addCreateElementActionIfNotExist(String elementTag, String label, Element parent, Node relativeNode)
-  {
-    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input;
-    List attributes = new ArrayList();
-    String reuseType = null;
-
-    // beginRecording(XSDEditorPlugin.getXSDString("_UI_LABEL_VARIETY_CHANGE"),
-    // parent); //$NON-NLS-1$
-    if (elementTag.equals(XSDConstants.RESTRICTION_ELEMENT_TAG))
-    {
-      Element listNode = getFirstChildNodeIfExists(parent, XSDConstants.LIST_ELEMENT_TAG, false);
-      if (listNode != null)
-      {
-        reuseType = listNode.getAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE);
-        XSDDOMHelper.removeNodeAndWhitespace(listNode);
-      }
-
-      Element unionNode = getFirstChildNodeIfExists(parent, XSDConstants.UNION_ELEMENT_TAG, false);
-      if (unionNode != null)
-      {
-        String memberAttr = unionNode.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-        if (memberAttr != null)
-        {
-          StringTokenizer stringTokenizer = new StringTokenizer(memberAttr);
-          reuseType = stringTokenizer.nextToken();
-        }
-        XSDDOMHelper.removeNodeAndWhitespace(unionNode);
-      }
-
-      if (reuseType == null)
-      {
-        reuseType = getBuiltInStringQName();
-      }
-      attributes.add(new DOMAttribute(XSDConstants.BASE_ATTRIBUTE, reuseType));
-      st.setItemTypeDefinition(null);
-    }
-    else if (elementTag.equals(XSDConstants.LIST_ELEMENT_TAG))
-    {
-      Element restrictionNode = getFirstChildNodeIfExists(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false);
-      if (restrictionNode != null)
-      {
-        reuseType = restrictionNode.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-        XSDDOMHelper.removeNodeAndWhitespace(restrictionNode);
-      }
-      Element unionNode = getFirstChildNodeIfExists(parent, XSDConstants.UNION_ELEMENT_TAG, false);
-      if (unionNode != null)
-      {
-        String memberAttr = unionNode.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE);
-        if (memberAttr != null)
-        {
-          StringTokenizer stringTokenizer = new StringTokenizer(memberAttr);
-          reuseType = stringTokenizer.nextToken();
-        }
-        XSDDOMHelper.removeNodeAndWhitespace(unionNode);
-      }
-      attributes.add(new DOMAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, reuseType));
-    }
-    else if (elementTag.equals(XSDConstants.UNION_ELEMENT_TAG))
-    {
-      Element listNode = getFirstChildNodeIfExists(parent, XSDConstants.LIST_ELEMENT_TAG, false);
-      if (listNode != null)
-      {
-        reuseType = listNode.getAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE);
-        XSDDOMHelper.removeNodeAndWhitespace(listNode);
-      }
-      Element restrictionNode = getFirstChildNodeIfExists(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false);
-      if (restrictionNode != null)
-      {
-        reuseType = restrictionNode.getAttribute(XSDConstants.BASE_ATTRIBUTE);
-        XSDDOMHelper.removeNodeAndWhitespace(restrictionNode);
-      }
-      attributes.add(new DOMAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, reuseType));
-      st.setItemTypeDefinition(null);
-    }
-
-    if (getFirstChildNodeIfExists(parent, elementTag, false) == null)
-    {
-      Action action = addCreateElementAction(elementTag, label, attributes, parent, relativeNode);
-      action.run();
-    }
-
-    st.setElement(parent);
-    st.updateElement();
-    // endRecording(parent);
-    return true;
-  }
-
-  protected Action addCreateElementAction(String elementTag, String label, List attributes, Element parent, Node relativeNode)
-  {
-    CreateElementAction action = new CreateElementAction(label);
-    action.setElementTag(elementTag);
-    action.setAttributes(attributes);
-    action.setParentNode(parent);
-    action.setRelativeNode(relativeNode);
-    return action;
-  }
-
-  protected Element getFirstChildNodeIfExists(Node parent, String elementTag, boolean isRef)
-  {
-    NodeList children = parent.getChildNodes();
-    Element targetNode = null;
-    for (int i = 0; i < children.getLength(); i++)
-    {
-      Node child = children.item(i);
-      if (child != null && child instanceof Element)
-      {
-        if (XSDDOMHelper.inputEquals(child, elementTag, isRef))
-        {
-          targetNode = (Element) child;
-          break;
-        }
-      }
-    }
-    return targetNode;
-  }
-
-  protected String getBuiltInStringQName()
-  {
-    String stringName = "string"; //$NON-NLS-1$
-
-    if (xsdSchema != null)
-    {
-      String schemaForSchemaPrefix = xsdSchema.getSchemaForSchemaQNamePrefix();
-      if (schemaForSchemaPrefix != null && schemaForSchemaPrefix.length() > 0)
-      {
-        String prefix = xsdSchema.getSchemaForSchemaQNamePrefix();
-        if (prefix != null && prefix.length() > 0)
-        {
-          stringName = prefix + ":" + stringName; //$NON-NLS-1$
-        }
-      }
-    }
-    return stringName;
-  }
-
-//  private void updateSimpleTypeFacets()
-//  {
-//    XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input;
-//    Element simpleTypeElement = st.getElement();
-//    Element derivedByElement = baseTypeDefinition.getElement();
-//    if (derivedByElement != null)
-//    {
-//      List nodesToRemove = new ArrayList();
-//      NodeList childList = derivedByElement.getChildNodes();
-//      int length = childList.getLength();
-//      for (int i = 0; i < length; i++)
-//      {
-//        Node child = childList.item(i);
-//        if (child instanceof Element)
-//        {
-//          Element elementChild = (Element) child;
-//          if (!(elementChild.getLocalName().equals("pattern") || elementChild.getLocalName().equals("enumeration") || //$NON-NLS-1$ //$NON-NLS-2$
-//              XSDDOMHelper.inputEquals(elementChild, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ANNOTATION_ELEMENT_TAG, false)
-//              || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true)
-//              || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true) || XSDDOMHelper.inputEquals(elementChild,
-//              XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false)))
-//          {
-//            nodesToRemove.add(child);
-//          }
-//        }
-//      }
-//      Iterator iter = nodesToRemove.iterator();
-//      while (iter.hasNext())
-//      {
-//        Element facetToRemove = (Element) iter.next();
-//        String facetName = facetToRemove.getLocalName();
-//        Iterator it = st.getValidFacets().iterator();
-//        boolean doRemove = true;
-//        while (it.hasNext())
-//        {
-//          String aValidFacet = (String) it.next();
-//          if (aValidFacet.equals(facetName))
-//          {
-//            doRemove = false;
-//            break;
-//          }
-//        }
-//        if (doRemove)
-//        {
-//          XSDDOMHelper.removeNodeAndWhitespace(facetToRemove);
-//        }
-//      }
-//    }
-//  }
-
-  // TODO: Common this up with element declaration
-  public void doHandleEvent(Event event) 
-  {
-    if (event.widget == nameText)
-    {
-      String newValue = nameText.getText().trim();
-      if (input instanceof XSDNamedComponent)
-      {
-        XSDNamedComponent namedComponent = (XSDNamedComponent)input;
-        if (!validateSection())
-          return;
-
-        Command command = null;
-
-        // Make sure an actual name change has taken place
-        String oldName = namedComponent.getName();
-        if (!newValue.equals(oldName))
-        {
-          command = new UpdateNameCommand(Messages._UI_ACTION_RENAME, namedComponent, newValue);
-        }
-
-        if (command != null && getCommandStack() != null)
-        {
-          getCommandStack().execute(command);
-        }
-
-      }
-    }
-  }
-  
-  protected boolean validateSection()
-  {
-    if (nameText == null || nameText.isDisposed())
-      return true;
-
-    setErrorMessage(null);
-
-    String name = nameText.getText().trim();
-
-    // validate against NCName
-    if (name.length() < 1 || !XMLChar.isValidNCName(name))
-    {
-      setErrorMessage(Messages._UI_ERROR_INVALID_NAME);
-      return false;
-    }
-
-    return true;
-  }
-  
-  
-  private void fillTypesCombo()
-  {
-    typesCombo.removeAll();
-    
-    IEditorPart editor = getActiveEditor();
-    ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);    
-    ComponentSpecification[] items = manager.getQuickPicks();
-    
-    typesCombo.add(org.eclipse.wst.xsd.ui.internal.adt.editor.Messages._UI_ACTION_BROWSE);
-    typesCombo.add(org.eclipse.wst.xsd.ui.internal.editor.Messages._UI_ACTION_NEW);
-    
-    for (int i = 0; i < items.length; i++)
-    {
-      typesCombo.add(items[i].getName());
-    }
-
-    // Add the current Type of this attribute if needed
-    XSDSimpleTypeDefinition simpleType = (XSDSimpleTypeDefinition) input;
-    XSDTypeDefinition baseType = simpleType.getBaseType();
-    if (baseType != null && baseType.getQName() != null)
-    {
-      String currentTypeName = baseType.getQName(xsdSchema); //no prefix
-      ComponentSpecification ret = getComponentSpecFromQuickPickForValue(currentTypeName,manager);
-      if (ret == null && currentTypeName != null) //not in quickPick
-      {
-        typesCombo.add(currentTypeName);
-      }
-    }
-  }
-
-  // TODO: common this up with XSDElementDeclarationSection
-  private ComponentSpecification getComponentSpecFromQuickPickForValue(String value, ComponentReferenceEditManager editManager)
-  {
-    if (editManager != null)
-    {  
-      ComponentSpecification[] quickPicks = editManager.getQuickPicks();
-      if (quickPicks != null)
-      {
-        for (int i=0; i < quickPicks.length; i++)
-        {
-          ComponentSpecification componentSpecification = quickPicks[i];
-          if (value != null && value.equals(componentSpecification.getName()))
-          {
-            return componentSpecification;
-          }                
-        }  
-      }
-    }
-    return null;
-  }
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDTableTreeViewer.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDTableTreeViewer.java
deleted file mode 100644
index 0b04e7b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDTableTreeViewer.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.properties.sections;
-
-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.viewers.Viewer;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeContentProvider;
-import org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeViewer;
-import org.w3c.dom.Element;
-
-public class XSDTableTreeViewer extends XMLTableTreeViewer
-{
-
-  String filter = ""; //$NON-NLS-1$
-
-  class XSDActionMenuListener implements IMenuListener
-  {
-    public void menuAboutToShow(IMenuManager menuManager)
-    {
-      // used to disable NodeSelection listening while running NodeAction
-      // XSDActionManager nodeActionManager = new XSDActionManager(fModel,
-      // XSDTableTreeViewer.this);
-      // nodeActionManager.setCommandStack(commandStack);
-      // nodeActionManager.fillContextMenu(menuManager, getSelection());
-
-      // used to disable NodeSelection listening while running NodeAction
-      // XMLNodeActionManager nodeActionManager = new
-      // XMLNodeActionManager(((IDOMDocument) getInput()).getModel(),
-      // XMLTableTreeViewer.this) {
-      if (getInput() != null)
-      {
-        XSDActionManager nodeActionManager = new XSDActionManager(((IDOMDocument) (((Element) getInput()).getOwnerDocument())).getModel(), XSDTableTreeViewer.this);
-        // nodeActionManager.setCommandStack(commandStack);
-        nodeActionManager.fillContextMenu(menuManager, getSelection());
-      }
-
-    }
-  }
-
-  public XSDTableTreeViewer(Composite parent)
-  {
-    super(parent);
-    // treeExtension.setCellModifier(null);
-    getTree().setLinesVisible(true);
-
-    // treeExtension = new XMLTreeExtension(getTree());
-
-    // Reassign the content provider
-    XMLTableTreeContentProvider provider = new MyContentProvider();
-    // provider.addViewer(this);
-
-    setContentProvider(provider);
-    setLabelProvider(provider);
-
-    // setViewerSelectionManager(new ViewerSelectionManagerImpl(null));
-  }
-
-  protected Object getRoot()
-  {
-    return super.getRoot();
-  }
-
-  public void setFilter(String filter)
-  {
-    this.filter = filter;
-  }
-
-  protected void createContextMenu()
-  {
-    // TODO Verify if this is okay to override the MenuManager
-    MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$
-    contextMenu.add(new Separator("additions")); //$NON-NLS-1$
-    contextMenu.setRemoveAllWhenShown(true);
-
-    // This is the line we have to modify
-    contextMenu.addMenuListener(new XSDActionMenuListener());
-    Menu menu = contextMenu.createContextMenu(getControl());
-    getControl().setMenu(menu);
-  }
-
-  boolean added = false;
-
-  class MyContentProvider extends XMLTableTreeContentProvider
-  {
-
-    // public Object[] getChildren(Object element) {
-    //			
-    // if (!added) {
-    // if (element instanceof Element) {
-    // added = true;
-    // Element elem = (Element)element;
-    // if (elem instanceof INodeNotifier) {
-    // viewerNotifyingAdapterFactory.adapt((INodeNotifier) elem);
-    // }
-    // // return new Object[] {elem};
-    // }
-    // }
-    // return super.getChildren(element);
-    // }
-
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-      added = false;
-      if (oldInput instanceof Element)
-        oldInput = ((Element) oldInput).getOwnerDocument();
-
-      if (newInput instanceof Element)
-        newInput = ((Element) newInput).getOwnerDocument();
-      super.inputChanged(viewer, oldInput, newInput);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddExtensionsComponentDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddExtensionsComponentDialog.java
deleted file mode 100644
index 392d760..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddExtensionsComponentDialog.java
+++ /dev/null
@@ -1,784 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 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.common.properties.sections.appinfo;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.StringTokenizer;
-import org.apache.xerces.dom.DocumentImpl;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.MessageBox;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Table;
-import org.eclipse.swt.widgets.TableItem;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.SelectionDialog;
-import org.eclipse.wst.xsd.contentmodel.internal.XSDImpl;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDSchema;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-public class AddExtensionsComponentDialog extends SelectionDialog implements ISelectionChangedListener, SelectionListener
-{
-  protected static final Image DEFAULT_ELEMENT_ICON = XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"); //$NON-NLS-1$
-  protected static final Image DEFAULT_ATTRIBUTE_ICON = XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif"); //$NON-NLS-1$
-
-  /** A temporary Document in which we create temporary DOM element for each element in the
-   * Element view. (required by LabelProvider)  */ 
-  protected static Document tempDoc = new DocumentImpl();
-  
-  Button addButton, removeButton, editButton;
-
-  public AddExtensionsComponentDialog(Shell parent, ExtensionsSchemasRegistry schemaRegistry)
-  {
-    super(parent);
-    setTitle(Messages._UI_ACTION_ADD_EXTENSION_COMPONENTS);
-    setShellStyle(SWT.APPLICATION_MODAL | SWT.RESIZE | SWT.CLOSE);    
-  }
-
-  private List fInput;
-
-  private TableViewer categoryTableViewer, elementTableViewer;
-  private ArrayList existingNames;
-
-  private ViewerFilter elementTableViewerFilter;
-  private SpecificationForExtensionsSchema currentExtCategory;
-  private HashMap specToComponentsList = new HashMap();
-  private IPreferenceStore prefStore;
-  
-  public void setInput(List input)
-  {
-    this.fInput = input;
-  }
-  
-  public SpecificationForExtensionsSchema getSelectedCategory(){
-	return currentExtCategory;
-  }
-  
-  public void setInitialCategorySelection(SpecificationForExtensionsSchema spec){
-	  currentExtCategory = spec;
-  }
-  
-  protected IStructuredContentProvider getCategoryContentProvider()
-  {
-    return new CategoryContentProvider();
-  }
-
-  protected Control createDialogArea(Composite container)
-  {
-    Composite parent = (Composite) super.createDialogArea(container);
-
-    Composite categoryComposite = new Composite(parent, SWT.NONE);
-    GridLayout gl = new GridLayout();
-    gl.numColumns = 2;
-    gl.marginHeight = 0;
-    gl.marginWidth = 0;
-    GridData data = new GridData(GridData.FILL_BOTH);
-    categoryComposite.setLayoutData(data);
-    categoryComposite.setLayout(gl);
-
-    Label label = new Label(categoryComposite, SWT.LEFT);
-    label.setText(Messages._UI_LABEL_EXTENSION_CATEGORIES);
-
-    new Label(categoryComposite, SWT.NONE);
-
-    categoryTableViewer = new TableViewer(categoryComposite, getTableStyle());
-    categoryTableViewer.setContentProvider(getCategoryContentProvider());
-    categoryTableViewer.setLabelProvider(new CategoryLabelProvider());
-    categoryTableViewer.setInput(fInput);
-    categoryTableViewer.addSelectionChangedListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(categoryTableViewer.getControl(), XSDEditorCSHelpIds.ADD_EXTENSIONS_COMPONENTS__EXTENSION_CATEGORIES);
-
-    GridData gd = new GridData(GridData.FILL_BOTH);
-    Table table = categoryTableViewer.getTable();
-    table.setLayoutData(gd);
-    table.setFont(container.getFont());
-
-    Composite buttonComposite = new Composite(categoryComposite, SWT.NONE);
-    gl = new GridLayout();
-    gl.makeColumnsEqualWidth = true;
-    gl.numColumns = 1;
-    data = new GridData();
-    data.horizontalAlignment = SWT.FILL;
-    buttonComposite.setLayoutData(data);
-    buttonComposite.setLayout(gl);
-
-    addButton = new Button(buttonComposite, SWT.PUSH);
-    addButton.setText(Messages._UI_LABEL_ADD_WITH_DOTS);
-    addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-    addButton.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(addButton,
-    		XSDEditorCSHelpIds.ADD_EXTENSIONS_COMPONENTS__ADD);    
-
-    removeButton = new Button(buttonComposite, SWT.PUSH);
-    removeButton.setText(Messages._UI_LABEL_DELETE);
-    removeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-    removeButton.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(removeButton,
-    		XSDEditorCSHelpIds.ADD_EXTENSIONS_COMPONENTS__DELETE);    
-
-    
-    editButton = new Button(buttonComposite, SWT.PUSH);
-    editButton.setText(Messages._UI_LABEL_EDIT);
-    editButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-    editButton.addSelectionListener(this);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(editButton,
-    		XSDEditorCSHelpIds.ADD_EXTENSIONS_COMPONENTS__EDIT);    
-    
-    
-    List initialSelection = getInitialElementSelections();
-    if (initialSelection != null)
-      categoryTableViewer.setSelection(new StructuredSelection(initialSelection));
-
-    Label elementLabel = new Label(categoryComposite, SWT.LEFT);
-    elementLabel.setText(Messages._UI_LABEL_AVAILABLE_COMPONENTS_TO_ADD);
-
-    new Label(categoryComposite, SWT.NONE);
-
-    elementTableViewer = new TableViewer(categoryComposite, getTableStyle());
-    elementTableViewer.setContentProvider(new ElementContentProvider());
-    elementTableViewer.setLabelProvider(new ElementLabelProvider());
-    elementTableViewer.setInput(null);
-    elementTableViewer.addDoubleClickListener(new IDoubleClickListener()
-    {
-      public void doubleClick(DoubleClickEvent event)
-      {
-        okPressed();
-      }
-    });
-    if ( elementTableViewerFilter != null){
-      elementTableViewer.addFilter(elementTableViewerFilter);
-    }
-    
-    gd = new GridData(GridData.FILL_BOTH);
-    table = elementTableViewer.getTable();
-    table.setLayoutData(gd);
-    table.setFont(container.getFont());
-
-    elementTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
-		public void selectionChanged(SelectionChangedEvent event) {
-	          getButton(IDialogConstants.OK_ID).setEnabled(true);			
-	    }        	  
-      });
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(elementTableViewer.getControl(), XSDEditorCSHelpIds.ADD_EXTENSIONS_COMPONENTS__AVAILABLE_COMPONENTS_TO_ADD);
-    
-    return parent;
-  }
-
-  public void create()
-  {
-    super.create();
-    if (categoryTableViewer.getTable().getItemCount() > 0)
-    {
-      categoryTableViewer.getTable().select(0);
-      
-      StructuredSelection structuredSelection;
-      if (currentExtCategory != null){
-    	  structuredSelection = new StructuredSelection(currentExtCategory);
-      }
-      else{
-    	  structuredSelection = 
-    		  new StructuredSelection(categoryTableViewer.getElementAt(0));
-      }
-      
-	  categoryTableViewer.setSelection(structuredSelection);
-    }
-    
-    // Setup the list of category names that already exist
-    // and contructs the XSDSchema for each category
-	existingNames = new ArrayList();
-	TableItem[] categories = categoryTableViewer.getTable().getItems();
-	for (int i = 0; i < categories.length; i++ ){
-		existingNames.add(categories[i].getText());
-
-		SpecificationForExtensionsSchema spec = 
-			(SpecificationForExtensionsSchema) categories[i].getData();
-		XSDSchema schema = getASISchemaModel(spec);
-		
-		if (schema == null)
-		{
-			continue;
-		}
-
-		List components = buildInput(schema);
-		specToComponentsList.put(spec, components);
-
-		// mark category as gray/empty if applicable
-		Object[] remains = components.toArray();
-		if ( elementTableViewerFilter != null)
-			remains = elementTableViewerFilter.filter(elementTableViewer, 
-					elementTableViewer.getTable(), remains);
-		if ( remains.length == 0)
-		{
-		  categories[i].setForeground(
-			getShell().getDisplay().getSystemColor(SWT.COLOR_GRAY));
-		}
-	}
-	
-	getButton(IDialogConstants.OK_ID).setEnabled(false);
-  }
-  
-  public void addElementsTableFilter(ViewerFilter filter){
-	elementTableViewerFilter = filter;
-  }
-  
-  public void setPrefStore(IPreferenceStore prefStore)
-  {
-    this.prefStore = prefStore;
-  }
-
-  protected Point getInitialSize()
-  {
-    return getShell().computeSize(400, 300);
-  }
-
-  /**
-   * Return the style flags for the table viewer.
-   * 
-   * @return int
-   */
-  protected int getTableStyle()
-  {
-    return SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER;
-  }
-
-  /*
-   * Overrides method from Dialog
-   */
-  protected void okPressed()
-  {
-    // Build a list of selected children.
-    getShell().setCursor(new Cursor(getShell().getDisplay(), SWT.CURSOR_WAIT));
-    IStructuredSelection elementSelection = (IStructuredSelection) elementTableViewer.getSelection();
-    IStructuredSelection categorySelection = (IStructuredSelection) categoryTableViewer.getSelection();
-    List result = new ArrayList();
-    result.add(elementSelection.getFirstElement());
-    result.add(categorySelection.getFirstElement());
-    if (elementSelection.getFirstElement() != null)
-    {
-      setResult(result);
-    }
-    else
-    {
-      setResult(null);
-    }
-    super.okPressed();
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent)
-   */
-  public void widgetSelected(SelectionEvent e)
-  {
-    if (e.widget == addButton)
-    {
-    	AddNewCategoryDialog addNewCategoryDialog
-    		= new AddNewCategoryDialog(getShell());
-    	
-    	addNewCategoryDialog.setUnavailableCategoryNames(existingNames);
-    	
-    	if ( addNewCategoryDialog.open() == Window.OK ){    		
-    		SpecificationForExtensionsSchema schemaSpec = 
-    			new SpecificationForExtensionsSchema();
-    		schemaSpec.setDisplayName(addNewCategoryDialog.getNewCategoryName() );
-    		schemaSpec.setLocation(addNewCategoryDialog.getCategoryLocation() );
-    		schemaSpec.setSourceHint(addNewCategoryDialog.getSource());
-    		schemaSpec.setFromCatalog(addNewCategoryDialog.getFromCatalog() );
-
-    		fInput.add(schemaSpec);
-    		existingNames.add(schemaSpec.getDisplayName());
-
-    		// refresh without updating labels of existing TableItems    		
-    		categoryTableViewer.refresh(false);
-
-    		categoryTableViewer.setSelection(new StructuredSelection(schemaSpec));
-    		getButton(IDialogConstants.OK_ID).setEnabled(false);
-    		
-    		storeSpecInPref(schemaSpec);  // must store after selection changed is called ie. 2 lines above (trung)
-    	}
-    }
-    else if (e.widget == removeButton)
-    {
-    	TableItem[] selections = categoryTableViewer.getTable().getSelection();
-    	for (int i =0; i < selections.length; i++){
-    		SpecificationForExtensionsSchema spec = 
-    			(SpecificationForExtensionsSchema) selections[i].getData();
-
-			fInput.remove(spec );
-    		existingNames.remove(spec.getDisplayName());
-    		specToComponentsList.remove(spec);
-    		
-    		removeFromPref(spec);
-    	}
-    	categoryTableViewer.refresh(false);
-
-    	elementTableViewer.setInput(null);
-    	elementTableViewer.refresh();
-
-        // TODO auto select either the prev category, the next category or the first category in the Table
-    	getButton(IDialogConstants.OK_ID).setEnabled(false);
-    }
-    else if (e.widget == editButton)
-    {
-        // use this dialog not for adding but for editing purpose.
-        AddNewCategoryDialog dialog = new AddNewCategoryDialog(getShell(), Messages._UI_LABEL_EDIT_CATEGORY);
-        
-    	TableItem[] selections = categoryTableViewer.getTable().getSelection();
-    	if (selections.length == 0)
-    		return;
-
-    	SpecificationForExtensionsSchema spec = (SpecificationForExtensionsSchema) selections[0].getData();
-        
-    	String displayName = spec.getDisplayName();
-
-		dialog.setCategoryName(displayName );
-    	dialog.setFromCatalog(spec.isFromCatalog() );
-    	dialog.setSource(spec.getSourceHint() );
-    	dialog.setCategoryLocation(spec.getLocation() );
-
-    	specToComponentsList.remove(spec);
-    	dialog.setUnavailableCategoryNames(existingNames);
-        
-        if ( dialog.open() == Window.OK){
-        	existingNames.remove(displayName);
-			String newDisplayName = dialog.getNewCategoryName();
-
-			spec.setDisplayName(newDisplayName);
-        	spec.setLocation(dialog.getCategoryLocation());
-        	spec.setSourceHint(dialog.getSource());
-        	spec.setFromCatalog(dialog.getFromCatalog());
-        	spec.setNamespaceURI(null);
-        	
-        	existingNames.add(newDisplayName);
-
-        	categoryTableViewer.update(spec, null);
-        	refreshElementsViewer(spec);
-        	
-        	editSpecInPref(displayName, spec);
-        }
-    }
-  }
-
-/*
-   * (non-Javadoc)
-   * 
-   * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent)
-   */
-  public void widgetDefaultSelected(SelectionEvent event)
-  {
-
-  }
-
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    if (event.getSource() == categoryTableViewer)
-    {
-      ISelection selection = event.getSelection();
-      if (selection instanceof StructuredSelection)
-      {
-        Object obj = ((StructuredSelection) selection).getFirstElement();
-        if (obj instanceof SpecificationForExtensionsSchema)
-        {
-          SpecificationForExtensionsSchema spec = (SpecificationForExtensionsSchema) obj;
-          currentExtCategory = spec;
-          refreshElementsViewer(spec);
-
-          if ( spec.isDefautSchema() ){
-        	editButton.setEnabled(false);
-        	removeButton.setEnabled(false);
-          }
-          else{
-        	editButton.setEnabled(true);
-        	removeButton.setEnabled(true);
-          }
-
-          getButton(IDialogConstants.OK_ID).setEnabled(false);
-        }
-      }
-    }
-  }
-  
-  private void refreshElementsViewer(SpecificationForExtensionsSchema spec) {
-	  List components = (List) specToComponentsList.get(spec);
-	  if ( components != null){
-		elementTableViewer.setInput(components);
-		return;
-	  }
-	  
-	  XSDSchema xsdSchema = getASISchemaModel(spec);
-
-	  if (xsdSchema == null){
-		  MessageBox errDialog = new MessageBox(getShell(), SWT.ICON_ERROR);
-		  errDialog.setText(Messages._UI_ERROR_INVALID_CATEGORY);
-		  // TODO (trung) I was forced to use a String in Messages to make the error clearer
-		  // When we are back to development phase, use another string: "Extension Category: "
-		  // not "Extension Categories:" + " " like we are using here
-		  errDialog.setMessage(Messages._UI_LABEL_EXTENSION_CATEGORIES + " " + spec.getDisplayName() //$NON-NLS-1$
-				  + "\n"   //$NON-NLS-1$
-				  + Messages._UI_ERROR_FILE_CANNOT_BE_PARSED
-				  + "\n" + Messages._UI_ERROR_VALIDATE_THE_FILE);   //$NON-NLS-1$
-		  errDialog.open();
-		  
-		  elementTableViewer.setInput(new ArrayList(0));
-		  return;
-	  }
-	  
-	  components = buildInput(xsdSchema);
-      specToComponentsList.put(spec, components);	  
-	  
-	  List allItems = buildInput(xsdSchema);
-	  if ( allItems == null )
-		  return;
-	  elementTableViewer.setInput(allItems);
-  }
-  
-  private static List buildInput(XSDSchema xsdSchema)
-  {
-	if ( xsdSchema ==null )
-		return null;
-
-    List elements = xsdSchema.getElementDeclarations();
-    List attributes = xsdSchema.getAttributeDeclarations();
-    String targetNamespace = xsdSchema.getTargetNamespace();
-
-    // For safety purpose: We don't append 'attributes' to 'elements'
-    // ArrayStoreException(or similar one) may occur
-    List allItems = new ArrayList(attributes.size() + elements.size());
-    
-    {
-      // getElementDeclarations returns a lot of elements from import
-      // statement, we
-      // only add non-imported elements here. (trung)
-      for (int i = 0; i < elements.size(); i++)
-      {
-        XSDElementDeclaration currentElement = (XSDElementDeclaration) elements.get(i);
-        if (currentElement.getTargetNamespace() != null)
-        {
-          if (currentElement.getTargetNamespace().equals(targetNamespace))
-            allItems.add(currentElement);
-        }
-        else
-        {
-          if (targetNamespace == null)
-            allItems.add(currentElement);
-        }
-      }
-      // getAttributeDeclarations also returns a lot of elements from
-      // import statement, we
-      // only add non-imported elements here. (trung)
-      for (int i = 0; i < attributes.size(); i++)
-      {
-        XSDAttributeDeclaration currentAttribute = (XSDAttributeDeclaration) attributes.get(i);
-        if (currentAttribute.getTargetNamespace() != null)
-        {
-          if (currentAttribute.isGlobal() && currentAttribute.getTargetNamespace().equals(targetNamespace))
-            allItems.add(currentAttribute);
-        }
-        else
-        {
-          if (targetNamespace == null)
-            allItems.add(currentAttribute);
-        }
-      }
-    }
-    return allItems;
-  }
-
-  
-  private static XSDSchema getASISchemaModel(SpecificationForExtensionsSchema extensionsSchemaSpec)
-  {
-    String location = extensionsSchemaSpec.getLocation();
-    if ( location == null)
-    	return null;
-	XSDSchema xsdSchema = XSDImpl.buildXSDModel(location);
-    
-    // now that the .xsd file is read, we can retrieve the namespace of this xsd file
-    // and set the namespace for 'properties'
-    if ( extensionsSchemaSpec.getNamespaceURI() == null){
-    	extensionsSchemaSpec.setNamespaceURI( xsdSchema.getTargetNamespace());
-    }
-    
-    return xsdSchema;
-  }
-
-  private void storeSpecInPref(SpecificationForExtensionsSchema schemaSpec) {
-	if (prefStore == null)
-		return;
-	
-	String currentValue = prefStore.getString(ExtensionsSchemasRegistry.USER_ADDED_EXT_SCHEMAS);
-	String specDesc = "  " + "\t" + schemaSpec.getDisplayName() + "\t"+
-		schemaSpec.getNamespaceURI() + "\t" + schemaSpec.getLocation() + "\t" +
-		schemaSpec.isDefautSchema() + "\t" + schemaSpec.getSourceHint() + "\t" +
-		schemaSpec.isFromCatalog();
-	currentValue += specDesc + "\n";
-
-	prefStore.setValue(ExtensionsSchemasRegistry.USER_ADDED_EXT_SCHEMAS,
-			currentValue);
-  }
-
-  private void editSpecInPref(String displayName, SpecificationForExtensionsSchema newSpec) {
-	if (prefStore == null)
-	  return;
-	
-	String newValue = "";
-	String currentValue = prefStore.getString(ExtensionsSchemasRegistry.USER_ADDED_EXT_SCHEMAS);
-	StringTokenizer tokenizer = new StringTokenizer(currentValue, "\n");
-
-	while (tokenizer.hasMoreTokens())
-	{
-	  String oneSpecDesc = tokenizer.nextToken();
-	  // get the Display name
-	  StringTokenizer _tokenizer_2 = new StringTokenizer(oneSpecDesc, "\t");
-	  _tokenizer_2.nextToken();
-	  String dName = _tokenizer_2.nextToken();
-
-	  if ( dName.equals(displayName ) )
-	  {
-		oneSpecDesc = "  " + "\t" + newSpec.getDisplayName() + "\t"+
-			newSpec.getNamespaceURI() + "\t" + newSpec.getLocation() + "\t" +
-			newSpec.isDefautSchema() + "\t" + newSpec.getSourceHint() + "\t" +
-			newSpec.isFromCatalog();		  
-	  }
-
-	  newValue += oneSpecDesc + "\n";
-	}
-	prefStore.setValue(ExtensionsSchemasRegistry.USER_ADDED_EXT_SCHEMAS, newValue);
-	
-  }
-
-  private void removeFromPref(SpecificationForExtensionsSchema spec) {
-	if (prefStore == null)
-	  return;	  
-	  
-	String newValue = "";
-	String currentValue = prefStore.getString(ExtensionsSchemasRegistry.USER_ADDED_EXT_SCHEMAS);
-	StringTokenizer tokenizer = new StringTokenizer(currentValue, "\n");
-
-	while (tokenizer.hasMoreTokens())
-	{
-	  String oneSpecDesc = tokenizer.nextToken();
-	  // get the Display name
-	  StringTokenizer _tokenizer_2 = new StringTokenizer(oneSpecDesc, "\t");
-	  _tokenizer_2.nextToken();
-	  String dName = _tokenizer_2.nextToken();
-
-	  if ( dName.equals(spec.getDisplayName() ) )
-		continue;
-	  newValue += oneSpecDesc + "\n";
-	}
-	prefStore.setValue(ExtensionsSchemasRegistry.USER_ADDED_EXT_SCHEMAS, newValue);
-  }
-
-static class CategoryContentProvider implements IStructuredContentProvider
-  {
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-     */
-    public Object[] getElements(Object inputElement)
-    {    
-      SpecificationForExtensionsSchema[] extensionsSchemaSpecs = null;
-      try
-      {
-        List inputList = (List) inputElement;
-        extensionsSchemaSpecs = (SpecificationForExtensionsSchema[]) inputList.toArray(new SpecificationForExtensionsSchema[0]);
-      }
-      catch (Exception e)
-      {
-      }
-      return extensionsSchemaSpecs;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-     */
-    public void dispose()
-    {
-      // Do nothing
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-     *      java.lang.Object, java.lang.Object)
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-      // Do nothing
-
-    }
-  }
-
-  static class CategoryLabelProvider extends LabelProvider
-  {
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-     */
-    public Image getImage(Object element)
-    {
-      return XSDEditorPlugin.getXSDImage("icons/appinfo_category.gif"); //$NON-NLS-1$
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-     */
-    public String getText(Object element)
-    {
-      if (element instanceof SpecificationForExtensionsSchema)
-        return ((SpecificationForExtensionsSchema) element).getDisplayName();
-
-      return super.getText(element);
-    }
-  }
-
-  static class ElementContentProvider implements IStructuredContentProvider
-  {
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
-     */
-    public Object[] getElements(Object inputElement)
-    {
-      if (inputElement instanceof List)
-      {
-        return ((List) inputElement).toArray();
-      }
-      return null;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-     */
-    public void dispose()
-    {
-      // Do nothing
-
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
-     *      java.lang.Object, java.lang.Object)
-     */
-    public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-    {
-      // Do nothing
-
-    }
-  }
-
-  class ElementLabelProvider extends LabelProvider
-  {    
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
-     */
-    public Image getImage(Object element)
-    {
-      if ( element instanceof XSDElementDeclaration){
-    	  
-    	  // Workaround trick: (trung) we create a temporary Dom element and put it in the label provider
-    	  // to get the image.
-    	  String namespace = ((XSDElementDeclaration) element).getSchema().getTargetNamespace();
-    	  String name = ((XSDElementDeclaration) element).getName();
-    	  Element tempElement = tempDoc.createElementNS(namespace, name);
-          ILabelProvider lp = XSDEditorPlugin.getDefault().getNodeCustomizationRegistry().getLabelProvider(namespace);
-    	  if (lp != null){
-    		  Image img = lp.getImage(tempElement);
-    		  
-    		  if (img != null){
-    			  return img;
-    		  }
-    	  }
-    	  return DEFAULT_ELEMENT_ICON;
-      }
-      else if ( element instanceof XSDAttributeDeclaration){
-    	  return DEFAULT_ATTRIBUTE_ICON;
-      }
-      return null;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
-     */
-    public String getText(Object element)
-    {
-      if (element instanceof XSDElementDeclaration)
-        return ((XSDElementDeclaration) element).getName();
-      if (element instanceof XSDAttributeDeclaration )
-        return ((XSDAttributeDeclaration) element).getName();
-      return super.getText(element);
-    }
-  }
-
-  public boolean close()
-  {
-    return super.close();
-  }
-  
-  protected void enableButtons(boolean value)
-  {
-    editButton.setEnabled(value);
-    addButton.setEnabled(value);
-    removeButton.setEnabled(value);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddNewCategoryDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddNewCategoryDialog.java
deleted file mode 100644
index 8c369ff..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddNewCategoryDialog.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CLabel;
-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.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.dialogs.SelectSingleFileDialog;
-import org.eclipse.wst.xsd.ui.internal.common.util.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-
-public class AddNewCategoryDialog extends Dialog
-{
-
-  private static final String SCHEMA_LABEL = Messages._UI_LABEL_SCHEMA;
-  private static final String NAME_LABEL = Messages._UI_LABEL_NAME;
-  private String dialogTitle = Messages._UI_LABEL_ADD_CATEGORY;
-  
-  protected MenuManager browseMenu;
-  protected Label name;
-  protected Text nameText;
-  protected Label schema;
-  protected CLabel schemaDisplayer;
-  protected ToolBar browseToolBar;
-  protected ToolItem browseItem;
-
-  protected List invalidNames;
-  
-  // TODO (cs) rename this field to extensionSchemaLocation in WTP 2.0
-  protected String appInfoSchemaLocation;
-  protected String categoryName;
-  protected CLabel errDisplayer;
-  protected boolean isCategoryNameValid;
-  protected boolean fromCatalog;
-  
-  private boolean canOK =false; 
-  
-  /** Either the location if come from workspace or namespace if come from
-   * 	XML Catalog  */
-  protected String source;
-
-  public AddNewCategoryDialog(Shell parentShell)
-  {
-    super(parentShell);
-  }
-
-  public AddNewCategoryDialog(Shell parentShell, String dialogTitle)
-  {
-    super(parentShell);
-    this.dialogTitle = dialogTitle;
-  }
-  
-  /**
-   * receive a List of names which have already been added to the category list
-   * 
-   * @param unavailNames
-   *          Array of unvailable names
-   */
-  public void setUnavailableCategoryNames(List unavailNames)
-  {
-    invalidNames = unavailNames;
-  }
-
-  public String getNewCategoryName()
-  {
-    return categoryName.trim();
-  }
-
-  public String getCategoryLocation()
-  {
-    return appInfoSchemaLocation;
-  }
-  
-  public void setCategoryLocation(String s){
-	  appInfoSchemaLocation = s;
-  }
-  
-  /** @deprecated */
-  public SpecificationForExtensionsSchema getExtensionsSchemaSpec(){
-	SpecificationForExtensionsSchema schemaSpec = new SpecificationForExtensionsSchema();
-	schemaSpec.setDisplayName(getNewCategoryName());
-	schemaSpec.setLocation(getCategoryLocation());
-	
-	return schemaSpec;
-  }
-    
-  public void setCategoryName(String categoryName) {
-	this.categoryName = categoryName;
-  }
-
-  public boolean getFromCatalog() {
-	return fromCatalog;
-  }
-  
-  public void setFromCatalog(boolean b){
-	fromCatalog = b;	
-  }
-
-  public String getSource()
-  {
-	return source;  
-  }
-  
-  public void setSource(String source) {
-	this.source = source;
-  }
-
-  protected Control createButtonBar(Composite parent)
-  {
-    Control result = super.createButtonBar(parent);
-    getButton(IDialogConstants.OK_ID).setEnabled(canOK);
-    return result;
-  }
-
-  // redudant method to improve speed (according to the compiler)
-  protected Button getButton(int id) {
-    return super.getButton(id);
-  }
-  
-  protected Control createDialogArea(Composite parent)
-  {
-    getShell().setText(dialogTitle);
-
-    Composite mainComposite = (Composite) super.createDialogArea(parent);
-    GridLayout layout = new GridLayout(3, false);
-    layout.marginTop = 10;
-    mainComposite.setLayout(layout);
-    mainComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
-    GridData data = new GridData();
-    data.widthHint = 400;
-
-    mainComposite.setLayoutData(data);
-
-    // Line 1, name
-    name = new Label(mainComposite, SWT.NONE);
-    name.setText(NAME_LABEL);
-
-    nameText = new Text(mainComposite, SWT.BORDER | SWT.SINGLE);
-    nameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    if (categoryName != null)
-    	nameText.setText(categoryName);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
-    		XSDEditorCSHelpIds.ADD_CATEGORY__NAME);     
-
-    Button hidden = new Button(mainComposite, SWT.NONE);
-    hidden.setVisible(false);
-
-    // Line 2, schema
-    schema = new Label(mainComposite, SWT.NONE);
-    schema.setText(SCHEMA_LABEL);
-
-    schemaDisplayer = new CLabel(mainComposite, SWT.BORDER | SWT.SINGLE);
-    schemaDisplayer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    if (source != null)
-    {
-    	if (fromCatalog)
-    		schemaDisplayer.setImage(
-    				XSDEditorPlugin.getXSDImage("icons/xmlcatalog_obj.gif")); //$NON-NLS-1$
-    	else
-    		schemaDisplayer.setImage(
-    				XSDEditorPlugin.getXSDImage("icons/XSDFile.gif")); //$NON-NLS-1$
-    	schemaDisplayer.setText(source);
-    	
-    }
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(schemaDisplayer,
-    		XSDEditorCSHelpIds.ADD_CATEGORY__SCHEMA); 
-    
-    if (categoryName != null && source != null)
-    	canOK = true;
-
-    browseToolBar = new ToolBar(mainComposite, SWT.FLAT);
-    browseItem = new ToolItem(browseToolBar, SWT.NONE);
-    // TODO: Should be able to get the image from the XML plugin. Don't need
-    // to copy to XSDEditor icons folder like this.
-    browseItem.setImage(XSDEditorPlugin.getXSDImage("icons/appinfo_browse.gif")); //$NON-NLS-1$
-
-    browseMenu = new MenuManager();
-
-    BrowseInWorkspaceAction browseInWorkspace = new BrowseInWorkspaceAction();
-    browseMenu.add(browseInWorkspace);
-
-    BrowseCatalogAction browseCatalog = new BrowseCatalogAction();
-    browseMenu.add(browseCatalog);
-
-    browseItem.addSelectionListener(new SelectionAdapter()
-    {
-      public void widgetSelected(SelectionEvent e)
-      {
-        Menu menu = browseMenu.createContextMenu(getShell());
-        Rectangle bounds = browseItem.getBounds();
-        Point topLeft = new Point(bounds.x, bounds.y + bounds.height);
-        topLeft = browseToolBar.toDisplay(topLeft);
-        menu.setLocation(topLeft.x, topLeft.y);
-        menu.setVisible(true);
-      }
-    });
-
-    // Composite errComp = new Composite(mainComposite, SWT.NONE);
-    // errComp.setBackground(org.eclipse.draw2d.ColorConstants.white);
-    // errComp.setLayout(new GridLayout());
-    errDisplayer = new CLabel(mainComposite, SWT.FLAT);
-    // errDisplayer.setText("abd");
-    GridData gd = new GridData(GridData.FILL_BOTH);
-    gd.grabExcessHorizontalSpace = true;
-    gd.horizontalSpan = 3;
-    errDisplayer.setLayoutData(gd);
-
-    // errComp.setLayoutData(gd);
-    // errDisplayer.setLayoutData(gd);
-    // errMsgContainer.setContent(errDisplayer);
-
-    nameText.addModifyListener(new ModifyListener()
-    {
-      // track the nameText and enable/disable the OK button accordingly
-      public void modifyText(ModifyEvent e)
-      {
-        categoryName = nameText.getText();
-
-        // name is in the invalid List
-        if (invalidNames != null)
-        {
-          if (invalidNames.contains(categoryName.trim()))
-          {
-            isCategoryNameValid = false;
-
-            getButton(IDialogConstants.OK_ID).setEnabled(false);
-            errDisplayer.setText(Messages._UI_ERROR_NAME_ALREADY_USED);
-            errDisplayer.setImage(XSDEditorPlugin.getXSDImage("icons/error_st_obj.gif")); //$NON-NLS-1$
-            return;
-          }
-        }
-        // name is empty string
-        if (categoryName.equals("")) //$NON-NLS-1$
-        {
-          isCategoryNameValid = false;
-
-          getButton(IDialogConstants.OK_ID).setEnabled(false);
-          errDisplayer.setText(""); //$NON-NLS-1$
-          errDisplayer.setImage(null);
-          return;
-        }
-
-        /*
-         * Enable the Ok button if the location field AND the name field are not
-         * empty
-         */
-        if (!categoryName.equals("")) //$NON-NLS-1$
-        {
-          isCategoryNameValid = true;
-          errDisplayer.setText(""); //$NON-NLS-1$
-          errDisplayer.setImage(null);
-        }
-        if (!appInfoSchemaLocation.equals("")) //$NON-NLS-1$
-        {
-          getButton(IDialogConstants.OK_ID).setEnabled(true);
-        }
-      }
-    });
-
-    return parent;
-  }
-
-  protected void okPressed()
-  {
-    super.okPressed();
-  }
-
-  protected class BrowseInWorkspaceAction extends Action
-  {
-    private static final String XSD_FILE_EXTENSION = ".xsd"; //$NON-NLS-1$
-
-    public BrowseInWorkspaceAction()
-    {
-      super(Messages._UI_ACTION_BROWSE_WORKSPACE);
-    }
-
-    public void run()
-    {
-      SelectSingleFileDialog dialog = new SelectSingleFileDialog(getShell(), null, true);
-      dialog.addFilterExtensions(new String[] { XSD_FILE_EXTENSION });
-      dialog.create();
-      dialog.setTitle(Messages._UI_LABEL_SELECT_XSD_FILE);
-      dialog.setMessage(Messages._UI_DESCRIPTION_CHOOSE_XSD_FILE);
-
-      if (dialog.open() == Window.OK)
-      {
-        IFile appInfoSchemaFile = dialog.getFile();
-        if (appInfoSchemaFile != null)
-        {
-          // remove leading slash from the value to avoid the
-          // whole leading slash ambiguity problem
-          String uri = appInfoSchemaFile.getFullPath().toString();
-          while (uri.startsWith("/") || uri.startsWith("\\")) { //$NON-NLS-1$ //$NON-NLS-2$
-            uri = uri.substring(1);
-          }
-          appInfoSchemaLocation = uri.toString();
-          source = uri;
-          fromCatalog = false;
-
-          appInfoSchemaLocation = "file://" + Platform.getLocation().toString() + "/" + appInfoSchemaLocation; //$NON-NLS-1$ //$NON-NLS-2$
-          // TODO... be careful how we construct the location
-          // UNIX related issues here
-
-          schemaDisplayer.setImage(XSDEditorPlugin.getXSDImage("icons/XSDFile.gif")); //$NON-NLS-1$
-          schemaDisplayer.setText(uri);
-
-          // Enable the OK button if we should..
-          if (isCategoryNameValid)
-          {
-            getButton(IDialogConstants.OK_ID).setEnabled(true);
-            errDisplayer.setText(""); //$NON-NLS-1$
-            errDisplayer.setImage(null);
-          }
-        }
-      }
-    }
-  }
-
-  protected class BrowseCatalogAction extends Action
-  {
-    public BrowseCatalogAction()
-    {
-      super(Messages._UI_ACTION_BROWSE_CATALOG);
-    }
-
-    public void run()
-    {
-      SelectFromCatalogDialog dialog = new SelectFromCatalogDialog(getShell());
-      // dialog.open();
-      if (dialog.open() == Window.OK)
-      {
-        appInfoSchemaLocation = dialog.getCurrentSelectionLocation();
-        source = dialog.getCurrentSelectionNamespace();
-        fromCatalog = true;
-
-        schemaDisplayer.setImage(XSDEditorPlugin.getXSDImage("icons/xmlcatalog_obj.gif")); //$NON-NLS-1$
-        schemaDisplayer.setText(dialog.getCurrentSelectionNamespace());
-
-        // Enable the OK button if we should..
-        if (isCategoryNameValid && !appInfoSchemaLocation.equals("")) //$NON-NLS-1$
-        {
-          getButton(IDialogConstants.OK_ID).setEnabled(true);
-          errDisplayer.setText(""); //$NON-NLS-1$
-          errDisplayer.setImage(null);
-        }
-      }
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/CategoryProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/CategoryProvider.java
deleted file mode 100644
index a3eb64a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/CategoryProvider.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.common.properties.sections.appinfo;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-
-public class CategoryProvider
-{
-  private ICatalog systemCatalog;
-
-  public CategoryProvider()
-  {
-    
-  }
-  
-  /**
-   * Extenders should implement and return a list of 
-   * SpecificationForExtensionsSchema
-   * @return
-   */
-  public List getCategories()
-  {
-    return new ArrayList();
-  }
-  
-  /**
-   * Helper method to find the physical location of the schema
-   * in the XML Catalog
-   * @param namespaceURI
-   * @return physical location of the schema
-   */
-  public String locateFileUsingCatalog(String namespaceURI)
-  {
-    retrieveCatalog();
-
-    ICatalogEntry[] entries = systemCatalog.getCatalogEntries();
-    for (int i = 0; i < entries.length; i++)
-    {
-      if (entries[i].getKey().equals(namespaceURI))
-        return entries[i].getURI();
-    }
-
-    return null;
-  }
-
-  private void retrieveCatalog()
-  {
-    if (systemCatalog != null)
-      return;
-
-    ICatalog defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-    INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs();
-    for (int i = 0; i < nextCatalogs.length; i++)
-    {
-      INextCatalog catalog = nextCatalogs[i];
-      ICatalog referencedCatalog = catalog.getReferencedCatalog();
-      if (referencedCatalog != null)
-      {
-        if (XMLCorePlugin.SYSTEM_CATALOG_ID.equals(referencedCatalog.getId()))
-        {
-          systemCatalog = referencedCatalog;
-        }
-      }
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionDetailsContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionDetailsContentProvider.java
deleted file mode 100644
index c759d92..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionDetailsContentProvider.java
+++ /dev/null
@@ -1,201 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import java.text.Collator;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.ui.internal.tabletree.TreeContentHelper;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.DefaultListNodeEditorConfiguration;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeCustomizationRegistry;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeEditorConfiguration;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeEditorProvider;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-
-public class DOMExtensionDetailsContentProvider implements ExtensionDetailsContentProvider
-{
-  private static final Object[] EMPTY_ARRAY = {};
-  private static final String[] EMPTY_STRING_ARRAY = {};
-  private static final String XMLNS = "xmlns"; //$NON-NLS
-  private static final String TEXT_NODE_KEY = "text()"; //$NON-NLS
-
-  public Object[] getItems(Object input)
-  {
-    HashMap resultMap = new HashMap();
-    if (input instanceof Element)
-    {
-      Element element = (Element) input;
-      
-      // here we compute items for the attributes that physically in the document 
-      //
-      NamedNodeMap attributes = element.getAttributes();
-      for (int i = 0; i < attributes.getLength(); i++)
-      {
-        Attr attr = (Attr) attributes.item(i);
-        if (!XMLNS.equals(attr.getName()) && !XMLNS.equals(attr.getPrefix())) //$NON-NLS-1$ //$NON-NLS-2$
-        {
-          resultMap.put(attr.getName(), DOMExtensionItem.createItemForElementAttribute(element, attr));
-        }
-      }
-     
-      // here we compute an item for the text node that is physically in the document 
-      //      
-      String textNodeValue = new TreeContentHelper().getNodeValue(element);
-      if (textNodeValue != null)
-      {  
-        resultMap.put(TEXT_NODE_KEY, DOMExtensionItem.createItemForElementText(element));
-      }  
-      
-      ModelQuery modelQuery = ModelQueryUtil.getModelQuery(element.getOwnerDocument());
-      if (modelQuery != null)
-      {
-        CMElementDeclaration ed = modelQuery.getCMElementDeclaration(element);
-        if (ed != null)
-        {
-          // here we compute items for the attributes that may be added to the document according to the grammar 
-          //           
-          List list = modelQuery.getAvailableContent(element, ed, ModelQuery.INCLUDE_ATTRIBUTES);
-          for (Iterator i = list.iterator(); i.hasNext(); )
-          {  
-              CMAttributeDeclaration ad = (CMAttributeDeclaration)i.next();
-              if (ad != null && resultMap.get(ad.getNodeName()) == null)
-              {
-                resultMap.put(ad.getNodeName(), DOMExtensionItem.createItemForElementAttribute(element, ad));
-              }            
-          }
-          if (resultMap.get(TEXT_NODE_KEY) == null)
-          {
-            // here we compute an item for the text node that may be added to the document according to the grammar 
-            //                  
-            int contentType = ed.getContentType();
-            if (contentType == CMElementDeclaration.PCDATA || contentType == CMElementDeclaration.MIXED)
-            {
-              resultMap.put(TEXT_NODE_KEY, DOMExtensionItem.createItemForElementText(element));
-            }
-          }  
-        }
-      }
-      Collection collection = resultMap.values();
-      // initialize the editor information for each item
-      //
-      for (Iterator i = collection.iterator(); i.hasNext();)
-      {
-        initPropertyEditorConfiguration((DOMExtensionItem) i.next());
-      }
-      DOMExtensionItem[] items = new DOMExtensionItem[collection.size()];
-      resultMap.values().toArray(items);
-      
-      // here we sort the list alphabetically
-      //
-      if (items.length > 0)
-      {  
-        Comparator comparator = new Comparator()
-        {
-          public int compare(Object arg0, Object arg1)
-          {         
-            DOMExtensionItem a = (DOMExtensionItem)arg0;
-            DOMExtensionItem b = (DOMExtensionItem)arg1;
-            
-            // begin special case to ensure 'text nodes' come last
-            if (a.isTextValue() && !b.isTextValue())
-            {
-              return 1;   
-            }
-            else if (b.isTextValue() && !a.isTextValue())
-            {
-              return -1;
-            }  
-            // end special case
-            else
-            {          
-              return Collator.getInstance().compare(a.getName(), b.getName());
-            }  
-          }
-        };
-        Arrays.sort(items, comparator);
-      }  
-      return items;
-    }
-    else if (input instanceof Attr)
-    {
-      Attr attr = (Attr) input;
-      DOMExtensionItem item = DOMExtensionItem.createItemForAttributeText(attr.getOwnerElement(), attr);
-      DOMExtensionItem[] items = {item};
-      return items;
-    }
-    return EMPTY_ARRAY;
-  }
-
-  public String getName(Object item)
-  {
-    if (item instanceof DOMExtensionItem)
-    {
-      return ((DOMExtensionItem) item).getName();
-    }
-    return ""; //$NON-NLS-1$
-  }
-
-  public String getValue(Object item)
-  {
-    if (item instanceof DOMExtensionItem)
-    {
-      return ((DOMExtensionItem) item).getValue();
-    }
-    return ""; //$NON-NLS-1$
-  }
-
-  public String[] getPossibleValues(Object item)
-  {
-    if (item instanceof DOMExtensionItem)
-    {
-      return ((DOMExtensionItem) item).getPossibleValues();
-    }
-    return EMPTY_STRING_ARRAY;
-  }
-
-  protected void initPropertyEditorConfiguration(DOMExtensionItem item)
-  {
-    String namespace = item.getNamespace();
-    String name = item.getName();
-    String parentName = item.getParentName();
-    NodeEditorConfiguration configuration = null;
-    if (namespace != null)
-    {
-      // TODO (cs) remove reference to XSDEditorPlugin... make generic
-      // perhaps push down the xml.ui ?
-      //
-      NodeCustomizationRegistry registry = XSDEditorPlugin.getDefault().getNodeCustomizationRegistry();
-      NodeEditorProvider provider= registry.getNodeEditorProvider(namespace);      
-      if (provider != null)
-      {
-        configuration = provider.getNodeEditorConfiguration(parentName, name);
-        if (configuration != null)
-        {  
-          configuration.setParentNode(item.getParentNode());
-          if (item.getNode() != null)
-          {
-            configuration.setNode(item.getNode());
-          }
-        }  
-      }
-    }
-    String[] values = item.getPossibleValues();
-    if (values != null && values.length > 1)
-    {
-      configuration = new DefaultListNodeEditorConfiguration(values);
-    }
-    
-    // Note that it IS expected that the configaration may be null
-    //
-    item.setPropertyEditorConfiguration(configuration);
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItem.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItem.java
deleted file mode 100644
index d34a07d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItem.java
+++ /dev/null
@@ -1,216 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMNode;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil;
-import org.eclipse.wst.xml.ui.internal.tabletree.TreeContentHelper;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateAttributeValueCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateTextValueCommand;
-import org.w3c.dom.Attr;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-class DOMExtensionItem extends ExtensionItem
-{
-  private final static int KIND_ELEMENT_ATTR = 1;
-  private final static int KIND_ELEMENT_TEXT = 2;
-  private final static int KIND_ELEMENT_CMATTRIBUTE = 3;
-  private final static int KIND_ATTR_TEXT = 4;
-  int kind;
-  Attr attribute;
-  Element parent;
-  CMNode cmNode;
-
-  private DOMExtensionItem(int kind, Element parent, Attr node, CMNode cmNode)
-  {
-    this.kind = kind;
-    this.parent = parent;
-    this.attribute = node;
-    this.cmNode = cmNode;
-  }
-  
-  public boolean isTextValue()
-  {
-    return kind == KIND_ELEMENT_TEXT || kind == KIND_ATTR_TEXT;
-  }
-
-  static DOMExtensionItem createItemForElementText(Element parent)
-  {
-    return new DOMExtensionItem(KIND_ELEMENT_TEXT, parent, null, null);
-  }
-
-  static DOMExtensionItem createItemForElementAttribute(Element parent, Attr attribute)
-  {
-    return new DOMExtensionItem(KIND_ELEMENT_ATTR, parent, attribute, null);
-  }
-
-  static DOMExtensionItem createItemForElementAttribute(Element parent, CMAttributeDeclaration ad)
-  {
-    if (ad == null)
-    {
-      System.out.println("null!");
-    }
-    return new DOMExtensionItem(KIND_ELEMENT_CMATTRIBUTE, parent, null, ad);
-  }
-
-  static DOMExtensionItem createItemForAttributeText(Element parent, Attr attribute)
-  {
-    return new DOMExtensionItem(KIND_ATTR_TEXT, parent, attribute, null);
-  }
-
-  public String getName()
-  {
-    String result = null;
-    switch (kind)
-    {
-      case KIND_ATTR_TEXT : {
-        result = "value";
-        break;
-      }
-      case KIND_ELEMENT_ATTR : {
-        result = attribute.getName();
-        break;
-      }
-      case KIND_ELEMENT_CMATTRIBUTE : {
-        CMAttributeDeclaration ad = (CMAttributeDeclaration) cmNode;
-        result = ad.getNodeName();
-        break;
-      }
-      case KIND_ELEMENT_TEXT : {
-        result = "text value";
-        break;
-      }
-    }
-    return result != null ? result : "";
-  }
-
-  public String getValue()
-  {
-    switch (kind)
-    {
-      case KIND_ATTR_TEXT :
-      case KIND_ELEMENT_ATTR : {
-        // note intentional fall-thru!!
-        return attribute.getNodeValue();
-      }
-      case KIND_ELEMENT_CMATTRIBUTE : {
-        // CS : one would think that we'd just need to return "" here
-        // but after editing a item of this kind and giving it value
-        // the list of item's doesn't get recomputed.. so we need to trick
-        // one of these items to behave like the KIND_ELEMENT_ATTR case
-        //
-        String value = parent.getAttribute(cmNode.getNodeName());
-        return (value != null) ? value : "";
-      }
-      case KIND_ELEMENT_TEXT : {
-        return new TreeContentHelper().getElementTextValue(parent);         
-      }
-    }
-    return "";
-  }
-  
-
-  public String[] getPossibleValues()
-  {
-    String[] result = {};
-     
-    switch (kind)
-    {
-      case KIND_ATTR_TEXT :
-      case KIND_ELEMENT_ATTR : {
-        // note intentional fall-thru!!
-        ModelQuery modelQuery = ModelQueryUtil.getModelQuery(parent.getOwnerDocument());
-        if (modelQuery != null)
-        {            
-          CMAttributeDeclaration ad = modelQuery.getCMAttributeDeclaration(attribute);        
-          if (ad != null)
-          {
-            result = modelQuery.getPossibleDataTypeValues(parent, ad);
-          }
-        }
-        break;
-      }
-      case KIND_ELEMENT_CMATTRIBUTE : {
-        ModelQuery modelQuery = ModelQueryUtil.getModelQuery(parent.getOwnerDocument());
-        if (modelQuery != null && cmNode != null)
-        {
-          result = modelQuery.getPossibleDataTypeValues(parent, cmNode);
-        }
-        break;
-      }
-      case KIND_ELEMENT_TEXT : {
-        ModelQuery modelQuery = ModelQueryUtil.getModelQuery(parent.getOwnerDocument());
-        if (modelQuery != null)
-        {
-          CMElementDeclaration ed = modelQuery.getCMElementDeclaration(parent);
-          if (ed != null)
-          { 
-            result = modelQuery.getPossibleDataTypeValues(parent, ed);             
-          }  
-        }
-        break;
-      }
-    }
-    return result;
-  }
-
-  public Command getUpdateValueCommand(String newValue)
-  {
-    switch (kind)
-    {
-      case KIND_ATTR_TEXT :
-      case KIND_ELEMENT_ATTR : {
-        // note intentional fall-thru!!               
-        return new UpdateAttributeValueCommand(parent, attribute.getNodeName(), newValue, true);
-      }
-      case KIND_ELEMENT_CMATTRIBUTE : {
-        final CMAttributeDeclaration ad = (CMAttributeDeclaration) cmNode;
-        return new UpdateAttributeValueCommand(parent, ad.getAttrName(), newValue, true);
-      }
-      case KIND_ELEMENT_TEXT : {
-        return new UpdateTextValueCommand(parent, newValue);
-      }
-    }
-    return null;
-  }
-
-  public String getNamespace()
-  {
-    String namespace = null;
-    if (kind == KIND_ATTR_TEXT)
-    {
-      namespace = attribute.getNamespaceURI();
-    }
-    else if (parent != null)
-    {
-      namespace = parent.getNamespaceURI();
-    }
-    return namespace;
-  }
-
-  public Node getParentNode()
-  {
-    Node parentNode = null;
-    if (attribute != null)
-    {
-      parentNode = attribute.getOwnerElement();
-    }
-    else if (parent != null)
-    {
-      parentNode = parent;
-    }
-    return parentNode;
-  }
-
-  public String getParentName()
-  {
-    Node parentNode = getParentNode();
-    return parentNode != null ? parentNode.getLocalName() : "";
-  }
-
-  public Node getNode()
-  {
-    return attribute;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemEditManager.java
deleted file mode 100644
index d069b8f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemEditManager.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
-
-
-/**
- * @deprecated
- */
-public class DOMExtensionItemEditManager implements ExtensionItemEditManager
-{
-  public void handleEdit(Object item, Widget widget)
-  {   
-  }
-
-  public Control createCustomButtonControl(Composite composite, Object item)
-  {
-    Button button = new Button(composite, SWT.NONE);
-    button.setText("..."); //$NON-NLS-1$
-    return button;
-  }
-
-  public Control createCustomTextControl(Composite composite, Object item)
-  {
-    return null;
-  }
-
-  public String getButtonControlStyle(Object object)
-  {
-    return ExtensionItemEditManager.STYLE_NONE;
-  }
-
-  public String getTextControlStyle(Object object)
-  {
-    return ExtensionItemEditManager.STYLE_NONE;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemMenuListener.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemMenuListener.java
deleted file mode 100644
index 1c8bcf5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemMenuListener.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery;
-import org.eclipse.wst.xml.core.internal.document.ElementImpl;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument;
-import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class DOMExtensionItemMenuListener implements IMenuListener
-{
-  TreeViewer treeViewer;
-
-  public DOMExtensionItemMenuListener(TreeViewer treeViewer)
-  {
-    this.treeViewer = treeViewer;
-  }
-
-  public void menuAboutToShow(IMenuManager manager)
-  {
-    manager.removeAll();
-    ISelection selection = treeViewer.getSelection();
-    if (selection instanceof IStructuredSelection)
-    {
-      IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-      if (structuredSelection.getFirstElement() instanceof ElementImpl)
-      {
-        ElementImpl elementImpl = (ElementImpl) structuredSelection.getFirstElement();
-        IDOMDocument domDocument = (IDOMDocument) elementImpl.getOwnerDocument();
-        InternalNodeActionManager actionManager = new InternalNodeActionManager(domDocument.getModel(), treeViewer);
-        actionManager.fillContextMenu(manager, structuredSelection);
-      }
-    }
-  }
-  
-  
-  class InternalNodeActionManager extends XMLNodeActionManager
-  {
-    public InternalNodeActionManager(IStructuredModel model, Viewer viewer)
-    {
-      super(model, viewer);
-    }
-
-    public void contributeActions(IMenuManager menu, List selection)
-    {
-      //menu.add(new Action("there"){});     
-      try
-      {
-      int editMode = modelQuery.getEditMode();
-      int ic = ModelQuery.INCLUDE_CHILD_NODES;
-      int vc = (editMode == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) ? ModelQuery.VALIDITY_STRICT : ModelQuery.VALIDITY_NONE;
-      List implicitlySelectedNodeList = null;
-
-      if (selection.size() == 1)
-      {
-        Node node = (Node) selection.get(0);
-        // contribute add child actions
-        contributeAddChildActions(menu, node, ic, vc);
-      }
-      if (selection.size() > 0)
-      {
-        implicitlySelectedNodeList = getSelectedNodes(selection, true);
-        // contribute delete actions
-        contributeDeleteActions(menu, implicitlySelectedNodeList, ic, vc);
-      }
-      }
-      catch(Exception e)
-      {
-        menu.add(new Action(e.getMessage()){});
-      }
-      /*
-      if (selection.size() > 0)
-      {
-        // contribute replace actions
-        contributeReplaceActions(menu, implicitlySelectedNodeList, ic, vc);
-      }*/
-    }
-
-    protected void contributeAddChildActions(IMenuManager menu, Node node, int ic, int vc)
-    {
-      int nodeType = node.getNodeType();
-      if (nodeType == Node.ELEMENT_NODE)
-      {
-        // 'Add Child...' and 'Add Attribute...' actions
-        //
-        Element element = (Element) node;
-        MyMenuManager newMenu = new MyMenuManager("New"){
-          public boolean isVisible() { return true; }          
-        };//$NON-NLS-1$
-        newMenu.setVisible(true);
-        menu.add(newMenu);
-        
-        CMElementDeclaration ed = modelQuery.getCMElementDeclaration(element);
-        if (ed != null)
-        {
-          List modelQueryActionList = new ArrayList();
-          // add insert child node actions
-          //
-          modelQueryActionList = new ArrayList();
-          modelQuery.getInsertActions(element, ed, -1, ic, vc, modelQueryActionList);
-          addActionHelper(newMenu, modelQueryActionList);
-        }
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeContentProvider.java
deleted file mode 100644
index 4f2d62c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeContentProvider.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter;
-import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class DOMExtensionTreeContentProvider implements ITreeContentProvider, INodeAdapter
-{
-  protected String facet;
-  protected Viewer viewer;
-  
-  public void inputChanged(Viewer viewer, Object oldInput, Object newInput)
-  {
-    this.viewer = viewer;
-  }
-    
-  public Object[] getChildren(Object parentElement)
-  {
-    if (parentElement instanceof Element)
-    {
-      Element element = (Element)parentElement;        
-      ArrayList list = new ArrayList();
-      for (Node node = element.getFirstChild(); node != null; node = node.getNextSibling())
-      {
-        if (node.getNodeType() == Node.ELEMENT_NODE)
-        {
-          list.add(node);
-        }  
-      }  
-      return list.toArray();      
-    }
-    return Collections.EMPTY_LIST.toArray();
-  }
-  
-  public boolean hasChildren(Object element)
-  {
-    Object[] children = getChildren(element);
-    return children.length > 0;
-  }
-  
-  public Object getParent(Object element)
-  {
-    return null;
-  }
-
-  public java.lang.Object[] getElements(java.lang.Object inputElement)
-  {
-    return getChildren(inputElement);
-  }
-
-  public void dispose()
-  {
-  }
-  
-  public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos)
-  {
-    if (viewer != null)
-    {  
-      viewer.refresh();
-    }  
-  }
-  
-  public boolean isAdapterForType(Object type)
-  {
-    // this method is not used
-    return false;
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeLabelProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeLabelProvider.java
deleted file mode 100644
index db9ac56..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeLabelProvider.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeCustomizationRegistry;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.Text;
-
-public class DOMExtensionTreeLabelProvider extends LabelProvider
-{
-  protected static final Image DEFAULT_ELEMENT_ICON = XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"); //$NON-NLS-1$
-  protected static final Image DEFAULT_ATTR_ICON = XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif"); //$NON-NLS-1$
-    
-  public DOMExtensionTreeLabelProvider()
-  {    
-  }
-  
-  public Image getImage(Object element)
-  {
-    NodeCustomizationRegistry registry = XSDEditorPlugin.getDefault().getNodeCustomizationRegistry();
-    if (element instanceof Element)
-    {
-      Element domElement = (Element) element;
-      String namespace = domElement.getNamespaceURI();
-      if (namespace != null)
-      {  
-        ILabelProvider lp = registry.getLabelProvider(namespace);
-        if (lp != null)
-        {
-          Image img = lp.getImage(domElement);
-          if (img != null)
-            return img;
-        }  
-      }
-      return DEFAULT_ELEMENT_ICON;
-    }
-    if (element instanceof Attr)
-    return DEFAULT_ATTR_ICON;
-    return null;
-  }
-
-  public String getText(Object input)
-  {
-    if (input instanceof Element)
-    {
-      Element domElement = (Element) input;
-      String textVal = "";
-
-      if (domElement.hasChildNodes())
-      {
-        Node node = domElement.getChildNodes().item(0);
-        if (node instanceof Text)
-        {
-          Text textNode = (Text) node;
-          try
-          {
-            String value = textNode.getNodeValue();
-            if (StringUtils.occurrencesOf(value, '\n') == 0)
-              textVal = " [" + value + "]";
-          }
-          catch (DOMException e)
-          {
-            textVal = "";
-          }
-        }
-      }
-      return domElement.getLocalName() + textVal;
-    }
-    if ( input instanceof Attr){
-      return ((Attr) input).getLocalName();
-    }
-    return ""; //$NON-NLS-1$
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsContentProvider.java
deleted file mode 100644
index 254d105..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsContentProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-public interface ExtensionDetailsContentProvider
-{
-  Object[] getItems(Object input);
-  String getName(Object item);
-  String getValue(Object item);
-  String[] getPossibleValues(Object item);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsViewer.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsViewer.java
deleted file mode 100644
index 87103a1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsViewer.java
+++ /dev/null
@@ -1,326 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2007 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.common.properties.sections.appinfo;
-
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.gef.commands.Command;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.CCombo;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.FocusListener;
-import org.eclipse.swt.events.KeyEvent;
-import org.eclipse.swt.events.KeyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-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.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.DialogNodeEditorConfiguration;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.ListNodeEditorConfiguration;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeEditorConfiguration;
-
-public class ExtensionDetailsViewer extends Viewer
-{
-  private final static String ITEM_DATA = "ITEM_DATA"; //$NON-NLS-1$
-  private final static String EDITOR_CONFIGURATION_DATA = "EDITOR_CONFIGURATION_DATA"; //$NON-NLS-1$
-  
-  Composite control;  
-  Composite composite;
-  ExtensionDetailsContentProvider contentProvider;
-  TabbedPropertySheetWidgetFactory widgetFactory;  
-  InternalControlListener internalControlListener;
-  
-  public ExtensionDetailsViewer(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory)
-  {
-    this.widgetFactory = widgetFactory;    
-    control =  widgetFactory.createComposite(parent);
-    internalControlListener = new InternalControlListener();
-    control.setLayout(new GridLayout());    
-  }
-  public Control getControl()
-  {
-    return control;
-  }
-  
-
-  public Object getInput()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public ISelection getSelection()
-  {
-    // TODO Auto-generated method stub
-    return null;
-  }
-
-  public void refresh()
-  {
-    Control[] children = composite.getChildren(); 
-    for (int i = 0; i < children.length; i++)
-    {
-      Control control = children[i];
-      if (control instanceof Text)
-      {
-         ExtensionItem item = (ExtensionItem)control.getData(ITEM_DATA);
-         String value = contentProvider.getValue(item);        
-        ((Text)control).setText(value); 
-      }  
-    }
-  }
-
-  private void createTextOrComboControl(ExtensionItem item, Composite composite)
-  {
-    Control control = null;
-    String value = contentProvider.getValue(item);
-    NodeEditorConfiguration editorConfiguration = item.getPropertyEditorConfiguration();
-
-    if (editorConfiguration != null && hasStyle(editorConfiguration, NodeEditorConfiguration.STYLE_COMBO))
-    {          
-      ListNodeEditorConfiguration configuration = (ListNodeEditorConfiguration)editorConfiguration;
-      CCombo combo = widgetFactory.createCCombo(composite);
-      combo.setText(value);
-      Object[] values = configuration.getValues(item);
-      LabelProvider labelProvider = configuration.getLabelProvider();
-      for (int j = 0; j < values.length; j++)
-      {            
-        Object o = values[j];
-        String displayName = labelProvider != null ?
-            labelProvider.getText(o) :
-              o.toString();
-            combo.add(displayName);
-      }
-      combo.addSelectionListener(internalControlListener);
-      control = combo;
-    }
-    if (control == null)
-    {
-      Text text = widgetFactory.createText(composite,value);
-      text.addKeyListener(internalControlListener);
-      control = text; 
-    } 
-    control.setData(ITEM_DATA, item);
-    control.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    control.addFocusListener(internalControlListener);      
-  }
-  
-  private void createButtonControl(ExtensionItem item, Composite composite)
-  {
-    NodeEditorConfiguration editorConfiguration = item.getPropertyEditorConfiguration();
-    if (editorConfiguration != null && hasStyle(editorConfiguration, NodeEditorConfiguration.STYLE_DIALOG))
-    {    
-      DialogNodeEditorConfiguration configuration = (DialogNodeEditorConfiguration)editorConfiguration;            
-      Button button = new Button(composite, SWT.NONE);
-      GridData gridData = new GridData();
-      gridData.heightHint = 17;
-      button.setLayoutData(gridData);
-      button.addSelectionListener(internalControlListener);
-      button.setData(ITEM_DATA, item);
-      button.setData(EDITOR_CONFIGURATION_DATA, configuration);
-      String text = configuration.getButonText();
-      if (text != null)
-      {  
-        button.setText(text); //$NON-NLS-1$
-      }  
-      button.setImage(configuration.getButtonImage());
-    }
-    else
-    {
-      Control placeHolder = new Label(composite, SWT.NONE);
-      placeHolder.setVisible(false);
-      placeHolder.setEnabled(false);
-      placeHolder.setLayoutData(new GridData()); 
-    }      
-  } 
-  
-  public void setInput(Object input)
-  { 
-    // TODO (cs) add assertions
-    //
-    if (contentProvider == null)
-      return;
-    
-    if (composite != null)
-    {/*
-      for (Iterator i = controlsThatWeAreListeningTo.iterator(); i.hasNext(); )
-      {
-        Control control = (Control)i.next();       
-        if (control != null)
-        {  
-          control.removeFocusListener(internalFocusListener);
-        }  
-      } */ 
-      removeListeners();
-      composite.dispose();       
-    }   
-
-    composite = widgetFactory.createComposite(control);
-    composite.setBackground(ColorConstants.white);
-    GridLayout gridLayout = new GridLayout();
-    gridLayout.numColumns = 3;
-    composite.setLayout(gridLayout);
-    composite.setLayoutData(new GridData(GridData.FILL_BOTH));
-
-    Object[] items = contentProvider.getItems(input);      
-
-    for (int i = 0; i < items.length; i++)
-    {
-      ExtensionItem item = (ExtensionItem)items[i];
-      String name = contentProvider.getName(item);
-      Label label = widgetFactory.createLabel(composite, name + ":"); //$NON-NLS-1$
-      label.setLayoutData(new GridData());
-      createTextOrComboControl(item, composite);
-      createButtonControl(item, composite);
-    }  
-    control.layout(true);    
-  }
-    
-  private boolean hasStyle(NodeEditorConfiguration configuration, int style)
-  {
-    return (configuration.getStyle() & style) != 0;
-  }
-  
-  
-  public void setSelection(ISelection selection, boolean reveal)
-  {
-    // TODO Auto-generated method stub
-    
-  }
-  public ExtensionDetailsContentProvider getContentProvider()
-  {
-    return contentProvider;
-  }
-  public void setContentProvider(ExtensionDetailsContentProvider contentProvider)
-  {
-    this.contentProvider = contentProvider;
-  }
-  
-  private void applyEdit(ExtensionItem item, Widget widget)
-  {
-    if (item != null)
-    {    
-      String value = null;
-      if (widget instanceof Text)
-      {
-        Text text = (Text)widget;
-        value = text.getText();    
-      }
-      else if (widget instanceof CCombo)
-      {
-        CCombo combo = (CCombo)widget;
-        int index = combo.getSelectionIndex();
-        if (index != -1)
-        {  
-          value = combo.getItem(index);
-        }  
-      }       
-      if (value != null)
-      {  
-        Command command = item.getUpdateValueCommand(value);
-        if (command != null)
-        {
-          // TODO (cs) add command stack handling stuff
-          command.execute();
-        }
-      }                    
-    }              
-  }
-  
-  class InternalControlListener implements FocusListener, SelectionListener, KeyListener
-  {
-    public void widgetSelected(SelectionEvent e)
-    {
-      // for button controls we handle selection events
-      //        
-      Object item = e.widget.getData(EDITOR_CONFIGURATION_DATA);
-      if (item == null)
-        item = e.widget.getData(ITEM_DATA);    
-      if (item instanceof DialogNodeEditorConfiguration)
-      {
-        DialogNodeEditorConfiguration dialogNodeEditorConfiguration = (DialogNodeEditorConfiguration)item;        
-        dialogNodeEditorConfiguration.invokeDialog();               
-      }
-      else if (item instanceof ExtensionItem)
-      {
-        applyEdit((ExtensionItem)item, e.widget);
-      }      
-    }
-    
-    public void widgetDefaultSelected(SelectionEvent e)
-    {
-      // do nothing      
-    } 
-    
-    public void focusGained(FocusEvent e)
-    {
-    }    
-    
-    public void focusLost(FocusEvent e)
-    {
-      // apply edits for text and combo box controls
-      // via the focusLost event
-      Object item = e.widget.getData(ITEM_DATA);
-      if (item instanceof ExtensionItem)
-      {
-        applyEdit((ExtensionItem)item, e.widget);
-      }      
-    }
-
-    public void keyPressed(KeyEvent e)
-    {
-      // handle explict ENTER key
-      Object item = e.widget.getData(ITEM_DATA);
-      if (item instanceof ExtensionItem)
-      {
-        if (e.character == SWT.CR)
-          applyEdit((ExtensionItem)item, e.widget);
-      }      
-    }
-
-    public void keyReleased(KeyEvent e)
-    {
-      // Ignore these events
-    }
-  }
-  
-  public void removeListeners()
-  {
-    if (composite != null && !composite.isDisposed())
-    {
-      Control [] children = composite.getChildren();
-      int length = children.length;
-      for (int i = 0; i < length; i++)
-      {
-        Control o = children[i];
-        if (o instanceof CCombo)
-        {
-          ((CCombo)o).removeSelectionListener(internalControlListener);
-          o.removeFocusListener(internalControlListener);
-        }
-        else if (o instanceof Text)
-        {
-          ((Text)o).removeKeyListener(internalControlListener);
-          o.removeFocusListener(internalControlListener);
-        }
-      }
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItem.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItem.java
deleted file mode 100644
index 2b4d880..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItem.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import org.eclipse.gef.commands.Command;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeEditorConfiguration;
-
-public abstract class ExtensionItem
-{
-  NodeEditorConfiguration propertyEditorConfiguration;
-
-  public NodeEditorConfiguration getPropertyEditorConfiguration()
-  {
-    return propertyEditorConfiguration;
-  }
-
-  public void setPropertyEditorConfiguration(NodeEditorConfiguration propertyEditorConfiguration)
-  {
-    this.propertyEditorConfiguration = propertyEditorConfiguration;
-  }  
-  
-  public abstract Command getUpdateValueCommand(String newValue);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemEditManager.java
deleted file mode 100644
index 7c03187..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemEditManager.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Widget;
- 
-/**
- * @deprecated
- */ 
-public interface ExtensionItemEditManager
-{  
-  public final static String STYLE_NONE = "none";   //$NON-NLS-1$  
-  public final static String STYLE_TEXT = "text"; //$NON-NLS-1$  
-  public final static String STYLE_COMBO = "combo"; //$NON-NLS-1$
-  public final static String STYLE_CUSTOM = "custom";     //$NON-NLS-1$
-  
-  void handleEdit(Object item, Widget widget);
-  String getTextControlStyle(Object item);
-  String getButtonControlStyle(Object item);
-  Control createCustomTextControl(Composite composite, Object item);
-  Control createCustomButtonControl(Composite composite, Object item);  
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemFilter.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemFilter.java
deleted file mode 100644
index c64970c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemFilter.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import org.eclipse.xsd.XSDConcreteComponent;
-
-// cs: This interface is intended to suppliment the NodeFilter class
-// that can be specified via the customization extensions point.
-// When the initial list of a category's objects is displayed 
-// we'll use a NodeFilter to prune the list.  If the NodeFilter
-// implements this interface we'll call this interface's isApplicableContext
-// method instead of the NodeFilter's DOM node based method.  This provides 
-// are a more convenient interface for clients who are only interested in 
-// filter the list presented via the AddExtensionComponentDialog.
-// See the class ExtensionsSection for more details.
-//
-public interface ExtensionItemFilter
-{
-  public boolean isApplicableContext(XSDConcreteComponent parent, XSDConcreteComponent candidate);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionsSchemasRegistry.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionsSchemasRegistry.java
deleted file mode 100644
index 6c98ddd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionsSchemasRegistry.java
+++ /dev/null
@@ -1,361 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.preference.IPreferenceStore;
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-import org.eclipse.wst.xsd.ui.internal.common.commands.ExtensibleAddExtensionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.ExtensibleRemoveExtensionNodeCommand;
-import org.w3c.dom.Element;
-
-public class ExtensionsSchemasRegistry
-{
-  public static final String USER_ADDED_EXT_SCHEMAS = "USER-ADDED-EXT-SCHEMAS";  // TODO externalize
-  private static final String LOCATION_PREFIX = "platform:/plugin/"; //$NON-NLS-1$
-  public static final String DESCRIPTION = "description"; //$NON-NLS-1$
-  public static final String DISPLAYNAME = "displayName"; //$NON-NLS-1$
-  public static final String NAMESPACEURI = "namespaceURI"; //$NON-NLS-1$
-  public static final String XSDFILEURL = "xsdFileURL"; //$NON-NLS-1$
-  public static final String LABELPROVIDER = "labelProviderClass"; //$NON-NLS-1$
-  public static final String ADD_COMMAND_CLASS = "addCommandClass"; //$NON-NLS-1$
-  public static final String DELETE_COMMAND_CLASS = "deleteCommandClass"; //$NON-NLS-1$
-  public static final String CATEGORY_PROVIDER_CLASS = "class"; //$NON-NLS-1$
-  
-  protected IPreferenceStore prefStore;
-  protected String extensionId;
-
-  protected ArrayList nsURIProperties, categoryProviderList;
-  private ICatalog systemCatalog;
-  private String deprecatedExtensionId;
-  
-  public ExtensionsSchemasRegistry(String appinfo_extensionid)
-  {
-    extensionId = appinfo_extensionid;
-  }
-  
-  public void __internalSetDeprecatedExtensionId(String deprecatedId)
-  {
-    deprecatedExtensionId = deprecatedId;
-  }
-  
-  public void setPrefStore(IPreferenceStore store)
-  {
-	  prefStore = store;
-  }
-
-  public List getAllExtensionsSchemasContribution()
-  {  
-    // If we read the registry, then let's not do it again.
-    if (nsURIProperties != null)
-    {
-      return nsURIProperties;
-    }
- 
-    nsURIProperties = new ArrayList();
-    categoryProviderList = new ArrayList();
-
-    getAllExtensionsSchemasContribution(extensionId);
-    if (deprecatedExtensionId != null)
-    {
-      getAllExtensionsSchemasContribution(deprecatedExtensionId);     
-    }  
-    
-    // get user-added schemas stored in preference
-    if (prefStore != null)
-    {
-      String value = prefStore.getString(USER_ADDED_EXT_SCHEMAS);
-      StringTokenizer tokenizer = new StringTokenizer(value, "\n");
-   
-      while ( tokenizer.hasMoreTokens() )
-      {
-        nsURIProperties.add( new SpecificationForExtensionsSchema( tokenizer.nextToken() ) );
-      }
-    }
-    
-    return nsURIProperties;
-  }
-  
-  private List getAllExtensionsSchemasContribution(String id)
-  {
-    IConfigurationElement[] asiPropertiesList = Platform.getExtensionRegistry().getConfigurationElementsFor(id);
-
-    boolean hasASIProperties = (asiPropertiesList != null) && (asiPropertiesList.length > 0);
-
-    if (hasASIProperties)
-    {
-      for (int i = 0; i < asiPropertiesList.length; i++)
-      {
-        IConfigurationElement asiPropertiesElement = asiPropertiesList[i];
-        String elementName = asiPropertiesElement.getName();
-
-        if ("category".equals(elementName))
-        {
-          String description = asiPropertiesElement.getAttribute(DESCRIPTION);
-          String displayName = asiPropertiesElement.getAttribute(DISPLAYNAME);
-          String namespaceURI = asiPropertiesElement.getAttribute(NAMESPACEURI);
-          String xsdFileURL = asiPropertiesElement.getAttribute(XSDFILEURL);
-          String labelProviderClass = asiPropertiesElement.getAttribute(LABELPROVIDER);
-          String addCommandClass = asiPropertiesElement.getAttribute(ADD_COMMAND_CLASS);
-          String deleteCommandClass = asiPropertiesElement.getAttribute(DELETE_COMMAND_CLASS);
-          
-          if (displayName == null)
-          {
-            // If there is no display name, force the user
-            // to manually create a name. Therefore, we ignore entry without
-            // a display name.
-            continue;
-          }
-
-          if (xsdFileURL == null)
-          {
-            xsdFileURL = locateFileUsingCatalog(namespaceURI);
-          }
-
-          SpecificationForExtensionsSchema extensionsSchemaSpec = createEntry();
-          extensionsSchemaSpec.setDescription(description);
-          extensionsSchemaSpec.setDisplayName(displayName);
-          extensionsSchemaSpec.setNamespaceURI(namespaceURI);
-          extensionsSchemaSpec.setDefautSchema();
-
-          String pluginId = asiPropertiesElement.getDeclaringExtension().getContributor().getName();
-
-          if (labelProviderClass != null)
-          {
-            ILabelProvider labelProvider = null;
-            try
-            {
-              Class theClass = Platform.getBundle(pluginId).loadClass(labelProviderClass);
-              if (theClass != null)
-              {
-                labelProvider = (ILabelProvider) theClass.newInstance();
-                if (labelProvider != null)
-                {
-                  extensionsSchemaSpec.setLabelProvider(labelProvider);
-                }
-              }
-            }
-            catch (Exception e)
-            {
-
-            }
-          }
-          
-          if (addCommandClass != null)
-          {
-            try
-            {
-              ExtensibleAddExtensionCommand addCommand = (ExtensibleAddExtensionCommand)asiPropertiesElement.createExecutableExtension(ADD_COMMAND_CLASS);
-              if (addCommand != null)
-              {
-                extensionsSchemaSpec.setExtensibleAddExtensionCommand(addCommand);
-              }
-            }
-            catch (Exception e)
-            {
-            }
-          }
-
-          if (deleteCommandClass != null)
-          {
-            try
-            {
-              ExtensibleRemoveExtensionNodeCommand deleteCommand = (ExtensibleRemoveExtensionNodeCommand)asiPropertiesElement.createExecutableExtension(DELETE_COMMAND_CLASS);
-              if (deleteCommand != null)
-              {
-                extensionsSchemaSpec.setExtensibleRemoveExtensionNodeCommand(deleteCommand);
-              }
-            }
-            catch (Exception e)
-            {
-            }
-          }
-
-          extensionsSchemaSpec.setLocation(LOCATION_PREFIX + pluginId + "/" + xsdFileURL); //$NON-NLS-1$
-
-          nsURIProperties.add(extensionsSchemaSpec);
-
-        }
-        else if ("categoryProvider".equals(elementName))
-        {
-          String categoryProviderClass = asiPropertiesElement.getAttribute(CATEGORY_PROVIDER_CLASS);
-          
-          if (categoryProviderClass != null)
-          {
-            try
-            {
-              CategoryProvider categoryProvider = (CategoryProvider)asiPropertiesElement.createExecutableExtension(CATEGORY_PROVIDER_CLASS);
-              if (categoryProvider != null)
-              {
-                categoryProviderList.add(categoryProvider);
-              }
-            }
-            catch (Exception e)
-            {
-            }
-          }
-          
-        }
-        
-      }
-
-    }
-    
-    return nsURIProperties;
-  }
-  
-  public ExtensibleAddExtensionCommand getAddExtensionCommand(String namespace)
-  {
-    // Didn't retrieve the config elements yet.
-    if (nsURIProperties == null)
-    {
-      getAllExtensionsSchemasContribution();
-    }
-    
-    for (Iterator i = nsURIProperties.iterator(); i.hasNext(); )
-    {
-      SpecificationForExtensionsSchema spec = (SpecificationForExtensionsSchema)i.next();
-      String nsURI = spec.getNamespaceURI();
-      if (nsURI != null && nsURI.equals(namespace))
-      {
-        return spec.getExtensibleAddExtensionCommand();
-      }
-    }
-
-    for (Iterator i = categoryProviderList.iterator(); i.hasNext(); )
-    {
-      CategoryProvider categoryProvider = (CategoryProvider)i.next();
-      for (Iterator j = categoryProvider.getCategories().iterator(); j.hasNext(); )
-      {
-        SpecificationForExtensionsSchema spec = (SpecificationForExtensionsSchema) j.next();
-        String namespaceURI = spec.getNamespaceURI();
-        if (namespaceURI != null && namespaceURI.equals(namespace))
-        {
-          return spec.getExtensibleAddExtensionCommand();
-        }
-      }
-    }
-
-    return null;
-  }
-
-  public ExtensibleRemoveExtensionNodeCommand getRemoveExtensionNodeCommand(String namespace)
-  {
-    // Didn't retrieve the config elements yet.
-    if (nsURIProperties == null)
-    {
-      getAllExtensionsSchemasContribution();
-    }
-    
-    for (Iterator i = nsURIProperties.iterator(); i.hasNext(); )
-    {
-      SpecificationForExtensionsSchema spec = (SpecificationForExtensionsSchema)i.next();
-      String nsURI = spec.getNamespaceURI();
-      if (nsURI != null && nsURI.equals(namespace))
-      {
-        return spec.getExtensibleRemoveExtensionNodeCommand();
-      }
-    }
-    
-    for (Iterator i = categoryProviderList.iterator(); i.hasNext(); )
-    {
-      CategoryProvider categoryProvider = (CategoryProvider)i.next();
-      for (Iterator j = categoryProvider.getCategories().iterator(); j.hasNext(); )
-      {
-        SpecificationForExtensionsSchema spec = (SpecificationForExtensionsSchema) j.next();
-        String namespaceURI = spec.getNamespaceURI();
-        if (namespaceURI != null && namespaceURI.equals(namespace))
-        {
-          return spec.getExtensibleRemoveExtensionNodeCommand();
-        }
-      }
-    }
-    
-    return null;
-  }
-  
-  public List getCategoryProviders()
-  {
-    if (nsURIProperties == null)
-    {
-      getAllExtensionsSchemasContribution();
-    }
-    
-    return categoryProviderList;
-  }
-
-  /**
-   * @deprecated
-   */
-  public ILabelProvider getLabelProvider(Element element)
-  {
-    return null;
-  }
-
-  public SpecificationForExtensionsSchema createEntry()
-  {
-    return new SpecificationForExtensionsSchema();
-  }
-
-  /**
-   * Returns the String location for the schema with the given namespaceURI by
-   * looking at the XML catalog. We look only in the plugin specified entries of
-   * the catalog.
-   * 
-   * @param namespaceURI
-   * @return String representing the location of the schema.
-   */
-  private String locateFileUsingCatalog(String namespaceURI)
-  {
-    retrieveCatalog();
-
-    ICatalogEntry[] entries = systemCatalog.getCatalogEntries();
-    for (int i = 0; i < entries.length; i++)
-    {
-      if (entries[i].getKey().equals(namespaceURI))
-        return entries[i].getURI();
-    }
-
-    return null;
-  }
-
-  private void retrieveCatalog()
-  {
-    if (systemCatalog != null)
-      return;
-
-    ICatalog defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-    INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs();
-    for (int i = 0; i < nextCatalogs.length; i++)
-    {
-      INextCatalog catalog = nextCatalogs[i];
-      ICatalog referencedCatalog = catalog.getReferencedCatalog();
-      if (referencedCatalog != null)
-      {
-        if (XMLCorePlugin.SYSTEM_CATALOG_ID.equals(referencedCatalog.getId()))
-        {
-          systemCatalog = referencedCatalog;
-        }
-      }
-    }
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SelectFromCatalogDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SelectFromCatalogDialog.java
deleted file mode 100644
index 1f2737a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SelectFromCatalogDialog.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Group;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.wst.xml.core.internal.XMLCorePlugin;
-import org.eclipse.wst.xml.core.internal.catalog.CatalogSet;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalog;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-import org.eclipse.wst.xml.core.internal.catalog.provisional.INextCatalog;
-import org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogEntriesView;
-import org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogEntryDetailsView;
-import org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogMessages;
-import org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogTreeViewer;
-
-public class SelectFromCatalogDialog extends Dialog
-{
-
-  private ICatalog workingUserCatalog;
-  private ICatalog userCatalog;
-  private ICatalog defaultCatalog;
-  private XMLCatalogEntriesView catalogEntriesView;
-  private ICatalog systemCatalog;
-
-  private String currentSelectionLocation;
-  private String currentSelectionNamespace;
-
-  public SelectFromCatalogDialog(Shell parentShell)
-  {
-    super(parentShell);
-
-    defaultCatalog = XMLCorePlugin.getDefault().getDefaultXMLCatalog();
-    INextCatalog[] nextCatalogs = defaultCatalog.getNextCatalogs();
-    for (int i = 0; i < nextCatalogs.length; i++)
-    {
-      INextCatalog catalog = nextCatalogs[i];
-      ICatalog referencedCatalog = catalog.getReferencedCatalog();
-      if (referencedCatalog != null)
-      {
-        if (XMLCorePlugin.SYSTEM_CATALOG_ID.equals(referencedCatalog.getId()))
-        {
-          systemCatalog = referencedCatalog;
-        }
-        else if (XMLCorePlugin.USER_CATALOG_ID.equals(referencedCatalog.getId()))
-        {
-          userCatalog = referencedCatalog;
-        }
-      }
-    }
-  }
-
-  protected Control createDialogArea(Composite parent)
-  {
-    // we create a working copy of the 'User Settings' for the Catalog
-    // that we can modify
-    CatalogSet tempCatalogSet = new CatalogSet();
-    workingUserCatalog = tempCatalogSet.lookupOrCreateCatalog("working", ""); //$NON-NLS-1$ //$NON-NLS-2$
-
-    // TODO: add entries from the nested catalogs as well
-    workingUserCatalog.addEntriesFromCatalog(userCatalog);
-
-    Composite composite = new Composite(parent, SWT.NULL);
-    composite.setLayout(new GridLayout());
-    GridData gridData = new GridData(GridData.FILL_BOTH);
-    gridData.heightHint = 500;
-    composite.setLayoutData(gridData);
-    createCatalogEntriesView(composite);
-    createCatalogDetailsView(composite);
-
-    return composite;
-  }
-
-  protected void createCatalogEntriesView(Composite parent)
-  {
-    Group group = new Group(parent, SWT.NONE);
-    group.setLayout(new GridLayout());
-    GridData gridData = new GridData(GridData.FILL_BOTH);
-    gridData.widthHint = 370;
-    group.setLayoutData(gridData);
-    group.setText(XMLCatalogMessages.UI_LABEL_USER_ENTRIES);
-    group.setToolTipText(XMLCatalogMessages.UI_LABEL_USER_ENTRIES_TOOL_TIP);
-
-    /*
-     * create a subclass of XMLCatalogEntriesView which suppresses - the
-     * creation of 'Add', 'Edit', 'Delete' buttons - any method involving the
-     * above buttons
-     */
-    catalogEntriesView = new XMLCatalogEntriesView(group, workingUserCatalog, systemCatalog)
-    {
-      protected void createButtons(Composite parent)
-      {
-      }
-
-      protected void updateWidgetEnabledState()
-      {
-      }
-
-    };
-
-    // Only XML Schema entry is selectable
-    catalogEntriesView.setLayoutData(gridData);
-    XMLCatalogTreeViewer catalogTreeViewer = ((XMLCatalogTreeViewer) catalogEntriesView.getViewer());
-    catalogTreeViewer.resetFilters();
-
-    catalogTreeViewer.addFilter(new XMLCatalogTableViewerFilter(new String[] { ".xsd" }));
-  }
-
-  // Bug in the filter of the XML plugin, have to give a correct version here
-  // TODO: Waiting for the fix to be commited to XML plugin and
-  // be used by constellation
-  private class XMLCatalogTableViewerFilter extends ViewerFilter
-  {
-    private static final String W3_XMLSCHEMA_NAMESPACE = "http://www.w3.org/2001/";
-    protected String[] extensions;
-
-    public XMLCatalogTableViewerFilter(String[] extensions1)
-    {
-      this.extensions = extensions1;
-    }
-
-    public boolean isFilterProperty(Object element, Object property)
-    {
-      return false;
-    }
-
-    public boolean select(Viewer viewer, Object parent, Object element)
-    {
-      boolean result = false;
-      if (element instanceof ICatalogEntry)
-      {
-        ICatalogEntry catalogEntry = (ICatalogEntry) element;
-        for (int i = 0; i < extensions.length; i++)
-        {
-          // if the extension is correct and the namespace indicates
-          // that this entry is not the W3 XML Schema
-          if (catalogEntry.getURI().endsWith(extensions[i]) && !catalogEntry.getKey().startsWith(W3_XMLSCHEMA_NAMESPACE))
-          {
-            result = true;
-            break;
-          }
-        }
-      }
-      else if (element.equals(XMLCatalogTreeViewer.PLUGIN_SPECIFIED_ENTRIES_OBJECT) || element.equals(XMLCatalogTreeViewer.USER_SPECIFIED_ENTRIES_OBJECT))
-      {
-        return true;
-      }
-      return result;
-    }
-  }
-
-  protected void createCatalogDetailsView(Composite parent)
-  {
-    Group detailsGroup = new Group(parent, SWT.NONE);
-    detailsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-    detailsGroup.setLayout(new GridLayout());
-    detailsGroup.setText(XMLCatalogMessages.UI_LABEL_DETAILS);
-    final XMLCatalogEntryDetailsView detailsView = new XMLCatalogEntryDetailsView(detailsGroup);
-    ISelectionChangedListener listener = new ISelectionChangedListener()
-    {
-      public void selectionChanged(SelectionChangedEvent event)
-      {
-        ISelection selection = event.getSelection();
-        Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null;
-        if (selectedObject instanceof ICatalogEntry)
-        {
-          ICatalogEntry entry = (ICatalogEntry) selectedObject;
-          detailsView.setCatalogElement(entry);
-          currentSelectionLocation = entry.getURI();
-          currentSelectionNamespace = entry.getKey();
-        }
-        else
-        {
-          detailsView.setCatalogElement((ICatalogEntry) null);
-          currentSelectionLocation = "";
-          currentSelectionNamespace = "";
-        }
-      }
-    };
-    catalogEntriesView.getViewer().addSelectionChangedListener(listener);
-  }
-
-  public String getCurrentSelectionLocation()
-  {
-    return currentSelectionLocation;
-  }
-
-  public String getCurrentSelectionNamespace()
-  {
-    return currentSelectionNamespace;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SpecificationForExtensionsSchema.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SpecificationForExtensionsSchema.java
deleted file mode 100644
index 8b4a9a5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SpecificationForExtensionsSchema.java
+++ /dev/null
@@ -1,219 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2007 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.common.properties.sections.appinfo;
-
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.wst.xsd.ui.internal.common.commands.ExtensibleAddExtensionCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.ExtensibleRemoveExtensionNodeCommand;
-import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom.NodeFilter;
-
-public class SpecificationForExtensionsSchema
-{
-  private String description;
-  private String displayName;
-  private String namespaceURI;
-  private String location;
-  private ILabelProvider labelProvider;
-  private boolean isDefaultSchema = false;
-  private ExtensibleAddExtensionCommand addCommand;
-  private ExtensibleRemoveExtensionNodeCommand removeCommand;
-  private NodeFilter nodeFilter;
-  private String classification;
-  
-  /**
-   * Either the workspace-relative path of the xsd file or the namespace
-   * of the xsd file (if it come from the Catalog) 
-   */
-  private String sourceHint;
-  private boolean fromCatalog;
-
-  public SpecificationForExtensionsSchema()
-  {
-    super();
-  }
-
-  public SpecificationForExtensionsSchema(String desc) {
-	StringTokenizer tokenizer = new StringTokenizer(desc, "\t");
-	
-	// we must be sure that each 'desc' contains info in correct format
-	// no error checking here
-	description = tokenizer.nextToken();
-	displayName = tokenizer.nextToken();
-	namespaceURI = tokenizer.nextToken();
-	location = tokenizer.nextToken();
-	isDefaultSchema = tokenizer.nextToken().equals("true");
-	sourceHint = tokenizer.nextToken();
-	fromCatalog = tokenizer.nextToken().equals("true");
-  }
-
-/**
-   * @return Returns the description.
-   */
-  public String getDescription()
-  {
-    return description;
-  }
-
-  /**
-   * @param description
-   *          The description to set.
-   */
-  public void setDescription(String description)
-  {
-    this.description = description;
-  }
-
-  /**
-   * @return Returns the displayName.
-   */
-  public String getDisplayName()
-  {
-    return displayName;
-  }
-
-  /**
-   * @param name
-   *          The displayName to set.
-   */
-  public void setDisplayName(String displayName)
-  {
-    this.displayName = displayName;
-  }
-
-  /**
-   * @return Returns the namespaceURI.
-   */
-  public String getNamespaceURI()
-  {
-    return namespaceURI;
-  }
-
-  /**
-   * @param namespaceURI
-   *          The namespaceURI to set.
-   */
-  public void setNamespaceURI(String namespaceURI)
-  {
-    this.namespaceURI = namespaceURI;
-  }
-
-  /**
-   * @return Returns the location of the xsd file.
-   */
-  public String getLocation()
-  {
-    return location;
-  }
-
-  /**
-   * @param location
-   *          The location to be set
-   */
-  public void setLocation(String location)
-  {
-    this.location = location;
-  }
-
-  public ILabelProvider getLabelProvider()
-  {
-    return labelProvider;
-  }
-  
-  public void setLabelProvider(ILabelProvider labelProvider)
-  {
-    this.labelProvider = labelProvider;
-  }
-
-  public ExtensibleAddExtensionCommand getExtensibleAddExtensionCommand()
-  {
-    return addCommand;
-  }
-
-  public void setExtensibleAddExtensionCommand(ExtensibleAddExtensionCommand addCommand)
-  {
-    this.addCommand = addCommand;
-  }
-
-  public ExtensibleRemoveExtensionNodeCommand getExtensibleRemoveExtensionNodeCommand()
-  {
-    return removeCommand;
-  }
-
-  public void setExtensibleRemoveExtensionNodeCommand(ExtensibleRemoveExtensionNodeCommand removeCommand)
-  {
-    this.removeCommand = removeCommand;
-  }
-
-  public boolean isDefautSchema(){
-	  return isDefaultSchema ;
-  }
-
-  public void setDefautSchema(){
-	  isDefaultSchema = true;
-  }
-  
-  public void setSourceHint(String s){
-	  sourceHint = s;
-  }
-  
-  public String getSourceHint(){
-	  return sourceHint;
-  }
-
-  public boolean isFromCatalog() {
-	return fromCatalog;
-  }
-
-  public void setFromCatalog(boolean fromCatalog) {
-	this.fromCatalog = fromCatalog;
-  }
-  
-  /**
-   * There is no support for setting this via the extension point defined in the plugin.xml
-   * This allows extenders to provide a filter for a category that has been added 
-   * dynamically (programmatically)
-   * @param nodeFilter
-   */ 
-  public void setNodeFilter(NodeFilter nodeFilter)
-  {
-    this.nodeFilter = nodeFilter;
-  }
-  
-  /**
-   * Get the node filter
-   * @return NodeFilter
-   */
-  public NodeFilter getNodeFilter()
-  {
-    return nodeFilter;
-  }
-  
-  /**
-   * There is no support for setting this via the extension point defined in the plugin.xml
-   * This allows extenders to group categories into groups or classificationss  
-   * @param classification
-   */
-  public void setClassification(String classification)
-  {
-    this.classification = classification;
-  }
-  
-  /**
-   * Get the classification
-   * @return String
-   */
-  public String getClassification()
-  {
-    return classification;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/XSDExtensionTreeContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/XSDExtensionTreeContentProvider.java
deleted file mode 100644
index bf08f11..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/XSDExtensionTreeContentProvider.java
+++ /dev/null
@@ -1,109 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-public class XSDExtensionTreeContentProvider extends DOMExtensionTreeContentProvider
-{  
-  public Object[] getElements(Object inputElement)
-  {
-    if (inputElement instanceof XSDConcreteComponent)
-    {
-      XSDConcreteComponent component = (XSDConcreteComponent) inputElement;
-      List elementsAndAttributes = new ArrayList();
-      XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(component, false);
-      if (xsdAnnotation != null)
-      {
-        // Bug 137856 - Extension page of properties shouldn't display imported elements
-        // Added this if statement
-        if (xsdAnnotation.getSchema() == component.getSchema())
-        {
-          List appInfoList = xsdAnnotation.getApplicationInformation();
-          Element appInfoElement = null;
-          if (appInfoList.size() > 0)
-          {
-            appInfoElement = (Element) appInfoList.get(0);
-          }
-          if (appInfoElement != null)
-          {
-            for (Iterator it = appInfoList.iterator(); it.hasNext();)
-            {
-              Object obj = it.next();
-              if (obj instanceof Element)
-              {
-                Element appInfo = (Element) obj;
-                NodeList nodeList = appInfo.getChildNodes();
-                int length = nodeList.getLength();
-                for (int i = 0; i < length; i++)
-                {
-                  Node node = nodeList.item(i);
-                  if (node instanceof Element)
-                  {
-                    elementsAndAttributes.add(node);
-                  }
-                }
-              }
-            }
-            
-            /** Construct attributes list */
-            NamedNodeMap attributes = appInfoElement.getAttributes();
-            if (attributes != null)
-            {
-              // String defaultNamespace =
-              // (String)component.getSchema().getQNamePrefixToNamespaceMap().get("");
-              int length = attributes.getLength();
-              for (int i = 0; i < length; i++)
-              {
-                Node oneAttribute = attributes.item(i);
-                if (!isXmlnsAttribute(oneAttribute))
-                {
-                  String namespace = oneAttribute.getNamespaceURI();
-                  boolean isExtension = true;
-                  if (namespace == null && oneAttribute.getPrefix() == null)
-                  {
-                    isExtension = false;
-                  }
-                  else if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(namespace))
-                  {
-                    isExtension = true;
-                  }
-                  if (isExtension)
-                  {
-                    elementsAndAttributes.add(oneAttribute);
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-      return elementsAndAttributes.toArray();
-    }
-    return Collections.EMPTY_LIST.toArray();
-  }
-
-  private static boolean isXmlnsAttribute(Node attribute)
-  {
-    String prefix = attribute.getPrefix();
-    if (prefix != null)
-    {
-      // this handle the xmlns:foo="blah" case
-      return "xmlns".equals(prefix); //$NON-NLS-1$
-    }
-    else
-    {
-      // this handles the xmlns="blah" case
-      return "xmlns".equals(attribute.getNodeName()); //$NON-NLS-1$
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/DefaultListNodeEditorConfiguration.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/DefaultListNodeEditorConfiguration.java
deleted file mode 100644
index ce45be8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/DefaultListNodeEditorConfiguration.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom;
-
-
-public class DefaultListNodeEditorConfiguration extends ListNodeEditorConfiguration
-{
-  private String[] values;
-  
-  public DefaultListNodeEditorConfiguration(String[] values)
-  {
-    this.values = values; 
-  }
- 
-  public Object[] getValues(Object propertyObject)
-  {
-    return values;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/DialogNodeEditorConfiguration.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/DialogNodeEditorConfiguration.java
deleted file mode 100644
index 675c274..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/DialogNodeEditorConfiguration.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom;
-
-import org.eclipse.swt.graphics.Image;
-
-public abstract class DialogNodeEditorConfiguration extends NodeEditorConfiguration
-{
-  public int getStyle()
-  {        
-    return STYLE_DIALOG;
-  }
-  
-  public String getButonText()
-  {
-    return null;
-  }
-  
-  public Image getButtonImage()
-  {
-    return null;
-  }
-  
-  public abstract void invokeDialog();
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/ListNodeEditorConfiguration.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/ListNodeEditorConfiguration.java
deleted file mode 100644
index 613396e..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/ListNodeEditorConfiguration.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom;
-
-import org.eclipse.jface.viewers.LabelProvider;
-
-public abstract class ListNodeEditorConfiguration extends NodeEditorConfiguration
-{
-  private LabelProvider labelProvider;
- 
-  public LabelProvider getLabelProvider()
-  {
-    return labelProvider;
-  }
-  
-  public int getStyle()
-  {
-    return STYLE_COMBO;
-  }    
-
-  public void setLabelProvider(LabelProvider labelProvider)
-  {
-    this.labelProvider = labelProvider;
-  }
-
-  public abstract Object[] getValues(Object propertyObject);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeCustomizationRegistry.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeCustomizationRegistry.java
deleted file mode 100644
index ca321b1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeCustomizationRegistry.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom;
-
-import java.util.HashMap;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.viewers.ILabelProvider;
-
-public class NodeCustomizationRegistry
-{
-  private static final String NAMESPACE = "namespace"; //$NON-NLS-1$  
-  private static final String LABEL_PROVIDER_CLASS_ATTRIBUTE_NAME = "labelProviderClass";     
-  private static final String NODE_EDITOR_PROVIDER_CLASS_ATTRIBUTE_NAME = "nodeEditorProviderClass"; //$NON-NLS-1$
-  private static final String FILTER_CLASS_ATTRIBUTE_NAME = "filterClass"; 
-
-
-  protected String extensionId;
-  protected HashMap map;
-
-  public NodeCustomizationRegistry(String propertyEditorExtensionId)
-  {
-    extensionId = "org.eclipse.wst.xsd.ui.extensibilityNodeCustomizations";//propertyEditorExtensionId;
-  }  
-  
-  private class Descriptor
-  {
-    IConfigurationElement configurationElement;
-    NodeEditorProvider nodeEditorProvider;
-    NodeFilter nodeFilter;    
-    boolean nodeEditorProviderFailedToLoad = false;
-    boolean labelProviderFailedToLoad = false;
-    boolean nodeFilterFailedToLoad = false;    
-    
-    Descriptor(IConfigurationElement element)
-    {
-      this.configurationElement = element;
-    }
-    
-    NodeEditorProvider lookupOrCreateNodeEditorProvider()
-    {
-      if (nodeEditorProvider == null && !nodeEditorProviderFailedToLoad)
-      {
-        try
-        {
-          nodeEditorProvider = (NodeEditorProvider)configurationElement.createExecutableExtension(NODE_EDITOR_PROVIDER_CLASS_ATTRIBUTE_NAME);
-        }
-        catch (Exception e) 
-        {
-          nodeEditorProviderFailedToLoad = true;
-        }
-      } 
-      return nodeEditorProvider;
-    }
-    
-    ILabelProvider createLabelProvider()
-    {
-      if (!labelProviderFailedToLoad)
-      {  
-        try
-        {
-          return (ILabelProvider)configurationElement.createExecutableExtension(LABEL_PROVIDER_CLASS_ATTRIBUTE_NAME);
-        }
-        catch (Exception e) 
-        {
-          labelProviderFailedToLoad = true;
-        }
-      }
-      return null;
-    }
-
-    public NodeFilter getNodeFilter()
-    {
-      if (!nodeEditorProviderFailedToLoad)
-      {  
-        try
-        {
-          nodeFilter = (NodeFilter)configurationElement.createExecutableExtension(FILTER_CLASS_ATTRIBUTE_NAME);
-        }
-        catch (Exception e) 
-        {
-          nodeEditorProviderFailedToLoad = true;
-        }
-      }
-      return nodeFilter;
-    }
-  }
-
-  
-  private HashMap initMap()
-  {
-    HashMap theMap = new HashMap();
-    IConfigurationElement[] extensions = Platform.getExtensionRegistry().getConfigurationElementsFor("org.eclipse.wst.xsd.ui.extensibilityNodeCustomizations");
-    for (int i = 0; i < extensions.length; i++)
-    {
-      IConfigurationElement configurationElement = extensions[i];
-      String namespace = configurationElement.getAttribute(NAMESPACE);
-      if (namespace != null)
-      {
-        theMap.put(namespace, new Descriptor(configurationElement));
-      }     
-    }    
-    return theMap;
-  }
-
-  private Descriptor getDescriptor(String namespace)
-  {
-    map = null;
-    if (namespace != null)
-    { 
-      if (map == null)
-      {  
-        map = initMap();
-      }  
-      return (Descriptor)map.get(namespace);
-    }
-    return null;     
-  }
-  
-  public NodeEditorProvider getNodeEditorProvider(String namespace)
-  {     
-    Descriptor descriptor = getDescriptor(namespace);
-    if (descriptor != null)
-    {  
-      return descriptor.lookupOrCreateNodeEditorProvider();       
-    }
-    return null;
-  }
-  
-  public ILabelProvider getLabelProvider(String namespace)
-  {
-    Descriptor descriptor = getDescriptor(namespace);
-    if (descriptor != null)
-    {  
-      return descriptor.createLabelProvider();       
-    }
-    return null;    
-  }
-  
-  public NodeFilter getNodeFilter(String namespace)
-  {
-    Descriptor descriptor = getDescriptor(namespace);
-    if (descriptor != null)
-    {  
-      return descriptor.getNodeFilter();       
-    }
-    return null;    
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeEditorConfiguration.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeEditorConfiguration.java
deleted file mode 100644
index 114565b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeEditorConfiguration.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom;
-
-import org.w3c.dom.Node;
-
-public abstract class NodeEditorConfiguration
-{  
-  public final static int STYLE_NONE = 0;   
-  public final static int STYLE_TEXT = 1; 
-  public final static int STYLE_COMBO = 2;
-  public final static int STYLE_DIALOG = 4;   
-  
-  public abstract int getStyle();
-  
-  private Node node;
-  private Node parentNode;
-
-  public Node getNode()
-  {
-    return node;
-  }
-  public void setNode(Node node)
-  {
-    this.node = node;
-  }
-  public Node getParentNode()
-  {
-    return parentNode;
-  }
-  public void setParentNode(Node parentNode)
-  {
-    this.parentNode = parentNode;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeEditorProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeEditorProvider.java
deleted file mode 100644
index f34bcfa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeEditorProvider.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom;
-
-
-public abstract class NodeEditorProvider
-{
-  public abstract NodeEditorConfiguration getNodeEditorConfiguration(String parentName, String nodeName); 
-  //public abstract NodeEditorConfiguration getNodeEditorConfiguration(Node node);   
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeFilter.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeFilter.java
deleted file mode 100644
index 377ad25..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/custom/NodeFilter.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.custom;
-
-import org.w3c.dom.Node;
-
-public class NodeFilter
-{  
-  public boolean isApplicableContext(Node parentNode, int nodeType, String namespace, String name)
-  {  
-    return true;
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/Messages.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/Messages.java
deleted file mode 100644
index b91c778..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/Messages.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.util;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS
-{
-  static 
-  {
-    NLS.initializeMessages("org.eclipse.wst.xsd.ui.internal.common.util.messages", Messages.class); //$NON-NLS-1$
-  }
-
-  public Messages()
-  {
-    super();
-  }
-  
-  public static String _UI_ACTION_OPEN_IN_NEW_EDITOR;
-  public static String _UI_ACTION_ADD_ATTRIBUTE_GROUP;
-  public static String _UI_ACTION_ADD_ATTRIBUTE_GROUP_REF;
-  public static String _UI_ACTION_ADD_ATTRIBUTE_GROUP_DEFINITION;
-  public static String _UI_ACTION_ADD_GROUP_REF;
-  public static String _UI_ACTION_ADD_GROUP;
-  public static String _UI_ACTION_DELETE;
-  public static String _UI_ACTION_ADD_COMPLEX_TYPE;
-  public static String _UI_ACTION_ADD_ATTRIBUTE;
-  public static String _UI_ACTION_ADD_SIMPLE_TYPE;
-  public static String _UI_ACTION_UPDATE_ELEMENT_REFERENCE;
-  public static String _UI_LABEL_NO_ITEMS_SELECTED;
-  public static String _UI_ACTION_ADD;
-  public static String _UI_ACTION_ADD_WITH_DOTS;
-  public static String _UI_ACTION_EDIT_WITH_DOTS;
-  public static String _UI_ACTION_CHANGE_PATTERN;
-  public static String _UI_ACTION_ADD_ENUMERATION;
-  public static String _UI_ACTION_ADD_PATTERN;
-  public static String _UI_ACTION_ADD_ENUMERATIONS;
-  public static String _UI_ACTION_DELETE_CONSTRAINTS;
-  public static String _UI_ACTION_DELETE_PATTERN;
-  public static String _UI_ACTION_DELETE_ENUMERATION;
-  public static String _UI_ACTION_SET_ENUMERATION_VALUE;
-  public static String _UI_LABEL_PATTERN;
-  public static String _UI_ACTION_CHANGE_MAXIMUM_OCCURRENCE;
-  public static String _UI_ERROR_INVALID_VALUE_FOR_MAXIMUM_OCCURRENCE;
-  public static String _UI_ACTION_CHANGE_MINIMUM_OCCURRENCE;
-  public static String _UI_ACTION_ADD_APPINFO_ELEMENT;
-  public static String _UI_ACTION_ADD_APPINFO_ATTRIBUTE;
-  public static String _UI_ACTION_DELETE_APPINFO_ELEMENT;
-  public static String _UI_ACTION_DELETE_APPINFO_ATTRIBUTE;
-  public static String _UI_ACTION_CHANGE_CONTENT_MODEL;
-  public static String _UI_ACTION_RENAME;
-  public static String _UI_ERROR_INVALID_NAME;
-  public static String _UI_LABEL_NAME;
-  public static String _UI_LABEL_REFERENCE;
-  public static String _UI_ACTION_UPDATE_MAXIMUM_OCCURRENCE;
-  public static String _UI_ACTION_UPDATE_MINIMUM_OCCURRENCE;
-  public static String _UI_LABEL_READONLY;
-  public static String _UI_LABEL_INCLUSIVE;
-  public static String _UI_LABEL_COLLAPSE_WHITESPACE;
-  public static String _UI_LABEL_SPECIFIC_CONSTRAINT_VALUES;
-  public static String _UI_LABEL_RESTRICT_VALUES_BY;
-  public static String _UI_LABEL_ENUMERATIONS;
-  public static String _UI_LABEL_PATTERNS;
-  public static String _UI_LABEL_MINIMUM_LENGTH;
-  public static String _UI_LABEL_MAXIMUM_LENGTH;
-  public static String _UI_LABEL_CONSTRAINTS_ON_LENGTH_OF;
-  public static String _UI_LABEL_CONSTRAINTS_ON_VALUE_OF;
-  public static String _UI_LABEL_MINIMUM_VALUE;
-  public static String _UI_LABEL_MAXIMUM_VALUE;
-  public static String _UI_LABEL_CONTRAINTS_ON;
-  public static String _UI_LABEL_TYPE;
-  public static String _UI_ACTION_CONSTRAIN_LENGTH;
-  public static String _UI_ACTION_UPDATE_BOUNDS;
-  public static String _UI_ACTION_COLLAPSE_WHITESPACE;
-  public static String _UI_LABEL_BASE;
-  public static String _UI_ERROR_INVALID_FILE;
-  public static String _UI_LABEL_EXTENSIONS;
-  public static String _UI_ACTION_ADD_EXTENSION_COMPONENT;
-  public static String _UI_ACTION_DELETE_EXTENSION_COMPONENT;
-  public static String _UI_LABEL_UP;
-  public static String _UI_LABEL_DOWN;
-  public static String _UI_LABEL_EXTENSION_DETAILS;
-  public static String _UI_ACTION_ADD_DOCUMENTATION;
-  public static String _UI_ACTION_ADD_EXTENSION_COMPONENTS;
-  public static String _UI_LABEL_EXTENSION_CATEGORIES;
-  public static String _UI_LABEL_ADD_WITH_DOTS;
-  public static String _UI_LABEL_DELETE;
-  public static String _UI_LABEL_EDIT;
-  public static String _UI_LABEL_AVAILABLE_COMPONENTS_TO_ADD;
-  public static String _UI_LABEL_EDIT_CATEGORY;
-  public static String _UI_ERROR_INVALID_CATEGORY;
-  public static String _UI_ERROR_FILE_CANNOT_BE_PARSED;
-  public static String _UI_ERROR_VALIDATE_THE_FILE;
-  public static String _UI_LABEL_SCHEMA;
-  public static String _UI_LABEL_ADD_CATEGORY;
-  public static String _UI_ERROR_NAME_ALREADY_USED;
-  public static String _UI_ACTION_BROWSE_WORKSPACE;
-  public static String _UI_LABEL_SELECT_XSD_FILE;
-  public static String _UI_DESCRIPTION_CHOOSE_XSD_FILE;
-  public static String _UI_ACTION_BROWSE_CATALOG;
-  public static String _UI_ACTION_ADD_ANY_ELEMENT;
-  public static String _UI_ACTION_ADD_ANY_ATTRIBUTE;
-  public static String _UI_ACTION_SET_BASE_TYPE;
-  public static String _UI_TOOLTIP_RENAME_REFACTOR;
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/XSDCommonUIUtils.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/XSDCommonUIUtils.java
deleted file mode 100644
index 3d1dcd5..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/XSDCommonUIUtils.java
+++ /dev/null
@@ -1,520 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 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.common.util;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.swt.graphics.Image;
-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.wst.xsd.ui.internal.adt.design.ImageOverlayDescriptor;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.xsd.XSDAnnotation;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDAttributeUse;
-import org.eclipse.xsd.XSDComplexTypeContent;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDConcreteComponent;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDFacet;
-import org.eclipse.xsd.XSDFactory;
-import org.eclipse.xsd.XSDFeature;
-import org.eclipse.xsd.XSDIdentityConstraintDefinition;
-import org.eclipse.xsd.XSDImport;
-import org.eclipse.xsd.XSDInclude;
-import org.eclipse.xsd.XSDModelGroup;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDNotationDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDRedefine;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.XSDWildcard;
-import org.eclipse.xsd.XSDXPathDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-
-public class XSDCommonUIUtils
-{
-  public XSDCommonUIUtils()
-  {
-    super();
-  }
-  
-  public static Image getUpdatedImage(XSDConcreteComponent input, Image baseImage, boolean isReadOnly)
-  {
-    XSDAnnotation xsdAnnotation = getInputXSDAnnotation(input, false);
-    
-    if (xsdAnnotation != null)
-    {
-      if (xsdAnnotation.getApplicationInformation().size() > 0)
-      {
-        // Will use the class name appended by the read only state as the name of the image.
-        // There is a disabled and an enabled version of each baseImage, so we can't simply
-        // use the component name as the name of the image
-        String imageName = input.getClass().getName() + isReadOnly;
-        Image newImage = XSDEditorPlugin.getDefault().getImageRegistry().get(imageName);
-        if (newImage == null)
-        {
-          ImageOverlayDescriptor ovr = new ImageOverlayDescriptor(baseImage, isReadOnly);
-          newImage = ovr.getImage();
-          XSDEditorPlugin.getDefault().getImageRegistry().put(imageName, newImage);
-        }
-        return newImage;
-      }
-    }
-    return baseImage;
-  }
-
-  public static XSDAnnotation getInputXSDAnnotation(XSDConcreteComponent input, boolean createIfNotExist)
-  {
-    XSDAnnotation xsdAnnotation = null;
-    XSDFactory factory = XSDFactory.eINSTANCE;
-    if (input instanceof XSDAttributeDeclaration)
-    {
-      XSDAttributeDeclaration xsdComp = (XSDAttributeDeclaration) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDAttributeGroupDefinition)
-    {
-      XSDAttributeGroupDefinition xsdComp = (XSDAttributeGroupDefinition) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDElementDeclaration)
-    {
-      XSDElementDeclaration xsdComp = (XSDElementDeclaration) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDNotationDeclaration)
-    {
-      XSDNotationDeclaration xsdComp = (XSDNotationDeclaration) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDXPathDefinition)
-    {
-      XSDXPathDefinition xsdComp = (XSDXPathDefinition) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDModelGroup)
-    {
-      XSDModelGroup xsdComp = (XSDModelGroup) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDModelGroupDefinition)
-    {
-      XSDModelGroupDefinition xsdComp = (XSDModelGroupDefinition) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDIdentityConstraintDefinition)
-    {
-      XSDIdentityConstraintDefinition xsdComp = (XSDIdentityConstraintDefinition) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDWildcard)
-    {
-      XSDWildcard xsdComp = (XSDWildcard) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDSchema)
-    {
-      XSDSchema xsdComp = (XSDSchema) input;
-      List list = xsdComp.getAnnotations();
-      if (list.size() > 0)
-      {
-        xsdAnnotation = (XSDAnnotation) list.get(0);
-      }
-      else
-      {
-        if (createIfNotExist && xsdAnnotation == null)
-        {
-          xsdAnnotation = factory.createXSDAnnotation();
-          if (xsdComp.getContents() != null)
-          {
-            xsdComp.getContents().add(0, xsdAnnotation);
-          }
-        }
-      }
-      return xsdAnnotation;
-    }
-    else if (input instanceof XSDFacet)
-    {
-      XSDFacet xsdComp = (XSDFacet) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDTypeDefinition)
-    {
-      XSDTypeDefinition xsdComp = (XSDTypeDefinition) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDInclude)
-    {
-      XSDInclude xsdComp = (XSDInclude) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDImport)
-    {
-      XSDImport xsdComp = (XSDImport) input;
-      xsdAnnotation = xsdComp.getAnnotation();
-      if (createIfNotExist && xsdAnnotation == null)
-      {
-        xsdAnnotation = factory.createXSDAnnotation();
-        xsdComp.setAnnotation(xsdAnnotation);
-      }
-    }
-    else if (input instanceof XSDRedefine)
-    {
-      XSDRedefine xsdComp = (XSDRedefine) input;
-      List list = xsdComp.getAnnotations();
-      if (list.size() > 0)
-      {
-        xsdAnnotation = (XSDAnnotation) list.get(0);
-      }
-      else
-      {
-        if (createIfNotExist && xsdAnnotation == null)
-        {
-          // ?
-        }
-      }
-      return xsdAnnotation;
-    }
-    else if (input instanceof XSDAnnotation)
-    {
-      xsdAnnotation = (XSDAnnotation) input;
-    }
-
-    if (createIfNotExist)
-    {
-      formatAnnotation(xsdAnnotation);
-    }
-
-    return xsdAnnotation;
-  }
-
-  private static void formatAnnotation(XSDAnnotation annotation)
-  {
-    Element element = annotation.getElement();
-    formatChild(element);
-  }
-
-  public static void formatChild(Node 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();
-      }
-    }
-  }
-
-  public static String createUniqueElementName(String prefix, List elements)
-  {
-    ArrayList usedNames = new ArrayList();
-    for (Iterator i = elements.iterator(); i.hasNext();)
-    {
-      usedNames.add(getDisplayName((XSDNamedComponent) i.next()));
-    }
-
-    int i = 1;
-    String testName = prefix;
-    while (usedNames.contains(testName))
-    {
-      testName = prefix + i++;
-    }
-    return testName;
-  }
-
-  public static String getDisplayName(XSDNamedComponent component)
-  {
-    if (component instanceof XSDTypeDefinition)
-      return getDisplayNameFromXSDType((XSDTypeDefinition) component);
-
-    if (component instanceof XSDFeature)
-    {
-      XSDFeature feature = (XSDFeature) component;
-      if (feature.getName() != null)
-        return feature.getName();
-      else if (feature.getResolvedFeature() != null && feature.getResolvedFeature().getName() != null)
-        return feature.getResolvedFeature().getName();
-    }
-
-    return component.getName();
-
-  }
-
-  public static String getDisplayNameFromXSDType(XSDTypeDefinition type)
-  {
-    return getDisplayNameFromXSDType(type, true);
-  }
-
-  public static String getDisplayNameFromXSDType(XSDTypeDefinition type, boolean returnPrimitiveParents)
-  {
-    if (type == null)
-      return null;
-
-    if (type.getName() == null || type.getName().length() == 0)
-    {
-      if (returnPrimitiveParents && isPrimitiveType(type))
-      {
-        return getDisplayNameFromXSDType(type.getBaseType());
-      }
-
-      EObject container = type.eContainer();
-
-      while (container != null)
-      {
-        if (container instanceof XSDNamedComponent && ((XSDNamedComponent) container).getName() != null)
-        {
-          return ((XSDNamedComponent) container).getName();
-        }
-        container = container.eContainer();
-      }
-      return null;
-    }
-    else
-      return type.getName();
-  }
-
-  public static boolean isPrimitiveType(XSDTypeDefinition type)
-  {
-    if (type instanceof XSDComplexTypeDefinition)
-      return false;
-
-    XSDTypeDefinition baseType = null;
-    if (type != null)
-    {
-      baseType = type.getBaseType();
-      XSDTypeDefinition origType = baseType; // KC: although invalid, we need to
-                                            // prevent cycles and to avoid an
-                                            // infinite loop
-      while (baseType != null && !XSDConstants.isAnySimpleType(baseType) && !XSDConstants.isAnyType(baseType) && origType != baseType)
-      {
-        type = baseType;
-        baseType = type.getBaseType();
-      }
-      baseType = type;
-    }
-    else
-    {
-      return false;
-    }
-
-    return (XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(baseType.getTargetNamespace()));
-  }
-
-  public static XSDSimpleTypeDefinition getAnonymousSimpleType(XSDFeature input, XSDSimpleTypeDefinition xsdSimpleTypeDefinition)
-  {
-    XSDSimpleTypeDefinition anonymousSimpleType = null;
-    XSDTypeDefinition localType = null;
-
-    if (input instanceof XSDElementDeclaration)
-    {
-      localType = ((XSDElementDeclaration) input).getAnonymousTypeDefinition();
-    }
-    else if (input instanceof XSDAttributeDeclaration)
-    {
-      localType = ((XSDAttributeDeclaration) input).getAnonymousTypeDefinition();
-    }
-
-    if (localType instanceof XSDSimpleTypeDefinition)
-    {
-      anonymousSimpleType = (XSDSimpleTypeDefinition) localType;
-    }
-    return anonymousSimpleType;
-  }
-
-  public static List getChildElements(XSDModelGroup group)
-  {
-    List children = new ArrayList();
-    if (group == null) return children;
-    for (Iterator i = group.getContents().iterator(); i.hasNext();)
-    {
-      XSDParticle next = (XSDParticle) i.next();
-      if (next.getContent() instanceof XSDFeature)
-      {
-        children.add(next.getContent());
-      }
-      else if (next.getTerm() instanceof XSDModelGroup)
-      {
-        children.addAll(getChildElements((XSDModelGroup) next.getTerm()));
-      }
-    }
-    return children;
-  }
-
-  public static List getAllAttributes(XSDComplexTypeDefinition xsdComplexType)
-  {
-    List attributes = getChildElements(xsdComplexType);
-    attributes.addAll(getChildAttributes(xsdComplexType));
-
-    return attributes;
-  }
-
-  public static List getAllAttributes(XSDModelGroupDefinition xsdModelGroupDefinition)
-  {
-    List attributes = getChildElements(xsdModelGroupDefinition);
-
-    return attributes;
-  }
-  
-  public static List getInheritedAttributes(XSDComplexTypeDefinition ct)
-  {
-    List attrs = new ArrayList();
-    XSDTypeDefinition parent = ct.getBaseTypeDefinition();
-    if (parent != null && parent instanceof XSDComplexTypeDefinition && ct.isSetDerivationMethod())
-    {
-      attrs.addAll(getAllAttributes((XSDComplexTypeDefinition) parent));
-      if (! ct.isCircular()) attrs.addAll(getInheritedAttributes((XSDComplexTypeDefinition) parent));
-    }
-
-    return attrs;
-  }
-
-  public static List getChildElements(XSDComplexTypeDefinition ct)
-  {
-    return getChildElements(getModelGroup(ct));
-  }
-  
-  public static List getChildElements(XSDModelGroupDefinition xsdModelGroupDefinition)
-  {
-    return getChildElements(xsdModelGroupDefinition.getModelGroup());
-  }
-  
-  public static XSDModelGroup getModelGroup(XSDComplexTypeDefinition cType)
-  {
-    XSDParticle particle = cType.getComplexType();
-
-    if (particle == null || particle.eContainer() != cType)
-      return null;
-
-    Object particleContent = particle.getContent();
-    XSDModelGroup group = null;
-
-    if (particleContent instanceof XSDModelGroupDefinition)
-      group = ((XSDModelGroupDefinition) particleContent).getResolvedModelGroupDefinition().getModelGroup();
-    else if (particleContent instanceof XSDModelGroup)
-      group = (XSDModelGroup) particleContent;
-
-    if (group == null)
-      return null;
-
-    if (group.getContents().isEmpty() || group.eResource() != cType.eResource())
-    {
-      XSDComplexTypeContent content = cType.getContent();
-      if (content instanceof XSDParticle)
-        group = (XSDModelGroup) ((XSDParticle) content).getContent();
-    }
-
-    return group;
-  }
-
-  public static List getChildAttributes(XSDComplexTypeDefinition ct)
-  {
-    EList attrContents = ct.getAttributeContents();
-    List attrs = new ArrayList();
-    for (int i = 0; i < attrContents.size(); i++)
-    {
-      Object next = attrContents.get(i);
-
-      if (next instanceof XSDAttributeUse)
-      {
-        attrs.add(((XSDAttributeUse) next).getContent().getResolvedAttributeDeclaration());
-      }
-      else if (next instanceof XSDAttributeGroupDefinition)
-      {
-        //XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition) next;
-      }
-    }
-    return attrs;
-  }
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/messages.properties b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/messages.properties
deleted file mode 100644
index 7dc29a6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/messages.properties
+++ /dev/null
@@ -1,96 +0,0 @@
-###############################################################################
-# Copyright (c) 2001, 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
-###############################################################################
-_UI_ACTION_OPEN_IN_NEW_EDITOR=Open In New Editor
-_UI_ACTION_DELETE_CONSTRAINTS=Delete Constraints
-_UI_ACTION_DELETE_ENUMERATION=Delete Enumeration
-_UI_ACTION_DELETE_APPINFO_ELEMENT=Delete AppInfo Element
-_UI_ACTION_DELETE_APPINFO_ATTRIBUTE=Delete AppInfo Attribute
-_UI_ACTION_DELETE_EXTENSION_COMPONENT=Delete Extension Component
-_UI_ACTION_ADD_ATTRIBUTE_GROUP=Add Attribute Group
-_UI_ACTION_ADD_APPINFO_ELEMENT=Add AppInfo Element
-_UI_ACTION_ADD_ATTRIBUTE=Add Attribute
-_UI_ACTION_ADD_GROUP_REF=Add Group Ref
-_UI_ACTION_ADD_ANY_ELEMENT=Add An&y
-_UI_ACTION_ADD_ANY_ATTRIBUTE=Add Any Attribute
-_UI_ACTION_ADD_WITH_DOTS=Add...
-_UI_ACTION_UPDATE_BOUNDS=Update bounds
-_UI_ACTION_ADD_COMPLEX_TYPE=Add Complex Type
-_UI_ACTION_ADD_ENUMERATIONS=Add Enumerations
-_UI_ACTION_ADD_DOCUMENTATION=Add Documentation
-_UI_ACTION_CONSTRAIN_LENGTH=Constrain length
-_UI_ACTION_BROWSE_WORKSPACE=Workspace
-_UI_LABEL_NO_ITEMS_SELECTED=No items selected
-_UI_LABEL_EXTENSION_DETAILS=Extension Details
-_UI_LABEL_EXTENSION_CATEGORIES=Extension Categories:
-_UI_LABEL_COLLAPSE_WHITESPACE=Collapse whitespace
-_UI_LABEL_RESTRICT_VALUES_BY=Restrict values by:
-_UI_LABEL_MINIMUM_LENGTH=Minimum length:
-_UI_LABEL_MAXIMUM_LENGTH=Maximum length:
-_UI_LABEL_SELECT_XSD_FILE=Select XSD file
-_UI_LABEL_CONSTRAINTS_ON_VALUE_OF=Constraints on value of 
-_UI_ACTION_ADD_SIMPLE_TYPE=Add Simple Type
-_UI_ACTION_EDIT_WITH_DOTS=Edit...
-_UI_ACTION_CHANGE_PATTERN=Change pattern
-_UI_ACTION_ADD_ENUMERATION=Add Enumeration
-_UI_ACTION_DELETE_PATTERN=Delete Pattern
-_UI_ACTION_BROWSE_CATALOG=Catalog
-_UI_ACTION_ADD_GROUP=Add Group
-_UI_ACTION_ADD_PATTERN=Add pattern
-_UI_ACTION_SET_BASE_TYPE=Set Base Type
-_UI_ERROR_INVALID_NAME=Invalid name
-_UI_ERROR_INVALID_FILE=Invalid file
-_UI_ERROR_INVALID_CATEGORY=Invalid Category
-_UI_ACTION_DELETE=Delete
-_UI_ACTION_ADD=Add
-_UI_ACTION_RENAME=Rename
-_UI_LABEL_PATTERN=Pattern
-_UI_LABEL_PATTERNS=Patterns
-_UI_LABEL_NAME=Name:
-_UI_LABEL_TYPE=Type: 
-_UI_LABEL_BASE=Base
-_UI_LABEL_UP=Up
-_UI_LABEL_DOWN=Down
-_UI_LABEL_DELETE=Delete
-_UI_LABEL_SCHEMA=Schema:
-_UI_LABEL_EDIT=Edit
-_UI_LABEL_REFERENCE=Reference:
-_UI_LABEL_READONLY=ReadOnly
-_UI_LABEL_INCLUSIVE=Inclusive
-_UI_LABEL_ENUMERATIONS=Enumerations
-_UI_LABEL_EXTENSIONS=Extensions
-_UI_LABEL_MINIMUM_VALUE=Minimum value:
-_UI_LABEL_MAXIMUM_VALUE=Maximum value:
-_UI_LABEL_CONTRAINTS_ON=Constraints on 
-_UI_LABEL_ADD_WITH_DOTS=Add...
-_UI_LABEL_ADD_CATEGORY=Add Category
-_UI_LABEL_EDIT_CATEGORY=Edit Category
-_UI_ACTION_ADD_ATTRIBUTE_GROUP_REF=Add Attribute Group Ref
-_UI_ACTION_ADD_EXTENSION_COMPONENT=Add Extension Component
-_UI_ACTION_ADD_EXTENSION_COMPONENTS=Add Extension Components
-_UI_LABEL_CONSTRAINTS_ON_LENGTH_OF=Constraints on length of 
-_UI_ACTION_ADD_APPINFO_ATTRIBUTE=Add AppInfo Attribute
-_UI_ACTION_SET_ENUMERATION_VALUE=Set Enumeration Value
-_UI_ACTION_UPDATE_ELEMENT_REFERENCE=Update Element Reference
-_UI_ACTION_UPDATE_MAXIMUM_OCCURRENCE=Update Maximum Occurrence
-_UI_ACTION_UPDATE_MINIMUM_OCCURRENCE=Update Minimum Occurrence
-_UI_ACTION_CHANGE_MAXIMUM_OCCURRENCE=Change Maximum Occurrence
-_UI_ACTION_CHANGE_MINIMUM_OCCURRENCE=Change Minimum Occurrence
-_UI_LABEL_SPECIFIC_CONSTRAINT_VALUES=Specific constraint values
-_UI_LABEL_AVAILABLE_COMPONENTS_TO_ADD=Available components to Add:
-_UI_ACTION_CHANGE_CONTENT_MODEL=Change Content Model
-_UI_ERROR_FILE_CANNOT_BE_PARSED=The xsd file of the selected category cannot be parsed.
-_UI_DESCRIPTION_CHOOSE_XSD_FILE=Choose an XSD file containing schema for your extensible components
-_UI_ERROR_VALIDATE_THE_FILE=Please validate the file.
-_UI_ERROR_NAME_ALREADY_USED=The name is already being used.
-_UI_ACTION_COLLAPSE_WHITESPACE=Collapse whitespace
-_UI_ACTION_ADD_ATTRIBUTE_GROUP_DEFINITION=Add Attribute Group Definition
-_UI_ERROR_INVALID_VALUE_FOR_MAXIMUM_OCCURRENCE=Invalid value for maximum occurrence
-_UI_TOOLTIP_RENAME_REFACTOR=Click here to invoke the Rename refactoring.
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
deleted file mode 100644
index bb0280b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/Checks.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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");  //$NON-NLS-1$
-		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");  //$NON-NLS-1$
-
-		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
deleted file mode 100644
index af89666..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/INameUpdating.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index 1ff48fe..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/IReferenceUpdating.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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/PerformUnsavedRefactoringOperation.java b/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/PerformUnsavedRefactoringOperation.java
deleted file mode 100644
index 10739ec..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/PerformUnsavedRefactoringOperation.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor;
-
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.CompositeChange;
-import org.eclipse.ltk.core.refactoring.TextFileChange;
-import org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring;
-
-public class PerformUnsavedRefactoringOperation implements IWorkspaceRunnable 
-{ 
-  private ProcessorBasedRefactoring refactoring;
-  
-  public PerformUnsavedRefactoringOperation(ProcessorBasedRefactoring refactoring)
-  {
-    this.refactoring = refactoring;
-  }
-  
-  public void run(IProgressMonitor pm)
-  {
-    if (pm == null)
-    {
-      pm = new NullProgressMonitor();
-    }  
-    try
-    { 
-      refactoring.checkAllConditions(pm);
-      Change change = refactoring.createChange(pm);   
-      if (change instanceof CompositeChange)
-      {
-        CompositeChange compositeChange = (CompositeChange)change;
-        setSaveMode(compositeChange);              
-      }  
-      change.perform(pm);         
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-    }
-  }
-
-  private void setSaveMode(CompositeChange composite)
-  {
-    Change[] children = composite.getChildren();
-    for (int i = 0; i < children.length; i++)
-    {
-      Change child = children[i];
-      if (child instanceof TextFileChange)
-      {
-        ((TextFileChange)child).setSaveMode(TextFileChange.LEAVE_DIRTY);
-      } 
-      else if (child instanceof CompositeChange)
-      {
-        setSaveMode((CompositeChange)child);
-      }  
-    }  
-  }
-}  
\ 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
deleted file mode 100644
index 554bc8a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringComponent.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index 7b56d8d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/RefactoringMessages.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.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
deleted file mode 100644
index e1c53e8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/TextChangeManager.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.NullProgressMonitor;
-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);
-			result.initializeValidationData(new NullProgressMonitor());
-			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
deleted file mode 100644
index ad779b1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/XMLRefactoringComponent.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index 23fb2fd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeAnonymousTypeGlobalAction.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*******************************************************************************
- * 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 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.ltk.core.refactoring.participants.RenameRefactoring;
-import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
-import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
-import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.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)){ //$NON-NLS-1$
-			if(isComplexType){
-				return fParentName + "ComplexType"; //$NON-NLS-1$
-			}
-			else{
-				return fParentName + "SimpleType"; //$NON-NLS-1$
-			}
-		}
-		else{
-			if(isComplexType){
-				return "NewComplexType"; //$NON-NLS-1$
-			}
-			else{
-				return "NewSimpleType"; //$NON-NLS-1$
-			}
-		}
-		
-	}
-	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) && super.canEnable(selectedObject);
-		}
-		else if (selectedObject instanceof Node) {
-			Node node = (Node) selectedObject;
-			XSDConcreteComponent concreteComponent = getSchema().getCorrespondingComponent(node);
-			return canEnable(concreteComponent) && super.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
deleted file mode 100644
index e4b088c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * 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 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.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
-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);
-		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) && super.canEnable(selectedObject);
-		}
-		else if (selectedObject instanceof Node) {
-			Node node = (Node) selectedObject;
-			XSDConcreteComponent concreteComponent = getSchema()
-					.getCorrespondingComponent(node);
-			return canEnable(concreteComponent) && super.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
deleted file mode 100644
index 01d2fb7..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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.ui.internal.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
deleted file mode 100644
index 07e98fa..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.actions;
-
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.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.common.ui.internal.dialogs.SaveDirtyFilesDialog;
-import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement;
-import org.eclipse.wst.xsd.ui.internal.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) && super.canEnable(selectedObject);
-		} else if (selectedObject instanceof Node) 
-		{
-			Node node = (Node) selectedObject;
-			if (getSchema() != null) 
-			{
-				XSDConcreteComponent concreteComponent = getSchema()
-						.getCorrespondingComponent(node);
-				return canEnable(concreteComponent) && super.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);
-			}
-
-		}
-        
-        boolean rc = SaveDirtyFilesDialog.saveDirtyFiles();
-        if (!rc)
-        {
-          return;
-        }  
-        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());
-			
-			// TODO (cs) I'm not sure why we need to do this.  See bug 145700
-			//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
deleted file mode 100644
index 2d48840..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.actions;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.jface.viewers.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.ui.internal.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
deleted file mode 100644
index 3c55f6b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-/**
- * @author ebelisar@ca.ibm.com
- */
-public class RenameResourceActionDelegate implements IObjectActionDelegate {
-	
-	private ISelection fCurrentSelection;
-
-//	private IWorkbenchPart fPart;
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
-	 */
-	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-//		fPart = targetPart;
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
-	 */
-	public void run(IAction action) {
-		if (fCurrentSelection instanceof IStructuredSelection) {
-			IStructuredSelection structuredSelection= (IStructuredSelection) fCurrentSelection;
-			Object first= structuredSelection.getFirstElement();
-			if (first instanceof IFile) {
-				RenameResourceAction renameAction = new RenameResourceAction(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
deleted file mode 100644
index 2bf4a74..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameTargetNamespaceAction.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.actions;
-
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
-import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
-import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
-import org.eclipse.ui.actions.GlobalBuildAction;
-import org.eclipse.wst.xsd.ui.internal.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 super.canEnable(selectedObject);
-
-	}
-	
-	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
deleted file mode 100644
index cd70663..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.actions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.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) {
-
-	}
-
-	/* (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
deleted file mode 100644
index 0169f26..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorActionGroup.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index ada7815..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDRefactorGroupActionDelegate.java
+++ /dev/null
@@ -1,50 +0,0 @@
-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.ui.internal.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
deleted file mode 100644
index ba28df9..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/actions/XSDSelectionDispatchAction.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.actions;
-
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.xsd.XSDConcreteComponent;
-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;
-	}
-	
-	protected boolean canEnable(Object selectedComponent)
-	{
-		XSDSchema selectedComponentSchema = null;
-		if (selectedComponent instanceof XSDConcreteComponent)
-		{
-			selectedComponentSchema = ((XSDConcreteComponent)selectedComponent).getSchema();
-		}
-		
-		if (selectedComponentSchema != null && selectedComponentSchema == getSchema() )
-		{
-			return true;
-		}
-		return false;
-	}
-
-}
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
deleted file mode 100644
index 48483a1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/messages.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-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
deleted file mode 100644
index ebdf3d0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ComponentRenameArguments.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index 651082c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameComponentProcessor.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/*******************************************************************************
- * 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 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 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$
-    private boolean singleFileOnly = false;
-    
-	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(selectedComponent, newName, false);
-	}
-    
-    public RenameComponentProcessor(RefactoringComponent selectedComponent, String newName, boolean singleFileOnly) {
-        this.newName = newName;
-        this.selectedComponent = selectedComponent;
-        this.singleFileOnly = singleFileOnly;
-    }    
-
-	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();
-        HashMap map = new HashMap();
-        if (singleFileOnly)
-        {
-          map.put("searchDirtyContent", Boolean.TRUE);
-        }  
-		searchEngine.search(pattern, requestor, scope, map, 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();
-        SearchScope scope = null;
-        HashMap map = new HashMap();
-        if (singleFileOnly)
-        {
-          map.put("searchDirtyContent", Boolean.TRUE);
-          scope = new SelectionSearchScope(new IResource[]{file});
-        }
-        else
-        {  
-          scope = new WorkspaceSearchScope();
-        } 
-		SortingSearchRequestor requestor = new SortingSearchRequestor();
-		SearchPattern pattern = new XMLComponentReferencePattern(file, elementQName, typeQName);
-        
-		searchEngine.search(pattern, requestor, scope, map, 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();
-		// only one declaration gets updated
-		addDeclarationUpdate(manager);
-		if (getUpdateReferences()) {
-			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();
-//			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
deleted file mode 100644
index 15f0f25..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameResourceProcessor.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package  org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.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
deleted file mode 100644
index 3d4fa5c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/RenameTargetNamespaceProcessor.java
+++ /dev/null
@@ -1,419 +0,0 @@
-/*******************************************************************************
- * 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 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.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
deleted file mode 100644
index a0e528f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameChange.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.rename;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
-
-/**
- * Represents a change that renames a given resource
- */
-public class ResourceRenameChange extends Change {
-
-	/*
-	 * we cannot use handles because they became invalid when you rename the resource.
-	 * paths do not.
-	 */
-	private IPath fResourcePath;
-
-	private String fNewName;
-
-	/**
-	 * @param newName includes the extension
-	 */
-	public ResourceRenameChange(IResource resource, String newName) {
-		this(resource.getFullPath(), newName);
-	}
-
-	private ResourceRenameChange(IPath resourcePath, String newName) {
-		fResourcePath= resourcePath;
-		fNewName= newName;
-	}
-
-	private IResource getResource() {
-		return ResourcesPlugin.getWorkspace().getRoot().findMember(fResourcePath);
-	}
-
-	public RefactoringStatus isValid(IProgressMonitor pm) throws CoreException {
-		
-		// TODO: implement file validation, see JDTChange
-		return new RefactoringStatus();
-	}
-	
-	/*
-	 * to avoid the exception senders should check if a resource with the new name
-	 * already exists
-	 */
-	public Change perform(IProgressMonitor pm) throws CoreException {
-		try {
-			if (false)
-				throw new NullPointerException();
-			pm.beginTask(RefactoringMessages.getString("XSDRenameResourceChange.rename_resource"), 1); //$NON-NLS-1$
-
-			getResource().move(renamedResourcePath(fResourcePath, fNewName), getCoreRenameFlags(), pm);
-
-			String oldName= fResourcePath.lastSegment();
-			IPath newPath= renamedResourcePath(fResourcePath, fNewName);
-			return new ResourceRenameChange(newPath, oldName);
-		} finally {
-			pm.done();
-		}
-	}
-
-	private int getCoreRenameFlags() {
-		if (getResource().isLinked())
-			return IResource.SHALLOW;
-		else
-			return IResource.NONE;
-	}
-
-	/*
-	 * changes resource names /s/p/A.java renamed to B.java becomes /s/p/B.java
-	 */
-	public static IPath renamedResourcePath(IPath path, String newName) {
-		return path.removeLastSegments(1).append(newName);
-	}
-
-	public String getName() {
-		return RefactoringMessages.getFormattedString(
-			"XSDRenameResourceChange.name", new String[]{fResourcePath.toString(), //$NON-NLS-1$
-			renamedResourcePath(fResourcePath, fNewName).toString()});
-	}
-
-	public Object getModifiedElement() {
-		return getResource();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.ltk.core.refactoring.Change#initializeValidationData(org.eclipse.core.runtime.IProgressMonitor)
-	 */
-	public void initializeValidationData(IProgressMonitor pm) {
-		// TODO Auto-generated method stub
-
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-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
deleted file mode 100644
index af6077d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/ResourceRenameParticipant.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/*******************************************************************************
- * 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 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.List;
-
-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.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
deleted file mode 100644
index d140a8c..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/SortingSearchRequestor.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index 4aba320..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XMLComponentRenameParticipant.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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 {
-		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");
-			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
deleted file mode 100644
index 3d169fd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/rename/XSDComponentRenameParticipant.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index 3972831..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/AbstractCommand.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.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
deleted file mode 100644
index 95f96a4..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeAnonymousTypeGlobalCommand.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.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
deleted file mode 100644
index ba845c3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeLocalElementGlobalCommand.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.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); 
-            // Copy over the max/minOccurs from the old local to the element ref
-            if (parent instanceof XSDParticle) {
-              XSDParticle parentParticle = (XSDParticle)parent;
-              
-              if (parentParticle.isSetMinOccurs()) {
-                particle.setMinOccurs(parentParticle.getMinOccurs());
-                parentParticle.unsetMinOccurs();
-              }
-              
-              if (parentParticle.isSetMaxOccurs()) {
-                particle.setMaxOccurs(parentParticle.getMaxOccurs());
-                parentParticle.unsetMaxOccurs();
-              }
-            }          
-            element.unsetForm();
- 		   
- 			modelGroup.getContents().remove(parent);
- 		    modelGroup.updateElement(true);
-  		    formatChild(modelGroup.getElement());
- 		}
- 	}
- 	else if(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
deleted file mode 100644
index 59726cf..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalChange.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.structure;
-
-import java.util.Map;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.jface.text.Assert;
-import org.eclipse.ltk.core.refactoring.Change;
-import org.eclipse.ltk.core.refactoring.RefactoringStatus;
-import org.eclipse.ltk.core.refactoring.TextChange;
-import org.eclipse.ltk.core.refactoring.TextFileChange;
-import org.eclipse.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
deleted file mode 100644
index 414564b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/structure/MakeTypeGlobalProcessor.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * 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 Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.refactor.structure;
-
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.eclipse.core.runtime.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
deleted file mode 100644
index 04a75e8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/util/TextChangeCompatibility.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index ac0dc43..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorActionGroup.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.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) {
-					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
deleted file mode 100644
index 29c5678..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupActionDelegate.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index 77780e1..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactorGroupSubMenu.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.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
deleted file mode 100644
index 03140c8..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RefactoringWizardMessages.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.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
deleted file mode 100644
index 4101fe0..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RenameInputWizardPage.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * 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 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.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.ui.PlatformUI;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-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());
-			}
-		});
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(fTextField, XSDEditorCSHelpIds.RENAME_NEW_NAME);
-		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);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(text, XSDEditorCSHelpIds.RENAME_NEW_NAME);
-    
-		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);
-    PlatformUI.getWorkbench().getHelpSystem().setHelp(fUpdateReferences, XSDEditorCSHelpIds.RENAME_UPDATE_REFERENCES);
-		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
deleted file mode 100644
index 6a06612..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/RenameRefactoringWizard.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * 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 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.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
deleted file mode 100644
index 7bcd71f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-refactor/org/eclipse/wst/xsd/ui/internal/refactor/wizard/messages.properties
+++ /dev/null
@@ -1,55 +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
-###############################################################################
-
-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-search/org/eclipse/wst/xsd/ui/internal/search/IXSDSearchConstants.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/IXSDSearchConstants.java
deleted file mode 100644
index 5c465b3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/IXSDSearchConstants.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search;
-
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-
-public interface IXSDSearchConstants {
-	
-	public static final String XMLSCHEMA_NAMESPACE = "http://www.w3.org/2001/XMLSchema";
-	public static String XSD_CONTENT_TYPE_ID = "org.eclipse.wst.xsd.core.xsdsource";
-
-    public static final QualifiedName   TYPE_META_NAME =  new QualifiedName (XMLSCHEMA_NAMESPACE, "type");
-    public static final QualifiedName   COMPLEX_TYPE_META_NAME =  new QualifiedName (XMLSCHEMA_NAMESPACE, "complexType");
-    public static final QualifiedName   SIMPLE_TYPE_META_NAME =  new QualifiedName (XMLSCHEMA_NAMESPACE, "simpleType");
-    public static final QualifiedName   ELEMENT_META_NAME =  new QualifiedName (XMLSCHEMA_NAMESPACE, "element");
-	public static final QualifiedName   ATTRIBUTE_META_NAME =  new QualifiedName (XMLSCHEMA_NAMESPACE, "attribute");
-	public static final QualifiedName   ATTRIBUTE_GROUP_META_NAME =  new QualifiedName (XMLSCHEMA_NAMESPACE, "attributeGroup");
-	public static final QualifiedName   GROUP_META_NAME =  new QualifiedName (XMLSCHEMA_NAMESPACE, "group");
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/SearchMessages.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/SearchMessages.java
deleted file mode 100644
index 04bd82b..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/SearchMessages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search;
-
-import org.eclipse.osgi.util.NLS;
-
-public final class SearchMessages extends NLS {
-
-	private static final String BUNDLE_NAME= "org.eclipse.wst.common.ui.internal.search.SearchMessages";//$NON-NLS-1$
-
-	private SearchMessages() {
-		// Do not instantiate
-	}
-
-	public static String group_references;
-	public static String Search_FindDeclarationAction_label;
-	public static String Search_FindDeclarationsInProjectAction_label;
-	public static String Search_FindDeclarationsInWorkingSetAction_label;
-
-	static {
-		NLS.initializeMessages(BUNDLE_NAME, SearchMessages.class);
-	}
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchContributor.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchContributor.java
deleted file mode 100644
index f589b57..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchContributor.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.search.ComponentSearchContributor;
-import org.eclipse.wst.xml.core.internal.search.XMLSearchPattern;
-import org.eclipse.xsd.util.XSDConstants;
-
-public class XSDSearchContributor extends ComponentSearchContributor  {
- 
-	
-	protected void initializeReferences() {
-		references = new HashMap();
-		String ns = IXSDSearchConstants.XMLSCHEMA_NAMESPACE;
-
-		List patterns = new ArrayList();
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.ELEMENT_ELEMENT_TAG, XSDConstants.REF_ATTRIBUTE));
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.ELEMENT_ELEMENT_TAG, XSDConstants.SUBSTITUTIONGROUP_ATTRIBUTE));
-		references.put(IXSDSearchConstants.ELEMENT_META_NAME, patterns);
-
-		patterns = new ArrayList();
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.RESTRICTION_ELEMENT_TAG, XSDConstants.BASE_ATTRIBUTE));
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.EXTENSION_ELEMENT_TAG, XSDConstants.BASE_ATTRIBUTE));
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.ELEMENT_ELEMENT_TAG, XSDConstants.TYPE_ATTRIBUTE));
-		references.put(IXSDSearchConstants.COMPLEX_TYPE_META_NAME, patterns);
-
-		patterns = new ArrayList();
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.RESTRICTION_ELEMENT_TAG, XSDConstants.BASE_ATTRIBUTE));
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.ELEMENT_ELEMENT_TAG, XSDConstants.TYPE_ATTRIBUTE));
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDConstants.TYPE_ATTRIBUTE));
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.UNION_ELEMENT_TAG, XSDConstants.MEMBERTYPES_ATTRIBUTE));
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.LIST_ELEMENT_TAG, XSDConstants.ITEMTYPE_ATTRIBUTE));
-
-		references.put(IXSDSearchConstants.SIMPLE_TYPE_META_NAME, patterns);
-
-		patterns = new ArrayList();
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.GROUP_ELEMENT_TAG, XSDConstants.REF_ATTRIBUTE));
-		references.put(IXSDSearchConstants.GROUP_META_NAME, patterns);
-
-		patterns = new ArrayList();
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDConstants.REF_ATTRIBUTE));
-		references.put(IXSDSearchConstants.ATTRIBUTE_GROUP_META_NAME, patterns);
-
-		patterns = new ArrayList();
-		patterns.add(new XMLSearchPattern( ns, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDConstants.REF_ATTRIBUTE));
-		references.put(IXSDSearchConstants.ATTRIBUTE_META_NAME, patterns);
-	}
-
-	protected void initializeDeclarations(){
-		
-		declarations = new HashMap();
-		String ns = IXSDSearchConstants.XMLSCHEMA_NAMESPACE;
-
-		SearchPattern pattern = new XMLSearchPattern( ns, XSDConstants.SCHEMA_ELEMENT_TAG, XSDConstants.ELEMENT_ELEMENT_TAG, XSDConstants.NAME_ATTRIBUTE);
-		declarations.put(IXSDSearchConstants.ELEMENT_META_NAME, pattern);
-
-		pattern = new XMLSearchPattern(ns, XSDConstants.COMPLEXTYPE_ELEMENT_TAG, XSDConstants.NAME_ATTRIBUTE);
-		declarations.put(IXSDSearchConstants.COMPLEX_TYPE_META_NAME, pattern);
-
-		pattern = new XMLSearchPattern(ns, XSDConstants.SIMPLETYPE_ELEMENT_TAG, XSDConstants.NAME_ATTRIBUTE);
-		declarations.put(IXSDSearchConstants.SIMPLE_TYPE_META_NAME, pattern);
-
-		pattern = new XMLSearchPattern(ns, XSDConstants.ATTRIBUTE_ELEMENT_TAG, XSDConstants.NAME_ATTRIBUTE);
-		declarations.put(IXSDSearchConstants.ATTRIBUTE_META_NAME, pattern);
-
-		pattern = new XMLSearchPattern(ns, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, XSDConstants.NAME_ATTRIBUTE);
-		declarations.put(IXSDSearchConstants.ATTRIBUTE_GROUP_META_NAME, pattern);
-
-		pattern = new XMLSearchPattern(ns, XSDConstants.GROUP_ELEMENT_TAG, XSDConstants.NAME_ATTRIBUTE);
-		declarations.put(IXSDSearchConstants.GROUP_META_NAME, pattern);
-
-	}
-
-	protected void initializeSupportedNamespaces() {
-		namespaces = new String[]{ IXSDSearchConstants.XMLSCHEMA_NAMESPACE};
-	}
-
-
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java
deleted file mode 100644
index 2051804..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchParticipant.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search;
-
-import java.util.Map;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.xml.core.internal.search.ComponentSearchContributor;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentSearchPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLSearchParticipant;
-
-public class XSDSearchParticipant extends XMLSearchParticipant {
-
-	private static String ID = "org.eclipse.wst.xsd.search.XSDSearchParticipant";
-
-	public XSDSearchParticipant()
-	{
-	  super();
-      id = ID;
-	}	
-	
-	public String[] getSupportedContentTypes()
-	{
-	  String[] result = { "org.eclipse.wst.xsd.core.xsdsource" };
-	  return result;
-	}
-	
-	public boolean isApplicable(SearchPattern pattern, Map searchOptions)
-	{
-		if(pattern instanceof XMLComponentSearchPattern ){
-			XMLComponentSearchPattern componentPattern = (XMLComponentSearchPattern)pattern;
-			String namespace = componentPattern.getMetaName().getNamespace();
-			if(IXSDSearchConstants.XMLSCHEMA_NAMESPACE.equals(namespace)){
-				return true;
-			}
-		}
-		return false;
-	}
-		
-	public ComponentSearchContributor getSearchContributor() {		
-		return new XSDSearchContributor();
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchQuery.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchQuery.java
deleted file mode 100644
index 4dfefbd..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/XSDSearchQuery.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.pattern.SearchPattern;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.ui.internal.search.AbstractSearchQuery;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentDeclarationPattern;
-import org.eclipse.wst.xml.core.internal.search.XMLComponentReferencePattern;
-
-public class XSDSearchQuery extends AbstractSearchQuery
-{   
-  public final static int LIMIT_TO_DECLARATIONS = 1;
-  public final static int LIMIT_TO_REFERENCES   = 2;  
-  
-  int fLimitTo = 0;
-  IFile fContextFile;
-  QualifiedName fElementQName;
-  QualifiedName fTypeName;
-  
-  public XSDSearchQuery(String pattern, IFile file, QualifiedName elementQName, QualifiedName typeName, int limitTo, SearchScope scope, String scopeDescription)
-  {
-    super(pattern, scope, scopeDescription);
-    fLimitTo = limitTo;
-    fContextFile = file;
-    fElementQName = elementQName;
-    fTypeName = typeName;
-  }
-
-  protected SearchPattern createSearchPattern(QualifiedName typeName)
-  {
-    if (fLimitTo == LIMIT_TO_DECLARATIONS)
-    {  
-      return new XMLComponentDeclarationPattern(fContextFile, fElementQName, fTypeName);
-    }  
-    else if (fLimitTo == LIMIT_TO_REFERENCES)
-    {
-      return new XMLComponentReferencePattern(fContextFile, fElementQName, fTypeName);
-    }  
-    return null;
-  }
-}
-
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/BaseGroupActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/BaseGroupActionDelegate.java
deleted file mode 100644
index 1ac668f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/BaseGroupActionDelegate.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuCreator;
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.events.MenuAdapter;
-import org.eclipse.swt.events.MenuEvent;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IEditorActionDelegate;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IObjectActionDelegate;
-import org.eclipse.ui.IWorkbenchPart;
-
-//TODO (trung) should be in common.ui this one ??
-public abstract class BaseGroupActionDelegate implements IObjectActionDelegate, IEditorActionDelegate, IMenuCreator
-{
-    protected ISelection fSelection;
-    private IAction fDelegateAction;
-    // whether to re-fill the menu (reset on selection change)
-    private boolean fFillMenu = true;
-    protected IWorkbenchPart workbenchPart; 
-    
-
-    public BaseGroupActionDelegate() 
-    {
-
-    }
-    
-    /*
-     * @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-search/org/eclipse/wst/xsd/ui/internal/search/actions/CompositeActionGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/CompositeActionGroup.java
deleted file mode 100644
index 0bc530a..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/CompositeActionGroup.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *******************************************************************************/
-// TODO... open a bugzilla to get the JDT class moved to non internal platform
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.util.Assert;
-
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.actions.ActionContext;
-import org.eclipse.ui.actions.ActionGroup;
-
-public class CompositeActionGroup extends ActionGroup {
-
-    private ActionGroup[] fGroups;
-    
-    public CompositeActionGroup() {
-    }
-    
-    public CompositeActionGroup(ActionGroup[] groups) {
-        setGroups(groups);
-    }
-
-    protected void setGroups(ActionGroup[] groups) {
-        Assert.isTrue(fGroups == null);
-        Assert.isNotNull(groups);
-        fGroups= groups;        
-    }
-        
-    public ActionGroup get(int index) {
-        if (fGroups == null)
-            return null;
-        return fGroups[index];
-    }
-    
-    public void addGroup(ActionGroup group) {
-        if (fGroups == null) {
-            fGroups= new ActionGroup[] { group };
-        } else {
-            ActionGroup[] newGroups= new ActionGroup[fGroups.length + 1];
-            System.arraycopy(fGroups, 0, newGroups, 0, fGroups.length);
-            newGroups[fGroups.length]= group;
-            fGroups= newGroups;
-        }
-    }
-    
-    public void dispose() {
-        super.dispose();
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].dispose();
-        }
-    }
-
-    public void fillActionBars(IActionBars actionBars) {
-        super.fillActionBars(actionBars);
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].fillActionBars(actionBars);
-        }
-    }
-
-    public void fillContextMenu(IMenuManager menu) {
-        super.fillContextMenu(menu);
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].fillContextMenu(menu);
-        }
-    }
-
-    public void setContext(ActionContext context) {
-        super.setContext(context);
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].setContext(context);
-        }
-    }
-
-    public void updateActionBars() {
-        super.updateActionBars();
-        if (fGroups == null)
-            return;
-        for (int i= 0; i < fGroups.length; i++) {
-            fGroups[i].updateActionBars();
-        }
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/DeclarationsSearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/DeclarationsSearchGroup.java
deleted file mode 100644
index 05308e2..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/DeclarationsSearchGroup.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-// TODO.. fill in the content
-public class DeclarationsSearchGroup
-{
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindAction.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindAction.java
deleted file mode 100644
index ac5a175..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindAction.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.IEditorPart;
-public class FindAction extends Action implements ISelectionChangedListener
-{
-  protected IEditorPart editor;
-
-  protected FindAction(IEditorPart editor)
-  {
-    this.editor = editor;
-  }
-
-  public void selectionChanged(SelectionChangedEvent event)
-  {
-    // TODO Auto-generated method stub
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesAction.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesAction.java
deleted file mode 100644
index ad53351..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesAction.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.ui.IEditorInput;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.scope.SearchScope;
-import org.eclipse.wst.common.core.search.scope.WorkspaceSearchScope;
-import org.eclipse.wst.xsd.ui.internal.editor.ISelectionMapper;
-import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants;
-import org.eclipse.wst.xsd.ui.internal.search.XSDSearchQuery;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDAttributeGroupDefinition;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDModelGroupDefinition;
-import org.eclipse.xsd.XSDNamedComponent;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-public class FindReferencesAction extends FindAction
-{
-  public FindReferencesAction(IEditorPart editor)
-  {
-    super(editor);
-  }
-
-  public void setActionDefinitionId(String string)
-  {
-  }
-
-  /**
-   * To be used by subclass in its run() Returns the file where the selection of
-   * a component (from the user) occurs ie. Returns the file that the user is
-   * currently working on.
-   * 
-   * @return The IFile representation of the current working file.
-   */
-  protected IFile getCurrentFile()
-  {
-    if (editor != null)
-    {
-      IEditorInput input = editor.getEditorInput();
-      if (input instanceof IFileEditorInput)
-      {
-        IFileEditorInput fileEditorInput = (IFileEditorInput) input;
-        return fileEditorInput.getFile();
-      }
-    }
-    return null;
-  }
-
-  /**
-   * To be used by subclass in its run().. Determines the metaName of the XSD
-   * component given to this method.
-   * 
-   * @param component
-   *          The component of which we want to determine the name
-   * @return
-   */
-  protected QualifiedName determineMetaName(XSDNamedComponent component)
-  {
-    QualifiedName metaName = null;
-    if (component instanceof XSDComplexTypeDefinition)
-    {
-      metaName = IXSDSearchConstants.COMPLEX_TYPE_META_NAME;
-    }
-    else if (component instanceof XSDSimpleTypeDefinition)
-    {
-      metaName = IXSDSearchConstants.SIMPLE_TYPE_META_NAME;
-    }
-    else if (component instanceof XSDElementDeclaration)
-    {
-      metaName = IXSDSearchConstants.ELEMENT_META_NAME;
-    }
-    else if (component instanceof XSDModelGroupDefinition)
-    {
-      metaName = IXSDSearchConstants.GROUP_META_NAME;
-    }
-    else if (component instanceof XSDAttributeGroupDefinition)
-    {
-      metaName = IXSDSearchConstants.ATTRIBUTE_GROUP_META_NAME;
-    }
-    else if (component instanceof XSDAttributeDeclaration)
-    {
-      metaName = IXSDSearchConstants.ATTRIBUTE_META_NAME;
-    }
-    return metaName;
-  }
-  
-  protected XSDNamedComponent getXSDNamedComponent()
-  {
-    if (editor != null)
-    {
-      ISelectionProvider provider = (ISelectionProvider) editor.getAdapter(ISelectionProvider.class);
-      ISelectionMapper mapper = (ISelectionMapper) editor.getAdapter(ISelectionMapper.class);
-      if (provider != null)
-      {
-        ISelection selection = provider.getSelection();
-        if (mapper != null)
-        {
-          selection = mapper.mapSelection(selection);
-        }
-        if (selection != null && selection instanceof IStructuredSelection)
-        {
-          IStructuredSelection s = (IStructuredSelection) selection;
-          Object o = s.getFirstElement();
-          if (o != null && o instanceof XSDNamedComponent)
-          {
-            return (XSDNamedComponent) o;
-          }
-        }
-      }
-    }
-    // The expected component we get from the editor does not meet
-    // our expectation
-    return null;
-  }  
-
-  public void run()
-  {
-    String pattern = "";
-    XSDNamedComponent component = getXSDNamedComponent();
-    IFile file = getCurrentFile();
-    if (file != null && component != null)
-    {
-      QualifiedName metaName = determineMetaName(component);
-      QualifiedName elementQName = new QualifiedName(component.getTargetNamespace(), component.getName());
-      SearchScope scope = new WorkspaceSearchScope();
-      String scopeDescription = "Workspace";
-      XSDSearchQuery searchQuery = new XSDSearchQuery(pattern, file, elementQName, metaName, XSDSearchQuery.LIMIT_TO_REFERENCES, scope, scopeDescription);
-      NewSearchUI.activateSearchResultView();
-      NewSearchUI.runQueryInBackground(searchQuery);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesInProjectAction.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesInProjectAction.java
deleted file mode 100644
index c94f256..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesInProjectAction.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.scope.ProjectSearchScope;
-import org.eclipse.wst.xsd.ui.internal.search.XSDSearchQuery;
-import org.eclipse.xsd.XSDNamedComponent;
-public class FindReferencesInProjectAction extends FindReferencesAction
-{
-  public FindReferencesInProjectAction(IEditorPart editor)
-  {
-    super(editor);
-  }
-
-  public void run()
-  {
-    String pattern = "";
-    XSDNamedComponent component = getXSDNamedComponent();
-    IFile file = getCurrentFile();
-    if (file != null && component != null)
-    {
-      QualifiedName metaName = determineMetaName(component);
-      QualifiedName elementQName = new QualifiedName(component.getTargetNamespace(), component.getName());
-      IPath fullPath = file.getFullPath();
-      ProjectSearchScope scope = new ProjectSearchScope(fullPath);
-      String scopeDescription = "Project";
-      XSDSearchQuery searchQuery = new XSDSearchQuery(pattern, file, elementQName, metaName, XSDSearchQuery.LIMIT_TO_REFERENCES, scope, scopeDescription);
-      NewSearchUI.activateSearchResultView();
-      NewSearchUI.runQueryInBackground(searchQuery);
-    }
-  }
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesInWorkingSetAction.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesInWorkingSetAction.java
deleted file mode 100644
index 4c710ef..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/FindReferencesInWorkingSetAction.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.window.Window;
-import org.eclipse.search.ui.NewSearchUI;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkingSet;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.dialogs.IWorkingSetSelectionDialog;
-import org.eclipse.wst.common.core.search.pattern.QualifiedName;
-import org.eclipse.wst.common.core.search.scope.WorkingSetSearchScope;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.search.XSDSearchQuery;
-import org.eclipse.xsd.XSDNamedComponent;
-
-public class FindReferencesInWorkingSetAction extends FindReferencesAction{
-
-	public FindReferencesInWorkingSetAction(IEditorPart editor) {
-		super(editor);
-	}
-	
-	public void setActionDefinitionId(String string)
-	{
-		
-	}
-
-	public void run(){
-		IWorkingSet[] workingSets = queryWorkingSets();
-		if ( workingSets == null || workingSets.length == 0)
-			// The user chooses nothing, no point to continue.
-			return;
-		String pattern = "";
-
-		XSDNamedComponent component = getXSDNamedComponent();
-		IFile file = getCurrentFile();
-		if ( file != null && component != null){
-			QualifiedName metaName = determineMetaName(component);
-
-			QualifiedName elementQName = 
-				new QualifiedName(component.getTargetNamespace(), component.getName());
-
-			// Create a scope from the selected working sets
-			WorkingSetSearchScope scope = new WorkingSetSearchScope();
-			for (int i = 0; i < workingSets.length; i++){
-				IAdaptable[] elements = workingSets[i].getElements();
-				scope.addAWorkingSetToScope(elements);
-			}
-
-			String scopeDescription = "Working Set";    
-			XSDSearchQuery searchQuery = 
-				new XSDSearchQuery(pattern, file, elementQName, metaName, XSDSearchQuery.LIMIT_TO_REFERENCES, scope, scopeDescription);    
-			NewSearchUI.activateSearchResultView();
-			NewSearchUI.runQueryInBackground(searchQuery);
-		}
-	}
-
-	/**
-	 * Calls a dialog asking the user to choose the working Sets he wants
-	 * to do the search on
-	 * @return
-	 */
-	public static IWorkingSet[] queryWorkingSets(){
-		Shell shell= XSDEditorPlugin.getShell();
-		if (shell == null)
-			return null;
-		IWorkingSetSelectionDialog dialog =
-			PlatformUI.getWorkbench().getWorkingSetManager().createWorkingSetSelectionDialog(shell, true);
-		if (dialog.open() == Window.OK) {
-			IWorkingSet[] workingSets= dialog.getSelection();
-			if (workingSets.length > 0)
-				return workingSets;
-		}
-		return null;
-	}
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/ImplementorsSearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/ImplementorsSearchGroup.java
deleted file mode 100644
index 0efc8ff..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/ImplementorsSearchGroup.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-// TODO... fill in the content
-public class ImplementorsSearchGroup
-{
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/OccurrencesSearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/OccurrencesSearchGroup.java
deleted file mode 100644
index 463e241..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/OccurrencesSearchGroup.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-// TODO... fill in the content
-public class OccurrencesSearchGroup
-{
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/ReferencesSearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/ReferencesSearchGroup.java
deleted file mode 100644
index d6984b3..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/ReferencesSearchGroup.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import java.util.List;
-
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.util.Assert;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.wst.xsd.ui.internal.search.SearchMessages;
-
-public class ReferencesSearchGroup extends SearchGroup  {
-    protected static final String MENU_TEXT= SearchMessages.group_references; 
-
-    protected IEditorPart fEditor;
-    private IWorkbenchSite fSite;
-    private IActionBars fActionBars;
-    
-//    private String fGroupId;
-    
-    protected FindAction fFindReferencesAction;
-    protected FindAction fFindReferencesInProjectAction;
-    protected FindAction fFindReferencesInWorkingSetAction;
-
-
-    /**
-     * Note: This constructor is for internal use only. Clients should not call this constructor.
-     * @param editor
-     */
-    public ReferencesSearchGroup(IEditorPart editor) {
-        Assert.isNotNull(editor);
-        fEditor= editor;
-        fSite= fEditor.getSite();
-        
-        initialize();
-    }
-    
-    protected void initialize() {
-//      fGroupId= ITextEditorActionConstants.GROUP_FIND;
-
-        fFindReferencesAction= new FindReferencesAction(fEditor);
-        fFindReferencesAction.setText(SearchMessages.Search_FindDeclarationAction_label);
-        fFindReferencesAction.setActionDefinitionId("SEARCH_REFERENCES_IN_WORKSPACE");
-        //fEditor.setAction("SearchReferencesInWorkspace", fFindReferencesAction); //$NON-NLS-1$
-
-        fFindReferencesInProjectAction= new FindReferencesInProjectAction(fEditor);
-        fFindReferencesInProjectAction.setText(SearchMessages.Search_FindDeclarationsInProjectAction_label);        
-        fFindReferencesInProjectAction.setActionDefinitionId("SEARCH_REFERENCES_IN_PROJECT");
-        //fEditor.setAction("SearchReferencesInProject", fFindReferencesInProjectAction); //$NON-NLS-1$
-    
-        fFindReferencesInWorkingSetAction= new FindReferencesInWorkingSetAction(fEditor);
-        fFindReferencesInWorkingSetAction.setText(SearchMessages.Search_FindDeclarationsInWorkingSetAction_label);         
-        fFindReferencesInWorkingSetAction.setActionDefinitionId(".SEARCH_REFERENCES_IN_WORKING_SET");
-        //fEditor.setAction("SearchReferencesInWorkingSet", fFindReferencesInWorkingSetAction); //$NON-NLS-1$    	
-    }
-
-    /*
-    private void registerAction(SelectionDispatchAction action, ISelectionProvider provider, ISelection selection) {
-        action.update(selection);
-        provider.addSelectionChangedListener(action);
-    }*/
-
-    /**
-     * Note: this method is for internal use only. Clients should not call this method.
-     * 
-     * @return the menu label
-     */
-    protected String getName() {
-        return MENU_TEXT;
-    }
-    
-    public void fillActions(List list)
-    {
-      list.add(fFindReferencesAction);
-      //list.add(fFindReferencesInHierarchyAction);
-      list.add(fFindReferencesInProjectAction);
-      list.add(new Separator());
-      list.add(fFindReferencesInWorkingSetAction);
-    }
-    
-    /* (non-Javadoc)
-     * Method declared in ActionGroup
-     */
-    public void fillActionBars(IActionBars actionBars) {
-        Assert.isNotNull(actionBars);
-        super.fillActionBars(actionBars);
-        fActionBars= actionBars;
-        updateGlobalActionHandlers();
-    }
-
-    
-//    private void addAction(IAction action, IMenuManager manager) {
-//        if (action.isEnabled()) {
-//            manager.add(action);
-//        }
-//    }
-
-    /*
-    private void addWorkingSetAction(IWorkingSet[] workingSets, IMenuManager manager) {
-        FindAction action;
-        if (fEditor != null)
-            action= new WorkingSetFindAction(fEditor, new FindReferencesInWorkingSetAction(fEditor, workingSets), SearchUtil.toString(workingSets));
-        else
-            action= new WorkingSetFindAction(fSite, new FindReferencesInWorkingSetAction(fSite, workingSets), SearchUtil.toString(workingSets));
-        action.update(getContext().getSelection());
-        addAction(action, manager);
-    }
-    */
-    
-    /* (non-Javadoc)
-     * Method declared on ActionGroup.
-     */
-    public void fillContextMenu(IMenuManager manager) {
-      /*
-        MenuManager javaSearchMM= new MenuManager(getName(), IContextMenuConstants.GROUP_SEARCH);
-        addAction(fFindReferencesAction, javaSearchMM);
-        addAction(fFindReferencesInProjectAction, javaSearchMM);
-        addAction(fFindReferencesInHierarchyAction, javaSearchMM);
-        
-        javaSearchMM.add(new Separator());
-        
-        Iterator iter= SearchUtil.getLRUWorkingSets().sortedIterator();
-        while (iter.hasNext()) {
-            addWorkingSetAction((IWorkingSet[]) iter.next(), javaSearchMM);
-        }
-        addAction(fFindReferencesInWorkingSetAction, javaSearchMM);
-
-        if (!javaSearchMM.isEmpty())
-            manager.appendToGroup(fGroupId, javaSearchMM);
-        */    
-    }
-    
-    /* 
-     * Overrides method declared in ActionGroup
-     */
-    public void dispose() {
-        ISelectionProvider provider= fSite.getSelectionProvider();
-        if (provider != null) {
-            disposeAction(fFindReferencesAction, provider);
-            disposeAction(fFindReferencesInProjectAction, provider);
-          //  disposeAction(fFindReferencesInHierarchyAction, provider);
-            disposeAction(fFindReferencesInWorkingSetAction, provider);
-        }
-        fFindReferencesAction= null;
-        fFindReferencesInProjectAction= null;
-        //fFindReferencesInHierarchyAction= null;
-        fFindReferencesInWorkingSetAction= null;
-        updateGlobalActionHandlers();
-        super.dispose();
-    }
-
-    private void updateGlobalActionHandlers() {
-        if (fActionBars != null) {
-//            fActionBars.setGlobalActionHandler(JdtActionConstants.FIND_REFERENCES_IN_WORKSPACE, fFindReferencesAction);
-//            fActionBars.setGlobalActionHandler(JdtActionConstants.FIND_REFERENCES_IN_PROJECT, fFindReferencesInProjectAction);
-//            fActionBars.setGlobalActionHandler(JdtActionConstants.FIND_REFERENCES_IN_HIERARCHY, fFindReferencesInHierarchyAction);
-//            fActionBars.setGlobalActionHandler(JdtActionConstants.FIND_REFERENCES_IN_WORKING_SET, fFindReferencesInWorkingSetAction);
-        }
-    }
-
-    private void disposeAction(ISelectionChangedListener action, ISelectionProvider provider) {
-        if (action != null)
-            provider.removeSelectionChangedListener(action);
-    }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/SearchGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/SearchGroup.java
deleted file mode 100644
index 18071ba..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/SearchGroup.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import java.util.List;
-import org.eclipse.ui.actions.ActionGroup;
-
-public abstract class SearchGroup extends ActionGroup
-{
-  public abstract void fillActions(List list);
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchActionGroup.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchActionGroup.java
deleted file mode 100644
index ec6846d..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchActionGroup.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.jface.util.Assert;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.actions.ActionGroup;
-
-public class XSDSearchActionGroup extends ActionGroup
-{
-//  private ReferencesSearchGroup fReferencesGroup;
-//  private DeclarationsSearchGroup fDeclarationsGroup;
-//  private ImplementorsSearchGroup fImplementorsGroup;
-//  private OccurrencesSearchGroup fOccurrencesGroup;
-//  private IEditorPart fEditor;
-
-  public XSDSearchActionGroup(IEditorPart editor)
-  {
-    Assert.isNotNull(editor);
-//    fEditor = editor;
-//    fReferencesGroup = new ReferencesSearchGroup(editor);
-//    fDeclarationsGroup = new DeclarationsSearchGroup();
-//    fImplementorsGroup = new ImplementorsSearchGroup();
-//    fOccurrencesGroup = new OccurrencesSearchGroup();
-  }
-}
\ No newline at end of file
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchDeclarationsGroupActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchDeclarationsGroupActionDelegate.java
deleted file mode 100644
index 91c55c6..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchDeclarationsGroupActionDelegate.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.swt.widgets.Menu;
-
-//org.eclipse.wst.xsd.ui.internal.search.actions.XSDSearchGroupActionDelegate
-public class XSDSearchDeclarationsGroupActionDelegate extends BaseGroupActionDelegate
-{
-    protected void fillMenu(Menu menu) {
-
-    }             
-}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchGroupSubMenu.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchGroupSubMenu.java
deleted file mode 100644
index 5ec359f..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchGroupSubMenu.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.ActionContributionItem;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionItem;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.ui.actions.CompoundContributionItem;
-
-// TODO should be in common.ui
-public class XSDSearchGroupSubMenu extends CompoundContributionItem
-{
-  SearchGroup searchActionGroup;
-
-  public XSDSearchGroupSubMenu(SearchGroup refactorMenuGroup)
-  {
-    super();
-    searchActionGroup = refactorMenuGroup;
-  }
-
-  public XSDSearchGroupSubMenu(String id)
-  {
-    super(id);
-  }
-
-  protected IContributionItem[] getContributionItems()
-  {
-    ArrayList actionsList = new ArrayList();
-    ArrayList contribList = new ArrayList();
-    searchActionGroup.fillActions(actionsList);
-    if (actionsList != null && !actionsList.isEmpty())
-    {
-      for (Iterator iter = actionsList.iterator(); iter.hasNext();)
-      {
-        Object o = iter.next();
-        if (o instanceof IAction)
-        {  
-          IAction action = (IAction)o;
-          contribList.add(new ActionContributionItem(action));
-        }
-        else if (o instanceof Separator)
-        {
-          Separator separator = (Separator)o;
-          contribList.add(separator);
-        }  
-      }
-    }
-    else
-    {
-      Action dummyAction = new Action("XSDSeachActionGroup_no_refactoring_available") //TODO wrong string here ??
-      {
-        // 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-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchReferencesGroupActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchReferencesGroupActionDelegate.java
deleted file mode 100644
index be947bc..0000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-search/org/eclipse/wst/xsd/ui/internal/search/actions/XSDSearchReferencesGroupActionDelegate.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- * 
- * Contributors:
- *     IBM Corporation - initial API and implementation
- *     
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.search.actions;
-
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchPartSite;
-
-//org.eclipse.wst.xsd.ui.internal.search.actions.XSDSearchGroupActionDelegate
-public class XSDSearchReferencesGroupActionDelegate extends BaseGroupActionDelegate
-{
-    protected void fillMenu(Menu menu) {
-      try
-      {
-        if (fSelection == null) {
-            return;
-        }
-        if (workbenchPart != null)
-        {
-		  IWorkbenchPartSite site = workbenchPart.getSite();
-			if (site == null)
-			  return;
-	
-		  IEditorPart editor = site.getPage().getActiveEditor();
-          if ( editor != null ){
-            ReferencesSearchGroup referencesGroup = new ReferencesSearchGroup(editor);
-            XSDSearchGroupSubMenu subMenu = new XSDSearchGroupSubMenu(referencesGroup);
-            subMenu.fill(menu, -1);
-          }
-        }  
-      }
-      catch (Exception e)
-      {
-        e.printStackTrace();
-      }
-    }  
-}
diff --git a/features/org.eclipse.wst.web_core.feature.patch/.project b/features/org.eclipse.wst.web_core.feature.patch/.project
index 1825661..55af69c 100644
--- a/features/org.eclipse.wst.web_core.feature.patch/.project
+++ b/features/org.eclipse.wst.web_core.feature.patch/.project
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>org.eclipse.wst.web_core.feature.patch</name>
+	<name>org.eclipse.wst.web_core.feature.patch 2.0.2 Patches</name>
 	<comment></comment>
 	<projects>
 	</projects>
diff --git a/features/org.eclipse.wst.web_core.feature.patch/build.properties b/features/org.eclipse.wst.web_core.feature.patch/build.properties
index 82a5a4c..cb50260 100644
--- a/features/org.eclipse.wst.web_core.feature.patch/build.properties
+++ b/features/org.eclipse.wst.web_core.feature.patch/build.properties
@@ -2,5 +2,4 @@
                license.html,\
                feature.properties,\
                epl-v10.html,\
-               eclipse_update_120.jpg,\
-               buildnotes_org.eclipse.jst.web_ui.feature.patch.html
+               eclipse_update_120.jpg
diff --git a/features/org.eclipse.wst.web_core.feature.patch/buildnotes_org.eclipse.wst.web_core.feature.patch.html b/features/org.eclipse.wst.web_core.feature.patch/buildnotes_org.eclipse.wst.web_core.feature.patch.html
index 396d76b..d67d5b6 100644
--- a/features/org.eclipse.wst.web_core.feature.patch/buildnotes_org.eclipse.wst.web_core.feature.patch.html
+++ b/features/org.eclipse.wst.web_core.feature.patch/buildnotes_org.eclipse.wst.web_core.feature.patch.html
@@ -2,17 +2,18 @@
 <html>
 
 <head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Build" content="Build">
-   <title>WTP 1.5.5 Patches</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<meta name="Build" content="Build">
+<title>WTP 2.0.2 Patches</title>
 </head>
 
 <body>
 
-<h1>WTP 1.5.5 Patches</h1>
+<h1>WTP 2.0.2 Patches</h1>
 
 <h2>org.eclipse.wst.web_core.feature</h2>
-
-<p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=185402'>185402</a>. JSP validation fails because of defaulted attribute flush on jsp:include</p>
-
-</body></html>
\ No newline at end of file
+<h3>org.eclipse.wst.common.modulecore</h3>
+<p>Bug <a href="https://bugs.eclipse.org/201318">201318</a>.
+EAR Libraries container fails to initalize ...</p>
+</body>
+</html>
diff --git a/features/org.eclipse.wst.web_core.feature.patch/epl-v10.html b/features/org.eclipse.wst.web_core.feature.patch/epl-v10.html
index ed4b196..84ec251 100644
--- a/features/org.eclipse.wst.web_core.feature.patch/epl-v10.html
+++ b/features/org.eclipse.wst.web_core.feature.patch/epl-v10.html
@@ -1,328 +1,261 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
 
 <head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
 <title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
+<style type="text/css">
+  body {
+    size: 8.5in 11.0in;
+    margin: 0.25in 0.5in 0.25in 0.5in;
+    tab-interval: 0.5in;
+    }
+  p {  	
+    margin-left: auto;
+    margin-top:  0.5em;
+    margin-bottom: 0.5em;
+    }
+  p.list {
+  	margin-left: 0.5in;
+    margin-top:  0.05em;
+    margin-bottom: 0.05em;
+    }
+  </style>
+
 </head>
 
-<body lang=EN-US style='tab-interval:.5in'>
+<body lang="EN-US">
 
-<div class=Section1>
+<p align=center><b>Eclipse Public License - v 1.0</b></p>
 
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
 
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
+<p><b>1. DEFINITIONS</b></p>
 
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
+<p>&quot;Contribution&quot; means:</p>
 
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
+<p>&quot;Contributor&quot; means any person or entity that distributes
+the Program.</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
+<p>&quot;Licensed Patents&quot; mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
+<p>&quot;Program&quot; means the Contributions distributed in accordance
+with this Agreement.</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
+<p>&quot;Recipient&quot; means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
 
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
+<p><b>2. GRANT OF RIGHTS</b></p>
 
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
 
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
 
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
 
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
+<p><b>3. REQUIREMENTS</b></p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
+<p class="list">b) its license agreement:</p>
 
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
 
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
+<p>When the Program is made available in source code form:</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
+<p class="list">a) it must be made available under this Agreement; and</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
 
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
 
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+(&quot;Commercial Contributor&quot;) hereby agrees to defend and
+indemnify every other Contributor (&quot;Indemnified Contributor&quot;)
+against any losses, damages and costs (collectively &quot;Losses&quot;)
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
 
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
 
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
+<p><b>5. NO WARRANTY</b></p>
 
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
 
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
 
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
 
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
+<p><b>7. GENERAL</b></p>
 
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
 
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
 
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
 distribution of the Program as soon as reasonably practicable. However,
 Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
+Recipient relating to the Program shall continue and survive.</p>
 
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
 
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
 
 </body>
 
-</html>
\ No newline at end of file
+</html>
diff --git a/features/org.eclipse.wst.web_core.feature.patch/feature.properties b/features/org.eclipse.wst.web_core.feature.patch/feature.properties
index 214a2ff..da49220 100644
--- a/features/org.eclipse.wst.web_core.feature.patch/feature.properties
+++ b/features/org.eclipse.wst.web_core.feature.patch/feature.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
+# Copyright (c) 2008 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
@@ -15,7 +15,7 @@
 # This file should be translated.
 
 # "featureName" property - name of the feature
-featureName=WTP Patch for org.eclipse.wst.web_core.feature
+featureName=WST Web Core Patches
 
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse.org
@@ -25,18 +25,13 @@
 
 # "description" property - description of the feature
 description=\
-Contains fixes in the following plugin(s): \n\
+The bugs and fixes are described in the following bugzilla entries:\n\
 \n\
-org.eclipse.wst.html.core\n\
-\n\
-This patch feature fixes problems described in the following bugs: \n\
-\n\
-Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=185402 JSP validation fails because of defaulted attribute flush on jsp:include  \n\
-\n\
+Bug https://bugs.eclipse.org/201318 EAR Libraries container fails to initalize ...\n\
 
 # "copyright" property - text of the "Feature Update Copyright"
 copyright=\
-Copyright (c) 2007 IBM Corporation and others.\n\
+Copyright (c) 2008 IBM Corporation and others.\n\
 All rights reserved. This program and the accompanying materials\n\
 are made available under the terms of the Eclipse Public License v1.0\n\
 which accompanies this distribution, and is available at\n\
@@ -54,7 +49,7 @@
 # should be plain text version of license agreement pointed to be "licenseURL"
 license=\
 ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-October, 2007\n\
+September 27, 2007\n\
 \n\
 Usage Of Content\n\
 \n\
diff --git a/features/org.eclipse.wst.web_core.feature.patch/feature.xml b/features/org.eclipse.wst.web_core.feature.patch/feature.xml
index a781364..4b3af0b 100644
--- a/features/org.eclipse.wst.web_core.feature.patch/feature.xml
+++ b/features/org.eclipse.wst.web_core.feature.patch/feature.xml
@@ -2,27 +2,23 @@
 <feature
       id="org.eclipse.wst.web_core.feature.patch"
       label="%featureName"
-      version="1.5.5.qualifier"
+      version="2.0.2.qualifier"
       provider-name="%providerName">
 
-   <description>
-      %description
-   </description>
+      <description>%description</description>
 
-   <copyright>
-      %copyright
-   </copyright>
+      <copyright>%copyright</copyright>
 
-   <license url="%licenseURL">
-      %license
-   </license>
+      <license url="%licenseURL">%license</license>
+
+
 
    <requires>
-      <import feature="org.eclipse.wst.web_core.feature" version="1.5.5.v200708090518--4hNDDiEnJWDdRQ" patch="true"/>
+      <import feature="org.eclipse.wst.web_core.feature" version="2.0.2.v200802150100-42CN_kE77a8F9XCOEL" patch="true"/>
    </requires>
 
    <plugin
-         id="org.eclipse.wst.html.core"
+         id="org.eclipse.wst.common.modulecore"
          download-size="0"
          install-size="0"
          version="0.0.0"
diff --git a/features/org.eclipse.wst.web_core.feature.patch/license.html b/features/org.eclipse.wst.web_core.feature.patch/license.html
index 2347060..fd7c16d 100644
--- a/features/org.eclipse.wst.web_core.feature.patch/license.html
+++ b/features/org.eclipse.wst.web_core.feature.patch/license.html
@@ -1,93 +1,111 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
 <!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
+<HTML>
+<HEAD>
+<TITLE>Eclipse.org Software User Agreement</TITLE>
 <META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
+<META content="MSHTML 6.00.2800.1479" name=GENERATOR>
+</HEAD>
 <BODY lang=EN-US vLink=purple link=blue>
 <H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
+<P>June, 2008</P>
 <H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
+<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
+INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+(COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS
+AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF
+LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING
+THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
+AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE
+TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
+CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR
+REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</P>
 <H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also available at <A 
-href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</A>. 
+<P>Unless otherwise indicated, all Content made available by the
+Eclipse Foundation is provided to you under the terms and conditions of
+the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is
+provided with this Content and is also 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, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
+<P>Content includes, but is not limited to, source code, object
+code, documentation and other files maintained in the Eclipse.org CVS
+repository ("Repository") in CVS modules ("Modules") and made available
+as downloadable archives ("Downloads").</P>
+<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in
+fragments ("Fragments"), and features ("Features"). A Feature is a
+bundle of one or more Plug-ins and/or Fragments and associated material.
+Files named "feature.xml" may contain a list of the names and version
+numbers of the Plug-ins and/or Fragments associated with a Feature.
+Plug-ins and Fragments are located in directories named "plugins" and
+Features are located in directories named "features".</P>
+<P>Features may also include other Features ("Included Features").
+Files named "feature.xml" may contain a list of the names and version
+numbers of Included Features.</P>
+<P>The terms and conditions governing Plug-ins and Fragments should
+be contained in files named "about.html" ("Abouts"). The terms and
+conditions governing Features and Included Features should be contained
+in files named "license.html" ("Feature Licenses"). Abouts and Feature
+Licenses may be located in any directory of a Download or Module
+including, but not limited to the following locations:</P>
 <UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
+	<LI>The top-level (root) directory
+	<LI>Plug-in and Fragment directories
+	<LI>Subdirectories of the directory named "src" of certain
+	Plug-ins
+	<LI>Feature directories</LI>
+</UL>
+<P>Note: if a Feature made available by the Eclipse Foundation is
+installed using the Eclipse Update Manager, you must agree to a license
+("Feature Update License") during the installation process. If the
+Feature contains Included Features, the Feature Update License should
+either provide you with the terms and conditions governing the Included
+Features or inform you where you can locate them. Feature Update
+Licenses may be found in the "license" property of files named
+"feature.properties". Such Abouts, Feature Licenses and Feature Update
+Licenses contain the terms and conditions (or references to such terms
+and conditions) that govern your use of the associated Content in that
 directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
+<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY
+REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
+CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE
+NOT LIMITED TO):</P>
 <UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
+	<LI>Common Public License Version 1.0 (available at <A
+		href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>)
 
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
+	
+	<LI>Apache Software License 1.1 (available at <A
+		href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>)
 
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
+	
+	<LI>Apache Software License 2.0 (available at <A
+		href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>)
 
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
+	
+	<LI>IBM Public License 1.0 (available at <A
+		href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>)
 
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
+	
+	<LI>Metro Link Public License 1.00 (available at <A
+		href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>)
 
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI></UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
+	
+	<LI>Mozilla Public License Version 1.1 (available at <A
+		href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>)
+	</LI>
+</UL>
+<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
+CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License or
+Feature Update License is provided, please contact the Eclipse
+Foundation to determine what terms and conditions govern that particular
+Content.</P>
 <H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>
+<P>Content may contain encryption software. The country in which you
+are currently may have restrictions on the import, possession, and use,
+and/or re-export to another country, of encryption software. BEFORE
+using any encryption software, please check the country's laws,
+regulations and policies concerning the import, possession, or use, and
+re-export of encryption software, to see if this is permitted.</P>
+</BODY>
+</HTML>
diff --git a/features/org.eclipse.wst.xml_ui.feature.patch/.project b/features/org.eclipse.wst.xml_ui.feature.patch/.project
deleted file mode 100644
index 910c1f8..0000000
--- a/features/org.eclipse.wst.xml_ui.feature.patch/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.wst.xml_ui.feature.patch</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/features/org.eclipse.wst.xml_ui.feature.patch/build.properties b/features/org.eclipse.wst.xml_ui.feature.patch/build.properties
deleted file mode 100644
index cb50260..0000000
--- a/features/org.eclipse.wst.xml_ui.feature.patch/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = feature.xml,\
-               license.html,\
-               feature.properties,\
-               epl-v10.html,\
-               eclipse_update_120.jpg
diff --git a/features/org.eclipse.wst.xml_ui.feature.patch/buildnotes_org.eclipse.wst.xml_ui.feature.patch.html b/features/org.eclipse.wst.xml_ui.feature.patch/buildnotes_org.eclipse.wst.xml_ui.feature.patch.html
deleted file mode 100644
index 5254ae0..0000000
--- a/features/org.eclipse.wst.xml_ui.feature.patch/buildnotes_org.eclipse.wst.xml_ui.feature.patch.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<html>
-
-<head>
-   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-   <meta name="Build" content="Build">
-   <title>WTP 1.5.5 Patches</title>
-</head>
-
-<body>
-
-<h1>WTP 1.5.5 Patches</h1>
-
-<h2>org.eclipse.wst.xml_ui.feature</h2>
-
-<p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=199053'>199053</a>. Syntax errors outside of scripting areas not reported</p>
-<p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=186444'>186444</a>. some actions/commands in the source menu do not work</p>
-<p>Bug <a href='https://bugs.eclipse.org/bugs/show_bug.cgi?id=220005'>220005</a>. Incorrect prefix handling on XSD to XML Generator</p>
-</body></html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.xml_ui.feature.patch/eclipse_update_120.jpg b/features/org.eclipse.wst.xml_ui.feature.patch/eclipse_update_120.jpg
deleted file mode 100644
index bfdf708..0000000
--- a/features/org.eclipse.wst.xml_ui.feature.patch/eclipse_update_120.jpg
+++ /dev/null
Binary files differ
diff --git a/features/org.eclipse.wst.xml_ui.feature.patch/epl-v10.html b/features/org.eclipse.wst.xml_ui.feature.patch/epl-v10.html
deleted file mode 100644
index ed4b196..0000000
--- a/features/org.eclipse.wst.xml_ui.feature.patch/epl-v10.html
+++ /dev/null
@@ -1,328 +0,0 @@
-<html xmlns:o="urn:schemas-microsoft-com:office:office"
-xmlns:w="urn:schemas-microsoft-com:office:word"
-xmlns="http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
-<meta name=ProgId content=Word.Document>
-<meta name=Generator content="Microsoft Word 9">
-<meta name=Originator content="Microsoft Word 9">
-<link rel=File-List
-href="./Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml">
-<title>Eclipse Public License - Version 1.0</title>
-<!--[if gte mso 9]><xml>
- <o:DocumentProperties>
-  <o:Revision>2</o:Revision>
-  <o:TotalTime>3</o:TotalTime>
-  <o:Created>2004-03-05T23:03:00Z</o:Created>
-  <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
-  <o:Pages>4</o:Pages>
-  <o:Words>1626</o:Words>
-  <o:Characters>9270</o:Characters>
-   <o:Lines>77</o:Lines>
-  <o:Paragraphs>18</o:Paragraphs>
-  <o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
-  <o:Version>9.4402</o:Version>
- </o:DocumentProperties>
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <w:WordDocument>
-  <w:TrackRevisions/>
- </w:WordDocument>
-</xml><![endif]-->
-<style>
-<!--
- /* Font Definitions */
-@font-face
-	{font-family:Tahoma;
-	panose-1:2 11 6 4 3 5 4 4 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:553679495 -2147483648 8 0 66047 0;}
- /* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{mso-style-parent:"";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p
-	{margin-right:0in;
-	mso-margin-top-alt:auto;
-	mso-margin-bottom-alt:auto;
-	margin-left:0in;
-	mso-pagination:widow-orphan;
-	font-size:12.0pt;
-	font-family:"Times New Roman";
-	mso-fareast-font-family:"Times New Roman";}
-p.BalloonText, li.BalloonText, div.BalloonText
-	{mso-style-name:"Balloon Text";
-	margin:0in;
-	margin-bottom:.0001pt;
-	mso-pagination:widow-orphan;
-	font-size:8.0pt;
-	font-family:Tahoma;
-	mso-fareast-font-family:"Times New Roman";}
-@page Section1
-	{size:8.5in 11.0in;
-	margin:1.0in 1.25in 1.0in 1.25in;
-	mso-header-margin:.5in;
-	mso-footer-margin:.5in;
-	mso-paper-source:0;}
-div.Section1
-	{page:Section1;}
--->
-</style>
-</head>
-
-<body lang=EN-US style='tab-interval:.5in'>
-
-<div class=Section1>
-
-<p align=center style='text-align:center'><b>Eclipse Public License - v 1.0</b>
-</p>
-
-<p><span style='font-size:10.0pt'>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
-THE TERMS OF THIS ECLIPSE PUBLIC LICENSE (&quot;AGREEMENT&quot;). ANY USE,
-REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
-OF THIS AGREEMENT.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>1. DEFINITIONS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Contribution&quot; means:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-in the case of the initial Contributor, the initial code and documentation
-distributed under this Agreement, and<br clear=left>
-b) in the case of each subsequent Contributor:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-changes to the Program, and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-additions to the Program;</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>where
-such changes and/or additions to the Program originate from and are distributed
-by that particular Contributor. A Contribution 'originates' from a Contributor
-if it was added to the Program by such Contributor itself or anyone acting on
-such Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in conjunction
-with the Program under their own license agreement, and (ii) are not derivative
-works of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Contributor&quot; means any person or
-entity that distributes the Program.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Licensed Patents &quot; mean patent
-claims licensable by a Contributor which are necessarily infringed by the use
-or sale of its Contribution alone or when combined with the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>&quot;Program&quot; means the Contributions
-distributed in accordance with this Agreement.</span> </p>
-
-<p><span style='font-size:10.0pt'>&quot;Recipient&quot; means anyone who
-receives the Program under this Agreement, including all Contributors.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>2. GRANT OF RIGHTS</span></b> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-Subject to the terms of this Agreement, each Contributor hereby grants Recipient
-a non-exclusive, worldwide, royalty-free copyright license to<span
-style='color:red'> </span>reproduce, prepare derivative works of, publicly
-display, publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and object code
-form.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-Subject to the terms of this Agreement, each Contributor hereby grants
-Recipient a non-exclusive, worldwide,<span style='color:green'> </span>royalty-free
-patent license under Licensed Patents to make, use, sell, offer to sell, import
-and otherwise transfer the Contribution of such Contributor, if any, in source
-code and object code form. This patent license shall apply to the combination
-of the Contribution and the Program if, at the time the Contribution is added
-by the Contributor, such addition of the Contribution causes such combination
-to be covered by the Licensed Patents. The patent license shall not apply to
-any other combinations which include the Contribution. No hardware per se is
-licensed hereunder. </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>c)
-Recipient understands that although each Contributor grants the licenses to its
-Contributions set forth herein, no assurances are provided by any Contributor
-that the Program does not infringe the patent or other intellectual property
-rights of any other entity. Each Contributor disclaims any liability to Recipient
-for claims brought by any other entity based on infringement of intellectual
-property rights or otherwise. As a condition to exercising the rights and
-licenses granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For example,
-if a third party patent license is required to allow Recipient to distribute
-the Program, it is Recipient's responsibility to acquire that license before
-distributing the Program.</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>d)
-Each Contributor represents that to its knowledge it has sufficient copyright
-rights in its Contribution, if any, to grant the copyright license set forth in
-this Agreement. </span></p>
-
-<p><b><span style='font-size:10.0pt'>3. REQUIREMENTS</span></b> </p>
-
-<p><span style='font-size:10.0pt'>A Contributor may choose to distribute the
-Program in object code form under its own license agreement, provided that:</span>
-</p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it complies with the terms and conditions of this Agreement; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b)
-its license agreement:</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>i)
-effectively disclaims on behalf of all Contributors all warranties and
-conditions, express and implied, including warranties or conditions of title
-and non-infringement, and implied warranties or conditions of merchantability
-and fitness for a particular purpose; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>ii)
-effectively excludes on behalf of all Contributors all liability for damages,
-including direct, indirect, special, incidental and consequential damages, such
-as lost profits; </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iii)
-states that any provisions which differ from this Agreement are offered by that
-Contributor alone and not by any other party; and</span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>iv)
-states that source code for the Program is available from such Contributor, and
-informs licensees how to obtain it in a reasonable manner on or through a
-medium customarily used for software exchange.<span style='color:blue'> </span></span></p>
-
-<p><span style='font-size:10.0pt'>When the Program is made available in source
-code form:</span> </p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>a)
-it must be made available under this Agreement; and </span></p>
-
-<p class=MsoNormal style='margin-left:.5in'><span style='font-size:10.0pt'>b) a
-copy of this Agreement must be included with each copy of the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Contributors may not remove or alter any
-copyright notices contained within the Program. </span></p>
-
-<p><span style='font-size:10.0pt'>Each Contributor must identify itself as the
-originator of its Contribution, if any, in a manner that reasonably allows
-subsequent Recipients to identify the originator of the Contribution. </span></p>
-
-<p><b><span style='font-size:10.0pt'>4. COMMERCIAL DISTRIBUTION</span></b> </p>
-
-<p><span style='font-size:10.0pt'>Commercial distributors of software may
-accept certain responsibilities with respect to end users, business partners
-and the like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes the
-Program in a commercial product offering, such Contributor (&quot;Commercial
-Contributor&quot;) hereby agrees to defend and indemnify every other
-Contributor (&quot;Indemnified Contributor&quot;) against any losses, damages and
-costs (collectively &quot;Losses&quot;) arising from claims, lawsuits and other
-legal actions brought by a third party against the Indemnified Contributor to
-the extent caused by the acts or omissions of such Commercial Contributor in
-connection with its distribution of the Program in a commercial product
-offering. The obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In order
-to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
-Contributor in writing of such claim, and b) allow the Commercial Contributor
-to control, and cooperate with the Commercial Contributor in, the defense and
-any related settlement negotiations. The Indemnified Contributor may participate
-in any such claim at its own expense.</span> </p>
-
-<p><span style='font-size:10.0pt'>For example, a Contributor might include the
-Program in a commercial product offering, Product X. That Contributor is then a
-Commercial Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance claims and
-warranties are such Commercial Contributor's responsibility alone. Under this
-section, the Commercial Contributor would have to defend claims against the
-other Contributors related to those performance claims and warranties, and if a
-court requires any other Contributor to pay any damages as a result, the
-Commercial Contributor must pay those damages.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>5. NO WARRANTY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, THE PROGRAM IS PROVIDED ON AN &quot;AS IS&quot; BASIS, WITHOUT
-WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and distributing the
-Program and assumes all risks associated with its exercise of rights under this
-Agreement , including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs or
-equipment, and unavailability or interruption of operations. </span></p>
-
-<p><b><span style='font-size:10.0pt'>6. DISCLAIMER OF LIABILITY</span></b> </p>
-
-<p><span style='font-size:10.0pt'>EXCEPT AS EXPRESSLY SET FORTH IN THIS
-AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
-ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
-THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
-THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
-
-<p><b><span style='font-size:10.0pt'>7. GENERAL</span></b> </p>
-
-<p><span style='font-size:10.0pt'>If any provision of this Agreement is invalid
-or unenforceable under applicable law, it shall not affect the validity or
-enforceability of the remainder of the terms of this Agreement, and without
-further action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.</span> </p>
-
-<p><span style='font-size:10.0pt'>If Recipient institutes patent litigation
-against any entity (including a cross-claim or counterclaim in a lawsuit)
-alleging that the Program itself (excluding combinations of the Program with
-other software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the date
-such litigation is filed. </span></p>
-
-<p><span style='font-size:10.0pt'>All Recipient's rights under this Agreement
-shall terminate if it fails to comply with any of the material terms or
-conditions of this Agreement and does not cure such failure in a reasonable
-period of time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive. </span></p>
-
-<p><span style='font-size:10.0pt'>Everyone is permitted to copy and distribute
-copies of this Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The Agreement
-Steward reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement Steward has
-the right to modify this Agreement. The Eclipse Foundation is the initial
-Agreement Steward. The Eclipse Foundation may assign the responsibility to
-serve as the Agreement Steward to a suitable separate entity. Each new version
-of the Agreement will be given a distinguishing version number. The Program
-(including Contributions) may always be distributed subject to the version of
-the Agreement under which it was received. In addition, after a new version of
-the Agreement is published, Contributor may elect to distribute the Program
-(including its Contributions) under the new version. Except as expressly stated
-in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
-the intellectual property of any Contributor under this Agreement, whether
-expressly, by implication, estoppel or otherwise. All rights in the Program not
-expressly granted under this Agreement are reserved.</span> </p>
-
-<p><span style='font-size:10.0pt'>This Agreement is governed by the laws of the
-State of New York and the intellectual property laws of the United States of
-America. No party to this Agreement will bring a legal action under this
-Agreement more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.</span> </p>
-
-<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>
-
-</div>
-
-</body>
-
-</html>
\ No newline at end of file
diff --git a/features/org.eclipse.wst.xml_ui.feature.patch/feature.properties b/features/org.eclipse.wst.xml_ui.feature.patch/feature.properties
deleted file mode 100644
index 78dcee4..0000000
--- a/features/org.eclipse.wst.xml_ui.feature.patch/feature.properties
+++ /dev/null
@@ -1,154 +0,0 @@
-###############################################################################
-# Copyright (c) 2006 IBM Corporation and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-# 
-# Contributors:
-#     IBM Corporation - initial API and implementation
-###############################################################################
-# feature.properties
-# contains externalized strings for feature.xml
-# "%foo" in feature.xml corresponds to the key "foo" in this file
-# java.io.Properties file (ISO 8859-1 with "\" escapes)
-# This file should be translated.
-
-# "featureName" property - name of the feature
-featureName=WTP Patch for org.eclipse.wst.xml_ui.feature
-
-# "providerName" property - name of the company that provides the feature
-providerName=Eclipse.org
-
-# "updateSiteName" property - label for the update site
-updateSiteName=The Eclipse Web Tools Platform (WTP) Project update site
-
-# "description" property - description of the feature
-description=\
-Contains fixes for the following plugin(s):\n\
-        org.eclipse.wst.see.ui\n\
-\n\
-The fixes are described in the following bugzilla entries:\n\
-\n\
-Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=199053 Syntax errors outside of scripting areas not reported  \n\
-Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=186444 Some actions/commands in the source menu do not work \n\
-Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=220005 Incorrect prefix handling on XSD to XML Generator \n\
-
-\n\
-
-# "copyright" property - text of the "Feature Update Copyright"
-copyright=\
-Copyright (c) 2007 IBM Corporation and others.\n\
-All rights reserved. This program and the accompanying materials\n\
-are made available under the terms of the Eclipse Public License v1.0\n\
-which accompanies this distribution, and is available at\n\
-http://www.eclipse.org/legal/epl-v10.html\n\
-\n\
-Contributors:\n\
-    IBM Corporation - initial API and implementation\n
-################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
-October, 2007\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
-is provided to you under the terms and conditions of the Eclipse Public\n\
-License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
-Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse.org CVS\n\
-repository ("Repository") in CVS modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-   - Content may be structured and packaged into modules to facilitate delivering,\n\
-     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-     plug-in fragments ("Fragments"), and features ("Features").\n\
-   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
-     in a directory named "plugins".\n\
-   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-Features may also include other Features ("Included Features"). Files named\n\
-"feature.xml" may contain a list of the names and version numbers of\n\
-Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-   - The top-level (root) directory\n\
-   - Plug-in and Fragment directories\n\
-   - Inside Plug-ins and Fragments packaged as JARs\n\
-   - Sub-directories of the directory named "src" of certain Plug-ins\n\
-   - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Eclipse Update Manager, you must agree to a license ("Feature Update\n\
-License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties". Such Abouts,\n\
-Feature Licenses and Feature Update Licenses contain the terms and\n\
-conditions (or references to such terms and conditions) that govern your\n\
-use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
-    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use,\n\
-and re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/features/org.eclipse.wst.xml_ui.feature.patch/feature.xml b/features/org.eclipse.wst.xml_ui.feature.patch/feature.xml
deleted file mode 100644
index dda3eef..0000000
--- a/features/org.eclipse.wst.xml_ui.feature.patch/feature.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.wst.xml_ui.feature.patch"
-      label="%featureName"
-      version="1.5.5.qualifier"
-      provider-name="%providerName">
-
-   <description>
-      %description
-   </description>
-
-   <copyright>
-      %copyright
-   </copyright>
-
-   <license url="%licenseURL">
-      %license
-   </license>
-
-   <requires>
-      <import feature="org.eclipse.wst.xml_ui.feature" version="1.5.5.v200707311635-zkiCfzO-IFUOjzR" patch="true"/>
-   </requires>
-
-   <plugin
-         id="org.eclipse.wst.sse.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-
-   <plugin
-         id="org.eclipse.wst.xsd.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-         
-   <plugin
-         id="org.eclipse.wst.xml.ui"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         unpack="false"/>
-         
-</feature>
diff --git a/features/org.eclipse.wst.xml_ui.feature.patch/license.html b/features/org.eclipse.wst.xml_ui.feature.patch/license.html
deleted file mode 100644
index 2347060..0000000
--- a/features/org.eclipse.wst.xml_ui.feature.patch/license.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
-<!-- saved from url=(0044)http://www.eclipse.org/legal/epl/notice.html -->
-<HTML><HEAD><TITLE>Eclipse.org Software User Agreement</TITLE>
-<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
-<META content="MSHTML 6.00.2800.1479" name=GENERATOR></HEAD>
-<BODY lang=EN-US vLink=purple link=blue>
-<H2>Eclipse Foundation Software User Agreement</H2>
-<P>January 28, 2005</P>
-<H3>Usage Of Content</H3>
-<P>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION 
-AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF 
-THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE 
-TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED 
-BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED 
-BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE 
-AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE 
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY 
-APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU 
-MAY NOT USE THE CONTENT.</P>
-<H3>Applicable Licenses</H3>
-<P>Unless otherwise indicated, all Content made available by the Eclipse 
-Foundation is provided to you under the terms and conditions of the Eclipse 
-Public License Version 1.0 ("EPL"). A copy of the EPL is provided with this 
-Content and is also 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, "Program" will mean the Content.</P>
-<P>Content includes, but is not limited to, source code, object code, 
-documentation and other files maintained in the Eclipse.org CVS repository 
-("Repository") in CVS modules ("Modules") and made available as downloadable 
-archives ("Downloads").</P>
-<P>Content may be apportioned into plug-ins ("Plug-ins"), plug-in fragments 
-("Fragments"), and features ("Features"). A Feature is a bundle of one or more 
-Plug-ins and/or Fragments and associated material. Files named "feature.xml" may 
-contain a list of the names and version numbers of the Plug-ins and/or Fragments 
-associated with a Feature. Plug-ins and Fragments are located in directories 
-named "plugins" and Features are located in directories named "features".</P>
-<P>Features may also include other Features ("Included Features"). Files named 
-"feature.xml" may contain a list of the names and version numbers of Included 
-Features.</P>
-<P>The terms and conditions governing Plug-ins and Fragments should be contained 
-in files named "about.html" ("Abouts"). The terms and conditions governing 
-Features and Included Features should be contained in files named "license.html" 
-("Feature Licenses"). Abouts and Feature Licenses may be located in any 
-directory of a Download or Module including, but not limited to the following 
-locations:</P>
-<UL>
-  <LI>The top-level (root) directory 
-  <LI>Plug-in and Fragment directories 
-  <LI>Subdirectories of the directory named "src" of certain Plug-ins 
-  <LI>Feature directories </LI></UL>
-<P>Note: if a Feature made available by the Eclipse Foundation is installed 
-using the Eclipse Update Manager, you must agree to a license ("Feature Update 
-License") during the installation process. If the Feature contains Included 
-Features, the Feature Update License should either provide you with the terms 
-and conditions governing the Included Features or inform you where you can 
-locate them. Feature Update Licenses may be found in the "license" property of 
-files named "feature.properties". Such Abouts, Feature Licenses and Feature 
-Update Licenses contain the terms and conditions (or references to such terms 
-and conditions) that govern your use of the associated Content in that 
-directory.</P>
-<P>THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL 
-OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE 
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</P>
-<UL>
-  <LI>Common Public License Version 1.0 (available at <A 
-  href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</A>) 
-
-  <LI>Apache Software License 1.1 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</A>) 
-
-  <LI>Apache Software License 2.0 (available at <A 
-  href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</A>) 
-
-  <LI>IBM Public License 1.0 (available at <A 
-  href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</A>) 
-
-  <LI>Metro Link Public License 1.00 (available at <A 
-  href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</A>) 
-
-  <LI>Mozilla Public License Version 1.1 (available at <A 
-  href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</A>) 
-  </LI></UL>
-<P>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR 
-TO USE OF THE CONTENT. If no About, Feature License or Feature Update License is 
-provided, please contact the Eclipse Foundation to determine what terms and 
-conditions govern that particular Content.</P>
-<H3>Cryptography</H3>
-<P>Content may contain encryption software. The country in which you are 
-currently may have restrictions on the import, possession, and use, and/or 
-re-export to another country, of encryption software. BEFORE using any 
-encryption software, please check the country's laws, regulations and policies 
-concerning the import, possession, or use, and re-export of encryption software, 
-to see if this is permitted.</P></BODY></HTML>